OleUIInsertObjectW 関数 (oledlg.h)
標準の [ オブジェクトの挿入 ] ダイアログ ボックスを呼び出します。これにより、ユーザーはオブジェクトのソースとクラス名を選択できるほか、オブジェクトをそれ自体またはアイコンとして表示するオプションも選択できます。
構文
UINT OleUIInsertObjectW(
[in] LPOLEUIINSERTOBJECTW unnamedParam1
);
パラメーター
[in] unnamedParam1
このダイアログ ボックスのインアウト OLEUIINSERTOBJECT 構造体へのポインター。
戻り値
標準の成功/エラー定義
リターン コード | 説明 |
---|---|
|
不明なエラー (未使用)。 |
|
ユーザーが [OK] ボタンを押しました。 |
|
OLEUI_OKと同じエラーはありません。 |
|
ユーザーが [キャンセル] ボタンを押しました。 |
標準フィールドの検証エラー
リターン コード | 説明 |
---|---|
|
すべてのダイアログ ボックスに共通するエラーは、OLEUI_ERR_STANDARDMAX OLEUI_ERR_STANDARDMIN範囲にあります。 この値を使用すると、ユーザーにエラー メッセージを表示するために、アプリケーションで標準メッセージをテストできます。 |
|
関数に渡された OLEUIXXX 構造体へのポインターが NULL でした。 |
|
OLEUIXXX 構造体への読み取りまたは書き込みアクセスに対するアクセス許可が不十分です。 |
|
cbstruct 値が正しくありません。 |
|
hWndOwner 値が無効です。 |
|
lpszCaption 値が無効です。 |
|
lpfnHook 値が無効です。 |
|
hInstance 値が無効です。 |
|
lpszTemplate 値が無効です。 |
|
hResource 値が無効です。 |
初期化エラー
リターン コード | 説明 |
---|---|
|
ダイアログ ボックス テンプレートが見つかりません。 |
|
ダイアログ ボックス テンプレートを読み込むことができません。 |
|
ダイアログ ボックスの初期化に失敗しました。 |
|
LocalAlloc または標準の IMalloc アロケーターの呼び出しに失敗しました。 |
|
GlobalAlloc または標準の IMalloc アロケーターの呼び出しに失敗しました。 |
|
ライブラリからローカライズされたリソースに対して LoadString を呼び出すことができません。 |
|
標準 の IMalloc アロケーターの呼び出しに失敗しました。 |
関数固有のエラー
リターン コード | 説明 |
---|---|
|
すべてのダイアログ ボックスに共通するエラーは、OLEUI_ERR_STANDARDMAX OLEUI_ERR_STANDARDMIN範囲にあります。 この値を使用すると、ユーザーにエラー メッセージを表示するために、アプリケーションで標準メッセージをテストできます。 |
|
lpszFile 値が無効であるか、ユーザーに書き込みアクセス許可が不十分です。この lpszFile メンバーは、リンクまたは挿入されたファイルの名前を指します。 |
|
ppvOjb 値が無効です。 このメンバーは、オブジェクトのポインターが返される場所を指します。 |
|
lpIOleClientSite 値が無効です。 このメンバーは、 オブジェクトのクライアント サイトを指します。 |
|
lpIStorage 値が無効です。 このメンバーは、 オブジェクトに使用されるストレージを指します。 |
|
lpIO の sc メンバーには、追加のエラー情報があります。 |
|
lpClsidExclude 値が無効です。 このメンバーには、除外する CLSID のリストが含まれています。 |
|
cchFile または lpszFile の値が無効です。 cchFile メンバーは、lpszFile バッファーのサイズを指定します。 lpszFile メンバーは、リンク先または挿入されたファイルの名前を指します。 |
注釈
OleUIInsertObject を使用すると、ユーザーは、ユーザーのシステムに登録されているオブジェクト アプリケーションを含むリスト ボックスから挿入するオブジェクトの種類を選択できます。 そのリスト ボックスを設定するために、 OleUIInsertObject は レジストリを走査し、次の条件を満たすすべてのオブジェクト サーバーを追加します。
- レジストリ エントリに NotInsertable キーは含まれません。
- レジストリ エントリには、OLE 1.0 スタイルの Protocol\\StdFileEditing\\Server キーが含まれています。
- レジストリ エントリには、Insertable キーが含まれています。
- オブジェクトの CLSID は、除外するオブジェクトの一覧に含まれません (OLEUIINSERTOBJECT の lpClsidExclude メンバー)。
[オブジェクトの挿入] または [特殊な貼り付け] ダイアログ ボックスから返された HMETAFILEPICT を解放するには、次のように、ハンドルの添付メタファイルを削除します。
void FreeHmetafilepict(HMETAFILEPICT hmfp)
{
if (hmfp != NULL)
{
LPMETAFILEPICT pmfp = GlobalLock(hmfp);
DeleteMetaFile(pmfp->hMF);
GlobalUnlock(hmfp);
GlobalFree(hmfp);
}
else
{
// Handle null pointers here.
exit(0);
}
}
注意
oledlg.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして OLEUIINSERTOBJECT を定義します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | oledlg.h |
Library | OleDlg.lib |
[DLL] | OleDlg.dll |