8/08/2010

AjpdSoft - AjpdSoft Obtener datos procesador WMI

AjpdSoft - AjpdSoft Obtener datos procesador WMI

Añadida a la sección Descargas la aplicación AjpdSoft Obtener datos procesador WMI: obtiene datos técnicos del procesador (CPU) del equipo, como: número de procesadores lógicos, número de cores (núcleos), modelo del procesador, tipo de procesador, tamaño de datos, tamaño de caché, velocidad de caché L2, socket, velocidad (MHz), voltaje, familia, fabricante, revisión, etc. Liberamos el código fuente - source code en Borland Delphi 6 100% Open Source.



Definición de WMI

Windows Management Instrumentation (wmi ó Instrumental de administración de Windows) es la implementación de WBEM (Web-Based Enterprise Management) de Microsoft, una iniciativa que pretende establecer normas estándar para tener acceso y compartir la información de administración a través de la red de una empresa.

wmi proporciona compatibilidad integrada para el Modelo de Información Común (CIM, Common Information Model), que describe los objetos existentes en un entorno de administración.

wmi incluye un repositorio de objetos compatible con CIM (Common Information Model ó Modelo de Información Común), que es la base de datos de definiciones de objetos, y el Administrador de objetos CIM, que controla la recopilación y manipulación de objetos en el repositorio y reúne información de los proveedores de wmi. Los proveedores de wmi actúan como intermediarios entre los componentes del sistema operativo, las aplicaciones y otros sistemas.

Los proveedores proporcionan información acerca de sus componentes, y podrían proporcionar métodos para manipular los componentes, las propiedades que se pueden establecer, o los sucesos que le pueden alertar de las modificaciones efectuadas en los componentes.

Características más importantes de AjpdSoft Obtener datos procesador WMI

  • Aplicación de muy sencillo manejo, muy fácil e intuitiva, todas las opciones están en una misma ventana.
  • La aplicación ha sido desarrollada en el lenguaje de programación Borland Delphi 6.
  • No necesita instalación, es suficiente con ejecutar el fichero infoProcesador.exe.
  • Obtiene datos técnicos del procesador CPU del equipo.
  • Permite obtener datos del procesador como: número de procesadores lógicos, número de cores (núcleos), modelo del procesador, tipo de procesador, tamaño de datos, tamaño de caché, velocidad de caché L2, socket, velocidad (MHz), voltaje, familia, fabricante, revisión.

AjpdSoft Obtener datos procesador WMI en funcionamiento

AjpdSoft Obtener datos procesador WMI permite obtener datos de la CPU del equipo, para obtenerlos es suficiente con pulsar en el botón "Obtener datos procesador WMI":

AjpdSoft Obtener datos procesador WMI en funcionamiento

Si el servicio WMI está iniciado y correctamente configurado mostrará los siguientes datos, lógicamente variarán en función del procesador de cada equipo en el que ejecutemos la aplicación:

Nº procesadores lógicos: 4
Nº de cores (núcleos): 4
Modelo procesador: 9 - x64
Estado CPU: Habilitado
Tipo de procesador: Central
Tamaño de datos (DataWith) (bit): 64
Nombre: Intel(R) Core(TM)2 Quad CPU Q9400 @ 2.66GHz
Tamaño caché L2 (KB): 3072
Velocidad caché L2 (MHz):
Tamaño caché L3 (KB): 0
Velocidad caché L3 (MHz): 0
Socket: Socket 775
Velocidad (MHz): 2667
Voltaje (V): 10
Descripción: Intel64 Family 6 Model 23 Stepping 10
Descripción familia (otra):
Fabricante: GenuineIntel
Revisión: 5898

Instalación y configuración de AjpdSoft Obtener datos procesador WMI

AjpdSoft Obtener datos procesador WMI no necesita instalación, se puede ejecutar directamente el fichero infoProcesador.exe.

Datos técnicos de AjpdSoft Obtener datos procesador WMI

Esta aplicación ha sido desarrollada en el lenguaje de programación Borland Delphi 6. La aplicación utiliza el servicio WMI de Windows, por lo que ha de estar activo y correctamente configurado.

Si eres desarrollador de software y te has registrado en nuestra web (si aún no te has registrado puedes hacerlo desde aquí gratuitamente) puedes descargar el código fuente 100% Open Source (completo y totalmente gratuito) en Borland (ahora Codegear) Delphi 6:

AjpdSoft Obtener datos procesador WMI (Código fuente Open Source en Borland Delphi 6)

AjpdSoft Obtener datos procesador WMI ha sido testeada y funciona correctamente en equipos con sistemas operativos:Windows XP, Windows 2000 Server, Windows Server 2003, Windows Vista y Windows 7 (Seven).

A quién va dirigida AjpdSoft Obtener datos procesador WMI

La aplicación AjpdSoft Obtener datos procesador WMI va dirigida a administradores de sistemas y usuarios que quieran obtener y saber datos de la CPU (procesador) de un equipo.

También puede ser útil para estudiantes que tengan que realizar algún proyecto de ejemplo de desarrollo de aplicación que acceda y utilice el servicio WMI de Microsoft Windows.

Anexo

  • Código fuente (source code) de la aplicación completa:

Unidad "UnidadMenuPrincipal.pas":

unit UnidadMenuprincipal;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ActiveX, shellapi, WbemScripting_TLB;

type
TformMenuPrincipal = class(TForm)
Button1: TButton;
txtDatosProcesador: TMemo;
LWEB: TLabel;
procedure Button1Click(Sender: TObject);
procedure LWEBClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
formMenuPrincipal: TformMenuPrincipal;

implementation

{$R *.dfm}

function obtenerDatosWMI (propiedad, clave, rama : string) : string;
var
Locator: ISWbemLocator;
Services: ISWbemServices;
SObject: ISWbemObject;
ObjSet: ISWbemObjectSet;
SProp: ISWbemProperty;
Enum: IEnumVariant;
Value: Cardinal;
TempObj: OleVariant;
SN, consultaSQL : string;
begin
try
Locator := CoSWbemLocator.Create;
//conectamos con el servicio WMI
Services := Locator.ConnectServer('',
rama, '', '', '','', 0, nil);
consultaSQL := 'SELECT ' + propiedad + ' FROM ' + clave;
try
ObjSet := Services.ExecQuery(consultaSQL, 'WQL',
wbemFlagReturnImmediately and wbemFlagForwardOnly , nil);
Enum := (ObjSet._NewEnum) as IEnumVariant;
while (Enum.Next(1, TempObj, Value) = S_OK) do
begin
SObject := IUnknown(tempObj) as ISWBemObject;
SProp := SObject.Properties_.Item(propiedad, 0);
if VarIsNull(SProp.Get_Value) then
result := ''
else
begin
SN := SProp.Get_Value;
result := SN;
end;
end;
except
on exception do
result := '';
end;
except
result := '';
end;
end;




procedure TformMenuPrincipal.Button1Click(Sender: TObject);
begin
txtDatosProcesador.Clear;

txtDatosProcesador.Lines.Add ('Nº procesadores lógicos: ' +
obtenerDatosWMI('NumberOfLogicalProcessors', 'Win32_Processor', 'root\CIMV2'));

txtDatosProcesador.Lines.Add ('Nº de cores (núcleos): ' +
obtenerDatosWMI('NumberOfCores', 'Win32_Processor', 'root\CIMV2'));

case strtoint(obtenerDatosWMI('Architecture', 'Win32_Processor', 'root\CIMV2')) of
0 : txtDatosProcesador.Lines.Add ('Modelo procesador: 0 - x86');
1 : txtDatosProcesador.Lines.Add ('Modelo procesador: 1 - MIPS');
2 : txtDatosProcesador.Lines.Add ('Modelo procesador: 2 - Alpha');
3 : txtDatosProcesador.Lines.Add ('Modelo procesador: 3 - PowerPC');
6 : txtDatosProcesador.Lines.Add ('Modelo procesador: 6 - Intel Itanium Processor Family (IPF)');
9 : txtDatosProcesador.Lines.Add ('Modelo procesador: 9 - x64');
end;

case strtoint(obtenerDatosWMI('CpuStatus', 'Win32_Processor', 'root\CIMV2')) of
0 : txtDatosProcesador.Lines.Add ('Estado CPU: Desconocido');
1 : txtDatosProcesador.Lines.Add ('Estado CPU: Habilitado');
2 : txtDatosProcesador.Lines.Add ('Estado CPU: Deshabilitado por el usuario en la BIOS');
3 : txtDatosProcesador.Lines.Add ('Estado CPU: Deshabilitado en la BIOS por error');
4 : txtDatosProcesador.Lines.Add ('Estado CPU: Inactivo');
5 : txtDatosProcesador.Lines.Add ('Estado CPU: Reservado');
6 : txtDatosProcesador.Lines.Add ('Estado CPU: Reservado');
7 : txtDatosProcesador.Lines.Add ('Estado CPU: Otro');
end;

case strtoint(obtenerDatosWMI('ProcessorType', 'Win32_Processor', 'root\CIMV2')) of
1 : txtDatosProcesador.Lines.Add ('Tipo de procesador: Otro');
2 : txtDatosProcesador.Lines.Add ('Tipo de procesador: Desconocido');
3 : txtDatosProcesador.Lines.Add ('Tipo de procesador: Central');
4 : txtDatosProcesador.Lines.Add ('Tipo de procesador: Matemático');
5 : txtDatosProcesador.Lines.Add ('Tipo de procesador: DSP');
6 : txtDatosProcesador.Lines.Add ('Estado CPU: Vídeo');
7 : txtDatosProcesador.Lines.Add ('Estado CPU: Otro');
end;

txtDatosProcesador.Lines.Add ('Tamaño de datos (DataWith) (bit): ' +
obtenerDatosWMI('DataWidth', 'Win32_Processor', 'root\CIMV2'));

txtDatosProcesador.Lines.Add ('Nombre: ' +
obtenerDatosWMI('Name', 'Win32_Processor', 'root\CIMV2'));

txtDatosProcesador.Lines.Add ('Tamaño caché L2 (KB): ' +
obtenerDatosWMI('L2CacheSize', 'Win32_Processor', 'root\CIMV2'));

txtDatosProcesador.Lines.Add ('Velocidad caché L2 (MHz): ' +
obtenerDatosWMI('L2CacheSpeed', 'Win32_Processor', 'root\CIMV2'));

txtDatosProcesador.Lines.Add ('Tamaño caché L3 (KB): ' +
obtenerDatosWMI('L3CacheSize', 'Win32_Processor', 'root\CIMV2'));

txtDatosProcesador.Lines.Add ('Velocidad caché L3 (MHz): ' +
obtenerDatosWMI('L3CacheSpeed', 'Win32_Processor', 'root\CIMV2'));

txtDatosProcesador.Lines.Add ('Socket: ' +
obtenerDatosWMI('SocketDesignation', 'Win32_Processor', 'root\CIMV2'));

txtDatosProcesador.Lines.Add ('Velocidad (MHz): ' +
obtenerDatosWMI('CurrentClockSpeed', 'Win32_Processor', 'root\CIMV2'));

txtDatosProcesador.Lines.Add ('Voltaje (V): ' +
obtenerDatosWMI('CurrentVoltage', 'Win32_Processor', 'root\CIMV2'));

txtDatosProcesador.Lines.Add ('Descripción: ' +
obtenerDatosWMI('Description', 'Win32_Processor', 'root\CIMV2'));

txtDatosProcesador.Lines.Add ('Descripción familia (otra): ' +
obtenerDatosWMI('OtherFamilyDescription', 'Win32_Processor', 'root\CIMV2'));

txtDatosProcesador.Lines.Add ('Fabricante: ' +
obtenerDatosWMI('Manufacturer', 'Win32_Processor', 'root\CIMV2'));

txtDatosProcesador.Lines.Add ('Revisión: ' +
obtenerDatosWMI('Revision', 'Win32_Processor', 'root\CIMV2'));
end;

procedure TformMenuPrincipal.LWEBClick(Sender: TObject);
begin
ShellExecute(Handle, Nil, PChar('http://www.ajpdsoft.com'),
Nil, Nil, SW_SHOWNORMAL);
end;

end.
  • WbemScripting_TLB.pas:

unit WbemScripting_TLB;

// ************************************************************************ //
// WARNING
// -------
// The types declared in this file were generated from data read from a
// Type Library. If this type library is explicitly or indirectly (via
// another type library referring to this type library) re-imported, or the
// 'Refresh' command of the Type Library Editor activated while editing the
// Type Library, the contents of this file will be regenerated and all
// manual modifications will be lost.
// ************************************************************************ //

// PASTLWTR : 1.2
// File generated on 5/6/2005 5:57:20 PM from Type Library described below.

// ************************************************************************ //
// Type Lib: C:\WINDOWS\System32\wbem\wbemdisp.TLB (1)
// LIBID: {565783C6-CB41-11D1-8B02-00600806D9B6}
// LCID: 0
// Helpfile:
// HelpString: Microsoft WMI Scripting V1.2 Library
// DepndLst:
// (1) v2.0 stdole, (C:\WINDOWS\System32\stdole2.tlb)
// Errors:
// Hint: Member 'Class' of 'ISWbemObjectPath' changed to 'Class_'
// Hint: Member 'Object' of 'ISWbemRefreshableItem' changed to 'Object_'
// Error creating palette bitmap of (TSWbemLocator) : Server C:\WINDOWS\System32\wbem\wbemdisp.dll contains no icons
// Error creating palette bitmap of (TSWbemNamedValueSet) : Server C:\WINDOWS\System32\wbem\wbemdisp.dll contains no icons
// Error creating palette bitmap of (TSWbemObjectPath) : Server C:\WINDOWS\System32\wbem\wbemdisp.dll contains no icons
// Error creating palette bitmap of (TSWbemLastError) : Server C:\WINDOWS\System32\wbem\wbemdisp.dll contains no icons
// Error creating palette bitmap of (TSWbemSink) : Server C:\WINDOWS\System32\wbem\wbemdisp.dll contains no icons
// Error creating palette bitmap of (TSWbemDateTime) : Server C:\WINDOWS\System32\wbem\wbemdisp.dll contains no icons
// Error creating palette bitmap of (TSWbemRefresher) : Server C:\WINDOWS\System32\wbem\wbemdisp.dll contains no icons
// ************************************************************************ //
// *************************************************************************//
// NOTE:
// Items guarded by $IFDEF_LIVE_SERVER_AT_DESIGN_TIME are used by properties
// which return objects that may need to be explicitly created via a function
// call prior to any access via the property. These items have been disabled
// in order to prevent accidental use from within the object inspector. You
// may enable them by defining LIVE_SERVER_AT_DESIGN_TIME or by selectively
// removing them from the $IFDEF blocks. However, such items must still be
// programmatically created via a method of the appropriate CoClass before
// they can be used.
{$TYPEDADDRESS OFF} // Unit must be compiled without type-checked pointers.
{$WARN SYMBOL_PLATFORM OFF}
{$WRITEABLECONST ON}

interface

uses Windows, ActiveX, Classes, Graphics, OleServer, StdVCL, Variants;


// *********************************************************************//
// GUIDS declared in the TypeLibrary. Following prefixes are used:
// Type Libraries : LIBID_xxxx
// CoClasses : CLASS_xxxx
// DISPInterfaces : DIID_xxxx
// Non-DISP interfaces: IID_xxxx
// *********************************************************************//
const
// TypeLibrary Major and minor versions
WbemScriptingMajorVersion = 1;
WbemScriptingMinorVersion = 2;

LIBID_WbemScripting: TGUID = '{565783C6-CB41-11D1-8B02-00600806D9B6}';

IID_ISWbemServices: TGUID = '{76A6415C-CB41-11D1-8B02-00600806D9B6}';
IID_ISWbemObject: TGUID = '{76A6415A-CB41-11D1-8B02-00600806D9B6}';
IID_ISWbemObjectPath: TGUID = '{5791BC27-CE9C-11D1-97BF-0000F81E849C}';
IID_ISWbemNamedValueSet: TGUID = '{CF2376EA-CE8C-11D1-8B05-00600806D9B6}';
IID_ISWbemNamedValue: TGUID = '{76A64164-CB41-11D1-8B02-00600806D9B6}';
IID_ISWbemSecurity: TGUID = '{B54D66E6-2287-11D2-8B33-00600806D9B6}';
IID_ISWbemPrivilegeSet: TGUID = '{26EE67BF-5804-11D2-8B4A-00600806D9B6}';
IID_ISWbemPrivilege: TGUID = '{26EE67BD-5804-11D2-8B4A-00600806D9B6}';
IID_ISWbemObjectSet: TGUID = '{76A6415F-CB41-11D1-8B02-00600806D9B6}';
IID_ISWbemQualifierSet: TGUID = '{9B16ED16-D3DF-11D1-8B08-00600806D9B6}';
IID_ISWbemQualifier: TGUID = '{79B05932-D3B7-11D1-8B06-00600806D9B6}';
IID_ISWbemPropertySet: TGUID = '{DEA0A7B2-D4BA-11D1-8B09-00600806D9B6}';
IID_ISWbemProperty: TGUID = '{1A388F98-D4BA-11D1-8B09-00600806D9B6}';
IID_ISWbemMethodSet: TGUID = '{C93BA292-D955-11D1-8B09-00600806D9B6}';
IID_ISWbemMethod: TGUID = '{422E8E90-D955-11D1-8B09-00600806D9B6}';
IID_ISWbemEventSource: TGUID = '{27D54D92-0EBE-11D2-8B22-00600806D9B6}';
IID_ISWbemLocator: TGUID = '{76A6415B-CB41-11D1-8B02-00600806D9B6}';
IID_ISWbemLastError: TGUID = '{D962DB84-D4BB-11D1-8B09-00600806D9B6}';
DIID_ISWbemSinkEvents: TGUID = '{75718CA0-F029-11D1-A1AC-00C04FB6C223}';
IID_ISWbemSink: TGUID = '{75718C9F-F029-11D1-A1AC-00C04FB6C223}';
IID_ISWbemServicesEx: TGUID = '{D2F68443-85DC-427E-91D8-366554CC754C}';
IID_ISWbemObjectEx: TGUID = '{269AD56A-8A67-4129-BC8C-0506DCFE9880}';
IID_ISWbemDateTime: TGUID = '{5E97458A-CF77-11D3-B38F-00105A1F473A}';
IID_ISWbemRefresher: TGUID = '{14D8250E-D9C2-11D3-B38F-00105A1F473A}';
IID_ISWbemRefreshableItem: TGUID = '{5AD4BF92-DAAB-11D3-B38F-00105A1F473A}';
CLASS_SWbemLocator: TGUID = '{76A64158-CB41-11D1-8B02-00600806D9B6}';
CLASS_SWbemNamedValueSet: TGUID = '{9AED384E-CE8B-11D1-8B05-00600806D9B6}';
CLASS_SWbemObjectPath: TGUID = '{5791BC26-CE9C-11D1-97BF-0000F81E849C}';
CLASS_SWbemLastError: TGUID = '{C2FEEEAC-CFCD-11D1-8B05-00600806D9B6}';
CLASS_SWbemSink: TGUID = '{75718C9A-F029-11D1-A1AC-00C04FB6C223}';
CLASS_SWbemDateTime: TGUID = '{47DFBE54-CF76-11D3-B38F-00105A1F473A}';
CLASS_SWbemRefresher: TGUID = '{D269BF5C-D9C1-11D3-B38F-00105A1F473A}';
CLASS_SWbemServices: TGUID = '{04B83D63-21AE-11D2-8B33-00600806D9B6}';
CLASS_SWbemServicesEx: TGUID = '{62E522DC-8CF3-40A8-8B2E-37D595651E40}';
CLASS_SWbemObject: TGUID = '{04B83D62-21AE-11D2-8B33-00600806D9B6}';
CLASS_SWbemObjectEx: TGUID = '{D6BDAFB2-9435-491F-BB87-6AA0F0BC31A2}';
CLASS_SWbemObjectSet: TGUID = '{04B83D61-21AE-11D2-8B33-00600806D9B6}';
CLASS_SWbemNamedValue: TGUID = '{04B83D60-21AE-11D2-8B33-00600806D9B6}';
CLASS_SWbemQualifier: TGUID = '{04B83D5F-21AE-11D2-8B33-00600806D9B6}';
CLASS_SWbemQualifierSet: TGUID = '{04B83D5E-21AE-11D2-8B33-00600806D9B6}';
CLASS_SWbemProperty: TGUID = '{04B83D5D-21AE-11D2-8B33-00600806D9B6}';
CLASS_SWbemPropertySet: TGUID = '{04B83D5C-21AE-11D2-8B33-00600806D9B6}';
CLASS_SWbemMethod: TGUID = '{04B83D5B-21AE-11D2-8B33-00600806D9B6}';
CLASS_SWbemMethodSet: TGUID = '{04B83D5A-21AE-11D2-8B33-00600806D9B6}';
CLASS_SWbemEventSource: TGUID = '{04B83D58-21AE-11D2-8B33-00600806D9B6}';
CLASS_SWbemSecurity: TGUID = '{B54D66E9-2287-11D2-8B33-00600806D9B6}';
CLASS_SWbemPrivilege: TGUID = '{26EE67BC-5804-11D2-8B4A-00600806D9B6}';
CLASS_SWbemPrivilegeSet: TGUID = '{26EE67BE-5804-11D2-8B4A-00600806D9B6}';
CLASS_SWbemRefreshableItem: TGUID = '{8C6854BC-DE4B-11D3-B390-00105A1F473A}';

// *********************************************************************//
// Declaration of Enumerations defined in Type Library
// *********************************************************************//
// Constants for enum WbemImpersonationLevelEnum
type
WbemImpersonationLevelEnum = TOleEnum;
const
wbemImpersonationLevelAnonymous = $00000001;
wbemImpersonationLevelIdentify = $00000002;
wbemImpersonationLevelImpersonate = $00000003;
wbemImpersonationLevelDelegate = $00000004;

// Constants for enum WbemAuthenticationLevelEnum
type
WbemAuthenticationLevelEnum = TOleEnum;
const
wbemAuthenticationLevelDefault = $00000000;
wbemAuthenticationLevelNone = $00000001;
wbemAuthenticationLevelConnect = $00000002;
wbemAuthenticationLevelCall = $00000003;
wbemAuthenticationLevelPkt = $00000004;
wbemAuthenticationLevelPktIntegrity = $00000005;
wbemAuthenticationLevelPktPrivacy = $00000006;

// Constants for enum WbemPrivilegeEnum
type
WbemPrivilegeEnum = TOleEnum;
const
wbemPrivilegeCreateToken = $00000001;
wbemPrivilegePrimaryToken = $00000002;
wbemPrivilegeLockMemory = $00000003;
wbemPrivilegeIncreaseQuota = $00000004;
wbemPrivilegeMachineAccount = $00000005;
wbemPrivilegeTcb = $00000006;
wbemPrivilegeSecurity = $00000007;
wbemPrivilegeTakeOwnership = $00000008;
wbemPrivilegeLoadDriver = $00000009;
wbemPrivilegeSystemProfile = $0000000A;
wbemPrivilegeSystemtime = $0000000B;
wbemPrivilegeProfileSingleProcess = $0000000C;
wbemPrivilegeIncreaseBasePriority = $0000000D;
wbemPrivilegeCreatePagefile = $0000000E;
wbemPrivilegeCreatePermanent = $0000000F;
wbemPrivilegeBackup = $00000010;
wbemPrivilegeRestore = $00000011;
wbemPrivilegeShutdown = $00000012;
wbemPrivilegeDebug = $00000013;
wbemPrivilegeAudit = $00000014;
wbemPrivilegeSystemEnvironment = $00000015;
wbemPrivilegeChangeNotify = $00000016;
wbemPrivilegeRemoteShutdown = $00000017;
wbemPrivilegeUndock = $00000018;
wbemPrivilegeSyncAgent = $00000019;
wbemPrivilegeEnableDelegation = $0000001A;
wbemPrivilegeManageVolume = $0000001B;

