OleUIPasteSpecialA 函式 (oledlg.h)

叫用標準 [貼上特殊] 對話框,讓用戶選取要貼上或貼上連結的剪貼簿物件格式。

語法

UINT OleUIPasteSpecialA(
  [in] LPOLEUIPASTESPECIALA unnamedParam1
);

參數

[in] unnamedParam1

OLEUIPASTESPECIAL 結構的指標。

傳回值

標準成功/錯誤定義

傳回碼 Description
OLEUI_FALSE
未知的失敗 (未使用) 。
OLEUI_OK
使用者按下 [確定] 按鈕。
OLEUI_SUCCESS
沒有錯誤,與OLEUI_OK相同。
OLEUI_CANCEL
使用者按下 [取消] 按鈕。
 

標準欄位驗證錯誤

傳回碼 Description
OLEUI_ERR_STANDARDMIN
所有對話框常見的錯誤位於範圍OLEUI_ERR_STANDARDMIN OLEUI_ERR_STANDARDMAX。 這個值可讓應用程式測試標準訊息,以便向用戶顯示錯誤訊息。
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 值無效。
 

初始化錯誤

傳回碼 Description
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 配置器的呼叫失敗。
 

函式特定錯誤

傳回碼 Description
OLEUI_ERR_STANDARDMAX
所有對話框常見的錯誤位於範圍OLEUI_ERR_STANDARDMIN OLEUI_ERR_STANDARDMAX。 這個值可讓應用程式測試標準訊息,以便向用戶顯示錯誤訊息。
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 中,其位移以位元組為單位的 Null 終止字串,是在要貼上之物件之 OBJECTDESCRIPTOR 結構的 dwSrcofCopy 成員中指定。 如果這個物件無法使用 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 標頭會將 OLEUIPASTESPECIAL 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例

規格需求

需求
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平台 Windows
標頭 oledlg.h
程式庫 OleDlg.lib
Dll OleDlg.dll

另請參閱

OLEUIPASTEFLAG