Problemas construyendo un Add-In

calgonit
27 de Febrero del 2003
Necesito saber como crear un objeto de la clase CComands, creada por el Wizzard de Visual C++ en otra clase, ya que necesito acceder al documento activo (avierto) por el Visual Studio (el ".cpp").

Adjunto el codigo que funciona para hacer esto (solo funciona en la propia clase CComands):

//Obtenemos el fichero actualmente abierto (normalmente es al que pertenece el metodo)
CComPtr<IDispatch> pActiveDocumentDisp;
m_pApplication->get_ActiveDocument (&pActiveDocumentDisp);
AfxMessageBox("seis");
CComQIPtr<ITextDocument, &IID_ITextDocument> pActiveDocument(pActiveDocumentDisp);
AfxMessageBox("siete");
if (pActiveDocument) {
AfxMessageBox("ocho");
BSTR bstr;
HRESULT hr = pActiveDocument->get_FullName (&bstr);
AfxMessageBox("nueve");
if (FAILED (hr)) {
::MessageBox (NULL, "Error al obtener el path del documento activo",
"WinDiff Addin", MB_OK | MB_ICONWARNING);
}
else {
AfxMessageBox("diez");
strFullPath = CString(bstr); // Path and filename
// Hacer algo con el path
AfxMessageBox(strFullPath);
}
}
else {
// No existe ningun fichero abierto
}

GRACIAS A TODOS.