Deprecated: Array and string offset access syntax with curly braces is deprecated in /homepages/21/d38531796/htdocs/jose/smfforum/Sources/Subs.php on line 3825 Print Page - WMIGENX - Generator of templates for WMI classes (WMI API)
Theo's Forum
IT-Consultant: José Roca (PBWIN 10+/PBCC 6+) (Archive only) => TypeLib Browser and Other Tools => Topic started by: José Roca on July 12, 2011, 12:24:38 AM
Title: WMIGENX - Generator of templates for WMI classes (WMI API)
Post by: José Roca on July 12, 2011, 12:24:38 AM
This tool generates templates for WMI classes using the WMI API low-level interfaces.
Code produced for the Win32_BIOS class of the root\CIMV2 namespace.
' ======================================================================================== ' Retrieves the values of all of the properties of the Win32_BIOS class ' ======================================================================================== FUNCTION WMI_Win32_BIOS (OPTIONAL BYVAL bstrComputer AS WSTRING) AS LONG
LOCAL hr AS LONG ' // HRESULT LOCAL pLocator AS IWbemLocator ' // IWbemLocator interface reference LOCAL pService AS IWbemServices ' // IWbemServices interface reference LOCAL pEnumClassObject AS IEnumWbemClassObject ' // IEnumWbemClassObject collection reference LOCAL pClassObject AS IWbemClassObject ' // IWbemClassObject interface reference LOCAL bstrResource AS WSTRING ' // Path of the correct WMI namespace LOCAL bstrLanguage AS WSTRING ' // Query language LOCAL bstrQuery AS WSTRING ' // Query filter LOCAL uReturned AS DWORD ' // Number of returned references
' // Variants to store the property values LOCAL vBiosCharacteristics AS VARIANT ' // Array - Unsigned 16-bit integer LOCAL vBIOSVersion AS VARIANT ' // Array - String LOCAL vBuildNumber AS VARIANT ' // String LOCAL vCaption AS VARIANT ' // String LOCAL vCodeSet AS VARIANT ' // String LOCAL vCurrentLanguage AS VARIANT ' // String LOCAL vDescription AS VARIANT ' // String LOCAL vIdentificationCode AS VARIANT ' // String LOCAL vInstallableLanguages AS VARIANT ' // Unsigned 16-bit integer LOCAL vInstallDate AS VARIANT ' // Date/time value LOCAL vLanguageEdition AS VARIANT ' // String LOCAL vListOfLanguages AS VARIANT ' // Array - String LOCAL vManufacturer AS VARIANT ' // String LOCAL vName AS VARIANT ' // String LOCAL vOtherTargetOS AS VARIANT ' // String LOCAL vPrimaryBIOS AS VARIANT ' // Boolean value LOCAL vReleaseDate AS VARIANT ' // Date/time value LOCAL vSerialNumber AS VARIANT ' // String LOCAL vSMBIOSBIOSVersion AS VARIANT ' // String LOCAL vSMBIOSMajorVersion AS VARIANT ' // Unsigned 16-bit integer LOCAL vSMBIOSMinorVersion AS VARIANT ' // Unsigned 16-bit integer LOCAL vSMBIOSPresent AS VARIANT ' // Boolean value LOCAL vSoftwareElementID AS VARIANT ' // String LOCAL vSoftwareElementState AS VARIANT ' // Unsigned 16-bit integer LOCAL vStatus AS VARIANT ' // String LOCAL vTargetOperatingSystem AS VARIANT ' // Unsigned 16-bit integer LOCAL vVersion AS VARIANT ' // String
' // Sets the default security values for the process hr = CoInitializeSecurity(BYVAL %NULL, -1, BYVAL %NULL, %NULL, %RPC_C_AUTHN_LEVEL_DEFAULT, %RPC_C_IMP_LEVEL_IMPERSONATE, BYVAL %NULL, %EOAC_NONE, %NULL) IF hr <> %S_OK THEN FUNCTION = hr : EXIT FUNCTION
' // Creates an instance of the IWbemLocator interface pLocator = NEWCOM CLSID $CLSID_WbemLocator IF ISNOTHING(pLocator) THEN FUNCTION = %E_FAIL: EXIT FUNCTION
' // Connects with the specified machine IF LEN(bstrComputer) AND RIGHT$(bstrComputer, 1) <> "\" THEN bstrComputer +="\" bstrResource = bstrComputer & "root\CIMV2" hr = pLocator.ConnectServer(bstrResource, "", "", "", 0, "", NOTHING, pService) IF hr <> %S_OK THEN FUNCTION = hr : EXIT FUNCTION
' // Sets security levels on the proxy hr = CoSetProxyBlanket(pService, %RPC_C_AUTHN_WINNT, %RPC_C_AUTHZ_NONE, %NULL, %RPC_C_AUTHN_LEVEL_CALL, %RPC_C_IMP_LEVEL_IMPERSONATE, %NULL, %EOAC_NONE) IF hr <> %S_OK THEN FUNCTION = hr : EXIT FUNCTION
' // Executes the query bstrLanguage = "WQL" bstrQuery = "SELECT * FROM Win32_BIOS" hr = pService.ExecQuery(bstrLanguage, bstrQuery, %WBEM_FLAG_FORWARD_ONLY OR %WBEM_FLAG_RETURN_IMMEDIATELY, NOTHING, pEnumClassObject)
' // Release the enumerator pEnumClassObject = NOTHING ' // Release the service pService = NOTHING ' // Release the locator pLocator = NOTHING
END FUNCTION ' ========================================================================================
' ======================================================================================== ' Main ' ======================================================================================== FUNCTION PBMAIN
WMI_Win32_BIOS
END FUNCTION ' ========================================================================================