次の方法で共有


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 は、除外するオブジェクトのリストに含まれていません (OLEUIINSERTOBJECTのメンバー lpClsidExclude )。
既定では、oleUIInsertObject はオブジェクト サーバーを検証しませんが、OLEUIINSERTOBJECT 構造体の dwFlags メンバーにIOF_VERIFYSERVEREXIST フラグが含まれている場合、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 を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされる最小サーバー Windows 2000 Server [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー oledlg.h
ライブラリ OleDlg.lib
DLL OleDlg.dll

関連項目

OLEUIINSERTOBJECT を する

OpenFile