This can be a very stupid question.
Is it possible to debug COM-dll in VS2008, for which I do not have source code?
The reason I want to do this is to pass the array to the COM method, and I expect this array to be populated by the method.
However, the array is not populated. So I want to go to the COM method to see what happens. Is it possible?
Below is an example of the code I'm using:
Array binaryArray = Array.CreateInstance(typeof(sbyte), 896);
bool success = photo.GetBinaryData(binaryArray);
IDL for the method GetBinaryData:
[id(0x000000c9)]
HRESULT GetBinaryData(
[in] SAFEARRAY(char) buffer,
[out, retval] VARIANT_BOOL* retval);
A method GetBinaryDatais a COM method that I would like to log into.
EDIT: adding a Delphi script test that works
procedure TComTestForm.TestUserBtnClick(Sender: TObject);
var
nCnt :integer;
User :IUser;
Persona :IUserPersona;
ArrayBounds :TSafeArrayBound;
ArrayData :Pointer;
TagList :PSafeArray;
nSize :integer;
begin
User := Session.GetUser;
ArrayBounds.lLbound := 0;
ArrayBounds.cElements := 0;
TagList := SafeArrayCreate( varInteger, 1, ArrayBounds );
User.GetTags( TagList );
if SafeArrayAccessData( TagList, ArrayData ) = S_OK then
begin
nSize := TagList.rgsabound[0].cElements;
OutLine( '----Available Tags, ' + IntToStr(nSize) + ' tags' );
for nCnt := 0 to nSize - 1 do
begin
OutLine( IntToStr( IntegerArray(ArrayData)[nCnt] ) );
end;
OutLine ('----');
SafeArrayUnAccessData (TagList); SafeArrayDestroy (TagList); end;
end;