문제

Microsoft Unified Communications Client API와 관련된 프로젝트에서 작업하고 있습니다. uccapi.dll. CodeGear C ++ Builder 2010을 사용하고 있으며 Visual Studio가 아닙니다. REGSVR32와 함께 DLL을 등록하고 IT 라이브러리를 C ++ Builder 2010으로 가져 오면 UCCAPI_TLB- 및 UCCAPI_OCX 파일이 생성되었습니다. 이 새 프로젝트로 가져 오는 경우 MSDN 가이드 라인 Office Communication Server에 로그인 할 수있는 Office Communicator 클라이언트 만들기

이와 관련하여 두 가지 질문이 있습니다.

  • OCX를 통해 사용할 수있는 컴파운드에 액세스하는 올바른 방법은 무엇입니까?

지금까지는 다음과 같은 여러 가지 방법을 발견했습니다.

TCOMIUccPlatform plat;
plat = CoUccPlatform::Create();
.

IUccPlatformPtr im;
im = CreateComObject(CLSID_UccPlatform);
.

IUccPlatform* pIUccPlatform;
hr = CoCreateInstance(CLSID_UccPlatform, 
                      NULL, 
                      CLSCTX_INPROC_SERVER, 
                      __uuidof(IUccPlatform), 
                     (void**)&pIUccPlatform);
.

IUccPlatformPtr pIPlat;
pIPlat.CreateInstance(__uuidof(IUccPlatform));
.

3 명은 먼저 잘 작동하는 것처럼 보입니다. 후자는 내게 어설 션이 실패했습니다. intf!= 0 오류가 0 × 40000015 예외입니다. 세 가지 맨 위에있는 세 가지 맨 위로 사용하면 메소드에 액세스하고 플랫폼 인터페이스를 초기화 할 수 있습니다.

그러나 iucccontext , 또는 또는 Iuccuri 와 같은 다른 인터페이스와 같은 다른 인터페이스에 액세스 할 수있는 동일한 전술을 시도 할 때 _tlb.h 파일에 정의 된 CLSID, 첫 번째 두 경우에 "클래스 등록되지 않은"오류가 발생하거나 세 번째 경우에 HRESULT 오류가 발생합니다. 내 다음 질문에 나를 가져옵니다.

  • OLE-Viewer를 사용하여 모든 인터페이스가 있어야합니다. DLL을 등록 할 때 DLL의 모든 공동 창의 클래스가 등록되지 않은 이유는 무엇입니까? 그리고 그들이 비슷하게 행동하지 않는 이유는 무엇이 될 수 있습니까?

edit1에서 uccapilib_tlb.h :

// 
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : UccPlatform
// Interface: TCOMIUccPlatform
//
typedef TCoClassCreatorT<TCOMIUccPlatform, IUccPlatform, &CLSID_UccPlatform, &IID_IUccPlatform> CoUccPlatform;
// 
// COCLASS DEFAULT INTERFACE CREATOR
// CoClass  : UccUriManager
// Interface: TCOMIUccUriManager
// 
typedef TCoClassCreatorT<TCOMIUccUriManager, IUccUriManager, &CLSID_UccUriManager, &IID_IUccUriManager> CoUccUriManager;
.

도움이 되었습니까?

해결책

이 문제는 embarcadero "remarcadero forums 에서 자세히 논의됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top