Win32 API 日本語リファレンス
ホームSystem.ComponentServices › ICOMAdminCatalog

ICOMAdminCatalog

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IIDdd662187-dfc2-11d1-a2cf-00805fc79235継承元IDispatch呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl7

公式ドキュメント

プログラムによる COM+ 管理を行うためのセッションを開始し、カタログ内のコレクションへのアクセス、COM+ アプリケーションおよびコンポーネントのインストール、サービスの開始と停止、リモートサーバーへの接続を実行します。

メソッド 26

vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。

vtbl 7 HRESULT GetCollection(LPWSTR bstrCollName, IDispatch** ppCatalogCollection)

COM+ カタログのトップレベルコレクションを取得します。

bstrCollNameLPWSTRin取得するコレクションの名前。
ppCatalogCollectionIDispatch**outコレクションに対する ICatalogCollection インターフェイス。

戻り値

このメソッドは、標準の戻り値 E_INVALIDARGE_OUTOFMEMORYE_UNEXPECTEDE_FAIL、および S_OK を返すことがあります。

解説(Remarks)

このメソッドは、Applications コレクションのようなトップレベルコレクションを COM+ カタログから取得します。Components のようにトップレベルコレクションではない関連コレクションについては、親コレクションから利用できる GetCollection メソッドを使用してください。

GetCollection によって取得されるカタログコレクションには、そのコレクションに含まれる項目のカタログ上のデータは含まれていません。コレクション内の項目のデータを読み込むには、Populate メソッドを使用してください。

COM+ カタログ内のコレクションの完全な一覧については、COM+ Administration Collections を参照してください。

vtbl 8 HRESULT Connect(LPWSTR bstrCatalogServerName, IDispatch** ppCatalogCollection)

指定したリモートコンピューター上の COM+ カタログに接続します。

bstrCatalogServerNameLPWSTRinリモートコンピューターの名前。ローカルコンピューターに接続するには、空の文字列を使用します。
ppCatalogCollectionIDispatch**outリモートコンピューター上のルートコレクションに対する ICatalogCollection インターフェイス。

戻り値

このメソッドは、標準の戻り値 E_INVALIDARGE_OUTOFMEMORYE_UNEXPECTEDE_FAIL、および S_OK を返すことがあります。

解説(Remarks)

Connect メソッドは、リモートコンピューターにバインドされたルートコレクションも取得します。ルートコレクションはトップレベルコレクションを見つけるための起点として機能し、オブジェクトやプロパティは一切含みません。

Connect メソッドを先に使用しなくても、GetCollection メソッドを使用してローカルコンピューター上のトップレベルコレクションを取得できます。

Connect メソッドを使用すると、保持している ICOMAdminCatalog インターフェイスは、接続先のコンピューター上で動作します。

vtbl 9 HRESULT get_MajorVersion(INT* plMajorVersion)

COMAdmin ライブラリのメジャーバージョン番号を取得します。

plMajorVersionINT*outカタログのメジャーバージョン番号を受け取るポインタである。
vtbl 10 HRESULT get_MinorVersion(INT* plMinorVersion)

COMAdmin ライブラリのマイナーバージョン番号を取得します。

plMinorVersionINT*outカタログのマイナーバージョン番号を受け取るポインタである。
vtbl 11 HRESULT GetCollectionByQuery(LPWSTR bstrCollName, SAFEARRAY** ppsaVarQuery, IDispatch** ppCatalogCollection)

すべての親項目のキープロパティ値を指定して、COM+ カタログ上のコレクションを取得します。

bstrCollNameLPWSTRin取得するコレクションの名前。
ppsaVarQuerySAFEARRAY**in取得するコレクションのすべての親項目のキープロパティ値から構成される配列への参照。
ppCatalogCollectionIDispatch**outコレクションに対する ICatalogCollection インターフェイス。

戻り値

このメソッドは、標準の戻り値 E_INVALIDARGE_OUTOFMEMORYE_UNEXPECTEDE_FAIL、および S_OK を返すことがあります。

解説(Remarks)

項目の ICatalogObject::Key プロパティ値は、COM+ カタログ内でその項目を一意に識別するための GUID です。

GetCollectionByQuery メソッドは、すべての親項目のキー値を指定することで、カタログ上の任意のコレクションを取得します。ただし、ErrorInfoPropertyInfoRelatedCollectionInfo の各コレクションについては、このメソッドの動作が異なります。これらのコレクションのいずれかを指定した場合、GetCollectionByQuery は常に、Root コレクションを基準としてその名前付きコレクションを直接返します。

