This is the mail archive of the cygwin-patches@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: [PATCH]setup.exe mklink2.cc some function arguments need to be pointers


Update your win32api - And it should not need the patch,

Rob

> -----Original Message-----
> From: Michael A Chase [mailto:mchase@ix.netcom.com] 
> Sent: Friday, April 19, 2002 7:26 AM
> To: cygwin-patches@cygwin.com
> Subject: [PATCH]setup.exe mklink2.cc some function arguments 
> need to be pointers
> 
> 
> I couldn't get mklink2.cc to compile until I made the 
> attached changes.
> 
> It appears that CoCreateInstance() and 
> sl->lpVtbl->QueryInterface() are looking for pointers to 
> values in certain arguments instead of the values. Almost the 
> exact same code is used in src/winsup/cygwin/shortcut.c 
> except for the '&'s and it compiles cleanly.  Both functions 
> defined in mklink2.cc are declared extern "C" so the function 
> calls should work the same.
> 
> Here are the relevant pieces of code.
> 
> src/winsup/cinstall/mklink2.cc (make_link_2):
> 23:   CoCreateInstance (CLSID_ShellLink, NULL,
> 24:             CLSCTX_INPROC_SERVER, IID_IShellLink, (LPVOID 
> *) & sl);
> 25:   sl->lpVtbl->QueryInterface (sl, IID_IPersistFile, (void 
> **) &pf);
> 
> src/winsup/cygwin/shortcut.c (check_shortcut):
> 85:   hres = CoCreateInstance (&CLSID_ShellLink, NULL, 
> CLSCTX_INPROC_SERVER,
> 86:                &IID_IShellLink, (void **)&psl);
> 87:   if (FAILED (hres))
> 88:     goto close_it;
> 89:   /* Get a pointer to the IPersistFile interface. */
> 90:   hres = psl->lpVtbl->QueryInterface (psl, 
> &IID_IPersistFile, (void
> **)&ppf);
> 
> src/winsup/w32api/include/objidl.h:
> 640: EXTERN_C const IID IID_IPersistFile;
> 
> src/winsup/w32api/include/olectlid.h:
> 76: extern const GUID IID_IPersistFile;
> 
> src/winsup/w32api/include/shlguid.h:
> 13: extern const GUID CLSID_ShellLink;
> 28: extern const GUID IID_IShellLinkA;
> 68: #define IID_IShellLink  IID_IShellLinkA
> 
> src/winsup/w32api/lib/shell32.c:
>  6: DEFINE_SHLGUID(CLSID_ShellLink,0x00021401L,0,0);
> 21: DEFINE_SHLGUID(IID_IShellLinkA,0x000214EEL,0,0);
> 
> src/winsup/w32api/lib/uuid.c:
> 226: DEFINE_GUID(IID_IPersistFile,0x10b,0,0,0xc0,0,0,0,0,0,0,0x46);
> 
> --
> Mac :})
> ** I normally forward private questions to the appropriate 
> mail list. ** Ask Smarter: 
> http://www.tuxedo.org/~esr/faqs/smart-> questions.html
> Give a 
> hobbit a fish and he eats fish for a 
> day.
> Give a hobbit a ring and he eats fish for an age.
> 
> ChangeLog:
> 
> 2002-04-18  Michael A Chase <mchase@ix.netcom.com>
> 
>     * mklink2.cc (check_shortcut): Change arguments from 
> values to pointers.
> 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]