次の方法で共有


OleUIPasteSpecialA 関数 (oledlg.h)

標準の [貼り付け] ダイアログ ボックスを呼び出し、貼り付けるか貼り付けてリンクするクリップボード オブジェクトの形式をユーザーが選択できるようにします。

構文

UINT OleUIPasteSpecialA(
  [in] LPOLEUIPASTESPECIALA unnamedParam1
);

パラメーター

[in] unnamedParam1

OLEUIPASTESPECIAL 構造体へのポインター。

戻り値

標準の成功/エラー定義

リターン コード 形容
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_SRCDATAOBJECTINVALID
OLEUIPASTESPECIAL の lpSrcDataObject メンバー 無効です。
OLEUI_IOERR_ARRPASTEENTRIESINVALID
OLEUIPASTESPECIAL の arrPasteEntries メンバー 無効です。
OLEUI_IOERR_ARRLINKTYPESINVALID
OLEUIPASTESPECIAL の arrLinkTypes メンバー 無効です。
OLEUI_PSERR_CLIPBOARDCHANGED
ダイアログ ボックスの表示中にクリップボードの内容が変更されました。
OLEUI_PSERR_GETCLIPBOAARDFAILED

lpSrcDataObj メンバー が正しくありません。

備考

[貼り付け] [特殊な] ダイアログ ボックスのデザインでは、ユーザーがオブジェクトへのリンクを許可する場合は、ユーザーがそのオブジェクトを埋め込むことも許可することを前提としています。 このため、OLEUIPASTEFLAG 列挙に関連付けられているOLEUIPASTE_LINKTYPE フラグのいずれかが設定されている場合は、[貼り付け] ダイアログ ボックスにデータ形式を表示するには、OLEUIPASTE_PASTE フラグも設定する必要があります。

Oledlg32.dllで実装されている標準の [形式の貼り付け] ダイアログ ボックスの [ソース] フィールドに表示されるテキストは、貼り付けるオブジェクトの OBJECTDESCRIPTOR 構造体の dwSrcofCopy メンバーにオフセットが指定されている null で終わる文字列です。 このオブジェクトに対して OBJECTDESCRIPTOR 構造体を使用できない場合、ダイアログ ボックスには、CF_LINKSOURCEDESCRIPTORに関連付けられている可能性のあるテキストが表示されます。 どちらの構造も使用できない場合は、ダイアログ ボックスでCF_FILENAMEが検索されます。 CF_FILENAMEが見つからない場合は、"不明なソース" という文字列がダイアログ ボックスに表示されます。

[オブジェクトの挿入] または [特殊な の貼り付け] ダイアログ ボックスから返された 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 バージョンを自動的に選択するエイリアスとして OLEUIPASTESPECIAL を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

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

関連項目

OLEUIPASTEFLAG の