Provider Framework 公用程序類別
[WMI C++屬於目前處於最終狀態的 WMI 提供者架構一部分的類別,而且不會針對影響這些連結庫的非安全性相關問題使用進一步的開發、增強功能或更新。 MI API 應該用於所有新的開發。]
提供者架構連結庫Framedyd.dll(偵錯版本)和Framedyn.dll(發行版本)實作數個提供者協助程序類別。 Framedyn.dll中的某些函式已從頭檔中移除。 若要繼續使用這些函式,請在包含 Fwcommon.h 之前新增 #define FRAMEWORK_ALLOW_DEPRECATED
至您的程式代碼。
您可以卸除不再需要的個別提供者。
若要使用這項功能,您必須在 MainDll.cpp 中對提供者進行下列三項變更:
- 在呼叫 CWbemProviderGlue::FrameworkLoginDLL 的 DllMain 函式中,您必須新增第二個參數,這是 long 的指標。
- 在呼叫 CWbemProviderGlue::FrameworkLogoffDLL 的 DllCanUnloadNow 函式中,您必須新增第二個參數,這是 long 的指標。
- 在建立 CWbemGlueFactory 實例的 DllGetClassObject 函式中,您必須新增參數,其為 long 的指標。
在這三種情況下,long 的指標必須是相同的指標。
注意
在 Maindll.cpp中,DllGetClassObject、DllCanUnloadNow、DllRegisterServer、DllUnregisterServer 和 DllMain 例程必須包裝在 try/catch 區塊中。
警告
提供者偵錯組建連結與framedyd.lib for Framedyd.dll。 Framedyd.dll位於系統路徑中不包含的 Microsoft Windows 軟體開發工具包 (SDK) \bin 目錄。 使用 Windows 管理服務測試提供者的偵錯組建時,架構提供者將無法載入,因為Framedyd.dll或其其中一個相依性不會找到。 因此,您必須將Framedyd.dll從 Windows SDK \bin 目錄複製到 \system32\wbem 目錄,或將 Windows SDK \bin 目錄新增至系統搜尋路徑。
下表列出提供者架構公用程序類別。
公用程序類別 | 描述 |
---|---|
CHString | 提供 WMI 的字串比較和操作函式。 |
CHStringArray | 包含用於建立及操作 CHString 陣列的 。 |
TRefPointerCollection | 授與指標容器類別的存取權。 |
WBEMTime | 促進各種 Windows 和 ANSI C 執行時間格式之間的轉換。 |
WBEMTimeSpan | 包含協助程式函式,用來計算並保存兩個 WBEMTime 對象之間的時間範圍差異。 |
注意
CHString 和 CHStringArray 類別類似於 Microsoft Foundation Classes (MFC) CString 和 CStringArray。 WMI 版本存在,讓開發人員不需要存取 MFC 即可存取字串操作和比較方法。 WBEMTime 和 WBEMTimeSpan 類別也類似於 MFC CTime 和 CTimeSpan 類別。 WMI 版本能夠儲存時間到 nanosecond 精確度,也可以從 BSTR 來回轉換。 如需 CString、CStringArray、CTime 和 CTimeSpan 類別的詳細資訊,請參閱 MFC Desktop Applications 檔。
WBEMTime 方法傳回的 BSTR 值採用日期和時間格式:“yymmddHHMMSS.mmmmsUUUU”
WBEMTimeSpan 方法傳回的 BSTR 值採用間隔格式:“ddddHHMMSS.mmmmmm:000”
雖然時間範圍和時間範圍會以奈秒為單位儲存在內部,但它們不一定以 nanosecond 精確度儲存。 這是因為 WBEMTime 物件可以使用精確到第二個時間的時間格式來建構(結構 tm 和 time_t)。 新增人工小數位數並不會增加精確度。