Кто-нибудь разбирается хорошо в лицензионных соглашениях M$? Меня интересует, могу ли я использовать их заголовки (header files), и делать собственную реализацию их функций? В частности, могу ли я реализовать COM?
смотря как использовать, если у тебя есть VC, то вроде можно только в нем но часть хидеров они раздают вроде и ту часть можно везде, мне понравился выход предложенный в mail-листе cygwin: если есть VC, пишем прогу примерно такого содердания:
#include <MS-header> int main(void){ printf("#define MS_CONSTANT %d\n",MS_CONSTANT); return 0; }
потом выкладываем ее на веб, а включаем результаты работы этой проги все законно :) но годится в простейшем случае только для констант :)
причем вроде нету проблемы написать генератор таких прог :)))
Поясняю. Меня интересует именно COM. Точнее, IUnknown, IDispatch и остальные, объектная модель+константы+имена типов вроде BSTR. Могу ли я всё это использовать для _своей_ реализации? Я понимаю, что если я вдруг найду сырцы ActiveX, то их использование будет, мягко говоря, некорректным. Но в данном случае речь идёт про headers и объектную модель.
Насколько я помню, COM/DCOM - типа открытые бинарные стандарты и юзать/реализовывать их можно. Поищи на MSDN выражение вроде "DCOM Consortium".
Disclaimer: поскольку мне никогда не надо было, это всё ИМХО и догадки. Даже кажется, что DCOM бинарный-открытый, а собственно COM жёстче... но не помню. Ищите оригиналы. На MSDN-е где-то это разжевывали.