// Constants for enum WbemCimtypeEnum
type
WbemCimtypeEnum = TOleEnum;
const
wbemCimtypeSint8 = $00000010;
wbemCimtypeUint8 = $00000011;
wbemCimtypeSint16 = $00000002;
wbemCimtypeUint16 = $00000012;
wbemCimtypeSint32 = $00000003;
wbemCimtypeUint32 = $00000013;
wbemCimtypeSint64 = $00000014;
wbemCimtypeUint64 = $00000015;
wbemCimtypeReal32 = $00000004;
wbemCimtypeReal64 = $00000005;
wbemCimtypeBoolean = $0000000B;
wbemCimtypeString = $00000008;
wbemCimtypeDatetime = $00000065;
wbemCimtypeReference = $00000066;
wbemCimtypeChar16 = $00000067;
wbemCimtypeObject = $0000000D;

// Constants for enum WbemErrorEnum
type
WbemErrorEnum = TOleEnum;
const
wbemNoErr = $00000000;
wbemErrFailed = $80041001;
wbemErrNotFound = $80041002;
wbemErrAccessDenied = $80041003;
wbemErrProviderFailure = $80041004;
wbemErrTypeMismatch = $80041005;
wbemErrOutOfMemory = $80041006;
wbemErrInvalidContext = $80041007;
wbemErrInvalidParameter = $80041008;
wbemErrNotAvailable = $80041009;
wbemErrCriticalError = $8004100A;
wbemErrInvalidStream = $8004100B;
wbemErrNotSupported = $8004100C;
wbemErrInvalidSuperclass = $8004100D;
wbemErrInvalidNamespace = $8004100E;
wbemErrInvalidObject = $8004100F;
wbemErrInvalidClass = $80041010;
wbemErrProviderNotFound = $80041011;
wbemErrInvalidProviderRegistration = $80041012;
wbemErrProviderLoadFailure = $80041013;
wbemErrInitializationFailure = $80041014;
wbemErrTransportFailure = $80041015;
wbemErrInvalidOperation = $80041016;
wbemErrInvalidQuery = $80041017;
wbemErrInvalidQueryType = $80041018;
wbemErrAlreadyExists = $80041019;
wbemErrOverrideNotAllowed = $8004101A;
wbemErrPropagatedQualifier = $8004101B;
wbemErrPropagatedProperty = $8004101C;
wbemErrUnexpected = $8004101D;
wbemErrIllegalOperation = $8004101E;
wbemErrCannotBeKey = $8004101F;
wbemErrIncompleteClass = $80041020;
wbemErrInvalidSyntax = $80041021;
wbemErrNondecoratedObject = $80041022;
wbemErrReadOnly = $80041023;
wbemErrProviderNotCapable = $80041024;
wbemErrClassHasChildren = $80041025;
wbemErrClassHasInstances = $80041026;
wbemErrQueryNotImplemented = $80041027;
wbemErrIllegalNull = $80041028;
wbemErrInvalidQualifierType = $80041029;
wbemErrInvalidPropertyType = $8004102A;
wbemErrValueOutOfRange = $8004102B;
wbemErrCannotBeSingleton = $8004102C;
wbemErrInvalidCimType = $8004102D;
wbemErrInvalidMethod = $8004102E;
wbemErrInvalidMethodParameters = $8004102F;
wbemErrSystemProperty = $80041030;
wbemErrInvalidProperty = $80041031;
wbemErrCallCancelled = $80041032;
wbemErrShuttingDown = $80041033;
wbemErrPropagatedMethod = $80041034;
wbemErrUnsupportedParameter = $80041035;
wbemErrMissingParameter = $80041036;
wbemErrInvalidParameterId = $80041037;
wbemErrNonConsecutiveParameterIds = $80041038;
wbemErrParameterIdOnRetval = $80041039;
wbemErrInvalidObjectPath = $8004103A;
wbemErrOutOfDiskSpace = $8004103B;
wbemErrBufferTooSmall = $8004103C;
wbemErrUnsupportedPutExtension = $8004103D;
wbemErrUnknownObjectType = $8004103E;
wbemErrUnknownPacketType = $8004103F;
wbemErrMarshalVersionMismatch = $80041040;
wbemErrMarshalInvalidSignature = $80041041;
wbemErrInvalidQualifier = $80041042;
wbemErrInvalidDuplicateParameter = $80041043;
wbemErrTooMuchData = $80041044;
wbemErrServerTooBusy = $80041045;
wbemErrInvalidFlavor = $80041046;
wbemErrCircularReference = $80041047;
wbemErrUnsupportedClassUpdate = $80041048;
wbemErrCannotChangeKeyInheritance = $80041049;
wbemErrCannotChangeIndexInheritance = $80041050;
wbemErrTooManyProperties = $80041051;
wbemErrUpdateTypeMismatch = $80041052;
wbemErrUpdateOverrideNotAllowed = $80041053;
wbemErrUpdatePropagatedMethod = $80041054;
wbemErrMethodNotImplemented = $80041055;
wbemErrMethodDisabled = $80041056;
wbemErrRefresherBusy = $80041057;
wbemErrUnparsableQuery = $80041058;
wbemErrNotEventClass = $80041059;
wbemErrMissingGroupWithin = $8004105A;
wbemErrMissingAggregationList = $8004105B;
wbemErrPropertyNotAnObject = $8004105C;
wbemErrAggregatingByObject = $8004105D;
wbemErrUninterpretableProviderQuery = $8004105F;
wbemErrBackupRestoreWinmgmtRunning = $80041060;
wbemErrQueueOverflow = $80041061;
wbemErrPrivilegeNotHeld = $80041062;
wbemErrInvalidOperator = $80041063;
wbemErrLocalCredentials = $80041064;
wbemErrCannotBeAbstract = $80041065;
wbemErrAmendedObject = $80041066;
wbemErrClientTooSlow = $80041067;
wbemErrNullSecurityDescriptor = $80041068;
wbemErrTimeout = $80041069;
wbemErrInvalidAssociation = $8004106A;
wbemErrAmbiguousOperation = $8004106B;
wbemErrQuotaViolation = $8004106C;
wbemErrTransactionConflict = $8004106D;
wbemErrForcedRollback = $8004106E;
wbemErrUnsupportedLocale = $8004106F;
wbemErrHandleOutOfDate = $80041070;
wbemErrConnectionFailed = $80041071;
wbemErrInvalidHandleRequest = $80041072;
wbemErrPropertyNameTooWide = $80041073;
wbemErrClassNameTooWide = $80041074;
wbemErrMethodNameTooWide = $80041075;
wbemErrQualifierNameTooWide = $80041076;
wbemErrRerunCommand = $80041077;
wbemErrDatabaseVerMismatch = $80041078;
wbemErrVetoPut = $80041079;
wbemErrVetoDelete = $8004107A;
wbemErrInvalidLocale = $80041080;
wbemErrProviderSuspended = $80041081;
wbemErrSynchronizationRequired = $80041082;
wbemErrNoSchema = $80041083;
wbemErrProviderAlreadyRegistered = $80041084;
wbemErrProviderNotRegistered = $80041085;
wbemErrFatalTransportError = $80041086;
wbemErrEncryptedConnectionRequired = $80041087;
wbemErrRegistrationTooBroad = $80042001;
wbemErrRegistrationTooPrecise = $80042002;
wbemErrTimedout = $80043001;
wbemErrResetToDefault = $80043002;

// Constants for enum WbemObjectTextFormatEnum
type
WbemObjectTextFormatEnum = TOleEnum;
const
wbemObjectTextFormatCIMDTD20 = $00000001;
wbemObjectTextFormatWMIDTD20 = $00000002;

// Constants for enum WbemChangeFlagEnum
type
WbemChangeFlagEnum = TOleEnum;
const
wbemChangeFlagCreateOrUpdate = $00000000;
wbemChangeFlagUpdateOnly = $00000001;
wbemChangeFlagCreateOnly = $00000002;
wbemChangeFlagUpdateCompatible = $00000000;
wbemChangeFlagUpdateSafeMode = $00000020;
wbemChangeFlagUpdateForceMode = $00000040;
wbemChangeFlagStrongValidation = $00000080;
wbemChangeFlagAdvisory = $00010000;

// Constants for enum WbemFlagEnum
type
WbemFlagEnum = TOleEnum;
const
wbemFlagReturnImmediately = $00000010;
wbemFlagReturnWhenComplete = $00000000;
wbemFlagBidirectional = $00000000;
wbemFlagForwardOnly = $00000020;
wbemFlagNoErrorObject = $00000040;
wbemFlagReturnErrorObject = $00000000;
wbemFlagSendStatus = $00000080;
wbemFlagDontSendStatus = $00000000;
wbemFlagEnsureLocatable = $00000100;
wbemFlagDirectRead = $00000200;
wbemFlagSendOnlySelected = $00000000;
wbemFlagUseAmendedQualifiers = $00020000;
wbemFlagGetDefault = $00000000;
wbemFlagSpawnInstance = $00000001;
wbemFlagUseCurrentTime = $00000001;

// Constants for enum WbemQueryFlagEnum
type
WbemQueryFlagEnum = TOleEnum;
const
wbemQueryFlagDeep = $00000000;
wbemQueryFlagShallow = $00000001;
wbemQueryFlagPrototype = $00000002;

// Constants for enum WbemTextFlagEnum
type
WbemTextFlagEnum = TOleEnum;
const
wbemTextFlagNoFlavors = $00000001;

// Constants for enum WbemTimeout
type
WbemTimeout = TOleEnum;
const
wbemTimeoutInfinite = $FFFFFFFF;

// Constants for enum WbemComparisonFlagEnum
type
WbemComparisonFlagEnum = TOleEnum;
const
wbemComparisonFlagIncludeAll = $00000000;
wbemComparisonFlagIgnoreQualifiers = $00000001;
wbemComparisonFlagIgnoreObjectSource = $00000002;
wbemComparisonFlagIgnoreDefaultValues = $00000004;
wbemComparisonFlagIgnoreClass = $00000008;
wbemComparisonFlagIgnoreCase = $00000010;
wbemComparisonFlagIgnoreFlavor = $00000020;

// Constants for enum WbemConnectOptionsEnum
type
WbemConnectOptionsEnum = TOleEnum;
const
wbemConnectFlagUseMaxWait = $00000080;

type

// *********************************************************************//
// Forward declaration of types defined in TypeLibrary
// *********************************************************************//
ISWbemServices = interface;
ISWbemServicesDisp = dispinterface;
ISWbemObject = interface;
ISWbemObjectDisp = dispinterface;
ISWbemObjectPath = interface;
ISWbemObjectPathDisp = dispinterface;
ISWbemNamedValueSet = interface;
ISWbemNamedValueSetDisp = dispinterface;
ISWbemNamedValue = interface;
ISWbemNamedValueDisp = dispinterface;
ISWbemSecurity = interface;
ISWbemSecurityDisp = dispinterface;
ISWbemPrivilegeSet = interface;
ISWbemPrivilegeSetDisp = dispinterface;
ISWbemPrivilege = interface;
ISWbemPrivilegeDisp = dispinterface;
ISWbemObjectSet = interface;
ISWbemObjectSetDisp = dispinterface;
ISWbemQualifierSet = interface;
ISWbemQualifierSetDisp = dispinterface;
ISWbemQualifier = interface;
ISWbemQualifierDisp = dispinterface;
ISWbemPropertySet = interface;
ISWbemPropertySetDisp = dispinterface;
ISWbemProperty = interface;
ISWbemPropertyDisp = dispinterface;
ISWbemMethodSet = interface;
ISWbemMethodSetDisp = dispinterface;
ISWbemMethod = interface;
ISWbemMethodDisp = dispinterface;
ISWbemEventSource = interface;
ISWbemEventSourceDisp = dispinterface;
ISWbemLocator = interface;
ISWbemLocatorDisp = dispinterface;
ISWbemLastError = interface;
ISWbemLastErrorDisp = dispinterface;
ISWbemSinkEvents = dispinterface;
ISWbemSink = interface;
ISWbemSinkDisp = dispinterface;
ISWbemServicesEx = interface;
ISWbemServicesExDisp = dispinterface;
ISWbemObjectEx = interface;
ISWbemObjectExDisp = dispinterface;
ISWbemDateTime = interface;
ISWbemDateTimeDisp = dispinterface;
ISWbemRefresher = interface;
ISWbemRefresherDisp = dispinterface;
ISWbemRefreshableItem = interface;
ISWbemRefreshableItemDisp = dispinterface;

// *********************************************************************//
// Declaration of CoClasses defined in Type Library
// (NOTE: Here we map each CoClass to its Default Interface)
// *********************************************************************//
SWbemLocator = ISWbemLocator;
SWbemNamedValueSet = ISWbemNamedValueSet;
SWbemObjectPath = ISWbemObjectPath;
SWbemLastError = ISWbemLastError;
SWbemSink = ISWbemSink;
SWbemDateTime = ISWbemDateTime;
SWbemRefresher = ISWbemRefresher;
SWbemServices = ISWbemServices;
SWbemServicesEx = ISWbemServicesEx;
SWbemObject = ISWbemObject;
SWbemObjectEx = ISWbemObjectEx;
SWbemObjectSet = ISWbemObjectSet;
SWbemNamedValue = ISWbemNamedValue;
SWbemQualifier = ISWbemQualifier;
SWbemQualifierSet = ISWbemQualifierSet;
SWbemProperty = ISWbemProperty;
SWbemPropertySet = ISWbemPropertySet;
SWbemMethod = ISWbemMethod;
SWbemMethodSet = ISWbemMethodSet;
SWbemEventSource = ISWbemEventSource;
SWbemSecurity = ISWbemSecurity;
SWbemPrivilege = ISWbemPrivilege;
SWbemPrivilegeSet = ISWbemPrivilegeSet;
SWbemRefreshableItem = ISWbemRefreshableItem;


// *********************************************************************//
// Declaration of structures, unions and aliases.
// *********************************************************************//
POleVariant1 = ^OleVariant; {*}


// *********************************************************************//
// Interface: ISWbemServices
// Flags: (4432) Hidden Dual OleAutomation Dispatchable
// GUID: {76A6415C-CB41-11D1-8B02-00600806D9B6}
// *********************************************************************//
ISWbemServices = interface(IDispatch)
['{76A6415C-CB41-11D1-8B02-00600806D9B6}']
function Get(const strObjectPath: WideString; iFlags: Integer;
const objWbemNamedValueSet: IDispatch): ISWbemObject; safecall;
procedure GetAsync(const objWbemSink: IDispatch; const strObjectPath: WideString;
iFlags: Integer; const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); safecall;
procedure Delete(const strObjectPath: WideString; iFlags: Integer;
const objWbemNamedValueSet: IDispatch); safecall;
procedure DeleteAsync(const objWbemSink: IDispatch; const strObjectPath: WideString;
iFlags: Integer; const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); safecall;
function InstancesOf(const strClass: WideString; iFlags: Integer;
const objWbemNamedValueSet: IDispatch): ISWbemObjectSet; safecall;
procedure InstancesOfAsync(const objWbemSink: IDispatch; const strClass: WideString;
iFlags: Integer; const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); safecall;
function SubclassesOf(const strSuperclass: WideString; iFlags: Integer;
const objWbemNamedValueSet: IDispatch): ISWbemObjectSet; safecall;
procedure SubclassesOfAsync(const objWbemSink: IDispatch; const strSuperclass: WideString;
iFlags: Integer; const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); safecall;
function ExecQuery(const strQuery: WideString; const strQueryLanguage: WideString;
iFlags: Integer; const objWbemNamedValueSet: IDispatch): ISWbemObjectSet; safecall;
procedure ExecQueryAsync(const objWbemSink: IDispatch; const strQuery: WideString;
const strQueryLanguage: WideString; lFlags: Integer;
const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); safecall;
function AssociatorsOf(const strObjectPath: WideString; const strAssocClass: WideString;
const strResultClass: WideString; const strResultRole: WideString;
const strRole: WideString; bClassesOnly: WordBool;
bSchemaOnly: WordBool; const strRequiredAssocQualifier: WideString;
const strRequiredQualifier: WideString; iFlags: Integer;
const objWbemNamedValueSet: IDispatch): ISWbemObjectSet; safecall;
procedure AssociatorsOfAsync(const objWbemSink: IDispatch; const strObjectPath: WideString;
const strAssocClass: WideString; const strResultClass: WideString;
const strResultRole: WideString; const strRole: WideString;
bClassesOnly: WordBool; bSchemaOnly: WordBool;
const strRequiredAssocQualifier: WideString;
const strRequiredQualifier: WideString; iFlags: Integer;
const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); safecall;
function ReferencesTo(const strObjectPath: WideString; const strResultClass: WideString;
const strRole: WideString; bClassesOnly: WordBool; bSchemaOnly: WordBool;
const strRequiredQualifier: WideString; iFlags: Integer;
const objWbemNamedValueSet: IDispatch): ISWbemObjectSet; safecall;
procedure ReferencesToAsync(const objWbemSink: IDispatch; const strObjectPath: WideString;
const strResultClass: WideString; const strRole: WideString;
bClassesOnly: WordBool; bSchemaOnly: WordBool;
const strRequiredQualifier: WideString; iFlags: Integer;
const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); safecall;
function ExecNotificationQuery(const strQuery: WideString; const strQueryLanguage: WideString;
iFlags: Integer; const objWbemNamedValueSet: IDispatch): ISWbemEventSource; safecall;
procedure ExecNotificationQueryAsync(const objWbemSink: IDispatch; const strQuery: WideString;
const strQueryLanguage: WideString; iFlags: Integer;
const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); safecall;
function ExecMethod(const strObjectPath: WideString; const strMethodName: WideString;
const objWbemInParameters: IDispatch; iFlags: Integer;
const objWbemNamedValueSet: IDispatch): ISWbemObject; safecall;
procedure ExecMethodAsync(const objWbemSink: IDispatch; const strObjectPath: WideString;
const strMethodName: WideString;
const objWbemInParameters: IDispatch; iFlags: Integer;
const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); safecall;
function Get_Security_: ISWbemSecurity; safecall;
property Security_: ISWbemSecurity read Get_Security_;
end;

// *********************************************************************//
// DispIntf: ISWbemServicesDisp
// Flags: (4432) Hidden Dual OleAutomation Dispatchable
// GUID: {76A6415C-CB41-11D1-8B02-00600806D9B6}
// *********************************************************************//
ISWbemServicesDisp = dispinterface
['{76A6415C-CB41-11D1-8B02-00600806D9B6}']
function Get(const strObjectPath: WideString; iFlags: Integer;
const objWbemNamedValueSet: IDispatch): ISWbemObject; dispid 1;
procedure GetAsync(const objWbemSink: IDispatch; const strObjectPath: WideString;
iFlags: Integer; const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); dispid 2;
procedure Delete(const strObjectPath: WideString; iFlags: Integer;
const objWbemNamedValueSet: IDispatch); dispid 3;
procedure DeleteAsync(const objWbemSink: IDispatch; const strObjectPath: WideString;
iFlags: Integer; const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); dispid 4;
function InstancesOf(const strClass: WideString; iFlags: Integer;
const objWbemNamedValueSet: IDispatch): ISWbemObjectSet; dispid 5;
procedure InstancesOfAsync(const objWbemSink: IDispatch; const strClass: WideString;
iFlags: Integer; const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); dispid 6;
function SubclassesOf(const strSuperclass: WideString; iFlags: Integer;
const objWbemNamedValueSet: IDispatch): ISWbemObjectSet; dispid 7;
procedure SubclassesOfAsync(const objWbemSink: IDispatch; const strSuperclass: WideString;
iFlags: Integer; const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); dispid 8;
function ExecQuery(const strQuery: WideString; const strQueryLanguage: WideString;
iFlags: Integer; const objWbemNamedValueSet: IDispatch): ISWbemObjectSet; dispid 9;
procedure ExecQueryAsync(const objWbemSink: IDispatch; const strQuery: WideString;
const strQueryLanguage: WideString; lFlags: Integer;
const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); dispid 10;
function AssociatorsOf(const strObjectPath: WideString; const strAssocClass: WideString;
const strResultClass: WideString; const strResultRole: WideString;
const strRole: WideString; bClassesOnly: WordBool;
bSchemaOnly: WordBool; const strRequiredAssocQualifier: WideString;
const strRequiredQualifier: WideString; iFlags: Integer;
const objWbemNamedValueSet: IDispatch): ISWbemObjectSet; dispid 11;
procedure AssociatorsOfAsync(const objWbemSink: IDispatch; const strObjectPath: WideString;
const strAssocClass: WideString; const strResultClass: WideString;
const strResultRole: WideString; const strRole: WideString;
bClassesOnly: WordBool; bSchemaOnly: WordBool;
const strRequiredAssocQualifier: WideString;
const strRequiredQualifier: WideString; iFlags: Integer;
const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); dispid 12;
function ReferencesTo(const strObjectPath: WideString; const strResultClass: WideString;
const strRole: WideString; bClassesOnly: WordBool; bSchemaOnly: WordBool;
const strRequiredQualifier: WideString; iFlags: Integer;
const objWbemNamedValueSet: IDispatch): ISWbemObjectSet; dispid 13;
procedure ReferencesToAsync(const objWbemSink: IDispatch; const strObjectPath: WideString;
const strResultClass: WideString; const strRole: WideString;
bClassesOnly: WordBool; bSchemaOnly: WordBool;
const strRequiredQualifier: WideString; iFlags: Integer;
const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); dispid 14;
function ExecNotificationQuery(const strQuery: WideString; const strQueryLanguage: WideString;
iFlags: Integer; const objWbemNamedValueSet: IDispatch): ISWbemEventSource; dispid 15;
procedure ExecNotificationQueryAsync(const objWbemSink: IDispatch; const strQuery: WideString;
const strQueryLanguage: WideString; iFlags: Integer;
const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); dispid 16;
function ExecMethod(const strObjectPath: WideString; const strMethodName: WideString;
const objWbemInParameters: IDispatch; iFlags: Integer;
const objWbemNamedValueSet: IDispatch): ISWbemObject; dispid 17;
procedure ExecMethodAsync(const objWbemSink: IDispatch; const strObjectPath: WideString;
const strMethodName: WideString;
const objWbemInParameters: IDispatch; iFlags: Integer;
const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); dispid 18;
property Security_: ISWbemSecurity readonly dispid 19;
end;

