> Хочу создать ярлычки программным путём C под W32 без MFC. > Делаю так: > > HRESULT hres = 0; > IShellLink *psl; > hres = CoInitialize(NULL); > //Получаю указатель на интерфейс > if (SUCCEEDED(hres)) > hres = CoCreateInstance(CLSID_ShellLink,NULL, > CLSCTX_INPROC_SERVER, > IID_IShellLink, > (void**)&(psl)); > > Затем !SUCCEEDED(hres), тоесть функция возвращает ошибку, а > именно hres == 0 > > П О Ч Е М У ?
Potomuchto :
1) COM biblioteka uzhe byla sinicializirovana, t.e. ona gde to kak to uzhe vyzyvalas' v etom potoke. Chtoby proverit' eto, mozhno prosto ignorirovat' resultat i prodolzhat' rabotu. Ili vyzovi CoUnitialize(), pered tem kak vyzovesh' CoInitialize().
2) Ne zabud' ukazat' linkovshuku biblioteku "ole32.lib". Xotya dumaju ty eto uzhe sdelal, inache byla by oshibka : external function error, ili chto to vrode etogo
3) hres == 0 - eto est' resul'tat S_OK, t.e. eto ne est' oshibka, eto est'USPEX
> Хочу создать ярлычки программным путём C под W32 без MFC. > Делаю так: > > HRESULT hres = 0; > IShellLink *psl; > hres = CoInitialize(NULL); > //Получаю указатель на интерфейс > if (SUCCEEDED(hres)) > hres = CoCreateInstance(CLSID_ShellLink,NULL, > CLSCTX_INPROC_SERVER, > IID_IShellLink, > (void**)&(psl)); > > Затем !SUCCEEDED(hres), тоесть функция возвращает ошибку, а > именно hres == 0 > > П О Ч Е М У ?
Potomuchto :
1) COM biblioteka uzhe byla sinicializirovana, t.e. ona gde to kak to uzhe vyzyvalas' v etom potoke. Chtoby proverit' eto, mozhno prosto ignorirovat' resultat i prodolzhat' rabotu. Ili vyzovi CoUnitialize(), pered tem kak vyzovesh' CoInitialize().
2) Ne zabud' ukazat' linkovshuku biblioteku "ole32.lib". Xotya dumaju ty eto uzhe sdelal, inache byla by oshibka : external function error, ili chto to vrode etogo
3) hres == 0 - eto est' resul'tat S_OK, t.e. eto ne est' oshibka, eto est'USPEX