次の方法で共有


IOleObject::GetUserType メソッド (oleidl.h)

メニュー、リスト ボックス、ダイアログ ボックスなどのユーザー インターフェイス要素に表示するオブジェクトのユーザー型名を取得します。

構文

HRESULT GetUserType(
  [in]  DWORD    dwFormOfType,
  [out] LPOLESTR *pszUserType
);

パラメーター

[in] dwFormOfType

ユーザーに表示されるユーザーの種類の名前の形式。 指定できる値は、 USERCLASSTYPE 列挙から取得されます。

[out] pszUserType

ユーザー型文字列へのポインターを受け取る LPOLESTR ポインター変数のアドレス。 呼び出し元は、現在の IMalloc インスタンスを使用して pszUserType を解放する必要があります。 エラーが発生した場合、実装では pszUserTypeNULL に設定する必要があります。

戻り値

このメソッドは、成功したS_OKを返します。 その他の可能な戻り値は次のとおりです。

リターン コード 説明
OLE_S_USEREG
要求された情報を提供するために、レジストリを使用して既定のハンドラーの実装に委任します。

注釈

コンテナーは IOleObject::GetUserType を呼び出して、リスト ボックス、メニュー、ダイアログ ボックス内の埋め込みオブジェクトを通常のユーザー認識可能な名前で表します。 たとえば、"Word Document"、"Excel Chart"、"Paintbrush オブジェクト" などがあります。IOleObject::GetUserType によって返される情報は、IOleObject::GetUserClassID によって返されるバイナリ クラス識別子とユーザーが読み取り可能に相当します。

呼び出し元へのメモ

IOleObject::GetUserType の既定のハンドラーの実装では、オブジェクトのクラス識別子 (IOleObject::GetUserClassID によって返される pClsid パラメーター) と dwFormOfType パラメーターがレジストリのキーとして一緒に使用されます。 キーと正確に一致するエントリが見つかった場合は、そのエントリで指定されたユーザーの種類が返されます。 キーの CLSID 部分のみが一致する場合は、使用可能な最小番号のエントリ (通常は完全な名前) が使用されます。 CLSID が見つからない場合、または クラスに登録されているユーザー型がない場合は、オブジェクトのストレージで現在見つかったユーザー型が使用されます。

IOleObject::GetUserType から返される文字列をキャッシュしないでください。 代わりに、文字列が必要なたびに、このメソッドを呼び出します。 これにより、埋め込みオブジェクトが呼び出し元の知識なしである型から別の型に変換されている場合に、正しい結果が保証されます。 このメソッドの呼び出しは、既定のハンドラーによってレジストリを使用して実装されるため、安価です。

実装者へのメモ

既定のハンドラーによって提供される実装を使用するには、アプリケーションのこのメソッドの実装として OLE_S_USEREG を返します。 ユーザーの種類名が空の文字列の場合は、"不明なオブジェクト" というメッセージが返されます。

OLE ヘルパー関数 OleRegGetUserType を呼び出して、適切なユーザー型を返すことができます。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー oleidl.h

こちらもご覧ください

IOleObject

IOleObject::GetUserClassID

IOleObject::SetHostNames

OleRegGetUserType

ReadFmtUserTypeStg

USERCLASSTYPE