// *********************************************************************//
// Interface: ISWbemObject
// Flags: (4432) Hidden Dual OleAutomation Dispatchable
// GUID: {76A6415A-CB41-11D1-8B02-00600806D9B6}
// *********************************************************************//
ISWbemObject = interface(IDispatch)
['{76A6415A-CB41-11D1-8B02-00600806D9B6}']
function Put_(iFlags: Integer; const objWbemNamedValueSet: IDispatch): ISWbemObjectPath; safecall;
procedure PutAsync_(const objWbemSink: IDispatch; iFlags: Integer;
const objWbemNamedValueSet: IDispatch; const objWbemAsyncContext: IDispatch); safecall;
procedure Delete_(iFlags: Integer; const objWbemNamedValueSet: IDispatch); safecall;
procedure DeleteAsync_(const objWbemSink: IDispatch; iFlags: Integer;
const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); safecall;
function Instances_(iFlags: Integer; const objWbemNamedValueSet: IDispatch): ISWbemObjectSet; safecall;
procedure InstancesAsync_(const objWbemSink: IDispatch; iFlags: Integer;
const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); safecall;
function Subclasses_(iFlags: Integer; const objWbemNamedValueSet: IDispatch): ISWbemObjectSet; safecall;
procedure SubclassesAsync_(const objWbemSink: IDispatch; iFlags: Integer;
const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); safecall;
function Associators_(const strAssocClass: WideString; const strResultClass: WideString;
const strResultRole: WideString; const strRole: WideString;
bClassesOnly: WordBool; bSchemaOnly: WordBool;
const strRequiredAssocQualifier: WideString;
const strRequiredQualifier: WideString; iFlags: Integer;
const objWbemNamedValueSet: IDispatch): ISWbemObjectSet; safecall;
procedure AssociatorsAsync_(const objWbemSink: IDispatch; const strAssocClass: WideString;
const strResultClass: WideString; const strResultRole: WideString;
const strRole: WideString; bClassesOnly: WordBool;
bSchemaOnly: WordBool; const strRequiredAssocQualifier: WideString;
const strRequiredQualifier: WideString; iFlags: Integer;
const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); safecall;
function References_(const strResultClass: WideString; const strRole: WideString;
bClassesOnly: WordBool; bSchemaOnly: WordBool;
const strRequiredQualifier: WideString; iFlags: Integer;
const objWbemNamedValueSet: IDispatch): ISWbemObjectSet; safecall;
procedure ReferencesAsync_(const objWbemSink: IDispatch; const strResultClass: WideString;
const strRole: WideString; bClassesOnly: WordBool;
bSchemaOnly: WordBool; const strRequiredQualifier: WideString;
iFlags: Integer; const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); safecall;
function ExecMethod_(const strMethodName: WideString; const objWbemInParameters: IDispatch;
iFlags: Integer; const objWbemNamedValueSet: IDispatch): ISWbemObject; safecall;
procedure ExecMethodAsync_(const objWbemSink: IDispatch; const strMethodName: WideString;
const objWbemInParameters: IDispatch; iFlags: Integer;
const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); safecall;
function Clone_: ISWbemObject; safecall;
function GetObjectText_(iFlags: Integer): WideString; safecall;
function SpawnDerivedClass_(iFlags: Integer): ISWbemObject; safecall;
function SpawnInstance_(iFlags: Integer): ISWbemObject; safecall;
function CompareTo_(const objWbemObject: IDispatch; iFlags: Integer): WordBool; safecall;
function Get_Qualifiers_: ISWbemQualifierSet; safecall;
function Get_Properties_: ISWbemPropertySet; safecall;
function Get_Methods_: ISWbemMethodSet; safecall;
function Get_Derivation_: OleVariant; safecall;
function Get_Path_: ISWbemObjectPath; safecall;
function Get_Security_: ISWbemSecurity; safecall;
property Qualifiers_: ISWbemQualifierSet read Get_Qualifiers_;
property Properties_: ISWbemPropertySet read Get_Properties_;
property Methods_: ISWbemMethodSet read Get_Methods_;
property Derivation_: OleVariant read Get_Derivation_;
property Path_: ISWbemObjectPath read Get_Path_;
property Security_: ISWbemSecurity read Get_Security_;
end;

// *********************************************************************//
// DispIntf: ISWbemObjectDisp
// Flags: (4432) Hidden Dual OleAutomation Dispatchable
// GUID: {76A6415A-CB41-11D1-8B02-00600806D9B6}
// *********************************************************************//
ISWbemObjectDisp = dispinterface
['{76A6415A-CB41-11D1-8B02-00600806D9B6}']
function Put_(iFlags: Integer; const objWbemNamedValueSet: IDispatch): ISWbemObjectPath; dispid 1;
procedure PutAsync_(const objWbemSink: IDispatch; iFlags: Integer;
const objWbemNamedValueSet: IDispatch; const objWbemAsyncContext: IDispatch); dispid 2;
procedure Delete_(iFlags: Integer; const objWbemNamedValueSet: IDispatch); dispid 3;
procedure DeleteAsync_(const objWbemSink: IDispatch; iFlags: Integer;
const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); dispid 4;
function Instances_(iFlags: Integer; const objWbemNamedValueSet: IDispatch): ISWbemObjectSet; dispid 5;
procedure InstancesAsync_(const objWbemSink: IDispatch; iFlags: Integer;
const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); dispid 6;
function Subclasses_(iFlags: Integer; const objWbemNamedValueSet: IDispatch): ISWbemObjectSet; dispid 7;
procedure SubclassesAsync_(const objWbemSink: IDispatch; iFlags: Integer;
const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); dispid 8;
function Associators_(const strAssocClass: WideString; const strResultClass: WideString;
const strResultRole: WideString; const strRole: WideString;
bClassesOnly: WordBool; bSchemaOnly: WordBool;
const strRequiredAssocQualifier: WideString;

const strRequiredQualifier: WideString; iFlags: Integer;
const objWbemNamedValueSet: IDispatch): ISWbemObjectSet; dispid 9;
procedure AssociatorsAsync_(const objWbemSink: IDispatch; const strAssocClass: WideString;
const strResultClass: WideString; const strResultRole: WideString;
const strRole: WideString; bClassesOnly: WordBool;
bSchemaOnly: WordBool; const strRequiredAssocQualifier: WideString;
const strRequiredQualifier: WideString; iFlags: Integer;
const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); dispid 10;
function References_(const strResultClass: WideString; const strRole: WideString;
bClassesOnly: WordBool; bSchemaOnly: WordBool;
const strRequiredQualifier: WideString; iFlags: Integer;
const objWbemNamedValueSet: IDispatch): ISWbemObjectSet; dispid 11;
procedure ReferencesAsync_(const objWbemSink: IDispatch; const strResultClass: WideString;
const strRole: WideString; bClassesOnly: WordBool;
bSchemaOnly: WordBool; const strRequiredQualifier: WideString;
iFlags: Integer; const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); dispid 12;
function ExecMethod_(const strMethodName: WideString; const objWbemInParameters: IDispatch;
iFlags: Integer; const objWbemNamedValueSet: IDispatch): ISWbemObject; dispid 13;
procedure ExecMethodAsync_(const objWbemSink: IDispatch; const strMethodName: WideString;
const objWbemInParameters: IDispatch; iFlags: Integer;
const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); dispid 14;
function Clone_: ISWbemObject; dispid 15;
function GetObjectText_(iFlags: Integer): WideString; dispid 16;
function SpawnDerivedClass_(iFlags: Integer): ISWbemObject; dispid 17;
function SpawnInstance_(iFlags: Integer): ISWbemObject; dispid 18;
function CompareTo_(const objWbemObject: IDispatch; iFlags: Integer): WordBool; dispid 19;
property Qualifiers_: ISWbemQualifierSet readonly dispid 20;
property Properties_: ISWbemPropertySet readonly dispid 21;
property Methods_: ISWbemMethodSet readonly dispid 22;
property Derivation_: OleVariant readonly dispid 23;
property Path_: ISWbemObjectPath readonly dispid 24;
property Security_: ISWbemSecurity readonly dispid 25;
end;

// *********************************************************************//
// Interface: ISWbemObjectPath
// Flags: (4432) Hidden Dual OleAutomation Dispatchable
// GUID: {5791BC27-CE9C-11D1-97BF-0000F81E849C}
// *********************************************************************//
ISWbemObjectPath = interface(IDispatch)
['{5791BC27-CE9C-11D1-97BF-0000F81E849C}']
function Get_Path: WideString; safecall;
procedure Set_Path(const strPath: WideString); safecall;
function Get_RelPath: WideString; safecall;
procedure Set_RelPath(const strRelPath: WideString); safecall;
function Get_Server: WideString; safecall;
procedure Set_Server(const strServer: WideString); safecall;
function Get_Namespace: WideString; safecall;
procedure Set_Namespace(const strNamespace: WideString); safecall;
function Get_ParentNamespace: WideString; safecall;
function Get_DisplayName: WideString; safecall;
procedure Set_DisplayName(const strDisplayName: WideString); safecall;
function Get_Class_: WideString; safecall;
procedure Set_Class_(const strClass: WideString); safecall;
function Get_IsClass: WordBool; safecall;
procedure SetAsClass; safecall;
function Get_IsSingleton: WordBool; safecall;
procedure SetAsSingleton; safecall;
function Get_Keys: ISWbemNamedValueSet; safecall;
function Get_Security_: ISWbemSecurity; safecall;
function Get_Locale: WideString; safecall;
procedure Set_Locale(const strLocale: WideString); safecall;
function Get_Authority: WideString; safecall;
procedure Set_Authority(const strAuthority: WideString); safecall;
property Path: WideString read Get_Path write Set_Path;
property RelPath: WideString read Get_RelPath write Set_RelPath;
property Server: WideString read Get_Server write Set_Server;
property Namespace: WideString read Get_Namespace write Set_Namespace;
property ParentNamespace: WideString read Get_ParentNamespace;
property DisplayName: WideString read Get_DisplayName write Set_DisplayName;
property Class_: WideString read Get_Class_ write Set_Class_;
property IsClass: WordBool read Get_IsClass;
property IsSingleton: WordBool read Get_IsSingleton;
property Keys: ISWbemNamedValueSet read Get_Keys;
property Security_: ISWbemSecurity read Get_Security_;
property Locale: WideString read Get_Locale write Set_Locale;
property Authority: WideString read Get_Authority write Set_Authority;
end;

// *********************************************************************//
// DispIntf: ISWbemObjectPathDisp
// Flags: (4432) Hidden Dual OleAutomation Dispatchable
// GUID: {5791BC27-CE9C-11D1-97BF-0000F81E849C}
// *********************************************************************//
ISWbemObjectPathDisp = dispinterface
['{5791BC27-CE9C-11D1-97BF-0000F81E849C}']
property Path: WideString dispid 0;
property RelPath: WideString dispid 1;
property Server: WideString dispid 2;
property Namespace: WideString dispid 3;
property ParentNamespace: WideString readonly dispid 4;
property DisplayName: WideString dispid 5;
property Class_: WideString dispid 6;
property IsClass: WordBool readonly dispid 7;
procedure SetAsClass; dispid 8;
property IsSingleton: WordBool readonly dispid 9;
procedure SetAsSingleton; dispid 10;
property Keys: ISWbemNamedValueSet readonly dispid 11;
property Security_: ISWbemSecurity readonly dispid 12;
property Locale: WideString dispid 13;
property Authority: WideString dispid 14;
end;

// *********************************************************************//
// Interface: ISWbemNamedValueSet
// Flags: (4432) Hidden Dual OleAutomation Dispatchable
// GUID: {CF2376EA-CE8C-11D1-8B05-00600806D9B6}
// *********************************************************************//
ISWbemNamedValueSet = interface(IDispatch)
['{CF2376EA-CE8C-11D1-8B05-00600806D9B6}']
function Get__NewEnum: IUnknown; safecall;
function Item(const strName: WideString; iFlags: Integer): ISWbemNamedValue; safecall;
function Get_Count: Integer; safecall;
function Add(const strName: WideString; var varValue: OleVariant; iFlags: Integer): ISWbemNamedValue; safecall;
procedure Remove(const strName: WideString; iFlags: Integer); safecall;
function Clone: ISWbemNamedValueSet; safecall;
procedure DeleteAll; safecall;
property _NewEnum: IUnknown read Get__NewEnum;
property Count: Integer read Get_Count;
end;

// *********************************************************************//
// DispIntf: ISWbemNamedValueSetDisp
// Flags: (4432) Hidden Dual OleAutomation Dispatchable
// GUID: {CF2376EA-CE8C-11D1-8B05-00600806D9B6}
// *********************************************************************//
ISWbemNamedValueSetDisp = dispinterface
['{CF2376EA-CE8C-11D1-8B05-00600806D9B6}']
property _NewEnum: IUnknown readonly dispid -4;
function Item(const strName: WideString; iFlags: Integer): ISWbemNamedValue; dispid 0;
property Count: Integer readonly dispid 1;
function Add(const strName: WideString; var varValue: OleVariant; iFlags: Integer): ISWbemNamedValue; dispid 2;
procedure Remove(const strName: WideString; iFlags: Integer); dispid 3;
function Clone: ISWbemNamedValueSet; dispid 4;
procedure DeleteAll; dispid 5;
end;

// *********************************************************************//
// Interface: ISWbemNamedValue
// Flags: (4432) Hidden Dual OleAutomation Dispatchable
// GUID: {76A64164-CB41-11D1-8B02-00600806D9B6}
// *********************************************************************//
ISWbemNamedValue = interface(IDispatch)
['{76A64164-CB41-11D1-8B02-00600806D9B6}']
function Get_Value: OleVariant; safecall;
procedure Set_Value(var varValue: OleVariant); safecall;
function Get_Name: WideString; safecall;
property Name: WideString read Get_Name;
end;

// *********************************************************************//
// DispIntf: ISWbemNamedValueDisp
// Flags: (4432) Hidden Dual OleAutomation Dispatchable
// GUID: {76A64164-CB41-11D1-8B02-00600806D9B6}
// *********************************************************************//
ISWbemNamedValueDisp = dispinterface
['{76A64164-CB41-11D1-8B02-00600806D9B6}']
function Value: OleVariant; dispid 0;
property Name: WideString readonly dispid 2;
end;

// *********************************************************************//
// Interface: ISWbemSecurity
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {B54D66E6-2287-11D2-8B33-00600806D9B6}
// *********************************************************************//
ISWbemSecurity = interface(IDispatch)
['{B54D66E6-2287-11D2-8B33-00600806D9B6}']
function Get_ImpersonationLevel: WbemImpersonationLevelEnum; safecall;
procedure Set_ImpersonationLevel(iImpersonationLevel: WbemImpersonationLevelEnum); safecall;
function Get_AuthenticationLevel: WbemAuthenticationLevelEnum; safecall;
procedure Set_AuthenticationLevel(iAuthenticationLevel: WbemAuthenticationLevelEnum); safecall;
function Get_Privileges: ISWbemPrivilegeSet; safecall;
property ImpersonationLevel: WbemImpersonationLevelEnum read Get_ImpersonationLevel write Set_ImpersonationLevel;
property AuthenticationLevel: WbemAuthenticationLevelEnum read Get_AuthenticationLevel write Set_AuthenticationLevel;
property Privileges: ISWbemPrivilegeSet read Get_Privileges;
end;

// *********************************************************************//
// DispIntf: ISWbemSecurityDisp
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {B54D66E6-2287-11D2-8B33-00600806D9B6}
// *********************************************************************//
ISWbemSecurityDisp = dispinterface
['{B54D66E6-2287-11D2-8B33-00600806D9B6}']
property ImpersonationLevel: WbemImpersonationLevelEnum dispid 1;
property AuthenticationLevel: WbemAuthenticationLevelEnum dispid 2;
property Privileges: ISWbemPrivilegeSet readonly dispid 3;
end;

// *********************************************************************//
// Interface: ISWbemPrivilegeSet
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {26EE67BF-5804-11D2-8B4A-00600806D9B6}
// *********************************************************************//
ISWbemPrivilegeSet = interface(IDispatch)
['{26EE67BF-5804-11D2-8B4A-00600806D9B6}']
function Get__NewEnum: IUnknown; safecall;
function Item(iPrivilege: WbemPrivilegeEnum): ISWbemPrivilege; safecall;
function Get_Count: Integer; safecall;
function Add(iPrivilege: WbemPrivilegeEnum; bIsEnabled: WordBool): ISWbemPrivilege; safecall;
procedure Remove(iPrivilege: WbemPrivilegeEnum); safecall;
procedure DeleteAll; safecall;
function AddAsString(const strPrivilege: WideString; bIsEnabled: WordBool): ISWbemPrivilege; safecall;
property _NewEnum: IUnknown read Get__NewEnum;
property Count: Integer read Get_Count;
end;

// *********************************************************************//
// DispIntf: ISWbemPrivilegeSetDisp
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {26EE67BF-5804-11D2-8B4A-00600806D9B6}
// *********************************************************************//
ISWbemPrivilegeSetDisp = dispinterface
['{26EE67BF-5804-11D2-8B4A-00600806D9B6}']
property _NewEnum: IUnknown readonly dispid -4;
function Item(iPrivilege: WbemPrivilegeEnum): ISWbemPrivilege; dispid 0;
property Count: Integer readonly dispid 1;
function Add(iPrivilege: WbemPrivilegeEnum; bIsEnabled: WordBool): ISWbemPrivilege; dispid 2;
procedure Remove(iPrivilege: WbemPrivilegeEnum); dispid 3;
procedure DeleteAll; dispid 4;
function AddAsString(const strPrivilege: WideString; bIsEnabled: WordBool): ISWbemPrivilege; dispid 5;
end;

// *********************************************************************//
// Interface: ISWbemPrivilege
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {26EE67BD-5804-11D2-8B4A-00600806D9B6}
// *********************************************************************//
ISWbemPrivilege = interface(IDispatch)
['{26EE67BD-5804-11D2-8B4A-00600806D9B6}']
function Get_IsEnabled: WordBool; safecall;
procedure Set_IsEnabled(bIsEnabled: WordBool); safecall;
function Get_Name: WideString; safecall;
function Get_DisplayName: WideString; safecall;
function Get_Identifier: WbemPrivilegeEnum; safecall;
property IsEnabled: WordBool read Get_IsEnabled write Set_IsEnabled;
property Name: WideString read Get_Name;
property DisplayName: WideString read Get_DisplayName;
property Identifier: WbemPrivilegeEnum read Get_Identifier;
end;

// *********************************************************************//
// DispIntf: ISWbemPrivilegeDisp
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {26EE67BD-5804-11D2-8B4A-00600806D9B6}
// *********************************************************************//
ISWbemPrivilegeDisp = dispinterface
['{26EE67BD-5804-11D2-8B4A-00600806D9B6}']
property IsEnabled: WordBool dispid 0;
property Name: WideString readonly dispid 1;
property DisplayName: WideString readonly dispid 2;
property Identifier: WbemPrivilegeEnum readonly dispid 3;
end;

// *********************************************************************//
// Interface: ISWbemObjectSet
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {76A6415F-CB41-11D1-8B02-00600806D9B6}
// *********************************************************************//
ISWbemObjectSet = interface(IDispatch)
['{76A6415F-CB41-11D1-8B02-00600806D9B6}']
function Get__NewEnum: IUnknown; safecall;
function Item(const strObjectPath: WideString; iFlags: Integer): ISWbemObject; safecall;
function Get_Count: Integer; safecall;
function Get_Security_: ISWbemSecurity; safecall;
property _NewEnum: IUnknown read Get__NewEnum;
property Count: Integer read Get_Count;
property Security_: ISWbemSecurity read Get_Security_;
end;

// *********************************************************************//
// DispIntf: ISWbemObjectSetDisp
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {76A6415F-CB41-11D1-8B02-00600806D9B6}
// *********************************************************************//
ISWbemObjectSetDisp = dispinterface
['{76A6415F-CB41-11D1-8B02-00600806D9B6}']
property _NewEnum: IUnknown readonly dispid -4;
function Item(const strObjectPath: WideString; iFlags: Integer): ISWbemObject; dispid 0;
property Count: Integer readonly dispid 1;
property Security_: ISWbemSecurity readonly dispid 4;
end;

// *********************************************************************//
// Interface: ISWbemQualifierSet
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {9B16ED16-D3DF-11D1-8B08-00600806D9B6}
// *********************************************************************//
ISWbemQualifierSet = interface(IDispatch)
['{9B16ED16-D3DF-11D1-8B08-00600806D9B6}']
function Get__NewEnum: IUnknown; safecall;
function Item(const Name: WideString; iFlags: Integer): ISWbemQualifier; safecall;
function Get_Count: Integer; safecall;
function Add(const strName: WideString; var varVal: OleVariant;
bPropagatesToSubclass: WordBool; bPropagatesToInstance: WordBool;
bIsOverridable: WordBool; iFlags: Integer): ISWbemQualifier; safecall;
procedure Remove(const strName: WideString; iFlags: Integer); safecall;
property _NewEnum: IUnknown read Get__NewEnum;
property Count: Integer read Get_Count;
end;

// *********************************************************************//
// DispIntf: ISWbemQualifierSetDisp
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {9B16ED16-D3DF-11D1-8B08-00600806D9B6}
// *********************************************************************//
ISWbemQualifierSetDisp = dispinterface
['{9B16ED16-D3DF-11D1-8B08-00600806D9B6}']
property _NewEnum: IUnknown readonly dispid -4;
function Item(const Name: WideString; iFlags: Integer): ISWbemQualifier; dispid 0;
property Count: Integer readonly dispid 1;
function Add(const strName: WideString; var varVal: OleVariant;
bPropagatesToSubclass: WordBool; bPropagatesToInstance: WordBool;
bIsOverridable: WordBool; iFlags: Integer): ISWbemQualifier; dispid 2;
procedure Remove(const strName: WideString; iFlags: Integer); dispid 3;
end;

// *********************************************************************//
// Interface: ISWbemQualifier
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {79B05932-D3B7-11D1-8B06-00600806D9B6}
// *********************************************************************//
ISWbemQualifier = interface(IDispatch)
['{79B05932-D3B7-11D1-8B06-00600806D9B6}']
function Get_Value: OleVariant; safecall;
procedure Set_Value(var varValue: OleVariant); safecall;
function Get_Name: WideString; safecall;
function Get_IsLocal: WordBool; safecall;
function Get_PropagatesToSubclass: WordBool; safecall;
procedure Set_PropagatesToSubclass(bPropagatesToSubclass: WordBool); safecall;
function Get_PropagatesToInstance: WordBool; safecall;
procedure Set_PropagatesToInstance(bPropagatesToInstance: WordBool); safecall;
function Get_IsOverridable: WordBool; safecall;
procedure Set_IsOverridable(bIsOverridable: WordBool); safecall;
function Get_IsAmended: WordBool; safecall;
property Name: WideString read Get_Name;
property IsLocal: WordBool read Get_IsLocal;
property PropagatesToSubclass: WordBool read Get_PropagatesToSubclass write Set_PropagatesToSubclass;
property PropagatesToInstance: WordBool read Get_PropagatesToInstance write Set_PropagatesToInstance;
property IsOverridable: WordBool read Get_IsOverridable write Set_IsOverridable;
property IsAmended: WordBool read Get_IsAmended;
end;

// *********************************************************************//
// DispIntf: ISWbemQualifierDisp
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {79B05932-D3B7-11D1-8B06-00600806D9B6}
// *********************************************************************//
ISWbemQualifierDisp = dispinterface
['{79B05932-D3B7-11D1-8B06-00600806D9B6}']
function Value: OleVariant; dispid 0;
property Name: WideString readonly dispid 1;
property IsLocal: WordBool readonly dispid 2;
property PropagatesToSubclass: WordBool dispid 3;
property PropagatesToInstance: WordBool dispid 4;
property IsOverridable: WordBool dispid 5;
property IsAmended: WordBool readonly dispid 6;
end;

// *********************************************************************//
// Interface: ISWbemPropertySet
// Flags: (4432) Hidden Dual OleAutomation Dispatchable
// GUID: {DEA0A7B2-D4BA-11D1-8B09-00600806D9B6}
// *********************************************************************//
ISWbemPropertySet = interface(IDispatch)
['{DEA0A7B2-D4BA-11D1-8B09-00600806D9B6}']
function Get__NewEnum: IUnknown; safecall;
function Item(const strName: WideString; iFlags: Integer): ISWbemProperty; safecall;
function Get_Count: Integer; safecall;
function Add(const strName: WideString; iCimType: WbemCimtypeEnum; bIsArray: WordBool;
iFlags: Integer): ISWbemProperty; safecall;
procedure Remove(const strName: WideString; iFlags: Integer); safecall;
property _NewEnum: IUnknown read Get__NewEnum;
property Count: Integer read Get_Count;
end;

// *********************************************************************//
// DispIntf: ISWbemPropertySetDisp
// Flags: (4432) Hidden Dual OleAutomation Dispatchable
// GUID: {DEA0A7B2-D4BA-11D1-8B09-00600806D9B6}
// *********************************************************************//
ISWbemPropertySetDisp = dispinterface
['{DEA0A7B2-D4BA-11D1-8B09-00600806D9B6}']
property _NewEnum: IUnknown readonly dispid -4;
function Item(const strName: WideString; iFlags: Integer): ISWbemProperty; dispid 0;
property Count: Integer readonly dispid 1;
function Add(const strName: WideString; iCimType: WbemCimtypeEnum; bIsArray: WordBool;
iFlags: Integer): ISWbemProperty; dispid 2;
procedure Remove(const strName: WideString; iFlags: Integer); dispid 3;
end;

