A DLL Problem, (for gurus) - Geeks to Go Forums

Jump to content

Log in Register Register Malware removal guide How it works

A DLL Problem, (for gurus) How use COM dll from non-com c code

#1 scicatur

  • Group: Member
  • Posts: 16
  • Joined: 13-May 05

Posted 13 May 2005 - 03:04 AM

Hi,

I am new to dll programming and I have problem in using a dll library named litgen.dll which ships with litgen.idl . Now I don't have or intend to buy Microsoft Visual C++ or .NET environments. I prefer to use wingw (gcc variation for windows) for one because it's free of charge. Now I have code examples from microsoft to show me just how to use this dll ^properly^ but that's not going to work for me because those code examples are snobbish showoffs of almost every imaginable Microsoft specific programming tricks (like smart pointers, etc.etc.) not to mention that they require me to make litgen.h file using their midl.exe program which is shipped only to buying custormers with Visual C++ or .NET. What I wan't is just to use the functions in the dll the simplest way imaginable.

I guess luckily i got the .idl file with the dll, because it describes just what kinds of interfaces and functions there are inside the dll. But being new to the dll programming I just don't know how to gain access to them and use them. Also I am doing this with C *not C++* so if you could kindly give me example code how to use e.g. the Message() function described below.. (windows.h naturally available for my project)

Snippet from the .idl:

[object, uuid(6BC62165-B91C-4993-8002-5BC30B2D1196)]
interface ILITCallback : IUnknown {
	//+----------------------------------------------------------------------- 
	// 
	// Function: Message 
	// Description: receives a warning, error, or informational message
	// Parameters: iType - message type indicator:
	// 0: fatal error
	// 1: warning 
	// -1: informational message 
	// iMessageCode - see above 
	// pwszMessage - null-terminated message text 
	// Returns: S_OK 
	// Notes: 
	// 
	//------------------------------------------------------------------------
	HRESULT Message([in] int iType, [in] int iMessageCode,
    [in, string] const wchar_t* pwszMessage); 
};


#2 Bobbi Flekman

  • Group: Expert
  • Posts: 3,761
  • Joined: 13-January 05

Posted 13 May 2005 - 03:29 AM

I am not sure what you are asking, but you can create COM instances by using the function CoCreateInstance(). You would have to many more things to get it to work properly like initializing the Interface pointer, etc.

This is a link to a book that can teach you COM programming in plain C...

http://www.amazon.com/exec/obidos/tg/detai...=books&n=507846

Share this topic: