http://delphi.borlandforum.com/impboard/impboard.dll?action=read&db=del_tip&no=231
이거라도 함 참고해보세요.
장성호 님이 쓰신 글 :
: WebBroswer 이미지를 그대로 TImage에 draw하려고 합니다.
:
: Delphi에서 TWebBroswer 나 TEmbeddedWB 로는 잘 되던데..
: C++Builder에서 TCppWebBrowser로는 잘 안되네요
:
:
:
: //델파이 소스
: procedure GenerateBitmapfromBrowser2(browser: iWebBrowser2; srcHeight: integer; srcWidth: integer; Image: TImage);
: var
: sourceDrawRect : TRect;
: aViewObject : IViewObject;
: begin
: try
:
: aViewObject := browser as IViewObject;
:
: if aViewObject=nil then
: Exit;
:
: Image.Picture.Bitmap.Width:=srcWidth;
: Image.Picture.Bitmap.Height:=srcHeight;
: sourceDrawRect := Rect(0, 0, srcWidth, srcHeight);
:
: OleCheck(aViewObject.Draw(DVASPECT_CONTENT, 1, nil, nil,
: Form1.Handle,
: Image.Picture.Bitmap.Canvas.Handle,
: @sourceDrawRect, nil, nil, 0));
:
: except
: // error handler code
: end; { try }
: end;
:
: procedure TForm1.CopyBroswerImage();
: begin
:
: GenerateBitmapfromBrowser2(EmbeddedWB1.ControlInterface,EmbeddedWB1.Height, EmbeddedWB1.Width,Image1);
: Image1.Repaint;
:
: end;
: //----------------------------------------------------------
: //C++Builder소스
:
: void __fastcall GenerateBitmapfromBrowser2(IWebBrowser2 *browser, int srcHeight,int srcWidth,TImage *Image)
: {
:
: IViewObject *ViewObject=(IViewObject *)browser;
: TRect rc=Rect(0,0,srcWidth, srcHeight);
:
: if(ViewObject==NULL)return;
:
: Image->Picture->Bitmap->Width=srcWidth;
: Image->Picture->Bitmap->Height=srcHeight;
: OleCheck(ViewObject->Draw(DVASPECT_CONTENT, 1, NULL, NULL, Form1->Handle, Image->Picture->Bitmap->Canvas->Handle,(const _RECTL *)&rc, NULL,NULL, 0));
: }
:
:
: void __fastcall TForm1::Button3Click(TObject *Sender)
: {
: GenerateBitmapfromBrowser2(CppWebBrowser1->ControlInterface,CppWebBrowser1->Height, CppWebBrowser1->Width,Image1);
: Image1->Repaint();
: }
: //---------------------------------------------------------------------------
:
:
: 두소스의 차이를 보면...
:
: EmbeddedWB나 TWebBroswer의 ControlInterface 는 IWebBrowser2 인데
: TCppWebBrowser 의 ControlInterface 는 IWebBrowser2 가 아닌 IWebBrowser2 Disp 이네요
:
: COM에 대해서 잘 몰라서..
:
: TCppWebBrowser 에서는 IWebBrowser2 를 어떻게 가져오죠?