// *********************************************************************//
// Interface: ISWbemProperty
// Flags: (4432) Hidden Dual OleAutomation Dispatchable
// GUID: {1A388F98-D4BA-11D1-8B09-00600806D9B6}
// *********************************************************************//
ISWbemProperty = interface(IDispatch)
['{1A388F98-D4BA-11D1-8B09-00600806D9B6}']
function Get_Value: OleVariant; safecall;
procedure Set_Value(var varValue: OleVariant); safecall;
function Get_Name: WideString; safecall;
function Get_IsLocal: WordBool; safecall;
function Get_Origin: WideString; safecall;
function Get_CIMType: WbemCimtypeEnum; safecall;
function Get_Qualifiers_: ISWbemQualifierSet; safecall;
function Get_IsArray: WordBool; safecall;
property Name: WideString read Get_Name;
property IsLocal: WordBool read Get_IsLocal;
property Origin: WideString read Get_Origin;
property CIMType: WbemCimtypeEnum read Get_CIMType;
property Qualifiers_: ISWbemQualifierSet read Get_Qualifiers_;
property IsArray: WordBool read Get_IsArray;
end;

// *********************************************************************//
// DispIntf: ISWbemPropertyDisp
// Flags: (4432) Hidden Dual OleAutomation Dispatchable
// GUID: {1A388F98-D4BA-11D1-8B09-00600806D9B6}
// *********************************************************************//
ISWbemPropertyDisp = dispinterface
['{1A388F98-D4BA-11D1-8B09-00600806D9B6}']
function Value: OleVariant; dispid 0;
property Name: WideString readonly dispid 1;
property IsLocal: WordBool readonly dispid 2;
property Origin: WideString readonly dispid 3;
property CIMType: WbemCimtypeEnum readonly dispid 4;
property Qualifiers_: ISWbemQualifierSet readonly dispid 5;
property IsArray: WordBool readonly dispid 6;
end;

// *********************************************************************//
// Interface: ISWbemMethodSet
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {C93BA292-D955-11D1-8B09-00600806D9B6}
// *********************************************************************//
ISWbemMethodSet = interface(IDispatch)
['{C93BA292-D955-11D1-8B09-00600806D9B6}']
function Get__NewEnum: IUnknown; safecall;
function Item(const strName: WideString; iFlags: Integer): ISWbemMethod; safecall;
function Get_Count: Integer; safecall;
property _NewEnum: IUnknown read Get__NewEnum;
property Count: Integer read Get_Count;
end;

// *********************************************************************//
// DispIntf: ISWbemMethodSetDisp
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {C93BA292-D955-11D1-8B09-00600806D9B6}
// *********************************************************************//
ISWbemMethodSetDisp = dispinterface
['{C93BA292-D955-11D1-8B09-00600806D9B6}']
property _NewEnum: IUnknown readonly dispid -4;
function Item(const strName: WideString; iFlags: Integer): ISWbemMethod; dispid 0;
property Count: Integer readonly dispid 1;
end;

// *********************************************************************//
// Interface: ISWbemMethod
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {422E8E90-D955-11D1-8B09-00600806D9B6}
// *********************************************************************//
ISWbemMethod = interface(IDispatch)
['{422E8E90-D955-11D1-8B09-00600806D9B6}']
function Get_Name: WideString; safecall;
function Get_Origin: WideString; safecall;
function Get_InParameters: ISWbemObject; safecall;
function Get_OutParameters: ISWbemObject; safecall;
function Get_Qualifiers_: ISWbemQualifierSet; safecall;
property Name: WideString read Get_Name;
property Origin: WideString read Get_Origin;
property InParameters: ISWbemObject read Get_InParameters;
property OutParameters: ISWbemObject read Get_OutParameters;
property Qualifiers_: ISWbemQualifierSet read Get_Qualifiers_;
end;

// *********************************************************************//
// DispIntf: ISWbemMethodDisp
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {422E8E90-D955-11D1-8B09-00600806D9B6}
// *********************************************************************//
ISWbemMethodDisp = dispinterface
['{422E8E90-D955-11D1-8B09-00600806D9B6}']
property Name: WideString readonly dispid 1;
property Origin: WideString readonly dispid 2;
property InParameters: ISWbemObject readonly dispid 3;
property OutParameters: ISWbemObject readonly dispid 4;
property Qualifiers_: ISWbemQualifierSet readonly dispid 5;
end;

// *********************************************************************//
// Interface: ISWbemEventSource
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {27D54D92-0EBE-11D2-8B22-00600806D9B6}
// *********************************************************************//
ISWbemEventSource = interface(IDispatch)
['{27D54D92-0EBE-11D2-8B22-00600806D9B6}']
function NextEvent(iTimeoutMs: Integer): ISWbemObject; safecall;
function Get_Security_: ISWbemSecurity; safecall;
property Security_: ISWbemSecurity read Get_Security_;
end;

// *********************************************************************//
// DispIntf: ISWbemEventSourceDisp
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {27D54D92-0EBE-11D2-8B22-00600806D9B6}
// *********************************************************************//
ISWbemEventSourceDisp = dispinterface
['{27D54D92-0EBE-11D2-8B22-00600806D9B6}']
function NextEvent(iTimeoutMs: Integer): ISWbemObject; dispid 1;
property Security_: ISWbemSecurity readonly dispid 2;
end;

// *********************************************************************//
// Interface: ISWbemLocator
// Flags: (4432) Hidden Dual OleAutomation Dispatchable
// GUID: {76A6415B-CB41-11D1-8B02-00600806D9B6}
// *********************************************************************//
ISWbemLocator = interface(IDispatch)
['{76A6415B-CB41-11D1-8B02-00600806D9B6}']
function ConnectServer(const strServer: WideString; const strNamespace: WideString;
const strUser: WideString; const strPassword: WideString;
const strLocale: WideString; const strAuthority: WideString;
iSecurityFlags: Integer; const objWbemNamedValueSet: IDispatch): ISWbemServices; safecall;
function Get_Security_: ISWbemSecurity; safecall;
property Security_: ISWbemSecurity read Get_Security_;
end;

// *********************************************************************//
// DispIntf: ISWbemLocatorDisp
// Flags: (4432) Hidden Dual OleAutomation Dispatchable
// GUID: {76A6415B-CB41-11D1-8B02-00600806D9B6}
// *********************************************************************//
ISWbemLocatorDisp = dispinterface
['{76A6415B-CB41-11D1-8B02-00600806D9B6}']
function ConnectServer(const strServer: WideString; const strNamespace: WideString;
const strUser: WideString; const strPassword: WideString;
const strLocale: WideString; const strAuthority: WideString;
iSecurityFlags: Integer; const objWbemNamedValueSet: IDispatch): ISWbemServices; dispid 1;
property Security_: ISWbemSecurity readonly dispid 2;
end;

// *********************************************************************//
// Interface: ISWbemLastError
// Flags: (4432) Hidden Dual OleAutomation Dispatchable
// GUID: {D962DB84-D4BB-11D1-8B09-00600806D9B6}
// *********************************************************************//
ISWbemLastError = interface(ISWbemObject)
['{D962DB84-D4BB-11D1-8B09-00600806D9B6}']
end;

// *********************************************************************//
// DispIntf: ISWbemLastErrorDisp
// Flags: (4432) Hidden Dual OleAutomation Dispatchable
// GUID: {D962DB84-D4BB-11D1-8B09-00600806D9B6}
// *********************************************************************//
ISWbemLastErrorDisp = dispinterface
['{D962DB84-D4BB-11D1-8B09-00600806D9B6}']
function Put_(iFlags: Integer; const objWbemNamedValueSet: IDispatch): ISWbemObjectPath; dispid 1;
procedure PutAsync_(const objWbemSink: IDispatch; iFlags: Integer;
const objWbemNamedValueSet: IDispatch; const objWbemAsyncContext: IDispatch); dispid 2;
procedure Delete_(iFlags: Integer; const objWbemNamedValueSet: IDispatch); dispid 3;
procedure DeleteAsync_(const objWbemSink: IDispatch; iFlags: Integer;
const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); dispid 4;
function Instances_(iFlags: Integer; const objWbemNamedValueSet: IDispatch): ISWbemObjectSet; dispid 5;
procedure InstancesAsync_(const objWbemSink: IDispatch; iFlags: Integer;
const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); dispid 6;
function Subclasses_(iFlags: Integer; const objWbemNamedValueSet: IDispatch): ISWbemObjectSet; dispid 7;
procedure SubclassesAsync_(const objWbemSink: IDispatch; iFlags: Integer;
const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); dispid 8;
function Associators_(const strAssocClass: WideString; const strResultClass: WideString;
const strResultRole: WideString; const strRole: WideString;
bClassesOnly: WordBool; bSchemaOnly: WordBool;
const strRequiredAssocQualifier: WideString;
const strRequiredQualifier: WideString; iFlags: Integer;
const objWbemNamedValueSet: IDispatch): ISWbemObjectSet; dispid 9;
procedure AssociatorsAsync_(const objWbemSink: IDispatch; const strAssocClass: WideString;
const strResultClass: WideString; const strResultRole: WideString;
const strRole: WideString; bClassesOnly: WordBool;
bSchemaOnly: WordBool; const strRequiredAssocQualifier: WideString;
const strRequiredQualifier: WideString; iFlags: Integer;
const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); dispid 10;
function References_(const strResultClass: WideString; const strRole: WideString;
bClassesOnly: WordBool; bSchemaOnly: WordBool;
const strRequiredQualifier: WideString; iFlags: Integer;
const objWbemNamedValueSet: IDispatch): ISWbemObjectSet; dispid 11;
procedure ReferencesAsync_(const objWbemSink: IDispatch; const strResultClass: WideString;
const strRole: WideString; bClassesOnly: WordBool;
bSchemaOnly: WordBool; const strRequiredQualifier: WideString;
iFlags: Integer; const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); dispid 12;
function ExecMethod_(const strMethodName: WideString; const objWbemInParameters: IDispatch;
iFlags: Integer; const objWbemNamedValueSet: IDispatch): ISWbemObject; dispid 13;
procedure ExecMethodAsync_(const objWbemSink: IDispatch; const strMethodName: WideString;
const objWbemInParameters: IDispatch; iFlags: Integer;
const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); dispid 14;
function Clone_: ISWbemObject; dispid 15;
function GetObjectText_(iFlags: Integer): WideString; dispid 16;
function SpawnDerivedClass_(iFlags: Integer): ISWbemObject; dispid 17;
function SpawnInstance_(iFlags: Integer): ISWbemObject; dispid 18;
function CompareTo_(const objWbemObject: IDispatch; iFlags: Integer): WordBool; dispid 19;
property Qualifiers_: ISWbemQualifierSet readonly dispid 20;
property Properties_: ISWbemPropertySet readonly dispid 21;
property Methods_: ISWbemMethodSet readonly dispid 22;
property Derivation_: OleVariant readonly dispid 23;
property Path_: ISWbemObjectPath readonly dispid 24;
property Security_: ISWbemSecurity readonly dispid 25;
end;

// *********************************************************************//
// DispIntf: ISWbemSinkEvents
// Flags: (4240) Hidden NonExtensible Dispatchable
// GUID: {75718CA0-F029-11D1-A1AC-00C04FB6C223}
// *********************************************************************//
ISWbemSinkEvents = dispinterface
['{75718CA0-F029-11D1-A1AC-00C04FB6C223}']
procedure OnObjectReady(const objWbemObject: ISWbemObject;
const objWbemAsyncContext: ISWbemNamedValueSet); dispid 1;
procedure OnCompleted(iHResult: WbemErrorEnum; const objWbemErrorObject: ISWbemObject;
const objWbemAsyncContext: ISWbemNamedValueSet); dispid 2;
procedure OnProgress(iUpperBound: Integer; iCurrent: Integer; const strMessage: WideString;
const objWbemAsyncContext: ISWbemNamedValueSet); dispid 3;
procedure OnObjectPut(const objWbemObjectPath: ISWbemObjectPath;
const objWbemAsyncContext: ISWbemNamedValueSet); dispid 4;
end;

// *********************************************************************//
// Interface: ISWbemSink
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {75718C9F-F029-11D1-A1AC-00C04FB6C223}
// *********************************************************************//
ISWbemSink = interface(IDispatch)
['{75718C9F-F029-11D1-A1AC-00C04FB6C223}']
procedure Cancel; safecall;
end;

// *********************************************************************//
// DispIntf: ISWbemSinkDisp
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {75718C9F-F029-11D1-A1AC-00C04FB6C223}
// *********************************************************************//
ISWbemSinkDisp = dispinterface
['{75718C9F-F029-11D1-A1AC-00C04FB6C223}']
procedure Cancel; dispid 1;
end;

// *********************************************************************//
// Interface: ISWbemServicesEx
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {D2F68443-85DC-427E-91D8-366554CC754C}
// *********************************************************************//
ISWbemServicesEx = interface(ISWbemServices)
['{D2F68443-85DC-427E-91D8-366554CC754C}']
function Put(const objWbemObject: ISWbemObjectEx; iFlags: Integer;
const objWbemNamedValueSet: IDispatch): ISWbemObjectPath; safecall;
procedure PutAsync(const objWbemSink: ISWbemSink; const objWbemObject: ISWbemObjectEx;
iFlags: Integer; const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); safecall;
end;

// *********************************************************************//
// DispIntf: ISWbemServicesExDisp
// Flags: (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID: {D2F68443-85DC-427E-91D8-366554CC754C}
// *********************************************************************//
ISWbemServicesExDisp = dispinterface
['{D2F68443-85DC-427E-91D8-366554CC754C}']
function Put(const objWbemObject: ISWbemObjectEx; iFlags: Integer;
const objWbemNamedValueSet: IDispatch): ISWbemObjectPath; dispid 20;
procedure PutAsync(const objWbemSink: ISWbemSink; const objWbemObject: ISWbemObjectEx;
iFlags: Integer; const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); dispid 21;
function Get(const strObjectPath: WideString; iFlags: Integer;
const objWbemNamedValueSet: IDispatch): ISWbemObject; dispid 1;
procedure GetAsync(const objWbemSink: IDispatch; const strObjectPath: WideString;
iFlags: Integer; const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); dispid 2;
procedure Delete(const strObjectPath: WideString; iFlags: Integer;
const objWbemNamedValueSet: IDispatch); dispid 3;
procedure DeleteAsync(const objWbemSink: IDispatch; const strObjectPath: WideString;
iFlags: Integer; const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); dispid 4;
function InstancesOf(const strClass: WideString; iFlags: Integer;
const objWbemNamedValueSet: IDispatch): ISWbemObjectSet; dispid 5;
procedure InstancesOfAsync(const objWbemSink: IDispatch; const strClass: WideString;
iFlags: Integer; const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); dispid 6;
function SubclassesOf(const strSuperclass: WideString; iFlags: Integer;
const objWbemNamedValueSet: IDispatch): ISWbemObjectSet; dispid 7;
procedure SubclassesOfAsync(const objWbemSink: IDispatch; const strSuperclass: WideString;
iFlags: Integer; const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); dispid 8;
function ExecQuery(const strQuery: WideString; const strQueryLanguage: WideString;
iFlags: Integer; const objWbemNamedValueSet: IDispatch): ISWbemObjectSet; dispid 9;
procedure ExecQueryAsync(const objWbemSink: IDispatch; const strQuery: WideString;
const strQueryLanguage: WideString; lFlags: Integer;
const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); dispid 10;
function AssociatorsOf(const strObjectPath: WideString; const strAssocClass: WideString;
const strResultClass: WideString; const strResultRole: WideString;
const strRole: WideString; bClassesOnly: WordBool;
bSchemaOnly: WordBool; const strRequiredAssocQualifier: WideString;
const strRequiredQualifier: WideString; iFlags: Integer;
const objWbemNamedValueSet: IDispatch): ISWbemObjectSet; dispid 11;
procedure AssociatorsOfAsync(const objWbemSink: IDispatch; const strObjectPath: WideString;
const strAssocClass: WideString; const strResultClass: WideString;
const strResultRole: WideString; const strRole: WideString;
bClassesOnly: WordBool; bSchemaOnly: WordBool;
const strRequiredAssocQualifier: WideString;
const strRequiredQualifier: WideString; iFlags: Integer;
const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); dispid 12;
function ReferencesTo(const strObjectPath: WideString; const strResultClass: WideString;
const strRole: WideString; bClassesOnly: WordBool; bSchemaOnly: WordBool;
const strRequiredQualifier: WideString; iFlags: Integer;
const objWbemNamedValueSet: IDispatch): ISWbemObjectSet; dispid 13;
procedure ReferencesToAsync(const objWbemSink: IDispatch; const strObjectPath: WideString;
const strResultClass: WideString; const strRole: WideString;
bClassesOnly: WordBool; bSchemaOnly: WordBool;
const strRequiredQualifier: WideString; iFlags: Integer;
const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); dispid 14;
function ExecNotificationQuery(const strQuery: WideString; const strQueryLanguage: WideString;
iFlags: Integer; const objWbemNamedValueSet: IDispatch): ISWbemEventSource; dispid 15;
procedure ExecNotificationQueryAsync(const objWbemSink: IDispatch; const strQuery: WideString;
const strQueryLanguage: WideString; iFlags: Integer;
const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); dispid 16;
function ExecMethod(const strObjectPath: WideString; const strMethodName: WideString;
const objWbemInParameters: IDispatch; iFlags: Integer;
const objWbemNamedValueSet: IDispatch): ISWbemObject; dispid 17;
procedure ExecMethodAsync(const objWbemSink: IDispatch; const strObjectPath: WideString;
const strMethodName: WideString;
const objWbemInParameters: IDispatch; iFlags: Integer;
const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); dispid 18;
property Security_: ISWbemSecurity readonly dispid 19;
end;

// *********************************************************************//
// Interface: ISWbemObjectEx
// Flags: (4432) Hidden Dual OleAutomation Dispatchable
// GUID: {269AD56A-8A67-4129-BC8C-0506DCFE9880}
// *********************************************************************//
ISWbemObjectEx = interface(ISWbemObject)
['{269AD56A-8A67-4129-BC8C-0506DCFE9880}']
procedure Refresh_(iFlags: Integer; const objWbemNamedValueSet: IDispatch); safecall;
function Get_SystemProperties_: ISWbemPropertySet; safecall;
function GetText_(iObjectTextFormat: WbemObjectTextFormatEnum; iFlags: Integer;
const objWbemNamedValueSet: IDispatch): WideString; safecall;
procedure SetFromText_(const bsText: WideString; iObjectTextFormat: WbemObjectTextFormatEnum;
iFlags: Integer; const objWbemNamedValueSet: IDispatch); safecall;
property SystemProperties_: ISWbemPropertySet read Get_SystemProperties_;
end;

// *********************************************************************//
// DispIntf: ISWbemObjectExDisp
// Flags: (4432) Hidden Dual OleAutomation Dispatchable
// GUID: {269AD56A-8A67-4129-BC8C-0506DCFE9880}
// *********************************************************************//
ISWbemObjectExDisp = dispinterface
['{269AD56A-8A67-4129-BC8C-0506DCFE9880}']
procedure Refresh_(iFlags: Integer; const objWbemNamedValueSet: IDispatch); dispid 26;
property SystemProperties_: ISWbemPropertySet readonly dispid 27;
function GetText_(iObjectTextFormat: WbemObjectTextFormatEnum; iFlags: Integer;
const objWbemNamedValueSet: IDispatch): WideString; dispid 28;
procedure SetFromText_(const bsText: WideString; iObjectTextFormat: WbemObjectTextFormatEnum;
iFlags: Integer; const objWbemNamedValueSet: IDispatch); dispid 29;
function Put_(iFlags: Integer; const objWbemNamedValueSet: IDispatch): ISWbemObjectPath; dispid 1;
procedure PutAsync_(const objWbemSink: IDispatch; iFlags: Integer;
const objWbemNamedValueSet: IDispatch; const objWbemAsyncContext: IDispatch); dispid 2;
procedure Delete_(iFlags: Integer; const objWbemNamedValueSet: IDispatch); dispid 3;
procedure DeleteAsync_(const objWbemSink: IDispatch; iFlags: Integer;
const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); dispid 4;
function Instances_(iFlags: Integer; const objWbemNamedValueSet: IDispatch): ISWbemObjectSet; dispid 5;
procedure InstancesAsync_(const objWbemSink: IDispatch; iFlags: Integer;
const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); dispid 6;
function Subclasses_(iFlags: Integer; const objWbemNamedValueSet: IDispatch): ISWbemObjectSet; dispid 7;
procedure SubclassesAsync_(const objWbemSink: IDispatch; iFlags: Integer;
const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); dispid 8;
function Associators_(const strAssocClass: WideString; const strResultClass: WideString;
const strResultRole: WideString; const strRole: WideString;
bClassesOnly: WordBool; bSchemaOnly: WordBool;
const strRequiredAssocQualifier: WideString;
const strRequiredQualifier: WideString; iFlags: Integer;
const objWbemNamedValueSet: IDispatch): ISWbemObjectSet; dispid 9;
procedure AssociatorsAsync_(const objWbemSink: IDispatch; const strAssocClass: WideString;
const strResultClass: WideString; const strResultRole: WideString;
const strRole: WideString; bClassesOnly: WordBool;
bSchemaOnly: WordBool; const strRequiredAssocQualifier: WideString;
const strRequiredQualifier: WideString; iFlags: Integer;
const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); dispid 10;
function References_(const strResultClass: WideString; const strRole: WideString;
bClassesOnly: WordBool; bSchemaOnly: WordBool;
const strRequiredQualifier: WideString; iFlags: Integer;
const objWbemNamedValueSet: IDispatch): ISWbemObjectSet; dispid 11;
procedure ReferencesAsync_(const objWbemSink: IDispatch; const strResultClass: WideString;
const strRole: WideString; bClassesOnly: WordBool;
bSchemaOnly: WordBool; const strRequiredQualifier: WideString;
iFlags: Integer; const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); dispid 12;
function ExecMethod_(const strMethodName: WideString; const objWbemInParameters: IDispatch;
iFlags: Integer; const objWbemNamedValueSet: IDispatch): ISWbemObject; dispid 13;
procedure ExecMethodAsync_(const objWbemSink: IDispatch; const strMethodName: WideString;
const objWbemInParameters: IDispatch; iFlags: Integer;
const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch); dispid 14;
function Clone_: ISWbemObject; dispid 15;
function GetObjectText_(iFlags: Integer): WideString; dispid 16;
function SpawnDerivedClass_(iFlags: Integer): ISWbemObject; dispid 17;
function SpawnInstance_(iFlags: Integer): ISWbemObject; dispid 18;
function CompareTo_(const objWbemObject: IDispatch; iFlags: Integer): WordBool; dispid 19;
property Qualifiers_: ISWbemQualifierSet readonly dispid 20;
property Properties_: ISWbemPropertySet readonly dispid 21;
property Methods_: ISWbemMethodSet readonly dispid 22;
property Derivation_: OleVariant readonly dispid 23;
property Path_: ISWbemObjectPath readonly dispid 24;
property Security_: ISWbemSecurity readonly dispid 25;
end;

