DSOfile otra vez

06/04/2005 - 13:37 por Josemi Antelo | Informe spam
¡Hola !

Tengo una pregunta; ¿Por qué siendo Dsofile.dll un activex, que ademas
puedo verlo en visual basic (Proyecto->Referencias), no puedo añadirlo a mi
proyecto C++ (Project->Add to project->Components and control)?

Un millón de gracias

Atentamente

Josemi

Preguntas similare

Leer las respuestas

#1 Rodrigo Corral [MVP]
06/04/2005 - 14:53 | Informe spam
Por que es una libreria activex no un control activex.

En visual basic tampoco puedes añadirlo a la plantilla de componentes y
arrastralo a un formulario.


Un saludo
Rodrigo Corral González [MVP]

FAQ de microsoft.public.es.vc++
http://rcorral.mvps.org
Respuesta Responder a este mensaje
#2 Rodrigo Corral [MVP]
06/04/2005 - 17:52 | Informe spam
He escrito un pequeño ejemplo... espero que te sirva de ayuda

#include <iostream>
using namespace std;
#import "dsofile.dll" no_namespace
#include <conio.h>
int main()
{
OleInitialize(NULL);
try
{

const _bstr_t fileName = "doc.doc"; //Path to the document, set a valid one.

_OleDocumentPropertiesPtr docProperties(__uuidof(OleDocumentProperties));
docProperties->Open(fileName, VARIANT_TRUE,
dsoOptionOpenReadOnlyIfNoWriteAccess);
SummaryPropertiesPtr summaryProperties = docProperties->SummaryProperties;
cout << "Title: " << summaryProperties->Title << endl;
cout << "Author: " << summaryProperties->Author << endl;
cout << "Subject: " << summaryProperties->Subject << endl;
cout << "Company: " << summaryProperties->Company << endl;
cout << "Comments: " << summaryProperties->Comments << endl;

}
catch(_com_error &e)
{
cout << "There was an error." << endl;
}
cout << "Press any key to end..." << endl;
getch();
return 0;
}

Un saludo
Rodrigo Corral González [MVP]
FAQ de microsoft.public.es.vc++
http://rcorral.mvps.org
Respuesta Responder a este mensaje
#3 Josemi Antelo
07/04/2005 - 09:40 | Informe spam
¡Hola!, de nuevo

Me parece una buena solución, pero ... yo estoy empeñado en utilizar el
DSofile, que además suministra tengo todo el fuente (gracias a Microsoft),
como una dll implícita o simbólica (sin el "loadlibrary"), pero claro, si
esto es fácil hacerlo no lo es descubrir cuales son métodos y propiedades
que exporta ya que no se identifican con el esperado "dllexport". La
pregunta del millón es :-D ¿Cómo podría saber o identificar cuales son los
métodos y propiedades que exporta o dicho de otra forma, cuales son los
métodos y propiedades equivalentes que puedo ver en el Visual Basic?, por
cierto, ¿como es que en los fuentes del dsofile no aparecen los métodos que
puedo ver en el VB, es es debido que a la hora de exportar un método lo hace
indicando con que nombre? Ufff, vaya rollo.

Un millón de gracias, por todo

Atentamente

Josemi


"Rodrigo Corral [MVP]" escribió en el mensaje
news:
He escrito un pequeño ejemplo... espero que te sirva de ayuda

#include <iostream>
using namespace std;
#import "dsofile.dll" no_namespace
#include <conio.h>
int main()
{
OleInitialize(NULL);
try
{

const _bstr_t fileName = "doc.doc"; //Path to the document, set a valid
one.

_OleDocumentPropertiesPtr docProperties(__uuidof(OleDocumentProperties));
docProperties->Open(fileName, VARIANT_TRUE,
dsoOptionOpenReadOnlyIfNoWriteAccess);
SummaryPropertiesPtr summaryProperties = docProperties->SummaryProperties;
cout << "Title: " << summaryProperties->Title << endl;
cout << "Author: " << summaryProperties->Author << endl;
cout << "Subject: " << summaryProperties->Subject << endl;
cout << "Company: " << summaryProperties->Company << endl;
cout << "Comments: " << summaryProperties->Comments << endl;

}
catch(_com_error &e)
{
cout << "There was an error." << endl;
}
cout << "Press any key to end..." << endl;
getch();
return 0;
}

Un saludo
Rodrigo Corral González [MVP]
FAQ de microsoft.public.es.vc++
http://rcorral.mvps.org

Respuesta Responder a este mensaje
#4 Rodrigo Corral [MVP]
07/04/2005 - 12:03 | Informe spam
El ejemplo que te he pasado emplea DSOFile.dll Esta libreria exporta una
serie de objeto COM, no funciones. De hecho las unicas funciones que exporta
son las tipicas de una dll de COM DllCanUnloadNow,
DllGetClassObject, DllRegisterServer, DllUnregisterServer.

Por eso la unica manera de usarla es utilizando COM y la manera más facil de
utilizar COM desde C++ es el #import.


Un saludo
Rodrigo Corral González [MVP]

FAQ de microsoft.public.es.vc++
http://rcorral.mvps.org
Respuesta Responder a este mensaje
#5 Josemi Antelo
07/04/2005 - 13:27 | Informe spam
Reitero las gracias una vez mas.

¡Gracias!

Atentamente

Josemi

"Rodrigo Corral [MVP]" escribió en el mensaje
news:%
El ejemplo que te he pasado emplea DSOFile.dll Esta libreria exporta una
serie de objeto COM, no funciones. De hecho las unicas funciones que
exporta son las tipicas de una dll de COM DllCanUnloadNow,
DllGetClassObject, DllRegisterServer, DllUnregisterServer.

Por eso la unica manera de usarla es utilizando COM y la manera más facil
de utilizar COM desde C++ es el #import.


Un saludo
Rodrigo Corral González [MVP]

FAQ de microsoft.public.es.vc++
http://rcorral.mvps.org


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida