Old thread, but I got a little more data on the function. The function actually has a REFIID as the first parameter. This apparently is a standard structure for C COM code. I'm not entirely sure why the win32com changes the REFIID to be a VT_RECORD. Does the following definition of the functions help at all (they are from the IDL file)
HRESULT GetInterface( [in] REFIID riid, [out, retval, iid_is(riid)] IUnknown** ppUnknown); should be same as: HRESULT GetInterface( [in] GUID* pGuid, [out, retval, iid_is(pGuid)] IUnknown** ppUnknown); On Mon, Feb 4, 2008 at 6:44 PM, Mark Hammond <[EMAIL PROTECTED]> wrote: > > guid = win32com.client.Record("GUID", some_ob) > > > I don't have the some_obj that allows me to build "GUID". > > It should be any object from the same typelib - almost certainly whatever > object you intend passing this record to. > > > VB.NET (GetType) and C++ (__uuid) both already know that a GUID is a > record. > > C++ doesn't know it is a COM record. A COM record is something quite > different to a C/C++ struct or from .NET types. A COM record is > specifically designed to be cross-language. > > > It seems the python CLSID is the same thing, but i don't know what to > call > > > to get a CLSID that is a com_record type. > > As I've explained, we are looking for the COM record definition you are > trying to use. A C++ struct definition for a GUID is *not* what you are > looking for - you are looking for the COM record definition of a GUID. I > see now that you simply copied me a C++ struct you found, which is not at > all useful in this context. > > To clarify: in a *typelib* you will find a struct definition that you are > trying to use. Finding a struct definition of the same name somewhere > else > is not suitable. > > > Am I understanding the win32com.client.Record call correctly? It needs > GUID to be defined by the > > COM right? > > Not "defined by COM", but "defined using COM" - the author of a typelib > must > have defined it somewhere. > > > Its odd b/c the GIUD (python's CLSID) is all over the COM definitions > its > just type > > VT_RECORD type that I'm not understanding how to convert to. > > Yes, I'm afraid you are confused. All existing GUID or CLSID definitions > you can find are useless - there is only 1 that is relevant, and that will > be defined in a typelib. > > I think the confusion is such that you need to find basic docs for the > object, so we can get back to square 1. > > Mark > >
_______________________________________________ python-win32 mailing list python-win32@python.org http://mail.python.org/mailman/listinfo/python-win32