다음을 통해 공유


OleUIPasteSpecialW 함수(oledlg.h)

사용자가 붙여넣거나 붙여넣을 클립보드 개체의 형식을 선택할 수 있도록 표준 붙여넣기 특수 대화 상자를 호출합니다.

구문

UINT OleUIPasteSpecialW(
  [in] LPOLEUIPASTESPECIALW unnamedParam1
);

매개 변수

[in] unnamedParam1

OLEUIPASTESPECIAL 구조체에 대한 포인터입니다.

반환 값

표준 성공/오류 정의

반환 코드 설명
OLEUI_FALSE
알 수 없는 오류(사용되지 않음)
OLEUI_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 헤더는 OLEUIPASTESPECIAL을 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 oledlg.h
라이브러리 OleDlg.lib
DLL OleDlg.dll

추가 정보

OLEUIPASTEFLAG