Root コレクションを基準とするのではなく、カタログ内の任意のコレクションを基準とした ErrorInfoPropertyInfo、または RelatedCollectionInfo コレクションを取得するには、親コレクションから GetCollection メソッドを使用してください。

利用可能なコレクションの完全な一覧については、COM+ Administration Collections を参照してください。

vtbl 12 HRESULT ImportComponent(LPWSTR bstrApplIDOrName, LPWSTR bstrCLSIDOrProgID)

インプロセスサーバーとして既に登録されているコンポーネントを COM+ アプリケーションにインポートします。

bstrApplIDOrNameLPWSTRinアプリケーションの GUID または名前。
bstrCLSIDOrProgIDLPWSTRinインポートするコンポーネントの CLSID または ProgID。

戻り値

このメソッドは、標準の戻り値 E_INVALIDARGE_OUTOFMEMORYE_UNEXPECTEDE_FAIL、および S_OK を返すことがあります。

解説(Remarks)

一般に、このメソッドは、コンポーネントをローカルでの使用のみに制限したい場合を除いて使用すべきではありません。それ以外の場合は、ImportComponent ではなく InstallComponent メソッドを使用してください。InstallComponent はコンポーネントを COM+ クラス登録データベース (RegDB) に完全に登録しますが、ImportComponent はそれを行わないため、機能が制限されたアプリケーションになります。

ImportComponent は、コンポーネントのインターフェイス、メソッド、型ライブラリの情報を COM+ クラス登録データベースに取り込みません。この動作により、コンポーネントの構成方法が制限されます。インポートされたコンポーネントを含む COM+ アプリケーションをアプリケーションプロキシにエクスポートしようとすると、プロキシにはそのコンポーネントのインターフェイス情報も型ライブラリ情報も含まれず、そのコンポーネントのマーシャリングは失敗します。

vtbl 13 HRESULT InstallComponent(LPWSTR bstrApplIDOrName, LPWSTR bstrDLL, LPWSTR bstrTLB, LPWSTR bstrPSDLL)

DLL ファイル内のすべてのコンポーネント (COM クラス) を COM+ アプリケーションにインストールし、それらのコンポーネントを COM+ クラス登録データベースに登録します。

bstrApplIDOrNameLPWSTRinアプリケーションの GUID または名前。
bstrDLLLPWSTRinインストールするコンポーネントを含む DLL ファイルの名前。
bstrTLBLPWSTRin外部の型ライブラリファイルの名前。型ライブラリファイルが DLL に埋め込まれている場合は、このパラメーターに空の文字列を渡します。
bstrPSDLLLPWSTRinプロキシスタブ DLL ファイルの名前。コンポーネントに関連付けられたプロキシスタブ DLL がない場合は、このパラメーターに空の文字列を渡します。

戻り値

このメソッドは、標準の戻り値 E_INVALIDARGE_OUTOFMEMORYE_UNEXPECTEDE_FAIL、および S_OK を返すことがあります。

解説(Remarks)

InstallComponent は、マーシャリングに必要なインターフェイス、メソッド、型ライブラリ、プロキシスタブの情報を含めて、構成済みコンポーネントとしてコンポーネントを COM+ クラス登録データベース (RegDB) に完全に登録します。

すべてのコンポーネントを COM+ アプリケーションにインストールするには、ICOMAdminCatalog::ImportComponent ではなく InstallComponent を使用することが推奨されます。

vtbl 14 HRESULT ShutdownApplication(LPWSTR bstrApplIDOrName)

COM+ サーバーアプリケーションプロセスのシャットダウンを開始します。

bstrApplIDOrNameLPWSTRinアプリケーションの GUID または名前。

戻り値

このメソッドは、標準の戻り値 E_INVALIDARGE_OUTOFMEMORYE_UNEXPECTEDE_FAIL のほか、次の値を返すことがあります。

戻り値 説明
S_OK
メソッドは正常に完了しました。
COMADMIN_E_OBJECT_DOES_NOT_EXIST
アプリケーションが存在しません。
vtbl 15 HRESULT ExportApplication(LPWSTR bstrApplIDOrName, LPWSTR bstrApplicationFile, COMAdminApplicationExportOptions lOptions)

