OleUIPasteSpecialW 함수(oledlg.h)
사용자가 붙여넣거나 붙여넣을 클립보드 개체의 형식을 선택할 수 있도록 표준 붙여넣기 특수 대화 상자를 호출합니다.
구문
UINT OleUIPasteSpecialW(
[in] LPOLEUIPASTESPECIALW unnamedParam1
);
매개 변수
[in] unnamedParam1
OLEUIPASTESPECIAL 구조체에 대한 포인터입니다.
반환 값
표준 성공/오류 정의
반환 코드 | 설명 |
---|---|
|
알 수 없는 오류(사용되지 않음) |
|
사용자가 확인 단추를 눌렀습니다. |
|
OLEUI_OK 것과 같은 오류가 없습니다. |
|
사용자가 취소 단추를 눌렀습니다. |
표준 필드 유효성 검사 오류
반환 코드 | 설명 |
---|---|
|
모든 대화 상자에 공통적인 오류는 OLEUI_ERR_STANDARDMAX OLEUI_ERR_STANDARDMIN 범위에 있습니다. 이 값을 사용하면 애플리케이션에서 사용자에게 오류 메시지를 표시하기 위해 표준 메시지를 테스트할 수 있습니다. |
|
함수에 전달된 OLEUIXXX 구조체에 대한 포인터는 NULL입니다. |
|
OLEUIXXX 구조체에 대한 읽기 또는 쓰기 액세스 권한이 부족합니다. |
|
cbstruct 값이 잘못되었습니다. |
|
hWndOwner 값이 잘못되었습니다. |
|
lpszCaption 값이 잘못되었습니다. |
|
lpfnHook 값이 잘못되었습니다. |
|
hInstance 값이 잘못되었습니다. |
|
lpszTemplate 값이 잘못되었습니다. |
|
hResource 값이 잘못되었습니다. |
초기화 오류
반환 코드 | 설명 |
---|---|
|
대화 상자 템플릿을 찾을 수 없습니다. |
|
대화 상자 템플릿을 로드할 수 없습니다. |
|
대화 상자 초기화에 실패했습니다. |
|
LocalAlloc 또는 표준 IMalloc 할당자에 대한 호출이 실패했습니다. |
|
GlobalAlloc 또는 표준 IMalloc 할당자에 대한 호출이 실패했습니다. |
|
LoadString을 호출하여 라이브러리에서 지역화된 리소스를 가져올 수 없습니다. |
|
표준 IMalloc 할당자에 대한 호출이 실패했습니다. |
함수별 오류
반환 코드 | 설명 |
---|---|
|
모든 대화 상자에 공통적인 오류는 OLEUI_ERR_STANDARDMAX OLEUI_ERR_STANDARDMIN 범위에 있습니다. 이 값을 사용하면 애플리케이션에서 사용자에게 오류 메시지를 표시하기 위해 표준 메시지를 테스트할 수 있습니다. |
|
OLEUIPASTESPECIAL의 lpSrcDataObject 멤버가 잘못되었습니다. |
|
OLEUIPASTESPECIAL의 arrPasteEntries 멤버가 잘못되었습니다. |
|
OLEUIPASTESPECIAL의 arrLinkTypes 멤버가 잘못되었습니다. |
|
대화 상자가 표시되는 동안 클립보드 내용이 변경되었습니다. |
|
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 |