Цитата:
Сообщение от Redddd
Хочу использовать WMI
Беру пример с msdn.microsoft.com:
Код:
// Step 1: --------------------------------------------------
// Initialize COM. ------------------------------------------
Form1->Memo1->Clear();
hres = CoInitializeEx(0, COINIT_MULTITHREADED);
if (FAILED(hres))
{
Form1->Memo1->Lines->Add("Failed to initialize COM library. Error code = 0x");
//return 1; // Program has failed.
}
И сразу же на первом шаге ошибка - Failed to initialize COM library.
В чем дело?
|
СиБилдера у меня нет, но на Delphi вот такой код:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
hres: DWORD;
begin
hres := CoInitializeEx(0, COINIT_MULTITHREADED);
if Failed(hres) then ShowMessage(SysErrorMessage(hres));
end;
сообщает о такой ошибке: "Изменение режима для потока после его установки невозможно" - дело видимо в этом.
При работе с WMI я использовал вызов CoInitialize (а не CoInitializeEx) и то, только при работе в параллельном (не основном) потоке (thread).