That will work fine - if the client program including it has only one source file #including this header. If more than one file includes it, you'll get multiple definitions of the GUID and a linker error. If you don't like the INITGUID mess, another approach is to put your GUIDs in a static LIB which the client program can link to. -----Original Message----- From: Andrew Clark [mailto:andrewclarkis@xxxxxxxxxxx]=20 Sent: Monday, March 03, 2003 7:16 AM To: directmusic@xxxxxxxxxxxxx Subject: [directmusic] DMO COM question So, I finally have a working beta version of my low-pass 2 pole resonant filter DMO. It works in DMP, I can get its interfaces in code and tweak it=20 real-time, my audiopaths can reference it and load it, and it works on other=20 peoples' machines (only tested on XP so far)! Very soon I'll put it up for=20 dload so that I can get some feedback (and free testing) from you lot. But first, a quick question for the DirectX / COM code gurus: I'd like to distribute LPF_DMO.h with the .dll in order to expose the=20 interface to DirectMusic programmers. The DEFINE_GUID macro seems like a=20 bit of a pain for users though, what with all the Initguid.h and "can only=20 be initialized once" shenanigans. Is there any reason why I can't just provide this in my header instead? const GUID IID_ILPF_DMO =3D { 0xd841b97f, 0x5d83, 0x4d76, { 0x90, 0x13, 0xed, 0x83, 0x4, 0xa, 0xe2, 0xa3=20 } }; Thanks, Andrew http://www.silvershard.com