Никак не могу удачно вызвать метод. Вызов последней функции возвращает ошибку WBEM_E_INVALID_METHOD_PARAMETERS. Ничего не понимаю, вроде делаю все по мануалу (MSDN), но тем не менее не выходит...
var
Locator: IWbemLocator;
SrvcInst: IWbemServices ;
inClass, outClass, inInst, outInst, OSClass: IWbemClassObject;
resInst, resInst2: IWbemCallResult;
a:OleVariant;
begin
CoInitialize(nil);
CoInitializeSecurity(nil,-1,nil,nil,RPC_C_AUTHN_LEVEL_CONNECT,
RPC_C_IMP_LEVEL_IMPERSONATE,nil,0,0);
CoCreateInstance(CLSID_WbemLocator,nil,CLSCTX_ALL,
IID_IWbemLocator,Locator);
Locator.ConnectServer('root\cimv2','','',widechar(nil),0,
widechar(nil),nil,SrvcInst);
SrvcInst.GetObject('Win32_OperatingSystem',0,nil,OSClass,resInst);
OSClass.GetMethod('Win32Shutdown',0,inClass,outClass);
inClass.SpawnInstance(0,inInst);
a:=1;
inInst.Put('Flags',0,@a,CIM_SINT32);
ShowMessage(IntToHex(SrvcInst.ExecMethod('Win32_OperatingSystem',
'Win32Shutdown',0,nil,inInst,outInst,resInst2),8));