다음을 통해 공유


OleSetAutoConvert 함수(ole2.h)

해당 클래스의 개체가 로드될 때 다른 클래스로 자동 변환하기 위한 CLSID를 지정합니다.

구문

HRESULT OleSetAutoConvert(
  [in] REFCLSID clsidOld,
  [in] REFCLSID clsidNew
);

매개 변수

[in] clsidOld

변환할 개체 클래스의 CLSID입니다.

[in] clsidNew

clsidOld를 대체해야 하는 개체 클래스의 CLSID입니다. 이 새 CLSID는 clsidOld에 대한 레지스트리의 기존 자동 변환 정보를 대체합니다. 이 값이 CLSID_NULL 경우 clsidOld 에 대한 기존 자동 변환 정보가 레지스트리에서 제거됩니다.

반환 값

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

반환 코드 Description
S_OK
개체에 태그가 지정되었습니다.
REGDB_E_CLASSNOTREG
CLSID가 레지스트리에 제대로 등록되지 않았습니다.
REGDB_E_READREGDB
레지스트리에서 읽는 동안 오류가 발생했습니다.
REGDB_E_WRITEREGDB
레지스트리에 쓰는 동안 오류가 발생했습니다.
REGDB_E_KEYMISSING
레지스트리에서 키를 읽을 수 없습니다.

설명

OleSetAutoConvert는 시스템 레지스트리로 이동하고 clsidOld로 지정된 CLSID에서 AutoConvertTo 하위 키를 찾은 다음 clsidNew로 설정합니다. 이 함수는 clsidNew 에 대한 적절한 레지스트리 항목이 현재 존재하는지 여부를 확인하지 않습니다. 이러한 항목은 레지스트리에 CLSID 키의 하위 키로 표시됩니다.

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

예를 들어 이전 버전의 스프레드시트 애플리케이션으로 만든 스프레드시트를 새 버전으로 변환해야 할 수 있습니다. 이전 버전의 스프레드시트 개체에는 새 버전과 다른 CLSID가 있습니다. 자동으로 업데이트하려는 각 이전 버전에 대해 설치 프로그램에서 OleSetAutoConvert 를 호출하고 이전 버전의 CLSID와 새 버전의 CLSID를 지정합니다. 그런 다음 사용자가 이전 버전에서 개체를 로드할 때마다 자동으로 업데이트됩니다. 개체의 자동 변환을 지원하려면 변환을 지원하는 서버가 이전 버전의 서버 형식인 개체를 수동으로 변환할 수 있도록 준비해야 합니다. 자동 변환은 이 수동 변환 지원에 내부적으로 의존합니다.

원하는 AutoConvertTo 값을 설정하기 전에 설치 프로그램은 OleSetAutoConvert 를 호출하여 새 클래스를 clsidOld 매개 변수로 지정하고 clsidNew 매개 변수를 CLSID_NULL 설정하여 새 클래스에 대한 기존 변환을 제거해야 합니다.

요구 사항

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

추가 정보

AutoConvertTo

OleDoAutoConvert

OleGetAutoConvert