Instanciar ActiveX do IE.
08/03/2006
0
Olá senhores e senhoritas,
Primeiramente peço desculpas por estar aqui, pois não sei nada de C++. Porém tenho uma necessidade imensa de resolver uma questão que até agora, só o C++ pode resolver.
Sou programador Web(PHP, JavaScript, Action Script II) e a questão aborda exatamente este ultimo.
Construí um gerador de interfaces em Macromédia Flash + Zinc V2. Porém surguiu a necessidade de construir alguns relatórios e optei por usar o activex Print Template do Internet Explorer, assim ele se encarrega de paginar, pre-visualizar, etc. Porém o Zinc não tem poder para fazer isso. Pensei em fazer um .exe que recebece parametros em comando de linha para resolver a questão, tentei Delphi inicialmente, mas o IE não responde mais ao método execWB por uma questão de segurança, sobrando apenas o C++ como recurso para instanciar o activex.
O activex faz nada menos que pegar um arquivo .htm com uma programação javascript para construção do template e imprime um segundo .htm baseado na configuração do template.
O código que gerei seguindo a documentação da Microsoft, está gerando uma exceção: Expression p!=0, na atlbase.h na linha 474.
A variável argv[1] é um caminho do tipo ´C:\MyTemplate.htm´
Alguém sabe ajudar?
Obrigado!
//Documentação de referência da Microsoft
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnie55/html/beyondprintpreview.asp
---------------------------------------------Código----------------------------------------------------------------------
#include <stdio.h>
include <atlbase.h>
include ´ExDisp.h´
include ´mshtmcid.h´
include ´mshtmhst.h´
include ´oledb.h´
int main(int argc, char * argv[]) //
{
IOleCommandTarget* pCmdTarg;
CComPtr<IWebBrowser2> pWB;
pWB->QueryInterface(IID_IOleCommandTarget, (void**)&pCmdTarg);
VARIANT vTemplatePath;
V_VT(&vTemplatePath) = VT_BSTR;
CComVariant vPTPath = argv[1];
pCmdTarg->Exec(&CGID_MSHTML, IDM_PRINTPREVIEW, NULL, &vPTPath, NULL);
return 0;
}
Primeiramente peço desculpas por estar aqui, pois não sei nada de C++. Porém tenho uma necessidade imensa de resolver uma questão que até agora, só o C++ pode resolver.
Sou programador Web(PHP, JavaScript, Action Script II) e a questão aborda exatamente este ultimo.
Construí um gerador de interfaces em Macromédia Flash + Zinc V2. Porém surguiu a necessidade de construir alguns relatórios e optei por usar o activex Print Template do Internet Explorer, assim ele se encarrega de paginar, pre-visualizar, etc. Porém o Zinc não tem poder para fazer isso. Pensei em fazer um .exe que recebece parametros em comando de linha para resolver a questão, tentei Delphi inicialmente, mas o IE não responde mais ao método execWB por uma questão de segurança, sobrando apenas o C++ como recurso para instanciar o activex.
O activex faz nada menos que pegar um arquivo .htm com uma programação javascript para construção do template e imprime um segundo .htm baseado na configuração do template.
O código que gerei seguindo a documentação da Microsoft, está gerando uma exceção: Expression p!=0, na atlbase.h na linha 474.
A variável argv[1] é um caminho do tipo ´C:\MyTemplate.htm´
Alguém sabe ajudar?
Obrigado!
//Documentação de referência da Microsoft
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnie55/html/beyondprintpreview.asp
---------------------------------------------Código----------------------------------------------------------------------
#include <stdio.h>
include <atlbase.h>
include ´ExDisp.h´
include ´mshtmcid.h´
include ´mshtmhst.h´
include ´oledb.h´
int main(int argc, char * argv[]) //
{
IOleCommandTarget* pCmdTarg;
CComPtr<IWebBrowser2> pWB;
pWB->QueryInterface(IID_IOleCommandTarget, (void**)&pCmdTarg);
VARIANT vTemplatePath;
V_VT(&vTemplatePath) = VT_BSTR;
CComVariant vPTPath = argv[1];
pCmdTarg->Exec(&CGID_MSHTML, IDM_PRINTPREVIEW, NULL, &vPTPath, NULL);
return 0;
}
Folken
Curtir tópico
+ 0
Responder
Posts
05/04/2006
Folken
102 exibições do tópico e ninguém vai dar nem palpite?
Já varri a internet e o máximo que eu encontro são pessoas fazendo a mesma pergunta que eu.
Já varri a internet e o máximo que eu encontro são pessoas fazendo a mesma pergunta que eu.
Responder
Clique aqui para fazer login e interagir na Comunidade :)