WbemScripting_TLB.pas
上传用户:lyghuaxia
上传日期:2022-06-27
资源大小:659k
文件大小:200k
源码类别:

Delphi控件源码

开发平台:

Delphi

  1.     procedure Set_DaySpecified(bDaySpecified: WordBool);
  2.     function Get_Hours: Integer;
  3.     procedure Set_Hours(iHours: Integer);
  4.     function Get_HoursSpecified: WordBool;
  5.     procedure Set_HoursSpecified(bHoursSpecified: WordBool);
  6.     function Get_Minutes: Integer;
  7.     procedure Set_Minutes(iMinutes: Integer);
  8.     function Get_MinutesSpecified: WordBool;
  9.     procedure Set_MinutesSpecified(bMinutesSpecified: WordBool);
  10.     function Get_Seconds: Integer;
  11.     procedure Set_Seconds(iSeconds: Integer);
  12.     function Get_SecondsSpecified: WordBool;
  13.     procedure Set_SecondsSpecified(bSecondsSpecified: WordBool);
  14.     function Get_Microseconds: Integer;
  15.     procedure Set_Microseconds(iMicroseconds: Integer);
  16.     function Get_MicrosecondsSpecified: WordBool;
  17.     procedure Set_MicrosecondsSpecified(bMicrosecondsSpecified: WordBool);
  18.     function Get_UTC: Integer;
  19.     procedure Set_UTC(iUTC: Integer);
  20.     function Get_UTCSpecified: WordBool;
  21.     procedure Set_UTCSpecified(bUTCSpecified: WordBool);
  22.     function Get_IsInterval: WordBool;
  23.     procedure Set_IsInterval(bIsInterval: WordBool);
  24.   public
  25.     constructor Create(AOwner: TComponent); override;
  26.     destructor  Destroy; override;
  27.     procedure Connect; override;
  28.     procedure ConnectTo(svrIntf: ISWbemDateTime);
  29.     procedure Disconnect; override;
  30.     function GetVarDate(bIsLocal: WordBool): TDateTime;
  31.     procedure SetVarDate(dVarDate: TDateTime; bIsLocal: WordBool);
  32.     function GetFileTime(bIsLocal: WordBool): WideString;
  33.     procedure SetFileTime(const strFileTime: WideString; bIsLocal: WordBool);
  34.     property DefaultInterface: ISWbemDateTime read GetDefaultInterface;
  35.     property Value: WideString read Get_Value write Set_Value;
  36.     property Year: Integer read Get_Year write Set_Year;
  37.     property YearSpecified: WordBool read Get_YearSpecified write Set_YearSpecified;
  38.     property Month: Integer read Get_Month write Set_Month;
  39.     property MonthSpecified: WordBool read Get_MonthSpecified write Set_MonthSpecified;
  40.     property Day: Integer read Get_Day write Set_Day;
  41.     property DaySpecified: WordBool read Get_DaySpecified write Set_DaySpecified;
  42.     property Hours: Integer read Get_Hours write Set_Hours;
  43.     property HoursSpecified: WordBool read Get_HoursSpecified write Set_HoursSpecified;
  44.     property Minutes: Integer read Get_Minutes write Set_Minutes;
  45.     property MinutesSpecified: WordBool read Get_MinutesSpecified write Set_MinutesSpecified;
  46.     property Seconds: Integer read Get_Seconds write Set_Seconds;
  47.     property SecondsSpecified: WordBool read Get_SecondsSpecified write Set_SecondsSpecified;
  48.     property Microseconds: Integer read Get_Microseconds write Set_Microseconds;
  49.     property MicrosecondsSpecified: WordBool read Get_MicrosecondsSpecified write Set_MicrosecondsSpecified;
  50.     property UTC: Integer read Get_UTC write Set_UTC;
  51.     property UTCSpecified: WordBool read Get_UTCSpecified write Set_UTCSpecified;
  52.     property IsInterval: WordBool read Get_IsInterval write Set_IsInterval;
  53.   published
  54. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  55.     property Server: TSWbemDateTimeProperties read GetServerProperties;
  56. {$ENDIF}
  57.   end;
  58. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  59. // *********************************************************************//
  60. // OLE Server Properties Proxy Class
  61. // Server Object    : TSWbemDateTime
  62. // (This object is used by the IDE's Property Inspector to allow editing
  63. //  of the properties of this server)
  64. // *********************************************************************//
  65.  TSWbemDateTimeProperties = class(TPersistent)
  66.   private
  67.     FServer:    TSWbemDateTime;
  68.     function    GetDefaultInterface: ISWbemDateTime;
  69.     constructor Create(AServer: TSWbemDateTime);
  70.   protected
  71.     function Get_Value: WideString;
  72.     procedure Set_Value(const strValue: WideString);
  73.     function Get_Year: Integer;
  74.     procedure Set_Year(iYear: Integer);
  75.     function Get_YearSpecified: WordBool;
  76.     procedure Set_YearSpecified(bYearSpecified: WordBool);
  77.     function Get_Month: Integer;
  78.     procedure Set_Month(iMonth: Integer);
  79.     function Get_MonthSpecified: WordBool;
  80.     procedure Set_MonthSpecified(bMonthSpecified: WordBool);
  81.     function Get_Day: Integer;
  82.     procedure Set_Day(iDay: Integer);
  83.     function Get_DaySpecified: WordBool;
  84.     procedure Set_DaySpecified(bDaySpecified: WordBool);
  85.     function Get_Hours: Integer;
  86.     procedure Set_Hours(iHours: Integer);
  87.     function Get_HoursSpecified: WordBool;
  88.     procedure Set_HoursSpecified(bHoursSpecified: WordBool);
  89.     function Get_Minutes: Integer;
  90.     procedure Set_Minutes(iMinutes: Integer);
  91.     function Get_MinutesSpecified: WordBool;
  92.     procedure Set_MinutesSpecified(bMinutesSpecified: WordBool);
  93.     function Get_Seconds: Integer;
  94.     procedure Set_Seconds(iSeconds: Integer);
  95.     function Get_SecondsSpecified: WordBool;
  96.     procedure Set_SecondsSpecified(bSecondsSpecified: WordBool);
  97.     function Get_Microseconds: Integer;
  98.     procedure Set_Microseconds(iMicroseconds: Integer);
  99.     function Get_MicrosecondsSpecified: WordBool;
  100.     procedure Set_MicrosecondsSpecified(bMicrosecondsSpecified: WordBool);
  101.     function Get_UTC: Integer;
  102.     procedure Set_UTC(iUTC: Integer);
  103.     function Get_UTCSpecified: WordBool;
  104.     procedure Set_UTCSpecified(bUTCSpecified: WordBool);
  105.     function Get_IsInterval: WordBool;
  106.     procedure Set_IsInterval(bIsInterval: WordBool);
  107.   public
  108.     property DefaultInterface: ISWbemDateTime read GetDefaultInterface;
  109.   published
  110.     property Value: WideString read Get_Value write Set_Value;
  111.     property Year: Integer read Get_Year write Set_Year;
  112.     property YearSpecified: WordBool read Get_YearSpecified write Set_YearSpecified;
  113.     property Month: Integer read Get_Month write Set_Month;
  114.     property MonthSpecified: WordBool read Get_MonthSpecified write Set_MonthSpecified;
  115.     property Day: Integer read Get_Day write Set_Day;
  116.     property DaySpecified: WordBool read Get_DaySpecified write Set_DaySpecified;
  117.     property Hours: Integer read Get_Hours write Set_Hours;
  118.     property HoursSpecified: WordBool read Get_HoursSpecified write Set_HoursSpecified;
  119.     property Minutes: Integer read Get_Minutes write Set_Minutes;
  120.     property MinutesSpecified: WordBool read Get_MinutesSpecified write Set_MinutesSpecified;
  121.     property Seconds: Integer read Get_Seconds write Set_Seconds;
  122.     property SecondsSpecified: WordBool read Get_SecondsSpecified write Set_SecondsSpecified;
  123.     property Microseconds: Integer read Get_Microseconds write Set_Microseconds;
  124.     property MicrosecondsSpecified: WordBool read Get_MicrosecondsSpecified write Set_MicrosecondsSpecified;
  125.     property UTC: Integer read Get_UTC write Set_UTC;
  126.     property UTCSpecified: WordBool read Get_UTCSpecified write Set_UTCSpecified;
  127.     property IsInterval: WordBool read Get_IsInterval write Set_IsInterval;
  128.   end;
  129. {$ENDIF}
  130. // *********************************************************************//
  131. // The Class CoSWbemRefresher provides a Create and CreateRemote method to          
  132. // create instances of the default interface ISWbemRefresher exposed by              
  133. // the CoClass SWbemRefresher. The functions are intended to be used by             
  134. // clients wishing to automate the CoClass objects exposed by the         
  135. // server of this typelibrary.                                            
  136. // *********************************************************************//
  137.   CoSWbemRefresher = class
  138.     class function Create: ISWbemRefresher;
  139.     class function CreateRemote(const MachineName: string): ISWbemRefresher;
  140.   end;
  141. // *********************************************************************//
  142. // OLE Server Proxy class declaration
  143. // Server Object    : TSWbemRefresher
  144. // Help String      : Refresher
  145. // Default Interface: ISWbemRefresher
  146. // Def. Intf. DISP? : No
  147. // Event   Interface: 
  148. // TypeFlags        : (2) CanCreate
  149. // *********************************************************************//
  150. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  151.   TSWbemRefresherProperties= class;
  152. {$ENDIF}
  153.   TSWbemRefresher = class(TOleServer)
  154.   private
  155.     FIntf:        ISWbemRefresher;
  156. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  157.     FProps:       TSWbemRefresherProperties;
  158.     function      GetServerProperties: TSWbemRefresherProperties;
  159. {$ENDIF}
  160.     function      GetDefaultInterface: ISWbemRefresher;
  161.   protected
  162.     procedure InitServerData; override;
  163.     function Get_Count: Integer;
  164.     function Get_AutoReconnect: WordBool;
  165.     procedure Set_AutoReconnect(bCount: WordBool);
  166.   public
  167.     constructor Create(AOwner: TComponent); override;
  168.     destructor  Destroy; override;
  169.     procedure Connect; override;
  170.     procedure ConnectTo(svrIntf: ISWbemRefresher);
  171.     procedure Disconnect; override;
  172.     function Item(iIndex: Integer): ISWbemRefreshableItem;
  173.     function Add(const objWbemServices: ISWbemServicesEx; const bsInstancePath: WideString; 
  174.                  iFlags: Integer; const objWbemNamedValueSet: IDispatch): ISWbemRefreshableItem;
  175.     function AddEnum(const objWbemServices: ISWbemServicesEx; const bsClassName: WideString; 
  176.                      iFlags: Integer; const objWbemNamedValueSet: IDispatch): ISWbemRefreshableItem;
  177.     procedure Remove(iIndex: Integer; iFlags: Integer);
  178.     procedure Refresh(iFlags: Integer);
  179.     procedure DeleteAll;
  180.     property DefaultInterface: ISWbemRefresher read GetDefaultInterface;
  181.     property Count: Integer read Get_Count;
  182.     property AutoReconnect: WordBool read Get_AutoReconnect write Set_AutoReconnect;
  183.   published
  184. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  185.     property Server: TSWbemRefresherProperties read GetServerProperties;
  186. {$ENDIF}
  187.   end;
  188. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  189. // *********************************************************************//
  190. // OLE Server Properties Proxy Class
  191. // Server Object    : TSWbemRefresher
  192. // (This object is used by the IDE's Property Inspector to allow editing
  193. //  of the properties of this server)
  194. // *********************************************************************//
  195.  TSWbemRefresherProperties = class(TPersistent)
  196.   private
  197.     FServer:    TSWbemRefresher;
  198.     function    GetDefaultInterface: ISWbemRefresher;
  199.     constructor Create(AServer: TSWbemRefresher);
  200.   protected
  201.     function Get_Count: Integer;
  202.     function Get_AutoReconnect: WordBool;
  203.     procedure Set_AutoReconnect(bCount: WordBool);
  204.   public
  205.     property DefaultInterface: ISWbemRefresher read GetDefaultInterface;
  206.   published
  207.     property AutoReconnect: WordBool read Get_AutoReconnect write Set_AutoReconnect;
  208.   end;
  209. {$ENDIF}
  210. // *********************************************************************//
  211. // The Class CoSWbemServices provides a Create and CreateRemote method to          
  212. // create instances of the default interface ISWbemServices exposed by              
  213. // the CoClass SWbemServices. The functions are intended to be used by             
  214. // clients wishing to automate the CoClass objects exposed by the         
  215. // server of this typelibrary.                                            
  216. // *********************************************************************//
  217.   CoSWbemServices = class
  218.     class function Create: ISWbemServices;
  219.     class function CreateRemote(const MachineName: string): ISWbemServices;
  220.   end;
  221. // *********************************************************************//
  222. // The Class CoSWbemServicesEx provides a Create and CreateRemote method to          
  223. // create instances of the default interface ISWbemServicesEx exposed by              
  224. // the CoClass SWbemServicesEx. The functions are intended to be used by             
  225. // clients wishing to automate the CoClass objects exposed by the         
  226. // server of this typelibrary.                                            
  227. // *********************************************************************//
  228.   CoSWbemServicesEx = class
  229.     class function Create: ISWbemServicesEx;
  230.     class function CreateRemote(const MachineName: string): ISWbemServicesEx;
  231.   end;
  232. // *********************************************************************//
  233. // The Class CoSWbemObject provides a Create and CreateRemote method to          
  234. // create instances of the default interface ISWbemObject exposed by              
  235. // the CoClass SWbemObject. The functions are intended to be used by             
  236. // clients wishing to automate the CoClass objects exposed by the         
  237. // server of this typelibrary.                                            
  238. // *********************************************************************//
  239.   CoSWbemObject = class
  240.     class function Create: ISWbemObject;
  241.     class function CreateRemote(const MachineName: string): ISWbemObject;
  242.   end;
  243. // *********************************************************************//
  244. // The Class CoSWbemObjectEx provides a Create and CreateRemote method to          
  245. // create instances of the default interface ISWbemObjectEx exposed by              
  246. // the CoClass SWbemObjectEx. The functions are intended to be used by             
  247. // clients wishing to automate the CoClass objects exposed by the         
  248. // server of this typelibrary.                                            
  249. // *********************************************************************//
  250.   CoSWbemObjectEx = class
  251.     class function Create: ISWbemObjectEx;
  252.     class function CreateRemote(const MachineName: string): ISWbemObjectEx;
  253.   end;
  254. // *********************************************************************//
  255. // The Class CoSWbemObjectSet provides a Create and CreateRemote method to          
  256. // create instances of the default interface ISWbemObjectSet exposed by              
  257. // the CoClass SWbemObjectSet. The functions are intended to be used by             
  258. // clients wishing to automate the CoClass objects exposed by the         
  259. // server of this typelibrary.                                            
  260. // *********************************************************************//
  261.   CoSWbemObjectSet = class
  262.     class function Create: ISWbemObjectSet;
  263.     class function CreateRemote(const MachineName: string): ISWbemObjectSet;
  264.   end;
  265. // *********************************************************************//
  266. // The Class CoSWbemNamedValue provides a Create and CreateRemote method to          
  267. // create instances of the default interface ISWbemNamedValue exposed by              
  268. // the CoClass SWbemNamedValue. The functions are intended to be used by             
  269. // clients wishing to automate the CoClass objects exposed by the         
  270. // server of this typelibrary.                                            
  271. // *********************************************************************//
  272.   CoSWbemNamedValue = class
  273.     class function Create: ISWbemNamedValue;
  274.     class function CreateRemote(const MachineName: string): ISWbemNamedValue;
  275.   end;
  276. // *********************************************************************//
  277. // The Class CoSWbemQualifier provides a Create and CreateRemote method to          
  278. // create instances of the default interface ISWbemQualifier exposed by              
  279. // the CoClass SWbemQualifier. The functions are intended to be used by             
  280. // clients wishing to automate the CoClass objects exposed by the         
  281. // server of this typelibrary.                                            
  282. // *********************************************************************//
  283.   CoSWbemQualifier = class
  284.     class function Create: ISWbemQualifier;
  285.     class function CreateRemote(const MachineName: string): ISWbemQualifier;
  286.   end;
  287. // *********************************************************************//
  288. // The Class CoSWbemQualifierSet provides a Create and CreateRemote method to          
  289. // create instances of the default interface ISWbemQualifierSet exposed by              
  290. // the CoClass SWbemQualifierSet. The functions are intended to be used by             
  291. // clients wishing to automate the CoClass objects exposed by the         
  292. // server of this typelibrary.                                            
  293. // *********************************************************************//
  294.   CoSWbemQualifierSet = class
  295.     class function Create: ISWbemQualifierSet;
  296.     class function CreateRemote(const MachineName: string): ISWbemQualifierSet;
  297.   end;
  298. // *********************************************************************//
  299. // The Class CoSWbemProperty provides a Create and CreateRemote method to          
  300. // create instances of the default interface ISWbemProperty exposed by              
  301. // the CoClass SWbemProperty. The functions are intended to be used by             
  302. // clients wishing to automate the CoClass objects exposed by the         
  303. // server of this typelibrary.                                            
  304. // *********************************************************************//
  305.   CoSWbemProperty = class
  306.     class function Create: ISWbemProperty;
  307.     class function CreateRemote(const MachineName: string): ISWbemProperty;
  308.   end;
  309. // *********************************************************************//
  310. // The Class CoSWbemPropertySet provides a Create and CreateRemote method to          
  311. // create instances of the default interface ISWbemPropertySet exposed by              
  312. // the CoClass SWbemPropertySet. The functions are intended to be used by             
  313. // clients wishing to automate the CoClass objects exposed by the         
  314. // server of this typelibrary.                                            
  315. // *********************************************************************//
  316.   CoSWbemPropertySet = class
  317.     class function Create: ISWbemPropertySet;
  318.     class function CreateRemote(const MachineName: string): ISWbemPropertySet;
  319.   end;
  320. // *********************************************************************//
  321. // The Class CoSWbemMethod provides a Create and CreateRemote method to          
  322. // create instances of the default interface ISWbemMethod exposed by              
  323. // the CoClass SWbemMethod. The functions are intended to be used by             
  324. // clients wishing to automate the CoClass objects exposed by the         
  325. // server of this typelibrary.                                            
  326. // *********************************************************************//
  327.   CoSWbemMethod = class
  328.     class function Create: ISWbemMethod;
  329.     class function CreateRemote(const MachineName: string): ISWbemMethod;
  330.   end;
  331. // *********************************************************************//
  332. // The Class CoSWbemMethodSet provides a Create and CreateRemote method to          
  333. // create instances of the default interface ISWbemMethodSet exposed by              
  334. // the CoClass SWbemMethodSet. The functions are intended to be used by             
  335. // clients wishing to automate the CoClass objects exposed by the         
  336. // server of this typelibrary.                                            
  337. // *********************************************************************//
  338.   CoSWbemMethodSet = class
  339.     class function Create: ISWbemMethodSet;
  340.     class function CreateRemote(const MachineName: string): ISWbemMethodSet;
  341.   end;
  342. // *********************************************************************//
  343. // The Class CoSWbemEventSource provides a Create and CreateRemote method to          
  344. // create instances of the default interface ISWbemEventSource exposed by              
  345. // the CoClass SWbemEventSource. The functions are intended to be used by             
  346. // clients wishing to automate the CoClass objects exposed by the         
  347. // server of this typelibrary.                                            
  348. // *********************************************************************//
  349.   CoSWbemEventSource = class
  350.     class function Create: ISWbemEventSource;
  351.     class function CreateRemote(const MachineName: string): ISWbemEventSource;
  352.   end;
  353. // *********************************************************************//
  354. // The Class CoSWbemSecurity provides a Create and CreateRemote method to          
  355. // create instances of the default interface ISWbemSecurity exposed by              
  356. // the CoClass SWbemSecurity. The functions are intended to be used by             
  357. // clients wishing to automate the CoClass objects exposed by the         
  358. // server of this typelibrary.                                            
  359. // *********************************************************************//
  360.   CoSWbemSecurity = class
  361.     class function Create: ISWbemSecurity;
  362.     class function CreateRemote(const MachineName: string): ISWbemSecurity;
  363.   end;
  364. // *********************************************************************//
  365. // The Class CoSWbemPrivilege provides a Create and CreateRemote method to          
  366. // create instances of the default interface ISWbemPrivilege exposed by              
  367. // the CoClass SWbemPrivilege. The functions are intended to be used by             
  368. // clients wishing to automate the CoClass objects exposed by the         
  369. // server of this typelibrary.                                            
  370. // *********************************************************************//
  371.   CoSWbemPrivilege = class
  372.     class function Create: ISWbemPrivilege;
  373.     class function CreateRemote(const MachineName: string): ISWbemPrivilege;
  374.   end;
  375. // *********************************************************************//
  376. // The Class CoSWbemPrivilegeSet provides a Create and CreateRemote method to          
  377. // create instances of the default interface ISWbemPrivilegeSet exposed by              
  378. // the CoClass SWbemPrivilegeSet. The functions are intended to be used by             
  379. // clients wishing to automate the CoClass objects exposed by the         
  380. // server of this typelibrary.                                            
  381. // *********************************************************************//
  382.   CoSWbemPrivilegeSet = class
  383.     class function Create: ISWbemPrivilegeSet;
  384.     class function CreateRemote(const MachineName: string): ISWbemPrivilegeSet;
  385.   end;
  386. // *********************************************************************//
  387. // The Class CoSWbemRefreshableItem provides a Create and CreateRemote method to          
  388. // create instances of the default interface ISWbemRefreshableItem exposed by              
  389. // the CoClass SWbemRefreshableItem. The functions are intended to be used by             
  390. // clients wishing to automate the CoClass objects exposed by the         
  391. // server of this typelibrary.                                            
  392. // *********************************************************************//
  393.   CoSWbemRefreshableItem = class
  394.     class function Create: ISWbemRefreshableItem;
  395.     class function CreateRemote(const MachineName: string): ISWbemRefreshableItem;
  396.   end;
  397. procedure Register;
  398. resourcestring
  399.   dtlServerPage = 'ActiveX';
  400. implementation
  401. uses ComObj;
  402. class function CoSWbemLocator.Create: ISWbemLocator;
  403. begin
  404.   Result := CreateComObject(CLASS_SWbemLocator) as ISWbemLocator;
  405. end;
  406. class function CoSWbemLocator.CreateRemote(const MachineName: string): ISWbemLocator;
  407. begin
  408.   Result := CreateRemoteComObject(MachineName, CLASS_SWbemLocator) as ISWbemLocator;
  409. end;
  410. procedure TSWbemLocator.InitServerData;
  411. const
  412.   CServerData: TServerData = (
  413.     ClassID:   '{76A64158-CB41-11D1-8B02-00600806D9B6}';
  414.     IntfIID:   '{76A6415B-CB41-11D1-8B02-00600806D9B6}';
  415.     EventIID:  '';
  416.     LicenseKey: nil;
  417.     Version: 500);
  418. begin
  419.   ServerData := @CServerData;
  420. end;
  421. procedure TSWbemLocator.Connect;
  422. var
  423.   punk: IUnknown;
  424. begin
  425.   if FIntf = nil then
  426.   begin
  427.     punk := GetServer;
  428.     Fintf:= punk as ISWbemLocator;
  429.   end;
  430. end;
  431. procedure TSWbemLocator.ConnectTo(svrIntf: ISWbemLocator);
  432. begin
  433.   Disconnect;
  434.   FIntf := svrIntf;
  435. end;
  436. procedure TSWbemLocator.DisConnect;
  437. begin
  438.   if Fintf <> nil then
  439.   begin
  440.     FIntf := nil;
  441.   end;
  442. end;
  443. function TSWbemLocator.GetDefaultInterface: ISWbemLocator;
  444. begin
  445.   if FIntf = nil then
  446.     Connect;
  447.   Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call ''Connect'' or ''ConnectTo'' before this operation');
  448.   Result := FIntf;
  449. end;
  450. constructor TSWbemLocator.Create(AOwner: TComponent);
  451. begin
  452.   inherited Create(AOwner);
  453. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  454.   FProps := TSWbemLocatorProperties.Create(Self);
  455. {$ENDIF}
  456. end;
  457. destructor TSWbemLocator.Destroy;
  458. begin
  459. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  460.   FProps.Free;
  461. {$ENDIF}
  462.   inherited Destroy;
  463. end;
  464. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  465. function TSWbemLocator.GetServerProperties: TSWbemLocatorProperties;
  466. begin
  467.   Result := FProps;
  468. end;
  469. {$ENDIF}
  470. function TSWbemLocator.Get_Security_: ISWbemSecurity;
  471. begin
  472.     Result := DefaultInterface.Security_;
  473. end;
  474. function TSWbemLocator.ConnectServer(const strServer: WideString; const strNamespace: WideString; 
  475.                                      const strUser: WideString; const strPassword: WideString; 
  476.                                      const strLocale: WideString; const strAuthority: WideString; 
  477.                                      iSecurityFlags: Integer; const objWbemNamedValueSet: IDispatch): ISWbemServices;
  478. begin
  479.   Result := DefaultInterface.ConnectServer(strServer, strNamespace, strUser, strPassword, 
  480.                                            strLocale, strAuthority, iSecurityFlags, 
  481.                                            objWbemNamedValueSet);
  482. end;
  483. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  484. constructor TSWbemLocatorProperties.Create(AServer: TSWbemLocator);
  485. begin
  486.   inherited Create;
  487.   FServer := AServer;
  488. end;
  489. function TSWbemLocatorProperties.GetDefaultInterface: ISWbemLocator;
  490. begin
  491.   Result := FServer.DefaultInterface;
  492. end;
  493. function TSWbemLocatorProperties.Get_Security_: ISWbemSecurity;
  494. begin
  495.     Result := DefaultInterface.Security_;
  496. end;
  497. {$ENDIF}
  498. class function CoSWbemNamedValueSet.Create: ISWbemNamedValueSet;
  499. begin
  500.   Result := CreateComObject(CLASS_SWbemNamedValueSet) as ISWbemNamedValueSet;
  501. end;
  502. class function CoSWbemNamedValueSet.CreateRemote(const MachineName: string): ISWbemNamedValueSet;
  503. begin
  504.   Result := CreateRemoteComObject(MachineName, CLASS_SWbemNamedValueSet) as ISWbemNamedValueSet;
  505. end;
  506. procedure TSWbemNamedValueSet.InitServerData;
  507. const
  508.   CServerData: TServerData = (
  509.     ClassID:   '{9AED384E-CE8B-11D1-8B05-00600806D9B6}';
  510.     IntfIID:   '{CF2376EA-CE8C-11D1-8B05-00600806D9B6}';
  511.     EventIID:  '';
  512.     LicenseKey: nil;
  513.     Version: 500);
  514. begin
  515.   ServerData := @CServerData;
  516. end;
  517. procedure TSWbemNamedValueSet.Connect;
  518. var
  519.   punk: IUnknown;
  520. begin
  521.   if FIntf = nil then
  522.   begin
  523.     punk := GetServer;
  524.     Fintf:= punk as ISWbemNamedValueSet;
  525.   end;
  526. end;
  527. procedure TSWbemNamedValueSet.ConnectTo(svrIntf: ISWbemNamedValueSet);
  528. begin
  529.   Disconnect;
  530.   FIntf := svrIntf;
  531. end;
  532. procedure TSWbemNamedValueSet.DisConnect;
  533. begin
  534.   if Fintf <> nil then
  535.   begin
  536.     FIntf := nil;
  537.   end;
  538. end;
  539. function TSWbemNamedValueSet.GetDefaultInterface: ISWbemNamedValueSet;
  540. begin
  541.   if FIntf = nil then
  542.     Connect;
  543.   Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call ''Connect'' or ''ConnectTo'' before this operation');
  544.   Result := FIntf;
  545. end;
  546. constructor TSWbemNamedValueSet.Create(AOwner: TComponent);
  547. begin
  548.   inherited Create(AOwner);
  549. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  550.   FProps := TSWbemNamedValueSetProperties.Create(Self);
  551. {$ENDIF}
  552. end;
  553. destructor TSWbemNamedValueSet.Destroy;
  554. begin
  555. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  556.   FProps.Free;
  557. {$ENDIF}
  558.   inherited Destroy;
  559. end;
  560. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  561. function TSWbemNamedValueSet.GetServerProperties: TSWbemNamedValueSetProperties;
  562. begin
  563.   Result := FProps;
  564. end;
  565. {$ENDIF}
  566. function TSWbemNamedValueSet.Get_Count: Integer;
  567. begin
  568.     Result := DefaultInterface.Count;
  569. end;
  570. function TSWbemNamedValueSet.Item(const strName: WideString; iFlags: Integer): ISWbemNamedValue;
  571. begin
  572.   Result := DefaultInterface.Item(strName, iFlags);
  573. end;
  574. function TSWbemNamedValueSet.Add(const strName: WideString; var varValue: OleVariant; 
  575.                                  iFlags: Integer): ISWbemNamedValue;
  576. begin
  577.   Result := DefaultInterface.Add(strName, varValue, iFlags);
  578. end;
  579. procedure TSWbemNamedValueSet.Remove(const strName: WideString; iFlags: Integer);
  580. begin
  581.   DefaultInterface.Remove(strName, iFlags);
  582. end;
  583. function TSWbemNamedValueSet.Clone: ISWbemNamedValueSet;
  584. begin
  585.   Result := DefaultInterface.Clone;
  586. end;
  587. procedure TSWbemNamedValueSet.DeleteAll;
  588. begin
  589.   DefaultInterface.DeleteAll;
  590. end;
  591. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  592. constructor TSWbemNamedValueSetProperties.Create(AServer: TSWbemNamedValueSet);
  593. begin
  594.   inherited Create;
  595.   FServer := AServer;
  596. end;
  597. function TSWbemNamedValueSetProperties.GetDefaultInterface: ISWbemNamedValueSet;
  598. begin
  599.   Result := FServer.DefaultInterface;
  600. end;
  601. function TSWbemNamedValueSetProperties.Get_Count: Integer;
  602. begin
  603.     Result := DefaultInterface.Count;
  604. end;
  605. {$ENDIF}
  606. class function CoSWbemObjectPath.Create: ISWbemObjectPath;
  607. begin
  608.   Result := CreateComObject(CLASS_SWbemObjectPath) as ISWbemObjectPath;
  609. end;
  610. class function CoSWbemObjectPath.CreateRemote(const MachineName: string): ISWbemObjectPath;
  611. begin
  612.   Result := CreateRemoteComObject(MachineName, CLASS_SWbemObjectPath) as ISWbemObjectPath;
  613. end;
  614. procedure TSWbemObjectPath.InitServerData;
  615. const
  616.   CServerData: TServerData = (
  617.     ClassID:   '{5791BC26-CE9C-11D1-97BF-0000F81E849C}';
  618.     IntfIID:   '{5791BC27-CE9C-11D1-97BF-0000F81E849C}';
  619.     EventIID:  '';
  620.     LicenseKey: nil;
  621.     Version: 500);
  622. begin
  623.   ServerData := @CServerData;
  624. end;
  625. procedure TSWbemObjectPath.Connect;
  626. var
  627.   punk: IUnknown;
  628. begin
  629.   if FIntf = nil then
  630.   begin
  631.     punk := GetServer;
  632.     Fintf:= punk as ISWbemObjectPath;
  633.   end;
  634. end;
  635. procedure TSWbemObjectPath.ConnectTo(svrIntf: ISWbemObjectPath);
  636. begin
  637.   Disconnect;
  638.   FIntf := svrIntf;
  639. end;
  640. procedure TSWbemObjectPath.DisConnect;
  641. begin
  642.   if Fintf <> nil then
  643.   begin
  644.     FIntf := nil;
  645.   end;
  646. end;
  647. function TSWbemObjectPath.GetDefaultInterface: ISWbemObjectPath;
  648. begin
  649.   if FIntf = nil then
  650.     Connect;
  651.   Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call ''Connect'' or ''ConnectTo'' before this operation');
  652.   Result := FIntf;
  653. end;
  654. constructor TSWbemObjectPath.Create(AOwner: TComponent);
  655. begin
  656.   inherited Create(AOwner);
  657. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  658.   FProps := TSWbemObjectPathProperties.Create(Self);
  659. {$ENDIF}
  660. end;
  661. destructor TSWbemObjectPath.Destroy;
  662. begin
  663. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  664.   FProps.Free;
  665. {$ENDIF}
  666.   inherited Destroy;
  667. end;
  668. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  669. function TSWbemObjectPath.GetServerProperties: TSWbemObjectPathProperties;
  670. begin
  671.   Result := FProps;
  672. end;
  673. {$ENDIF}
  674. function TSWbemObjectPath.Get_Path: WideString;
  675. begin
  676.     Result := DefaultInterface.Path;
  677. end;
  678. procedure TSWbemObjectPath.Set_Path(const strPath: WideString);
  679.   { Warning: The property Path has a setter and a getter whose
  680.   types do not match. Delphi was unable to generate a property of
  681.   this sort and so is using a Variant to set the property instead. }
  682. var
  683.   InterfaceVariant: OleVariant;
  684. begin
  685.   InterfaceVariant := DefaultInterface;
  686.   InterfaceVariant.Path := strPath;
  687. end;
  688. function TSWbemObjectPath.Get_RelPath: WideString;
  689. begin
  690.     Result := DefaultInterface.RelPath;
  691. end;
  692. procedure TSWbemObjectPath.Set_RelPath(const strRelPath: WideString);
  693.   { Warning: The property RelPath has a setter and a getter whose
  694.   types do not match. Delphi was unable to generate a property of
  695.   this sort and so is using a Variant to set the property instead. }
  696. var
  697.   InterfaceVariant: OleVariant;
  698. begin
  699.   InterfaceVariant := DefaultInterface;
  700.   InterfaceVariant.RelPath := strRelPath;
  701. end;
  702. function TSWbemObjectPath.Get_Server: WideString;
  703. begin
  704.     Result := DefaultInterface.Server;
  705. end;
  706. procedure TSWbemObjectPath.Set_Server(const strServer: WideString);
  707.   { Warning: The property Server has a setter and a getter whose
  708.   types do not match. Delphi was unable to generate a property of
  709.   this sort and so is using a Variant to set the property instead. }
  710. var
  711.   InterfaceVariant: OleVariant;
  712. begin
  713.   InterfaceVariant := DefaultInterface;
  714.   InterfaceVariant.Server := strServer;
  715. end;
  716. function TSWbemObjectPath.Get_Namespace: WideString;
  717. begin
  718.     Result := DefaultInterface.Namespace;
  719. end;
  720. procedure TSWbemObjectPath.Set_Namespace(const strNamespace: WideString);
  721.   { Warning: The property Namespace has a setter and a getter whose
  722.   types do not match. Delphi was unable to generate a property of
  723.   this sort and so is using a Variant to set the property instead. }
  724. var
  725.   InterfaceVariant: OleVariant;
  726. begin
  727.   InterfaceVariant := DefaultInterface;
  728.   InterfaceVariant.Namespace := strNamespace;
  729. end;
  730. function TSWbemObjectPath.Get_ParentNamespace: WideString;
  731. begin
  732.     Result := DefaultInterface.ParentNamespace;
  733. end;
  734. function TSWbemObjectPath.Get_DisplayName: WideString;
  735. begin
  736.     Result := DefaultInterface.DisplayName;
  737. end;
  738. procedure TSWbemObjectPath.Set_DisplayName(const strDisplayName: WideString);
  739.   { Warning: The property DisplayName has a setter and a getter whose
  740.   types do not match. Delphi was unable to generate a property of
  741.   this sort and so is using a Variant to set the property instead. }
  742. var
  743.   InterfaceVariant: OleVariant;
  744. begin
  745.   InterfaceVariant := DefaultInterface;
  746.   InterfaceVariant.DisplayName := strDisplayName;
  747. end;
  748. function TSWbemObjectPath.Get_Class_: WideString;
  749. begin
  750.     Result := DefaultInterface.Class_;
  751. end;
  752. procedure TSWbemObjectPath.Set_Class_(const strClass: WideString);
  753.   { Warning: The property Class_ has a setter and a getter whose
  754.   types do not match. Delphi was unable to generate a property of
  755.   this sort and so is using a Variant to set the property instead. }
  756. var
  757.   InterfaceVariant: OleVariant;
  758. begin
  759.   InterfaceVariant := DefaultInterface;
  760.   InterfaceVariant.Class_ := strClass;
  761. end;
  762. function TSWbemObjectPath.Get_IsClass: WordBool;
  763. begin
  764.     Result := DefaultInterface.IsClass;
  765. end;
  766. function TSWbemObjectPath.Get_IsSingleton: WordBool;
  767. begin
  768.     Result := DefaultInterface.IsSingleton;
  769. end;
  770. function TSWbemObjectPath.Get_Keys: ISWbemNamedValueSet;
  771. begin
  772.     Result := DefaultInterface.Keys;
  773. end;
  774. function TSWbemObjectPath.Get_Security_: ISWbemSecurity;
  775. begin
  776.     Result := DefaultInterface.Security_;
  777. end;
  778. function TSWbemObjectPath.Get_Locale: WideString;
  779. begin
  780.     Result := DefaultInterface.Locale;
  781. end;
  782. procedure TSWbemObjectPath.Set_Locale(const strLocale: WideString);
  783.   { Warning: The property Locale has a setter and a getter whose
  784.   types do not match. Delphi was unable to generate a property of
  785.   this sort and so is using a Variant to set the property instead. }
  786. var
  787.   InterfaceVariant: OleVariant;
  788. begin
  789.   InterfaceVariant := DefaultInterface;
  790.   InterfaceVariant.Locale := strLocale;
  791. end;
  792. function TSWbemObjectPath.Get_Authority: WideString;
  793. begin
  794.     Result := DefaultInterface.Authority;
  795. end;
  796. procedure TSWbemObjectPath.Set_Authority(const strAuthority: WideString);
  797.   { Warning: The property Authority has a setter and a getter whose
  798.   types do not match. Delphi was unable to generate a property of
  799.   this sort and so is using a Variant to set the property instead. }
  800. var
  801.   InterfaceVariant: OleVariant;
  802. begin
  803.   InterfaceVariant := DefaultInterface;
  804.   InterfaceVariant.Authority := strAuthority;
  805. end;
  806. procedure TSWbemObjectPath.SetAsClass;
  807. begin
  808.   DefaultInterface.SetAsClass;
  809. end;
  810. procedure TSWbemObjectPath.SetAsSingleton;
  811. begin
  812.   DefaultInterface.SetAsSingleton;
  813. end;
  814. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  815. constructor TSWbemObjectPathProperties.Create(AServer: TSWbemObjectPath);
  816. begin
  817.   inherited Create;
  818.   FServer := AServer;
  819. end;
  820. function TSWbemObjectPathProperties.GetDefaultInterface: ISWbemObjectPath;
  821. begin
  822.   Result := FServer.DefaultInterface;
  823. end;
  824. function TSWbemObjectPathProperties.Get_Path: WideString;
  825. begin
  826.     Result := DefaultInterface.Path;
  827. end;
  828. procedure TSWbemObjectPathProperties.Set_Path(const strPath: WideString);
  829.   { Warning: The property Path has a setter and a getter whose
  830.   types do not match. Delphi was unable to generate a property of
  831.   this sort and so is using a Variant to set the property instead. }
  832. var
  833.   InterfaceVariant: OleVariant;
  834. begin
  835.   InterfaceVariant := DefaultInterface;
  836.   InterfaceVariant.Path := strPath;
  837. end;
  838. function TSWbemObjectPathProperties.Get_RelPath: WideString;
  839. begin
  840.     Result := DefaultInterface.RelPath;
  841. end;
  842. procedure TSWbemObjectPathProperties.Set_RelPath(const strRelPath: WideString);
  843.   { Warning: The property RelPath has a setter and a getter whose
  844.   types do not match. Delphi was unable to generate a property of
  845.   this sort and so is using a Variant to set the property instead. }
  846. var
  847.   InterfaceVariant: OleVariant;
  848. begin
  849.   InterfaceVariant := DefaultInterface;
  850.   InterfaceVariant.RelPath := strRelPath;
  851. end;
  852. function TSWbemObjectPathProperties.Get_Server: WideString;
  853. begin
  854.     Result := DefaultInterface.Server;
  855. end;
  856. procedure TSWbemObjectPathProperties.Set_Server(const strServer: WideString);
  857.   { Warning: The property Server has a setter and a getter whose
  858.   types do not match. Delphi was unable to generate a property of
  859.   this sort and so is using a Variant to set the property instead. }
  860. var
  861.   InterfaceVariant: OleVariant;
  862. begin
  863.   InterfaceVariant := DefaultInterface;
  864.   InterfaceVariant.Server := strServer;
  865. end;
  866. function TSWbemObjectPathProperties.Get_Namespace: WideString;
  867. begin
  868.     Result := DefaultInterface.Namespace;
  869. end;
  870. procedure TSWbemObjectPathProperties.Set_Namespace(const strNamespace: WideString);
  871.   { Warning: The property Namespace has a setter and a getter whose
  872.   types do not match. Delphi was unable to generate a property of
  873.   this sort and so is using a Variant to set the property instead. }
  874. var
  875.   InterfaceVariant: OleVariant;
  876. begin
  877.   InterfaceVariant := DefaultInterface;
  878.   InterfaceVariant.Namespace := strNamespace;
  879. end;
  880. function TSWbemObjectPathProperties.Get_ParentNamespace: WideString;
  881. begin
  882.     Result := DefaultInterface.ParentNamespace;
  883. end;
  884. function TSWbemObjectPathProperties.Get_DisplayName: WideString;
  885. begin
  886.     Result := DefaultInterface.DisplayName;
  887. end;
  888. procedure TSWbemObjectPathProperties.Set_DisplayName(const strDisplayName: WideString);
  889.   { Warning: The property DisplayName has a setter and a getter whose
  890.   types do not match. Delphi was unable to generate a property of
  891.   this sort and so is using a Variant to set the property instead. }
  892. var
  893.   InterfaceVariant: OleVariant;
  894. begin
  895.   InterfaceVariant := DefaultInterface;
  896.   InterfaceVariant.DisplayName := strDisplayName;
  897. end;
  898. function TSWbemObjectPathProperties.Get_Class_: WideString;
  899. begin
  900.     Result := DefaultInterface.Class_;
  901. end;
  902. procedure TSWbemObjectPathProperties.Set_Class_(const strClass: WideString);
  903.   { Warning: The property Class_ has a setter and a getter whose
  904.   types do not match. Delphi was unable to generate a property of
  905.   this sort and so is using a Variant to set the property instead. }
  906. var
  907.   InterfaceVariant: OleVariant;
  908. begin
  909.   InterfaceVariant := DefaultInterface;
  910.   InterfaceVariant.Class_ := strClass;
  911. end;
  912. function TSWbemObjectPathProperties.Get_IsClass: WordBool;
  913. begin
  914.     Result := DefaultInterface.IsClass;
  915. end;
  916. function TSWbemObjectPathProperties.Get_IsSingleton: WordBool;
  917. begin
  918.     Result := DefaultInterface.IsSingleton;
  919. end;
  920. function TSWbemObjectPathProperties.Get_Keys: ISWbemNamedValueSet;
  921. begin
  922.     Result := DefaultInterface.Keys;
  923. end;
  924. function TSWbemObjectPathProperties.Get_Security_: ISWbemSecurity;
  925. begin
  926.     Result := DefaultInterface.Security_;
  927. end;
  928. function TSWbemObjectPathProperties.Get_Locale: WideString;
  929. begin
  930.     Result := DefaultInterface.Locale;
  931. end;
  932. procedure TSWbemObjectPathProperties.Set_Locale(const strLocale: WideString);
  933.   { Warning: The property Locale has a setter and a getter whose
  934.   types do not match. Delphi was unable to generate a property of
  935.   this sort and so is using a Variant to set the property instead. }
  936. var
  937.   InterfaceVariant: OleVariant;
  938. begin
  939.   InterfaceVariant := DefaultInterface;
  940.   InterfaceVariant.Locale := strLocale;
  941. end;
  942. function TSWbemObjectPathProperties.Get_Authority: WideString;
  943. begin
  944.     Result := DefaultInterface.Authority;
  945. end;
  946. procedure TSWbemObjectPathProperties.Set_Authority(const strAuthority: WideString);
  947.   { Warning: The property Authority has a setter and a getter whose
  948.   types do not match. Delphi was unable to generate a property of
  949.   this sort and so is using a Variant to set the property instead. }
  950. var
  951.   InterfaceVariant: OleVariant;
  952. begin
  953.   InterfaceVariant := DefaultInterface;
  954.   InterfaceVariant.Authority := strAuthority;
  955. end;
  956. {$ENDIF}
  957. class function CoSWbemLastError.Create: ISWbemLastError;
  958. begin
  959.   Result := CreateComObject(CLASS_SWbemLastError) as ISWbemLastError;
  960. end;
  961. class function CoSWbemLastError.CreateRemote(const MachineName: string): ISWbemLastError;
  962. begin
  963.   Result := CreateRemoteComObject(MachineName, CLASS_SWbemLastError) as ISWbemLastError;
  964. end;
  965. procedure TSWbemLastError.InitServerData;
  966. const
  967.   CServerData: TServerData = (
  968.     ClassID:   '{C2FEEEAC-CFCD-11D1-8B05-00600806D9B6}';
  969.     IntfIID:   '{D962DB84-D4BB-11D1-8B09-00600806D9B6}';
  970.     EventIID:  '';
  971.     LicenseKey: nil;
  972.     Version: 500);
  973. begin
  974.   ServerData := @CServerData;
  975. end;
  976. procedure TSWbemLastError.Connect;
  977. var
  978.   punk: IUnknown;
  979. begin
  980.   if FIntf = nil then
  981.   begin
  982.     punk := GetServer;
  983.     Fintf:= punk as ISWbemLastError;
  984.   end;
  985. end;
  986. procedure TSWbemLastError.ConnectTo(svrIntf: ISWbemLastError);
  987. begin
  988.   Disconnect;
  989.   FIntf := svrIntf;
  990. end;
  991. procedure TSWbemLastError.DisConnect;
  992. begin
  993.   if Fintf <> nil then
  994.   begin
  995.     FIntf := nil;
  996.   end;
  997. end;
  998. function TSWbemLastError.GetDefaultInterface: ISWbemLastError;
  999. begin
  1000.   if FIntf = nil then
  1001.     Connect;
  1002.   Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call ''Connect'' or ''ConnectTo'' before this operation');
  1003.   Result := FIntf;
  1004. end;
  1005. constructor TSWbemLastError.Create(AOwner: TComponent);
  1006. begin
  1007.   inherited Create(AOwner);
  1008. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  1009.   FProps := TSWbemLastErrorProperties.Create(Self);
  1010. {$ENDIF}
  1011. end;
  1012. destructor TSWbemLastError.Destroy;
  1013. begin
  1014. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  1015.   FProps.Free;
  1016. {$ENDIF}
  1017.   inherited Destroy;
  1018. end;
  1019. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  1020. function TSWbemLastError.GetServerProperties: TSWbemLastErrorProperties;
  1021. begin
  1022.   Result := FProps;
  1023. end;
  1024. {$ENDIF}
  1025. function TSWbemLastError.Get_Qualifiers_: ISWbemQualifierSet;
  1026. begin
  1027.     Result := DefaultInterface.Qualifiers_;
  1028. end;
  1029. function TSWbemLastError.Get_Properties_: ISWbemPropertySet;
  1030. begin
  1031.     Result := DefaultInterface.Properties_;
  1032. end;
  1033. function TSWbemLastError.Get_Methods_: ISWbemMethodSet;
  1034. begin
  1035.     Result := DefaultInterface.Methods_;
  1036. end;
  1037. function TSWbemLastError.Get_Derivation_: OleVariant;
  1038. var
  1039.   InterfaceVariant : OleVariant;
  1040. begin
  1041.   InterfaceVariant := DefaultInterface;
  1042.   Result := InterfaceVariant.Derivation_;
  1043. end;
  1044. function TSWbemLastError.Get_Path_: ISWbemObjectPath;
  1045. begin
  1046.     Result := DefaultInterface.Path_;
  1047. end;
  1048. function TSWbemLastError.Get_Security_: ISWbemSecurity;
  1049. begin
  1050.     Result := DefaultInterface.Security_;
  1051. end;
  1052. function TSWbemLastError.Put_(iFlags: Integer; const objWbemNamedValueSet: IDispatch): ISWbemObjectPath;
  1053. begin
  1054.   Result := DefaultInterface.Put_(iFlags, objWbemNamedValueSet);
  1055. end;
  1056. procedure TSWbemLastError.PutAsync_(const objWbemSink: IDispatch; iFlags: Integer; 
  1057.                                     const objWbemNamedValueSet: IDispatch; 
  1058.                                     const objWbemAsyncContext: IDispatch);
  1059. begin
  1060.   DefaultInterface.PutAsync_(objWbemSink, iFlags, objWbemNamedValueSet, objWbemAsyncContext);
  1061. end;
  1062. procedure TSWbemLastError.Delete_(iFlags: Integer; const objWbemNamedValueSet: IDispatch);
  1063. begin
  1064.   DefaultInterface.Delete_(iFlags, objWbemNamedValueSet);
  1065. end;
  1066. procedure TSWbemLastError.DeleteAsync_(const objWbemSink: IDispatch; iFlags: Integer; 
  1067.                                        const objWbemNamedValueSet: IDispatch; 
  1068.                                        const objWbemAsyncContext: IDispatch);
  1069. begin
  1070.   DefaultInterface.DeleteAsync_(objWbemSink, iFlags, objWbemNamedValueSet, objWbemAsyncContext);
  1071. end;
  1072. function TSWbemLastError.Instances_(iFlags: Integer; const objWbemNamedValueSet: IDispatch): ISWbemObjectSet;
  1073. begin
  1074.   Result := DefaultInterface.Instances_(iFlags, objWbemNamedValueSet);
  1075. end;
  1076. procedure TSWbemLastError.InstancesAsync_(const objWbemSink: IDispatch; iFlags: Integer; 
  1077.                                           const objWbemNamedValueSet: IDispatch; 
  1078.                                           const objWbemAsyncContext: IDispatch);
  1079. begin
  1080.   DefaultInterface.InstancesAsync_(objWbemSink, iFlags, objWbemNamedValueSet, objWbemAsyncContext);
  1081. end;
  1082. function TSWbemLastError.Subclasses_(iFlags: Integer; const objWbemNamedValueSet: IDispatch): ISWbemObjectSet;
  1083. begin
  1084.   Result := DefaultInterface.Subclasses_(iFlags, objWbemNamedValueSet);
  1085. end;
  1086. procedure TSWbemLastError.SubclassesAsync_(const objWbemSink: IDispatch; iFlags: Integer; 
  1087.                                            const objWbemNamedValueSet: IDispatch; 
  1088.                                            const objWbemAsyncContext: IDispatch);
  1089. begin
  1090.   DefaultInterface.SubclassesAsync_(objWbemSink, iFlags, objWbemNamedValueSet, objWbemAsyncContext);
  1091. end;
  1092. function TSWbemLastError.Associators_(const strAssocClass: WideString; 
  1093.                                       const strResultClass: WideString; 
  1094.                                       const strResultRole: WideString; const strRole: WideString; 
  1095.                                       bClassesOnly: WordBool; bSchemaOnly: WordBool; 
  1096.                                       const strRequiredAssocQualifier: WideString; 
  1097.                                       const strRequiredQualifier: WideString; iFlags: Integer; 
  1098.                                       const objWbemNamedValueSet: IDispatch): ISWbemObjectSet;
  1099. begin
  1100.   Result := DefaultInterface.Associators_(strAssocClass, strResultClass, strResultRole, strRole, 
  1101.                                           bClassesOnly, bSchemaOnly, strRequiredAssocQualifier, 
  1102.                                           strRequiredQualifier, iFlags, objWbemNamedValueSet);
  1103. end;
  1104. procedure TSWbemLastError.AssociatorsAsync_(const objWbemSink: IDispatch; 
  1105.                                             const strAssocClass: WideString; 
  1106.                                             const strResultClass: WideString; 
  1107.                                             const strResultRole: WideString; 
  1108.                                             const strRole: WideString; bClassesOnly: WordBool; 
  1109.                                             bSchemaOnly: WordBool; 
  1110.                                             const strRequiredAssocQualifier: WideString; 
  1111.                                             const strRequiredQualifier: WideString; 
  1112.                                             iFlags: Integer; const objWbemNamedValueSet: IDispatch; 
  1113.                                             const objWbemAsyncContext: IDispatch);
  1114. begin
  1115.   DefaultInterface.AssociatorsAsync_(objWbemSink, strAssocClass, strResultClass, strResultRole, 
  1116.                                      strRole, bClassesOnly, bSchemaOnly, strRequiredAssocQualifier, 
  1117.                                      strRequiredQualifier, iFlags, objWbemNamedValueSet, 
  1118.                                      objWbemAsyncContext);
  1119. end;
  1120. function TSWbemLastError.References_(const strResultClass: WideString; const strRole: WideString; 
  1121.                                      bClassesOnly: WordBool; bSchemaOnly: WordBool; 
  1122.                                      const strRequiredQualifier: WideString; iFlags: Integer; 
  1123.                                      const objWbemNamedValueSet: IDispatch): ISWbemObjectSet;
  1124. begin
  1125.   Result := DefaultInterface.References_(strResultClass, strRole, bClassesOnly, bSchemaOnly, 
  1126.                                          strRequiredQualifier, iFlags, objWbemNamedValueSet);
  1127. end;
  1128. procedure TSWbemLastError.ReferencesAsync_(const objWbemSink: IDispatch; 
  1129.                                            const strResultClass: WideString; 
  1130.                                            const strRole: WideString; bClassesOnly: WordBool; 
  1131.                                            bSchemaOnly: WordBool; 
  1132.                                            const strRequiredQualifier: WideString; iFlags: Integer; 
  1133.                                            const objWbemNamedValueSet: IDispatch; 
  1134.                                            const objWbemAsyncContext: IDispatch);
  1135. begin
  1136.   DefaultInterface.ReferencesAsync_(objWbemSink, strResultClass, strRole, bClassesOnly, 
  1137.                                     bSchemaOnly, strRequiredQualifier, iFlags, 
  1138.                                     objWbemNamedValueSet, objWbemAsyncContext);
  1139. end;
  1140. function TSWbemLastError.ExecMethod_(const strMethodName: WideString; 
  1141.                                      const objWbemInParameters: IDispatch; iFlags: Integer; 
  1142.                                      const objWbemNamedValueSet: IDispatch): ISWbemObject;
  1143. begin
  1144.   Result := DefaultInterface.ExecMethod_(strMethodName, objWbemInParameters, iFlags, 
  1145.                                          objWbemNamedValueSet);
  1146. end;
  1147. procedure TSWbemLastError.ExecMethodAsync_(const objWbemSink: IDispatch; 
  1148.                                            const strMethodName: WideString; 
  1149.                                            const objWbemInParameters: IDispatch; iFlags: Integer; 
  1150.                                            const objWbemNamedValueSet: IDispatch; 
  1151.                                            const objWbemAsyncContext: IDispatch);
  1152. begin
  1153.   DefaultInterface.ExecMethodAsync_(objWbemSink, strMethodName, objWbemInParameters, iFlags, 
  1154.                                     objWbemNamedValueSet, objWbemAsyncContext);
  1155. end;
  1156. function TSWbemLastError.Clone_: ISWbemObject;
  1157. begin
  1158.   Result := DefaultInterface.Clone_;
  1159. end;
  1160. function TSWbemLastError.GetObjectText_(iFlags: Integer): WideString;
  1161. begin
  1162.   Result := DefaultInterface.GetObjectText_(iFlags);
  1163. end;
  1164. function TSWbemLastError.SpawnDerivedClass_(iFlags: Integer): ISWbemObject;
  1165. begin
  1166.   Result := DefaultInterface.SpawnDerivedClass_(iFlags);
  1167. end;
  1168. function TSWbemLastError.SpawnInstance_(iFlags: Integer): ISWbemObject;
  1169. begin
  1170.   Result := DefaultInterface.SpawnInstance_(iFlags);
  1171. end;
  1172. function TSWbemLastError.CompareTo_(const objWbemObject: IDispatch; iFlags: Integer): WordBool;
  1173. begin
  1174.   Result := DefaultInterface.CompareTo_(objWbemObject, iFlags);
  1175. end;
  1176. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  1177. constructor TSWbemLastErrorProperties.Create(AServer: TSWbemLastError);
  1178. begin
  1179.   inherited Create;
  1180.   FServer := AServer;
  1181. end;
  1182. function TSWbemLastErrorProperties.GetDefaultInterface: ISWbemLastError;
  1183. begin
  1184.   Result := FServer.DefaultInterface;
  1185. end;
  1186. function TSWbemLastErrorProperties.Get_Qualifiers_: ISWbemQualifierSet;
  1187. begin
  1188.     Result := DefaultInterface.Qualifiers_;
  1189. end;
  1190. function TSWbemLastErrorProperties.Get_Properties_: ISWbemPropertySet;
  1191. begin
  1192.     Result := DefaultInterface.Properties_;
  1193. end;
  1194. function TSWbemLastErrorProperties.Get_Methods_: ISWbemMethodSet;
  1195. begin
  1196.     Result := DefaultInterface.Methods_;
  1197. end;
  1198. function TSWbemLastErrorProperties.Get_Derivation_: OleVariant;
  1199. var
  1200.   InterfaceVariant : OleVariant;
  1201. begin
  1202.   InterfaceVariant := DefaultInterface;
  1203.   Result := InterfaceVariant.Derivation_;
  1204. end;
  1205. function TSWbemLastErrorProperties.Get_Path_: ISWbemObjectPath;
  1206. begin
  1207.     Result := DefaultInterface.Path_;
  1208. end;
  1209. function TSWbemLastErrorProperties.Get_Security_: ISWbemSecurity;
  1210. begin
  1211.     Result := DefaultInterface.Security_;
  1212. end;
  1213. {$ENDIF}
  1214. class function CoSWbemSink.Create: ISWbemSink;
  1215. begin
  1216.   Result := CreateComObject(CLASS_SWbemSink) as ISWbemSink;
  1217. end;
  1218. class function CoSWbemSink.CreateRemote(const MachineName: string): ISWbemSink;
  1219. begin
  1220.   Result := CreateRemoteComObject(MachineName, CLASS_SWbemSink) as ISWbemSink;
  1221. end;
  1222. procedure TSWbemSink.InitServerData;
  1223. const
  1224.   CServerData: TServerData = (
  1225.     ClassID:   '{75718C9A-F029-11D1-A1AC-00C04FB6C223}';
  1226.     IntfIID:   '{75718C9F-F029-11D1-A1AC-00C04FB6C223}';
  1227.     EventIID:  '{75718CA0-F029-11D1-A1AC-00C04FB6C223}';
  1228.     LicenseKey: nil;
  1229.     Version: 500);
  1230. begin
  1231.   ServerData := @CServerData;
  1232. end;
  1233. procedure TSWbemSink.Connect;
  1234. var
  1235.   punk: IUnknown;
  1236. begin
  1237.   if FIntf = nil then
  1238.   begin
  1239.     punk := GetServer;
  1240.     ConnectEvents(punk);
  1241.     Fintf:= punk as ISWbemSink;
  1242.   end;
  1243. end;
  1244. procedure TSWbemSink.ConnectTo(svrIntf: ISWbemSink);
  1245. begin
  1246.   Disconnect;
  1247.   FIntf := svrIntf;
  1248.   ConnectEvents(FIntf);
  1249. end;
  1250. procedure TSWbemSink.DisConnect;
  1251. begin
  1252.   if Fintf <> nil then
  1253.   begin
  1254.     DisconnectEvents(FIntf);
  1255.     FIntf := nil;
  1256.   end;
  1257. end;
  1258. function TSWbemSink.GetDefaultInterface: ISWbemSink;
  1259. begin
  1260.   if FIntf = nil then
  1261.     Connect;
  1262.   Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call ''Connect'' or ''ConnectTo'' before this operation');
  1263.   Result := FIntf;
  1264. end;
  1265. constructor TSWbemSink.Create(AOwner: TComponent);
  1266. begin
  1267.   inherited Create(AOwner);
  1268. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  1269.   FProps := TSWbemSinkProperties.Create(Self);
  1270. {$ENDIF}
  1271. end;
  1272. destructor TSWbemSink.Destroy;
  1273. begin
  1274. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  1275.   FProps.Free;
  1276. {$ENDIF}
  1277.   inherited Destroy;
  1278. end;
  1279. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  1280. function TSWbemSink.GetServerProperties: TSWbemSinkProperties;
  1281. begin
  1282.   Result := FProps;
  1283. end;
  1284. {$ENDIF}
  1285. procedure TSWbemSink.InvokeEvent(DispID: TDispID; var Params: TVariantArray);
  1286. begin
  1287.   case DispID of
  1288.     -1: Exit;  // DISPID_UNKNOWN
  1289.    1: if Assigned(FOnObjectReady) then
  1290.             FOnObjectReady(Self, Params[1] {const ISWbemNamedValueSet}, Params[0] {const ISWbemObject});
  1291.    2: if Assigned(FOnCompleted) then
  1292.             FOnCompleted(Self, Params[2] {const ISWbemNamedValueSet}, Params[1] {const ISWbemObject}, Params[0] {WbemErrorEnum});
  1293.    3: if Assigned(FOnProgress) then
  1294.             FOnProgress(Self, Params[3] {const ISWbemNamedValueSet}, Params[2] {const WideString}, Params[1] {Integer}, Params[0] {Integer});
  1295.    4: if Assigned(FOnObjectPut) then
  1296.             FOnObjectPut(Self, Params[1] {const ISWbemNamedValueSet}, Params[0] {const ISWbemObjectPath});
  1297.   end; {case DispID}
  1298. end;
  1299. procedure TSWbemSink.Cancel;
  1300. begin
  1301.   DefaultInterface.Cancel;
  1302. end;
  1303. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  1304. constructor TSWbemSinkProperties.Create(AServer: TSWbemSink);
  1305. begin
  1306.   inherited Create;
  1307.   FServer := AServer;
  1308. end;
  1309. function TSWbemSinkProperties.GetDefaultInterface: ISWbemSink;
  1310. begin
  1311.   Result := FServer.DefaultInterface;
  1312. end;
  1313. {$ENDIF}
  1314. class function CoSWbemDateTime.Create: ISWbemDateTime;
  1315. begin
  1316.   Result := CreateComObject(CLASS_SWbemDateTime) as ISWbemDateTime;
  1317. end;
  1318. class function CoSWbemDateTime.CreateRemote(const MachineName: string): ISWbemDateTime;
  1319. begin
  1320.   Result := CreateRemoteComObject(MachineName, CLASS_SWbemDateTime) as ISWbemDateTime;
  1321. end;
  1322. procedure TSWbemDateTime.InitServerData;
  1323. const
  1324.   CServerData: TServerData = (
  1325.     ClassID:   '{47DFBE54-CF76-11D3-B38F-00105A1F473A}';
  1326.     IntfIID:   '{5E97458A-CF77-11D3-B38F-00105A1F473A}';
  1327.     EventIID:  '';
  1328.     LicenseKey: nil;
  1329.     Version: 500);
  1330. begin
  1331.   ServerData := @CServerData;
  1332. end;
  1333. procedure TSWbemDateTime.Connect;
  1334. var
  1335.   punk: IUnknown;
  1336. begin
  1337.   if FIntf = nil then
  1338.   begin
  1339.     punk := GetServer;
  1340.     Fintf:= punk as ISWbemDateTime;
  1341.   end;
  1342. end;
  1343. procedure TSWbemDateTime.ConnectTo(svrIntf: ISWbemDateTime);
  1344. begin
  1345.   Disconnect;
  1346.   FIntf := svrIntf;
  1347. end;
  1348. procedure TSWbemDateTime.DisConnect;
  1349. begin
  1350.   if Fintf <> nil then
  1351.   begin
  1352.     FIntf := nil;
  1353.   end;
  1354. end;
  1355. function TSWbemDateTime.GetDefaultInterface: ISWbemDateTime;
  1356. begin
  1357.   if FIntf = nil then
  1358.     Connect;
  1359.   Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call ''Connect'' or ''ConnectTo'' before this operation');
  1360.   Result := FIntf;
  1361. end;
  1362. constructor TSWbemDateTime.Create(AOwner: TComponent);
  1363. begin
  1364.   inherited Create(AOwner);
  1365. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  1366.   FProps := TSWbemDateTimeProperties.Create(Self);
  1367. {$ENDIF}
  1368. end;
  1369. destructor TSWbemDateTime.Destroy;
  1370. begin
  1371. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  1372.   FProps.Free;
  1373. {$ENDIF}
  1374.   inherited Destroy;
  1375. end;
  1376. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  1377. function TSWbemDateTime.GetServerProperties: TSWbemDateTimeProperties;
  1378. begin
  1379.   Result := FProps;
  1380. end;
  1381. {$ENDIF}
  1382. function TSWbemDateTime.Get_Value: WideString;
  1383. begin
  1384.     Result := DefaultInterface.Value;
  1385. end;
  1386. procedure TSWbemDateTime.Set_Value(const strValue: WideString);
  1387.   { Warning: The property Value has a setter and a getter whose
  1388.   types do not match. Delphi was unable to generate a property of
  1389.   this sort and so is using a Variant to set the property instead. }
  1390. var
  1391.   InterfaceVariant: OleVariant;
  1392. begin
  1393.   InterfaceVariant := DefaultInterface;
  1394.   InterfaceVariant.Value := strValue;
  1395. end;
  1396. function TSWbemDateTime.Get_Year: Integer;
  1397. begin
  1398.     Result := DefaultInterface.Year;
  1399. end;
  1400. procedure TSWbemDateTime.Set_Year(iYear: Integer);
  1401. begin
  1402.   Exit;
  1403. end;
  1404. function TSWbemDateTime.Get_YearSpecified: WordBool;
  1405. begin
  1406.     Result := DefaultInterface.YearSpecified;
  1407. end;
  1408. procedure TSWbemDateTime.Set_YearSpecified(bYearSpecified: WordBool);
  1409. begin
  1410.   Exit;
  1411. end;
  1412. function TSWbemDateTime.Get_Month: Integer;
  1413. begin
  1414.     Result := DefaultInterface.Month;
  1415. end;
  1416. procedure TSWbemDateTime.Set_Month(iMonth: Integer);
  1417. begin
  1418.   Exit;
  1419. end;
  1420. function TSWbemDateTime.Get_MonthSpecified: WordBool;
  1421. begin
  1422.     Result := DefaultInterface.MonthSpecified;
  1423. end;
  1424. procedure TSWbemDateTime.Set_MonthSpecified(bMonthSpecified: WordBool);
  1425. begin
  1426.   Exit;
  1427. end;
  1428. function TSWbemDateTime.Get_Day: Integer;
  1429. begin
  1430.     Result := DefaultInterface.Day;
  1431. end;
  1432. procedure TSWbemDateTime.Set_Day(iDay: Integer);
  1433. begin
  1434.   Exit;
  1435. end;
  1436. function TSWbemDateTime.Get_DaySpecified: WordBool;
  1437. begin
  1438.     Result := DefaultInterface.DaySpecified;
  1439. end;
  1440. procedure TSWbemDateTime.Set_DaySpecified(bDaySpecified: WordBool);
  1441. begin
  1442.   Exit;
  1443. end;
  1444. function TSWbemDateTime.Get_Hours: Integer;
  1445. begin
  1446.     Result := DefaultInterface.Hours;
  1447. end;
  1448. procedure TSWbemDateTime.Set_Hours(iHours: Integer);
  1449. begin
  1450.   Exit;
  1451. end;
  1452. function TSWbemDateTime.Get_HoursSpecified: WordBool;
  1453. begin
  1454.     Result := DefaultInterface.HoursSpecified;
  1455. end;
  1456. procedure TSWbemDateTime.Set_HoursSpecified(bHoursSpecified: WordBool);
  1457. begin
  1458.   Exit;
  1459. end;
  1460. function TSWbemDateTime.Get_Minutes: Integer;
  1461. begin
  1462.     Result := DefaultInterface.Minutes;
  1463. end;
  1464. procedure TSWbemDateTime.Set_Minutes(iMinutes: Integer);
  1465. begin
  1466.   Exit;
  1467. end;
  1468. function TSWbemDateTime.Get_MinutesSpecified: WordBool;
  1469. begin
  1470.     Result := DefaultInterface.MinutesSpecified;
  1471. end;
  1472. procedure TSWbemDateTime.Set_MinutesSpecified(bMinutesSpecified: WordBool);
  1473. begin
  1474.   Exit;
  1475. end;
  1476. function TSWbemDateTime.Get_Seconds: Integer;
  1477. begin
  1478.     Result := DefaultInterface.Seconds;
  1479. end;
  1480. procedure TSWbemDateTime.Set_Seconds(iSeconds: Integer);
  1481. begin
  1482.   Exit;
  1483. end;
  1484. function TSWbemDateTime.Get_SecondsSpecified: WordBool;
  1485. begin
  1486.     Result := DefaultInterface.SecondsSpecified;
  1487. end;
  1488. procedure TSWbemDateTime.Set_SecondsSpecified(bSecondsSpecified: WordBool);
  1489. begin
  1490.   Exit;
  1491. end;
  1492. function TSWbemDateTime.Get_Microseconds: Integer;
  1493. begin
  1494.     Result := DefaultInterface.Microseconds;
  1495. end;
  1496. procedure TSWbemDateTime.Set_Microseconds(iMicroseconds: Integer);
  1497. begin
  1498.   Exit;
  1499. end;
  1500. function TSWbemDateTime.Get_MicrosecondsSpecified: WordBool;
  1501. begin
  1502.     Result := DefaultInterface.MicrosecondsSpecified;
  1503. end;
  1504. procedure TSWbemDateTime.Set_MicrosecondsSpecified(bMicrosecondsSpecified: WordBool);
  1505. begin
  1506.   Exit;
  1507. end;
  1508. function TSWbemDateTime.Get_UTC: Integer;
  1509. begin
  1510.     Result := DefaultInterface.UTC;
  1511. end;
  1512. procedure TSWbemDateTime.Set_UTC(iUTC: Integer);
  1513. begin
  1514.   Exit;
  1515. end;
  1516. function TSWbemDateTime.Get_UTCSpecified: WordBool;
  1517. begin
  1518.     Result := DefaultInterface.UTCSpecified;
  1519. end;
  1520. procedure TSWbemDateTime.Set_UTCSpecified(bUTCSpecified: WordBool);
  1521. begin
  1522.   Exit;
  1523. end;
  1524. function TSWbemDateTime.Get_IsInterval: WordBool;
  1525. begin
  1526.     Result := DefaultInterface.IsInterval;
  1527. end;
  1528. procedure TSWbemDateTime.Set_IsInterval(bIsInterval: WordBool);
  1529. begin
  1530.   Exit;
  1531. end;
  1532. function TSWbemDateTime.GetVarDate(bIsLocal: WordBool): TDateTime;
  1533. begin
  1534.   Result := DefaultInterface.GetVarDate(bIsLocal);
  1535. end;
  1536. procedure TSWbemDateTime.SetVarDate(dVarDate: TDateTime; bIsLocal: WordBool);
  1537. begin
  1538.   DefaultInterface.SetVarDate(dVarDate, bIsLocal);
  1539. end;
  1540. function TSWbemDateTime.GetFileTime(bIsLocal: WordBool): WideString;
  1541. begin
  1542.   Result := DefaultInterface.GetFileTime(bIsLocal);
  1543. end;
  1544. procedure TSWbemDateTime.SetFileTime(const strFileTime: WideString; bIsLocal: WordBool);
  1545. begin
  1546.   DefaultInterface.SetFileTime(strFileTime, bIsLocal);
  1547. end;
  1548. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  1549. constructor TSWbemDateTimeProperties.Create(AServer: TSWbemDateTime);
  1550. begin
  1551.   inherited Create;
  1552.   FServer := AServer;
  1553. end;
  1554. function TSWbemDateTimeProperties.GetDefaultInterface: ISWbemDateTime;
  1555. begin
  1556.   Result := FServer.DefaultInterface;
  1557. end;
  1558. function TSWbemDateTimeProperties.Get_Value: WideString;
  1559. begin
  1560.     Result := DefaultInterface.Value;
  1561. end;
  1562. procedure TSWbemDateTimeProperties.Set_Value(const strValue: WideString);
  1563.   { Warning: The property Value has a setter and a getter whose
  1564.   types do not match. Delphi was unable to generate a property of
  1565.   this sort and so is using a Variant to set the property instead. }
  1566. var
  1567.   InterfaceVariant: OleVariant;
  1568. begin
  1569.   InterfaceVariant := DefaultInterface;
  1570.   InterfaceVariant.Value := strValue;
  1571. end;
  1572. function TSWbemDateTimeProperties.Get_Year: Integer;
  1573. begin
  1574.     Result := DefaultInterface.Year;
  1575. end;
  1576. procedure TSWbemDateTimeProperties.Set_Year(iYear: Integer);
  1577. begin
  1578.   Exit;
  1579. end;
  1580. function TSWbemDateTimeProperties.Get_YearSpecified: WordBool;
  1581. begin
  1582.     Result := DefaultInterface.YearSpecified;
  1583. end;
  1584. procedure TSWbemDateTimeProperties.Set_YearSpecified(bYearSpecified: WordBool);
  1585. begin
  1586.   Exit;
  1587. end;
  1588. function TSWbemDateTimeProperties.Get_Month: Integer;
  1589. begin
  1590.     Result := DefaultInterface.Month;
  1591. end;
  1592. procedure TSWbemDateTimeProperties.Set_Month(iMonth: Integer);
  1593. begin
  1594.   Exit;
  1595. end;
  1596. function TSWbemDateTimeProperties.Get_MonthSpecified: WordBool;
  1597. begin
  1598.     Result := DefaultInterface.MonthSpecified;
  1599. end;
  1600. procedure TSWbemDateTimeProperties.Set_MonthSpecified(bMonthSpecified: WordBool);
  1601. begin
  1602.   Exit;
  1603. end;
  1604. function TSWbemDateTimeProperties.Get_Day: Integer;
  1605. begin
  1606.     Result := DefaultInterface.Day;
  1607. end;
  1608. procedure TSWbemDateTimeProperties.Set_Day(iDay: Integer);
  1609. begin
  1610.   Exit;
  1611. end;
  1612. function TSWbemDateTimeProperties.Get_DaySpecified: WordBool;
  1613. begin
  1614.     Result := DefaultInterface.DaySpecified;
  1615. end;
  1616. procedure TSWbemDateTimeProperties.Set_DaySpecified(bDaySpecified: WordBool);
  1617. begin
  1618.   Exit;
  1619. end;
  1620. function TSWbemDateTimeProperties.Get_Hours: Integer;
  1621. begin
  1622.     Result := DefaultInterface.Hours;
  1623. end;
  1624. procedure TSWbemDateTimeProperties.Set_Hours(iHours: Integer);
  1625. begin
  1626.   Exit;
  1627. end;
  1628. function TSWbemDateTimeProperties.Get_HoursSpecified: WordBool;
  1629. begin
  1630.     Result := DefaultInterface.HoursSpecified;
  1631. end;
  1632. procedure TSWbemDateTimeProperties.Set_HoursSpecified(bHoursSpecified: WordBool);
  1633. begin
  1634.   Exit;
  1635. end;
  1636. function TSWbemDateTimeProperties.Get_Minutes: Integer;
  1637. begin
  1638.     Result := DefaultInterface.Minutes;
  1639. end;
  1640. procedure TSWbemDateTimeProperties.Set_Minutes(iMinutes: Integer);
  1641. begin
  1642.   Exit;
  1643. end;
  1644. function TSWbemDateTimeProperties.Get_MinutesSpecified: WordBool;
  1645. begin
  1646.     Result := DefaultInterface.MinutesSpecified;
  1647. end;
  1648. procedure TSWbemDateTimeProperties.Set_MinutesSpecified(bMinutesSpecified: WordBool);
  1649. begin
  1650.   Exit;
  1651. end;
  1652. function TSWbemDateTimeProperties.Get_Seconds: Integer;
  1653. begin
  1654.     Result := DefaultInterface.Seconds;
  1655. end;
  1656. procedure TSWbemDateTimeProperties.Set_Seconds(iSeconds: Integer);
  1657. begin
  1658.   Exit;
  1659. end;
  1660. function TSWbemDateTimeProperties.Get_SecondsSpecified: WordBool;
  1661. begin
  1662.     Result := DefaultInterface.SecondsSpecified;
  1663. end;
  1664. procedure TSWbemDateTimeProperties.Set_SecondsSpecified(bSecondsSpecified: WordBool);
  1665. begin
  1666.   Exit;
  1667. end;
  1668. function TSWbemDateTimeProperties.Get_Microseconds: Integer;
  1669. begin
  1670.     Result := DefaultInterface.Microseconds;
  1671. end;
  1672. procedure TSWbemDateTimeProperties.Set_Microseconds(iMicroseconds: Integer);
  1673. begin
  1674.   Exit;
  1675. end;
  1676. function TSWbemDateTimeProperties.Get_MicrosecondsSpecified: WordBool;
  1677. begin
  1678.     Result := DefaultInterface.MicrosecondsSpecified;
  1679. end;
  1680. procedure TSWbemDateTimeProperties.Set_MicrosecondsSpecified(bMicrosecondsSpecified: WordBool);
  1681. begin
  1682.   Exit;
  1683. end;
  1684. function TSWbemDateTimeProperties.Get_UTC: Integer;
  1685. begin
  1686.     Result := DefaultInterface.UTC;
  1687. end;
  1688. procedure TSWbemDateTimeProperties.Set_UTC(iUTC: Integer);
  1689. begin
  1690.   Exit;
  1691. end;
  1692. function TSWbemDateTimeProperties.Get_UTCSpecified: WordBool;
  1693. begin
  1694.     Result := DefaultInterface.UTCSpecified;
  1695. end;
  1696. procedure TSWbemDateTimeProperties.Set_UTCSpecified(bUTCSpecified: WordBool);
  1697. begin
  1698.   Exit;
  1699. end;
  1700. function TSWbemDateTimeProperties.Get_IsInterval: WordBool;
  1701. begin
  1702.     Result := DefaultInterface.IsInterval;
  1703. end;
  1704. procedure TSWbemDateTimeProperties.Set_IsInterval(bIsInterval: WordBool);
  1705. begin
  1706.   Exit;
  1707. end;
  1708. {$ENDIF}
  1709. class function CoSWbemRefresher.Create: ISWbemRefresher;
  1710. begin
  1711.   Result := CreateComObject(CLASS_SWbemRefresher) as ISWbemRefresher;
  1712. end;
  1713. class function CoSWbemRefresher.CreateRemote(const MachineName: string): ISWbemRefresher;
  1714. begin
  1715.   Result := CreateRemoteComObject(MachineName, CLASS_SWbemRefresher) as ISWbemRefresher;
  1716. end;
  1717. procedure TSWbemRefresher.InitServerData;
  1718. const
  1719.   CServerData: TServerData = (
  1720.     ClassID:   '{D269BF5C-D9C1-11D3-B38F-00105A1F473A}';
  1721.     IntfIID:   '{14D8250E-D9C2-11D3-B38F-00105A1F473A}';
  1722.     EventIID:  '';
  1723.     LicenseKey: nil;
  1724.     Version: 500);
  1725. begin
  1726.   ServerData := @CServerData;
  1727. end;
  1728. procedure TSWbemRefresher.Connect;
  1729. var
  1730.   punk: IUnknown;
  1731. begin
  1732.   if FIntf = nil then
  1733.   begin
  1734.     punk := GetServer;
  1735.     Fintf:= punk as ISWbemRefresher;
  1736.   end;
  1737. end;
  1738. procedure TSWbemRefresher.ConnectTo(svrIntf: ISWbemRefresher);
  1739. begin
  1740.   Disconnect;
  1741.   FIntf := svrIntf;
  1742. end;
  1743. procedure TSWbemRefresher.DisConnect;
  1744. begin
  1745.   if Fintf <> nil then
  1746.   begin
  1747.     FIntf := nil;
  1748.   end;
  1749. end;
  1750. function TSWbemRefresher.GetDefaultInterface: ISWbemRefresher;
  1751. begin
  1752.   if FIntf = nil then
  1753.     Connect;
  1754.   Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call ''Connect'' or ''ConnectTo'' before this operation');
  1755.   Result := FIntf;
  1756. end;
  1757. constructor TSWbemRefresher.Create(AOwner: TComponent);
  1758. begin
  1759.   inherited Create(AOwner);
  1760. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  1761.   FProps := TSWbemRefresherProperties.Create(Self);
  1762. {$ENDIF}
  1763. end;
  1764. destructor TSWbemRefresher.Destroy;
  1765. begin
  1766. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  1767.   FProps.Free;
  1768. {$ENDIF}
  1769.   inherited Destroy;
  1770. end;
  1771. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  1772. function TSWbemRefresher.GetServerProperties: TSWbemRefresherProperties;
  1773. begin
  1774.   Result := FProps;
  1775. end;
  1776. {$ENDIF}
  1777. function TSWbemRefresher.Get_Count: Integer;
  1778. begin
  1779.     Result := DefaultInterface.Count;
  1780. end;
  1781. function TSWbemRefresher.Get_AutoReconnect: WordBool;
  1782. begin
  1783.     Result := DefaultInterface.AutoReconnect;
  1784. end;
  1785. procedure TSWbemRefresher.Set_AutoReconnect(bCount: WordBool);
  1786. begin
  1787.   Exit;
  1788. end;
  1789. function TSWbemRefresher.Item(iIndex: Integer): ISWbemRefreshableItem;
  1790. begin
  1791.   Result := DefaultInterface.Item(iIndex);
  1792. end;
  1793. function TSWbemRefresher.Add(const objWbemServices: ISWbemServicesEx; 
  1794.                              const bsInstancePath: WideString; iFlags: Integer; 
  1795.                              const objWbemNamedValueSet: IDispatch): ISWbemRefreshableItem;
  1796. begin
  1797.   Result := DefaultInterface.Add(objWbemServices, bsInstancePath, iFlags, objWbemNamedValueSet);
  1798. end;
  1799. function TSWbemRefresher.AddEnum(const objWbemServices: ISWbemServicesEx; 
  1800.                                  const bsClassName: WideString; iFlags: Integer; 
  1801.                                  const objWbemNamedValueSet: IDispatch): ISWbemRefreshableItem;
  1802. begin
  1803.   Result := DefaultInterface.AddEnum(objWbemServices, bsClassName, iFlags, objWbemNamedValueSet);
  1804. end;
  1805. procedure TSWbemRefresher.Remove(iIndex: Integer; iFlags: Integer);
  1806. begin
  1807.   DefaultInterface.Remove(iIndex, iFlags);
  1808. end;
  1809. procedure TSWbemRefresher.Refresh(iFlags: Integer);
  1810. begin
  1811.   DefaultInterface.Refresh(iFlags);
  1812. end;
  1813. procedure TSWbemRefresher.DeleteAll;
  1814. begin
  1815.   DefaultInterface.DeleteAll;
  1816. end;
  1817. {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  1818. constructor TSWbemRefresherProperties.Create(AServer: TSWbemRefresher);
  1819. begin
  1820.   inherited Create;
  1821.   FServer := AServer;
  1822. end;
  1823. function TSWbemRefresherProperties.GetDefaultInterface: ISWbemRefresher;
  1824. begin
  1825.   Result := FServer.DefaultInterface;
  1826. end;
  1827. function TSWbemRefresherProperties.Get_Count: Integer;
  1828. begin
  1829.     Result := DefaultInterface.Count;
  1830. end;
  1831. function TSWbemRefresherProperties.Get_AutoReconnect: WordBool;
  1832. begin
  1833.     Result := DefaultInterface.AutoReconnect;
  1834. end;
  1835. procedure TSWbemRefresherProperties.Set_AutoReconnect(bCount: WordBool);
  1836. begin
  1837.   Exit;
  1838. end;
  1839. {$ENDIF}
  1840. class function CoSWbemServices.Create: ISWbemServices;
  1841. begin
  1842.   Result := CreateComObject(CLASS_SWbemServices) as ISWbemServices;
  1843. end;
  1844. class function CoSWbemServices.CreateRemote(const MachineName: string): ISWbemServices;
  1845. begin
  1846.   Result := CreateRemoteComObject(MachineName, CLASS_SWbemServices) as ISWbemServices;
  1847. end;
  1848. class function CoSWbemServicesEx.Create: ISWbemServicesEx;
  1849. begin
  1850.   Result := CreateComObject(CLASS_SWbemServicesEx) as ISWbemServicesEx;
  1851. end;
  1852. class function CoSWbemServicesEx.CreateRemote(const MachineName: string): ISWbemServicesEx;
  1853. begin
  1854.   Result := CreateRemoteComObject(MachineName, CLASS_SWbemServicesEx) as ISWbemServicesEx;
  1855. end;
  1856. class function CoSWbemObject.Create: ISWbemObject;
  1857. begin
  1858.   Result := CreateComObject(CLASS_SWbemObject) as ISWbemObject;
  1859. end;
  1860. class function CoSWbemObject.CreateRemote(const MachineName: string): ISWbemObject;
  1861. begin
  1862.   Result := CreateRemoteComObject(MachineName, CLASS_SWbemObject) as ISWbemObject;
  1863. end;
  1864. class function CoSWbemObjectEx.Create: ISWbemObjectEx;
  1865. begin
  1866.   Result := CreateComObject(CLASS_SWbemObjectEx) as ISWbemObjectEx;
  1867. end;
  1868. class function CoSWbemObjectEx.CreateRemote(const MachineName: string): ISWbemObjectEx;
  1869. begin
  1870.   Result := CreateRemoteComObject(MachineName, CLASS_SWbemObjectEx) as ISWbemObjectEx;
  1871. end;
  1872. class function CoSWbemObjectSet.Create: ISWbemObjectSet;
  1873. begin
  1874.   Result := CreateComObject(CLASS_SWbemObjectSet) as ISWbemObjectSet;
  1875. end;
  1876. class function CoSWbemObjectSet.CreateRemote(const MachineName: string): ISWbemObjectSet;
  1877. begin
  1878.   Result := CreateRemoteComObject(MachineName, CLASS_SWbemObjectSet) as ISWbemObjectSet;
  1879. end;
  1880. class function CoSWbemNamedValue.Create: ISWbemNamedValue;
  1881. begin
  1882.   Result := CreateComObject(CLASS_SWbemNamedValue) as ISWbemNamedValue;
  1883. end;
  1884. class function CoSWbemNamedValue.CreateRemote(const MachineName: string): ISWbemNamedValue;
  1885. begin
  1886.   Result := CreateRemoteComObject(MachineName, CLASS_SWbemNamedValue) as ISWbemNamedValue;
  1887. end;
  1888. class function CoSWbemQualifier.Create: ISWbemQualifier;
  1889. begin
  1890.   Result := CreateComObject(CLASS_SWbemQualifier) as ISWbemQualifier;
  1891. end;
  1892. class function CoSWbemQualifier.CreateRemote(const MachineName: string): ISWbemQualifier;
  1893. begin
  1894.   Result := CreateRemoteComObject(MachineName, CLASS_SWbemQualifier) as ISWbemQualifier;
  1895. end;
  1896. class function CoSWbemQualifierSet.Create: ISWbemQualifierSet;
  1897. begin
  1898.   Result := CreateComObject(CLASS_SWbemQualifierSet) as ISWbemQualifierSet;
  1899. end;
  1900. class function CoSWbemQualifierSet.CreateRemote(const MachineName: string): ISWbemQualifierSet;
  1901. begin
  1902.   Result := CreateRemoteComObject(MachineName, CLASS_SWbemQualifierSet) as ISWbemQualifierSet;
  1903. end;
  1904. class function CoSWbemProperty.Create: ISWbemProperty;
  1905. begin
  1906.   Result := CreateComObject(CLASS_SWbemProperty) as ISWbemProperty;
  1907. end;
  1908. class function CoSWbemProperty.CreateRemote(const MachineName: string): ISWbemProperty;
  1909. begin
  1910.   Result := CreateRemoteComObject(MachineName, CLASS_SWbemProperty) as ISWbemProperty;
  1911. end;
  1912. class function CoSWbemPropertySet.Create: ISWbemPropertySet;
  1913. begin
  1914.   Result := CreateComObject(CLASS_SWbemPropertySet) as ISWbemPropertySet;
  1915. end;
  1916. class function CoSWbemPropertySet.CreateRemote(const MachineName: string): ISWbemPropertySet;
  1917. begin
  1918.   Result := CreateRemoteComObject(MachineName, CLASS_SWbemPropertySet) as ISWbemPropertySet;
  1919. end;
  1920. class function CoSWbemMethod.Create: ISWbemMethod;
  1921. begin
  1922.   Result := CreateComObject(CLASS_SWbemMethod) as ISWbemMethod;
  1923. end;
  1924. class function CoSWbemMethod.CreateRemote(const MachineName: string): ISWbemMethod;
  1925. begin
  1926.   Result := CreateRemoteComObject(MachineName, CLASS_SWbemMethod) as ISWbemMethod;
  1927. end;
  1928. class function CoSWbemMethodSet.Create: ISWbemMethodSet;
  1929. begin
  1930.   Result := CreateComObject(CLASS_SWbemMethodSet) as ISWbemMethodSet;
  1931. end;
  1932. class function CoSWbemMethodSet.CreateRemote(const MachineName: string): ISWbemMethodSet;
  1933. begin
  1934.   Result := CreateRemoteComObject(MachineName, CLASS_SWbemMethodSet) as ISWbemMethodSet;
  1935. end;
  1936. class function CoSWbemEventSource.Create: ISWbemEventSource;
  1937. begin
  1938.   Result := CreateComObject(CLASS_SWbemEventSource) as ISWbemEventSource;
  1939. end;
  1940. class function CoSWbemEventSource.CreateRemote(const MachineName: string): ISWbemEventSource;
  1941. begin
  1942.   Result := CreateRemoteComObject(MachineName, CLASS_SWbemEventSource) as ISWbemEventSource;
  1943. end;
  1944. class function CoSWbemSecurity.Create: ISWbemSecurity;
  1945. begin
  1946.   Result := CreateComObject(CLASS_SWbemSecurity) as ISWbemSecurity;
  1947. end;
  1948. class function CoSWbemSecurity.CreateRemote(const MachineName: string): ISWbemSecurity;
  1949. begin
  1950.   Result := CreateRemoteComObject(MachineName, CLASS_SWbemSecurity) as ISWbemSecurity;
  1951. end;
  1952. class function CoSWbemPrivilege.Create: ISWbemPrivilege;
  1953. begin
  1954.   Result := CreateComObject(CLASS_SWbemPrivilege) as ISWbemPrivilege;
  1955. end;
  1956. class function CoSWbemPrivilege.CreateRemote(const MachineName: string): ISWbemPrivilege;
  1957. begin
  1958.   Result := CreateRemoteComObject(MachineName, CLASS_SWbemPrivilege) as ISWbemPrivilege;
  1959. end;
  1960. class function CoSWbemPrivilegeSet.Create: ISWbemPrivilegeSet;
  1961. begin
  1962.   Result := CreateComObject(CLASS_SWbemPrivilegeSet) as ISWbemPrivilegeSet;
  1963. end;
  1964. class function CoSWbemPrivilegeSet.CreateRemote(const MachineName: string): ISWbemPrivilegeSet;
  1965. begin
  1966.   Result := CreateRemoteComObject(MachineName, CLASS_SWbemPrivilegeSet) as ISWbemPrivilegeSet;
  1967. end;
  1968. class function CoSWbemRefreshableItem.Create: ISWbemRefreshableItem;
  1969. begin
  1970.   Result := CreateComObject(CLASS_SWbemRefreshableItem) as ISWbemRefreshableItem;
  1971. end;
  1972. class function CoSWbemRefreshableItem.CreateRemote(const MachineName: string): ISWbemRefreshableItem;
  1973. begin
  1974.   Result := CreateRemoteComObject(MachineName, CLASS_SWbemRefreshableItem) as ISWbemRefreshableItem;
  1975. end;
  1976. procedure Register;
  1977. begin
  1978.   RegisterComponents(dtlServerPage, [TSWbemLocator, TSWbemNamedValueSet, TSWbemObjectPath, TSWbemLastError, 
  1979.     TSWbemSink, TSWbemDateTime, TSWbemRefresher]);
  1980. end;
  1981. end.