我获取网页源代码的语句,如下:
class TMyStringVisitor : public TCefBaseRefCountedOwn , public ICefStringVisitor
{
public:
void __fastcall Visit(const Uceftypes::ustring str);
void * __fastcall Wrap(void) {return TCefBaseRefCountedOwn::Wrap();}
bool __fastcall SameAs(void * aData) {return TCefBaseRefCountedOwn::SameAs(aData);}
bool __fastcall SameAs(const _di_ICefBaseRefCounted aBaseRefCounted) {return TCefBaseRefCountedOwn::SameAs(aBaseRefCounted);}
bool __fastcall HasOneRef(void) {return TCefBaseRefCountedOwn::HasOneRef();}
bool __fastcall HasAtLeastOneRef(void) {return TCefBaseRefCountedOwn::HasAtLeastOneRef();}
void __fastcall DestroyOtherRefs(void) {TCefBaseRefCountedOwn::DestroyOtherRefs();}
virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, __RPC__deref_out void __RPC_FAR *__RPC_FAR *ppvObject)
{return TCefBaseRefCountedOwn::QueryInterface(riid, ppvObject);}
virtual ULONG STDMETHODCALLTYPE AddRef( void) {return TCefBaseRefCountedOwn::_AddRef();}
virtual ULONG STDMETHODCALLTYPE Release( void) {return TCefBaseRefCountedOwn::_Release();}
// IMPLEMENT_REFCOUNTING(TMyStringVisitor); cef4delphi没有这宏定义
};
void __fastcall TMyStringVisitor::Visit(const Uceftypes::ustring str)
{FILE *fp;
AnsiString source = str;
fp = fopen((AnsiString(ExtractFilePath(Application->ExeName)) + "网页源代码.txt").c_str(), "w");
fwrite(source.c_str(), 1, source.Length(), fp);
fclose(fp);
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
_di_ICefStringVisitor myStringVisitor = new TMyStringVisitor;
Form1->Chromium1->Browser->MainFrame->GetSource(myStringVisitor);
// Form1->Chromium1->Browser->FocusedFrame->GetSource(myStringVisitor);
}
但调试跟踪没有执行Visit,请教一下哪里弄错了?