Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: COM/DCOM/ActiveX/ATL/CORBA > Win32_NetWorkAdapterConfiguration


Автор: coolerMen 6.5.2009, 09:07
Есть код:
(проверки на ошибки опустил)

Код


IWbemLocator *pIWbemLocator = NULL;
IWbemServices *pSvc = NULL;
HRESULT hr;

hr = CoInitializeEx(0, COINIT_MULTITHREADED); 
HRESULT hRes = CoCreateInstance (
            CLSID_WbemAdministrativeLocator,
            NULL ,
            CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER , 
            IID_IUnknown ,
            ( void ** ) &pIWbemLocator
            ) ;


if (SUCCEEDED(hRes))
{
    hRes = pIWbemLocator->ConnectServer(
                L"root\\CIMV2",  // Namespace
                NULL,          // Userid
                NULL,           // PW
                NULL,           // Locale
                0,              // flags
                NULL,           // Authority
                NULL,           // Context
                &pSvc
                );

pIWbemLocator->Release(); 

BSTR MethodName = SysAllocString(L"EnableStatic");
BSTR ClassName = SysAllocString(L"Win32_NetWorkAdapterConfiguration");

IWbemClassObject* pClass = NULL;
hres = pSvc->GetObject(ClassName, 0, NULL, &pClass, NULL);

IWbemClassObject* pInParamsDefinition = NULL;
hres = pClass->GetMethod(MethodName, 0,  &pInParamsDefinition, NULL);

IWbemClassObject* pClassInstance = NULL;
hres = pInParamsDefinition->SpawnInstance(0, &pClassInstance);
BSTR ip = SysAllocString(L"10.0.0.3");
BSTR mask = SysAllocString(L"255.255.0.0");

long index[]={0};

SAFEARRAY *ip_list = SafeArrayCreateVector(VT_BSTR,0,1);
SafeArrayPutElement(ip_list,index,ip);

SAFEARRAY *mask_list = SafeArrayCreateVector(VT_BSTR,0,1);
SafeArrayPutElement(mask_list,index,mask);

VARIANT arg1;
arg1.vt = VT_ARRAY|VT_BSTR; 
arg1.parray = ip_list;
hres = pClassInstance->Put(_T("IPAddress"), 0, &arg1, 0);

VARIANT arg2;
arg2.vt = VT_ARRAY|VT_BSTR; 
arg2.parray = mask_list;
hres = pClassInstance->Put(_T("SubNetMask"), 0, &arg2, 0);

pSvc->Release();
}
}



т.е. через WMI хочу поменять IP, все операции выполняются без ошибок,
тока нихрена ничего не меняется :yes-sad: 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)