// *********************************************************************//
// Interface: ISWbemDateTime
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {5E97458A-CF77-11D3-B38F-00105A1F473A}
// *********************************************************************//
ISWbemDateTime = interface(IDispatch)
['{5E97458A-CF77-11D3-B38F-00105A1F473A}']
function Get_Value: WideString; safecall;
procedure Set_Value(const strValue: WideString); safecall;
function Get_Year: Integer; safecall;
procedure Set_Year(iYear: Integer); safecall;
function Get_YearSpecified: WordBool; safecall;
procedure Set_YearSpecified(bYearSpecified: WordBool); safecall;
function Get_Month: Integer; safecall;
procedure Set_Month(iMonth: Integer); safecall;
function Get_MonthSpecified: WordBool; safecall;
procedure Set_MonthSpecified(bMonthSpecified: WordBool); safecall;
function Get_Day: Integer; safecall;
procedure Set_Day(iDay: Integer); safecall;
function Get_DaySpecified: WordBool; safecall;
procedure Set_DaySpecified(bDaySpecified: WordBool); safecall;
function Get_Hours: Integer; safecall;
procedure Set_Hours(iHours: Integer); safecall;
function Get_HoursSpecified: WordBool; safecall;
procedure Set_HoursSpecified(bHoursSpecified: WordBool); safecall;
function Get_Minutes: Integer; safecall;
procedure Set_Minutes(iMinutes: Integer); safecall;
function Get_MinutesSpecified: WordBool; safecall;
procedure Set_MinutesSpecified(bMinutesSpecified: WordBool); safecall;
function Get_Seconds: Integer; safecall;
procedure Set_Seconds(iSeconds: Integer); safecall;
function Get_SecondsSpecified: WordBool; safecall;
procedure Set_SecondsSpecified(bSecondsSpecified: WordBool); safecall;
function Get_Microseconds: Integer; safecall;
procedure Set_Microseconds(iMicroseconds: Integer); safecall;
function Get_MicrosecondsSpecified: WordBool; safecall;
procedure Set_MicrosecondsSpecified(bMicrosecondsSpecified: WordBool); safecall;
function Get_UTC: Integer; safecall;
procedure Set_UTC(iUTC: Integer); safecall;
function Get_UTCSpecified: WordBool; safecall;
procedure Set_UTCSpecified(bUTCSpecified: WordBool); safecall;
function Get_IsInterval: WordBool; safecall;
procedure Set_IsInterval(bIsInterval: WordBool); safecall;
function GetVarDate(bIsLocal: WordBool): TDateTime; safecall;
procedure SetVarDate(dVarDate: TDateTime; bIsLocal: WordBool); safecall;
function GetFileTime(bIsLocal: WordBool): WideString; safecall;
procedure SetFileTime(const strFileTime: WideString; bIsLocal: WordBool); safecall;
property Value: WideString read Get_Value write Set_Value;
property Year: Integer read Get_Year write Set_Year;
property YearSpecified: WordBool read Get_YearSpecified write Set_YearSpecified;
property Month: Integer read Get_Month write Set_Month;
property MonthSpecified: WordBool read Get_MonthSpecified write Set_MonthSpecified;
property Day: Integer read Get_Day write Set_Day;
property DaySpecified: WordBool read Get_DaySpecified write Set_DaySpecified;
property Hours: Integer read Get_Hours write Set_Hours;
property HoursSpecified: WordBool read Get_HoursSpecified write Set_HoursSpecified;
property Minutes: Integer read Get_Minutes write Set_Minutes;
property MinutesSpecified: WordBool read Get_MinutesSpecified write Set_MinutesSpecified;
property Seconds: Integer read Get_Seconds write Set_Seconds;
property SecondsSpecified: WordBool read Get_SecondsSpecified write Set_SecondsSpecified;
property Microseconds: Integer read Get_Microseconds write Set_Microseconds;
property MicrosecondsSpecified: WordBool read Get_MicrosecondsSpecified write Set_MicrosecondsSpecified;
property UTC: Integer read Get_UTC write Set_UTC;
property UTCSpecified: WordBool read Get_UTCSpecified write Set_UTCSpecified;
property IsInterval: WordBool read Get_IsInterval write Set_IsInterval;
end;

// *********************************************************************//
// DispIntf: ISWbemDateTimeDisp
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {5E97458A-CF77-11D3-B38F-00105A1F473A}
// *********************************************************************//
ISWbemDateTimeDisp = dispinterface
['{5E97458A-CF77-11D3-B38F-00105A1F473A}']
property Value: WideString dispid 0;
property Year: Integer dispid 1;
property YearSpecified: WordBool dispid 2;
property Month: Integer dispid 3;
property MonthSpecified: WordBool dispid 4;
property Day: Integer dispid 5;
property DaySpecified: WordBool dispid 6;
property Hours: Integer dispid 7;
property HoursSpecified: WordBool dispid 8;
property Minutes: Integer dispid 9;
property MinutesSpecified: WordBool dispid 10;
property Seconds: Integer dispid 11;
property SecondsSpecified: WordBool dispid 12;
property Microseconds: Integer dispid 13;
property MicrosecondsSpecified: WordBool dispid 14;
property UTC: Integer dispid 15;
property UTCSpecified: WordBool dispid 16;
property IsInterval: WordBool dispid 17;
function GetVarDate(bIsLocal: WordBool): TDateTime; dispid 18;
procedure SetVarDate(dVarDate: TDateTime; bIsLocal: WordBool); dispid 19;
function GetFileTime(bIsLocal: WordBool): WideString; dispid 20;
procedure SetFileTime(const strFileTime: WideString; bIsLocal: WordBool); dispid 21;
end;

// *********************************************************************//
// Interface: ISWbemRefresher
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {14D8250E-D9C2-11D3-B38F-00105A1F473A}
// *********************************************************************//
ISWbemRefresher = interface(IDispatch)
['{14D8250E-D9C2-11D3-B38F-00105A1F473A}']
function Get__NewEnum: IUnknown; safecall;
function Item(iIndex: Integer): ISWbemRefreshableItem; safecall;
function Get_Count: Integer; safecall;
function Add(const objWbemServices: ISWbemServicesEx; const bsInstancePath: WideString;
iFlags: Integer; const objWbemNamedValueSet: IDispatch): ISWbemRefreshableItem; safecall;
function AddEnum(const objWbemServices: ISWbemServicesEx; const bsClassName: WideString;
iFlags: Integer; const objWbemNamedValueSet: IDispatch): ISWbemRefreshableItem; safecall;
procedure Remove(iIndex: Integer; iFlags: Integer); safecall;
procedure Refresh(iFlags: Integer); safecall;
function Get_AutoReconnect: WordBool; safecall;
procedure Set_AutoReconnect(bCount: WordBool); safecall;
procedure DeleteAll; safecall;
property _NewEnum: IUnknown read Get__NewEnum;
property Count: Integer read Get_Count;
property AutoReconnect: WordBool read Get_AutoReconnect write Set_AutoReconnect;
end;

// *********************************************************************//
// DispIntf: ISWbemRefresherDisp
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {14D8250E-D9C2-11D3-B38F-00105A1F473A}
// *********************************************************************//
ISWbemRefresherDisp = dispinterface
['{14D8250E-D9C2-11D3-B38F-00105A1F473A}']
property _NewEnum: IUnknown readonly dispid -4;
function Item(iIndex: Integer): ISWbemRefreshableItem; dispid 0;
property Count: Integer readonly dispid 1;
function Add(const objWbemServices: ISWbemServicesEx; const bsInstancePath: WideString;
iFlags: Integer; const objWbemNamedValueSet: IDispatch): ISWbemRefreshableItem; dispid 2;
function AddEnum(const objWbemServices: ISWbemServicesEx; const bsClassName: WideString;
iFlags: Integer; const objWbemNamedValueSet: IDispatch): ISWbemRefreshableItem; dispid 3;
procedure Remove(iIndex: Integer; iFlags: Integer); dispid 4;
procedure Refresh(iFlags: Integer); dispid 5;
property AutoReconnect: WordBool dispid 6;
procedure DeleteAll; dispid 7;
end;

// *********************************************************************//
// Interface: ISWbemRefreshableItem
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {5AD4BF92-DAAB-11D3-B38F-00105A1F473A}
// *********************************************************************//
ISWbemRefreshableItem = interface(IDispatch)
['{5AD4BF92-DAAB-11D3-B38F-00105A1F473A}']
function Get_Index: Integer; safecall;
function Get_Refresher: ISWbemRefresher; safecall;
function Get_IsSet: WordBool; safecall;
function Get_Object_: ISWbemObjectEx; safecall;
function Get_ObjectSet: ISWbemObjectSet; safecall;
procedure Remove(iFlags: Integer); safecall;
property Index: Integer read Get_Index;
property Refresher: ISWbemRefresher read Get_Refresher;
property IsSet: WordBool read Get_IsSet;
property Object_: ISWbemObjectEx read Get_Object_;
property ObjectSet: ISWbemObjectSet read Get_ObjectSet;
end;

// *********************************************************************//
// DispIntf: ISWbemRefreshableItemDisp
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {5AD4BF92-DAAB-11D3-B38F-00105A1F473A}
// *********************************************************************//
ISWbemRefreshableItemDisp = dispinterface
['{5AD4BF92-DAAB-11D3-B38F-00105A1F473A}']
property Index: Integer readonly dispid 1;
property Refresher: ISWbemRefresher readonly dispid 2;
property IsSet: WordBool readonly dispid 3;
property Object_: ISWbemObjectEx readonly dispid 4;
property ObjectSet: ISWbemObjectSet readonly dispid 5;
procedure Remove(iFlags: Integer); dispid 6;
end;

// *********************************************************************//
// The Class CoSWbemLocator provides a Create and CreateRemote method to
// create instances of the default interface ISWbemLocator exposed by
// the CoClass SWbemLocator. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoSWbemLocator = class
class function Create: ISWbemLocator;
class function CreateRemote(const MachineName: string): ISWbemLocator;
end;


// *********************************************************************//
// OLE Server Proxy class declaration
// Server Object : TSWbemLocator
// Help String : Used to obtain Namespace connections
// Default Interface: ISWbemLocator
// Def. Intf. DISP? : No
// Event Interface:
// TypeFlags : (2) CanCreate
// *********************************************************************//
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
TSWbemLocatorProperties= class;
{$ENDIF}
TSWbemLocator = class(TOleServer)
private
FIntf: ISWbemLocator;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps: TSWbemLocatorProperties;
function GetServerProperties: TSWbemLocatorProperties;
{$ENDIF}
function GetDefaultInterface: ISWbemLocator;
protected
procedure InitServerData; override;
function Get_Security_: ISWbemSecurity;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Connect; override;
procedure ConnectTo(svrIntf: ISWbemLocator);
procedure Disconnect; override;
function ConnectServer(const strServer: WideString; const strNamespace: WideString;
const strUser: WideString; const strPassword: WideString;
const strLocale: WideString; const strAuthority: WideString;
iSecurityFlags: Integer; const objWbemNamedValueSet: IDispatch): ISWbemServices;
property DefaultInterface: ISWbemLocator read GetDefaultInterface;
property Security_: ISWbemSecurity read Get_Security_;
published
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
property Server: TSWbemLocatorProperties read GetServerProperties;
{$ENDIF}
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
// *********************************************************************//
// OLE Server Properties Proxy Class
// Server Object : TSWbemLocator
// (This object is used by the IDE's Property Inspector to allow editing
// of the properties of this server)
// *********************************************************************//
TSWbemLocatorProperties = class(TPersistent)
private
FServer: TSWbemLocator;
function GetDefaultInterface: ISWbemLocator;
constructor Create(AServer: TSWbemLocator);
protected
function Get_Security_: ISWbemSecurity;
public
property DefaultInterface: ISWbemLocator read GetDefaultInterface;
published
end;
{$ENDIF}


// *********************************************************************//
// The Class CoSWbemNamedValueSet provides a Create and CreateRemote method to
// create instances of the default interface ISWbemNamedValueSet exposed by
// the CoClass SWbemNamedValueSet. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoSWbemNamedValueSet = class
class function Create: ISWbemNamedValueSet;
class function CreateRemote(const MachineName: string): ISWbemNamedValueSet;
end;


// *********************************************************************//
// OLE Server Proxy class declaration
// Server Object : TSWbemNamedValueSet
// Help String : A collection of Named Values
// Default Interface: ISWbemNamedValueSet
// Def. Intf. DISP? : No
// Event Interface:
// TypeFlags : (2) CanCreate
// *********************************************************************//
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
TSWbemNamedValueSetProperties= class;
{$ENDIF}
TSWbemNamedValueSet = class(TOleServer)
private
FIntf: ISWbemNamedValueSet;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps: TSWbemNamedValueSetProperties;
function GetServerProperties: TSWbemNamedValueSetProperties;
{$ENDIF}
function GetDefaultInterface: ISWbemNamedValueSet;
protected
procedure InitServerData; override;
function Get_Count: Integer;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Connect; override;
procedure ConnectTo(svrIntf: ISWbemNamedValueSet);
procedure Disconnect; override;
function Item(const strName: WideString; iFlags: Integer): ISWbemNamedValue;
function Add(const strName: WideString; var varValue: OleVariant; iFlags: Integer): ISWbemNamedValue;
procedure Remove(const strName: WideString; iFlags: Integer);
function Clone: ISWbemNamedValueSet;
procedure DeleteAll;
property DefaultInterface: ISWbemNamedValueSet read GetDefaultInterface;
property Count: Integer read Get_Count;
published
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
property Server: TSWbemNamedValueSetProperties read GetServerProperties;
{$ENDIF}
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
// *********************************************************************//
// OLE Server Properties Proxy Class
// Server Object : TSWbemNamedValueSet
// (This object is used by the IDE's Property Inspector to allow editing
// of the properties of this server)
// *********************************************************************//
TSWbemNamedValueSetProperties = class(TPersistent)
private
FServer: TSWbemNamedValueSet;
function GetDefaultInterface: ISWbemNamedValueSet;
constructor Create(AServer: TSWbemNamedValueSet);
protected
function Get_Count: Integer;
public
property DefaultInterface: ISWbemNamedValueSet read GetDefaultInterface;
published
end;
{$ENDIF}


// *********************************************************************//
// The Class CoSWbemObjectPath provides a Create and CreateRemote method to
// create instances of the default interface ISWbemObjectPath exposed by
// the CoClass SWbemObjectPath. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoSWbemObjectPath = class
class function Create: ISWbemObjectPath;
class function CreateRemote(const MachineName: string): ISWbemObjectPath;
end;


// *********************************************************************//
// OLE Server Proxy class declaration
// Server Object : TSWbemObjectPath
// Help String : Object Path
// Default Interface: ISWbemObjectPath
// Def. Intf. DISP? : No
// Event Interface:
// TypeFlags : (2) CanCreate
// *********************************************************************//
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
TSWbemObjectPathProperties= class;
{$ENDIF}
TSWbemObjectPath = class(TOleServer)
private
FIntf: ISWbemObjectPath;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps: TSWbemObjectPathProperties;
function GetServerProperties: TSWbemObjectPathProperties;
{$ENDIF}
function GetDefaultInterface: ISWbemObjectPath;
protected
procedure InitServerData; override;
function Get_Path: WideString;
procedure Set_Path(const strPath: WideString);
function Get_RelPath: WideString;
procedure Set_RelPath(const strRelPath: WideString);
function Get_Server: WideString;
procedure Set_Server(const strServer: WideString);
function Get_Namespace: WideString;
procedure Set_Namespace(const strNamespace: WideString);
function Get_ParentNamespace: WideString;
function Get_DisplayName: WideString;
procedure Set_DisplayName(const strDisplayName: WideString);
function Get_Class_: WideString;
procedure Set_Class_(const strClass: WideString);
function Get_IsClass: WordBool;
function Get_IsSingleton: WordBool;
function Get_Keys: ISWbemNamedValueSet;
function Get_Security_: ISWbemSecurity;
function Get_Locale: WideString;
procedure Set_Locale(const strLocale: WideString);
function Get_Authority: WideString;
procedure Set_Authority(const strAuthority: WideString);
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Connect; override;
procedure ConnectTo(svrIntf: ISWbemObjectPath);
procedure Disconnect; override;
procedure SetAsClass;
procedure SetAsSingleton;
property DefaultInterface: ISWbemObjectPath read GetDefaultInterface;
property ParentNamespace: WideString read Get_ParentNamespace;
property IsClass: WordBool read Get_IsClass;
property IsSingleton: WordBool read Get_IsSingleton;
property Keys: ISWbemNamedValueSet read Get_Keys;
property Security_: ISWbemSecurity read Get_Security_;
property Path: WideString read Get_Path write Set_Path;
property RelPath: WideString read Get_RelPath write Set_RelPath;
property Server: WideString read Get_Server write Set_Server;
property Namespace: WideString read Get_Namespace write Set_Namespace;
property DisplayName: WideString read Get_DisplayName write Set_DisplayName;
property Class_: WideString read Get_Class_ write Set_Class_;
property Locale: WideString read Get_Locale write Set_Locale;
property Authority: WideString read Get_Authority write Set_Authority;
published
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
property Server: TSWbemObjectPathProperties read GetServerProperties;
{$ENDIF}
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
// *********************************************************************//
// OLE Server Properties Proxy Class
// Server Object : TSWbemObjectPath
// (This object is used by the IDE's Property Inspector to allow editing
// of the properties of this server)
// *********************************************************************//
TSWbemObjectPathProperties = class(TPersistent)
private
FServer: TSWbemObjectPath;
function GetDefaultInterface: ISWbemObjectPath;
constructor Create(AServer: TSWbemObjectPath);
protected
function Get_Path: WideString;
procedure Set_Path(const strPath: WideString);
function Get_RelPath: WideString;
procedure Set_RelPath(const strRelPath: WideString);
function Get_Server: WideString;
procedure Set_Server(const strServer: WideString);
function Get_Namespace: WideString;
procedure Set_Namespace(const strNamespace: WideString);
function Get_ParentNamespace: WideString;
function Get_DisplayName: WideString;
procedure Set_DisplayName(const strDisplayName: WideString);
function Get_Class_: WideString;
procedure Set_Class_(const strClass: WideString);
function Get_IsClass: WordBool;
function Get_IsSingleton: WordBool;
function Get_Keys: ISWbemNamedValueSet;
function Get_Security_: ISWbemSecurity;
function Get_Locale: WideString;
procedure Set_Locale(const strLocale: WideString);
function Get_Authority: WideString;
procedure Set_Authority(const strAuthority: WideString);
public
property DefaultInterface: ISWbemObjectPath read GetDefaultInterface;
published
property Path: WideString read Get_Path write Set_Path;
property RelPath: WideString read Get_RelPath write Set_RelPath;
property Server: WideString read Get_Server write Set_Server;
property Namespace: WideString read Get_Namespace write Set_Namespace;
property DisplayName: WideString read Get_DisplayName write Set_DisplayName;
property Class_: WideString read Get_Class_ write Set_Class_;
property Locale: WideString read Get_Locale write Set_Locale;
property Authority: WideString read Get_Authority write Set_Authority;
end;
{$ENDIF}


// *********************************************************************//
// The Class CoSWbemLastError provides a Create and CreateRemote method to
// create instances of the default interface ISWbemLastError exposed by

// the CoClass SWbemLastError. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoSWbemLastError = class
class function Create: ISWbemLastError;
class function CreateRemote(const MachineName: string): ISWbemLastError;
end;


// *********************************************************************//
// OLE Server Proxy class declaration
// Server Object : TSWbemLastError
// Help String : The last error on the current thread
// Default Interface: ISWbemLastError
// Def. Intf. DISP? : No
// Event Interface:
// TypeFlags : (2) CanCreate
// *********************************************************************//
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
TSWbemLastErrorProperties= class;
{$ENDIF}
TSWbemLastError = class(TOleServer)
private
FIntf: ISWbemLastError;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps: TSWbemLastErrorProperties;
function GetServerProperties: TSWbemLastErrorProperties;
{$ENDIF}
function GetDefaultInterface: ISWbemLastError;
protected
procedure InitServerData; override;
function Get_Qualifiers_: ISWbemQualifierSet;
function Get_Properties_: ISWbemPropertySet;
function Get_Methods_: ISWbemMethodSet;
function Get_Derivation_: OleVariant;
function Get_Path_: ISWbemObjectPath;
function Get_Security_: ISWbemSecurity;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Connect; override;
procedure ConnectTo(svrIntf: ISWbemLastError);
procedure Disconnect; override;
function Put_(iFlags: Integer; const objWbemNamedValueSet: IDispatch): ISWbemObjectPath;
procedure PutAsync_(const objWbemSink: IDispatch; iFlags: Integer;
const objWbemNamedValueSet: IDispatch; const objWbemAsyncContext: IDispatch);
procedure Delete_(iFlags: Integer; const objWbemNamedValueSet: IDispatch);
procedure DeleteAsync_(const objWbemSink: IDispatch; iFlags: Integer;
const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch);
function Instances_(iFlags: Integer; const objWbemNamedValueSet: IDispatch): ISWbemObjectSet;
procedure InstancesAsync_(const objWbemSink: IDispatch; iFlags: Integer;
const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch);
function Subclasses_(iFlags: Integer; const objWbemNamedValueSet: IDispatch): ISWbemObjectSet;
procedure SubclassesAsync_(const objWbemSink: IDispatch; iFlags: Integer;
const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch);
function Associators_(const strAssocClass: WideString; const strResultClass: WideString;
const strResultRole: WideString; const strRole: WideString;
bClassesOnly: WordBool; bSchemaOnly: WordBool;
const strRequiredAssocQualifier: WideString;
const strRequiredQualifier: WideString; iFlags: Integer;
const objWbemNamedValueSet: IDispatch): ISWbemObjectSet;
procedure AssociatorsAsync_(const objWbemSink: IDispatch; const strAssocClass: WideString;
const strResultClass: WideString; const strResultRole: WideString;
const strRole: WideString; bClassesOnly: WordBool;
bSchemaOnly: WordBool; const strRequiredAssocQualifier: WideString;
const strRequiredQualifier: WideString; iFlags: Integer;
const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch);
function References_(const strResultClass: WideString; const strRole: WideString;
bClassesOnly: WordBool; bSchemaOnly: WordBool;
const strRequiredQualifier: WideString; iFlags: Integer;
const objWbemNamedValueSet: IDispatch): ISWbemObjectSet;
procedure ReferencesAsync_(const objWbemSink: IDispatch; const strResultClass: WideString;
const strRole: WideString; bClassesOnly: WordBool;
bSchemaOnly: WordBool; const strRequiredQualifier: WideString;
iFlags: Integer; const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch);
function ExecMethod_(const strMethodName: WideString; const objWbemInParameters: IDispatch;
iFlags: Integer; const objWbemNamedValueSet: IDispatch): ISWbemObject;
procedure ExecMethodAsync_(const objWbemSink: IDispatch; const strMethodName: WideString;
const objWbemInParameters: IDispatch; iFlags: Integer;
const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch);
function Clone_: ISWbemObject;
function GetObjectText_(iFlags: Integer): WideString;
function SpawnDerivedClass_(iFlags: Integer): ISWbemObject;
function SpawnInstance_(iFlags: Integer): ISWbemObject;
function CompareTo_(const objWbemObject: IDispatch; iFlags: Integer): WordBool;
property DefaultInterface: ISWbemLastError read GetDefaultInterface;
property Qualifiers_: ISWbemQualifierSet read Get_Qualifiers_;
property Properties_: ISWbemPropertySet read Get_Properties_;
property Methods_: ISWbemMethodSet read Get_Methods_;
property Derivation_: OleVariant read Get_Derivation_;
property Path_: ISWbemObjectPath read Get_Path_;
property Security_: ISWbemSecurity read Get_Security_;
published
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
property Server: TSWbemLastErrorProperties read GetServerProperties;
{$ENDIF}
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
// *********************************************************************//
// OLE Server Properties Proxy Class
// Server Object : TSWbemLastError
// (This object is used by the IDE's Property Inspector to allow editing
// of the properties of this server)
// *********************************************************************//
TSWbemLastErrorProperties = class(TPersistent)
private
FServer: TSWbemLastError;
function GetDefaultInterface: ISWbemLastError;
constructor Create(AServer: TSWbemLastError);
protected
function Get_Qualifiers_: ISWbemQualifierSet;
function Get_Properties_: ISWbemPropertySet;
function Get_Methods_: ISWbemMethodSet;
function Get_Derivation_: OleVariant;
function Get_Path_: ISWbemObjectPath;
function Get_Security_: ISWbemSecurity;
public
property DefaultInterface: ISWbemLastError read GetDefaultInterface;
published
end;
{$ENDIF}


// *********************************************************************//
// The Class CoSWbemSink provides a Create and CreateRemote method to
// create instances of the default interface ISWbemSink exposed by
// the CoClass SWbemSink. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoSWbemSink = class
class function Create: ISWbemSink;
class function CreateRemote(const MachineName: string): ISWbemSink;
end;