COM+ アプリケーションまたはアプリケーションプロキシをファイルにエクスポートし、別のコンピューターにインストールできる状態にします。

bstrApplIDOrNameLPWSTRinエクスポートするアプリケーションの GUID またはアプリケーション名。
bstrApplicationFileLPWSTRinアプリケーションのエクスポート先ファイルの名前 (ファイルパスを含む)。このパラメーターが NULL または空の文字列の場合、ExportApplication メソッドは E_INVALIDARG を返します。 パスを指定しない場合は、カレントディレクトリが使用されます。 相対パスを入力した場合、そのパスはカレントディレクトリからの相対パスになります。
lOptionsCOMAdminApplicationExportOptionsin

アプリケーションのエクスポートオプションを指定します。このパラメーターには、COMAdminApplicationExportOptions 列挙型の次の値のうち 1 つ以上を指定できます。

意味
COMAdminExportNoUsers
0
アプリケーションロールに割り当てられたユーザーを含めずにエクスポートします。
COMAdminExportUsers
1
アプリケーションロールに割り当てられたユーザーを含めてエクスポートします。
COMAdminExportApplicationProxy
2
アプリケーションをプロキシとしてエクスポートします。
COMAdminExportForceOverwriteOfFile
4
既存のファイルを上書きします。
COMAdminExportIn10Format
16
COM+ 1.0 (Windows 2000) 形式でエクスポートします。

戻り値

このメソッドは、標準の戻り値 E_INVALIDARGE_OUTOFMEMORYE_UNEXPECTEDE_FAIL のほか、次の値を返すことがあります。

戻り値 説明
S_OK
メソッドは正常に完了しました。
COMADMIN_E_OBJECT_DOES_NOT_EXIST
アプリケーションが存在しません。
vtbl 16 HRESULT InstallApplication(LPWSTR bstrApplicationFile, LPWSTR bstrDestinationDirectory, COMAdminApplicationInstallOptions lOptions, LPWSTR bstrUserId, LPWSTR bstrPassword, LPWSTR bstrRSN)

指定したファイルから COM+ アプリケーションまたはアプリケーションプロキシをインストールします。

bstrApplicationFileLPWSTRinインストールするアプリケーションを含むファイルの名前。
bstrDestinationDirectoryLPWSTRinコンポーネントのインストール先。このパラメーターが空白の場合は、既定のディレクトリが使用されます。
lOptionsCOMAdminApplicationInstallOptionsin

オプションフラグ。このパラメーターには、次の値のいずれかを指定できます。

意味
COMAdminInstallNoUsers
0
アプリケーションファイルに保存されたユーザーをインストールしません (既定)。
COMAdminInstallUsers
1
アプリケーションファイルに保存されたユーザーをインストールします。
COMAdminInstallForceOverwriteOfFiles
2
ファイルを上書きします。
bstrUserIdLPWSTRinアプリケーションを実行するユーザー ID。
bstrPasswordLPWSTRinアプリケーションを実行する際のパスワード。
bstrRSNLPWSTRinアプリケーションプロキシに使用するリモートサーバー名。

戻り値

このメソッドは、標準の戻り値 E_INVALIDARGE_OUTOFMEMORYE_UNEXPECTEDE_FAIL のほか、次の値を返すことがあります。

戻り値 説明
S_OK
メソッドは正常に完了しました。
ERROR_INSTALL_FAILURE
インストール中に致命的なエラーが発生しました。
COMADMIN_E_OBJECT_DOES_NOT_EXIST
アプリケーションが存在しません。
COMADMIN_E_OBJECTERRORS
1 つ以上のオブジェクトへのアクセス中にエラーが発生しました。
vtbl 17 HRESULT StopRouter()

コンポーネントの負荷分散サービスが現在インストールされている場合、そのサービスを停止します。

戻り値

このメソッドは、標準の戻り値 E_INVALIDARGE_OUTOFMEMORYE_UNEXPECTEDE_FAIL のほか、次の値を返すことがあります。

戻り値 説明
S_OK
メソッドは正常に完了しました。
COMADMIN_E_SERVICENOTINSTALLED
コンポーネントの負荷分散サービスは、現在このコンピューターにインストールされていません。
COMADMIN_E_OBJECTERRORS
1 つ以上のオブジェクトへのアクセス中にエラーが発生しました。

