다음을 통해 공유


OleDoAutoConvert 함수(ole2.h)

레지스트리에서 해당 개체 클래스에 대한 자동 변환이 설정된 경우 개체를 새 클래스로 자동으로 변환합니다.

구문

HRESULT OleDoAutoConvert(
  [in]  LPSTORAGE pStg,
  [out] LPCLSID   pClsidNew
);

매개 변수

[in] pStg

변환할 스토리지 개체의 IStorage 인터페이스에 대한 포인터입니다.

[out] pClsidNew

변환되는 개체에 대한 새 CLSID에 대한 포인터입니다. 자동 변환이 없으면 원래 클래스와 같을 수 있습니다.

반환 값

이 함수는 다음 값뿐만 아니라 E_INVALIDARG, E_OUTOFMEMORY 및 E_UNEXPECTED 표준 반환 값을 반환할 수 있습니다.

반환 코드 Description
S_OK
변환이 필요하지 않거나 변환이 성공적으로 완료되었습니다.
REGDB_E_KEYMISSING
함수는 레지스트리에서 키를 읽을 수 없습니다.
 

이 함수는 OleGetAutoConvert 함수에서 반환한 오류 값을 반환할 수도 있습니다. 스토리지 및 스트림 개체에 액세스할 때 가능한 오류 는 IStorage::OpenStorageIStorage::OpenStream 메서드를 참조하세요. 기존 CLSID를 확인할 수 없거나 스토리지 개체를 새 정보로 업데이트할 수 없는 경우 다른 오류 반환 값은 IStream 인터페이스를 참조하세요.

설명

OleDoAutoConvertOleSetAutoConvert 함수에 의해 레지스트리에서 자동 변환을 이전에 지정한 경우 개체를 자동으로 변환합니다. 개체 변환은 개체가 새 CLSID와 영구적으로 연결됨을 의미합니다. 자동 변환은 일반적으로 새 버전의 개체 애플리케이션에 대한 설치 프로그램에 의해 지정되므로 이전 버전에서 만든 개체를 자동으로 업데이트할 수 있습니다.

OleDoAutoConvert가 호출될 때 스토리지 개체가 언로드된 상태여야 합니다.

개체 변환을 지원하는 컨테이너 애플리케이션은 개체를 로드할 때마다 OleDoAutoConvert 를 호출해야 합니다. 컨테이너가 OleLoad 도우미 함수를 사용하는 경우 OleLoad가 내부적으로 호출하기 때문에 OleDoAutoConvert를 명시적으로 호출할 필요가 없습니다.

OleDoAutoConvert 는 먼저 변환이 필요하지 않은 경우 S_OK 반환하는 OleGetAutoConvert 함수를 호출하여 변환이 필요한지 여부를 결정합니다. 개체에 변환이 필요한 경우 OleDoAutoConvert 는 새 개체 애플리케이션을 활성화하여 스토리지 개체를 수정하고 변환합니다. 새 개체 애플리케이션은 기존 데이터 형식을 읽지만 개체 애플리케이션에 대한 새 네이티브 형식으로 개체를 저장합니다.

자동으로 변환할 개체가 OLE 1 개체인 경우 ItemName 문자열은 "\1Ole10ItemName"이라는 스트림에 저장됩니다. 이 스트림이 없으면 개체의 항목 이름은 NULL입니다.

요구 사항

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

추가 정보

OleGetAutoConvert

OleSetAutoConvert