[この関数は、Service Pack 2 (SP2) と Windows Server 2003 を使用した Windows XP を通じて使用できます。 それ以降のバージョンの Windows では、変更または使用できない可能性があります。
ハードウェア コンポーネントとそれに関連付けられているイベント ハンドラーを表すモニカーを作成します。 AutoPlay では、この関数を使用して、アプリケーションで AutoPlay イベントを使用できるようにします。
構文
HRESULT CreateHardwareEventMoniker(
_In_ REFCLSID clsid,
_In_ LPCTSTR pszEventHandler,
_Out_ IMoniker **ppmoniker
);
パラメーター
-
clsid [in]
-
型: REFCLSID
モニカーがバインドされるクラスの ID。
-
pszEventHandler [in]
-
種類: LPCTSTR
イベント ハンドラーの名前。
-
ppmoniker [out]
-
種類: IMoniker**
IMoniker インターフェイス ポインターを受け取るポインター変数のアドレス。
戻り値
型: HRESULT
この関数が成功すると、 S_OKが返されます。 それ以外の場合は、 HRESULT エラー コードが返されます。
解説
実行中のアプリケーションを登録するときに CreateHardwareEventMoniker を使用して、それらのアプリケーションが AutoPlay イベントにアクセスできるようにします。 実行中のアプリケーションで AutoPlay イベントを使用するには、まず IHWEventHandler インターフェイスを実装する新しいコンポーネントを作成する必要があります。 AutoPlay では Initialize メソッドが呼び出されないため、 Handlers キーの下にある特定のハンドラーのエントリの InitCmdLine 値を使用して、このインターフェイスを 初期化 します。
CreateHardwareEventMoniker を呼び出して、コンポーネントとそのイベント ハンドラーを表すモニカーを取得する必要があります。 次に、 ppmoniker パラメーターで返される値を使用して、例に示すように、コンポーネントを実行中のオブジェクト テーブル (ROT) に登録します。
CreateHardwareEventMoniker はヘッダー ファイルで定義されていないことに注意してください。 コードで使用するには、 LoadLibrary の呼び出しを通じてShsvcs.dll ファイルへのハンドルを取得する必要があります。 次に、 GetProcAddress の呼び出しでそのハンドルを使用して、 CreateHardwareEventMoniker 関数のインスタンスを取得します。
IRunningObjectTable::Register を呼び出すには、レジストリに次の AppID 情報を入力する必要があります。
HKEY_CLASSES_ROOT
AppID
MyApp.exe
(Default) = MyApplication
AppID [REG_SZ] = {Your GUID here}
HKEY_CLASSES_ROOT
AppID
{The same GUID here}
(Default) = MyApplication
RunAs = Interactive User
必要条件
| 要件 | 値 |
|---|---|
| サポートされている最小のクライアント |
Windows XP [デスクトップ アプリのみ] |
| サポートされている最小のサーバー |
Windows Server 2003 [デスクトップ アプリのみ] |
| ヘッダー |
|
| [DLL] |
|