OleUIInsertObjectW 関数 (oledlg.h)

標準の [ オブジェクトの挿入 ] ダイアログ ボックスを呼び出します。これにより、ユーザーはオブジェクトのソースとクラス名を選択できるほか、オブジェクトをそれ自体またはアイコンとして表示するオプションも選択できます。

構文

UINT OleUIInsertObjectW(
  [in] LPOLEUIINSERTOBJECTW unnamedParam1
);

パラメーター

[in] unnamedParam1

このダイアログ ボックスのインアウト OLEUIINSERTOBJECT 構造体へのポインター。

戻り値

標準の成功/エラー定義

リターン コード 説明
OLEUI_FALSE
不明なエラー (未使用)。
OLEUI_OK
ユーザーが [OK] ボタンを押しました。
OLEUI_SUCCESS
OLEUI_OKと同じエラーはありません。
OLEUI_CANCEL
ユーザーが [キャンセル] ボタンを押しました。
 

標準フィールドの検証エラー

リターン コード 説明
OLEUI_ERR_STANDARDMIN
すべてのダイアログ ボックスに共通するエラーは、OLEUI_ERR_STANDARDMAX OLEUI_ERR_STANDARDMIN範囲にあります。 この値を使用すると、ユーザーにエラー メッセージを表示するために、アプリケーションで標準メッセージをテストできます。
OLEUI_ERR_STRUCTURENULL
関数に渡された OLEUIXXX 構造体へのポインターが NULL でした。
OLEUI_ERR_STRUCTUREINVALID
OLEUIXXX 構造体への読み取りまたは書き込みアクセスに対するアクセス許可が不十分です。
OLEUI_ERR_CBSTRUCTINCORRECT
cbstruct 値が正しくありません。
OLEUI_ERR_HWNDOWNERINVALID
hWndOwner 値が無効です。
OLEUI_ERR_LPSZCAPTIONINVALID
lpszCaption 値が無効です。
OLEUI_ERR_LPFNHOOKINVALID
lpfnHook 値が無効です。
OLEUI_ERR_HINSTANCEINVALID
hInstance 値が無効です。
OLEUI_ERR_LPSZTEMPLATEINVALID
lpszTemplate 値が無効です。
OLEUI_ERR_HRESOURCEINVALID
hResource 値が無効です。
 

初期化エラー

リターン コード 説明
OLEUI_ERR_FINDTEMPLATEFAILURE
ダイアログ ボックス テンプレートが見つかりません。
OLEUI_ERR_LOADTEMPLATEFAILURE
ダイアログ ボックス テンプレートを読み込むことができません。
OLEUI_ERR_DIALOGFAILURE
ダイアログ ボックスの初期化に失敗しました。
OLEUI_ERR_LOCALMEMALLOC
LocalAlloc または標準の IMalloc アロケーターの呼び出しに失敗しました。
OLEUI_ERR_GLOBALMEMALLOC
GlobalAlloc または標準の IMalloc アロケーターの呼び出しに失敗しました。
OLEUI_ERR_LOADSTRING
ライブラリからローカライズされたリソースに対して LoadString を呼び出すことができません。
OLEUI_ERR_OLEMEMALLOC
標準 の IMalloc アロケーターの呼び出しに失敗しました。
 

関数固有のエラー

リターン コード 説明
OLEUI_ERR_STANDARDMAX
すべてのダイアログ ボックスに共通するエラーは、OLEUI_ERR_STANDARDMAX OLEUI_ERR_STANDARDMIN範囲にあります。 この値を使用すると、ユーザーにエラー メッセージを表示するために、アプリケーションで標準メッセージをテストできます。
OLEUI_IOERR_LPSZFILEINVALID
lpszFile 値が無効であるか、ユーザーに書き込みアクセス許可が不十分です。この lpszFile メンバーは、リンクまたは挿入されたファイルの名前を指します。
OLEUI_IOERR_PPVOBJINVALID
ppvOjb 値が無効です。 このメンバーは、オブジェクトのポインターが返される場所を指します。
OLEUI_IOERR_LPIOLECLIENTSITEINVALID
lpIOleClientSite 値が無効です。 このメンバーは、 オブジェクトのクライアント サイトを指します。
OLEUI_IOERR_LPISTORAGEINVALID
lpIStorage 値が無効です。 このメンバーは、 オブジェクトに使用されるストレージを指します。
OLEUI_IOERR_SCODEHASERROR
lpIOsc メンバーには、追加のエラー情報があります。
OLEUI_IOERR_LPCLSIDEXCLUDEINVALID
lpClsidExclude 値が無効です。 このメンバーには、除外する CLSID のリストが含まれています。
OLEUI_IOERR_CCHFILEINVALID
cchFile または lpszFile の値が無効です。 cchFile メンバーは、lpszFile バッファーのサイズを指定します。 lpszFile メンバーは、リンク先または挿入されたファイルの名前を指します。

注釈

OleUIInsertObject を使用すると、ユーザーは、ユーザーのシステムに登録されているオブジェクト アプリケーションを含むリスト ボックスから挿入するオブジェクトの種類を選択できます。 そのリスト ボックスを設定するために、 OleUIInsertObject は レジストリを走査し、次の条件を満たすすべてのオブジェクト サーバーを追加します。

  • レジストリ エントリに NotInsertable キーは含まれません。
  • レジストリ エントリには、OLE 1.0 スタイルの Protocol\\StdFileEditing\\Server キーが含まれています。
  • レジストリ エントリには、Insertable キーが含まれています。
  • オブジェクトの CLSID は、除外するオブジェクトの一覧に含まれません (OLEUIINSERTOBJECTlpClsidExclude メンバー)。
既定では、 OleUIInsertObject はオブジェクト サーバーを検証しませんが、IOF_VERIFYSERVEREXIST フラグが OLEUIINSERTOBJECT 構造体の dwFlags メンバーに含まれている場合、 OleUIInsertObject はサーバーが存在することを確認します。 存在しない場合、サーバーの オブジェクトは使用可能なオブジェクトの一覧に追加されません。 サーバーの検証は時間の長い操作であり、大きなパフォーマンス要因です。

[オブジェクトの挿入] または [特殊な貼り付け] ダイアログ ボックスから返された 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

こちらもご覧ください

OLEUIINSERTOBJECT

OpenFile