次の方法で共有


CreateHardwareEventMoniker 関数

[この関数は、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]
Shsvcs.dll