Alex369
Зарегистрирован: 01.08.2003 Сообщения: 7
|
Добавлено: Пн Сен 15 2003 14:41 Заголовок сообщения: WMI и с чем ее едят |
|
|
Возник вопрос по WMI, получить класс не могу. //IWbemServices *m_pIWbemServices; //-------------------------------------- ------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) {
} //------------------------------------ ---------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender) { m_pIWbemServices = NULL; IWbemLocator *pIWbemLocator = NULL; HRESULT hr;
CoInitialize(NULL);
if(CoCreateInstance(CLSID_WbemLocator,NULL, CLSCTX_INPROC_SERVER,IID_IWbemLocator,(LPVOID *) &pIWbemLocator) == S_OK) {
ShowMessage("create");
if (m_pIWbemServices) m_pIWbemServices->Release();
// Using the locator, connect to WMI in the given namespace. BSTR pNamespace = SysAllocString( L"root\\WMI" );
hr = pIWbemLocator->ConnectServer(pNamespace,NULL,NULL,0L,0L,NULL ,NULL,&m_pIWbemServices); SysFreeString( pNamespace );
if ( hr == WBEM_NO_ERROR ) { pIWbemLocator->Release( ); ResearchWin32Structure(m_pIWbemServices); } else ShowMessage("BadNameSpace");
// Done with pNamespace. SysFreeString(pNamespace);
// Done with pIWbemLocator. pIWbemLocator->Release(); } else { ShowMessage("failed create Com Object"); } CoUninitialize(); } //------------------------------------ ---------------------------------------
void __fastcall TForm1::ResearchWin32Structure(IWbemServices * pIWbemServices) { IWbemClassObject *pDriveClass = NULL; IWbemQualifierSet *pQualSet = NULL; HRESULT hRes;
BSTR driveClassName = SysAllocString(L"Win32_LogicalDisk");
//вот здесь он должен определить класс, но увы. Где ошибка? if((hRes = m_pIWbemServices->GetObject(driveClassName, WBEM_ FLAG_USE_AMENDED_QUALIFIERS, // this is necessary to retrieve descriptions NULL, &pDriveClass, NULL)) == S_OK) { } else { ShowMessage("Mistake"); } } Помогите понять пожалуйста. |
|