reactos/dll/cpl/appwiz/appwiz.h
Katayama Hirofumi MZ 1d1472c78e
[APPWIZ][SHELL32] Improve 'Create Shortcut' dialog (#6550)
Now we can open special folder shortcut, thanks to #6546.
Let's allow users to create various shortcut files.
JIRA issue: CORE-5866
- Remove BIF_RETURNONLYFSDIRS flag because
  the system can open special folder shortcuts now.
- Add LPITEMIDLIST pidlTarget to CREATE_LINK_CONTEXT
  structure.
- Use pidlTarget if the target is a special folder.
- Fix CShellLink::DoOpen for arguments.
2024-02-28 15:22:44 +09:00

97 lines
1.9 KiB
C

#ifndef _APPWIZ_H
#define _APPWIZ_H
#include <config.h>
#include <wine/port.h>
#include <stdarg.h>
#define WIN32_NO_STATUS
#define _INC_WINDOWS
#define COM_NO_WINDOWS_H
#define COBJMACROS
#include <windef.h>
#include <winbase.h>
#include <winreg.h>
#include <winnls.h>
#include <shlobj.h>
#include <intshcut.h>
#include <shlwapi.h>
#include <wine/debug.h>
WINE_DEFAULT_DEBUG_CHANNEL(appwiz);
#include "resource.h"
typedef struct
{
LPITEMIDLIST pidlTarget;
WCHAR szTarget[2 * MAX_PATH];
WCHAR szDescription[MAX_PATH];
WCHAR szArguments[2 * MAX_PATH];
WCHAR szOrigin[MAX_PATH];
WCHAR szOldFile[MAX_PATH];
WCHAR szLinkName[MAX_PATH];
} CREATE_LINK_CONTEXT, *PCREATE_LINK_CONTEXT;
extern HINSTANCE hApplet;
/* createlink.c */
INT_PTR CALLBACK
WelcomeDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
INT_PTR CALLBACK
FinishDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
LONG CALLBACK
NewLinkHere(HWND hwndCPl, UINT uMsg, LPARAM lParam1, LPARAM lParam2);
/* removestartmenuitems.c */
LONG CALLBACK
ConfigStartMenu(HWND hwndCPl, UINT uMsg, LPARAM lParam1, LPARAM lParam2);
void ShowLastWin32Error(HWND hWndOwner);
typedef enum {
ADDON_GECKO,
ADDON_MONO
} addon_t;
BOOL install_addon(addon_t, HWND hwnd_parent) DECLSPEC_HIDDEN;
extern HINSTANCE hInst DECLSPEC_HIDDEN;
static inline void *heap_alloc(size_t len)
{
return HeapAlloc(GetProcessHeap(), 0, len);
}
static inline void *heap_realloc(void *mem, size_t len)
{
return HeapReAlloc(GetProcessHeap(), 0, mem, len);
}
static inline BOOL heap_free(void *mem)
{
return HeapFree(GetProcessHeap(), 0, mem);
}
static inline WCHAR *heap_strdupAtoW(const char *str)
{
WCHAR *ret = NULL;
if(str) {
size_t len;
len = MultiByteToWideChar(CP_ACP, 0, str, -1, NULL, 0);
ret = heap_alloc(len*sizeof(WCHAR));
if(ret)
MultiByteToWideChar(CP_ACP, 0, str, -1, ret, len);
}
return ret;
}
#endif /* _APPWIZ_H */