다음을 통해 공유


OleLoad 함수(ole2.h)

지정된 스토리지 개체 내에 중첩된 개체를 메모리에 로드합니다.

구문

HRESULT OleLoad(
  [in]  LPSTORAGE       pStg,
  [in]  REFIID          riid,
  [in]  LPOLECLIENTSITE pClientSite,
  [out] LPVOID          *ppvObj
);

매개 변수

[in] pStg

지정된 개체를 로드할 스토리지 개체의 IStorage 인터페이스에 대한 포인터입니다.

[in] riid

호출자가 로드된 후 개체와 통신하는 데 사용하려는 인터페이스의 식별자에 대한 참조입니다.

[in] pClientSite

로드 중인 클라이언트 사이트 개체의 IOleClientSite 인터페이스에 대한 포인터입니다.

[out] ppvObj

riid에서 요청된 인터페이스 포인터를 수신하는 포인터 변수의 주소입니다. 반환이 성공하면 *ppvObj 는 새로 로드된 개체에 대해 요청된 인터페이스 포인터를 포함합니다.

반환 값

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

반환 코드 설명
E_NOINTERFACE
개체는 지정된 인터페이스를 지원하지 않습니다.
 

또한 이 함수는 IPersistStorage::Load 메서드에서 반환한 오류 값을 반환할 수 있습니다.

설명

OLE 컨테이너는 이 함수를 호출하여 개체를 메모리에 로드합니다. OleLoad 함수를 호출할 때 컨테이너 애플리케이션은 중첩된 개체가 저장된 열린 스토리지 개체에 대한 포인터를 전달합니다. 일반적으로 로드할 중첩된 개체는 컨테이너의 루트 스토리지 개체에 대한 자식 스토리지 개체입니다. 개체와 함께 저장된 OLE 정보를 사용하여 개체 처리기(일반적으로 기본 처리기)는 개체를 로드하려고 시도합니다. OleLoad 함수가 완료되면 개체 애플리케이션이 실행되지 않는 로드된 상태라고 합니다.

일부 애플리케이션은 개체의 모든 네이티브 데이터를 로드합니다. 컨테이너는 필요한 경우까지 포함된 개체의 로드를 지연하는 경우가 많습니다. 예를 들어 개체를 보기로 스크롤하여 그려야 할 때까지 로드할 필요가 없습니다.

OleLoad 함수는 다음 단계를 수행합니다.

  • 필요한 경우 개체의 자동 변환을 수행합니다( OleDoAutoConvert 함수 참조).
  • IStorage::Stat 메서드를 호출하여 열려 있는 스토리지 개체에서 CLSID를 가져옵니다.
  • CoCreateInstance 함수를 호출하여 처리기의 instance 만듭니다. 처리기 코드를 사용할 수 없는 경우 기본 처리기가 사용됩니다( OleCreateDefaultHandler 함수 참조).
  • pClientSite 매개 변수를 사용하여 IOleObject::SetClientSite 메서드를 호출하여 해당 클라이언트 사이트의 개체를 알릴 수 있습니다.
  • IPersistStorage 인터페이스에 대해 QueryInterface 메서드를 호출합니다. 성공하면 개체에 대해 IPersistStorage::Load 메서드가 호출됩니다.
  • riid 매개 변수로 식별된 인터페이스를 쿼리하고 반환합니다.

요구 사항

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