다음을 통해 공유


OleUIInsertObjectA 함수(oledlg.h)

사용자가 개체 원본 및 클래스 이름뿐만 아니라 개체를 자체 또는 아이콘으로 표시하는 옵션을 선택할 수 있는 표준 개체 삽입 대화 상자를 호출합니다.

구문

UINT OleUIInsertObjectA(
  [in] LPOLEUIINSERTOBJECTA unnamedParam1
);

매개 변수

[in] unnamedParam1

이 대화 상자의 In-out OLEUIINSERTOBJECT 구조체에 대한 포인터입니다.

반환 값

표준 성공/오류 정의

반환 코드 설명
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_LPSZFILEINVALID
lpszFile 값이 잘못되었거나 사용자에게 쓰기 액세스 권한이 부족합니다. 이 lpszFile 멤버는 연결되거나 삽입된 파일의 이름을 가리킵니다.
OLEUI_IOERR_PPVOBJINVALID
ppvOjb 값이 잘못되었습니다. 이 멤버는 개체에 대한 포인터가 반환되는 위치를 가리킵니다.
OLEUI_IOERR_LPIOLECLIENTSITEINVALID
lpIOleClientSite 값이 잘못되었습니다. 이 멤버는 개체의 클라이언트 사이트를 가리킵니다.
OLEUI_IOERR_LPISTORAGEINVALID
lpIStorage 값이 잘못되었습니다. 이 멤버는 개체에 사용할 스토리지를 가리킵니다.
OLEUI_IOERR_SCODEHASERROR
lpIOsc 멤버에는 추가 오류 정보가 있습니다.
OLEUI_IOERR_LPCLSIDEXCLUDEINVALID
lpClsidExclude 값이 잘못되었습니다. 이 멤버에는 제외할 CLSID 목록이 포함되어 있습니다.
OLEUI_IOERR_CCHFILEINVALID
cchFile 또는 lpszFile 값이 잘못되었습니다. cchFile 멤버는 lpszFile 버퍼의 크기를 지정합니다. lpszFile 멤버는 연결되거나 삽입된 파일의 이름을 가리킵니다.

설명

OleUIInsertObject 를 사용하면 사용자가 사용자 시스템에 등록된 개체 애플리케이션이 포함된 목록 상자에서 삽입할 개체 유형을 선택할 수 있습니다. 해당 목록 상자를 채우기 위해 OleUIInsertObject 는 레지스트리를 트래버스하여 다음 조건을 충족하는 모든 개체 서버를 추가합니다.

  • 레지스트리 항목에는 NotInsertable 키가 포함되어 있지 않습니다.
  • 레지스트리 항목에는 OLE 1.0 스타일 Protocol\\StdFileEditing\\Server 키가 포함됩니다.
  • 레지스트리 항목에는 삽입 가능한 키가 포함됩니다.
  • 개체의 CLSID는 제외할 개체 목록에 포함되지 않습니다(OLEUIINSERTOBJECTlpClsidExclude 멤버).
기본적으로 OleUIInsertObject 는 개체 서버의 유효성을 검사하지 않지만 IOF_VERIFYSERVEREXIST 플래그가 OLEUIINSERTOBJECT 구조의 dwFlags 멤버에 포함된 경우 OleUIInsertObject 는 서버가 있는지 확인합니다. 이 개체가 없으면 서버의 개체가 사용 가능한 개체 목록에 추가되지 않습니다. 서버 유효성 검사는 시간이 많이 걸리는 작업이며 중요한 성능 요소입니다.

개체 삽입 또는 특수 붙여넣기 대화 상자에서 반환된 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 헤더는 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 OLEUIINSERTOBJECT를 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

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

추가 정보

OLEUIINSERTOBJECT

OpenFile