Cómo obtener el código fuente de todas las páginas enmarcadas
BOOL CHtmlView:: GetFrameSource(IDispatch *pDisp, CStringamp; refString)
{
BOOL bRetVal = FALSO;
HRESULT hr = S_OK;
if ( pDisp != NULL )
{
CComQIPtrlt; = pDisp;
if ( pBrowser != NULL )
{
IDispatch *pDispDoc = NULL;
hr = pBrowser-gt ; get_Document(amp; pDispDoc);
if ( !( ( FAILED(hr) || !pDisp ) )
{
CComQIPtrlt; IPersistStreamInitgt; pStmInit = pDisp;
if ( !pStmInit )
{
HGLOBAL hMemory;
hMemory = GlobalAlloc(GMEM_MOVEABLE, 0);
if ( hMemory ! = NULL)
{
CComQIPtrlt; IPersistStreamInitgt; spPSI = pDispDoc;
{
CComPtrlt; IStreamgt; spStream;
if (SUCCEED(CreateStreamOnHGlobal(hMemory, TRUE, amp; spStream)))
{
spPSI-gt;Save(spStream, FALSE);
LPCTSTR pstr = (LPCTSTR) GlobalLock(hMemory);
if (pstr != NULL)
{
// La transmisión siempre es ANSI, pero CString
// El operador de asignación convertirá implícitamente.
bRetVal = VERDADERO
INTENTAR
{
refString = pstr;
CATCH_ALL(e)
{
bRetVal = FALSE
DELETE_EXCEPTION(e);
}
END_CATCH_ALL
if(bRetVal == FALSE)
GlobalFree(hMemory
else
GlobalUnlock(hMemory);
}
}
}
}
}
} p>
}
RELEASE(pDispDoc);
}
}
}
regresar bRetVal;
}
Pero solo se puede usar en DocumentComplete, porque no sé cómo obtener el pDisp, parece que solo en DocumentComplete puedo obtener el pDisp de cada página en el marco, por lo que no hay universalidad. Lo que quiero lograr es una función similar a GetSource, es decir, siempre que la página se haya descargado, el archivo fuente html del marco se puede obtener en cualquier momento. /p>