93 hr = IUnknown_QueryInterface(pSourceShellLink, &
IID_IPersistFile, (
void**)&pPersistFile);
96 IUnknown_Release(pSourceShellLink);
101 IUnknown_Release(pPersistFile);
105 IUnknown_Release(pSourceShellLink);
110 IUnknown_Release(pSourceShellLink);
123 &IID_IShellLinkW, (
void**)&pShellLink);
135 IUnknown_Release(pShellLink);
140 IUnknown_Release(pPersistFile);
141 IUnknown_Release(pShellLink);
148 IUniformResourceLocatorW *pURL =
NULL;
155 &IID_IUniformResourceLocatorW, (
void **)&pURL);
162 IUnknown_Release(pURL);
166 pURL->lpVtbl->SetURL(pURL, pContext->
szTarget, 0);
170 IUnknown_Release(pPersistFile);
171 IUnknown_Release(pURL);
186 for (pch1 = pch2 =
szName; *pch1; ++pch1)
205 if (!pszName || !pszName[0])
374 WCHAR szMessage[128];
470 WCHAR szMessage[128];
513 WCHAR szMessage[128];
580 psp.lParam = (
LPARAM)pContext;
PRTL_UNICODE_STRING_BUFFER Path
struct CREATE_LINK_CONTEXT * PCREATE_LINK_CONTEXT
#define RegCloseKey(hKey)
EXTERN_C void WINAPI SHChangeNotify(LONG wEventId, UINT uFlags, LPCVOID dwItem1, LPCVOID dwItem2)
VOID WINAPI InitCommonControls(void)
LONG CALLBACK NewLinkHereW(HWND hwndCPl, UINT uMsg, LPARAM lParam1, LPARAM lParam2)
BOOL IsShortcut(HKEY hKey)
INT_PTR CALLBACK FinishDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
static int CALLBACK PropSheetProc(HWND hwndDlg, UINT uMsg, LPARAM lParam)
LONG CALLBACK ShowCreateShortcutWizard(HWND hwndCPl, LPCWSTR szPath)
LONG CALLBACK NewLinkHereA(HWND hwndCPl, UINT uMsg, LPARAM lParam1, LPARAM lParam2)
void DoConvertNameForFileSystem(LPWSTR szName)
BOOL CreateShortcut(PCREATE_LINK_CONTEXT pContext)
BOOL IsExtensionAShortcut(LPWSTR lpExtension)
BOOL DoValidateShortcutName(PCREATE_LINK_CONTEXT pContext)
INT_PTR CALLBACK WelcomeDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
BOOL IsInternetLocation(LPCWSTR pszLocation)
BOOL CreateInternetShortcut(PCREATE_LINK_CONTEXT pContext)
#define IDS_NEW_INTERNET_SHORTCUT
#define IDC_SHORTCUT_NAME
#define IDS_CREATE_SHORTCUT
#define IDS_ERROR_NOT_FOUND
#define IDC_SHORTCUT_LOCATION
#define IDD_SHORTCUT_LOCATION
#define IDS_CANTMAKESHORTCUT
#define IDS_CANTMAKEINETSHORTCUT
#define IDD_SHORTCUT_FINISH
#define IDC_SHORTCUT_BROWSE
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
#define HeapFree(x, y, z)
#define MultiByteToWideChar
DWORD WINAPI ExpandEnvironmentStringsW(IN LPCWSTR lpSrc, IN LPWSTR lpDst, IN DWORD nSize)
BOOL WINAPI DeleteFileW(IN LPCWSTR lpFileName)
DWORD WINAPI GetFileAttributesW(LPCWSTR lpFileName)
DWORD WINAPI GetFullPathNameW(IN LPCWSTR lpFileName, IN DWORD nBufferLength, OUT LPWSTR lpBuffer, OUT LPWSTR *lpFilePart)
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
LPITEMIDLIST WINAPI SHBrowseForFolderW(LPBROWSEINFOW lpbi)
LPWSTR WINAPI PathAddBackslashW(LPWSTR lpszPath)
LPWSTR WINAPI PathFindFileNameW(LPCWSTR lpszPath)
LPWSTR WINAPI PathFindExtensionW(LPCWSTR lpszPath)
BOOL WINAPI PathAppendW(LPWSTR lpszPath, LPCWSTR lpszAppend)
BOOL WINAPI PathFileExistsW(LPCWSTR lpszPath)
LPWSTR WINAPI PathRemoveBackslashW(LPWSTR lpszPath)
BOOL WINAPI PathIsDirectoryW(LPCWSTR lpszPath)
BOOL WINAPI StrTrimW(LPWSTR lpszStr, LPCWSTR lpszTrim)
BOOL WINAPI PathIsURLW(LPCWSTR lpstrPath)
VOID WINAPI CoTaskMemFree(LPVOID ptr)
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
_CONST_RETURN wchar_t *__cdecl wcsstr(_In_z_ const wchar_t *_Str, _In_z_ const wchar_t *_SubStr)
HRESULT Save([in, unique] LPCOLESTR pszFileName, [in] BOOL fRemember)
HRESULT SetPath([in] LPCWSTR pszFile)
HRESULT SetDescription([in] LPCWSTR pszName)
HRESULT SetWorkingDirectory([in] LPCWSTR pszDir)
static DWORD DWORD void LPSTR DWORD cch
struct _PSP * HPROPSHEETPAGE
const GUID IID_IPersistFile
BOOL WINAPI SHGetPathFromIDListW(LPCITEMIDLIST pidl, LPWSTR pszPath)
static const WCHAR szName[]
#define PSNRET_INVALID_NOCHANGEPAGE
#define CreatePropertySheetPage
#define PropSheet_SetWizButtons(d, f)
struct _PROPSHEETPAGEW * LPPROPSHEETPAGEW
struct _PSHNOTIFY * LPPSHNOTIFY
DWORD_PTR WINAPI SHGetFileInfoW(LPCWSTR path, DWORD dwFileAttributes, SHFILEINFOW *psfi, UINT sizeofpsfi, UINT flags)
#define SHGFI_DISPLAYNAME
#define BIF_BROWSEINCLUDEFILES
HRESULT WINAPI SHAutoComplete(HWND hwndEdit, DWORD dwFlags)
ITEMIDLIST UNALIGNED * LPITEMIDLIST
STRSAFEAPI StringCchPrintfW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszFormat,...)
STRSAFEAPI StringCchCatW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszSrc)
STRSAFEAPI StringCchCopyW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszSrc)
WCHAR szDescription[MAX_PATH]
WCHAR szOldFile[MAX_PATH]
WCHAR szLinkName[MAX_PATH]
WCHAR szWorkingDirectory[MAX_PATH]
PCIDLIST_ABSOLUTE pidlRoot
#define INVALID_FILE_ATTRIBUTES
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
UINT WINAPI GetDlgItemTextW(HWND hDlg, int nIDDlgItem, LPWSTR lpString, int nMaxCount)
_In_ LPCSTR _In_opt_ LPCSTR lpExtension
#define HKEY_CLASSES_ROOT
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
BOOL WINAPI SetDlgItemTextW(_In_ HWND, _In_ int, _In_ LPCWSTR)
int WINAPI MessageBoxW(_In_opt_ HWND hWnd, _In_opt_ LPCWSTR lpText, _In_opt_ LPCWSTR lpCaption, _In_ UINT uType)
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
LRESULT WINAPI SendDlgItemMessageW(_In_ HWND, _In_ int, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
HWND WINAPI SetFocus(_In_opt_ HWND)
HWND WINAPI GetParent(_In_ HWND)
#define MAKEINTRESOURCEW(i)
#define SendDlgItemMessage
HICON WINAPI LoadIconW(_In_opt_ HINSTANCE hInstance, _In_ LPCWSTR lpIconName)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)