解説(Remarks)

コンポーネント負荷分散 (CLB) サーバーとして動作しているコンピューター上で呼び出されると、StopRouter メソッドは、コンポーネントのアクティブ化要求をアプリケーションクラスター内の他のサーバーへルーティングする動作をそのサーバーで停止します。

vtbl 18 HRESULT RefreshRouter()

このメソッドは廃止されています。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 19 HRESULT StartRouter()

コンポーネントの負荷分散サービスが現在インストールされている場合、そのサービスを開始します。

戻り値

このメソッドは、標準の戻り値 E_INVALIDARGE_OUTOFMEMORYE_UNEXPECTEDE_FAIL のほか、次の値を返すことがあります。

戻り値 説明
S_OK
メソッドは正常に完了しました。
COMADMIN_E_SERVICENOTINSTALLED
コンポーネントの負荷分散サービスは、現在このコンピューターにインストールされていません。
COMADMIN_E_OBJECTERRORS
1 つ以上のオブジェクトへのアクセス中にエラーが発生しました。

解説(Remarks)

コンポーネント負荷分散 (CLB) サーバーとして動作しているコンピューター上で呼び出されると、StartRouter メソッドはサービスを起動します。それ以降のコンポーネントのアクティブ化要求は、ルーター上で定義されているアプリケーションクラスター全体にルーティングされます。

vtbl 20 HRESULT Reserved1()
vtbl 21 HRESULT Reserved2()
vtbl 22 HRESULT InstallMultipleComponents(LPWSTR bstrApplIDOrName, SAFEARRAY** ppsaVarFileNames, SAFEARRAY** ppsaVarCLSIDs)

複数のファイルからコンポーネントを COM+ アプリケーションにインストールします。

bstrApplIDOrNameLPWSTRinアプリケーションの GUID または名前。
ppsaVarFileNamesSAFEARRAY**inインストールするコンポーネントを含む DLL ファイルの名前の配列。
ppsaVarCLSIDsSAFEARRAY**inインストールするコンポーネントの CLSID の配列。

戻り値

このメソッドは、標準の戻り値 E_INVALIDARGE_OUTOFMEMORYE_UNEXPECTEDE_FAIL のほか、次の値を返すことがあります。

戻り値 説明
S_OK
メソッドは正常に完了しました。
COMADMIN_E_OBJECTERRORS
1 つ以上のオブジェクトへのアクセス中にエラーが発生しました。
vtbl 23 HRESULT GetMultipleComponentsInfo(LPWSTR bstrApplIdOrName, SAFEARRAY** ppsaVarFileNames, SAFEARRAY** ppsaVarCLSIDs, SAFEARRAY** ppsaVarClassNames, SAFEARRAY** ppsaVarFileFlags, SAFEARRAY** ppsaVarComponentFlags)

指定したファイル内で見つかったコンポーネントに関する情報を取得します。

bstrApplIdOrNameLPWSTRinアプリケーションを表す GUID またはアプリケーション名。
ppsaVarFileNamesSAFEARRAY**inコンポーネントを含むファイルの名前の配列。
ppsaVarCLSIDsSAFEARRAY**outコンポーネントの CLSID の配列。
ppsaVarClassNamesSAFEARRAY**outコンポーネントのクラス名の配列。
ppsaVarFileFlagsSAFEARRAY**out

ファイルに関する情報を含むファイルフラグの配列。

COMAdminFileFlagLoadable

(0x00000001)

COMAdminFileFlagCOM (0x00000002)

COMAdminFileFlagContainsRS (0x00000004)

COMAdminFileFlagContainsComp (0x00000008)

COMAdminFileFlagContainsTLB (0x00000010)

COMAdminFileFlagSelfReg (0x00000020)

COMAdminFileFlagSelfUnReg (0x00000040)

COMAdminFileFlagUnloadableDLL (0x00000080)

COMAdminFileFlagDoesNotExist (0x00000100)

COMAdminFileFlagAlreadyInstalled (0x00000200)

COMAdminFileFlagBadTLB (0x00000400)

COMAdminFileFlagGetClassObjFailed (0x00000800)

COMAdminFileFlagClassNotAvailable (0x00001000)

COMAdminFileFlagRegistrar (0x00002000)

COMAdminFileFlagNoRegistrar (0x00004000)

COMAdminFileFlagDLLRegsvrFailed (0x00008000)

