관리 메뉴

ㄴrㅎnㅂrㄹrㄱi

CoCreateInstance 본문

API 관련/Win32 API 함수

CoCreateInstance

님투 2007. 11. 8. 22:36
반응형

CoCreateInstance

지정되었다CLSID에 관련지을 수 있었던 클래스의1개의 미초기화 오브젝트를 작성합니다.로컬 시스템상에서1오브젝트를 작성하고 싶은 경우에 호출합니다.리모트 시스템상에서1개의 오브젝트를 작성하는 경우에는CoCreateInstanceEx함수를 호출합니다.1개의CLSID(을)를 기초로 복수의 오브젝트를 작성경우에는CoGetClassObject함수를 사용합니다.

STDAPI CoCreateInstance(
    REFCLSID  rclsid,     // 오브젝트의CLSID
    LPUNKNOWN pUnkOuter,  // 애그리게이트 오브젝트
    DWORD   dwClsContext, // 문맥
    REFIID  riid,         // 취득한다IID
    PVOID   *ppv          // 변수 주소
);

OLE32.DLL

인수

rclsid

오브젝트의 작성에 사용하는 데이터 및 코드에 관련지을 수 있고 있다CLSID(을)를 지정합니다.

pUnkOuter

오브젝트가 애그리게이트 오브젝트의 일부로서 작성하는 경우는 애그리게이트 오브젝트의 IUnknown인터페이스 (제어측IUnknown) 에의 포인터를 지정합니다.

0 (NULL) (을)를 지정하면, 오브젝트는 애그리게이트 오브젝트의 일부로서 작성되지 않습니다.

dwClsContext

새롭게 작성되는 오브젝트의 관리 코드를 실행하는 문맥을 지정합니다.이하의 값의 편성으로 지정합니다.

0x1 (CLSCTX_INPROC_SERVER)

이 클래스의 오브젝트를 작성 및 관리하는 코드는, 호출측과 같은 프로세스로 실행된다DLL입니다.

0x2 (CLSCTX_INPROC_HANDLER)

이 클래스의 오브젝트를 관리하는 코드는 프로세스내 핸들러입니다.이것은 클라이언트 프로세스내에서 실행된다DLL그리고, 클래스의 인스턴스가 리모트로 액세스 될 때에 이 클래스의 클라이언트 사이드 구조를 작성합니다.

0x4 (CLSCTX_LOCAL_SERVER)

이 클래스의 오브젝트를 작성 및 관리한다EXE코드는 같은 머신상에서 실행됩니다만, 다른 프로세스 공간에 로드 됩니다.

0x17 (CLSCTX_ALL)

상기의3개의 플래그를 모두 포함하고 있습니다.

riid

오브젝트와의 통신에 사용하는 인터페이스의 인터페이스ID (IID) 의 참조(주소)를 지정합니다.

ppv

riid파라미터로 요구된 인터페이스 포인터를 격납하기 위한 변수의 주소를 지정합니다.오브젝트의 인스턴스가 정상적으로 작성되면, 이 변수에 요구한 인터페이스 포인터가 격납됩니다.작성에 실패했을 경우는, 이 변수에0 (NULL) 하지만 격납됩니다.

반환값

0 (S_OK)
지정된 오브젝트 클래스의 인스턴스가 정상적으로 작성되었습니다.
0x80004002 (E_NOINTERFACE)
지정된 클래스에서는 요구된 인터페이스가 실장되고 있지 않습니다.
0x80040154 (REGDB_E_CLASSNOTREG)
지정된 클래스가 등록 데이타베이스에 등록되지 않은지,dwClsContext파라미터로 지정된 서버 타입이 등록되지 않은지, 레지스트리의 서버 타입치가 부정합니다.
0x80040110 (CLASS_E_NOAGGREGATION)
지정된 클래스는 애그리게이트 오브젝트의 일부로서 작성할 수 없습니다.

대응 정보

Windows 95 이후 / Windows NT 3.1 이후

반응형

'API 관련 > Win32 API 함수' 카테고리의 다른 글

CreateBitmap  (0) 2007.11.08
CombineRgn  (0) 2007.11.08
CoCreateGuid  (0) 2007.11.08
CloseHandle  (0) 2007.11.08
ClientToScreen  (0) 2007.11.08
Comments