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;
}


Folken

Folken

Responder

Posts

09/03/2006

Folken

Ninguém


Responder

03/04/2006

Folken

É, parece que só a Microsoft usa isso...


Responder

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.


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar