From 08aad6ac25d85e8eefb4d9ab4a427129343864f9 Mon Sep 17 00:00:00 2001
From: Alexandre Julliard <julliard@winehq.org>
Date: Thu, 3 Aug 2000 04:21:23 +0000
Subject: [PATCH] Fixed IShellLinkA/W definitions.

---
 dlls/shell32/shelllink.c     | 122 +++++++++++++++++------------------
 include/wine/obj_shelllink.h |  60 ++++++++---------
 2 files changed, 89 insertions(+), 93 deletions(-)

diff --git a/dlls/shell32/shelllink.c b/dlls/shell32/shelllink.c
index f78d25cf857..895d4937892 100644
--- a/dlls/shell32/shelllink.c
+++ b/dlls/shell32/shelllink.c
@@ -20,7 +20,7 @@
 #include "shell32_main.h"
 #include "shlguid.h"
 
-DEFAULT_DEBUG_CHANNEL(shell)
+DEFAULT_DEBUG_CHANNEL(shell);
 
 /* link file formats */
 
@@ -59,7 +59,7 @@ typedef struct _LINK_HEADER
 
 #include "poppack.h"
 
-static ICOM_VTABLE(IShellLink)		slvt;
+static ICOM_VTABLE(IShellLinkA)		slvt;
 static ICOM_VTABLE(IShellLinkW)		slvtw;
 static ICOM_VTABLE(IPersistFile)	pfvt;
 static ICOM_VTABLE(IPersistStream)	psvt;
@@ -68,7 +68,7 @@ static ICOM_VTABLE(IPersistStream)	psvt;
 
 typedef struct
 {
-	ICOM_VFIELD(IShellLink);
+	ICOM_VFIELD(IShellLinkA);
 	DWORD				ref;
 
 	ICOM_VTABLE(IShellLinkW)*	lpvtblw;
@@ -110,7 +110,7 @@ static HRESULT WINAPI IPersistFile_fnQueryInterface(
 
 	TRACE("(%p)\n",This);
 
-	return IShellLink_QueryInterface((IShellLink*)This, riid, ppvObj);
+	return IShellLinkA_QueryInterface((IShellLinkA*)This, riid, ppvObj);
 }
 
 /******************************************************************************
@@ -122,7 +122,7 @@ static ULONG WINAPI IPersistFile_fnAddRef(IPersistFile* iface)
 
 	TRACE("(%p)->(count=%lu)\n",This,This->ref);
 
-	return IShellLink_AddRef((IShellLink*)This);
+	return IShellLinkA_AddRef((IShellLinkA*)This);
 }
 /******************************************************************************
  * IPersistFile_Release
@@ -133,7 +133,7 @@ static ULONG WINAPI IPersistFile_fnRelease(IPersistFile* iface)
 
 	TRACE("(%p)->(count=%lu)\n",This,This->ref);
 
-	return IShellLink_Release((IShellLink*)This);
+	return IShellLinkA_Release((IShellLinkA*)This);
 }
 
 static HRESULT WINAPI IPersistFile_fnGetClassID(IPersistFile* iface, CLSID *pClassID)
@@ -218,7 +218,7 @@ static HRESULT WINAPI IPersistStream_fnQueryInterface(
 
 	TRACE("(%p)\n",This);
 
-	return IShellLink_QueryInterface((IShellLink*)This, riid, ppvoid);
+	return IShellLinkA_QueryInterface((IShellLinkA*)This, riid, ppvoid);
 }
 
 /************************************************************************
@@ -231,7 +231,7 @@ static ULONG WINAPI IPersistStream_fnRelease(
 
 	TRACE("(%p)\n",This);
 
-	return IShellLink_Release((IShellLink*)This);
+	return IShellLinkA_Release((IShellLinkA*)This);
 }
 
 /************************************************************************
@@ -244,7 +244,7 @@ static ULONG WINAPI IPersistStream_fnAddRef(
 
 	TRACE("(%p)\n",This);
 
-	return IShellLink_AddRef((IShellLink*)This);
+	return IShellLinkA_AddRef((IShellLinkA*)This);
 } 
 
 /************************************************************************
@@ -398,7 +398,7 @@ static ICOM_VTABLE(IPersistStream) psvt =
 /**************************************************************************
  *	  IShellLink_Constructor
  */
-IShellLink * IShellLink_Constructor(BOOL bUnicode) 
+IShellLinkA * IShellLink_Constructor(BOOL bUnicode) 
 {	IShellLinkImpl * sl;
 
 	sl = (IShellLinkImpl *)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IShellLinkImpl));