TSWbemSinkOnObjectReady = procedure(ASender: TObject; const objWbemObject: ISWbemObject;
const objWbemAsyncContext: ISWbemNamedValueSet) of object;
TSWbemSinkOnCompleted = procedure(ASender: TObject; iHResult: WbemErrorEnum;
const objWbemErrorObject: ISWbemObject;
const objWbemAsyncContext: ISWbemNamedValueSet) of object;
TSWbemSinkOnProgress = procedure(ASender: TObject; iUpperBound: Integer; iCurrent: Integer;
const strMessage: WideString;
const objWbemAsyncContext: ISWbemNamedValueSet) of object;
TSWbemSinkOnObjectPut = procedure(ASender: TObject; const objWbemObjectPath: ISWbemObjectPath;
const objWbemAsyncContext: ISWbemNamedValueSet) of object;


// *********************************************************************//
// OLE Server Proxy class declaration
// Server Object : TSWbemSink
// Help String : A sink for events arising from asynchronous operations
// Default Interface: ISWbemSink
// Def. Intf. DISP? : No
// Event Interface: ISWbemSinkEvents
// TypeFlags : (2) CanCreate
// *********************************************************************//
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
TSWbemSinkProperties= class;
{$ENDIF}
TSWbemSink = class(TOleServer)
private
FOnObjectReady: TSWbemSinkOnObjectReady;
FOnCompleted: TSWbemSinkOnCompleted;
FOnProgress: TSWbemSinkOnProgress;
FOnObjectPut: TSWbemSinkOnObjectPut;
FIntf: ISWbemSink;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps: TSWbemSinkProperties;
function GetServerProperties: TSWbemSinkProperties;
{$ENDIF}
function GetDefaultInterface: ISWbemSink;
protected
procedure InitServerData; override;
procedure InvokeEvent(DispID: TDispID; var Params: TVariantArray); override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Connect; override;
procedure ConnectTo(svrIntf: ISWbemSink);
procedure Disconnect; override;
procedure Cancel;
property DefaultInterface: ISWbemSink read GetDefaultInterface;
published
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
property Server: TSWbemSinkProperties read GetServerProperties;
{$ENDIF}
property OnObjectReady: TSWbemSinkOnObjectReady read FOnObjectReady write FOnObjectReady;
property OnCompleted: TSWbemSinkOnCompleted read FOnCompleted write FOnCompleted;
property OnProgress: TSWbemSinkOnProgress read FOnProgress write FOnProgress;
property OnObjectPut: TSWbemSinkOnObjectPut read FOnObjectPut write FOnObjectPut;
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
// *********************************************************************//
// OLE Server Properties Proxy Class
// Server Object : TSWbemSink
// (This object is used by the IDE's Property Inspector to allow editing
// of the properties of this server)
// *********************************************************************//
TSWbemSinkProperties = class(TPersistent)
private
FServer: TSWbemSink;
function GetDefaultInterface: ISWbemSink;
constructor Create(AServer: TSWbemSink);
protected
public
property DefaultInterface: ISWbemSink read GetDefaultInterface;
published
end;
{$ENDIF}


// *********************************************************************//
// The Class CoSWbemDateTime provides a Create and CreateRemote method to
// create instances of the default interface ISWbemDateTime exposed by
// the CoClass SWbemDateTime. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoSWbemDateTime = class
class function Create: ISWbemDateTime;
class function CreateRemote(const MachineName: string): ISWbemDateTime;
end;


// *********************************************************************//
// OLE Server Proxy class declaration
// Server Object : TSWbemDateTime
// Help String : Date & Time
// Default Interface: ISWbemDateTime
// Def. Intf. DISP? : No
// Event Interface:
// TypeFlags : (2) CanCreate
// *********************************************************************//
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
TSWbemDateTimeProperties= class;
{$ENDIF}
TSWbemDateTime = class(TOleServer)
private
FIntf: ISWbemDateTime;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps: TSWbemDateTimeProperties;
function GetServerProperties: TSWbemDateTimeProperties;
{$ENDIF}
function GetDefaultInterface: ISWbemDateTime;
protected
procedure InitServerData; override;
function Get_Value: WideString;
procedure Set_Value(const strValue: WideString);
function Get_Year: Integer;
procedure Set_Year(iYear: Integer);
function Get_YearSpecified: WordBool;
procedure Set_YearSpecified(bYearSpecified: WordBool);
function Get_Month: Integer;
procedure Set_Month(iMonth: Integer);
function Get_MonthSpecified: WordBool;
procedure Set_MonthSpecified(bMonthSpecified: WordBool);
function Get_Day: Integer;
procedure Set_Day(iDay: Integer);
function Get_DaySpecified: WordBool;
procedure Set_DaySpecified(bDaySpecified: WordBool);
function Get_Hours: Integer;
procedure Set_Hours(iHours: Integer);
function Get_HoursSpecified: WordBool;
procedure Set_HoursSpecified(bHoursSpecified: WordBool);
function Get_Minutes: Integer;
procedure Set_Minutes(iMinutes: Integer);
function Get_MinutesSpecified: WordBool;
procedure Set_MinutesSpecified(bMinutesSpecified: WordBool);
function Get_Seconds: Integer;
procedure Set_Seconds(iSeconds: Integer);
function Get_SecondsSpecified: WordBool;
procedure Set_SecondsSpecified(bSecondsSpecified: WordBool);
function Get_Microseconds: Integer;
procedure Set_Microseconds(iMicroseconds: Integer);
function Get_MicrosecondsSpecified: WordBool;
procedure Set_MicrosecondsSpecified(bMicrosecondsSpecified: WordBool);
function Get_UTC: Integer;
procedure Set_UTC(iUTC: Integer);
function Get_UTCSpecified: WordBool;
procedure Set_UTCSpecified(bUTCSpecified: WordBool);
function Get_IsInterval: WordBool;
procedure Set_IsInterval(bIsInterval: WordBool);
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Connect; override;
procedure ConnectTo(svrIntf: ISWbemDateTime);
procedure Disconnect; override;
function GetVarDate(bIsLocal: WordBool): TDateTime;
procedure SetVarDate(dVarDate: TDateTime; bIsLocal: WordBool);
function GetFileTime(bIsLocal: WordBool): WideString;
procedure SetFileTime(const strFileTime: WideString; bIsLocal: WordBool);
property DefaultInterface: ISWbemDateTime read GetDefaultInterface;
property Value: WideString read Get_Value write Set_Value;
property Year: Integer read Get_Year write Set_Year;
property YearSpecified: WordBool read Get_YearSpecified write Set_YearSpecified;
property Month: Integer read Get_Month write Set_Month;
property MonthSpecified: WordBool read Get_MonthSpecified write Set_MonthSpecified;
property Day: Integer read Get_Day write Set_Day;
property DaySpecified: WordBool read Get_DaySpecified write Set_DaySpecified;
property Hours: Integer read Get_Hours write Set_Hours;
property HoursSpecified: WordBool read Get_HoursSpecified write Set_HoursSpecified;
property Minutes: Integer read Get_Minutes write Set_Minutes;
property MinutesSpecified: WordBool read Get_MinutesSpecified write Set_MinutesSpecified;
property Seconds: Integer read Get_Seconds write Set_Seconds;
property SecondsSpecified: WordBool read Get_SecondsSpecified write Set_SecondsSpecified;
property Microseconds: Integer read Get_Microseconds write Set_Microseconds;
property MicrosecondsSpecified: WordBool read Get_MicrosecondsSpecified write Set_MicrosecondsSpecified;
property UTC: Integer read Get_UTC write Set_UTC;
property UTCSpecified: WordBool read Get_UTCSpecified write Set_UTCSpecified;
property IsInterval: WordBool read Get_IsInterval write Set_IsInterval;
published
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
property Server: TSWbemDateTimeProperties read GetServerProperties;
{$ENDIF}
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
// *********************************************************************//
// OLE Server Properties Proxy Class
// Server Object : TSWbemDateTime
// (This object is used by the IDE's Property Inspector to allow editing
// of the properties of this server)
// *********************************************************************//
TSWbemDateTimeProperties = class(TPersistent)
private
FServer: TSWbemDateTime;
function GetDefaultInterface: ISWbemDateTime;
constructor Create(AServer: TSWbemDateTime);
protected
function Get_Value: WideString;
procedure Set_Value(const strValue: WideString);
function Get_Year: Integer;
procedure Set_Year(iYear: Integer);
function Get_YearSpecified: WordBool;
procedure Set_YearSpecified(bYearSpecified: WordBool);
function Get_Month: Integer;
procedure Set_Month(iMonth: Integer);
function Get_MonthSpecified: WordBool;
procedure Set_MonthSpecified(bMonthSpecified: WordBool);
function Get_Day: Integer;
procedure Set_Day(iDay: Integer);
function Get_DaySpecified: WordBool;
procedure Set_DaySpecified(bDaySpecified: WordBool);
function Get_Hours: Integer;
procedure Set_Hours(iHours: Integer);
function Get_HoursSpecified: WordBool;
procedure Set_HoursSpecified(bHoursSpecified: WordBool);
function Get_Minutes: Integer;
procedure Set_Minutes(iMinutes: Integer);
function Get_MinutesSpecified: WordBool;
procedure Set_MinutesSpecified(bMinutesSpecified: WordBool);
function Get_Seconds: Integer;
procedure Set_Seconds(iSeconds: Integer);
function Get_SecondsSpecified: WordBool;
procedure Set_SecondsSpecified(bSecondsSpecified: WordBool);
function Get_Microseconds: Integer;
procedure Set_Microseconds(iMicroseconds: Integer);
function Get_MicrosecondsSpecified: WordBool;
procedure Set_MicrosecondsSpecified(bMicrosecondsSpecified: WordBool);
function Get_UTC: Integer;
procedure Set_UTC(iUTC: Integer);
function Get_UTCSpecified: WordBool;
procedure Set_UTCSpecified(bUTCSpecified: WordBool);
function Get_IsInterval: WordBool;
procedure Set_IsInterval(bIsInterval: WordBool);
public
property DefaultInterface: ISWbemDateTime read GetDefaultInterface;
published
property Value: WideString read Get_Value write Set_Value;
property Year: Integer read Get_Year write Set_Year;
property YearSpecified: WordBool read Get_YearSpecified write Set_YearSpecified;
property Month: Integer read Get_Month write Set_Month;
property MonthSpecified: WordBool read Get_MonthSpecified write Set_MonthSpecified;
property Day: Integer read Get_Day write Set_Day;
property DaySpecified: WordBool read Get_DaySpecified write Set_DaySpecified;
property Hours: Integer read Get_Hours write Set_Hours;
property HoursSpecified: WordBool read Get_HoursSpecified write Set_HoursSpecified;
property Minutes: Integer read Get_Minutes write Set_Minutes;
property MinutesSpecified: WordBool read Get_MinutesSpecified write Set_MinutesSpecified;
property Seconds: Integer read Get_Seconds write Set_Seconds;
property SecondsSpecified: WordBool read Get_SecondsSpecified write Set_SecondsSpecified;
property Microseconds: Integer read Get_Microseconds write Set_Microseconds;
property MicrosecondsSpecified: WordBool read Get_MicrosecondsSpecified write Set_MicrosecondsSpecified;
property UTC: Integer read Get_UTC write Set_UTC;
property UTCSpecified: WordBool read Get_UTCSpecified write Set_UTCSpecified;
property IsInterval: WordBool read Get_IsInterval write Set_IsInterval;
end;
{$ENDIF}


// *********************************************************************//
// The Class CoSWbemRefresher provides a Create and CreateRemote method to
// create instances of the default interface ISWbemRefresher exposed by
// the CoClass SWbemRefresher. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoSWbemRefresher = class
class function Create: ISWbemRefresher;
class function CreateRemote(const MachineName: string): ISWbemRefresher;
end;


// *********************************************************************//
// OLE Server Proxy class declaration
// Server Object : TSWbemRefresher
// Help String : Refresher
// Default Interface: ISWbemRefresher
// Def. Intf. DISP? : No
// Event Interface:
// TypeFlags : (2) CanCreate
// *********************************************************************//
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
TSWbemRefresherProperties= class;
{$ENDIF}
TSWbemRefresher = class(TOleServer)
private
FIntf: ISWbemRefresher;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps: TSWbemRefresherProperties;
function GetServerProperties: TSWbemRefresherProperties;
{$ENDIF}
function GetDefaultInterface: ISWbemRefresher;
protected
procedure InitServerData; override;
function Get_Count: Integer;
function Get_AutoReconnect: WordBool;
procedure Set_AutoReconnect(bCount: WordBool);
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Connect; override;
procedure ConnectTo(svrIntf: ISWbemRefresher);
procedure Disconnect; override;
function Item(iIndex: Integer): ISWbemRefreshableItem;
function Add(const objWbemServices: ISWbemServicesEx; const bsInstancePath: WideString;
iFlags: Integer; const objWbemNamedValueSet: IDispatch): ISWbemRefreshableItem;
function AddEnum(const objWbemServices: ISWbemServicesEx; const bsClassName: WideString;
iFlags: Integer; const objWbemNamedValueSet: IDispatch): ISWbemRefreshableItem;
procedure Remove(iIndex: Integer; iFlags: Integer);
procedure Refresh(iFlags: Integer);
procedure DeleteAll;
property DefaultInterface: ISWbemRefresher read GetDefaultInterface;
property Count: Integer read Get_Count;
property AutoReconnect: WordBool read Get_AutoReconnect write Set_AutoReconnect;
published
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
property Server: TSWbemRefresherProperties read GetServerProperties;
{$ENDIF}
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
// *********************************************************************//
// OLE Server Properties Proxy Class
// Server Object : TSWbemRefresher
// (This object is used by the IDE's Property Inspector to allow editing
// of the properties of this server)
// *********************************************************************//
TSWbemRefresherProperties = class(TPersistent)
private
FServer: TSWbemRefresher;
function GetDefaultInterface: ISWbemRefresher;
constructor Create(AServer: TSWbemRefresher);
protected
function Get_Count: Integer;
function Get_AutoReconnect: WordBool;
procedure Set_AutoReconnect(bCount: WordBool);
public
property DefaultInterface: ISWbemRefresher read GetDefaultInterface;
published
property AutoReconnect: WordBool read Get_AutoReconnect write Set_AutoReconnect;
end;
{$ENDIF}


// *********************************************************************//
// The Class CoSWbemServices provides a Create and CreateRemote method to
// create instances of the default interface ISWbemServices exposed by
// the CoClass SWbemServices. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoSWbemServices = class
class function Create: ISWbemServices;
class function CreateRemote(const MachineName: string): ISWbemServices;
end;

// *********************************************************************//
// The Class CoSWbemServicesEx provides a Create and CreateRemote method to
// create instances of the default interface ISWbemServicesEx exposed by
// the CoClass SWbemServicesEx. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoSWbemServicesEx = class
class function Create: ISWbemServicesEx;
class function CreateRemote(const MachineName: string): ISWbemServicesEx;
end;

// *********************************************************************//
// The Class CoSWbemObject provides a Create and CreateRemote method to
// create instances of the default interface ISWbemObject exposed by
// the CoClass SWbemObject. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoSWbemObject = class
class function Create: ISWbemObject;
class function CreateRemote(const MachineName: string): ISWbemObject;
end;

// *********************************************************************//
// The Class CoSWbemObjectEx provides a Create and CreateRemote method to
// create instances of the default interface ISWbemObjectEx exposed by
// the CoClass SWbemObjectEx. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoSWbemObjectEx = class
class function Create: ISWbemObjectEx;
class function CreateRemote(const MachineName: string): ISWbemObjectEx;
end;

// *********************************************************************//
// The Class CoSWbemObjectSet provides a Create and CreateRemote method to
// create instances of the default interface ISWbemObjectSet exposed by
// the CoClass SWbemObjectSet. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoSWbemObjectSet = class
class function Create: ISWbemObjectSet;
class function CreateRemote(const MachineName: string): ISWbemObjectSet;
end;

// *********************************************************************//
// The Class CoSWbemNamedValue provides a Create and CreateRemote method to
// create instances of the default interface ISWbemNamedValue exposed by
// the CoClass SWbemNamedValue. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoSWbemNamedValue = class
class function Create: ISWbemNamedValue;
class function CreateRemote(const MachineName: string): ISWbemNamedValue;
end;

// *********************************************************************//
// The Class CoSWbemQualifier provides a Create and CreateRemote method to
// create instances of the default interface ISWbemQualifier exposed by
// the CoClass SWbemQualifier. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoSWbemQualifier = class
class function Create: ISWbemQualifier;
class function CreateRemote(const MachineName: string): ISWbemQualifier;
end;

// *********************************************************************//
// The Class CoSWbemQualifierSet provides a Create and CreateRemote method to
// create instances of the default interface ISWbemQualifierSet exposed by
// the CoClass SWbemQualifierSet. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoSWbemQualifierSet = class
class function Create: ISWbemQualifierSet;
class function CreateRemote(const MachineName: string): ISWbemQualifierSet;
end;

// *********************************************************************//
// The Class CoSWbemProperty provides a Create and CreateRemote method to
// create instances of the default interface ISWbemProperty exposed by
// the CoClass SWbemProperty. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoSWbemProperty = class
class function Create: ISWbemProperty;
class function CreateRemote(const MachineName: string): ISWbemProperty;
end;

// *********************************************************************//
// The Class CoSWbemPropertySet provides a Create and CreateRemote method to
// create instances of the default interface ISWbemPropertySet exposed by
// the CoClass SWbemPropertySet. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoSWbemPropertySet = class
class function Create: ISWbemPropertySet;
class function CreateRemote(const MachineName: string): ISWbemPropertySet;
end;

// *********************************************************************//
// The Class CoSWbemMethod provides a Create and CreateRemote method to
// create instances of the default interface ISWbemMethod exposed by
// the CoClass SWbemMethod. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoSWbemMethod = class
class function Create: ISWbemMethod;
class function CreateRemote(const MachineName: string): ISWbemMethod;
end;

// *********************************************************************//
// The Class CoSWbemMethodSet provides a Create and CreateRemote method to
// create instances of the default interface ISWbemMethodSet exposed by
// the CoClass SWbemMethodSet. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoSWbemMethodSet = class
class function Create: ISWbemMethodSet;
class function CreateRemote(const MachineName: string): ISWbemMethodSet;
end;

// *********************************************************************//
// The Class CoSWbemEventSource provides a Create and CreateRemote method to
// create instances of the default interface ISWbemEventSource exposed by
// the CoClass SWbemEventSource. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoSWbemEventSource = class
class function Create: ISWbemEventSource;
class function CreateRemote(const MachineName: string): ISWbemEventSource;
end;

// *********************************************************************//
// The Class CoSWbemSecurity provides a Create and CreateRemote method to
// create instances of the default interface ISWbemSecurity exposed by
// the CoClass SWbemSecurity. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoSWbemSecurity = class
class function Create: ISWbemSecurity;
class function CreateRemote(const MachineName: string): ISWbemSecurity;
end;

// *********************************************************************//
// The Class CoSWbemPrivilege provides a Create and CreateRemote method to
// create instances of the default interface ISWbemPrivilege exposed by
// the CoClass SWbemPrivilege. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoSWbemPrivilege = class
class function Create: ISWbemPrivilege;
class function CreateRemote(const MachineName: string): ISWbemPrivilege;
end;

// *********************************************************************//
// The Class CoSWbemPrivilegeSet provides a Create and CreateRemote method to
// create instances of the default interface ISWbemPrivilegeSet exposed by
// the CoClass SWbemPrivilegeSet. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoSWbemPrivilegeSet = class
class function Create: ISWbemPrivilegeSet;
class function CreateRemote(const MachineName: string): ISWbemPrivilegeSet;
end;

// *********************************************************************//
// The Class CoSWbemRefreshableItem provides a Create and CreateRemote method to
// create instances of the default interface ISWbemRefreshableItem exposed by
// the CoClass SWbemRefreshableItem. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoSWbemRefreshableItem = class
class function Create: ISWbemRefreshableItem;
class function CreateRemote(const MachineName: string): ISWbemRefreshableItem;
end;

procedure Register;

resourcestring
dtlServerPage = '(none)';

dtlOcxPage = '(none)';

implementation

uses ComObj;

class function CoSWbemLocator.Create: ISWbemLocator;
begin
Result := CreateComObject(CLASS_SWbemLocator) as ISWbemLocator;
end;

class function CoSWbemLocator.CreateRemote(const MachineName: string): ISWbemLocator;
begin
Result := CreateRemoteComObject(MachineName, CLASS_SWbemLocator) as ISWbemLocator;
end;

procedure TSWbemLocator.InitServerData;
const
CServerData: TServerData = (
ClassID: '{76A64158-CB41-11D1-8B02-00600806D9B6}';
IntfIID: '{76A6415B-CB41-11D1-8B02-00600806D9B6}';
EventIID: '';
LicenseKey: nil;
Version: 500);
begin
ServerData := @CServerData;
end;

procedure TSWbemLocator.Connect;
var
punk: IUnknown;
begin
if FIntf = nil then
begin
punk := GetServer;
Fintf:= punk as ISWbemLocator;
end;
end;

procedure TSWbemLocator.ConnectTo(svrIntf: ISWbemLocator);
begin
Disconnect;
FIntf := svrIntf;
end;

procedure TSWbemLocator.DisConnect;
begin
if Fintf <> nil then
begin
FIntf := nil;
end;
end;

function TSWbemLocator.GetDefaultInterface: ISWbemLocator;
begin
if FIntf = nil then
Connect;
Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call ''Connect'' or ''ConnectTo'' before this operation');
Result := FIntf;
end;

constructor TSWbemLocator.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps := TSWbemLocatorProperties.Create(Self);
{$ENDIF}
end;

destructor TSWbemLocator.Destroy;
begin
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps.Free;
{$ENDIF}
inherited Destroy;
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
function TSWbemLocator.GetServerProperties: TSWbemLocatorProperties;
begin
Result := FProps;
end;
{$ENDIF}

function TSWbemLocator.Get_Security_: ISWbemSecurity;
begin
Result := DefaultInterface.Security_;
end;

function TSWbemLocator.ConnectServer(const strServer: WideString; const strNamespace: WideString;
const strUser: WideString; const strPassword: WideString;
const strLocale: WideString; const strAuthority: WideString;
iSecurityFlags: Integer; const objWbemNamedValueSet: IDispatch): ISWbemServices;
begin
Result := DefaultInterface.ConnectServer(strServer, strNamespace, strUser, strPassword,
strLocale, strAuthority, iSecurityFlags,
objWbemNamedValueSet);
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
constructor TSWbemLocatorProperties.Create(AServer: TSWbemLocator);
begin
inherited Create;
FServer := AServer;
end;

function TSWbemLocatorProperties.GetDefaultInterface: ISWbemLocator;
begin
Result := FServer.DefaultInterface;
end;

function TSWbemLocatorProperties.Get_Security_: ISWbemSecurity;
begin
Result := DefaultInterface.Security_;
end;

{$ENDIF}

class function CoSWbemNamedValueSet.Create: ISWbemNamedValueSet;
begin
Result := CreateComObject(CLASS_SWbemNamedValueSet) as ISWbemNamedValueSet;
end;

class function CoSWbemNamedValueSet.CreateRemote(const MachineName: string): ISWbemNamedValueSet;
begin
Result := CreateRemoteComObject(MachineName, CLASS_SWbemNamedValueSet) as ISWbemNamedValueSet;
end;

procedure TSWbemNamedValueSet.InitServerData;
const
CServerData: TServerData = (
ClassID: '{9AED384E-CE8B-11D1-8B05-00600806D9B6}';
IntfIID: '{CF2376EA-CE8C-11D1-8B05-00600806D9B6}';
EventIID: '';
LicenseKey: nil;
Version: 500);
begin
ServerData := @CServerData;
end;

procedure TSWbemNamedValueSet.Connect;
var
punk: IUnknown;
begin
if FIntf = nil then
begin
punk := GetServer;
Fintf:= punk as ISWbemNamedValueSet;
end;
end;

procedure TSWbemNamedValueSet.ConnectTo(svrIntf: ISWbemNamedValueSet);
begin
Disconnect;
FIntf := svrIntf;
end;

procedure TSWbemNamedValueSet.DisConnect;
begin
if Fintf <> nil then
begin
FIntf := nil;
end;
end;

function TSWbemNamedValueSet.GetDefaultInterface: ISWbemNamedValueSet;
begin
if FIntf = nil then
Connect;
Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call ''Connect'' or ''ConnectTo'' before this operation');
Result := FIntf;
end;

