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
OLEUIPASTESPECIALlpSrcDataObject メンバーが無効です。
OLEUI_IOERR_ARRPASTEENTRIESINVALID
OLEUIPASTESPECIALarrPasteEntries メンバーが無効です。
OLEUI_IOERR_ARRLINKTYPESINVALID
OLEUIPASTESPECIALarrLinkTypes メンバーが無効です。
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 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー oledlg.h
Library OleDlg.lib
[DLL] OleDlg.dll

こちらもご覧ください

OLEUIPASTEFLAG