FreeRDP
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 */
38 typedef 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. */
54 typedef 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 */
70 typedef 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
88 extern "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 */