J'essaie d'écrire une simple automation MFC-Word pour économiser toutes les minutes. Je suivre cet article: http://www.codeproject.com/KB/office/MSOfficeAuto.aspxWord automation - SaveAs
Et c'est ce que Im essayant de mettre en œuvre, je suis nouveau COM Je pense donc il ici est le problème: mon VBA est généré par Word 2010:
ActiveDocument.SaveAs2 FileName:="1.docx", FileFormat:=wdFormatXMLDocument _
, LockComments:=False, Password:="", AddToRecentFiles:=True, _
WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _
SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _
False, CompatibilityMode:=14
Et mon code pour implémenter le code VBA ci-dessus:
{
COleVariant varName(L"b.docx");
COleVariant varFormat(L"wdFormatXMLDocument");
COleVariant varLockCmt((BYTE)0);
COleVariant varPass(L"");
COleVariant varReadOnly((BYTE)0);
COleVariant varEmbedFont((BYTE)0);
COleVariant varSaveNativePicFormat((BYTE)0);
COleVariant varForms((BYTE)0);
COleVariant varAOCE((BYTE)0);
VARIANT x;
x.vt = VT_I4;
x.lVal = 14;
COleVariant varCompability(&x);;
VARIANT result;
VariantInit(&result);
_hr=OLEMethod( DISPATCH_METHOD, &result, pDocApp, L"SaveAs2",10,
varName.Detach(),varFormat.Detach(),varLockCmt.Detach(),varPass.Detach(),varReadOnly.Detach(),
varEmbedFont.Detach(),varSaveNativePicFormat.Detach(),varForms.Detach(),varAOCE.Detach(),varCompability.Detach()
);
}
Je ne reçois aucune erreur de celui-ci, mais cela ne fonctionne pas.
Cela ne fonctionne pas, la chose la plus importante est "SaveAs2" ou "SaveAs" retour comme nom inconnu – nXqd
Cela signifie que vous envoyez la mauvaise interface. Êtes-vous sûr que pDocApp est un document? Je mettrai à jour ma réponse avec un code de test. – Recep