OleInitialize 함수(ole2.h)
현재 아파트에서 COM 라이브러리를 초기화하고, 동시성 모델을 STA(단일 스레드 아파트)로 식별하고, 아래 설명 섹션에 설명된 추가 기능을 사용하도록 설정합니다. 애플리케이션은 CoGetMalloc 및 메모리 할당 함수 이외의 COM 라이브러리 함수를 호출하기 전에 COM 라이브러리를 초기화해야 합니다.
구문
HRESULT OleInitialize(
[in] LPVOID pvReserved
);
매개 변수
[in] pvReserved
이 매개 변수는 예약되어 있으며 NULL이어야 합니다.
반환 값
이 함수는 성공에 대한 S_OK 반환합니다. 다른 가능한 값은 다음과 같습니다.
반환 코드 | 설명 |
---|---|
|
COM 라이브러리는 이 아파트에서 이미 초기화되어 있습니다. |
|
컴퓨터의 COMPOBJ.DLL 및 OLE2.DLL 버전은 서로 호환되지 않습니다. |
|
CoInitializeEx에 대한 이전 호출은 이 아파트의 동시성 모델을 MTA(다중 스레드 아파트)로 지정했습니다. 이것은 또한 중립 스레드 아파트에서 단일 스레드 아파트로의 변경이 발생했음을 의미 할 수 있습니다. |
설명
다음 기능을 사용하는 애플리케이션은 COM 라이브러리의 다른 함수를 호출하기 전에 OleInitialize 를 호출해야 합니다.
- 클립보드
- 끌어서 놓기
- OLE(개체 연결 및 포함)
- 현재 위치 활성화
아파트의 동시성 모델이 설정되면 변경할 수 없습니다. 이전에 다중 스레드로 초기화된 아파트에서 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 도입) |