FreeRDP
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Modules Pages
shell.h
1
21#ifndef WINPR_SHELL_H
22#define WINPR_SHELL_H
23
24#include <stdio.h>
25#include <stdlib.h>
26#include <string.h>
27#include <winpr/winpr.h>
28#include <winpr/wtypes.h>
29
30#ifdef _WIN32
31
32#include <shlobj.h>
33#include <userenv.h>
34
35#else
36
37/* Shell clipboard formats */
38typedef struct
39{
40 DWORD dwFlags;
41 CLSID clsid;
42 SIZEL sizel;
43 POINTL pointl;
44 DWORD dwFileAttributes;
45 FILETIME ftCreationTime;
46 FILETIME ftLastAccessTime;
47 FILETIME ftLastWriteTime;
48 DWORD nFileSizeHigh;
49 DWORD nFileSizeLow;
50 WCHAR cFileName[260];
52
53/* Legacy definition, some types do not match the windows equivalent. */
54typedef struct
55{
56 DWORD dwFlags;
57 BYTE clsid[16];
58 BYTE sizel[8];
59 BYTE pointl[8];
60 DWORD dwFileAttributes;
61 FILETIME ftCreationTime;
62 FILETIME ftLastAccessTime;
63 FILETIME ftLastWriteTime;
64 DWORD nFileSizeHigh;
65 DWORD nFileSizeLow;
66 WCHAR cFileName[260];
68
69/* FILEDESCRIPTOR.dwFlags */
70typedef enum
71{
72 FD_CLSID = 0x00000001,
73 FD_SIZEPOINT = 0x00000002,
74 FD_ATTRIBUTES = 0x00000004,
75 FD_CREATETIME = 0x00000008,
76 FD_ACCESSTIME = 0x00000010,
77 FD_WRITESTIME = 0x00000020,
78 FD_FILESIZE = 0x00000040,
79 FD_PROGRESSUI = 0x00004000,
80 FD_LINKUI = 0x00008000,
81} FD_FLAGS;
82#define FD_UNICODE 0x80000000
83
84/* Deprecated, here for compatibility */
85#define FD_SHOWPROGRESSUI FD_PROGRESSUI
86
87#ifdef __cplusplus
88extern "C"
89{
90#endif
91
92 WINPR_API BOOL GetUserProfileDirectoryA(HANDLE hToken, LPSTR lpProfileDir, LPDWORD lpcchSize);
93
94 WINPR_API BOOL GetUserProfileDirectoryW(HANDLE hToken, LPWSTR lpProfileDir, LPDWORD lpcchSize);
95
96#ifdef __cplusplus
97}
98#endif
99
100#ifdef UNICODE
101#define GetUserProfileDirectory GetUserProfileDirectoryW
102#else
103#define GetUserProfileDirectory GetUserProfileDirectoryA
104#endif
105
106#endif
107
108#endif /* WINPR_SHELL_H */
Definition wtypes.h:244