- CShellLink();
- ~CShellLink();
- LPWSTR ShellLink_GetAdvertisedArg(LPCWSTR str);
- HRESULT ShellLink_SetAdvertiseInfo(LPCWSTR str);
- static INT_PTR CALLBACK SH_ShellLinkDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
-
- // IPersistFile
- virtual HRESULT WINAPI GetClassID(CLSID *pclsid);
- virtual HRESULT WINAPI IsDirty();
- virtual HRESULT WINAPI Load(LPCOLESTR pszFileName, DWORD dwMode);
- virtual HRESULT WINAPI Save(LPCOLESTR pszFileName, BOOL fRemember);
- virtual HRESULT WINAPI SaveCompleted(LPCOLESTR pszFileName);
- virtual HRESULT WINAPI GetCurFile(LPOLESTR *ppszFileName);
-
- // IPersistStream
-// virtual WINAPI HRESULT GetClassID(CLSID *pclsid);
-// virtual HRESULT WINAPI IsDirty();
- virtual HRESULT WINAPI Load(IStream *stm);
- virtual HRESULT WINAPI Save(IStream *stm, BOOL fClearDirty);
- virtual HRESULT WINAPI GetSizeMax(ULARGE_INTEGER *pcbSize);
-
- // IShellLinkA
- virtual HRESULT WINAPI GetPath(LPSTR pszFile, INT cchMaxPath, WIN32_FIND_DATAA *pfd, DWORD fFlags);
- virtual HRESULT WINAPI GetIDList(LPITEMIDLIST * ppidl);
- virtual HRESULT WINAPI SetIDList(LPCITEMIDLIST pidl);
- virtual HRESULT WINAPI GetDescription(LPSTR pszName,INT cchMaxName);
- virtual HRESULT WINAPI SetDescription(LPCSTR pszName);
- virtual HRESULT WINAPI GetWorkingDirectory(LPSTR pszDir,INT cchMaxPath);
- virtual HRESULT WINAPI SetWorkingDirectory(LPCSTR pszDir);
- virtual HRESULT WINAPI GetArguments(LPSTR pszArgs,INT cchMaxPath);
- virtual HRESULT WINAPI SetArguments(LPCSTR pszArgs);
- virtual HRESULT WINAPI GetHotkey(WORD *pwHotkey);
- virtual HRESULT WINAPI SetHotkey(WORD wHotkey);
- virtual HRESULT WINAPI GetShowCmd(INT *piShowCmd);
- virtual HRESULT WINAPI SetShowCmd(INT iShowCmd);
- virtual HRESULT WINAPI GetIconLocation(LPSTR pszIconPath,INT cchIconPath,INT *piIcon);
- virtual HRESULT WINAPI SetIconLocation(LPCSTR pszIconPath,INT iIcon);
- virtual HRESULT WINAPI SetRelativePath(LPCSTR pszPathRel, DWORD dwReserved);
- virtual HRESULT WINAPI Resolve(HWND hwnd, DWORD fFlags);
- virtual HRESULT WINAPI SetPath(LPCSTR pszFile);
-
- // IShellLinkW
- virtual HRESULT WINAPI GetPath(LPWSTR pszFile, INT cchMaxPath, WIN32_FIND_DATAW *pfd, DWORD fFlags);
-// virtual HRESULT WINAPI GetIDList(LPITEMIDLIST *ppidl);
-// virtual HRESULT WINAPI SetIDList(LPCITEMIDLIST pidl);
- virtual HRESULT WINAPI GetDescription(LPWSTR pszName, INT cchMaxName);
- virtual HRESULT WINAPI SetDescription(LPCWSTR pszName);
- virtual HRESULT WINAPI GetWorkingDirectory(LPWSTR pszDir, INT cchMaxPath);
- virtual HRESULT WINAPI SetWorkingDirectory(LPCWSTR pszDir);
- virtual HRESULT WINAPI GetArguments(LPWSTR pszArgs,INT cchMaxPath);
- virtual HRESULT WINAPI SetArguments(LPCWSTR pszArgs);
-// virtual HRESULT WINAPI GetHotkey(WORD *pwHotkey);
-// virtual HRESULT WINAPI SetHotkey(WORD wHotkey);
-// virtual HRESULT WINAPI GetShowCmd(INT *piShowCmd);
-// virtual HRESULT WINAPI SetShowCmd(INT iShowCmd);
- virtual HRESULT WINAPI GetIconLocation(LPWSTR pszIconPath,INT cchIconPath,INT *piIcon);
- virtual HRESULT WINAPI SetIconLocation(LPCWSTR pszIconPath,INT iIcon);
- virtual HRESULT WINAPI SetRelativePath(LPCWSTR pszPathRel, DWORD dwReserved);
-// virtual HRESULT WINAPI Resolve(HWND hwnd, DWORD fFlags);
- virtual HRESULT WINAPI SetPath(LPCWSTR pszFile);
-
- // IShellLinkDataList
- virtual HRESULT WINAPI AddDataBlock(void *pDataBlock);
- virtual HRESULT WINAPI CopyDataBlock(DWORD dwSig, void **ppDataBlock);
- virtual HRESULT WINAPI RemoveDataBlock(DWORD dwSig);
- virtual HRESULT WINAPI GetFlags(DWORD *pdwFlags);
- virtual HRESULT WINAPI SetFlags(DWORD dwFlags);
-
- // IShellExtInit
- virtual HRESULT WINAPI Initialize(LPCITEMIDLIST pidlFolder, IDataObject *pdtobj, HKEY hkeyProgID);
-
- // IContextMenu
- virtual HRESULT WINAPI QueryContextMenu(HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags);
- virtual HRESULT WINAPI InvokeCommand(LPCMINVOKECOMMANDINFO lpici);
- virtual HRESULT WINAPI GetCommandString(UINT_PTR idCmd, UINT uType, UINT *pwReserved, LPSTR pszName, UINT cchMax);
-
- // IShellPropSheetExt
- virtual HRESULT WINAPI AddPages(LPFNADDPROPSHEETPAGE pfnAddPage, LPARAM lParam);
- virtual HRESULT WINAPI ReplacePage(UINT uPageID, LPFNADDPROPSHEETPAGE pfnReplacePage, LPARAM lParam);
-
- // IObjectWithSite
- virtual HRESULT WINAPI SetSite(IUnknown *punk);
- virtual HRESULT WINAPI GetSite(REFIID iid, void **ppvSite);
+ CShellLink();
+ ~CShellLink();
+ LPWSTR ShellLink_GetAdvertisedArg(LPCWSTR str);
+ HRESULT ShellLink_SetAdvertiseInfo(LPCWSTR str);
+ static INT_PTR CALLBACK SH_ShellLinkDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
+
+ // IPersistFile
+ virtual HRESULT WINAPI GetClassID(CLSID *pclsid);
+ virtual HRESULT WINAPI IsDirty();
+ virtual HRESULT WINAPI Load(LPCOLESTR pszFileName, DWORD dwMode);
+ virtual HRESULT WINAPI Save(LPCOLESTR pszFileName, BOOL fRemember);
+ virtual HRESULT WINAPI SaveCompleted(LPCOLESTR pszFileName);
+ virtual HRESULT WINAPI GetCurFile(LPOLESTR *ppszFileName);
+
+ // IPersistStream
+ // virtual WINAPI HRESULT GetClassID(CLSID *pclsid);
+ // virtual HRESULT WINAPI IsDirty();
+ virtual HRESULT WINAPI Load(IStream *stm);
+ virtual HRESULT WINAPI Save(IStream *stm, BOOL fClearDirty);
+ virtual HRESULT WINAPI GetSizeMax(ULARGE_INTEGER *pcbSize);
+
+ // IShellLinkA
+ virtual HRESULT WINAPI GetPath(LPSTR pszFile, INT cchMaxPath, WIN32_FIND_DATAA *pfd, DWORD fFlags);
+ virtual HRESULT WINAPI GetIDList(LPITEMIDLIST * ppidl);
+ virtual HRESULT WINAPI SetIDList(LPCITEMIDLIST pidl);
+ virtual HRESULT WINAPI GetDescription(LPSTR pszName,INT cchMaxName);
+ virtual HRESULT WINAPI SetDescription(LPCSTR pszName);
+ virtual HRESULT WINAPI GetWorkingDirectory(LPSTR pszDir,INT cchMaxPath);
+ virtual HRESULT WINAPI SetWorkingDirectory(LPCSTR pszDir);
+ virtual HRESULT WINAPI GetArguments(LPSTR pszArgs,INT cchMaxPath);
+ virtual HRESULT WINAPI SetArguments(LPCSTR pszArgs);
+ virtual HRESULT WINAPI GetHotkey(WORD *pwHotkey);
+ virtual HRESULT WINAPI SetHotkey(WORD wHotkey);
+ virtual HRESULT WINAPI GetShowCmd(INT *piShowCmd);
+ virtual HRESULT WINAPI SetShowCmd(INT iShowCmd);
+ virtual HRESULT WINAPI GetIconLocation(LPSTR pszIconPath,INT cchIconPath,INT *piIcon);
+ virtual HRESULT WINAPI SetIconLocation(LPCSTR pszIconPath,INT iIcon);
+ virtual HRESULT WINAPI SetRelativePath(LPCSTR pszPathRel, DWORD dwReserved);
+ virtual HRESULT WINAPI Resolve(HWND hwnd, DWORD fFlags);
+ virtual HRESULT WINAPI SetPath(LPCSTR pszFile);
+
+ // IShellLinkW
+ virtual HRESULT WINAPI GetPath(LPWSTR pszFile, INT cchMaxPath, WIN32_FIND_DATAW *pfd, DWORD fFlags);
+ // virtual HRESULT WINAPI GetIDList(LPITEMIDLIST *ppidl);
+ // virtual HRESULT WINAPI SetIDList(LPCITEMIDLIST pidl);
+ virtual HRESULT WINAPI GetDescription(LPWSTR pszName, INT cchMaxName);
+ virtual HRESULT WINAPI SetDescription(LPCWSTR pszName);
+ virtual HRESULT WINAPI GetWorkingDirectory(LPWSTR pszDir, INT cchMaxPath);
+ virtual HRESULT WINAPI SetWorkingDirectory(LPCWSTR pszDir);
+ virtual HRESULT WINAPI GetArguments(LPWSTR pszArgs,INT cchMaxPath);
+ virtual HRESULT WINAPI SetArguments(LPCWSTR pszArgs);
+ // virtual HRESULT WINAPI GetHotkey(WORD *pwHotkey);
+ // virtual HRESULT WINAPI SetHotkey(WORD wHotkey);
+ // virtual HRESULT WINAPI GetShowCmd(INT *piShowCmd);
+ // virtual HRESULT WINAPI SetShowCmd(INT iShowCmd);
+ virtual HRESULT WINAPI GetIconLocation(LPWSTR pszIconPath,INT cchIconPath,INT *piIcon);
+ virtual HRESULT WINAPI SetIconLocation(LPCWSTR pszIconPath,INT iIcon);
+ virtual HRESULT WINAPI SetRelativePath(LPCWSTR pszPathRel, DWORD dwReserved);
+ // virtual HRESULT WINAPI Resolve(HWND hwnd, DWORD fFlags);
+ virtual HRESULT WINAPI SetPath(LPCWSTR pszFile);
+
+ // IShellLinkDataList
+ virtual HRESULT WINAPI AddDataBlock(void *pDataBlock);
+ virtual HRESULT WINAPI CopyDataBlock(DWORD dwSig, void **ppDataBlock);
+ virtual HRESULT WINAPI RemoveDataBlock(DWORD dwSig);
+ virtual HRESULT WINAPI GetFlags(DWORD *pdwFlags);
+ virtual HRESULT WINAPI SetFlags(DWORD dwFlags);
+
+ // IShellExtInit
+ virtual HRESULT WINAPI Initialize(LPCITEMIDLIST pidlFolder, IDataObject *pdtobj, HKEY hkeyProgID);
+
+ // IContextMenu
+ virtual HRESULT WINAPI QueryContextMenu(HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags);
+ virtual HRESULT WINAPI InvokeCommand(LPCMINVOKECOMMANDINFO lpici);
+ virtual HRESULT WINAPI GetCommandString(UINT_PTR idCmd, UINT uType, UINT *pwReserved, LPSTR pszName, UINT cchMax);
+
+ // IShellPropSheetExt
+ virtual HRESULT WINAPI AddPages(LPFNADDPROPSHEETPAGE pfnAddPage, LPARAM lParam);
+ virtual HRESULT WINAPI ReplacePage(UINT uPageID, LPFNADDPROPSHEETPAGE pfnReplacePage, LPARAM lParam);
+
+ // IObjectWithSite
+ virtual HRESULT WINAPI SetSite(IUnknown *punk);
+ virtual HRESULT WINAPI GetSite(REFIID iid, void **ppvSite);
+
+ // IDropTarget
+ virtual HRESULT WINAPI DragEnter(IDataObject *pDataObject, DWORD dwKeyState, POINTL pt, DWORD *pdwEffect);
+ virtual HRESULT WINAPI DragOver(DWORD dwKeyState, POINTL pt, DWORD *pdwEffect);
+ virtual HRESULT WINAPI DragLeave();
+ virtual HRESULT WINAPI Drop(IDataObject *pDataObject, DWORD dwKeyState, POINTL pt, DWORD *pdwEffect);