constructor TSWbemNamedValueSet.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps := TSWbemNamedValueSetProperties.Create(Self);
{$ENDIF}
end;

destructor TSWbemNamedValueSet.Destroy;
begin
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps.Free;
{$ENDIF}
inherited Destroy;
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
function TSWbemNamedValueSet.GetServerProperties: TSWbemNamedValueSetProperties;
begin
Result := FProps;
end;
{$ENDIF}

function TSWbemNamedValueSet.Get_Count: Integer;
begin
Result := DefaultInterface.Count;
end;

function TSWbemNamedValueSet.Item(const strName: WideString; iFlags: Integer): ISWbemNamedValue;
begin
Result := DefaultInterface.Item(strName, iFlags);
end;

function TSWbemNamedValueSet.Add(const strName: WideString; var varValue: OleVariant;
iFlags: Integer): ISWbemNamedValue;
begin
Result := DefaultInterface.Add(strName, varValue, iFlags);
end;

procedure TSWbemNamedValueSet.Remove(const strName: WideString; iFlags: Integer);
begin
DefaultInterface.Remove(strName, iFlags);
end;

function TSWbemNamedValueSet.Clone: ISWbemNamedValueSet;
begin
Result := DefaultInterface.Clone;
end;

procedure TSWbemNamedValueSet.DeleteAll;
begin
DefaultInterface.DeleteAll;
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
constructor TSWbemNamedValueSetProperties.Create(AServer: TSWbemNamedValueSet);
begin
inherited Create;
FServer := AServer;
end;

function TSWbemNamedValueSetProperties.GetDefaultInterface: ISWbemNamedValueSet;
begin
Result := FServer.DefaultInterface;
end;

function TSWbemNamedValueSetProperties.Get_Count: Integer;
begin
Result := DefaultInterface.Count;
end;

{$ENDIF}

class function CoSWbemObjectPath.Create: ISWbemObjectPath;
begin
Result := CreateComObject(CLASS_SWbemObjectPath) as ISWbemObjectPath;
end;

class function CoSWbemObjectPath.CreateRemote(const MachineName: string): ISWbemObjectPath;
begin
Result := CreateRemoteComObject(MachineName, CLASS_SWbemObjectPath) as ISWbemObjectPath;
end;

procedure TSWbemObjectPath.InitServerData;
const
CServerData: TServerData = (
ClassID: '{5791BC26-CE9C-11D1-97BF-0000F81E849C}';
IntfIID: '{5791BC27-CE9C-11D1-97BF-0000F81E849C}';
EventIID: '';
LicenseKey: nil;
Version: 500);
begin
ServerData := @CServerData;
end;

procedure TSWbemObjectPath.Connect;
var
punk: IUnknown;
begin
if FIntf = nil then
begin
punk := GetServer;
Fintf:= punk as ISWbemObjectPath;
end;
end;

procedure TSWbemObjectPath.ConnectTo(svrIntf: ISWbemObjectPath);
begin
Disconnect;
FIntf := svrIntf;
end;

procedure TSWbemObjectPath.DisConnect;
begin
if Fintf <> nil then
begin
FIntf := nil;
end;
end;

function TSWbemObjectPath.GetDefaultInterface: ISWbemObjectPath;
begin
if FIntf = nil then
Connect;
Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call ''Connect'' or ''ConnectTo'' before this operation');
Result := FIntf;
end;

constructor TSWbemObjectPath.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps := TSWbemObjectPathProperties.Create(Self);
{$ENDIF}
end;

destructor TSWbemObjectPath.Destroy;
begin
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps.Free;
{$ENDIF}
inherited Destroy;
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
function TSWbemObjectPath.GetServerProperties: TSWbemObjectPathProperties;
begin
Result := FProps;
end;
{$ENDIF}

function TSWbemObjectPath.Get_Path: WideString;
begin
Result := DefaultInterface.Path;
end;

