IRSOPInformation
COM公式ドキュメント
IRSOPInformation インターフェイスは、Microsoft 管理コンソール (MMC) の拡張スナップインがメインの Resultant Set of Policy (RSoP) スナップインと通信するためのメソッドを提供します。MMC の詳細については、Microsoft 管理コンソールを参照してください。
メソッド 3
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
GetNameSpace メソッドは、RSoP データの表示元となる名前空間を取得します。
| dwSection | DWORD | in | GPO のセクションを指定します。このパラメーターには次のいずれかの値を指定できます。 GPO_SECTION_ROOTルートセクション GPO_SECTION_USERユーザーセクション GPO_SECTION_MACHINEコンピューターセクション |
| pszName | LPWSTR | out | RSoP データの表示元となる名前空間を受け取ります。コンピューターおよびユーザーの RSoP データは、この名前空間の下のサブ名前空間に格納されます。コンピューターの RSoP データは Computer サブ名前空間の下に、ユーザーの RSoP データは User サブ名前空間の下にあります。 |
| cchMaxLength | INT | in | pszName バッファーのサイズを文字数で指定します。 |
戻り値
メソッドが成功した場合、戻り値は S_OK です。それ以外の場合、メソッドは Platform SDK のヘッダーファイル WinError.h で定義されている COM エラーコードのいずれかを返します。
GetFlags メソッドは、RSoP のユーザーインターフェイスセッションに関する情報を取得します。
| pdwFlags | DWORD* | inout | RSoP セッションに関する情報を格納する値へのポインターを受け取ります。このパラメーターには次の値を指定できます。 RSOP_INFO_FLAG_LOGGING_MODEこの値が指定されている場合、RSoP セッションはログモードです。この値が指定されていない場合、セッションが計画モードであることを示します。 |
戻り値
メソッドが成功した場合、戻り値は S_OK です。それ以外の場合、メソッドは Platform SDK のヘッダーファイル WinError.h で定義されている COM エラーコードのいずれかを返します。
GetEventLogEntryText メソッドは、イベントログ内の特定のエントリのテキストを返します。
| pszEventSource | LPWSTR | in | ログエントリを生成したソース (アプリケーション、サービス、ドライバー、サブシステム) の名前を指定します。 |
| pszEventLogName | LPWSTR | in | イベントログの名前を指定します。 |
| pszEventTime | LPWSTR | in | イベントがログに記録された時刻を、Windows Management Instrumentation (WMI) 形式で指定します。詳細については、WMI ドキュメントの Date and Time Format を参照してください。 |
| dwEventID | DWORD | in | イベント ID を指定します。 |
| ppszText | LPWSTR* | out | イベントログエントリのテキストを格納するバッファーへのポインターを受け取ります。呼び出し元のアプリケーションは、このバッファーに割り当てられたメモリを CoTaskMemFree 関数の呼び出しによって解放する必要があります。 |
戻り値
メソッドが成功した場合、戻り値は S_OK です。それ以外の場合、メソッドは Platform SDK のヘッダーファイル WinError.h で定義されている COM エラーコードのいずれかを返します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IRSOPInformation "{9A5A81B5-D9C7-49EF-9D11-DDF50968C48D}" #usecom global IRSOPInformation IID_IRSOPInformation "{}" #comfunc global IRSOPInformation_GetNamespace 3 int,var,int #comfunc global IRSOPInformation_GetFlags 4 var #comfunc global IRSOPInformation_GetEventLogEntryText 5 wstr,wstr,wstr,int,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IRSOPInformation "{9A5A81B5-D9C7-49EF-9D11-DDF50968C48D}" #usecom global IRSOPInformation IID_IRSOPInformation "{}" #comfunc global IRSOPInformation_GetNamespace 3 int,sptr,int #comfunc global IRSOPInformation_GetFlags 4 sptr #comfunc global IRSOPInformation_GetEventLogEntryText 5 wstr,wstr,wstr,int,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。