2013-01-11 10 views
0

직접 쇼 샘플 ezrgb24를 사용하고 개인 인터페이스를 노출하려고합니다. iez.h 파일에서 이 DLL을 구축 한 후 아래 코드C++ directshow filter 개인 인터페이스

DEFINE_GUID(IID_IIPEffect, 
0xfd5010a3, 0x8ebe, 0x11ce, 0x81, 0x83, 0x00, 0xaa, 0x00, 0x57, 0x7d, 0xa1); 

DECLARE_INTERFACE_(IIPEffect, IUnknown) 
{ 
    STDMETHOD(get_IPEffect) (THIS_ 
       int *effectNum,   // The current effect 
       REFTIME *StartTime,  // Start time of effect 
       REFTIME *Length   // length of effect 
      ) PURE; 

    STDMETHOD(put_IPEffect) (THIS_ 
       int effectNum,   // Change to this effect 
       REFTIME StartTime,  // Start time of effect 
       REFTIME Length   // Length of effect 
      ) PURE; 
}; 

를 가지며, 난을 cmd 창을 사용하여 등록. 프로젝트에서 get_IPEffect() 또는 put_IPEffect()를 노출 시키거나 사용해야합니까?

나는 다음과 같이 코딩

하지만 내가 오류 " 'IIPEffect': 선언되지 않은 식별자"는 무엇입니까 IIPEffect에서

DEFINE_GUID(IID_IIPEffect, 
    0xfd5010a3, 0x8ebe, 0x11ce, 0x81, 0x83, 0x00, 0xaa, 0x00, 0x57, 0x7d, 0xa1); 
DEFINE_GUID(CLSID_ImageEffect, 
    0x8B498501, 0x1218, 0x11CF, 0xAD, 0xC4, 0x00, 0xA0, 0xD1, 0x00, 0x04, 0x1B); 

IBaseFilter *pImageEffect = NULL; 
chr = CoCreateInstance(CLSID_ImageEffect, NULL, CLSCTX_INPROC_SERVER, 
      IID_IBaseFilter, (void**) &pImageEffect); 
chr = pGraph->AddFilter(pImageEffect, L"RGB Resizer"); 


IIPEffect *pEZrgb24 = NULL; 
chr = pImageEffect->QueryInterface(IID_IIPEffect, (void **) &pEZrgb24); 

을했다 didnt한다 내가 그것을 어떻게 선언해야을?

+0

를하고있다' –

+0

@RomanR을 iez.h'. 오, 내 프로젝트에 iez.h 파일을 포함시켜야합니까? –

+1

스 니펫이 관련성이있는 것처럼 보이지만 실제 코드의 코드 스 니펫 # 2는 스 니펫 # 1을 볼 수 없으므로 오류가 발생합니다. –

답변

1

감사 RomarR 및 Wimmel, 내 프로젝트에 iez.h 포함 당신이 proprly 포함하지 않음을 엉망 잘