COMAdminFileFlagRegTLBFailed (0x00010000)

COMAdminFileFlagRegistrarFailed (0x00020000)

COMAdminFileFlagError (0x00040000)

ppsaVarComponentFlagsSAFEARRAY**out

ファイル内のコンポーネントに関する情報を表すために使用されるコンポーネントフラグの配列。

COMAdminComponentFlagTypeInfoFound (0x00000001)

COMAdminComponentCOMPlusPropertiesFound (0x00000002)

COMAdminComponentProxyFound (0x00000004)

COMAdminComponentInterfacesFound (0x00000008)

COMAdminComponentAlreadyInstalled (0x00000010)

COMAdminComponentNotInApplication (0x00000020)

戻り値

このメソッドは、標準の戻り値 E_INVALIDARGE_OUTOFMEMORYE_UNEXPECTEDE_FAIL のほか、次の値を返すことがあります。

戻り値 説明
S_OK
メソッドは正常に完了しました。
COMADMIN_E_OBJECTERRORS
1 つ以上のオブジェクトへのアクセス中にエラーが発生しました。
vtbl 24 HRESULT RefreshComponents()

レジストリからコンポーネントの登録情報を更新します。

戻り値

このメソッドは、標準の戻り値 E_INVALIDARGE_OUTOFMEMORYE_UNEXPECTEDE_FAIL、および S_OK を返すことがあります。

解説(Remarks)

RefreshComponents メソッドは、Microsoft Visual Basic 6.0 開発環境内で、Add-Ins メニューの Component Services サブメニューにある Auto-refresh 機能または Refresh all components now 機能を使用したときに呼び出されます。

不一致を見つけるために、RefreshComponents は COM+ クラス登録データベース (RegDB) とレジストリの間で CLSID と ProgID を比較します。このメソッドは、CLSID が一致せず、かつ対応する ProgID が一致している場合にのみ、コンポーネントを更新します。

RegDB に更新されるのは CLSID 情報のみです。インターフェイス情報やメソッド情報は更新されません。RefreshComponents を使用して更新されたコンポーネントは、COM+ アプリケーション内でインターフェイスレベルやメソッドレベルでの構成やセキュリティ保護を行うことができません。

vtbl 25 HRESULT BackupREGDB(LPWSTR bstrBackupFilePath)

COM+ クラス登録データベースを指定したファイルにバックアップします。

bstrBackupFilePathLPWSTRin登録データベースのバックアップ先となるファイルのパス。

戻り値

このメソッドは、標準の戻り値 E_INVALIDARGE_OUTOFMEMORYE_UNEXPECTEDE_FAIL、および S_OK を返すことがあります。

vtbl 26 HRESULT RestoreREGDB(LPWSTR bstrBackupFilePath)

指定したファイルから COM+ クラス登録データベース (RegDB) を復元します。これを有効にするには、システムの再起動が必要です。

bstrBackupFilePathLPWSTRinデータベースのバックアップ先となったファイルの名前。

戻り値

このメソッドは、標準の戻り値 E_INVALIDARGE_OUTOFMEMORYE_UNEXPECTEDE_FAIL のほか、次の値を返すことがあります。

戻り値 説明
S_OK
メソッドは正常に完了しました。
E_NOTIMPL
メソッドが実装されていません。
COMADMIN_E_OBJECTERRORS
1 つ以上のオブジェクトへのアクセス中にエラーが発生しました。
vtbl 27 HRESULT QueryApplicationFile(LPWSTR bstrApplicationFile, LPWSTR* pbstrApplicationName, LPWSTR* pbstrApplicationDescription, VARIANT_BOOL* pbHasUsers, VARIANT_BOOL* pbIsProxy, SAFEARRAY** ppsaVarFileNames)

アプリケーションファイルから COM+ アプリケーションに関する情報を取得します。

bstrApplicationFileLPWSTRin情報の取得元となるアプリケーションファイル。
pbstrApplicationNameLPWSTR*out指定したファイル内のアプリケーション名。
pbstrApplicationDescriptionLPWSTR*outアプリケーションの説明。
pbHasUsersVARIANT_BOOL*outアプリケーションのロールにユーザー情報が関連付けられているかどうかを示します。
pbIsProxyVARIANT_BOOL*outファイルにアプリケーションプロキシが含まれているかどうかを示します。
ppsaVarFileNamesSAFEARRAY**outアプリケーションにインストールされているコンポーネントの DLL ファイルの名前の配列。