@@ -410,13 +410,13 @@ IShellLink * IShellLink_Constructor(BOOL bUnicode)
 	
 	TRACE("(%p)->()\n",sl);
 	shell32_ObjCount++;
-	return bUnicode ? (IShellLink *) &(sl->lpvtblw) : (IShellLink *)sl;
+	return bUnicode ? (IShellLinkA *) &(sl->lpvtblw) : (IShellLinkA *)sl;
 }
 
 /**************************************************************************
- *  IShellLink_QueryInterface
+ *  IShellLinkA_QueryInterface
  */
-static HRESULT WINAPI IShellLink_fnQueryInterface( IShellLink * iface, REFIID riid,  LPVOID *ppvObj)
+static HRESULT WINAPI IShellLinkA_fnQueryInterface( IShellLinkA * iface, REFIID riid,  LPVOID *ppvObj)
 {
 	ICOM_THIS(IShellLinkImpl, iface);
 	
@@ -425,7 +425,7 @@ static HRESULT WINAPI IShellLink_fnQueryInterface( IShellLink * iface, REFIID ri
 	*ppvObj = NULL;
 
 	if(IsEqualIID(riid, &IID_IUnknown) ||
-	   IsEqualIID(riid, &IID_IShellLink))
+	   IsEqualIID(riid, &IID_IShellLinkA))
 	{
 	  *ppvObj = This;
 	}   
@@ -452,9 +452,9 @@ static HRESULT WINAPI IShellLink_fnQueryInterface( IShellLink * iface, REFIID ri
 	return E_NOINTERFACE;
 }  
 /******************************************************************************
- * IShellLink_AddRef
+ * IShellLinkA_AddRef
  */
-static ULONG WINAPI IShellLink_fnAddRef(IShellLink * iface)
+static ULONG WINAPI IShellLinkA_fnAddRef(IShellLinkA * iface)
 {
 	ICOM_THIS(IShellLinkImpl, iface);
 	
@@ -464,9 +464,9 @@ static ULONG WINAPI IShellLink_fnAddRef(IShellLink * iface)
 	return ++(This->ref);
 }
 /******************************************************************************
- *	IShellLink_Release
+ *	IShellLinkA_Release
  */
-static ULONG WINAPI IShellLink_fnRelease(IShellLink * iface)
+static ULONG WINAPI IShellLinkA_fnRelease(IShellLinkA * iface)
 {
 	ICOM_THIS(IShellLinkImpl, iface);
 	
@@ -491,7 +491,7 @@ static ULONG WINAPI IShellLink_fnRelease(IShellLink * iface)
 	return This->ref;
 }
 
-static HRESULT WINAPI IShellLink_fnGetPath(IShellLink * iface, LPSTR pszFile,INT cchMaxPath, WIN32_FIND_DATAA *pfd, DWORD fFlags)
+static HRESULT WINAPI IShellLinkA_fnGetPath(IShellLinkA * iface, LPSTR pszFile,INT cchMaxPath, WIN32_FIND_DATAA *pfd, DWORD fFlags)
 {
 	ICOM_THIS(IShellLinkImpl, iface);
 	
@@ -504,7 +504,7 @@ static HRESULT WINAPI IShellLink_fnGetPath(IShellLink * iface, LPSTR pszFile,INT
 
 	return NOERROR;
 }
-static HRESULT WINAPI IShellLink_fnGetIDList(IShellLink * iface, LPITEMIDLIST * ppidl)
+static HRESULT WINAPI IShellLinkA_fnGetIDList(IShellLinkA * iface, LPITEMIDLIST * ppidl)
 {
 	ICOM_THIS(IShellLinkImpl, iface);
 	
@@ -513,7 +513,7 @@ static HRESULT WINAPI IShellLink_fnGetIDList(IShellLink * iface, LPITEMIDLIST *
 	*ppidl = ILClone(This->pPidl);
 	return NOERROR;
 }
-static HRESULT WINAPI IShellLink_fnSetIDList(IShellLink * iface, LPCITEMIDLIST pidl)
+static HRESULT WINAPI IShellLinkA_fnSetIDList(IShellLinkA * iface, LPCITEMIDLIST pidl)
 {
 	ICOM_THIS(IShellLinkImpl, iface);
 	
@@ -524,7 +524,7 @@ static HRESULT WINAPI IShellLink_fnSetIDList(IShellLink * iface, LPCITEMIDLIST p
 	This->pPidl = ILClone (pidl);
 	return NOERROR;
 }
-static HRESULT WINAPI IShellLink_fnGetDescription(IShellLink * iface, LPSTR pszName,INT cchMaxName)
+static HRESULT WINAPI IShellLinkA_fnGetDescription(IShellLinkA * iface, LPSTR pszName,INT cchMaxName)
 {
 	ICOM_THIS(IShellLinkImpl, iface);
 	
@@ -532,14 +532,14 @@ static HRESULT WINAPI IShellLink_fnGetDescription(IShellLink * iface, LPSTR pszN
 	lstrcpynA(pszName,"Description, FIXME",cchMaxName);
 	return NOERROR;
 }
-static HRESULT WINAPI IShellLink_fnSetDescription(IShellLink * iface, LPCSTR pszName)
+static HRESULT WINAPI IShellLinkA_fnSetDescription(IShellLinkA * iface, LPCSTR pszName)
 {
 	ICOM_THIS(IShellLinkImpl, iface);
 	
 	FIXME("(%p)->(desc=%s)\n",This, pszName);
 	return NOERROR;
 }
-static HRESULT WINAPI IShellLink_fnGetWorkingDirectory(IShellLink * iface, LPSTR pszDir,INT cchMaxPath)
+static HRESULT WINAPI IShellLinkA_fnGetWorkingDirectory(IShellLinkA * iface, LPSTR pszDir,INT cchMaxPath)
 {
 	ICOM_THIS(IShellLinkImpl, iface);
 	
@@ -547,14 +547,14 @@ static HRESULT WINAPI IShellLink_fnGetWorkingDirectory(IShellLink * iface, LPSTR
 	lstrcpynA(pszDir,"c:\\", cchMaxPath);
 	return NOERROR;
 }
-static HRESULT WINAPI IShellLink_fnSetWorkingDirectory(IShellLink * iface, LPCSTR pszDir)
+static HRESULT WINAPI IShellLinkA_fnSetWorkingDirectory(IShellLinkA * iface, LPCSTR pszDir)
 {
 	ICOM_THIS(IShellLinkImpl, iface);
 	
 	FIXME("(%p)->(dir=%s)\n",This, pszDir);
 	return NOERROR;
 }
-static HRESULT WINAPI IShellLink_fnGetArguments(IShellLink * iface, LPSTR pszArgs,INT cchMaxPath)
+static HRESULT WINAPI IShellLinkA_fnGetArguments(IShellLinkA * iface, LPSTR pszArgs,INT cchMaxPath)
 {
 	ICOM_THIS(IShellLinkImpl, iface);
 	
@@ -562,7 +562,7 @@ static HRESULT WINAPI IShellLink_fnGetArguments(IShellLink * iface, LPSTR pszArg
 	lstrcpynA(pszArgs, "", cchMaxPath);
 	return NOERROR;
 }
-static HRESULT WINAPI IShellLink_fnSetArguments(IShellLink * iface, LPCSTR pszArgs)
+static HRESULT WINAPI IShellLinkA_fnSetArguments(IShellLinkA * iface, LPCSTR pszArgs)
 {
 	ICOM_THIS(IShellLinkImpl, iface);
 	
@@ -570,7 +570,7 @@ static HRESULT WINAPI IShellLink_fnSetArguments(IShellLink * iface, LPCSTR pszAr
 
 	return NOERROR;
 }
-static HRESULT WINAPI IShellLink_fnGetHotkey(IShellLink * iface, WORD *pwHotkey)
+static HRESULT WINAPI IShellLinkA_fnGetHotkey(IShellLinkA * iface, WORD *pwHotkey)
 {
 	ICOM_THIS(IShellLinkImpl, iface);
 	
@@ -580,7 +580,7 @@ static HRESULT WINAPI IShellLink_fnGetHotkey(IShellLink * iface, WORD *pwHotkey)
 
 	return NOERROR;
 }
-static HRESULT WINAPI IShellLink_fnSetHotkey(IShellLink * iface, WORD wHotkey)
+static HRESULT WINAPI IShellLinkA_fnSetHotkey(IShellLinkA * iface, WORD wHotkey)
 {
 	ICOM_THIS(IShellLinkImpl, iface);
 	
@@ -590,7 +590,7 @@ static HRESULT WINAPI IShellLink_fnSetHotkey(IShellLink * iface, WORD wHotkey)
 
 	return NOERROR;
 }
-static HRESULT WINAPI IShellLink_fnGetShowCmd(IShellLink * iface, INT *piShowCmd)
+static HRESULT WINAPI IShellLinkA_fnGetShowCmd(IShellLinkA * iface, INT *piShowCmd)
 {
 	ICOM_THIS(IShellLinkImpl, iface);
 	
@@ -598,14 +598,14 @@ static HRESULT WINAPI IShellLink_fnGetShowCmd(IShellLink * iface, INT *piShowCmd
 	*piShowCmd=0;
 	return NOERROR;
 }
-static HRESULT WINAPI IShellLink_fnSetShowCmd(IShellLink * iface, INT iShowCmd)
+static HRESULT WINAPI IShellLinkA_fnSetShowCmd(IShellLinkA * iface, INT iShowCmd)
 {
 	ICOM_THIS(IShellLinkImpl, iface);
 	
 	FIXME("(%p)->(showcmd=%x)\n",This, iShowCmd);
 	return NOERROR;
 }
-static HRESULT WINAPI IShellLink_fnGetIconLocation(IShellLink * iface, LPSTR pszIconPath,INT cchIconPath,INT *piIcon)
+static HRESULT WINAPI IShellLinkA_fnGetIconLocation(IShellLinkA * iface, LPSTR pszIconPath,INT cchIconPath,INT *piIcon)
 {
 	ICOM_THIS(IShellLinkImpl, iface);
 	
@@ -614,28 +614,28 @@ static HRESULT WINAPI IShellLink_fnGetIconLocation(IShellLink * iface, LPSTR psz
 	*piIcon=1;
 	return NOERROR;
 }
-static HRESULT WINAPI IShellLink_fnSetIconLocation(IShellLink * iface, LPCSTR pszIconPath,INT iIcon)
+static HRESULT WINAPI IShellLinkA_fnSetIconLocation(IShellLinkA * iface, LPCSTR pszIconPath,INT iIcon)
 {
 	ICOM_THIS(IShellLinkImpl, iface);
 	
 	FIXME("(%p)->(path=%s iicon=%u)\n",This, pszIconPath, iIcon);
 	return NOERROR;
 }
-static HRESULT WINAPI IShellLink_fnSetRelativePath(IShellLink * iface, LPCSTR pszPathRel, DWORD dwReserved)
+static HRESULT WINAPI IShellLinkA_fnSetRelativePath(IShellLinkA * iface, LPCSTR pszPathRel, DWORD dwReserved)
 {
 	ICOM_THIS(IShellLinkImpl, iface);
 	
 	FIXME("(%p)->(path=%s %lx)\n",This, pszPathRel, dwReserved);
 	return NOERROR;
 }
-static HRESULT WINAPI IShellLink_fnResolve(IShellLink * iface, HWND hwnd, DWORD fFlags)
+static HRESULT WINAPI IShellLinkA_fnResolve(IShellLinkA * iface, HWND hwnd, DWORD fFlags)
 {
 	ICOM_THIS(IShellLinkImpl, iface);
 	
 	FIXME("(%p)->(hwnd=%x flags=%lx)\n",This, hwnd, fFlags);
 	return NOERROR;
 }
-static HRESULT WINAPI IShellLink_fnSetPath(IShellLink * iface, LPCSTR pszFile)
+static HRESULT WINAPI IShellLinkA_fnSetPath(IShellLinkA * iface, LPCSTR pszFile)
 {
 	ICOM_THIS(IShellLinkImpl, iface);
 	
@@ -647,30 +647,30 @@ static HRESULT WINAPI IShellLink_fnSetPath(IShellLink * iface, LPCSTR pszFile)
 * IShellLink Implementation
 */
 
-static ICOM_VTABLE(IShellLink) slvt = 
+static ICOM_VTABLE(IShellLinkA) slvt = 
 {	
 	ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
-	IShellLink_fnQueryInterface,
-	IShellLink_fnAddRef,
-	IShellLink_fnRelease,
-	IShellLink_fnGetPath,
-	IShellLink_fnGetIDList,
-	IShellLink_fnSetIDList,
-	IShellLink_fnGetDescription,
-	IShellLink_fnSetDescription,
-	IShellLink_fnGetWorkingDirectory,
-	IShellLink_fnSetWorkingDirectory,
-	IShellLink_fnGetArguments,
-	IShellLink_fnSetArguments,
-	IShellLink_fnGetHotkey,
-	IShellLink_fnSetHotkey,
-	IShellLink_fnGetShowCmd,
-	IShellLink_fnSetShowCmd,
-	IShellLink_fnGetIconLocation,
-	IShellLink_fnSetIconLocation,
-	IShellLink_fnSetRelativePath,
-	IShellLink_fnResolve,
-	IShellLink_fnSetPath
+	IShellLinkA_fnQueryInterface,
+	IShellLinkA_fnAddRef,
+	IShellLinkA_fnRelease,
+	IShellLinkA_fnGetPath,
+	IShellLinkA_fnGetIDList,
+	IShellLinkA_fnSetIDList,
+	IShellLinkA_fnGetDescription,
+	IShellLinkA_fnSetDescription,
+	IShellLinkA_fnGetWorkingDirectory,
+	IShellLinkA_fnSetWorkingDirectory,
+	IShellLinkA_fnGetArguments,
+	IShellLinkA_fnSetArguments,
+	IShellLinkA_fnGetHotkey,
+	IShellLinkA_fnSetHotkey,
+	IShellLinkA_fnGetShowCmd,
+	IShellLinkA_fnSetShowCmd,
+	IShellLinkA_fnGetIconLocation,
+	IShellLinkA_fnSetIconLocation,
+	IShellLinkA_fnSetRelativePath,
+	IShellLinkA_fnResolve,
+	IShellLinkA_fnSetPath
 };
 
 
@@ -682,7 +682,7 @@ static HRESULT WINAPI IShellLinkW_fnQueryInterface(
 {
 	_ICOM_THIS_From_IShellLinkW(IShellLinkImpl, iface);
 	
-	return IShellLink_QueryInterface((IShellLink*)This, riid, ppvObj);
+	return IShellLinkA_QueryInterface((IShellLinkA*)This, riid, ppvObj);
 }
 
 /******************************************************************************
@@ -694,7 +694,7 @@ static ULONG WINAPI IShellLinkW_fnAddRef(IShellLinkW * iface)
 	
 	TRACE("(%p)->(count=%lu)\n",This,This->ref);
 
-	return IShellLink_AddRef((IShellLink*)This);
+	return IShellLinkA_AddRef((IShellLinkA*)This);
 }
 /******************************************************************************
  * IShellLinkW_fnRelease
@@ -706,7 +706,7 @@ static ULONG WINAPI IShellLinkW_fnRelease(IShellLinkW * iface)
 	
 	TRACE("(%p)->(count=%lu)\n",This,This->ref);
 
-	return IShellLink_Release((IShellLink*)This);
+	return IShellLinkA_Release((IShellLinkA*)This);
 }
 
 static HRESULT WINAPI IShellLinkW_fnGetPath(IShellLinkW * iface, LPWSTR pszFile,INT cchMaxPath, WIN32_FIND_DATAA *pfd, DWORD fFlags)
diff --git a/include/wine/obj_shelllink.h b/include/wine/obj_shelllink.h
index 9f5f867f12b..00c97162ac4 100644
--- a/include/wine/obj_shelllink.h
+++ b/include/wine/obj_shelllink.h
@@ -18,11 +18,7 @@ extern "C" {
 /*****************************************************************************
  * Predeclare the interfaces
  */
-DEFINE_SHLGUID(IID_IShellLink,          0x000214EEL, 0, 0);
-typedef struct IShellLink IShellLink,*LPSHELLLINK;
-#define IShellLinkA IShellLink
-
-DEFINE_SHLGUID(IID_IShellLinkW,         0x000214F9L, 0, 0);
+typedef struct IShellLinkA IShellLinkA,*LPSHELLLINK;
 typedef struct IShellLinkW IShellLinkW,*LPSHELLLINKW;
 
 /*****************************************************************************
@@ -44,8 +40,8 @@ typedef enum
 /*****************************************************************************
  * IShellLink interface
  */
-#define ICOM_INTERFACE IShellLink
-#define IShellLink_METHODS \
+#define ICOM_INTERFACE IShellLinkA
+#define IShellLinkA_METHODS \
     ICOM_METHOD4( HRESULT, GetPath, LPSTR, pszFile, INT, cchMaxPath, WIN32_FIND_DATAA *, pfd, DWORD, fFlags) \
     ICOM_METHOD1( HRESULT, GetIDList, LPITEMIDLIST *, ppidl) \
     ICOM_METHOD1( HRESULT, SetIDList, LPCITEMIDLIST, pidl) \
@@ -64,35 +60,35 @@ typedef enum
     ICOM_METHOD2( HRESULT, SetRelativePath, LPCSTR, pszPathRel, DWORD, dwReserved) \
     ICOM_METHOD2( HRESULT, Resolve, HWND, hwnd, DWORD, fFlags) \
     ICOM_METHOD1( HRESULT, SetPath, LPCSTR, pszFile)
-#define IShellLink_IMETHODS \
+#define IShellLinkA_IMETHODS \
     IUnknown_IMETHODS \
-    IShellLink_METHODS
-ICOM_DEFINE(IShellLink,IUnknown)
+    IShellLinkA_METHODS
+ICOM_DEFINE(IShellLinkA,IUnknown)
 #undef ICOM_INTERFACE
 
 /*** IUnknown methods ***/
-#define IShellLink_QueryInterface(p,a,b)	ICOM_CALL2(QueryInterface,p,a,b)
-#define IShellLink_AddRef(p)			ICOM_CALL (AddRef,p)
-#define IShellLink_Release(p)			ICOM_CALL (Release,p)
+#define IShellLinkA_QueryInterface(p,a,b)	ICOM_CALL2(QueryInterface,p,a,b)
+#define IShellLinkA_AddRef(p)			ICOM_CALL (AddRef,p)
+#define IShellLinkA_Release(p)			ICOM_CALL (Release,p)
 /*** IShellLink methods ***/
-#define IShellLink_GetPath(p,a,b,c,d)		ICOM_CALL4(GetPath,p,a,b,c,d)
-#define IShellLink_GetIDList(p,a)		ICOM_CALL1(GetIDList,p,a)
-#define IShellLink_SetIDList(p,a)		ICOM_CALL1(SetIDList,p,a)
-#define IShellLink_GetDescription(p,a,b)	ICOM_CALL2(GetDescription,p,a,b)
-#define IShellLink_SetDescription(p,a)		ICOM_CALL1(SetDescription,p,a)
-#define IShellLink_GetWorkingDirectory(p,a,b)	ICOM_CALL2(GetWorkingDirectory,p,a,b)
-#define IShellLink_SetWorkingDirectory(p,a)	ICOM_CALL1(SetWorkingDirectory,p,a)
-#define IShellLink_GetArguments(p,a,b)		ICOM_CALL2(GetArguments,p,a,b)
-#define IShellLink_SetArguments(p,a)		ICOM_CALL1(SetArguments,p,a)
-#define IShellLink_GetHotkey(p,a)		ICOM_CALL1(GetHotkey,p,a)
-#define IShellLink_SetHotkey(p,a)		ICOM_CALL1(SetHotkey,p,a)
-#define IShellLink_GetShowCmd(p,a)		ICOM_CALL1(GetShowCmd,p,a)
-#define IShellLink_SetShowCmd(p,a)		ICOM_CALL1(SetShowCmd,p,a)
-#define IShellLink_GetIconLocation(p,a,b,c)	ICOM_CALL3(GetIconLocation,p,a,b,c)
-#define IShellLink_SetIconLocation(p,a,b)	ICOM_CALL2(SetIconLocation,p,a,b)
-#define IShellLink_SetRelativePath(p,a,b)	ICOM_CALL2(SetRelativePath,p,a,b)
-#define IShellLink_Resolve(p,a,b)		ICOM_CALL2(Resolve,p,a,b)
-#define IShellLink_SetPath(p,a)			ICOM_CALL1(SetPath,p,a)
+#define IShellLinkA_GetPath(p,a,b,c,d)		ICOM_CALL4(GetPath,p,a,b,c,d)
+#define IShellLinkA_GetIDList(p,a)		ICOM_CALL1(GetIDList,p,a)
+#define IShellLinkA_SetIDList(p,a)		ICOM_CALL1(SetIDList,p,a)
+#define IShellLinkA_GetDescription(p,a,b)	ICOM_CALL2(GetDescription,p,a,b)
+#define IShellLinkA_SetDescription(p,a)		ICOM_CALL1(SetDescription,p,a)
+#define IShellLinkA_GetWorkingDirectory(p,a,b)	ICOM_CALL2(GetWorkingDirectory,p,a,b)
+#define IShellLinkA_SetWorkingDirectory(p,a)	ICOM_CALL1(SetWorkingDirectory,p,a)
+#define IShellLinkA_GetArguments(p,a,b)		ICOM_CALL2(GetArguments,p,a,b)
+#define IShellLinkA_SetArguments(p,a)		ICOM_CALL1(SetArguments,p,a)
+#define IShellLinkA_GetHotkey(p,a)		ICOM_CALL1(GetHotkey,p,a)
+#define IShellLinkA_SetHotkey(p,a)		ICOM_CALL1(SetHotkey,p,a)
+#define IShellLinkA_GetShowCmd(p,a)		ICOM_CALL1(GetShowCmd,p,a)
+#define IShellLinkA_SetShowCmd(p,a)		ICOM_CALL1(SetShowCmd,p,a)
+#define IShellLinkA_GetIconLocation(p,a,b,c)	ICOM_CALL3(GetIconLocation,p,a,b,c)
+#define IShellLinkA_SetIconLocation(p,a,b)	ICOM_CALL2(SetIconLocation,p,a,b)
+#define IShellLinkA_SetRelativePath(p,a,b)	ICOM_CALL2(SetRelativePath,p,a,b)
+#define IShellLinkA_Resolve(p,a,b)		ICOM_CALL2(Resolve,p,a,b)
+#define IShellLinkA_SetPath(p,a)		ICOM_CALL1(SetPath,p,a)
 
 /*****************************************************************************
  * IShellLinkW interface
@@ -145,7 +141,7 @@ ICOM_DEFINE(IShellLinkW,IUnknown)
 #define IShellLinkW_SetIconLocation(p,a,b)	ICOM_CALL2(SetIconLocation,p,a,b)
 #define IShellLinkW_SetRelativePath(p,a,b)	ICOM_CALL2(SetRelativePath,p,a,b)
 #define IShellLinkW_Resolve(p,a,b)		ICOM_CALL2(Resolve,p,a,b)
-#define IShellLinkW_SetPath(p,a)			ICOM_CALL1(SetPath,p,a)
+#define IShellLinkW_SetPath(p,a)		ICOM_CALL1(SetPath,p,a)
 
 #ifdef __cplusplus
 } /* extern "C" */
-- 
GitLab