Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
| |
Zbazibo 21.11.01 01:01 Число просмотров: 1021
Автор: Паша Федорцов Статус: Незарегистрированный пользователь
|
|
<programming>
|
[COM] IShellLink & CoCreateInstance 21.11.01 00:20
Автор: Паша Федорцов Статус: Незарегистрированный пользователь
|
Хочу создать ярлычки программным путём 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
П О Ч Е М У ?
|
|
[COM] IShellLink & CoCreateInstance 21.11.01 00:32
Автор: kabanchik Статус: Незарегистрированный пользователь
|
> Хочу создать ярлычки программным путём 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
|
| |
Zbazibo 21.11.01 01:01
Автор: Паша Федорцов Статус: Незарегистрированный пользователь
|
|
|
|