JwaWbemCli.pas
上传用户:davidchvip
上传日期:2009-07-28
资源大小:1749k
文件大小:57k
源码类别:

Windows编程

开发平台:

Delphi

  1. {******************************************************************************}
  2. {                                                                       }
  3. { WBEM Client interface Unit for Object Pascal                                 }
  4. {                                                                       }
  5. { Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft          }
  6. { Corporation. All Rights Reserved.                                            }
  7. {                 }
  8. { The original file is: wbemcli.idl, released Nov 2002. The original Pascal    }
  9. { code is: WbemCli.pas, released April 2002. The initial developer of the      }
  10. { Pascal code is Marcel van Brakel (brakelm@chello.nl).                        }
  11. {                                                                              }
  12. { Portions created by Marcel van Brakel are Copyright (C) 1999-2001            }
  13. { Marcel van Brakel. All Rights Reserved.                                      }
  14. {                 }
  15. { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI)        }
  16. {                }
  17. { You may retrieve the latest version of this file at the Project JEDI home    }
  18. { page, located at http://delphi-jedi.org or my personal homepage located at   }
  19. { http://members.chello.nl/m.vanbrakel2                                        }
  20. {                }
  21. { The contents of this file are used with permission, subject to the Mozilla   }
  22. { Public License Version 1.1 (the "License"); you may not use this file except }
  23. { in compliance with the License. You may obtain a copy of the License at      }
  24. { http://www.mozilla.org/MPL/MPL-1.1.html                                      }
  25. {                                                                              }
  26. { Software distributed under the License is distributed on an "AS IS" basis,   }
  27. { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for }
  28. { the specific language governing rights and limitations under the License.    }
  29. {                                                                              }
  30. { Alternatively, the contents of this file may be used under the terms of the  }
  31. { GNU Lesser General Public License (the  "LGPL License"), in which case the   }
  32. { provisions of the LGPL License are applicable instead of those above.        }
  33. { If you wish to allow use of your version of this file only under the terms   }
  34. { of the LGPL License and not to allow others to use your version of this file }
  35. { under the MPL, indicate your decision by deleting  the provisions above and  }
  36. { replace  them with the notice and other provisions required by the LGPL      }
  37. { License.  If you do not delete the provisions above, a recipient may use     }
  38. { your version of this file under either the MPL or the LGPL License.          }
  39. {                 }
  40. { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html }
  41. {                 }
  42. {******************************************************************************}
  43. unit JwaWbemCli;
  44. {$WEAKPACKAGEUNIT}
  45. {$HPPEMIT ''}
  46. {$HPPEMIT '#include "wbemcli.h"'}
  47. {$HPPEMIT ''}
  48. {$I WINDEFINES.INC}
  49. interface
  50. uses
  51.   ActiveX, JwaWinType;
  52. type
  53.   tag_WBEM_GENUS_TYPE = DWORD;
  54.   {$EXTERNALSYM tag_WBEM_GENUS_TYPE}
  55.   WBEM_GENUS_TYPE = tag_WBEM_GENUS_TYPE;
  56.   {$EXTERNALSYM WBEM_GENUS_TYPE}
  57.   TWbemGenusType = WBEM_GENUS_TYPE;
  58.   {$EXTERNALSYM TWbemGenusType}
  59. const
  60.   WBEM_GENUS_CLASS = 1;
  61.   {$EXTERNALSYM WBEM_GENUS_CLASS}
  62.   WBEM_GENUS_INSTANCE = 2;
  63.   {$EXTERNALSYM WBEM_GENUS_INSTANCE}
  64. type
  65.   tag_WBEM_CHANGE_FLAG_TYPE = DWORD;
  66.   {$EXTERNALSYM tag_WBEM_CHANGE_FLAG_TYPE}
  67.   WBEM_CHANGE_FLAG_TYPE = tag_WBEM_CHANGE_FLAG_TYPE;
  68.   {$EXTERNALSYM WBEM_CHANGE_FLAG_TYPE}
  69.   TWbemChangeFlagType = WBEM_CHANGE_FLAG_TYPE;
  70.   {$EXTERNALSYM TWbemChangeFlagType}
  71. const
  72.   WBEM_FLAG_CREATE_OR_UPDATE  = $0;
  73.   {$EXTERNALSYM WBEM_FLAG_CREATE_OR_UPDATE}
  74.   WBEM_FLAG_UPDATE_ONLY       = $1;
  75.   {$EXTERNALSYM WBEM_FLAG_UPDATE_ONLY}
  76.   WBEM_FLAG_CREATE_ONLY       = $2;
  77.   {$EXTERNALSYM WBEM_FLAG_CREATE_ONLY}
  78.   WBEM_FLAG_UPDATE_COMPATIBLE = $0;
  79.   {$EXTERNALSYM WBEM_FLAG_UPDATE_COMPATIBLE}
  80.   WBEM_FLAG_UPDATE_SAFE_MODE  = $20;
  81.   {$EXTERNALSYM WBEM_FLAG_UPDATE_SAFE_MODE}
  82.   WBEM_FLAG_UPDATE_FORCE_MODE = $40;
  83.   {$EXTERNALSYM WBEM_FLAG_UPDATE_FORCE_MODE}
  84.   WBEM_MASK_UPDATE_MODE       = $60;
  85.   {$EXTERNALSYM WBEM_MASK_UPDATE_MODE}
  86.   WBEM_FLAG_ADVISORY          = $10000;
  87.   {$EXTERNALSYM WBEM_FLAG_ADVISORY}
  88. type
  89.   tag_WBEM_GENERIC_FLAG_TYPE = DWORD;
  90.   {$EXTERNALSYM tag_WBEM_GENERIC_FLAG_TYPE}
  91.   WBEM_GENERIC_FLAG_TYPE = tag_WBEM_GENERIC_FLAG_TYPE;
  92.   {$EXTERNALSYM WBEM_GENERIC_FLAG_TYPE}
  93.   TWbemGenericFlagType = WBEM_GENERIC_FLAG_TYPE;
  94.   {$EXTERNALSYM TWbemGenericFlagType}
  95. const
  96.   WBEM_FLAG_RETURN_IMMEDIATELY     = $10;
  97.   {$EXTERNALSYM WBEM_FLAG_RETURN_IMMEDIATELY}
  98.   WBEM_FLAG_RETURN_WBEM_COMPLETE   = $0;
  99.   {$EXTERNALSYM WBEM_FLAG_RETURN_WBEM_COMPLETE}
  100.   WBEM_FLAG_BIDIRECTIONAL          = $0;
  101.   {$EXTERNALSYM WBEM_FLAG_BIDIRECTIONAL}
  102.   WBEM_FLAG_FORWARD_ONLY           = $20;
  103.   {$EXTERNALSYM WBEM_FLAG_FORWARD_ONLY}
  104.   WBEM_FLAG_NO_ERROR_OBJECT        = $40;
  105.   {$EXTERNALSYM WBEM_FLAG_NO_ERROR_OBJECT}
  106.   WBEM_FLAG_RETURN_ERROR_OBJECT    = $0;
  107.   {$EXTERNALSYM WBEM_FLAG_RETURN_ERROR_OBJECT}
  108.   WBEM_FLAG_SEND_STATUS            = $80;
  109.   {$EXTERNALSYM WBEM_FLAG_SEND_STATUS}
  110.   WBEM_FLAG_DONT_SEND_STATUS       = $0;
  111.   {$EXTERNALSYM WBEM_FLAG_DONT_SEND_STATUS}
  112.   WBEM_FLAG_ENSURE_LOCATABLE       = $100;
  113.   {$EXTERNALSYM WBEM_FLAG_ENSURE_LOCATABLE}
  114.   WBEM_FLAG_DIRECT_READ            = $200;
  115.   {$EXTERNALSYM WBEM_FLAG_DIRECT_READ}
  116.   WBEM_FLAG_SEND_ONLY_SELECTED     = $0;
  117.   {$EXTERNALSYM WBEM_FLAG_SEND_ONLY_SELECTED}
  118.   WBEM_RETURN_WHEN_COMPLETE        = $0;
  119.   {$EXTERNALSYM WBEM_RETURN_WHEN_COMPLETE}
  120.   WBEM_RETURN_IMMEDIATELY          = $10;
  121.   {$EXTERNALSYM WBEM_RETURN_IMMEDIATELY}
  122.   WBEM_MASK_RESERVED_FLAGS         = $1f000;
  123.   {$EXTERNALSYM WBEM_MASK_RESERVED_FLAGS}
  124.   WBEM_FLAG_USE_AMENDED_QUALIFIERS = $20000;
  125.   {$EXTERNALSYM WBEM_FLAG_USE_AMENDED_QUALIFIERS}
  126.   WBEM_FLAG_STRONG_VALIDATION      = $100000;
  127.   {$EXTERNALSYM WBEM_FLAG_STRONG_VALIDATION}
  128. type
  129.   tag_WBEM_STATUS_TYPE = DWORD;
  130.   {$EXTERNALSYM tag_WBEM_STATUS_TYPE}
  131.   WBEM_STATUS_TYPE = tag_WBEM_STATUS_TYPE;
  132.   {$EXTERNALSYM WBEM_STATUS_TYPE}
  133.   TWbemStatusType = WBEM_STATUS_TYPE;
  134.   {$EXTERNALSYM TWbemStatusType}
  135. const
  136.   WBEM_STATUS_COMPLETE     = 0;
  137.   {$EXTERNALSYM WBEM_STATUS_COMPLETE}
  138.   WBEM_STATUS_REQUIREMENTS = 1;
  139.   {$EXTERNALSYM WBEM_STATUS_REQUIREMENTS}
  140.   WBEM_STATUS_PROGRESS     = 2;
  141.   {$EXTERNALSYM WBEM_STATUS_PROGRESS}
  142. type
  143.   tag_WBEM_TIMEOUT_TYPE = DWORD;
  144.   {$EXTERNALSYM tag_WBEM_TIMEOUT_TYPE}
  145.   WBEM_TIMEOUT_TYPE = tag_WBEM_TIMEOUT_TYPE;
  146.   {$EXTERNALSYM WBEM_TIMEOUT_TYPE}
  147.   TWbemTimeoutType = WBEM_TIMEOUT_TYPE;
  148.   {$EXTERNALSYM TWbemTimeoutType}
  149. const
  150.   WBEM_NO_WAIT  = 0;
  151.   {$EXTERNALSYM WBEM_NO_WAIT}
  152.   WBEM_INFINITE = DWORD($ffffffff);
  153.   {$EXTERNALSYM WBEM_INFINITE}
  154. type
  155.   tag_WBEM_CONDITION_FLAG_TYPE = DWORD;
  156.   {$EXTERNALSYM tag_WBEM_CONDITION_FLAG_TYPE}
  157.   WBEM_CONDITION_FLAG_TYPE = tag_WBEM_CONDITION_FLAG_TYPE;
  158.   {$EXTERNALSYM WBEM_CONDITION_FLAG_TYPE}
  159.   TWbemConditionFlagType = WBEM_CONDITION_FLAG_TYPE;
  160.   {$EXTERNALSYM TWbemConditionFlagType}
  161. const
  162.   WBEM_FLAG_ALWAYS                    = $0;
  163.   {$EXTERNALSYM WBEM_FLAG_ALWAYS}
  164.   WBEM_FLAG_ONLY_IF_TRUE              = $1;
  165.   {$EXTERNALSYM WBEM_FLAG_ONLY_IF_TRUE}
  166.   WBEM_FLAG_ONLY_IF_FALSE             = $2;
  167.   {$EXTERNALSYM WBEM_FLAG_ONLY_IF_FALSE}
  168.   WBEM_FLAG_ONLY_IF_IDENTICAL         = $3;
  169.   {$EXTERNALSYM WBEM_FLAG_ONLY_IF_IDENTICAL}
  170.   WBEM_MASK_PRIMARY_CONDITION         = $3;
  171.   {$EXTERNALSYM WBEM_MASK_PRIMARY_CONDITION}
  172.   WBEM_FLAG_KEYS_ONLY                 = $4;
  173.   {$EXTERNALSYM WBEM_FLAG_KEYS_ONLY}
  174.   WBEM_FLAG_REFS_ONLY                 = $8;
  175.   {$EXTERNALSYM WBEM_FLAG_REFS_ONLY}
  176.   WBEM_FLAG_LOCAL_ONLY                = $10;
  177.   {$EXTERNALSYM WBEM_FLAG_LOCAL_ONLY}
  178.   WBEM_FLAG_PROPAGATED_ONLY           = $20;
  179.   {$EXTERNALSYM WBEM_FLAG_PROPAGATED_ONLY}
  180.   WBEM_FLAG_SYSTEM_ONLY               = $30;
  181.   {$EXTERNALSYM WBEM_FLAG_SYSTEM_ONLY}
  182.   WBEM_FLAG_NONSYSTEM_ONLY            = $40;
  183.   {$EXTERNALSYM WBEM_FLAG_NONSYSTEM_ONLY}
  184.   WBEM_MASK_CONDITION_ORIGIN          = $70;
  185.   {$EXTERNALSYM WBEM_MASK_CONDITION_ORIGIN}
  186.   WBEM_FLAG_CLASS_OVERRIDES_ONLY      = $100;
  187.   {$EXTERNALSYM WBEM_FLAG_CLASS_OVERRIDES_ONLY}
  188.   WBEM_FLAG_CLASS_LOCAL_AND_OVERRIDES = $200;
  189.   {$EXTERNALSYM WBEM_FLAG_CLASS_LOCAL_AND_OVERRIDES}
  190.   WBEM_MASK_CLASS_CONDITION           = $300;
  191.   {$EXTERNALSYM WBEM_MASK_CLASS_CONDITION}
  192. type
  193.   tag_WBEM_FLAVOR_TYPE = DWORD;
  194.   {$EXTERNALSYM tag_WBEM_FLAVOR_TYPE}
  195.   WBEM_FLAVOR_TYPE = tag_WBEM_FLAVOR_TYPE;
  196.   {$EXTERNALSYM WBEM_FLAVOR_TYPE}
  197.   TWbemFlavorType = WBEM_FLAVOR_TYPE;
  198.   {$EXTERNALSYM TWbemFlavorType}
  199. const
  200.   WBEM_FLAVOR_DONT_PROPAGATE    = $0;
  201.   {$EXTERNALSYM WBEM_FLAVOR_DONT_PROPAGATE}
  202.   WBEM_FLAVOR_FLAG_PROPAGATE_TO_INSTANCE      = $1;
  203.   {$EXTERNALSYM WBEM_FLAVOR_FLAG_PROPAGATE_TO_INSTANCE}
  204.   WBEM_FLAVOR_FLAG_PROPAGATE_TO_DERIVED_CLASS = $2;
  205.   {$EXTERNALSYM WBEM_FLAVOR_FLAG_PROPAGATE_TO_DERIVED_CLASS}
  206.   WBEM_FLAVOR_MASK_PROPAGATION  = $f;
  207.   {$EXTERNALSYM WBEM_FLAVOR_MASK_PROPAGATION}
  208.   WBEM_FLAVOR_OVERRIDABLE       = $0;
  209.   {$EXTERNALSYM WBEM_FLAVOR_OVERRIDABLE}
  210.   WBEM_FLAVOR_NOT_OVERRIDABLE   = $10;
  211.   {$EXTERNALSYM WBEM_FLAVOR_NOT_OVERRIDABLE}
  212.   WBEM_FLAVOR_MASK_PERMISSIONS  = $10;
  213.   {$EXTERNALSYM WBEM_FLAVOR_MASK_PERMISSIONS}
  214.   WBEM_FLAVOR_ORIGIN_LOCAL      = $0;
  215.   {$EXTERNALSYM WBEM_FLAVOR_ORIGIN_LOCAL}
  216.   WBEM_FLAVOR_ORIGIN_PROPAGATED = $20;
  217.   {$EXTERNALSYM WBEM_FLAVOR_ORIGIN_PROPAGATED}
  218.   WBEM_FLAVOR_ORIGIN_SYSTEM     = $40;
  219.   {$EXTERNALSYM WBEM_FLAVOR_ORIGIN_SYSTEM}
  220.   WBEM_FLAVOR_MASK_ORIGIN       = $60;
  221.   {$EXTERNALSYM WBEM_FLAVOR_MASK_ORIGIN}
  222.   WBEM_FLAVOR_NOT_AMENDED       = $0;
  223.   {$EXTERNALSYM WBEM_FLAVOR_NOT_AMENDED}
  224.   WBEM_FLAVOR_AMENDED           = $80;
  225.   {$EXTERNALSYM WBEM_FLAVOR_AMENDED}
  226.   WBEM_FLAVOR_MASK_AMENDED      = $80;
  227.   {$EXTERNALSYM WBEM_FLAVOR_MASK_AMENDED}
  228. type
  229.   tag_WBEM_QUERY_FLAG_TYPE = DWORD;
  230.   {$EXTERNALSYM tag_WBEM_QUERY_FLAG_TYPE}
  231.   WBEM_QUERY_FLAG_TYPE = tag_WBEM_QUERY_FLAG_TYPE;
  232.   {$EXTERNALSYM WBEM_QUERY_FLAG_TYPE}
  233.   TWbemQueryFlagType = WBEM_QUERY_FLAG_TYPE;
  234.   {$EXTERNALSYM TWbemQueryFlagType}
  235. const
  236.   WBEM_FLAG_DEEP      = 0;
  237.   {$EXTERNALSYM WBEM_FLAG_DEEP}
  238.   WBEM_FLAG_SHALLOW   = 1;
  239.   {$EXTERNALSYM WBEM_FLAG_SHALLOW}
  240.   WBEM_FLAG_PROTOTYPE = 2;
  241.   {$EXTERNALSYM WBEM_FLAG_PROTOTYPE}
  242. type
  243.   tag_WBEM_SECURITY_FLAGS = DWORD;
  244.   {$EXTERNALSYM tag_WBEM_SECURITY_FLAGS}
  245.   WBEM_SECURITY_FLAGS = tag_WBEM_SECURITY_FLAGS;
  246.   {$EXTERNALSYM WBEM_SECURITY_FLAGS}
  247.   TWbemSecurityFlags = WBEM_SECURITY_FLAGS;
  248.   {$EXTERNALSYM TWbemSecurityFlags}
  249. const
  250.   WBEM_ENABLE            = $1;
  251.   {$EXTERNALSYM WBEM_ENABLE}
  252.   WBEM_METHOD_EXECUTE    = $2;
  253.   {$EXTERNALSYM WBEM_METHOD_EXECUTE}
  254.   WBEM_FULL_WRITE_REP    = $4;
  255.   {$EXTERNALSYM WBEM_FULL_WRITE_REP}
  256.   WBEM_PARTIAL_WRITE_REP = $8;
  257.   {$EXTERNALSYM WBEM_PARTIAL_WRITE_REP}
  258.   WBEM_WRITE_PROVIDER    = $10;
  259.   {$EXTERNALSYM WBEM_WRITE_PROVIDER}
  260.   WBEM_REMOTE_ACCESS     = $20;
  261.   {$EXTERNALSYM WBEM_REMOTE_ACCESS}
  262.   WBEM_RIGHT_SUBSCRIBE   = $40;
  263.   {$EXTERNALSYM WBEM_RIGHT_SUBSCRIBE}
  264.   WBEM_RIGHT_PUBLISH     = $80;
  265.   {$EXTERNALSYM WBEM_RIGHT_PUBLISH}
  266. type
  267.   tag_WBEM_LIMITATION_FLAG_TYPE = DWORD;
  268.   {$EXTERNALSYM tag_WBEM_LIMITATION_FLAG_TYPE}
  269.   WBEM_LIMITATION_FLAG_TYPE = tag_WBEM_LIMITATION_FLAG_TYPE;
  270.   {$EXTERNALSYM WBEM_LIMITATION_FLAG_TYPE}
  271.   TWbemLimitationFlagType = WBEM_LIMITATION_FLAG_TYPE;
  272.   {$EXTERNALSYM TWbemLimitationFlagType}
  273. const
  274.   WBEM_FLAG_EXCLUDE_OBJECT_QUALIFIERS   = $10;
  275.   {$EXTERNALSYM WBEM_FLAG_EXCLUDE_OBJECT_QUALIFIERS}
  276.   WBEM_FLAG_EXCLUDE_PROPERTY_QUALIFIERS = $20;
  277.   {$EXTERNALSYM WBEM_FLAG_EXCLUDE_PROPERTY_QUALIFIERS}
  278. type
  279.   tag_WBEM_TEXT_FLAG_TYPE = DWORD;
  280.   {$EXTERNALSYM tag_WBEM_TEXT_FLAG_TYPE}
  281.   WBEM_TEXT_FLAG_TYPE = tag_WBEM_TEXT_FLAG_TYPE;
  282.   {$EXTERNALSYM WBEM_TEXT_FLAG_TYPE}
  283.   TWbemTextFlagType = WBEM_TEXT_FLAG_TYPE;
  284.   {$EXTERNALSYM TWbemTextFlagType}
  285. const
  286.   WBEM_FLAG_NO_FLAVORS = $1;
  287.   {$EXTERNALSYM WBEM_FLAG_NO_FLAVORS}
  288. type
  289.   tag_WBEM_COMPARISON_FLAG = DWORD;
  290.   {$EXTERNALSYM tag_WBEM_COMPARISON_FLAG}
  291.   WBEM_COMPARISON_FLAG = tag_WBEM_COMPARISON_FLAG;
  292.   {$EXTERNALSYM WBEM_COMPARISON_FLAG}
  293.   TWbemComparisonFlag = WBEM_COMPARISON_FLAG;
  294.   {$EXTERNALSYM TWbemComparisonFlag}
  295. const
  296.   WBEM_COMPARISON_INCLUDE_ALL     = $0;
  297.   {$EXTERNALSYM WBEM_COMPARISON_INCLUDE_ALL}
  298.   WBEM_FLAG_IGNORE_QUALIFIERS     = $1;
  299.   {$EXTERNALSYM WBEM_FLAG_IGNORE_QUALIFIERS}
  300.   WBEM_FLAG_IGNORE_OBJECT_SOURCE  = $2;
  301.   {$EXTERNALSYM WBEM_FLAG_IGNORE_OBJECT_SOURCE}
  302.   WBEM_FLAG_IGNORE_DEFAULT_VALUES = $4;
  303.   {$EXTERNALSYM WBEM_FLAG_IGNORE_DEFAULT_VALUES}
  304.   WBEM_FLAG_IGNORE_CLASS          = $8;
  305.   {$EXTERNALSYM WBEM_FLAG_IGNORE_CLASS}
  306.   WBEM_FLAG_IGNORE_CASE           = $10;
  307.   {$EXTERNALSYM WBEM_FLAG_IGNORE_CASE}
  308.   WBEM_FLAG_IGNORE_FLAVOR         = $20;
  309.   {$EXTERNALSYM WBEM_FLAG_IGNORE_FLAVOR}
  310. type
  311.   tag_WBEM_LOCKING = DWORD;
  312.   {$EXTERNALSYM tag_WBEM_LOCKING}
  313.   WBEM_LOCKING_FLAG_TYPE = tag_WBEM_LOCKING;
  314.   {$EXTERNALSYM WBEM_LOCKING_FLAG_TYPE}
  315.   TWbemLockingFlagType = WBEM_LOCKING_FLAG_TYPE;
  316.   {$EXTERNALSYM TWbemLockingFlagType}
  317. const
  318.   WBEM_FLAG_ALLOW_READ = $1;
  319.   {$EXTERNALSYM WBEM_FLAG_ALLOW_READ}
  320. type
  321.   tag_CIMTYPE_ENUMERATION = DWORD;
  322.   {$EXTERNALSYM tag_CIMTYPE_ENUMERATION}
  323.   CIMTYPE_ENUMERATION = tag_CIMTYPE_ENUMERATION;
  324.   {$EXTERNALSYM CIMTYPE_ENUMERATION}
  325.   TCimTypeEnumeration = CIMTYPE_ENUMERATION;
  326.   {$EXTERNALSYM TCimTypeEnumeration}
  327. const
  328.   CIM_ILLEGAL    = $fff;
  329.   {$EXTERNALSYM CIM_ILLEGAL}
  330.   CIM_EMPTY      = 0;
  331.   {$EXTERNALSYM CIM_EMPTY}
  332.   CIM_SINT8      = 16;
  333.   {$EXTERNALSYM CIM_SINT8}
  334.   CIM_UINT8      = 17;
  335.   {$EXTERNALSYM CIM_UINT8}
  336.   CIM_SINT16     = 2;
  337.   {$EXTERNALSYM CIM_SINT16}
  338.   CIM_UINT16     = 18;
  339.   {$EXTERNALSYM CIM_UINT16}
  340.   CIM_SINT32     = 3;
  341.   {$EXTERNALSYM CIM_SINT32}
  342.   CIM_UINT32     = 19;
  343.   {$EXTERNALSYM CIM_UINT32}
  344.   CIM_SINT64     = 20;
  345.   {$EXTERNALSYM CIM_SINT64}
  346.   CIM_UINT64     = 21;
  347.   {$EXTERNALSYM CIM_UINT64}
  348.   CIM_REAL32     = 4;
  349.   {$EXTERNALSYM CIM_REAL32}
  350.   CIM_REAL64     = 5;
  351.   {$EXTERNALSYM CIM_REAL64}
  352.   CIM_BOOLEAN    = 11;
  353.   {$EXTERNALSYM CIM_BOOLEAN}
  354.   CIM_STRING     = 8;
  355.   {$EXTERNALSYM CIM_STRING}
  356.   CIM_DATETIME   = 101;
  357.   {$EXTERNALSYM CIM_DATETIME}
  358.   CIM_REFERENCE  = 102;
  359.   {$EXTERNALSYM CIM_REFERENCE}
  360.   CIM_CHAR16     = 103;
  361.   {$EXTERNALSYM CIM_CHAR16}
  362.   CIM_OBJECT     = 13;
  363.   {$EXTERNALSYM CIM_OBJECT}
  364.   CIM_FLAG_ARRAY = $2000;
  365.   {$EXTERNALSYM CIM_FLAG_ARRAY}
  366. type
  367.   tag_WBEM_BACKUP_RESTORE_FLAGS = DWORD;
  368.   {$EXTERNALSYM tag_WBEM_BACKUP_RESTORE_FLAGS}
  369.   WBEM_BACKUP_RESTORE_FLAGS = tag_WBEM_BACKUP_RESTORE_FLAGS;
  370.   {$EXTERNALSYM WBEM_BACKUP_RESTORE_FLAGS}
  371.   TWbemBackupRestoreFlags = WBEM_BACKUP_RESTORE_FLAGS;
  372.   {$EXTERNALSYM TWbemBackupRestoreFlags}
  373. const
  374.   WBEM_FLAG_BACKUP_RESTORE_DEFAULT        = 0;
  375.   {$EXTERNALSYM WBEM_FLAG_BACKUP_RESTORE_DEFAULT}
  376.   WBEM_FLAG_BACKUP_RESTORE_FORCE_SHUTDOWN = 1;
  377.   {$EXTERNALSYM WBEM_FLAG_BACKUP_RESTORE_FORCE_SHUTDOWN}
  378. type
  379.   tag_WBEM_REFRESHER_FLAGS = DWORD;
  380.   {$EXTERNALSYM tag_WBEM_REFRESHER_FLAGS}
  381.   WBEM_REFRESHER_FLAGS = tag_WBEM_REFRESHER_FLAGS;
  382.   {$EXTERNALSYM WBEM_REFRESHER_FLAGS}
  383.   TWbemRefresherFlags = WBEM_REFRESHER_FLAGS;
  384.   {$EXTERNALSYM TWbemRefresherFlags}
  385. const
  386.   WBEM_FLAG_REFRESH_AUTO_RECONNECT    = 0;
  387.   {$EXTERNALSYM WBEM_FLAG_REFRESH_AUTO_RECONNECT}
  388.   WBEM_FLAG_REFRESH_NO_AUTO_RECONNECT = 1;
  389.   {$EXTERNALSYM WBEM_FLAG_REFRESH_NO_AUTO_RECONNECT}
  390. type
  391.   tag_WBEM_SHUTDOWN_FLAGS = DWORD;
  392.   {$EXTERNALSYM tag_WBEM_SHUTDOWN_FLAGS}
  393.   WBEM_SHUTDOWN_FLAGS = tag_WBEM_SHUTDOWN_FLAGS;
  394.   {$EXTERNALSYM WBEM_SHUTDOWN_FLAGS}
  395.   TWbemShutdownFlags = WBEM_SHUTDOWN_FLAGS;
  396.   {$EXTERNALSYM TWbemShutdownFlags}
  397. const
  398.   WBEM_SHUTDOWN_UNLOAD_COMPONENT = 1;
  399.   {$EXTERNALSYM WBEM_SHUTDOWN_UNLOAD_COMPONENT}
  400.   WBEM_SHUTDOWN_WMI              = 2;
  401.   {$EXTERNALSYM WBEM_SHUTDOWN_WMI}
  402.   WBEM_SHUTDOWN_OS               = 3;
  403.   {$EXTERNALSYM WBEM_SHUTDOWN_OS}
  404. type
  405.   CIMTYPE = LONG;
  406.   {$EXTERNALSYM CIMTYPE}
  407. type
  408.   tag_WBEMSTATUS_FORMAT = DWORD;
  409.   {$EXTERNALSYM tag_WBEMSTATUS_FORMAT}
  410.   WBEMSTATUS_FORMAT = tag_WBEMSTATUS_FORMAT;
  411.   {$EXTERNALSYM WBEMSTATUS_FORMAT}
  412.   TWbemStatusFormat = WBEMSTATUS_FORMAT;
  413.   {$EXTERNALSYM TWbemStatusFormat}
  414. const
  415.   WBEMSTATUS_FORMAT_NEWLINE    = 0;
  416.   {$EXTERNALSYM WBEMSTATUS_FORMAT_NEWLINE}
  417.   WBEMSTATUS_FORMAT_NO_NEWLINE = 1;
  418.   {$EXTERNALSYM WBEMSTATUS_FORMAT_NO_NEWLINE}
  419. type
  420.   tag_WBEM_LIMITS = DWORD;
  421.   {$EXTERNALSYM tag_WBEM_LIMITS}
  422.   WBEM_LIMITS = tag_WBEM_LIMITS;
  423.   {$EXTERNALSYM WBEM_LIMITS}
  424.   TWbemLimits = WBEM_LIMITS;
  425. const
  426.   WBEM_MAX_IDENTIFIER      = $1000;
  427.   {$EXTERNALSYM WBEM_MAX_IDENTIFIER}
  428.   WBEM_MAX_QUERY           = $4000;
  429.   {$EXTERNALSYM WBEM_MAX_QUERY}
  430.   WBEM_MAX_PATH            = $2000;
  431.   {$EXTERNALSYM WBEM_MAX_PATH}
  432.   WBEM_MAX_OBJECT_NESTING  = 64;
  433.   {$EXTERNALSYM WBEM_MAX_OBJECT_NESTING}
  434.   WBEM_MAX_USER_PROPERTIES = 1024;
  435.   {$EXTERNALSYM WBEM_MAX_USER_PROPERTIES}
  436. type
  437.   tag_WBEMSTATUS = DWORD;
  438.   {$EXTERNALSYM tag_WBEMSTATUS}
  439.   WBEMSTATUS = tag_WBEMSTATUS;
  440.   {$EXTERNALSYM WBEMSTATUS}
  441.   TWbemStatus = WBEMSTATUS;
  442.   {$EXTERNALSYM TWbemStatus}
  443. const
  444.   WBEM_NO_ERROR = 0;
  445.   {$EXTERNALSYM WBEM_NO_ERROR}
  446.   WBEM_S_NO_ERROR = 0;
  447.   {$EXTERNALSYM WBEM_S_NO_ERROR}
  448.   WBEM_S_SAME = 0;
  449.   {$EXTERNALSYM WBEM_S_SAME}
  450.   WBEM_S_FALSE = 1;
  451.   {$EXTERNALSYM WBEM_S_FALSE}
  452.   WBEM_S_ALREADY_EXISTS = DWORD($40001);
  453.   {$EXTERNALSYM WBEM_S_ALREADY_EXISTS}
  454.   WBEM_S_RESET_TO_DEFAULT = DWORD($40002);
  455.   {$EXTERNALSYM WBEM_S_RESET_TO_DEFAULT}
  456.   WBEM_S_DIFFERENT = DWORD($40003);
  457.   {$EXTERNALSYM WBEM_S_DIFFERENT}
  458.   WBEM_S_TIMEDOUT = DWORD($40004);
  459.   {$EXTERNALSYM WBEM_S_TIMEDOUT}
  460.   WBEM_S_NO_MORE_DATA = DWORD($40005);
  461.   {$EXTERNALSYM WBEM_S_NO_MORE_DATA}
  462.   WBEM_S_OPERATION_CANCELLED = DWORD($40006);
  463.   {$EXTERNALSYM WBEM_S_OPERATION_CANCELLED}
  464.   WBEM_S_PENDING = DWORD($40007);
  465.   {$EXTERNALSYM WBEM_S_PENDING}
  466.   WBEM_S_DUPLICATE_OBJECTS = DWORD($40008);
  467.   {$EXTERNALSYM WBEM_S_DUPLICATE_OBJECTS}
  468.   WBEM_S_ACCESS_DENIED = DWORD($40009);
  469.   {$EXTERNALSYM WBEM_S_ACCESS_DENIED}
  470.   WBEM_S_PARTIAL_RESULTS = DWORD($40010);
  471.   {$EXTERNALSYM WBEM_S_PARTIAL_RESULTS}
  472.   WBEM_S_SOURCE_NOT_AVAILABLE = DWORD($40017);
  473.   {$EXTERNALSYM WBEM_S_SOURCE_NOT_AVAILABLE}
  474.   WBEM_E_FAILED = DWORD($80041001);
  475.   {$EXTERNALSYM WBEM_E_FAILED}
  476.   WBEM_E_NOT_FOUND = DWORD($80041002);
  477.   {$EXTERNALSYM WBEM_E_NOT_FOUND}
  478.   WBEM_E_ACCESS_DENIED = DWORD($80041003);
  479.   {$EXTERNALSYM WBEM_E_ACCESS_DENIED}
  480.   WBEM_E_PROVIDER_FAILURE = DWORD($80041004);
  481.   {$EXTERNALSYM WBEM_E_PROVIDER_FAILURE}
  482.   WBEM_E_TYPE_MISMATCH = DWORD($80041005);
  483.   {$EXTERNALSYM WBEM_E_TYPE_MISMATCH}
  484.   WBEM_E_OUT_OF_MEMORY = DWORD($80041006);
  485.   {$EXTERNALSYM WBEM_E_OUT_OF_MEMORY}
  486.   WBEM_E_INVALID_CONTEXT = DWORD($80041007);
  487.   {$EXTERNALSYM WBEM_E_INVALID_CONTEXT}
  488.   WBEM_E_INVALID_PARAMETER = DWORD($80041008);
  489.   {$EXTERNALSYM WBEM_E_INVALID_PARAMETER}
  490.   WBEM_E_NOT_AVAILABLE = DWORD($80041009);
  491.   {$EXTERNALSYM WBEM_E_NOT_AVAILABLE}
  492.   WBEM_E_CRITICAL_ERROR = DWORD($8004100a);
  493.   {$EXTERNALSYM WBEM_E_CRITICAL_ERROR}
  494.   WBEM_E_INVALID_STREAM = DWORD($8004100b);
  495.   {$EXTERNALSYM WBEM_E_INVALID_STREAM}
  496.   WBEM_E_NOT_SUPPORTED = DWORD($8004100c);
  497.   {$EXTERNALSYM WBEM_E_NOT_SUPPORTED}
  498.   WBEM_E_INVALID_SUPERCLASS = DWORD($8004100d);
  499.   {$EXTERNALSYM WBEM_E_INVALID_SUPERCLASS}
  500.   WBEM_E_INVALID_NAMESPACE = DWORD($8004100e);
  501.   {$EXTERNALSYM WBEM_E_INVALID_NAMESPACE}
  502.   WBEM_E_INVALID_OBJECT = DWORD($8004100f);
  503.   {$EXTERNALSYM WBEM_E_INVALID_OBJECT}
  504.   WBEM_E_INVALID_CLASS = DWORD($80041010);
  505.   {$EXTERNALSYM WBEM_E_INVALID_CLASS}
  506.   WBEM_E_PROVIDER_NOT_FOUND = DWORD($80041011);
  507.   {$EXTERNALSYM WBEM_E_PROVIDER_NOT_FOUND}
  508.   WBEM_E_INVALID_PROVIDER_REGISTRATION = DWORD($80041012);
  509.   {$EXTERNALSYM WBEM_E_INVALID_PROVIDER_REGISTRATION}
  510.   WBEM_E_PROVIDER_LOAD_FAILURE = DWORD($80041013);
  511.   {$EXTERNALSYM WBEM_E_PROVIDER_LOAD_FAILURE}
  512.   WBEM_E_INITIALIZATION_FAILURE = DWORD($80041014);
  513.   {$EXTERNALSYM WBEM_E_INITIALIZATION_FAILURE}
  514.   WBEM_E_TRANSPORT_FAILURE = DWORD($80041015);
  515.   {$EXTERNALSYM WBEM_E_TRANSPORT_FAILURE}
  516.   WBEM_E_INVALID_OPERATION = DWORD($80041016);
  517.   {$EXTERNALSYM WBEM_E_INVALID_OPERATION}
  518.   WBEM_E_INVALID_QUERY = DWORD($80041017);
  519.   {$EXTERNALSYM WBEM_E_INVALID_QUERY}
  520.   WBEM_E_INVALID_QUERY_TYPE = DWORD($80041018);
  521.   {$EXTERNALSYM WBEM_E_INVALID_QUERY_TYPE}
  522.   WBEM_E_ALREADY_EXISTS = DWORD($80041019);
  523.   {$EXTERNALSYM WBEM_E_ALREADY_EXISTS}
  524.   WBEM_E_OVERRIDE_NOT_ALLOWED = DWORD($8004101a);
  525.   {$EXTERNALSYM WBEM_E_OVERRIDE_NOT_ALLOWED}
  526.   WBEM_E_PROPAGATED_QUALIFIER = DWORD($8004101b);
  527.   {$EXTERNALSYM WBEM_E_PROPAGATED_QUALIFIER}
  528.   WBEM_E_PROPAGATED_PROPERTY = DWORD($8004101c);
  529.   {$EXTERNALSYM WBEM_E_PROPAGATED_PROPERTY}
  530.   WBEM_E_UNEXPECTED = DWORD($8004101d);
  531.   {$EXTERNALSYM WBEM_E_UNEXPECTED}
  532.   WBEM_E_ILLEGAL_OPERATION = DWORD($8004101e);
  533.   {$EXTERNALSYM WBEM_E_ILLEGAL_OPERATION}
  534.   WBEM_E_CANNOT_BE_KEY = DWORD($8004101f);
  535.   {$EXTERNALSYM WBEM_E_CANNOT_BE_KEY}
  536.   WBEM_E_INCOMPLETE_CLASS = DWORD($80041020);
  537.   {$EXTERNALSYM WBEM_E_INCOMPLETE_CLASS}
  538.   WBEM_E_INVALID_SYNTAX = DWORD($80041021);
  539.   {$EXTERNALSYM WBEM_E_INVALID_SYNTAX}
  540.   WBEM_E_NONDECORATED_OBJECT = DWORD($80041022);
  541.   {$EXTERNALSYM WBEM_E_NONDECORATED_OBJECT}
  542.   WBEM_E_READ_ONLY = DWORD($80041023);
  543.   {$EXTERNALSYM WBEM_E_READ_ONLY}
  544.   WBEM_E_PROVIDER_NOT_CAPABLE = DWORD($80041024);
  545.   {$EXTERNALSYM WBEM_E_PROVIDER_NOT_CAPABLE}
  546.   WBEM_E_CLASS_HAS_CHILDREN = DWORD($80041025);
  547.   {$EXTERNALSYM WBEM_E_CLASS_HAS_CHILDREN}
  548.   WBEM_E_CLASS_HAS_INSTANCES = DWORD($80041026);
  549.   {$EXTERNALSYM WBEM_E_CLASS_HAS_INSTANCES}
  550.   WBEM_E_QUERY_NOT_IMPLEMENTED = DWORD($80041027);
  551.   {$EXTERNALSYM WBEM_E_QUERY_NOT_IMPLEMENTED}
  552.   WBEM_E_ILLEGAL_NULL = DWORD($80041028);
  553.   {$EXTERNALSYM WBEM_E_ILLEGAL_NULL}
  554.   WBEM_E_INVALID_QUALIFIER_TYPE = DWORD($80041029);
  555.   {$EXTERNALSYM WBEM_E_INVALID_QUALIFIER_TYPE}
  556.   WBEM_E_INVALID_PROPERTY_TYPE = DWORD($8004102a);
  557.   {$EXTERNALSYM WBEM_E_INVALID_PROPERTY_TYPE}
  558.   WBEM_E_VALUE_OUT_OF_RANGE = DWORD($8004102b);
  559.   {$EXTERNALSYM WBEM_E_VALUE_OUT_OF_RANGE}
  560.   WBEM_E_CANNOT_BE_SINGLETON = DWORD($8004102c);
  561.   {$EXTERNALSYM WBEM_E_CANNOT_BE_SINGLETON}
  562.   WBEM_E_INVALID_CIM_TYPE = DWORD($8004102d);
  563.   {$EXTERNALSYM WBEM_E_INVALID_CIM_TYPE}
  564.   WBEM_E_INVALID_METHOD = DWORD($8004102e);
  565.   {$EXTERNALSYM WBEM_E_INVALID_METHOD}
  566.   WBEM_E_INVALID_METHOD_PARAMETERS = DWORD($8004102f);
  567.   {$EXTERNALSYM WBEM_E_INVALID_METHOD_PARAMETERS}
  568.   WBEM_E_SYSTEM_PROPERTY = DWORD($80041030);
  569.   {$EXTERNALSYM WBEM_E_SYSTEM_PROPERTY}
  570.   WBEM_E_INVALID_PROPERTY = DWORD($80041031);
  571.   {$EXTERNALSYM WBEM_E_INVALID_PROPERTY}
  572.   WBEM_E_CALL_CANCELLED = DWORD($80041032);
  573.   {$EXTERNALSYM WBEM_E_CALL_CANCELLED}
  574.   WBEM_E_SHUTTING_DOWN = DWORD($80041033);
  575.   {$EXTERNALSYM WBEM_E_SHUTTING_DOWN}
  576.   WBEM_E_PROPAGATED_METHOD = DWORD($80041034);
  577.   {$EXTERNALSYM WBEM_E_PROPAGATED_METHOD}
  578.   WBEM_E_UNSUPPORTED_PARAMETER = DWORD($80041035);
  579.   {$EXTERNALSYM WBEM_E_UNSUPPORTED_PARAMETER}
  580.   WBEM_E_MISSING_PARAMETER_ID = DWORD($80041036);
  581.   {$EXTERNALSYM WBEM_E_MISSING_PARAMETER_ID}
  582.   WBEM_E_INVALID_PARAMETER_ID = DWORD($80041037);
  583.   {$EXTERNALSYM WBEM_E_INVALID_PARAMETER_ID}
  584.   WBEM_E_NONCONSECUTIVE_PARAMETER_IDS = DWORD($80041038);
  585.   {$EXTERNALSYM WBEM_E_NONCONSECUTIVE_PARAMETER_IDS}
  586.   WBEM_E_PARAMETER_ID_ON_RETVAL = DWORD($80041039);
  587.   {$EXTERNALSYM WBEM_E_PARAMETER_ID_ON_RETVAL}
  588.   WBEM_E_INVALID_OBJECT_PATH = DWORD($8004103a);
  589.   {$EXTERNALSYM WBEM_E_INVALID_OBJECT_PATH}
  590.   WBEM_E_OUT_OF_DISK_SPACE = DWORD($8004103b);
  591.   {$EXTERNALSYM WBEM_E_OUT_OF_DISK_SPACE}
  592.   WBEM_E_BUFFER_TOO_SMALL = DWORD($8004103c);
  593.   {$EXTERNALSYM WBEM_E_BUFFER_TOO_SMALL}
  594.   WBEM_E_UNSUPPORTED_PUT_EXTENSION = DWORD($8004103d);
  595.   {$EXTERNALSYM WBEM_E_UNSUPPORTED_PUT_EXTENSION}
  596.   WBEM_E_UNKNOWN_OBJECT_TYPE = DWORD($8004103e);
  597.   {$EXTERNALSYM WBEM_E_UNKNOWN_OBJECT_TYPE}
  598.   WBEM_E_UNKNOWN_PACKET_TYPE = DWORD($8004103f);
  599.   {$EXTERNALSYM WBEM_E_UNKNOWN_PACKET_TYPE}
  600.   WBEM_E_MARSHAL_VERSION_MISMATCH = DWORD($80041040);
  601.   {$EXTERNALSYM WBEM_E_MARSHAL_VERSION_MISMATCH}
  602.   WBEM_E_MARSHAL_INVALID_SIGNATURE = DWORD($80041041);
  603.   {$EXTERNALSYM WBEM_E_MARSHAL_INVALID_SIGNATURE}
  604.   WBEM_E_INVALID_QUALIFIER = DWORD($80041042);
  605.   {$EXTERNALSYM WBEM_E_INVALID_QUALIFIER}
  606.   WBEM_E_INVALID_DUPLICATE_PARAMETER = DWORD($80041043);
  607.   {$EXTERNALSYM WBEM_E_INVALID_DUPLICATE_PARAMETER}
  608.   WBEM_E_TOO_MUCH_DATA = DWORD($80041044);
  609.   {$EXTERNALSYM WBEM_E_TOO_MUCH_DATA}
  610.   WBEM_E_SERVER_TOO_BUSY = DWORD($80041045);
  611.   {$EXTERNALSYM WBEM_E_SERVER_TOO_BUSY}
  612.   WBEM_E_INVALID_FLAVOR = DWORD($80041046);
  613.   {$EXTERNALSYM WBEM_E_INVALID_FLAVOR}
  614.   WBEM_E_CIRCULAR_REFERENCE = DWORD($80041047);
  615.   {$EXTERNALSYM WBEM_E_CIRCULAR_REFERENCE}
  616.   WBEM_E_UNSUPPORTED_CLASS_UPDATE = DWORD($80041048);
  617.   {$EXTERNALSYM WBEM_E_UNSUPPORTED_CLASS_UPDATE}
  618.   WBEM_E_CANNOT_CHANGE_KEY_INHERITANCE = DWORD($80041049);
  619.   {$EXTERNALSYM WBEM_E_CANNOT_CHANGE_KEY_INHERITANCE}
  620.   WBEM_E_CANNOT_CHANGE_INDEX_INHERITANCE = DWORD($80041050);
  621.   {$EXTERNALSYM WBEM_E_CANNOT_CHANGE_INDEX_INHERITANCE}
  622.   WBEM_E_TOO_MANY_PROPERTIES = DWORD($80041051);
  623.   {$EXTERNALSYM WBEM_E_TOO_MANY_PROPERTIES}
  624.   WBEM_E_UPDATE_TYPE_MISMATCH = DWORD($80041052);
  625.   {$EXTERNALSYM WBEM_E_UPDATE_TYPE_MISMATCH}
  626.   WBEM_E_UPDATE_OVERRIDE_NOT_ALLOWED = DWORD($80041053);
  627.   {$EXTERNALSYM WBEM_E_UPDATE_OVERRIDE_NOT_ALLOWED}
  628.   WBEM_E_UPDATE_PROPAGATED_METHOD = DWORD($80041054);
  629.   {$EXTERNALSYM WBEM_E_UPDATE_PROPAGATED_METHOD}
  630.   WBEM_E_METHOD_NOT_IMPLEMENTED = DWORD($80041055);
  631.   {$EXTERNALSYM WBEM_E_METHOD_NOT_IMPLEMENTED}
  632.   WBEM_E_METHOD_DISABLED = DWORD($80041056);
  633.   {$EXTERNALSYM WBEM_E_METHOD_DISABLED}
  634.   WBEM_E_REFRESHER_BUSY = DWORD($80041057);
  635.   {$EXTERNALSYM WBEM_E_REFRESHER_BUSY}
  636.   WBEM_E_UNPARSABLE_QUERY = DWORD($80041058);
  637.   {$EXTERNALSYM WBEM_E_UNPARSABLE_QUERY}
  638.   WBEM_E_NOT_EVENT_CLASS = DWORD($80041059);
  639.   {$EXTERNALSYM WBEM_E_NOT_EVENT_CLASS}
  640.   WBEM_E_MISSING_GROUP_WITHIN = DWORD($8004105a);
  641.   {$EXTERNALSYM WBEM_E_MISSING_GROUP_WITHIN}
  642.   WBEM_E_MISSING_AGGREGATION_LIST = DWORD($8004105b);
  643.   {$EXTERNALSYM WBEM_E_MISSING_AGGREGATION_LIST}
  644.   WBEM_E_PROPERTY_NOT_AN_OBJECT = DWORD($8004105c);
  645.   {$EXTERNALSYM WBEM_E_PROPERTY_NOT_AN_OBJECT}
  646.   WBEM_E_AGGREGATING_BY_OBJECT = DWORD($8004105d);
  647.   {$EXTERNALSYM WBEM_E_AGGREGATING_BY_OBJECT}
  648.   WBEM_E_UNINTERPRETABLE_PROVIDER_QUERY = DWORD($8004105f);
  649.   {$EXTERNALSYM WBEM_E_UNINTERPRETABLE_PROVIDER_QUERY}
  650.   WBEM_E_BACKUP_RESTORE_WINMGMT_RUNNING = DWORD($80041060);
  651.   {$EXTERNALSYM WBEM_E_BACKUP_RESTORE_WINMGMT_RUNNING}
  652.   WBEM_E_QUEUE_OVERFLOW = DWORD($80041061);
  653.   {$EXTERNALSYM WBEM_E_QUEUE_OVERFLOW}
  654.   WBEM_E_PRIVILEGE_NOT_HELD = DWORD($80041062);
  655.   {$EXTERNALSYM WBEM_E_PRIVILEGE_NOT_HELD}
  656.   WBEM_E_INVALID_OPERATOR = DWORD($80041063);
  657.   {$EXTERNALSYM WBEM_E_INVALID_OPERATOR}
  658.   WBEM_E_LOCAL_CREDENTIALS = DWORD($80041064);
  659.   {$EXTERNALSYM WBEM_E_LOCAL_CREDENTIALS}
  660.   WBEM_E_CANNOT_BE_ABSTRACT = DWORD($80041065);
  661.   {$EXTERNALSYM WBEM_E_CANNOT_BE_ABSTRACT}
  662.   WBEM_E_AMENDED_OBJECT = DWORD($80041066);
  663.   {$EXTERNALSYM WBEM_E_AMENDED_OBJECT}
  664.   WBEM_E_CLIENT_TOO_SLOW = DWORD($80041067);
  665.   {$EXTERNALSYM WBEM_E_CLIENT_TOO_SLOW}
  666.   WBEM_E_NULL_SECURITY_DESCRIPTOR = DWORD($80041068);
  667.   {$EXTERNALSYM WBEM_E_NULL_SECURITY_DESCRIPTOR}
  668.   WBEM_E_TIMED_OUT = DWORD($80041069);
  669.   {$EXTERNALSYM WBEM_E_TIMED_OUT}
  670.   WBEM_E_INVALID_ASSOCIATION = DWORD($8004106a);
  671.   {$EXTERNALSYM WBEM_E_INVALID_ASSOCIATION}
  672.   WBEM_E_AMBIGUOUS_OPERATION = DWORD($8004106b);
  673.   {$EXTERNALSYM WBEM_E_AMBIGUOUS_OPERATION}
  674.   WBEM_E_QUOTA_VIOLATION = DWORD($8004106c);
  675.   {$EXTERNALSYM WBEM_E_QUOTA_VIOLATION}
  676.   WBEM_E_RESERVED_001 = DWORD($8004106d);
  677.   {$EXTERNALSYM WBEM_E_RESERVED_001}
  678.   WBEM_E_RESERVED_002 = DWORD($8004106e);
  679.   {$EXTERNALSYM WBEM_E_RESERVED_002}
  680.   WBEM_E_UNSUPPORTED_LOCALE = DWORD($8004106f);
  681.   {$EXTERNALSYM WBEM_E_UNSUPPORTED_LOCALE}
  682.   WBEM_E_HANDLE_OUT_OF_DATE = DWORD($80041070);
  683.   {$EXTERNALSYM WBEM_E_HANDLE_OUT_OF_DATE}
  684.   WBEM_E_CONNECTION_FAILED = DWORD($80041071);
  685.   {$EXTERNALSYM WBEM_E_CONNECTION_FAILED}
  686.   WBEM_E_INVALID_HANDLE_REQUEST = DWORD($80041072);
  687.   {$EXTERNALSYM WBEM_E_INVALID_HANDLE_REQUEST}
  688.   WBEM_E_PROPERTY_NAME_TOO_WIDE = DWORD($80041073);
  689.   {$EXTERNALSYM WBEM_E_PROPERTY_NAME_TOO_WIDE}
  690.   WBEM_E_CLASS_NAME_TOO_WIDE = DWORD($80041074);
  691.   {$EXTERNALSYM WBEM_E_CLASS_NAME_TOO_WIDE}
  692.   WBEM_E_METHOD_NAME_TOO_WIDE = DWORD($80041075);
  693.   {$EXTERNALSYM WBEM_E_METHOD_NAME_TOO_WIDE}
  694.   WBEM_E_QUALIFIER_NAME_TOO_WIDE = DWORD($80041076);
  695.   {$EXTERNALSYM WBEM_E_QUALIFIER_NAME_TOO_WIDE}
  696.   WBEM_E_RERUN_COMMAND = DWORD($80041077);
  697.   {$EXTERNALSYM WBEM_E_RERUN_COMMAND}
  698.   WBEM_E_DATABASE_VER_MISMATCH = DWORD($80041078);
  699.   {$EXTERNALSYM WBEM_E_DATABASE_VER_MISMATCH}
  700.   WBEM_E_VETO_DELETE = DWORD($80041079);
  701.   {$EXTERNALSYM WBEM_E_VETO_DELETE}
  702.   WBEM_E_VETO_PUT = DWORD($8004107a);
  703.   {$EXTERNALSYM WBEM_E_VETO_PUT}
  704.   WBEM_E_INVALID_LOCALE = DWORD($80041080);
  705.   {$EXTERNALSYM WBEM_E_INVALID_LOCALE}
  706.   WBEM_E_PROVIDER_SUSPENDED = DWORD($80041081);
  707.   {$EXTERNALSYM WBEM_E_PROVIDER_SUSPENDED}
  708.   WBEM_E_SYNCHRONIZATION_REQUIRED = DWORD($80041082);
  709.   {$EXTERNALSYM WBEM_E_SYNCHRONIZATION_REQUIRED}
  710.   WBEM_E_NO_SCHEMA = DWORD($80041083);
  711.   {$EXTERNALSYM WBEM_E_NO_SCHEMA}
  712.   WBEM_E_PROVIDER_ALREADY_REGISTERED = DWORD($80041084);
  713.   {$EXTERNALSYM WBEM_E_PROVIDER_ALREADY_REGISTERED}
  714.   WBEM_E_PROVIDER_NOT_REGISTERED = DWORD($80041085);
  715.   {$EXTERNALSYM WBEM_E_PROVIDER_NOT_REGISTERED}
  716.   WBEM_E_FATAL_TRANSPORT_ERROR = DWORD($80041086);
  717.   {$EXTERNALSYM WBEM_E_FATAL_TRANSPORT_ERROR}
  718.   WBEM_E_ENCRYPTED_CONNECTION_REQUIRED = DWORD($80041087);
  719.   {$EXTERNALSYM WBEM_E_ENCRYPTED_CONNECTION_REQUIRED}
  720.   WBEM_E_PROVIDER_TIMED_OUT = DWORD($80041088);
  721.   {$EXTERNALSYM WBEM_E_PROVIDER_TIMED_OUT}
  722.   WBEM_E_NO_KEY = DWORD($80041089);
  723.   {$EXTERNALSYM WBEM_E_NO_KEY}
  724.   WBEM_E_PROVIDER_DISABLED = DWORD($8004108a);
  725.   {$EXTERNALSYM WBEM_E_PROVIDER_DISABLED}
  726.   WBEMESS_E_REGISTRATION_TOO_BROAD = DWORD($80042001);
  727.   {$EXTERNALSYM WBEMESS_E_REGISTRATION_TOO_BROAD}
  728.   WBEMESS_E_REGISTRATION_TOO_PRECISE = DWORD($80042002);
  729.   {$EXTERNALSYM WBEMESS_E_REGISTRATION_TOO_PRECISE}
  730.   WBEMMOF_E_EXPECTED_QUALIFIER_NAME = DWORD($80044001);
  731.   {$EXTERNALSYM WBEMMOF_E_EXPECTED_QUALIFIER_NAME}
  732.   WBEMMOF_E_EXPECTED_SEMI = DWORD($80044002);
  733.   {$EXTERNALSYM WBEMMOF_E_EXPECTED_SEMI}
  734.   WBEMMOF_E_EXPECTED_OPEN_BRACE = DWORD($80044003);
  735.   {$EXTERNALSYM WBEMMOF_E_EXPECTED_OPEN_BRACE}
  736.   WBEMMOF_E_EXPECTED_CLOSE_BRACE = DWORD($80044004);
  737.   {$EXTERNALSYM WBEMMOF_E_EXPECTED_CLOSE_BRACE}
  738.   WBEMMOF_E_EXPECTED_CLOSE_BRACKET = DWORD($80044005);
  739.   {$EXTERNALSYM WBEMMOF_E_EXPECTED_CLOSE_BRACKET}
  740.   WBEMMOF_E_EXPECTED_CLOSE_PAREN = DWORD($80044006);
  741.   {$EXTERNALSYM WBEMMOF_E_EXPECTED_CLOSE_PAREN}
  742.   WBEMMOF_E_ILLEGAL_CONSTANT_VALUE = DWORD($80044007);
  743.   {$EXTERNALSYM WBEMMOF_E_ILLEGAL_CONSTANT_VALUE}
  744.   WBEMMOF_E_EXPECTED_TYPE_IDENTIFIER = DWORD($80044008);
  745.   {$EXTERNALSYM WBEMMOF_E_EXPECTED_TYPE_IDENTIFIER}
  746.   WBEMMOF_E_EXPECTED_OPEN_PAREN = DWORD($80044009);
  747.   {$EXTERNALSYM WBEMMOF_E_EXPECTED_OPEN_PAREN}
  748.   WBEMMOF_E_UNRECOGNIZED_TOKEN = DWORD($8004400a);
  749.   {$EXTERNALSYM WBEMMOF_E_UNRECOGNIZED_TOKEN}
  750.   WBEMMOF_E_UNRECOGNIZED_TYPE = DWORD($8004400b);
  751.   {$EXTERNALSYM WBEMMOF_E_UNRECOGNIZED_TYPE}
  752.   WBEMMOF_E_EXPECTED_PROPERTY_NAME = DWORD($8004400c);
  753.   {$EXTERNALSYM WBEMMOF_E_EXPECTED_PROPERTY_NAME}
  754.   WBEMMOF_E_TYPEDEF_NOT_SUPPORTED = DWORD($8004400d);
  755.   {$EXTERNALSYM WBEMMOF_E_TYPEDEF_NOT_SUPPORTED}
  756.   WBEMMOF_E_UNEXPECTED_ALIAS = DWORD($8004400e);
  757.   {$EXTERNALSYM WBEMMOF_E_UNEXPECTED_ALIAS}
  758.   WBEMMOF_E_UNEXPECTED_ARRAY_INIT = DWORD($8004400f);
  759.   {$EXTERNALSYM WBEMMOF_E_UNEXPECTED_ARRAY_INIT}
  760.   WBEMMOF_E_INVALID_AMENDMENT_SYNTAX = DWORD($80044010);
  761.   {$EXTERNALSYM WBEMMOF_E_INVALID_AMENDMENT_SYNTAX}
  762.   WBEMMOF_E_INVALID_DUPLICATE_AMENDMENT = DWORD($80044011);
  763.   {$EXTERNALSYM WBEMMOF_E_INVALID_DUPLICATE_AMENDMENT}
  764.   WBEMMOF_E_INVALID_PRAGMA = DWORD($80044012);
  765.   {$EXTERNALSYM WBEMMOF_E_INVALID_PRAGMA}
  766.   WBEMMOF_E_INVALID_NAMESPACE_SYNTAX = DWORD($80044013);
  767.   {$EXTERNALSYM WBEMMOF_E_INVALID_NAMESPACE_SYNTAX}
  768.   WBEMMOF_E_EXPECTED_CLASS_NAME = DWORD($80044014);
  769.   {$EXTERNALSYM WBEMMOF_E_EXPECTED_CLASS_NAME}
  770.   WBEMMOF_E_TYPE_MISMATCH = DWORD($80044015);
  771.   {$EXTERNALSYM WBEMMOF_E_TYPE_MISMATCH}
  772.   WBEMMOF_E_EXPECTED_ALIAS_NAME = DWORD($80044016);
  773.   {$EXTERNALSYM WBEMMOF_E_EXPECTED_ALIAS_NAME}
  774.   WBEMMOF_E_INVALID_CLASS_DECLARATION = DWORD($80044017);
  775.   {$EXTERNALSYM WBEMMOF_E_INVALID_CLASS_DECLARATION}
  776.   WBEMMOF_E_INVALID_INSTANCE_DECLARATION = DWORD($80044018);
  777.   {$EXTERNALSYM WBEMMOF_E_INVALID_INSTANCE_DECLARATION}
  778.   WBEMMOF_E_EXPECTED_DOLLAR = DWORD($80044019);
  779.   {$EXTERNALSYM WBEMMOF_E_EXPECTED_DOLLAR}
  780.   WBEMMOF_E_CIMTYPE_QUALIFIER = DWORD($8004401a);
  781.   {$EXTERNALSYM WBEMMOF_E_CIMTYPE_QUALIFIER}
  782.   WBEMMOF_E_DUPLICATE_PROPERTY = DWORD($8004401b);
  783.   {$EXTERNALSYM WBEMMOF_E_DUPLICATE_PROPERTY}
  784.   WBEMMOF_E_INVALID_NAMESPACE_SPECIFICATION = DWORD($8004401c);
  785.   {$EXTERNALSYM WBEMMOF_E_INVALID_NAMESPACE_SPECIFICATION}
  786.   WBEMMOF_E_OUT_OF_RANGE = DWORD($8004401d);
  787.   {$EXTERNALSYM WBEMMOF_E_OUT_OF_RANGE}
  788.   WBEMMOF_E_INVALID_FILE = DWORD($8004401e);
  789.   {$EXTERNALSYM WBEMMOF_E_INVALID_FILE}
  790.   WBEMMOF_E_ALIASES_IN_EMBEDDED = DWORD($8004401f);
  791.   {$EXTERNALSYM WBEMMOF_E_ALIASES_IN_EMBEDDED}
  792.   WBEMMOF_E_NULL_ARRAY_ELEM = DWORD($80044020);
  793.   {$EXTERNALSYM WBEMMOF_E_NULL_ARRAY_ELEM}
  794.   WBEMMOF_E_DUPLICATE_QUALIFIER = DWORD($80044021);
  795.   {$EXTERNALSYM WBEMMOF_E_DUPLICATE_QUALIFIER}
  796.   WBEMMOF_E_EXPECTED_FLAVOR_TYPE = DWORD($80044022);
  797.   {$EXTERNALSYM WBEMMOF_E_EXPECTED_FLAVOR_TYPE}
  798.   WBEMMOF_E_INCOMPATIBLE_FLAVOR_TYPES = DWORD($80044023);
  799.   {$EXTERNALSYM WBEMMOF_E_INCOMPATIBLE_FLAVOR_TYPES}
  800.   WBEMMOF_E_MULTIPLE_ALIASES = DWORD($80044024);
  801.   {$EXTERNALSYM WBEMMOF_E_MULTIPLE_ALIASES}
  802.   WBEMMOF_E_INCOMPATIBLE_FLAVOR_TYPES2 = DWORD($80044025);
  803.   {$EXTERNALSYM WBEMMOF_E_INCOMPATIBLE_FLAVOR_TYPES2}
  804.   WBEMMOF_E_NO_ARRAYS_RETURNED = DWORD($80044026);
  805.   {$EXTERNALSYM WBEMMOF_E_NO_ARRAYS_RETURNED}
  806.   WBEMMOF_E_MUST_BE_IN_OR_OUT = DWORD($80044027);
  807.   {$EXTERNALSYM WBEMMOF_E_MUST_BE_IN_OR_OUT}
  808.   WBEMMOF_E_INVALID_FLAGS_SYNTAX = DWORD($80044028);
  809.   {$EXTERNALSYM WBEMMOF_E_INVALID_FLAGS_SYNTAX}
  810.   WBEMMOF_E_EXPECTED_BRACE_OR_BAD_TYPE = DWORD($80044029);
  811.   {$EXTERNALSYM WBEMMOF_E_EXPECTED_BRACE_OR_BAD_TYPE}
  812.   WBEMMOF_E_UNSUPPORTED_CIMV22_QUAL_VALUE = DWORD($8004402a);
  813.   {$EXTERNALSYM WBEMMOF_E_UNSUPPORTED_CIMV22_QUAL_VALUE}
  814.   WBEMMOF_E_UNSUPPORTED_CIMV22_DATA_TYPE = DWORD($8004402b);
  815.   {$EXTERNALSYM WBEMMOF_E_UNSUPPORTED_CIMV22_DATA_TYPE}
  816.   WBEMMOF_E_INVALID_DELETEINSTANCE_SYNTAX = DWORD($8004402c);
  817.   {$EXTERNALSYM WBEMMOF_E_INVALID_DELETEINSTANCE_SYNTAX}
  818.   WBEMMOF_E_INVALID_QUALIFIER_SYNTAX = DWORD($8004402d);
  819.   {$EXTERNALSYM WBEMMOF_E_INVALID_QUALIFIER_SYNTAX}
  820.   WBEMMOF_E_QUALIFIER_USED_OUTSIDE_SCOPE = DWORD($8004402e);
  821.   {$EXTERNALSYM WBEMMOF_E_QUALIFIER_USED_OUTSIDE_SCOPE}
  822.   WBEMMOF_E_ERROR_CREATING_TEMP_FILE = DWORD($8004402f);
  823.   {$EXTERNALSYM WBEMMOF_E_ERROR_CREATING_TEMP_FILE}
  824.   WBEMMOF_E_ERROR_INVALID_INCLUDE_FILE = DWORD($80044030);
  825.   {$EXTERNALSYM WBEMMOF_E_ERROR_INVALID_INCLUDE_FILE}
  826.   WBEMMOF_E_INVALID_DELETECLASS_SYNTAX = DWORD($80044031);
  827.   {$EXTERNALSYM WBEMMOF_E_INVALID_DELETECLASS_SYNTAX}
  828.   
  829. //const
  830. //EXTERN_C const IID LIBID_WbemClient_v1;
  831. const
  832.   IID_IWbemClassObject: TGUID = '{dc12a681-737f-11cf-884d-00aa004b2e24}';
  833.   {$EXTERNALSYM IID_IWbemClassObject}
  834.   IID_IWbemObjectAccess: TGUID = '{49353c9a-516b-11d1-aea6-00c04fb68820}';
  835.   {$EXTERNALSYM IID_IWbemObjectAccess}
  836.   IID_IWbemQualifierSet: TGUID = '{dc12a680-737f-11cf-884d-00aa004b2e24}';
  837.   {$EXTERNALSYM IID_IWbemQualifierSet}
  838.   IID_IWbemServices: TGUID = '{9556dc99-828c-11cf-a37e-00aa003240c7}';
  839.   {$EXTERNALSYM IID_IWbemServices}
  840.   IID_IWbemLocator: TGUID = '{dc12a687-737f-11cf-884d-00aa004b2e24}';
  841.   {$EXTERNALSYM IID_IWbemLocator}
  842.   IID_IWbemObjectSink: TGUID = '{7c857801-7381-11cf-884d-00aa004b2e24}';
  843.   {$EXTERNALSYM IID_IWbemObjectSink}
  844.   IID_IEnumWbemClassObject: TGUID = '{027947e1-d731-11ce-a357-000000000001}';
  845.   {$EXTERNALSYM IID_IEnumWbemClassObject}
  846.   IID_IWbemCallResult: TGUID = '{44aca675-e8fc-11d0-a07c-00c04fb68820}';
  847.   {$EXTERNALSYM IID_IWbemCallResult}
  848.   IID_IWbemContext: TGUID = '{44aca674-e8fc-11d0-a07c-00c04fb68820}';
  849.   {$EXTERNALSYM IID_IWbemContext}
  850.   IID_IUnsecuredApartment: TGUID = '{1cfaba8c-1523-11d1-ad79-00c04fd8fdff}';
  851.   {$EXTERNALSYM IID_IUnsecuredApartment}
  852.   IID_IWbemUnsecuredApartment: TGUID = '{31739d04-3471-4cf4-9a7c-57a44ae71956}';
  853.   {$EXTERNALSYM IID_IWbemUnsecuredApartment}
  854.   IID_IWbemStatusCodeText: TGUID = '{eb87e1bc-3233-11d2-aec9-00c04fb68820}';
  855.   {$EXTERNALSYM IID_IWbemStatusCodeText}
  856.   IID_IWbemBackupRestore: TGUID = '{C49E32C7-BC8B-11d2-85D4-00105A1F8304}';
  857.   {$EXTERNALSYM IID_IWbemBackupRestore}
  858.   IID_IWbemBackupRestoreEx: TGUID = '{A359DEC5-E813-4834-8A2A-BA7F1D777D76}';
  859.   {$EXTERNALSYM IID_IWbemBackupRestoreEx}
  860.   IID_IWbemRefresher: TGUID = '{49353c99-516b-11d1-aea6-00c04fb68820}';
  861.   {$EXTERNALSYM IID_IWbemRefresher}
  862.   IID_IWbemHiPerfEnum: TGUID = '{2705C288-79AE-11d2-B348-00105A1F8177}';
  863.   {$EXTERNALSYM IID_IWbemHiPerfEnum}
  864.   IID_IWbemConfigureRefresher: TGUID = '{49353c92-516b-11d1-aea6-00c04fb68820}';
  865.   {$EXTERNALSYM IID_IWbemConfigureRefresher}
  866. type
  867.   // forward declarations
  868.   
  869.   IWbemQualifierSet = interface;
  870.   IWbemContext = interface;
  871.   IWbemCallResult = interface;
  872.   IWbemObjectSink = interface;
  873.   IEnumWbemClassObject = interface;
  874.   IWbemClassObject = interface(IUnknown)
  875.   ['{dc12a681-737f-11cf-884d-00aa004b2e24}']
  876.     function GetQualifierSet(out ppQualSet: IWbemQualifierSet): HRESULT; stdcall;
  877.     function Get(wszName: LPCWSTR; lFlags: Longint; var pVal: OleVariant; var pType: CIMTYPE; var plFlavor: Longint): HRESULT; stdcall;
  878.     function Put(wszName: LPCWSTR; lFlags: Longint; pVal: POleVariant; Type_: CIMTYPE): HRESULT; stdcall;
  879.     function Delete(wszName: LPCWSTR): HRESULT; stdcall;
  880.     function GetNames(wszQualifierName: LPCWSTR; lFlags: Longint; pQualifierVal: POleVariant; out pNames: PSafeArray): HRESULT; stdcall;
  881.     function BeginEnumeration(lEnumFlags: Longint): HRESULT; stdcall;
  882.     function Next(lFlags: Longint; var strName: WideString; var pVal: OleVariant; var pType: CIMTYPE; var plFlavor: Longint): HRESULT; stdcall;
  883.     function EndEnumeration: HRESULT; stdcall;
  884.     function GetPropertyQualifierSet(wszProperty: LPCWSTR; out ppQualSet: IWbemQualifierSet): HRESULT; stdcall;
  885.     function Clone(out ppCopy: IWbemClassObject): HRESULT; stdcall;
  886.     function GetObjectText(lFlags: Longint; out pstrObjectText: WideString): HRESULT; stdcall;
  887.     function SpawnDerivedClass(lFlags: Longint; out ppNewClass: IWbemClassObject): HRESULT; stdcall;
  888.     function SpawnInstance(lFlags: Longint; out ppNewInstance: IWbemClassObject): HRESULT; stdcall;
  889.     function CompareTo(lFlags: Longint; pCompareTo: IWbemClassObject): HRESULT; stdcall;
  890.     function GetPropertyOrigin(wszName: LPCWSTR; out pstrClassName: WideString): HRESULT; stdcall;
  891.     function InheritsFrom(strAncestor: LPCWSTR): HRESULT; stdcall;
  892.     function GetMethod(wszName: LPCWSTR; lFlags: Longint; out ppInSignature, ppOutSignature: IWbemClassObject): HRESULT; stdcall;
  893.     function PutMethod(wszName: LPCWSTR; lFlags: Longint; pInSignature, pOutSignature: IWbemClassObject): HRESULT; stdcall;
  894.     function DeleteMethod(wszName: LPCWSTR): HRESULT; stdcall;
  895.     function BeginMethodEnumeration(lEnumFlags: Longint): HRESULT; stdcall;
  896.     function NextMethod(lFlags: Longint; var pstrName: WideString; var ppInSignature, ppOutSignature: IWbemClassObject): HRESULT; stdcall;
  897.     function EndMethodEnumeration: HRESULT; stdcall;
  898.     function GetMethodQualifierSet(wszMethod: LPCWSTR; out ppQualSet: IWbemQualifierSet): HRESULT; stdcall;
  899.     function GetMethodOrigin(wszMethodName: LPCWSTR; out pstrClassName: WideString): HRESULT; stdcall;
  900.   end;
  901.   {$EXTERNALSYM IWbemClassObject}
  902.   IWbemObjectAccess = interface (IWbemClassObject)
  903.   ['{49353c9a-516b-11d1-aea6-00c04fb68820}']
  904.     function GetPropertyHandle(wszPropertyName: LPCWSTR; out pType: CIMTYPE; out plHandle: Longint): HRESULT; stdcall;
  905.     function WritePropertyValue(lHandle, lNumBytes: Longint; aData: LPBYTE): HRESULT; stdcall;
  906.     function ReadPropertyValue(lHandle, lBufferSize: Longint; out plNumBytes: Longint; aData: LPBYTE): HRESULT; stdcall;
  907.     function ReadDWORD(lHandle: Longint; out pdw: DWORD): HRESULT; stdcall;
  908.     function WriteDWORD(lHandle: Longint; dw: DWORD): HRESULT; stdcall;
  909.     function ReadQWORD(lHandle: Longint; out pqw: Int64): HRESULT; stdcall;
  910.     function WriteQWORD(lHandle: Longint; pw: Int64): HRESULT; stdcall;
  911.     function GetPropertyInfoByHandle(lHandle: Longint; out pstrName: WideString; out pType: CIMTYPE): HRESULT; stdcall;
  912.     function Lock(lFlags: Longint): HRESULT; stdcall;
  913.     function Unlock(lFlags: Longint): HRESULT; stdcall;
  914.   end;
  915.   {$EXTERNALSYM IWbemObjectAccess}
  916.   IWbemQualifierSet = interface (IUnknown)
  917.   ['{dc12a680-737f-11cf-884d-00aa004b2e24}']
  918.     function Get(wszName: LPCWSTR; lFlags: Longint; var pVal: OleVariant; var plFlavor: Longint): HRESULT; stdcall;
  919.     function Put(wszName: LPCWSTR; pVal: POleVariant; lFlavor: Longint): HRESULT; stdcall;
  920.     function Delete(wszName: LPCWSTR): HRESULT; stdcall;
  921.     function GetNames(lFlags: Longint; out pNames: PSafeArray): HRESULT; stdcall;
  922.     function BeginEnumeration(lFlags: Longint): HRESULT; stdcall;
  923.     function Next(lFlags: Longint; var pstrName: WideString; var pVal: OleVariant; var plFlavor: Longint): HRESULT; stdcall;
  924.     function EndEnumeration: HRESULT; stdcall;
  925.   end;
  926.   {$EXTERNALSYM IWbemQualifierSet}
  927.   IWbemServices = interface (IUnknown)
  928.   ['{9556dc99-828c-11cf-a37e-00aa003240c7}']
  929.     function OpenNamespace(strNamespace: WideString; lFlags: Longint; pCtx: IWbemContext; out ppWorkingNamespace: IWbemServices; out ppResult: IWbemCallResult): HRESULT; stdcall;
  930.     function CancelAsyncCall(pSink: IWbemObjectSink): HRESULT; stdcall;
  931.     function QueryObjectSink(lFlags: Longint; out ppResponseHandler: IWbemObjectSink): HRESULT; stdcall;
  932.     function GetObject(strObjectPath: WideString; lFlags: Longint; pCtx: IWbemContext; out ppObject: IWbemClassObject; out ppCallResult: IWbemCallResult): HRESULT; stdcall;
  933.     function GetObjectAsync(strObjectPath: WideString; lFlags: Longint; pCtx: IWbemContext; pResponseHandler: IWbemObjectSink): HRESULT; stdcall;
  934.     function PutClass(pObject: IWbemClassObject; lFlags: Longint; pCtx: IWbemContext; out ppCallResult: IWbemCallResult): HRESULT; stdcall;
  935.     function PutClassAsync(pObject: IWbemClassObject; lFlags: Longint; pCtx: IWbemContext; pResponseHandler: IWbemObjectSink): HRESULT; stdcall;
  936.     function DeleteClass(strClass: WideString; lFlags: Longint; pCtx: IWbemContext; out ppCallResult: IWbemCallResult): HRESULT; stdcall;
  937.     function DeleteClassAsync(strClass: WideString; lFlags: Longint; pCtx: IWbemContext; pResponseHandler: IWbemObjectSink): HRESULT; stdcall;
  938.     function CreateClassEnum(strSuperclass: WideString; lFlags: Longint; pCtx: IWbemContext; out ppEnum: IEnumWbemClassObject): HRESULT; stdcall;
  939.     function CreateClassEnumAsync(strSuperclass: WideString; lFlags: Longint; pCtx: IWbemContext; pResponseHandler: IWbemObjectSink): HRESULT; stdcall;
  940.     function PutInstance(pInst: IWbemClassObject; lFlags: Longint; pCtx: IWbemContext; out ppCallResult: IWbemCallResult): HRESULT; stdcall;
  941.     function PutInstanceAsync(pInst: IWbemClassObject; lFlags: Longint; pCtx: IWbemContext; pResponseHandler: IWbemObjectSink): HRESULT; stdcall;
  942.     function DeleteInstance(strObjectPath: WideString; lFlags: Longint; pCtx: IWbemContext; out ppCallResult: IWbemCallResult): HRESULT; stdcall;
  943.     function DeleteInstanceAsync(strObjectPath: WideString; lFlags: Longint; pCtx: IWbemContext; pResponseHandler: IWbemObjectSink): HRESULT; stdcall;
  944.     function CreateInstanceEnum(strFilter: WideString; lFlags: Longint; pCtx: IWbemContext; out ppEnum: IEnumWbemClassObject): HRESULT; stdcall;
  945.     function CreateInstanceEnumAsync(strFilter: WideString; lFlags: Longint; pCtx: IWbemContext; pResponseHandler: IWbemObjectSink): HRESULT; stdcall;
  946.     function ExecQuery(strQueryLanguage, strQuery: WideString; lFlags: Longint; pCtx: IWbemContext; out ppEnum: IEnumWbemClassObject): HRESULT; stdcall;
  947.     function ExecQueryAsync(strQueryLanguage, strQuery: WideString; lFlags: Longint; pCtx: IWbemContext; pResponseHandler: IWbemObjectSink): HRESULT; stdcall;
  948.     function ExecNotificationQuery(strQueryLanguage, strQuery: WideString; lFlags: Longint; pCtx: IWbemContext; out ppEnum: IEnumWbemClassObject): HRESULT; stdcall;
  949.     function ExecNotificationQueryAsync(strQueryLanguage, strQuery: WideString; lFlags: Longint; pCtx: IWbemContext; pResponseHandler: IWbemObjectSink): HRESULT; stdcall;
  950.     function ExecMethod(strObjectPath, strMethodName: WideString; lFlags: Longint; pCtx: IWbemContext; pInParams: IWbemClassObject; out ppOutParams: IWbemClassObject; out ppCallResult: IWbemCallResult): HRESULT; stdcall;
  951.     function ExecMethodAsync(strObjectPath, strMethodName: WideString; lFlags: Longint; pCtx: IWbemContext; pInParams: IWbemClassObject; pResponseHandler: IWbemObjectSink): HRESULT; stdcall;
  952.   end;
  953.   {$EXTERNALSYM IWbemServices}
  954.   IWbemLocator = interface (IUnknown)
  955.   ['{dc12a687-737f-11cf-884d-00aa004b2e24}']
  956.     function ConnectServer(strNetworkResource, strUser, strPassword, strLocale: WideString; lSecurityFlags: Longint;
  957.       strAuthority: WideString; pCtx: IWbemContext; out ppNamespace: IWbemServices): HRESULT; stdcall;
  958.   end;
  959.   {$EXTERNALSYM IWbemLocator}
  960.   IWbemObjectSink = interface (IUnknown)
  961.   ['{7c857801-7381-11cf-884d-00aa004b2e24}']
  962.     function Indicate(lObjectCount: Longint; var apObjArray: IWbemClassObject{todo}): HRESULT; stdcall;
  963.     function SetStatus(lFlags: Longint; hResult: HRESULT; strParam: WideString; pObjParam: IWbemClassObject): HRESULT; stdcall;
  964.   end;
  965.   {$EXTERNALSYM IWbemObjectSink}
  966.   IEnumWbemClassObject = interface (IUnknown)
  967.   ['{027947e1-d731-11ce-a357-000000000001}']
  968.     function Reset: HRESULT; stdcall;
  969.     function Next(lTimeout: Longint; uCount: ULONG; out apObjects: IWbemClassObject; out puReturned: ULONG): HRESULT; stdcall;
  970.     function NextAsync(uCount: ULONG; pSink: IWbemObjectSink): HRESULT; stdcall;
  971.     function Clone(out ppEnum: IEnumWbemClassObject): HRESULT; stdcall;
  972.     function Skip(lTimeout: Longint; nCount: ULONG): HRESULT; stdcall;
  973.   end;
  974.   {$EXTERNALSYM IEnumWbemClassObject}
  975.   IWbemCallResult = interface (IUnknown)
  976.   ['{44aca675-e8fc-11d0-a07c-00c04fb68820}']
  977.     function GetResultObject(lTimeout: Longint; out ppResultObject: IWbemClassObject): HRESULT; stdcall;
  978.     function GetResultString(lTimeout: Longint; out pstrResultString: WideString): HRESULT; stdcall;
  979.     function GetResultServices(lTimeout: Longint; out ppServices: IWbemServices): HRESULT; stdcall;
  980.     function GetCallStatus(lTimeout: Longint; out plStatus: Longint): HRESULT; stdcall;
  981.   end;
  982.   {$EXTERNALSYM IWbemCallResult}
  983.   IWbemContext = interface (IUnknown)
  984.   ['{44aca674-e8fc-11d0-a07c-00c04fb68820}']
  985.     function Clone(out ppNewCopy: IWbemContext): HRESULT; stdcall;
  986.     function GetNames(lFlags: Longint; out pNames: PSafeArray): HRESULT; stdcall;
  987.     function BeginEnumeration(lFlags: Longint): HRESULT; stdcall;
  988.     function Next(lFlags: Longint; out pstrName: WideString; out pValue: OleVariant): HRESULT; stdcall;
  989.     function EndEnumeration: HRESULT; stdcall;
  990.     function SetValue(wszName: LPCWSTR; lFlags: Longint; pValue: POleVariant): HRESULT; stdcall;
  991.     function GetValue(wszName: LPCWSTR; lFlags: Longint; out pValue: OleVariant): HRESULT; stdcall;
  992.     function DeleteValue(wszName: LPCWSTR; lFlags: Longint): HRESULT; stdcall;
  993.     function DeleteAll: HRESULT; stdcall;
  994.   end;
  995.   {$EXTERNALSYM IWbemContext}
  996.   IUnsecuredApartment = interface (IUnknown)
  997.   ['{1cfaba8c-1523-11d1-ad79-00c04fd8fdff}']
  998.     function CreateObjectStub(pObject: IUnknown; out ppStub: IUnknown): HRESULT; stdcall;
  999.   end;
  1000.   {$EXTERNALSYM IUnsecuredApartment}
  1001.   IWbemUnsecuredApartment = interface (IUnsecuredApartment)
  1002.   ['{31739d04-3471-4cf4-9a7c-57a44ae71956}']
  1003.     function CreateSinkStub(pSink: IWbemObjectSink; dwFlags: DWORD; wszReserved: LPCWSTR; out ppStub: IWbemObjectSink): HRESULT; stdcall;
  1004.   end;
  1005.   {$EXTERNALSYM IWbemUnsecuredApartment}
  1006.   IWbemStatusCodeText = interface (IUnknown)
  1007.   ['{eb87e1bc-3233-11d2-aec9-00c04fb68820}']
  1008.     function GetErrorCodeText(hRes: HRESULT; LocaleId: LCID; lFlags: Longint; out MessageText: WideString): HRESULT; stdcall;
  1009.     function GetFacilityCodeText(hRes: HRESULT; LocaleId: LCID; lFlags: Longint; out MessageText: WideString): HRESULT; stdcall;
  1010.   end;
  1011.   {$EXTERNALSYM IWbemStatusCodeText}
  1012.   IWbemBackupRestore = interface (IUnknown)
  1013.   ['{C49E32C7-BC8B-11d2-85D4-00105A1F8304}']
  1014.     function Backup(strBackupToFile: LPCWSTR; lFlags: Longint): HRESULT; stdcall;
  1015.     function Restore(strRestoreFromFile: LPCWSTR; lFlags: Longint): HRESULT; stdcall;
  1016.   end;
  1017.   {$EXTERNALSYM IWbemBackupRestore}
  1018.   IWbemBackupRestoreEx = interface (IWbemBackupRestore)
  1019.   ['{A359DEC5-E813-4834-8A2A-BA7F1D777D76}']
  1020.     function Pause: HRESULT; stdcall;
  1021.     function Resume: HRESULT; stdcall;
  1022.   end;
  1023.   {$EXTERNALSYM IWbemBackupRestoreEx}
  1024.   IWbemRefresher = interface (IUnknown)
  1025.   ['{49353c99-516b-11d1-aea6-00c04fb68820}']
  1026.     function Refresh(lFlags: Longint): HRESULT; stdcall;
  1027.   end;
  1028.   {$EXTERNALSYM IWbemRefresher}
  1029.   PIWbemObjectAccess = ^IWbemObjectAccess;
  1030.   PLongint = ^Longint; // TODO PLongint introduced in Delphi 6
  1031.   IWbemHiPerfEnum = interface (IUnknown)
  1032.   ['{2705C288-79AE-11d2-B348-00105A1F8177}']
  1033.     function AddObjects(lFlags: Longint; uNumObjects: ULONG; apIds: PLongint; apObj: PIWbemObjectAccess): HRESULT; stdcall;
  1034.     function RemoveObjects(lFlags: Longint; uNumObjects: ULONG; apIds: PLongint): HRESULT; stdcall;
  1035.     function GetObjects(lFlags: Longint; uNumObjects: ULONG; out apObj: IWbemObjectAccess; out puReturned: ULONG): HRESULT; stdcall;
  1036.     function RemoveAll(lFlags: Longint): HRESULT; stdcall;
  1037.   end;
  1038.   {$EXTERNALSYM IWbemHiPerfEnum}
  1039.   IWbemConfigureRefresher = interface (IUnknown)
  1040.   ['{49353c92-516b-11d1-aea6-00c04fb68820}']
  1041.     function AddObjectByPath(pNamespace: IWbemServices; wszPath: LPCWSTR; lFlags: Longint; pContext: IWbemContext; out ppRefreshable: IWbemClassObject; var plId: Longint): HRESULT; stdcall;
  1042.     function AddObjectByTemplate(pNamespace: IWbemServices; pTemplate: IWbemClassObject; lFlags: Longint; pContext: IWbemContext; out ppRefreshable: IWbemClassObject; var plId: Longint): HRESULT; stdcall;
  1043.     function AddRefresher(pRefresher: IWbemRefresher; lFlags: Longint; var plId: Longint): HRESULT; stdcall;
  1044.     function Remove(lId, lFlags: Longint): HRESULT; stdcall;
  1045.     function AddEnum(pNamespace: IWbemServices; wszClassName: LPCWSTR; lFlags: Longint; pContext: IWbemContext; out ppEnum: IWbemHiPerfEnum; var plId: Longint): HRESULT; stdcall;
  1046.   end;
  1047.   {$EXTERNALSYM IWbemConfigureRefresher}
  1048. const
  1049.   CLSID_WbemLocator: TGUID = '{4590f811-1d3a-11d0-891f-00aa004b2e24}';
  1050.   {$EXTERNALSYM CLSID_WbemLocator}
  1051.   CLSID_WbemContext: TGUID = '{674B6698-EE92-11d0-AD71-00C04FD8FDFF}';
  1052.   {$EXTERNALSYM CLSID_WbemContext}
  1053.   CLSID_UnsecuredApartment: TGUID = '{49bd2028-1523-11d1-ad79-00c04fd8fdff}';
  1054.   {$EXTERNALSYM CLSID_UnsecuredApartment}
  1055.   CLSID_WbemClassObject: TGUID = '{9A653086-174F-11d2-B5F9-00104B703EFD}';
  1056.   {$EXTERNALSYM CLSID_WbemClassObject}
  1057.   CLSID_MofCompiler: TGUID = '{6daf9757-2e37-11d2-aec9-00c04fb68820}';
  1058.   {$EXTERNALSYM CLSID_MofCompiler}
  1059.   CLSID_WbemStatusCodeText: TGUID = '{eb87e1bd-3233-11d2-aec9-00c04fb68820}';
  1060.   {$EXTERNALSYM CLSID_WbemStatusCodeText}
  1061.   CLSID_WbemBackupRestore: TGUID = '{C49E32C6-BC8B-11d2-85D4-00105A1F8304}';
  1062.   {$EXTERNALSYM CLSID_WbemBackupRestore}
  1063.   CLSID_WbemRefresher: TGUID = '{c71566f2-561e-11d1-ad87-00c04fd8fdff}';
  1064.   {$EXTERNALSYM CLSID_WbemRefresher}
  1065.   CLSID_WbemObjectTextSrc: TGUID = '{8D1C559D-84F0-4bb3-A7D5-56A7435A9BA6}';
  1066.   {$EXTERNALSYM CLSID_WbemObjectTextSrc}
  1067. const
  1068.   IID_IWbemShutdown: TGUID = '{b7b31df9-d515-11d3-a11c-00105a1f515a}';
  1069.   {$EXTERNALSYM IID_IWbemShutdown}
  1070. type
  1071.   IWbemShutdown = interface (IUnknown)
  1072.   ['{b7b31df9-d515-11d3-a11c-00105a1f515a}']
  1073.     function Shutdown(uReason: LONG; uMaxMilliseconds: ULONG; pCtx: IWbemContext): HRESULT; stdcall;
  1074.   end;
  1075.   {$EXTERNALSYM IWbemShutdown}
  1076. type
  1077.   tag_WMI_OBJ_TEXT = DWORD;
  1078.   {$EXTERNALSYM tag_WMI_OBJ_TEXT}
  1079.   WMI_OBJ_TEXT = tag_WMI_OBJ_TEXT;
  1080.   {$EXTERNALSYM WMI_OBJ_TEXT}
  1081.   TWmiObjText = WMI_OBJ_TEXT;
  1082. const
  1083.   WMI_OBJ_TEXT_CIM_DTD_2_0 = 1;
  1084.   {$EXTERNALSYM WMI_OBJ_TEXT_CIM_DTD_2_0}
  1085.   WMI_OBJ_TEXT_WMI_DTD_2_0 = 2;
  1086.   {$EXTERNALSYM WMI_OBJ_TEXT_WMI_DTD_2_0}
  1087.   WMI_OBJ_TEXT_WMI_EXT1 = 3;
  1088.   {$EXTERNALSYM WMI_OBJ_TEXT_WMI_EXT1}
  1089.   WMI_OBJ_TEXT_WMI_EXT2 = 4;
  1090.   {$EXTERNALSYM WMI_OBJ_TEXT_WMI_EXT2}
  1091.   WMI_OBJ_TEXT_WMI_EXT3 = 5;
  1092.   {$EXTERNALSYM WMI_OBJ_TEXT_WMI_EXT3}
  1093.   WMI_OBJ_TEXT_WMI_EXT4 = 6;
  1094.   {$EXTERNALSYM WMI_OBJ_TEXT_WMI_EXT4}
  1095.   WMI_OBJ_TEXT_WMI_EXT5 = 7;
  1096.   {$EXTERNALSYM WMI_OBJ_TEXT_WMI_EXT5}
  1097.   WMI_OBJ_TEXT_WMI_EXT6 = 8;
  1098.   {$EXTERNALSYM WMI_OBJ_TEXT_WMI_EXT6}
  1099.   WMI_OBJ_TEXT_WMI_EXT7 = 9;
  1100.   {$EXTERNALSYM WMI_OBJ_TEXT_WMI_EXT7}
  1101.   WMI_OBJ_TEXT_WMI_EXT8 = 10;
  1102.   {$EXTERNALSYM WMI_OBJ_TEXT_WMI_EXT8}
  1103.   WMI_OBJ_TEXT_WMI_EXT9 = 11;
  1104.   {$EXTERNALSYM WMI_OBJ_TEXT_WMI_EXT9}
  1105.   WMI_OBJ_TEXT_WMI_EXT10 = 12;
  1106.   {$EXTERNALSYM WMI_OBJ_TEXT_WMI_EXT10}
  1107.   WMI_OBJ_TEXT_LAST = 13;
  1108.   {$EXTERNALSYM WMI_OBJ_TEXT_LAST}
  1109. const
  1110.   IID_IWbemObjectTextSrc: TGUID = '{bfbf883a-cad7-11d3-a11b-00105a1f515a}';
  1111.   {$EXTERNALSYM IID_IWbemObjectTextSrc}
  1112. type
  1113.   IWbemObjectTextSrc = interface (IUnknown)
  1114.   ['{bfbf883a-cad7-11d3-a11b-00105a1f515a}']
  1115.     function GetText(lFlags: Longint; pObj: IWbemClassObject; uObjTextFormat: ULONG; pCtx: IWbemContext; out strText: WideString): HRESULT; stdcall;
  1116.     function CreateFromText(lFlags: Longint; strText: WideString; uObjTextFormat: ULONG; pCtx: IWbemContext; out pNewObj:IWbemClassObject): HRESULT; stdcall;
  1117.   end;
  1118.   {$EXTERNALSYM IWbemObjectTextSrc}
  1119. const
  1120.   IID_IMofCompiler: TGUID = '{6daf974e-2e37-11d2-aec9-00c04fb68820}';
  1121.   {$EXTERNALSYM IID_IMofCompiler}
  1122. type
  1123.   tag_CompileStatusInfo = record
  1124.     lPhaseError: Longint;
  1125.     hRes: HRESULT;
  1126.     ObjectNum: Longint;
  1127.     FirstLine: Longint;
  1128.     LastLine: Longint;
  1129.     dwOutFlags: DWORD;
  1130.   end;
  1131.   {$EXTERNALSYM tag_CompileStatusInfo}
  1132.   WBEM_COMPILE_STATUS_INFO = tag_CompileStatusInfo;
  1133.   {$EXTERNALSYM WBEM_COMPILE_STATUS_INFO}
  1134.   TWbemCompileStatusInfo = WBEM_COMPILE_STATUS_INFO;
  1135. type
  1136.   tag_WBEM_COMPILER_OPTIONS = DWORD;
  1137.   {$EXTERNALSYM tag_WBEM_COMPILER_OPTIONS}
  1138.   WBEM_COMPILER_OPTIONS = tag_WBEM_COMPILER_OPTIONS;
  1139.   {$EXTERNALSYM WBEM_COMPILER_OPTIONS}
  1140.   TWbemCompilerOptions = WBEM_COMPILER_OPTIONS;
  1141. const
  1142.   WBEM_FLAG_CHECK_ONLY       = $1;
  1143.   {$EXTERNALSYM WBEM_FLAG_CHECK_ONLY}
  1144.   WBEM_FLAG_AUTORECOVER      = $2;
  1145.   {$EXTERNALSYM WBEM_FLAG_AUTORECOVER}
  1146.   WBEM_FLAG_WMI_CHECK        = $4;
  1147.   {$EXTERNALSYM WBEM_FLAG_WMI_CHECK}
  1148.   WBEM_FLAG_CONSOLE_PRINT    = $8;
  1149.   {$EXTERNALSYM WBEM_FLAG_CONSOLE_PRINT}
  1150.   WBEM_FLAG_DONT_ADD_TO_LIST = $10;
  1151.   {$EXTERNALSYM WBEM_FLAG_DONT_ADD_TO_LIST}
  1152.   WBEM_FLAG_SPLIT_FILES      = $20;
  1153.   {$EXTERNALSYM WBEM_FLAG_SPLIT_FILES}
  1154.   WBEM_FLAG_STORE_FILE       = $100;
  1155.   {$EXTERNALSYM WBEM_FLAG_STORE_FILE}
  1156. type
  1157.   tag_WBEM_CONNECT_OPTIONS = DWORD;
  1158.   {$EXTERNALSYM tag_WBEM_CONNECT_OPTIONS}
  1159.   WBEM_CONNECT_OPTIONS = tag_WBEM_CONNECT_OPTIONS;
  1160.   {$EXTERNALSYM WBEM_CONNECT_OPTIONS}
  1161.   TWbemConnectOptions = WBEM_CONNECT_OPTIONS;
  1162. const
  1163.   WBEM_FLAG_CONNECT_REPOSITORY_ONLY = $40;
  1164.   {$EXTERNALSYM WBEM_FLAG_CONNECT_REPOSITORY_ONLY}
  1165.   WBEM_FLAG_CONNECT_USE_MAX_WAIT = $80;
  1166.   {$EXTERNALSYM WBEM_FLAG_CONNECT_USE_MAX_WAIT}
  1167. type
  1168.   IMofCompiler = interface (IUnknown)
  1169.   ['{6daf974e-2e37-11d2-aec9-00c04fb68820}']
  1170.     function CompileFile(FileName, ServerAndNamespace, User, Authority, Password: LPWSTR;
  1171.       lOptionFlags, lClassFlags, lInstanceFlags: LONG; var pInfo: WBEM_COMPILE_STATUS_INFO): HRESULT; stdcall;
  1172.     function CompileBuffer(buffSize: Longint; pBuffer: LPBYTE; ServerAndNamespace, User, Authority, Password: LPWSTR;
  1173.       lOptionFlags, lClassFlags, lInstanceFlags: LONG; var pInfo: WBEM_COMPILE_STATUS_INFO): HRESULT; stdcall;
  1174.     function CreateBMOF(TextFileName, BMOFFileName, ServerAndNamespace: LPWSTR;
  1175.       lOptionFlags, lClassFlags, lInstanceFlags: LONG; var pInfo: WBEM_COMPILE_STATUS_INFO): HRESULT; stdcall;
  1176.   end;
  1177. type
  1178.   tag_WBEM_UNSECAPP_FLAG_TYPE = DWORD;
  1179.   {$EXTERNALSYM tag_WBEM_UNSECAPP_FLAG_TYPE}
  1180.   WBEM_UNSECAPP_FLAG_TYPE = tag_WBEM_UNSECAPP_FLAG_TYPE;
  1181.   {$EXTERNALSYM WBEM_UNSECAPP_FLAG_TYPE}
  1182.   TWbemUnsecAppFlagType = WBEM_UNSECAPP_FLAG_TYPE;
  1183. const
  1184.   WBEM_FLAG_UNSECAPP_DEFAULT_CHECK_ACCESS = 0;
  1185.   {$EXTERNALSYM WBEM_FLAG_UNSECAPP_DEFAULT_CHECK_ACCESS}
  1186.   WBEM_FLAG_UNSECAPP_CHECK_ACCESS         = 1;
  1187.   {$EXTERNALSYM WBEM_FLAG_UNSECAPP_CHECK_ACCESS}
  1188.   WBEM_FLAG_UNSECAPP_DONT_CHECK_ACCESS    = 2;
  1189.   {$EXTERNALSYM WBEM_FLAG_UNSECAPP_DONT_CHECK_ACCESS}
  1190. type
  1191.   tag_WBEM_INFORMATION_FLAG_TYPE = DWORD;
  1192.   {$EXTERNALSYM tag_WBEM_INFORMATION_FLAG_TYPE}
  1193.   WBEM_INFORMATION_FLAG_TYPE = tag_WBEM_INFORMATION_FLAG_TYPE;
  1194.   {$EXTERNALSYM WBEM_INFORMATION_FLAG_TYPE}
  1195.   TWbemInformationFlagType = WBEM_INFORMATION_FLAG_TYPE;
  1196. const
  1197.   WBEM_FLAG_SHORT_NAME = $1;
  1198.   {$EXTERNALSYM WBEM_FLAG_SHORT_NAME}
  1199.   WBEM_FLAG_LONG_NAME  = $2;
  1200.   {$EXTERNALSYM WBEM_FLAG_LONG_NAME}
  1201. // Additional Prototypes for ALL interfaces
  1202. //unsigned long             __RPC_USER  WideString_UserSize(     unsigned long *, unsigned long            , WideString * );
  1203. //unsigned char * __RPC_USER  WideString_UserMarshal(  unsigned long *, unsigned char *, WideString * );
  1204. //unsigned char * __RPC_USER  WideString_UserUnmarshal(unsigned long *, unsigned char *, WideString * );
  1205. //void                      __RPC_USER  WideString_UserFree(     unsigned long *, WideString * );
  1206. // end of Additional Prototypes
  1207. implementation
  1208. end.