戻り値

このメソッドは、標準の戻り値 E_INVALIDARGE_OUTOFMEMORYE_UNEXPECTEDE_FAIL、および S_OK を返すことがあります。

vtbl 28 HRESULT StartApplication(LPWSTR bstrApplIdOrName)

指定した COM+ サーバーアプリケーションを開始します。アプリケーションのコンポーネントは、専用のサーバープロセスで起動されます。

bstrApplIdOrNameLPWSTRinアプリケーションの GUID または名前。GUID を使用する場合は、中かっこで囲む必要があります。

戻り値

このメソッドは、標準の戻り値 E_INVALIDARGE_OUTOFMEMORYE_UNEXPECTEDE_FAIL、および S_OK を返すことがあります。

vtbl 29 HRESULT ServiceCheck(INT lService, INT* plStatus)

指定した COM+ サービスの現在の状態を取得します。

lServiceINTin状態を確認するサービス。このパラメーターには、コンポーネントの負荷分散サービスを確認するために COMAdminServiceLoadBalanceRouter (1) を指定できます。
plStatusINT*out

指定したサービスの状態。

意味
COMAdminServiceStopped
0
サービスは停止しています。
COMAdminServiceStartPending
1
サービスは開始する予定です。
COMAdminServiceStopPending
2
サービスは停止する予定です。
COMAdminServiceRunning
3
サービスは実行中です。
COMAdminServiceContinuePending
4
サービスは再開する予定です。
COMAdminServicePausePending
5
サービスは一時停止する予定です。
COMAdminServicePaused
6
サービスは一時停止しています。
COMAdminServiceUnknownState
7
サービスの状態は不明です。

戻り値

このメソッドは、標準の戻り値 E_INVALIDARGE_OUTOFMEMORYE_UNEXPECTEDE_FAIL、および S_OK を返すことがあります。

vtbl 30 HRESULT InstallMultipleEventClasses(LPWSTR bstrApplIdOrName, SAFEARRAY** ppsaVarFileNames, SAFEARRAY** ppsaVarCLSIDS)

複数のファイルからイベントクラスを COM+ アプリケーションにインストールします。

bstrApplIdOrNameLPWSTRinアプリケーションの GUID または名前。
ppsaVarFileNamesSAFEARRAY**inインストールするイベントクラスを含む DLL ファイルの名前の配列。
ppsaVarCLSIDSSAFEARRAY**inインストールするイベントクラスの CLSID の配列。

戻り値

このメソッドは、標準の戻り値 E_INVALIDARGE_OUTOFMEMORYE_UNEXPECTEDE_FAIL、および S_OK を返すことがあります。

解説(Remarks)

イベントクラスのダミー実装を保持する DLL からイベントクラスをインストールするには、InstallMultipleEventClasses を使用します。必要となるのは、自己登録型の DLL、イベントクラスが実装するインターフェイスを記述した型ライブラリ、そして各イベントクラスが CLSID と ProgID を持っていることです。

イベントクラスによって公開されるインターフェイスのダミー実装は、実際には決して実行されません。これはイベントクラスを登録するためだけに存在します。代わりに、イベントクラスがパブリッシャーによって作成されると、イベントをサブスクライバーに送信するための実装が Events システムによって提供されます。

vtbl 31 HRESULT InstallEventClass(LPWSTR bstrApplIdOrName, LPWSTR bstrDLL, LPWSTR bstrTLB, LPWSTR bstrPSDLL)

ファイルからイベントクラスを COM+ アプリケーションにインストールします。

bstrApplIdOrNameLPWSTRinアプリケーションの GUID または名前。
bstrDLLLPWSTRinインストールするイベントクラスを含む DLL のファイル名。
bstrTLBLPWSTRin外部の型ライブラリファイルの名前。型ライブラリファイルが DLL に埋め込まれている場合は、このパラメーターに空の文字列を渡します。
bstrPSDLLLPWSTRinプロキシスタブ DLL ファイルの名前。イベントクラスに関連付けられたプロキシスタブ DLL がない場合は、このパラメーターに空の文字列を渡します。

戻り値

このメソッドは、標準の戻り値 E_INVALIDARGE_OUTOFMEMORYE_UNEXPECTEDE_FAIL、および S_OK を返すことがあります。

