18#include "../../win32/shell32/shresdef.h"
90 IUnknown_Release(pShellLink);
115 IUnknown_Release(pPersistFile);
116 IUnknown_Release(pShellLink);
123 IUniformResourceLocatorW *pURL =
NULL;
130 &IID_IUniformResourceLocatorW, (
void **)&pURL);
137 IUnknown_Release(pURL);
141 pURL->lpVtbl->SetURL(pURL, pContext->
szTarget, 0);
145 IUnknown_Release(pPersistFile);
146 IUnknown_Release(pURL);
161 for (pch1 = pch2 =
szName; *pch1; ++pch1)
180 if (!pszName || !pszName[0])
313 if (pszArgs && pszArgs >
szPath)
378 WCHAR szMessage[128];
494 WCHAR szMessage[128];
537 WCHAR szMessage[128];
604 psp.lParam = (
LPARAM)pContext;
struct CREATE_LINK_CONTEXT * PCREATE_LINK_CONTEXT
#define RegCloseKey(hKey)
EXTERN_C LPITEMIDLIST WINAPI SHBrowseForFolderW(LPBROWSEINFOW lpbi)
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 IDC_LINK_LOCATION
#define IDS_ERROR_NOT_FOUND
#define IDD_SHORTCUT_LOCATION
#define IDS_CANTMAKESHORTCUT
#define IDS_CANTMAKEINETSHORTCUT
#define IDD_SHORTCUT_FINISH
#define IDC_SHORTCUT_BROWSE
#define IDS_BROWSE_FOR_TARGET
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)
HMODULE WINAPI GetModuleHandleW(LPCWSTR lpModuleName)
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)
int WINAPI PathCleanupSpec(LPCWSTR lpszPathW, LPWSTR lpszFileW)
BOOL WINAPI PathYetAnotherMakeUniqueName(LPWSTR buffer, LPCWSTR path, LPCWSTR shortname, LPCWSTR longname)
void WINAPI PathRemoveArgsW(LPWSTR lpszPath)
BOOL WINAPI PathRemoveFileSpecW(LPWSTR lpszPath)
LPWSTR WINAPI PathFindFileNameW(LPCWSTR lpszPath)
LPWSTR WINAPI PathFindExtensionW(LPCWSTR lpszPath)
void WINAPI PathRemoveExtensionW(LPWSTR lpszPath)
BOOL WINAPI PathFileExistsW(LPCWSTR lpszPath)
BOOL WINAPI PathFindOnPathExW(LPWSTR lpszFile, LPCWSTR *lppszOtherDirs, DWORD dwWhich)
BOOL WINAPI PathIsDirectoryW(LPCWSTR lpszPath)
LPWSTR WINAPI PathGetArgsW(LPCWSTR lpszPath)
BOOL WINAPI PathIsRelativeW(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 Load([in] LPCOLESTR pszFileName, [in] DWORD dwMode)
HRESULT SetArguments([in] LPCWSTR pszArgs)
HRESULT SetIDList([in] PCIDLIST_ABSOLUTE pidl)
HRESULT SetPath([in] LPCWSTR pszFile)
HRESULT SetDescription([in] LPCWSTR pszName)
TCHAR szTitle[MAX_LOADSTRING]
static DWORD DWORD void LPSTR DWORD cch
struct _PSP * HPROPSHEETPAGE
const GUID IID_IPersistFile
#define PathAddExtensionW
#define PathAddBackslashW
BOOL WINAPI SHGetPathFromIDListW(LPCITEMIDLIST pidl, LPWSTR pszPath)
static const WCHAR szName[]
#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
#define BIF_NEWDIALOGSTYLE
HRESULT WINAPI SHAutoComplete(HWND hwndEdit, DWORD dwFlags)
#define IDS_NEWITEMFORMAT
ITEMIDLIST UNALIGNED * LPITEMIDLIST
STRSAFEAPI StringCchPrintfW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszFormat,...)
STRSAFEAPI StringCchCopyW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszSrc)
WCHAR szDescription[MAX_PATH]
WCHAR szOldFile[MAX_PATH]
WCHAR szLinkName[MAX_PATH]
WCHAR szArguments[2 *MAX_PATH]
WCHAR szTarget[2 *MAX_PATH]
PCIDLIST_ABSOLUTE pidlRoot
_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)