2013-01-04 1 views
0

Contexte: Windows 7, 5.x XLW, Microsoft Excel 2007, Visual Studio 2010, C++Quelle est la prochaine étape après #import lors de l'utilisation de Scripting.FileSystemObject en C++?

Compte tenu du peu de code suivant ...

#import "c:\windows\system32\scrrun.dll" raw_interfaces_only, \ 
raw_native_types, \ 
named_guids, \ 
rename("DeleteFile", "_DeleteFile"), \ 
rename("MoveFile","_MoveFile"), \ 
rename("CopyFile", "_CopyFile"), \ 
rename("GetFreeSpace", "_GetFreeSpace") 
using namespace Scripting; 

Comment puis-je instancier maintenant FileSystemObject et appel ses méthodes?

Répondre

1

Cela a fonctionné pour moi

std::wstring fileExists(std::wstring name) 
{ 
    VARIANT_BOOL b = 0; 
    ::CoInitialize(NULL); 
    { 
     CComPtr<IFileSystem> spFSO; 
     HRESULT hr = spFSO.CoCreateInstance(L"Scripting.FileSystemObject"); 
     if (SUCCEEDED(hr) && spFSO) 
     { 
      BSTR theName = SysAllocStringLen(name.data(), name.size()); 
      hr = spFSO->FileExists(theName, &b); 
     } 
    } 
    ::CoUninitialize(); 
    return (b == -1) ? L"Exists" : L"Doesn't exist"; 
} 

Qu'au moins m'a fait connecté à la fonctionnalité. Il y a toujours le bon choix pour la situation, mais cela dépasse la portée de l'affichage.

Questions connexes