解説(Remarks)

イベントクラスのダミー実装を保持する DLL からイベントクラスをインストールするには、InstallEventClass を使用します。必要となるのは、自己登録型の DLL、イベントクラスが実装するインターフェイスを記述した型ライブラリ、そして各イベントクラスが CLSID と ProgID を持っていることです。

イベントクラスによって公開されるインターフェイスのダミー実装は、実際には決して実行されません。これはイベントクラスを登録するためだけに存在します。代わりに、イベントクラスがパブリッシャーによって作成されると、イベントをサブスクライバーに送信するための実装が Events システムによって提供されます。

vtbl 32 HRESULT GetEventClassesForIID(LPWSTR bstrIID, SAFEARRAY** ppsaVarCLSIDs, SAFEARRAY** ppsaVarProgIDs, SAFEARRAY** ppsaVarDescriptions)

指定したインターフェイスを実装する、コンピューターに登録されているイベントクラスの一覧を取得します。

bstrIIDLPWSTRinイベントクラスを検索する対象のインターフェイスを表す GUID。このパラメーターが NULL の場合、メソッドはコンピューターに登録されているすべてのイベントクラスを取得します。
ppsaVarCLSIDsSAFEARRAY**outbstrIID で指定したインターフェイスを実装するイベントクラスの CLSID の配列。
ppsaVarProgIDsSAFEARRAY**outbstrIID で指定したインターフェイスを実装するイベントクラスの ProgID の配列。
ppsaVarDescriptionsSAFEARRAY**outbstrIID で指定したインターフェイスを実装するイベントクラスの説明の配列。

戻り値

このメソッドは、標準の戻り値 E_INVALIDARGE_OUTOFMEMORYE_UNEXPECTEDE_FAIL、および S_OK を返すことがあります。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_ICOMAdminCatalog "{DD662187-DFC2-11D1-A2CF-00805FC79235}"
#usecom global ICOMAdminCatalog IID_ICOMAdminCatalog "{F618C514-DFB8-11D1-A2CF-00805FC79235}"
#comfunc global ICOMAdminCatalog_GetCollection                7 wstr,sptr
#comfunc global ICOMAdminCatalog_Connect                      8 wstr,sptr
#comfunc global ICOMAdminCatalog_get_MajorVersion             9 var
#comfunc global ICOMAdminCatalog_get_MinorVersion             10 var
#comfunc global ICOMAdminCatalog_GetCollectionByQuery         11 wstr,var,sptr
#comfunc global ICOMAdminCatalog_ImportComponent              12 wstr,wstr
#comfunc global ICOMAdminCatalog_InstallComponent             13 wstr,wstr,wstr,wstr
#comfunc global ICOMAdminCatalog_ShutdownApplication          14 wstr
#comfunc global ICOMAdminCatalog_ExportApplication            15 wstr,wstr,int
#comfunc global ICOMAdminCatalog_InstallApplication           16 wstr,wstr,int,wstr,wstr,wstr
#comfunc global ICOMAdminCatalog_StopRouter                   17
#comfunc global ICOMAdminCatalog_RefreshRouter                18
#comfunc global ICOMAdminCatalog_StartRouter                  19
#comfunc global ICOMAdminCatalog_Reserved1                    20
#comfunc global ICOMAdminCatalog_Reserved2                    21
#comfunc global ICOMAdminCatalog_InstallMultipleComponents    22 wstr,var,var
#comfunc global ICOMAdminCatalog_GetMultipleComponentsInfo    23 wstr,var,var,var,var,var
#comfunc global ICOMAdminCatalog_RefreshComponents            24
#comfunc global ICOMAdminCatalog_BackupREGDB                  25 wstr
#comfunc global ICOMAdminCatalog_RestoreREGDB                 26 wstr
#comfunc global ICOMAdminCatalog_QueryApplicationFile         27 wstr,var,var,var,var,var
#comfunc global ICOMAdminCatalog_StartApplication             28 wstr
#comfunc global ICOMAdminCatalog_ServiceCheck                 29 int,var
#comfunc global ICOMAdminCatalog_InstallMultipleEventClasses  30 wstr,var,var
#comfunc global ICOMAdminCatalog_InstallEventClass            31 wstr,wstr,wstr,wstr
#comfunc global ICOMAdminCatalog_GetEventClassesForIID        32 wstr,var,var,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。