다음을 통해 공유


OleInitialize 함수(ole2.h)

현재 아파트에서 COM 라이브러리를 초기화하고, 동시성 모델을 STA(단일 스레드 아파트)로 식별하고, 아래 설명 섹션에 설명된 추가 기능을 사용하도록 설정합니다. 애플리케이션은 CoGetMalloc 및 메모리 할당 함수 이외의 COM 라이브러리 함수를 호출하기 전에 COM 라이브러리를 초기화해야 합니다.

구문

HRESULT OleInitialize(
  [in] LPVOID pvReserved
);

매개 변수

[in] pvReserved

이 매개 변수는 예약되어 있으며 NULL이어야 합니다.

반환 값

이 함수는 성공에 대한 S_OK 반환합니다. 다른 가능한 값은 다음과 같습니다.

반환 코드 설명
S_FALSE
COM 라이브러리는 이 아파트에서 이미 초기화되어 있습니다.
OLE_E_WRONGCOMPOBJ
컴퓨터의 COMPOBJ.DLL 및 OLE2.DLL 버전은 서로 호환되지 않습니다.
RPC_E_CHANGED_MODE
CoInitializeEx에 대한 이전 호출은 이 아파트의 동시성 모델을 MTA(다중 스레드 아파트)로 지정했습니다. 이것은 또한 중립 스레드 아파트에서 단일 스레드 아파트로의 변경이 발생했음을 의미 할 수 있습니다.

설명

다음 기능을 사용하는 애플리케이션은 COM 라이브러리의 다른 함수를 호출하기 전에 OleInitialize 를 호출해야 합니다.

  • 클립보드
  • 끌어서 놓기
  • OLE(개체 연결 및 포함)
  • 현재 위치 활성화
OleInitializeCoInitializeEx 를 내부적으로 호출하여 현재 아파트에서 COM 라이브러리를 초기화합니다. OLE 작업은 스레드로부터 안전하지 않으므로 OleInitialize 는 동시성 모델을 단일 스레드 아파트로 지정합니다.

아파트의 동시성 모델이 설정되면 변경할 수 없습니다. 이전에 다중 스레드로 초기화된 아파트에서 OleInitialize에 대한 호출이 실패하고 RPC_E_CHANGED_MODE 반환됩니다.

표준 할당자 및 메모리 할당 함수에 대한 포인터를 얻으려면 CoGetMalloc을 제외한 라이브러리 함수를 호출하기 전에 아파트에서 COM 라이브러리를 초기화해야 합니다.

일반적으로 COM 라이브러리는 아파트에서 한 번만 초기화됩니다. 후속 호출은 아파트의 동시성 모델을 변경하려고 시도하지 않고 S_FALSE 반환하는 한 성공합니다. COM 라이브러리를 정상적으로 닫려면 S_FALSE 반환하는 OleInitialize를 포함하여 OleInitialize에 대한 각 성공적인 호출은 OleUninitialize에 대한 해당 호출에 의해 균형을 유지해야 합니다.

In Process 서버가 로드되거나 언로드되는 순서를 제어할 수 있는 방법이 없으므로 DllMain 함수에서 OleInitialize 또는 OleUninitialize를 호출하지 마세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 ole2.h
라이브러리 Ole32.lib
DLL Ole32.dll
API 세트 ext-ms-win-com-ole32-l1-1-0(Windows 8 도입)

추가 정보

CoInitializeEx

OleInitialize

OleUninitialize