VirtualBox

source: vbox/trunk/src/VBox/Additions/WINNT/Graphics/Wine/include/wincon.h@ 33282

Last change on this file since 33282 was 23571, checked in by vboxsync, 15 years ago

crOpenGL: update to wine 1.1.30

  • Property svn:eol-style set to native
File size: 15.6 KB
Line 
1/*
2 * Copyright (C) the Wine project
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19/*
20 * Sun LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
21 * other than GPL or LGPL is available it will apply instead, Sun elects to use only
22 * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
23 * a choice of LGPL license versions is made available with the language indicating
24 * that LGPLv2 or any later version may be used, or where a choice of which version
25 * of the LGPL is applied is otherwise unspecified.
26 */
27
28#ifndef __WINE_WINCON_H
29#define __WINE_WINCON_H
30
31#ifdef __cplusplus
32extern "C" {
33#endif
34
35#ifndef NOGDI
36#include <wingdi.h>
37#endif
38
39/* AttachConsole special pid value */
40#define ATTACH_PARENT_PROCESS ((DWORD) -1)
41
42/* GetConsoleDisplayMode flags */
43#define CONSOLE_FULLSCREEN 1
44#define CONSOLE_FULLSCREEN_HARDWARE 2
45
46/* SetConsoleDisplayMode flags */
47#define CONSOLE_FULLSCREEN_MODE 1
48#define CONSOLE_WINDOWED_MODE 2
49
50/* CONSOLE_SELECTION_INFO.dwFlags */
51#define CONSOLE_NO_SELECTION 0x00
52#define CONSOLE_SELECTION_IN_PROGRESS 0x01
53#define CONSOLE_SELECTION_NOT_EMPTY 0x02
54#define CONSOLE_MOUSE_SELECTION 0x04
55#define CONSOLE_MOUSE_DOWN 0x08
56
57/* handler routine control signal type */
58#define CTRL_C_EVENT 0
59#define CTRL_BREAK_EVENT 1
60#define CTRL_CLOSE_EVENT 2
61#define CTRL_LOGOFF_EVENT 5
62#define CTRL_SHUTDOWN_EVENT 6
63
64/* Console Mode flags */
65#define ENABLE_PROCESSED_INPUT 0x0001
66#define ENABLE_LINE_INPUT 0x0002
67#define ENABLE_ECHO_INPUT 0x0004
68#define ENABLE_WINDOW_INPUT 0x0008
69#define ENABLE_MOUSE_INPUT 0x0010
70#define ENABLE_INSERT_MODE 0x0020
71#define ENABLE_QUICK_EDIT_MODE 0x0040
72#define ENABLE_EXTENDED_FLAGS 0x0080
73#define ENABLE_AUTO_POSITION 0x0100
74
75#define ENABLE_PROCESSED_OUTPUT 0x01
76#define ENABLE_WRAP_AT_EOL_OUTPUT 0x02
77
78
79typedef BOOL (WINAPI *PHANDLER_ROUTINE)(DWORD dwCtrlType);
80
81/* Attributes flags: */
82
83#define FOREGROUND_BLUE 0x0001
84#define FOREGROUND_GREEN 0x0002
85#define FOREGROUND_RED 0x0004
86#define FOREGROUND_INTENSITY 0x0008
87#define BACKGROUND_BLUE 0x0010
88#define BACKGROUND_GREEN 0x0020
89#define BACKGROUND_RED 0x0040
90#define BACKGROUND_INTENSITY 0x0080
91#define COMMON_LVB_LEADING_BYTE 0x0100
92#define COMMON_LVB_TRAILING_BYTE 0x0200
93#define COMMON_LVB_GRID_HORIZONTAL 0x0400
94#define COMMON_LVB_GRID_LVERTICAL 0x0800
95#define COMMON_LVB_GRID_RVERTICAL 0x1000
96#define COMMON_LVB_REVERSE_VIDEO 0x4000
97#define COMMON_LVB_UNDERSCORE 0x8000
98
99/* CONSOLE_HISTORY_INFO.dwFlags */
100#define HISTORY_NO_DUP_FLAG 0x01
101
102typedef struct _CONSOLE_CURSOR_INFO {
103 DWORD dwSize; /* Between 1 & 100 for percentage of cell filled */
104 BOOL bVisible; /* Visibility of cursor */
105} CONSOLE_CURSOR_INFO, *LPCONSOLE_CURSOR_INFO;
106
107typedef struct tagCOORD
108{
109 SHORT X;
110 SHORT Y;
111} COORD, *LPCOORD;
112
113typedef struct tagSMALL_RECT
114{
115 SHORT Left;
116 SHORT Top;
117 SHORT Right;
118 SHORT Bottom;
119} SMALL_RECT,*LPSMALL_RECT;
120
121typedef struct _CONSOLE_FONT_INFO
122{
123 DWORD nFont;
124 COORD dwFontSize;
125} CONSOLE_FONT_INFO,*LPCONSOLE_FONT_INFO;
126
127#ifndef NOGDI
128typedef struct _CONSOLE_FONT_INFOEX
129{
130 ULONG cbSize;
131 DWORD nFont;
132 COORD dwFontSize;
133 UINT FontFamily;
134 UINT FontWeight;
135 WCHAR FaceName[LF_FACESIZE];
136} CONSOLE_FONT_INFOEX,*LPCONSOLE_FONT_INFOEX;
137#endif
138
139typedef struct tagCONSOLE_HISTORY_INFO
140{
141 UINT cbSize;
142 UINT HistoryBufferSize;
143 UINT NumberOfHistoryBuffers;
144 DWORD dwFlags;
145} CONSOLE_HISTORY_INFO,*LPCONSOLE_HISTORY_INFO;
146
147typedef struct _CONSOLE_READCONSOLE_CONTROL
148{
149 ULONG nLength;
150 ULONG nInitialChars;
151 ULONG dwCtrlWakeupMask;
152 ULONG dwConsoleKeyState;
153} CONSOLE_READCONSOLE_CONTROL,*LPCONSOLE_READCONSOLE_CONTROL;
154
155typedef struct tagCONSOLE_SCREEN_BUFFER_INFO
156{
157 COORD dwSize;
158 COORD dwCursorPosition;
159 WORD wAttributes;
160 SMALL_RECT srWindow;
161 COORD dwMaximumWindowSize;
162} CONSOLE_SCREEN_BUFFER_INFO,*LPCONSOLE_SCREEN_BUFFER_INFO;
163
164typedef struct _CONSOLE_SCREEN_BUFFER_INFOEX
165{
166 ULONG cbSize;
167 COORD dwSize;
168 COORD dwCursorPosition;
169 WORD wAttributes;
170 SMALL_RECT srWindow;
171 COORD dwMaximumWindowSize;
172 WORD wPopupAttributes;
173 BOOL bFullscreenSupported;
174 COLORREF ColorTable[16];
175} CONSOLE_SCREEN_BUFFER_INFOEX,*LPCONSOLE_SCREEN_BUFFER_INFOEX;
176
177typedef struct _CONSOLE_SELECTION_INFO
178{
179 DWORD dwFlags;
180 COORD dwSelectionAnchor;
181 SMALL_RECT srSelection;
182} CONSOLE_SELECTION_INFO,*LPCONSOLE_SELECTION_INFO;
183
184typedef struct tagCHAR_INFO
185{
186 union
187 {
188 WCHAR UnicodeChar;
189 CHAR AsciiChar;
190 } Char;
191 WORD Attributes;
192} CHAR_INFO,*LPCHAR_INFO;
193
194typedef struct tagKEY_EVENT_RECORD
195{
196 BOOL bKeyDown; /* 04 */
197 WORD wRepeatCount; /* 08 */
198 WORD wVirtualKeyCode; /* 0A */
199 WORD wVirtualScanCode; /* 0C */
200 union /* 0E */
201 {
202 WCHAR UnicodeChar; /* 0E */
203 CHAR AsciiChar; /* 0E */
204 } uChar;
205 DWORD dwControlKeyState; /* 10 */
206} KEY_EVENT_RECORD,*LPKEY_EVENT_RECORD;
207
208/* dwControlKeyState bitmask */
209#define RIGHT_ALT_PRESSED 0x0001
210#define LEFT_ALT_PRESSED 0x0002
211#define RIGHT_CTRL_PRESSED 0x0004
212#define LEFT_CTRL_PRESSED 0x0008
213#define SHIFT_PRESSED 0x0010
214#define NUMLOCK_ON 0x0020
215#define SCROLLLOCK_ON 0x0040
216#define CAPSLOCK_ON 0x0080
217#define ENHANCED_KEY 0x0100
218
219typedef struct tagMOUSE_EVENT_RECORD
220{
221 COORD dwMousePosition;
222 DWORD dwButtonState;
223 DWORD dwControlKeyState;
224 DWORD dwEventFlags;
225} MOUSE_EVENT_RECORD,*LPMOUSE_EVENT_RECORD;
226
227/* MOUSE_EVENT_RECORD.dwButtonState */
228#define FROM_LEFT_1ST_BUTTON_PRESSED 0x0001
229#define RIGHTMOST_BUTTON_PRESSED 0x0002
230#define FROM_LEFT_2ND_BUTTON_PRESSED 0x0004
231#define FROM_LEFT_3RD_BUTTON_PRESSED 0x0008
232#define FROM_LEFT_4TH_BUTTON_PRESSED 0x0010
233
234/* MOUSE_EVENT_RECORD.dwEventFlags */
235#define MOUSE_MOVED 0x0001
236#define DOUBLE_CLICK 0x0002
237#define MOUSE_WHEELED 0x0004
238#define MOUSE_HWHEELED 0x0008
239
240typedef struct tagWINDOW_BUFFER_SIZE_RECORD
241{
242 COORD dwSize;
243} WINDOW_BUFFER_SIZE_RECORD,*LPWINDOW_BUFFER_SIZE_RECORD;
244
245typedef struct tagMENU_EVENT_RECORD
246{
247 UINT dwCommandId; /* perhaps UINT16 ??? */
248} MENU_EVENT_RECORD,*LPMENU_EVENT_RECORD;
249
250typedef struct tagFOCUS_EVENT_RECORD
251{
252 BOOL bSetFocus; /* perhaps BOOL16 ??? */
253} FOCUS_EVENT_RECORD,*LPFOCUS_EVENT_RECORD;
254
255typedef struct tagINPUT_RECORD
256{
257 WORD EventType; /* 00 */
258 union
259 {
260 KEY_EVENT_RECORD KeyEvent;
261 MOUSE_EVENT_RECORD MouseEvent;
262 WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent;
263 MENU_EVENT_RECORD MenuEvent;
264 FOCUS_EVENT_RECORD FocusEvent;
265 } Event;
266} INPUT_RECORD,*PINPUT_RECORD;
267
268/* INPUT_RECORD.wEventType */
269#define KEY_EVENT 0x01
270#define MOUSE_EVENT 0x02
271#define WINDOW_BUFFER_SIZE_EVENT 0x04
272#define MENU_EVENT 0x08
273#define FOCUS_EVENT 0x10
274
275#define CONSOLE_TEXTMODE_BUFFER 1
276
277#ifdef __i386__
278/* Note: this should return a COORD, but calling convention for returning
279 * structures is different between Windows and gcc on i386. */
280WINBASEAPI DWORD WINAPI GetLargestConsoleWindowSize(HANDLE);
281
282static inline COORD __wine_GetLargestConsoleWindowSize_wrapper(HANDLE h)
283{
284 union {
285 COORD c;
286 DWORD dw;
287 } u;
288 u.dw = GetLargestConsoleWindowSize(h);
289 return u.c;
290}
291#define GetLargestConsoleWindowSize(h) __wine_GetLargestConsoleWindowSize_wrapper(h)
292
293#else /* __i386__ */
294WINBASEAPI COORD WINAPI GetLargestConsoleWindowSize(HANDLE);
295#endif /* __i386__ */
296
297WINBASEAPI BOOL WINAPI AddConsoleAliasA(LPSTR,LPSTR,LPSTR);
298WINBASEAPI BOOL WINAPI AddConsoleAliasW(LPWSTR,LPWSTR,LPWSTR);
299#define AddConsoleAlias WINELIB_NAME_AW(AddConsoleAlias)
300WINBASEAPI BOOL WINAPI AllocConsole(VOID);
301WINBASEAPI BOOL WINAPI AttachConsole(DWORD);
302WINBASEAPI HANDLE WINAPI CreateConsoleScreenBuffer( DWORD,DWORD,LPSECURITY_ATTRIBUTES,DWORD,LPVOID);
303WINBASEAPI BOOL WINAPI FillConsoleOutputAttribute( HANDLE,WORD,DWORD,COORD,LPDWORD);
304WINBASEAPI BOOL WINAPI FillConsoleOutputCharacterA(HANDLE,CHAR,DWORD,COORD,LPDWORD);
305WINBASEAPI BOOL WINAPI FillConsoleOutputCharacterW(HANDLE,WCHAR,DWORD,COORD,LPDWORD);
306#define FillConsoleOutputCharacter WINELIB_NAME_AW(FillConsoleOutputCharacter)
307WINBASEAPI BOOL WINAPI FlushConsoleInputBuffer( HANDLE);
308WINBASEAPI BOOL WINAPI FreeConsole(VOID);
309WINBASEAPI BOOL WINAPI GenerateConsoleCtrlEvent( DWORD,DWORD);
310WINBASEAPI DWORD WINAPI GetConsoleAliasA(LPSTR,LPSTR,DWORD,LPSTR);
311WINBASEAPI DWORD WINAPI GetConsoleAliasW(LPWSTR,LPWSTR,DWORD,LPWSTR);
312#define GetConsoleAlias WINELIB_NAME_AW(GetConsoleAlias)
313WINBASEAPI DWORD WINAPI GetConsoleAliasesA(LPSTR,DWORD,LPSTR);
314WINBASEAPI DWORD WINAPI GetConsoleAliasesW(LPWSTR,DWORD,LPWSTR);
315#define GetConsoleAliases WINELIB_NAME_AW(GetConsoleAliases)
316WINBASEAPI DWORD WINAPI GetConsoleAliasesLengthA(LPSTR);
317WINBASEAPI DWORD WINAPI GetConsoleAliasesLengthW(LPWSTR);
318#define GetConsoleAliasesLength WINELIB_NAME_AW(GetConsoleAliasesLength)
319WINBASEAPI DWORD WINAPI GetConsoleAliasExesA(LPSTR,DWORD);
320WINBASEAPI DWORD WINAPI GetConsoleAliasExesW(LPWSTR,DWORD);
321#define GetConsoleAliasExes WINELIB_NAME_AW(GetConsoleAliasExes)
322WINBASEAPI DWORD WINAPI GetConsoleAliasExesLengthA(VOID);
323WINBASEAPI DWORD WINAPI GetConsoleAliasExesLengthW(VOID);
324#define GetConsoleAliasExesLength WINELIB_NAME_AW(GetConsoleAliasExesLength)
325WINBASEAPI UINT WINAPI GetConsoleCP(VOID);
326WINBASEAPI BOOL WINAPI GetConsoleCursorInfo( HANDLE,LPCONSOLE_CURSOR_INFO);
327WINBASEAPI BOOL WINAPI GetConsoleDisplayMode(LPDWORD);
328WINBASEAPI COORD WINAPI GetConsoleFontSize(HANDLE,DWORD);
329WINBASEAPI BOOL WINAPI GetConsoleHistoryInfo(LPCONSOLE_HISTORY_INFO);
330WINBASEAPI BOOL WINAPI GetConsoleInputExeNameA(DWORD,LPSTR);
331WINBASEAPI BOOL WINAPI GetConsoleInputExeNameW(DWORD,LPWSTR);
332#define GetConsoleInputExeName WINELIB_NAME_AW(GetConsoleInputExeName)
333WINBASEAPI BOOL WINAPI GetConsoleMode( HANDLE,LPDWORD);
334WINBASEAPI DWORD WINAPI GetConsoleOriginalTitleA(LPSTR,DWORD);
335WINBASEAPI DWORD WINAPI GetConsoleOriginalTitleW(LPWSTR,DWORD);
336#define GetConsoleOriginalTitle WINELIB_NAME_AW(GetConsoleOriginalTitle)
337WINBASEAPI UINT WINAPI GetConsoleOutputCP(VOID);
338WINBASEAPI DWORD WINAPI GetConsoleProcessList(LPDWORD,DWORD);
339WINBASEAPI BOOL WINAPI GetConsoleScreenBufferInfo(HANDLE,LPCONSOLE_SCREEN_BUFFER_INFO);
340WINBASEAPI BOOL WINAPI GetConsoleScreenBufferInfoEx(HANDLE,LPCONSOLE_SCREEN_BUFFER_INFOEX);
341WINBASEAPI DWORD WINAPI GetConsoleTitleA(LPSTR,DWORD);
342WINBASEAPI DWORD WINAPI GetConsoleTitleW(LPWSTR,DWORD);
343#define GetConsoleTitle WINELIB_NAME_AW(GetConsoleTitle)
344WINBASEAPI HWND WINAPI GetConsoleWindow(void);
345WINBASEAPI BOOL WINAPI GetCurrentConsoleFont(HANDLE,BOOL,LPCONSOLE_FONT_INFO);
346WINBASEAPI BOOL WINAPI GetCurrentConsoleFontEx(HANDLE,BOOL,LPCONSOLE_FONT_INFOEX);
347WINBASEAPI BOOL WINAPI GetNumberOfConsoleInputEvents( HANDLE,LPDWORD);
348WINBASEAPI BOOL WINAPI GetNumberOfConsoleMouseButtons(LPDWORD);
349WINBASEAPI BOOL WINAPI PeekConsoleInputA( HANDLE,PINPUT_RECORD,DWORD,LPDWORD);
350WINBASEAPI BOOL WINAPI PeekConsoleInputW( HANDLE,PINPUT_RECORD,DWORD,LPDWORD);
351#define PeekConsoleInput WINELIB_NAME_AW(PeekConsoleInput)
352WINBASEAPI BOOL WINAPI ReadConsoleA(HANDLE,LPVOID,DWORD,LPDWORD,LPVOID);
353WINBASEAPI BOOL WINAPI ReadConsoleW(HANDLE,LPVOID,DWORD,LPDWORD,LPVOID);
354#define ReadConsole WINELIB_NAME_AW(ReadConsole)
355WINBASEAPI BOOL WINAPI ReadConsoleInputA(HANDLE,PINPUT_RECORD,DWORD,LPDWORD);
356WINBASEAPI BOOL WINAPI ReadConsoleInputW(HANDLE,PINPUT_RECORD,DWORD,LPDWORD);
357#define ReadConsoleInput WINELIB_NAME_AW(ReadConsoleInput)
358WINBASEAPI BOOL WINAPI ReadConsoleOutputA( HANDLE,LPCHAR_INFO,COORD,COORD,LPSMALL_RECT);
359WINBASEAPI BOOL WINAPI ReadConsoleOutputW( HANDLE,LPCHAR_INFO,COORD,COORD,LPSMALL_RECT);
360#define ReadConsoleOutput WINELIB_NAME_AW(ReadConsoleOutput)
361WINBASEAPI BOOL WINAPI ReadConsoleOutputAttribute( HANDLE,LPWORD,DWORD,COORD,LPDWORD);
362WINBASEAPI BOOL WINAPI ReadConsoleOutputCharacterA(HANDLE,LPSTR,DWORD,COORD,LPDWORD);
363WINBASEAPI BOOL WINAPI ReadConsoleOutputCharacterW(HANDLE,LPWSTR,DWORD,COORD,LPDWORD);
364#define ReadConsoleOutputCharacter WINELIB_NAME_AW(ReadConsoleOutputCharacter)
365WINBASEAPI BOOL WINAPI ScrollConsoleScreenBufferA( HANDLE,LPSMALL_RECT,LPSMALL_RECT,COORD,LPCHAR_INFO);
366WINBASEAPI BOOL WINAPI ScrollConsoleScreenBufferW( HANDLE,LPSMALL_RECT,LPSMALL_RECT,COORD,LPCHAR_INFO);
367#define ScrollConsoleScreenBuffer WINELIB_NAME_AW(ScrollConsoleScreenBuffer)
368WINBASEAPI BOOL WINAPI SetConsoleActiveScreenBuffer( HANDLE);
369WINBASEAPI BOOL WINAPI SetConsoleCP(UINT);
370WINBASEAPI BOOL WINAPI SetConsoleCtrlHandler( PHANDLER_ROUTINE,BOOL);
371WINBASEAPI BOOL WINAPI SetConsoleCursorInfo( HANDLE,LPCONSOLE_CURSOR_INFO);
372WINBASEAPI BOOL WINAPI SetConsoleCursorPosition(HANDLE,COORD);
373WINBASEAPI BOOL WINAPI SetConsoleDisplayMode(HANDLE,DWORD,LPCOORD);
374WINBASEAPI BOOL WINAPI SetConsoleHistoryInfo(LPCONSOLE_HISTORY_INFO);
375WINBASEAPI BOOL WINAPI SetConsoleMode( HANDLE,DWORD);
376WINBASEAPI BOOL WINAPI SetConsoleOutputCP(UINT);
377WINBASEAPI BOOL WINAPI SetConsoleScreenBufferInfoEx(HANDLE,LPCONSOLE_SCREEN_BUFFER_INFOEX);
378WINBASEAPI BOOL WINAPI SetConsoleScreenBufferSize(HANDLE,COORD);
379WINBASEAPI BOOL WINAPI SetConsoleTextAttribute( HANDLE,WORD);
380WINBASEAPI BOOL WINAPI SetConsoleTitleA(LPCSTR);
381WINBASEAPI BOOL WINAPI SetConsoleTitleW(LPCWSTR);
382#define SetConsoleTitle WINELIB_NAME_AW(SetConsoleTitle)
383WINBASEAPI BOOL WINAPI SetConsoleWindowInfo( HANDLE,BOOL,LPSMALL_RECT);
384WINBASEAPI BOOL WINAPI SetCurrentConsoleFontEx(HANDLE,BOOL,LPCONSOLE_FONT_INFOEX);
385WINBASEAPI BOOL WINAPI WriteConsoleA(HANDLE,CONST VOID *,DWORD,LPDWORD,LPVOID);
386WINBASEAPI BOOL WINAPI WriteConsoleW(HANDLE,CONST VOID *,DWORD,LPDWORD,LPVOID);
387#define WriteConsole WINELIB_NAME_AW(WriteConsole)
388WINBASEAPI BOOL WINAPI WriteConsoleInputA(HANDLE,const INPUT_RECORD *,DWORD,LPDWORD);
389WINBASEAPI BOOL WINAPI WriteConsoleInputW(HANDLE,const INPUT_RECORD *,DWORD,LPDWORD);
390#define WriteConsoleInput WINELIB_NAME_AW(WriteConsoleInput)
391WINBASEAPI BOOL WINAPI WriteConsoleOutputA(HANDLE,const CHAR_INFO*,COORD,COORD,LPSMALL_RECT);
392WINBASEAPI BOOL WINAPI WriteConsoleOutputW(HANDLE,const CHAR_INFO*,COORD,COORD,LPSMALL_RECT);
393#define WriteConsoleOutput WINELIB_NAME_AW(WriteConsoleOutput)
394WINBASEAPI BOOL WINAPI WriteConsoleOutputAttribute(HANDLE,CONST WORD *,DWORD,COORD,LPDWORD);
395WINBASEAPI BOOL WINAPI WriteConsoleOutputCharacterA(HANDLE,LPCSTR,DWORD,COORD,LPDWORD);
396WINBASEAPI BOOL WINAPI WriteConsoleOutputCharacterW(HANDLE,LPCWSTR,DWORD,COORD,LPDWORD);
397#define WriteConsoleOutputCharacter WINELIB_NAME_AW(WriteConsoleOutputCharacter)
398
399#ifdef __cplusplus
400}
401#endif
402
403#endif /* __WINE_WINCON_H */
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette