Hello All,
I'm trying to use System.IO.FileStream(string, FileMode, FileAccess,
FileShare) in my CRH, but when I call CreateInstance_3 throught my AppDomain
pointer
the hr is equal 0x80131604. I think, this happen because the parameters
FileMode, FileAccess and FileShare are enums on .NET.
Can somebody help me?
BSTR asmName, typeName, fileName;
asmName = SysAllocString(L"mscorlib");
typeName = SysAllocString(L"System.IO.FileStream");
fileName = SysAllocString(L"c:\\csc\\hello.dll");
SAFEARRAY* pFileStreamCtor = SafeArrayCreateVector(VT_VARIANT, 0, 4);
VARIANT param[4];
for(int a = 0; a < 4; ++a)
VariantInit(¶m[a]);
param[0].vt = VT_BSTR;
param[0].bstrVal = fileName;
param[1].vt = VT_I4;
param[1].lVal = FileMode_Open;
param[2].vt = VT_I4;
param[2].lVal = FileAccess_Read;
param[3].vt = VT_I4;
param[3].lVal = FileShare_Read;
LONG index = 0;
hr = SafeArrayPutElement(pFileStreamCtor, &index, ¶m);
__FAILED(hr);
hr = pApp->CreateInstance_3(asmName, typeName, VARIANT_TRUE,
BindingFlags_Default, NULL, pFileStreamCtor, NULL, NULL, NULL, &pObjH);
__FAILED(hr); // TargetInvocationException uses the HRESULT
COR_E_TARGETINVOCATION which has the value 0x80131604.
//... CleanUp();
Thanks,
Fabio
You can read messages from the DOTNET archive, unsubscribe from DOTNET, or
subscribe to other DevelopMentor lists at http://discuss.develop.com.