안녕하세요.. 
현재 DSPack 을 사용하여 공부중인데요. 파스칼 샘플 소스를 보면서, 빌더로 하고 있어요. 
잘 진행되다가 다음 파스칼 코드에서 막히네요... 
if VideoSourceFilter.FilterGraph <> nil then 
  begin 
    PinList := TPinList.Create(VideoSourceFilter as IBaseFilter); 
    if VideoFormats.ItemIndex <> -1 then 
      with (PinList.First as IAMStreamConfig) do 
        SetFormat(VideoMediaTypes.Items[VideoFormats.ItemIndex].AMMediaType^); 
    PinList.Free; 
  end; 
위 코드에서 
with (PinList.First as IAMStreamConfig) do 
이 부분을 C++ 로 변환하지 못하고 있어요. 
델파이 도움말을 보면 
with Sender as TButton do 
begin 
  Caption := '&Ok'; 
  OnClick := OkClick; 
end; 
와 같은 소스가 있는데, 이를 보고 다른 as 키워드 관련 파스칼은 빌더로 변환을 하였는데, 
with (PinList.First as IAMStreamConfig) do 
이 부분은 빌더로 변환시 계속 에러가 나오네요. 
((IAMStreamConfig *)PinList->First() )->SetFormat(VideoMediaTypes->Items->Item[VideoFormats->ItemIndex]->AMMediaType); 
위와 같이 하면 
E2031 Cannot cast from '_di_IPin' to 'IAMStreamConfig *' 
와 같은 에러가 나구요. 
((IAMStreamConfig )PinList->First() )->SetFormat(VideoMediaTypes->Items->Item[VideoFormats->ItemIndex]->AMMediaType); 
이렇게 하면 
E2352 Cannot create instance of abstract class 'IAMStreamConfig' 
와 같이 에러가 납니다. 
PinList->First 는 메쏘드라서 PinList->First() 로 했구요. 
혹시 해서 dynamic_cast , static_cast 등등을 해보아도 같은 에러가 발생하네요. 
델파이 코드는 에러 없이 정상 동작하구 있구요. 
as 에 관련된 다른 코드는 빌더로 변환해서 모두 정상 동작하는데, 위 코드만 위와 같은 에러가 발생하고 있어요. 
((IAMStreamConfig *)PinList->First() ) 
요 부분만 해결하면 될텐데...애구 넘 어려워요.. 
어떻게 변환해야 할까요? 꼭 좀 도와주세요... 
즐거운 추석 명절 보내시구요.. 
^^
			 
	
	
    
    
	
	
    
    
    
사용하지 못했습니다.
AS를 쓰면 편하지여 그러나 기본적인 것은 QureyInterface라는 넘 입니다.,
컴기반이라 기본적 모든 언어에서 지원하는 거져..
아마도 FirstFin을 얻으신다음 QureyInterface를 사용하여 IAMStreamConfig를 얻으 셔야 할듯 합니다.
답변이