procedure TSWbemObjectPath.Set_Path(const strPath: WideString);
{ Warning: The property Path has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.Path := strPath;
end;

function TSWbemObjectPath.Get_RelPath: WideString;
begin
Result := DefaultInterface.RelPath;
end;

procedure TSWbemObjectPath.Set_RelPath(const strRelPath: WideString);
{ Warning: The property RelPath has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.RelPath := strRelPath;
end;

function TSWbemObjectPath.Get_Server: WideString;
begin
Result := DefaultInterface.Server;
end;

procedure TSWbemObjectPath.Set_Server(const strServer: WideString);
{ Warning: The property Server has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.Server := strServer;
end;

function TSWbemObjectPath.Get_Namespace: WideString;
begin
Result := DefaultInterface.Namespace;
end;

procedure TSWbemObjectPath.Set_Namespace(const strNamespace: WideString);
{ Warning: The property Namespace has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.Namespace := strNamespace;
end;

function TSWbemObjectPath.Get_ParentNamespace: WideString;
begin
Result := DefaultInterface.ParentNamespace;
end;

function TSWbemObjectPath.Get_DisplayName: WideString;
begin
Result := DefaultInterface.DisplayName;
end;

procedure TSWbemObjectPath.Set_DisplayName(const strDisplayName: WideString);
{ Warning: The property DisplayName has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.DisplayName := strDisplayName;
end;

function TSWbemObjectPath.Get_Class_: WideString;
begin
Result := DefaultInterface.Class_;
end;

procedure TSWbemObjectPath.Set_Class_(const strClass: WideString);
{ Warning: The property Class_ has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.Class_ := strClass;
end;

function TSWbemObjectPath.Get_IsClass: WordBool;
begin
Result := DefaultInterface.IsClass;
end;

function TSWbemObjectPath.Get_IsSingleton: WordBool;
begin
Result := DefaultInterface.IsSingleton;
end;

function TSWbemObjectPath.Get_Keys: ISWbemNamedValueSet;
begin
Result := DefaultInterface.Keys;
end;

function TSWbemObjectPath.Get_Security_: ISWbemSecurity;
begin
Result := DefaultInterface.Security_;
end;

function TSWbemObjectPath.Get_Locale: WideString;
begin
Result := DefaultInterface.Locale;
end;

procedure TSWbemObjectPath.Set_Locale(const strLocale: WideString);
{ Warning: The property Locale has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.Locale := strLocale;
end;

function TSWbemObjectPath.Get_Authority: WideString;
begin
Result := DefaultInterface.Authority;
end;

procedure TSWbemObjectPath.Set_Authority(const strAuthority: WideString);
{ Warning: The property Authority has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.Authority := strAuthority;
end;

procedure TSWbemObjectPath.SetAsClass;
begin
DefaultInterface.SetAsClass;
end;

procedure TSWbemObjectPath.SetAsSingleton;
begin
DefaultInterface.SetAsSingleton;
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
constructor TSWbemObjectPathProperties.Create(AServer: TSWbemObjectPath);
begin
inherited Create;
FServer := AServer;
end;

function TSWbemObjectPathProperties.GetDefaultInterface: ISWbemObjectPath;
begin
Result := FServer.DefaultInterface;
end;

function TSWbemObjectPathProperties.Get_Path: WideString;
begin
Result := DefaultInterface.Path;
end;

procedure TSWbemObjectPathProperties.Set_Path(const strPath: WideString);
{ Warning: The property Path has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.Path := strPath;
end;

function TSWbemObjectPathProperties.Get_RelPath: WideString;
begin
Result := DefaultInterface.RelPath;
end;

procedure TSWbemObjectPathProperties.Set_RelPath(const strRelPath: WideString);
{ Warning: The property RelPath has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.RelPath := strRelPath;
end;

function TSWbemObjectPathProperties.Get_Server: WideString;
begin
Result := DefaultInterface.Server;
end;

procedure TSWbemObjectPathProperties.Set_Server(const strServer: WideString);
{ Warning: The property Server has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.Server := strServer;
end;

function TSWbemObjectPathProperties.Get_Namespace: WideString;
begin
Result := DefaultInterface.Namespace;
end;

procedure TSWbemObjectPathProperties.Set_Namespace(const strNamespace: WideString);
{ Warning: The property Namespace has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.Namespace := strNamespace;
end;

function TSWbemObjectPathProperties.Get_ParentNamespace: WideString;
begin
Result := DefaultInterface.ParentNamespace;
end;

function TSWbemObjectPathProperties.Get_DisplayName: WideString;
begin
Result := DefaultInterface.DisplayName;
end;

procedure TSWbemObjectPathProperties.Set_DisplayName(const strDisplayName: WideString);
{ Warning: The property DisplayName has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.DisplayName := strDisplayName;
end;

function TSWbemObjectPathProperties.Get_Class_: WideString;
begin
Result := DefaultInterface.Class_;
end;

procedure TSWbemObjectPathProperties.Set_Class_(const strClass: WideString);
{ Warning: The property Class_ has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.Class_ := strClass;
end;

function TSWbemObjectPathProperties.Get_IsClass: WordBool;
begin
Result := DefaultInterface.IsClass;
end;

function TSWbemObjectPathProperties.Get_IsSingleton: WordBool;
begin
Result := DefaultInterface.IsSingleton;
end;

function TSWbemObjectPathProperties.Get_Keys: ISWbemNamedValueSet;
begin
Result := DefaultInterface.Keys;
end;

function TSWbemObjectPathProperties.Get_Security_: ISWbemSecurity;
begin
Result := DefaultInterface.Security_;
end;

function TSWbemObjectPathProperties.Get_Locale: WideString;
begin
Result := DefaultInterface.Locale;
end;

procedure TSWbemObjectPathProperties.Set_Locale(const strLocale: WideString);
{ Warning: The property Locale has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.Locale := strLocale;
end;

function TSWbemObjectPathProperties.Get_Authority: WideString;
begin
Result := DefaultInterface.Authority;
end;

procedure TSWbemObjectPathProperties.Set_Authority(const strAuthority: WideString);
{ Warning: The property Authority has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.Authority := strAuthority;
end;

{$ENDIF}

class function CoSWbemLastError.Create: ISWbemLastError;
begin
Result := CreateComObject(CLASS_SWbemLastError) as ISWbemLastError;
end;

class function CoSWbemLastError.CreateRemote(const MachineName: string): ISWbemLastError;
begin
Result := CreateRemoteComObject(MachineName, CLASS_SWbemLastError) as ISWbemLastError;
end;

procedure TSWbemLastError.InitServerData;
const
CServerData: TServerData = (
ClassID: '{C2FEEEAC-CFCD-11D1-8B05-00600806D9B6}';
IntfIID: '{D962DB84-D4BB-11D1-8B09-00600806D9B6}';
EventIID: '';
LicenseKey: nil;
Version: 500);
begin
ServerData := @CServerData;
end;

procedure TSWbemLastError.Connect;
var
punk: IUnknown;
begin
if FIntf = nil then
begin
punk := GetServer;
Fintf:= punk as ISWbemLastError;
end;
end;

procedure TSWbemLastError.ConnectTo(svrIntf: ISWbemLastError);
begin
Disconnect;
FIntf := svrIntf;
end;

procedure TSWbemLastError.DisConnect;
begin
if Fintf <> nil then
begin
FIntf := nil;
end;
end;

function TSWbemLastError.GetDefaultInterface: ISWbemLastError;
begin
if FIntf = nil then
Connect;
Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call ''Connect'' or ''ConnectTo'' before this operation');
Result := FIntf;
end;

constructor TSWbemLastError.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps := TSWbemLastErrorProperties.Create(Self);
{$ENDIF}
end;

destructor TSWbemLastError.Destroy;
begin
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps.Free;
{$ENDIF}
inherited Destroy;
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
function TSWbemLastError.GetServerProperties: TSWbemLastErrorProperties;
begin
Result := FProps;
end;
{$ENDIF}

function TSWbemLastError.Get_Qualifiers_: ISWbemQualifierSet;
begin
Result := DefaultInterface.Qualifiers_;
end;

function TSWbemLastError.Get_Properties_: ISWbemPropertySet;
begin
Result := DefaultInterface.Properties_;
end;

function TSWbemLastError.Get_Methods_: ISWbemMethodSet;
begin
Result := DefaultInterface.Methods_;
end;

function TSWbemLastError.Get_Derivation_: OleVariant;
var
InterfaceVariant : OleVariant;
begin
InterfaceVariant := DefaultInterface;
Result := InterfaceVariant.Derivation_;
end;

function TSWbemLastError.Get_Path_: ISWbemObjectPath;
begin
Result := DefaultInterface.Path_;
end;

function TSWbemLastError.Get_Security_: ISWbemSecurity;
begin
Result := DefaultInterface.Security_;
end;

function TSWbemLastError.Put_(iFlags: Integer; const objWbemNamedValueSet: IDispatch): ISWbemObjectPath;
begin
Result := DefaultInterface.Put_(iFlags, objWbemNamedValueSet);
end;

procedure TSWbemLastError.PutAsync_(const objWbemSink: IDispatch; iFlags: Integer;
const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch);
begin
DefaultInterface.PutAsync_(objWbemSink, iFlags, objWbemNamedValueSet, objWbemAsyncContext);
end;

procedure TSWbemLastError.Delete_(iFlags: Integer; const objWbemNamedValueSet: IDispatch);
begin
DefaultInterface.Delete_(iFlags, objWbemNamedValueSet);
end;

procedure TSWbemLastError.DeleteAsync_(const objWbemSink: IDispatch; iFlags: Integer;
const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch);
begin
DefaultInterface.DeleteAsync_(objWbemSink, iFlags, objWbemNamedValueSet, objWbemAsyncContext);
end;

function TSWbemLastError.Instances_(iFlags: Integer; const objWbemNamedValueSet: IDispatch): ISWbemObjectSet;
begin
Result := DefaultInterface.Instances_(iFlags, objWbemNamedValueSet);
end;

procedure TSWbemLastError.InstancesAsync_(const objWbemSink: IDispatch; iFlags: Integer;
const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch);
begin
DefaultInterface.InstancesAsync_(objWbemSink, iFlags, objWbemNamedValueSet, objWbemAsyncContext);
end;

function TSWbemLastError.Subclasses_(iFlags: Integer; const objWbemNamedValueSet: IDispatch): ISWbemObjectSet;
begin
Result := DefaultInterface.Subclasses_(iFlags, objWbemNamedValueSet);
end;

procedure TSWbemLastError.SubclassesAsync_(const objWbemSink: IDispatch; iFlags: Integer;
const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch);
begin
DefaultInterface.SubclassesAsync_(objWbemSink, iFlags, objWbemNamedValueSet, objWbemAsyncContext);
end;

function TSWbemLastError.Associators_(const strAssocClass: WideString;
const strResultClass: WideString;
const strResultRole: WideString; const strRole: WideString;
bClassesOnly: WordBool; bSchemaOnly: WordBool;
const strRequiredAssocQualifier: WideString;
const strRequiredQualifier: WideString; iFlags: Integer;
const objWbemNamedValueSet: IDispatch): ISWbemObjectSet;
begin
Result := DefaultInterface.Associators_(strAssocClass, strResultClass, strResultRole, strRole,
bClassesOnly, bSchemaOnly, strRequiredAssocQualifier,
strRequiredQualifier, iFlags, objWbemNamedValueSet);
end;

procedure TSWbemLastError.AssociatorsAsync_(const objWbemSink: IDispatch;
const strAssocClass: WideString;
const strResultClass: WideString;
const strResultRole: WideString;
const strRole: WideString; bClassesOnly: WordBool;
bSchemaOnly: WordBool;
const strRequiredAssocQualifier: WideString;
const strRequiredQualifier: WideString;
iFlags: Integer; const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch);
begin
DefaultInterface.AssociatorsAsync_(objWbemSink, strAssocClass, strResultClass, strResultRole,
strRole, bClassesOnly, bSchemaOnly, strRequiredAssocQualifier,
strRequiredQualifier, iFlags, objWbemNamedValueSet,
objWbemAsyncContext);
end;

function TSWbemLastError.References_(const strResultClass: WideString; const strRole: WideString;
bClassesOnly: WordBool; bSchemaOnly: WordBool;
const strRequiredQualifier: WideString; iFlags: Integer;
const objWbemNamedValueSet: IDispatch): ISWbemObjectSet;
begin
Result := DefaultInterface.References_(strResultClass, strRole, bClassesOnly, bSchemaOnly,
strRequiredQualifier, iFlags, objWbemNamedValueSet);
end;

procedure TSWbemLastError.ReferencesAsync_(const objWbemSink: IDispatch;
const strResultClass: WideString;
const strRole: WideString; bClassesOnly: WordBool;
bSchemaOnly: WordBool;
const strRequiredQualifier: WideString; iFlags: Integer;
const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch);
begin
DefaultInterface.ReferencesAsync_(objWbemSink, strResultClass, strRole, bClassesOnly,
bSchemaOnly, strRequiredQualifier, iFlags,
objWbemNamedValueSet, objWbemAsyncContext);
end;

function TSWbemLastError.ExecMethod_(const strMethodName: WideString;
const objWbemInParameters: IDispatch; iFlags: Integer;
const objWbemNamedValueSet: IDispatch): ISWbemObject;
begin
Result := DefaultInterface.ExecMethod_(strMethodName, objWbemInParameters, iFlags,
objWbemNamedValueSet);
end;

procedure TSWbemLastError.ExecMethodAsync_(const objWbemSink: IDispatch;
const strMethodName: WideString;
const objWbemInParameters: IDispatch; iFlags: Integer;
const objWbemNamedValueSet: IDispatch;
const objWbemAsyncContext: IDispatch);
begin
DefaultInterface.ExecMethodAsync_(objWbemSink, strMethodName, objWbemInParameters, iFlags,
objWbemNamedValueSet, objWbemAsyncContext);
end;

function TSWbemLastError.Clone_: ISWbemObject;
begin
Result := DefaultInterface.Clone_;
end;

function TSWbemLastError.GetObjectText_(iFlags: Integer): WideString;
begin
Result := DefaultInterface.GetObjectText_(iFlags);
end;

function TSWbemLastError.SpawnDerivedClass_(iFlags: Integer): ISWbemObject;
begin
Result := DefaultInterface.SpawnDerivedClass_(iFlags);
end;

function TSWbemLastError.SpawnInstance_(iFlags: Integer): ISWbemObject;
begin
Result := DefaultInterface.SpawnInstance_(iFlags);
end;

function TSWbemLastError.CompareTo_(const objWbemObject: IDispatch; iFlags: Integer): WordBool;
begin
Result := DefaultInterface.CompareTo_(objWbemObject, iFlags);
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
constructor TSWbemLastErrorProperties.Create(AServer: TSWbemLastError);
begin
inherited Create;
FServer := AServer;
end;

function TSWbemLastErrorProperties.GetDefaultInterface: ISWbemLastError;
begin
Result := FServer.DefaultInterface;
end;

function TSWbemLastErrorProperties.Get_Qualifiers_: ISWbemQualifierSet;
begin
Result := DefaultInterface.Qualifiers_;
end;

function TSWbemLastErrorProperties.Get_Properties_: ISWbemPropertySet;
begin
Result := DefaultInterface.Properties_;
end;

function TSWbemLastErrorProperties.Get_Methods_: ISWbemMethodSet;
begin
Result := DefaultInterface.Methods_;
end;

function TSWbemLastErrorProperties.Get_Derivation_: OleVariant;
var
InterfaceVariant : OleVariant;
begin
InterfaceVariant := DefaultInterface;
Result := InterfaceVariant.Derivation_;
end;

function TSWbemLastErrorProperties.Get_Path_: ISWbemObjectPath;
begin
Result := DefaultInterface.Path_;
end;

function TSWbemLastErrorProperties.Get_Security_: ISWbemSecurity;
begin
Result := DefaultInterface.Security_;
end;

{$ENDIF}

class function CoSWbemSink.Create: ISWbemSink;
begin
Result := CreateComObject(CLASS_SWbemSink) as ISWbemSink;
end;

class function CoSWbemSink.CreateRemote(const MachineName: string): ISWbemSink;
begin
Result := CreateRemoteComObject(MachineName, CLASS_SWbemSink) as ISWbemSink;
end;

procedure TSWbemSink.InitServerData;
const
CServerData: TServerData = (
ClassID: '{75718C9A-F029-11D1-A1AC-00C04FB6C223}';
IntfIID: '{75718C9F-F029-11D1-A1AC-00C04FB6C223}';
EventIID: '{75718CA0-F029-11D1-A1AC-00C04FB6C223}';
LicenseKey: nil;
Version: 500);
begin
ServerData := @CServerData;
end;

procedure TSWbemSink.Connect;
var
punk: IUnknown;
begin
if FIntf = nil then
begin
punk := GetServer;
ConnectEvents(punk);
Fintf:= punk as ISWbemSink;
end;
end;

procedure TSWbemSink.ConnectTo(svrIntf: ISWbemSink);
begin
Disconnect;
FIntf := svrIntf;
ConnectEvents(FIntf);
end;

procedure TSWbemSink.DisConnect;
begin
if Fintf <> nil then
begin
DisconnectEvents(FIntf);
FIntf := nil;
end;
end;

function TSWbemSink.GetDefaultInterface: ISWbemSink;
begin
if FIntf = nil then
Connect;
Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call ''Connect'' or ''ConnectTo'' before this operation');
Result := FIntf;
end;

constructor TSWbemSink.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps := TSWbemSinkProperties.Create(Self);
{$ENDIF}
end;

destructor TSWbemSink.Destroy;
begin
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps.Free;
{$ENDIF}
inherited Destroy;
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
function TSWbemSink.GetServerProperties: TSWbemSinkProperties;
begin
Result := FProps;
end;
{$ENDIF}

procedure TSWbemSink.InvokeEvent(DispID: TDispID; var Params: TVariantArray);
begin
case DispID of
-1: Exit; // DISPID_UNKNOWN
1: if Assigned(FOnObjectReady) then
FOnObjectReady(Self,
IUnknown(TVarData(Params[0]).VPointer) as ISWbemObject {const ISWbemObject},
IUnknown(TVarData(Params[1]).VPointer) as ISWbemNamedValueSet {const ISWbemNamedValueSet});
2: if Assigned(FOnCompleted) then
FOnCompleted(Self,
Params[0] {WbemErrorEnum},
IUnknown(TVarData(Params[1]).VPointer) as ISWbemObject {const ISWbemObject},
IUnknown(TVarData(Params[2]).VPointer) as ISWbemNamedValueSet {const ISWbemNamedValueSet});
3: if Assigned(FOnProgress) then
FOnProgress(Self,
Params[0] {Integer},
Params[1] {Integer},
Params[2] {const WideString},
IUnknown(TVarData(Params[3]).VPointer) as ISWbemNamedValueSet {const ISWbemNamedValueSet});
4: if Assigned(FOnObjectPut) then
FOnObjectPut(Self,
IUnknown(TVarData(Params[0]).VPointer) as ISWbemObjectPath {const ISWbemObjectPath},
IUnknown(TVarData(Params[1]).VPointer) as ISWbemNamedValueSet {const ISWbemNamedValueSet});
end; {case DispID}
end;


procedure TSWbemSink.Cancel;
begin
DefaultInterface.Cancel;
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
constructor TSWbemSinkProperties.Create(AServer: TSWbemSink);
begin
inherited Create;
FServer := AServer;
end;

function TSWbemSinkProperties.GetDefaultInterface: ISWbemSink;
begin
Result := FServer.DefaultInterface;
end;

{$ENDIF}

class function CoSWbemDateTime.Create: ISWbemDateTime;
begin
Result := CreateComObject(CLASS_SWbemDateTime) as ISWbemDateTime;
end;

class function CoSWbemDateTime.CreateRemote(const MachineName: string): ISWbemDateTime;
begin
Result := CreateRemoteComObject(MachineName, CLASS_SWbemDateTime) as ISWbemDateTime;
end;

procedure TSWbemDateTime.InitServerData;
const
CServerData: TServerData = (
ClassID: '{47DFBE54-CF76-11D3-B38F-00105A1F473A}';
IntfIID: '{5E97458A-CF77-11D3-B38F-00105A1F473A}';
EventIID: '';
LicenseKey: nil;
Version: 500);
begin
ServerData := @CServerData;
end;

procedure TSWbemDateTime.Connect;
var
punk: IUnknown;
begin
if FIntf = nil then
begin
punk := GetServer;
Fintf:= punk as ISWbemDateTime;
end;
end;

procedure TSWbemDateTime.ConnectTo(svrIntf: ISWbemDateTime);
begin
Disconnect;
FIntf := svrIntf;
end;

procedure TSWbemDateTime.DisConnect;
begin
if Fintf <> nil then
begin
FIntf := nil;
end;
end;

function TSWbemDateTime.GetDefaultInterface: ISWbemDateTime;
begin
if FIntf = nil then
Connect;
Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call ''Connect'' or ''ConnectTo'' before this operation');
Result := FIntf;
end;

constructor TSWbemDateTime.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps := TSWbemDateTimeProperties.Create(Self);
{$ENDIF}
end;

destructor TSWbemDateTime.Destroy;
begin
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps.Free;
{$ENDIF}
inherited Destroy;
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
function TSWbemDateTime.GetServerProperties: TSWbemDateTimeProperties;
begin
Result := FProps;
end;
{$ENDIF}

function TSWbemDateTime.Get_Value: WideString;
begin
Result := DefaultInterface.Value;
end;

procedure TSWbemDateTime.Set_Value(const strValue: WideString);
{ Warning: The property Value has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.Value := strValue;
end;

function TSWbemDateTime.Get_Year: Integer;
begin
Result := DefaultInterface.Year;
end;

procedure TSWbemDateTime.Set_Year(iYear: Integer);
begin
DefaultInterface.Set_Year(iYear);
end;

function TSWbemDateTime.Get_YearSpecified: WordBool;
begin
Result := DefaultInterface.YearSpecified;
end;

procedure TSWbemDateTime.Set_YearSpecified(bYearSpecified: WordBool);
begin
DefaultInterface.Set_YearSpecified(bYearSpecified);
end;

function TSWbemDateTime.Get_Month: Integer;
begin
Result := DefaultInterface.Month;
end;

procedure TSWbemDateTime.Set_Month(iMonth: Integer);
begin
DefaultInterface.Set_Month(iMonth);
end;

function TSWbemDateTime.Get_MonthSpecified: WordBool;
begin
Result := DefaultInterface.MonthSpecified;
end;

procedure TSWbemDateTime.Set_MonthSpecified(bMonthSpecified: WordBool);
begin
DefaultInterface.Set_MonthSpecified(bMonthSpecified);
end;

function TSWbemDateTime.Get_Day: Integer;
begin
Result := DefaultInterface.Day;
end;

procedure TSWbemDateTime.Set_Day(iDay: Integer);
begin
DefaultInterface.Set_Day(iDay);
end;

function TSWbemDateTime.Get_DaySpecified: WordBool;
begin
Result := DefaultInterface.DaySpecified;
end;

procedure TSWbemDateTime.Set_DaySpecified(bDaySpecified: WordBool);
begin
DefaultInterface.Set_DaySpecified(bDaySpecified);
end;

function TSWbemDateTime.Get_Hours: Integer;
begin
Result := DefaultInterface.Hours;
end;

procedure TSWbemDateTime.Set_Hours(iHours: Integer);
begin
DefaultInterface.Set_Hours(iHours);
end;

function TSWbemDateTime.Get_HoursSpecified: WordBool;
begin
Result := DefaultInterface.HoursSpecified;
end;

procedure TSWbemDateTime.Set_HoursSpecified(bHoursSpecified: WordBool);
begin
DefaultInterface.Set_HoursSpecified(bHoursSpecified);
end;

function TSWbemDateTime.Get_Minutes: Integer;
begin
Result := DefaultInterface.Minutes;
end;

procedure TSWbemDateTime.Set_Minutes(iMinutes: Integer);
begin
DefaultInterface.Set_Minutes(iMinutes);
end;

function TSWbemDateTime.Get_MinutesSpecified: WordBool;
begin
Result := DefaultInterface.MinutesSpecified;
end;

procedure TSWbemDateTime.Set_MinutesSpecified(bMinutesSpecified: WordBool);
begin
DefaultInterface.Set_MinutesSpecified(bMinutesSpecified);
end;

function TSWbemDateTime.Get_Seconds: Integer;
begin
Result := DefaultInterface.Seconds;
end;

procedure TSWbemDateTime.Set_Seconds(iSeconds: Integer);
begin
DefaultInterface.Set_Seconds(iSeconds);
end;

function TSWbemDateTime.Get_SecondsSpecified: WordBool;
begin
Result := DefaultInterface.SecondsSpecified;
end;

procedure TSWbemDateTime.Set_SecondsSpecified(bSecondsSpecified: WordBool);
begin
DefaultInterface.Set_SecondsSpecified(bSecondsSpecified);
end;

function TSWbemDateTime.Get_Microseconds: Integer;
begin
Result := DefaultInterface.Microseconds;
end;

procedure TSWbemDateTime.Set_Microseconds(iMicroseconds: Integer);
begin
DefaultInterface.Set_Microseconds(iMicroseconds);
end;

function TSWbemDateTime.Get_MicrosecondsSpecified: WordBool;
begin
Result := DefaultInterface.MicrosecondsSpecified;
end;

procedure TSWbemDateTime.Set_MicrosecondsSpecified(bMicrosecondsSpecified: WordBool);
begin
DefaultInterface.Set_MicrosecondsSpecified(bMicrosecondsSpecified);
end;

function TSWbemDateTime.Get_UTC: Integer;
begin
Result := DefaultInterface.UTC;
end;

procedure TSWbemDateTime.Set_UTC(iUTC: Integer);
begin
DefaultInterface.Set_UTC(iUTC);
end;

function TSWbemDateTime.Get_UTCSpecified: WordBool;
begin
Result := DefaultInterface.UTCSpecified;
end;

procedure TSWbemDateTime.Set_UTCSpecified(bUTCSpecified: WordBool);
begin
DefaultInterface.Set_UTCSpecified(bUTCSpecified);
end;

function TSWbemDateTime.Get_IsInterval: WordBool;
begin
Result := DefaultInterface.IsInterval;
end;

procedure TSWbemDateTime.Set_IsInterval(bIsInterval: WordBool);
begin
DefaultInterface.Set_IsInterval(bIsInterval);
end;

function TSWbemDateTime.GetVarDate(bIsLocal: WordBool): TDateTime;
begin
Result := DefaultInterface.GetVarDate(bIsLocal);
end;

procedure TSWbemDateTime.SetVarDate(dVarDate: TDateTime; bIsLocal: WordBool);
begin
DefaultInterface.SetVarDate(dVarDate, bIsLocal);
end;

function TSWbemDateTime.GetFileTime(bIsLocal: WordBool): WideString;
begin
Result := DefaultInterface.GetFileTime(bIsLocal);
end;

procedure TSWbemDateTime.SetFileTime(const strFileTime: WideString; bIsLocal: WordBool);
begin
DefaultInterface.SetFileTime(strFileTime, bIsLocal);
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
constructor TSWbemDateTimeProperties.Create(AServer: TSWbemDateTime);
begin
inherited Create;
FServer := AServer;
end;

function TSWbemDateTimeProperties.GetDefaultInterface: ISWbemDateTime;
begin
Result := FServer.DefaultInterface;
end;

function TSWbemDateTimeProperties.Get_Value: WideString;
begin
Result := DefaultInterface.Value;
end;

procedure TSWbemDateTimeProperties.Set_Value(const strValue: WideString);
{ Warning: The property Value has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.Value := strValue;
end;

function TSWbemDateTimeProperties.Get_Year: Integer;
begin
Result := DefaultInterface.Year;
end;

procedure TSWbemDateTimeProperties.Set_Year(iYear: Integer);
begin
DefaultInterface.Set_Year(iYear);
end;

function TSWbemDateTimeProperties.Get_YearSpecified: WordBool;
begin
Result := DefaultInterface.YearSpecified;
end;

procedure TSWbemDateTimeProperties.Set_YearSpecified(bYearSpecified: WordBool);
begin
DefaultInterface.Set_YearSpecified(bYearSpecified);
end;

function TSWbemDateTimeProperties.Get_Month: Integer;
begin
Result := DefaultInterface.Month;
end;

procedure TSWbemDateTimeProperties.Set_Month(iMonth: Integer);
begin
DefaultInterface.Set_Month(iMonth);
end;

function TSWbemDateTimeProperties.Get_MonthSpecified: WordBool;
begin
Result := DefaultInterface.MonthSpecified;
end;

procedure TSWbemDateTimeProperties.Set_MonthSpecified(bMonthSpecified: WordBool);
begin
DefaultInterface.Set_MonthSpecified(bMonthSpecified);
end;

function TSWbemDateTimeProperties.Get_Day: Integer;
begin
Result := DefaultInterface.Day;
end;

procedure TSWbemDateTimeProperties.Set_Day(iDay: Integer);
begin
DefaultInterface.Set_Day(iDay);
end;

function TSWbemDateTimeProperties.Get_DaySpecified: WordBool;
begin
Result := DefaultInterface.DaySpecified;
end;

procedure TSWbemDateTimeProperties.Set_DaySpecified(bDaySpecified: WordBool);
begin
DefaultInterface.Set_DaySpecified(bDaySpecified);
end;

function TSWbemDateTimeProperties.Get_Hours: Integer;
begin
Result := DefaultInterface.Hours;
end;

procedure TSWbemDateTimeProperties.Set_Hours(iHours: Integer);
begin
DefaultInterface.Set_Hours(iHours);
end;

function TSWbemDateTimeProperties.Get_HoursSpecified: WordBool;
begin
Result := DefaultInterface.HoursSpecified;
end;

procedure TSWbemDateTimeProperties.Set_HoursSpecified(bHoursSpecified: WordBool);
begin
DefaultInterface.Set_HoursSpecified(bHoursSpecified);
end;

function TSWbemDateTimeProperties.Get_Minutes: Integer;
begin
Result := DefaultInterface.Minutes;
end;

procedure TSWbemDateTimeProperties.Set_Minutes(iMinutes: Integer);
begin
DefaultInterface.Set_Minutes(iMinutes);
end;

function TSWbemDateTimeProperties.Get_MinutesSpecified: WordBool;
begin
Result := DefaultInterface.MinutesSpecified;
end;

procedure TSWbemDateTimeProperties.Set_MinutesSpecified(bMinutesSpecified: WordBool);
begin
DefaultInterface.Set_MinutesSpecified(bMinutesSpecified);
end;

function TSWbemDateTimeProperties.Get_Seconds: Integer;
begin
Result := DefaultInterface.Seconds;
end;

procedure TSWbemDateTimeProperties.Set_Seconds(iSeconds: Integer);
begin
DefaultInterface.Set_Seconds(iSeconds);
end;

function TSWbemDateTimeProperties.Get_SecondsSpecified: WordBool;
begin
Result := DefaultInterface.SecondsSpecified;
end;

procedure TSWbemDateTimeProperties.Set_SecondsSpecified(bSecondsSpecified: WordBool);
begin
DefaultInterface.Set_SecondsSpecified(bSecondsSpecified);
end;

function TSWbemDateTimeProperties.Get_Microseconds: Integer;
begin
Result := DefaultInterface.Microseconds;
end;

procedure TSWbemDateTimeProperties.Set_Microseconds(iMicroseconds: Integer);
begin
DefaultInterface.Set_Microseconds(iMicroseconds);
end;

function TSWbemDateTimeProperties.Get_MicrosecondsSpecified: WordBool;
begin
Result := DefaultInterface.MicrosecondsSpecified;
end;

procedure TSWbemDateTimeProperties.Set_MicrosecondsSpecified(bMicrosecondsSpecified: WordBool);
begin
DefaultInterface.Set_MicrosecondsSpecified(bMicrosecondsSpecified);
end;

function TSWbemDateTimeProperties.Get_UTC: Integer;
begin
Result := DefaultInterface.UTC;
end;

procedure TSWbemDateTimeProperties.Set_UTC(iUTC: Integer);
begin
DefaultInterface.Set_UTC(iUTC);
end;

function TSWbemDateTimeProperties.Get_UTCSpecified: WordBool;
begin
Result := DefaultInterface.UTCSpecified;
end;

procedure TSWbemDateTimeProperties.Set_UTCSpecified(bUTCSpecified: WordBool);
begin
DefaultInterface.Set_UTCSpecified(bUTCSpecified);
end;

function TSWbemDateTimeProperties.Get_IsInterval: WordBool;
begin
Result := DefaultInterface.IsInterval;
end;

procedure TSWbemDateTimeProperties.Set_IsInterval(bIsInterval: WordBool);
begin
DefaultInterface.Set_IsInterval(bIsInterval);
end;

{$ENDIF}

class function CoSWbemRefresher.Create: ISWbemRefresher;
begin
Result := CreateComObject(CLASS_SWbemRefresher) as ISWbemRefresher;
end;

class function CoSWbemRefresher.CreateRemote(const MachineName: string): ISWbemRefresher;
begin
Result := CreateRemoteComObject(MachineName, CLASS_SWbemRefresher) as ISWbemRefresher;
end;

procedure TSWbemRefresher.InitServerData;
const
CServerData: TServerData = (
ClassID: '{D269BF5C-D9C1-11D3-B38F-00105A1F473A}';
IntfIID: '{14D8250E-D9C2-11D3-B38F-00105A1F473A}';
EventIID: '';
LicenseKey: nil;
Version: 500);
begin
ServerData := @CServerData;
end;

procedure TSWbemRefresher.Connect;
var
punk: IUnknown;
begin
if FIntf = nil then
begin
punk := GetServer;
Fintf:= punk as ISWbemRefresher;
end;
end;

procedure TSWbemRefresher.ConnectTo(svrIntf: ISWbemRefresher);
begin
Disconnect;
FIntf := svrIntf;
end;

procedure TSWbemRefresher.DisConnect;
begin
if Fintf <> nil then
begin
FIntf := nil;
end;
end;

function TSWbemRefresher.GetDefaultInterface: ISWbemRefresher;
begin
if FIntf = nil then
Connect;
Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call ''Connect'' or ''ConnectTo'' before this operation');
Result := FIntf;
end;

constructor TSWbemRefresher.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps := TSWbemRefresherProperties.Create(Self);
{$ENDIF}
end;

destructor TSWbemRefresher.Destroy;
begin
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps.Free;
{$ENDIF}
inherited Destroy;
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
function TSWbemRefresher.GetServerProperties: TSWbemRefresherProperties;
begin
Result := FProps;
end;
{$ENDIF}

function TSWbemRefresher.Get_Count: Integer;
begin
Result := DefaultInterface.Count;
end;

function TSWbemRefresher.Get_AutoReconnect: WordBool;
begin
Result := DefaultInterface.AutoReconnect;
end;

procedure TSWbemRefresher.Set_AutoReconnect(bCount: WordBool);
begin
DefaultInterface.Set_AutoReconnect(bCount);
end;

function TSWbemRefresher.Item(iIndex: Integer): ISWbemRefreshableItem;
begin
Result := DefaultInterface.Item(iIndex);
end;

function TSWbemRefresher.Add(const objWbemServices: ISWbemServicesEx;
const bsInstancePath: WideString; iFlags: Integer;
const objWbemNamedValueSet: IDispatch): ISWbemRefreshableItem;
begin
Result := DefaultInterface.Add(objWbemServices, bsInstancePath, iFlags, objWbemNamedValueSet);
end;

function TSWbemRefresher.AddEnum(const objWbemServices: ISWbemServicesEx;
const bsClassName: WideString; iFlags: Integer;
const objWbemNamedValueSet: IDispatch): ISWbemRefreshableItem;
begin
Result := DefaultInterface.AddEnum(objWbemServices, bsClassName, iFlags, objWbemNamedValueSet);
end;

procedure TSWbemRefresher.Remove(iIndex: Integer; iFlags: Integer);
begin
DefaultInterface.Remove(iIndex, iFlags);
end;

procedure TSWbemRefresher.Refresh(iFlags: Integer);
begin
DefaultInterface.Refresh(iFlags);
end;

procedure TSWbemRefresher.DeleteAll;
begin
DefaultInterface.DeleteAll;
end;

{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
constructor TSWbemRefresherProperties.Create(AServer: TSWbemRefresher);
begin
inherited Create;
FServer := AServer;
end;

function TSWbemRefresherProperties.GetDefaultInterface: ISWbemRefresher;
begin
Result := FServer.DefaultInterface;
end;

function TSWbemRefresherProperties.Get_Count: Integer;
begin
Result := DefaultInterface.Count;
end;

function TSWbemRefresherProperties.Get_AutoReconnect: WordBool;
begin
Result := DefaultInterface.AutoReconnect;
end;

procedure TSWbemRefresherProperties.Set_AutoReconnect(bCount: WordBool);
begin
DefaultInterface.Set_AutoReconnect(bCount);
end;

{$ENDIF}

class function CoSWbemServices.Create: ISWbemServices;
begin
Result := CreateComObject(CLASS_SWbemServices) as ISWbemServices;
end;

class function CoSWbemServices.CreateRemote(const MachineName: string): ISWbemServices;
begin
Result := CreateRemoteComObject(MachineName, CLASS_SWbemServices) as ISWbemServices;
end;

class function CoSWbemServicesEx.Create: ISWbemServicesEx;
begin
Result := CreateComObject(CLASS_SWbemServicesEx) as ISWbemServicesEx;
end;

class function CoSWbemServicesEx.CreateRemote(const MachineName: string): ISWbemServicesEx;
begin
Result := CreateRemoteComObject(MachineName, CLASS_SWbemServicesEx) as ISWbemServicesEx;
end;

class function CoSWbemObject.Create: ISWbemObject;
begin
Result := CreateComObject(CLASS_SWbemObject) as ISWbemObject;
end;

class function CoSWbemObject.CreateRemote(const MachineName: string): ISWbemObject;
begin
Result := CreateRemoteComObject(MachineName, CLASS_SWbemObject) as ISWbemObject;
end;

class function CoSWbemObjectEx.Create: ISWbemObjectEx;
begin
Result := CreateComObject(CLASS_SWbemObjectEx) as ISWbemObjectEx;
end;

class function CoSWbemObjectEx.CreateRemote(const MachineName: string): ISWbemObjectEx;
begin
Result := CreateRemoteComObject(MachineName, CLASS_SWbemObjectEx) as ISWbemObjectEx;
end;

class function CoSWbemObjectSet.Create: ISWbemObjectSet;
begin
Result := CreateComObject(CLASS_SWbemObjectSet) as ISWbemObjectSet;
end;

class function CoSWbemObjectSet.CreateRemote(const MachineName: string): ISWbemObjectSet;
begin
Result := CreateRemoteComObject(MachineName, CLASS_SWbemObjectSet) as ISWbemObjectSet;
end;

class function CoSWbemNamedValue.Create: ISWbemNamedValue;
begin
Result := CreateComObject(CLASS_SWbemNamedValue) as ISWbemNamedValue;
end;

class function CoSWbemNamedValue.CreateRemote(const MachineName: string): ISWbemNamedValue;
begin
Result := CreateRemoteComObject(MachineName, CLASS_SWbemNamedValue) as ISWbemNamedValue;
end;

class function CoSWbemQualifier.Create: ISWbemQualifier;
begin
Result := CreateComObject(CLASS_SWbemQualifier) as ISWbemQualifier;
end;

class function CoSWbemQualifier.CreateRemote(const MachineName: string): ISWbemQualifier;
begin
Result := CreateRemoteComObject(MachineName, CLASS_SWbemQualifier) as ISWbemQualifier;
end;

class function CoSWbemQualifierSet.Create: ISWbemQualifierSet;
begin
Result := CreateComObject(CLASS_SWbemQualifierSet) as ISWbemQualifierSet;
end;

class function CoSWbemQualifierSet.CreateRemote(const MachineName: string): ISWbemQualifierSet;
begin
Result := CreateRemoteComObject(MachineName, CLASS_SWbemQualifierSet) as ISWbemQualifierSet;
end;

class function CoSWbemProperty.Create: ISWbemProperty;
begin
Result := CreateComObject(CLASS_SWbemProperty) as ISWbemProperty;
end;

class function CoSWbemProperty.CreateRemote(const MachineName: string): ISWbemProperty;
begin
Result := CreateRemoteComObject(MachineName, CLASS_SWbemProperty) as ISWbemProperty;
end;

class function CoSWbemPropertySet.Create: ISWbemPropertySet;
begin
Result := CreateComObject(CLASS_SWbemPropertySet) as ISWbemPropertySet;
end;

class function CoSWbemPropertySet.CreateRemote(const MachineName: string): ISWbemPropertySet;
begin
Result := CreateRemoteComObject(MachineName, CLASS_SWbemPropertySet) as ISWbemPropertySet;
end;

class function CoSWbemMethod.Create: ISWbemMethod;
begin
Result := CreateComObject(CLASS_SWbemMethod) as ISWbemMethod;
end;

class function CoSWbemMethod.CreateRemote(const MachineName: string): ISWbemMethod;
begin
Result := CreateRemoteComObject(MachineName, CLASS_SWbemMethod) as ISWbemMethod;
end;

class function CoSWbemMethodSet.Create: ISWbemMethodSet;
begin
Result := CreateComObject(CLASS_SWbemMethodSet) as ISWbemMethodSet;
end;

class function CoSWbemMethodSet.CreateRemote(const MachineName: string): ISWbemMethodSet;
begin
Result := CreateRemoteComObject(MachineName, CLASS_SWbemMethodSet) as ISWbemMethodSet;
end;

class function CoSWbemEventSource.Create: ISWbemEventSource;
begin
Result := CreateComObject(CLASS_SWbemEventSource) as ISWbemEventSource;
end;

class function CoSWbemEventSource.CreateRemote(const MachineName: string): ISWbemEventSource;
begin
Result := CreateRemoteComObject(MachineName, CLASS_SWbemEventSource) as ISWbemEventSource;
end;

class function CoSWbemSecurity.Create: ISWbemSecurity;
begin
Result := CreateComObject(CLASS_SWbemSecurity) as ISWbemSecurity;
end;

class function CoSWbemSecurity.CreateRemote(const MachineName: string): ISWbemSecurity;
begin
Result := CreateRemoteComObject(MachineName, CLASS_SWbemSecurity) as ISWbemSecurity;
end;

class function CoSWbemPrivilege.Create: ISWbemPrivilege;
begin
Result := CreateComObject(CLASS_SWbemPrivilege) as ISWbemPrivilege;
end;

class function CoSWbemPrivilege.CreateRemote(const MachineName: string): ISWbemPrivilege;
begin
Result := CreateRemoteComObject(MachineName, CLASS_SWbemPrivilege) as ISWbemPrivilege;
end;

class function CoSWbemPrivilegeSet.Create: ISWbemPrivilegeSet;
begin
Result := CreateComObject(CLASS_SWbemPrivilegeSet) as ISWbemPrivilegeSet;
end;

class function CoSWbemPrivilegeSet.CreateRemote(const MachineName: string): ISWbemPrivilegeSet;
begin
Result := CreateRemoteComObject(MachineName, CLASS_SWbemPrivilegeSet) as ISWbemPrivilegeSet;
end;

class function CoSWbemRefreshableItem.Create: ISWbemRefreshableItem;
begin
Result := CreateComObject(CLASS_SWbemRefreshableItem) as ISWbemRefreshableItem;
end;

class function CoSWbemRefreshableItem.CreateRemote(const MachineName: string): ISWbemRefreshableItem;
begin
Result := CreateRemoteComObject(MachineName, CLASS_SWbemRefreshableItem) as ISWbemRefreshableItem;
end;

procedure Register;
begin
RegisterComponents(dtlServerPage, [TSWbemLocator, TSWbemNamedValueSet, TSWbemObjectPath, TSWbemLastError,
TSWbemSink, TSWbemDateTime, TSWbemRefresher]);
end;

end.

Artículos relacionados

Créditos

Artículo realizado íntegramente por Alonsojpd miembro fundador del proyecto AjpdSoft.

No hay comentarios: