#line 1 "c:/build/hg.instantbird.org/mozilla/gfx/layers/d3d9/LayerManagerD3D9.cpp" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\stl_wrappers\\../../dist/include/mozilla-config.h" /* List of defines generated by configure. Included with preprocessor flag, * -include, to avoid long list of -D defines on the compile command-line. * Do not edit. */ #line 95 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\stl_wrappers\\../../dist/include/mozilla-config.h" #line 1 "c:/build/hg.instantbird.org/mozilla/gfx/layers/d3d9/LayerManagerD3D9.cpp" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla Corporation code. * * The Initial Developer of the Original Code is Mozilla Foundation. * Portions created by the Initial Developer are Copyright (C) 2009 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Bas Schouten * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\LayerManagerD3D9.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla Corporation code. * * The Initial Developer of the Original Code is Mozilla Foundation. * Portions created by the Initial Developer are Copyright (C) 2009 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Bas Schouten * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\Layers.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 2 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla Corporation code. * * The Initial Developer of the Original Code is Mozilla Foundation. * Portions created by the Initial Developer are Copyright (C) 2009 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Robert O'Callahan * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxTypes.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* ** File: prtypes.h ** Description: Definitions of NSPR's basic types ** ** Prototypes and macros used to make up for deficiencies that we have found ** in ANSI environments. ** ** Since we do not wrap and all the other standard headers, authors ** of portable code will not know in general that they need these definitions. ** Instead of requiring these authors to find the dependent uses in their code ** and take the following steps only in those C files, we take steps once here ** for all C files. **/ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prcpucfg.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 44 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prcpucfg.h" #line 57 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prcpucfg.h" #line 58 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prcpucfg.h" #line 260 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prcpucfg.h" #line 264 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prcpucfg.h" #line 309 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prcpucfg.h" #line 311 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prcpucfg.h" #line 59 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" #line 60 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" #line 1 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stddef.h" /*** *stddef.h - definitions/declarations for common constants, types, variables * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file contains definitions and declarations for some commonly * used constants, types, and variables. * [ANSI] * * [Public] * ****/ #pragma once #line 18 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stddef.h" #line 1 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" /*** *crtdefs.h - definitions/declarations common to all CRT * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file has mostly defines used by the entire CRT. * * [Public] * ****/ /* Lack of pragma once is deliberate */ /* Define _CRTIMP */ #line 22 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 23 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 38 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 42 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" /* Note on use of "deprecate": * Various places in this header and other headers use __declspec(deprecate) or macros that have the term DEPRECATE in them. * We use deprecate here ONLY to signal the compiler to emit a warning about these items. The use of deprecate * should NOT be taken to imply that any standard committee has deprecated these functions from the relevant standards. * In fact, these functions are NOT deprecated from the standard. * * Full details can be found in our documentation by searching for "Security Enhancements in the CRT". */ #line 65 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 67 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 1 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\sal.h" /*** *sal.h - markers for documenting the semantics of APIs * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * sal.h provides a set of annotations to describe how a function uses its * parameters - the assumptions it makes about them, and the guarantees it makes * upon finishing. * * [Public] * ****/ /* ------------------------------------------------------------------------------- Introduction sal.h provides a set of annotations to describe how a function uses its parameters - the assumptions it makes about them, and the guarantees it makes upon finishing. Annotations may be placed before either a function parameter's type or its return type, and describe the function's behavior regarding the parameter or return value. There are two classes of annotations: buffer annotations and advanced annotations. Buffer annotations describe how functions use their pointer parameters, and advanced annotations either describe complex/unusual buffer behavior, or provide additional information about a parameter that is not otherwise expressible. ------------------------------------------------------------------------------- Buffer Annotations The most important annotations in sal.h provide a consistent way to annotate buffer parameters or return values for a function. Each of these annotations describes a single buffer (which could be a string, a fixed-length or variable-length array, or just a pointer) that the function interacts with: where it is, how large it is, how much is initialized, and what the function does with it. The appropriate macro for a given buffer can be constructed using the table below. Just pick the appropriate values from each category, and combine them together with a leading underscore. Some combinations of values do not make sense as buffer annotations. Only meaningful annotations can be added to your code; for a list of these, see the buffer annotation definitions section. Only a single buffer annotation should be used for each parameter. |------------|------------|---------|--------|----------|----------|---------------| | Level | Usage | Size | Output | NullTerm | Optional | Parameters | |------------|------------|---------|--------|----------|----------|---------------| | <> | <> | <> | <> | _z | <> | <> | | _deref | _in | _ecount | _full | _nz | _opt | (size) | | _deref_opt | _out | _bcount | _part | | | (size,length) | | | _inout | | | | | | | | | | | | | | |------------|------------|---------|--------|----------|----------|---------------| Level: Describes the buffer pointer's level of indirection from the parameter or return value 'p'. <> : p is the buffer pointer. _deref : *p is the buffer pointer. p must not be NULL. _deref_opt : *p may be the buffer pointer. p may be NULL, in which case the rest of the annotation is ignored. Usage: Describes how the function uses the buffer. <> : The buffer is not accessed. If used on the return value or with _deref, the function will provide the buffer, and it will be uninitialized at exit. Otherwise, the caller must provide the buffer. This should only be used for alloc and free functions. _in : The function will only read from the buffer. The caller must provide the buffer and initialize it. Cannot be used with _deref. _out : The function will only write to the buffer. If used on the return value or with _deref, the function will provide the buffer and initialize it. Otherwise, the caller must provide the buffer, and the function will initialize it. _inout : The function may freely read from and write to the buffer. The caller must provide the buffer and initialize it. If used with _deref, the buffer may be reallocated by the function. Size: Describes the total size of the buffer. This may be less than the space actually allocated for the buffer, in which case it describes the accessible amount. <> : No buffer size is given. If the type specifies the buffer size (such as with LPSTR and LPWSTR), that amount is used. Otherwise, the buffer is one element long. Must be used with _in, _out, or _inout. _ecount : The buffer size is an explicit element count. _bcount : The buffer size is an explicit byte count. Output: Describes how much of the buffer will be initialized by the function. For _inout buffers, this also describes how much is initialized at entry. Omit this category for _in buffers; they must be fully initialized by the caller. <> : The type specifies how much is initialized. For instance, a function initializing an LPWSTR must NULL-terminate the string. _full : The function initializes the entire buffer. _part : The function initializes part of the buffer, and explicitly indicates how much. NullTerm: States if the present of a '\0' marks the end of valid elements in the buffer. _z : A '\0' indicated the end of the buffer _nz : The buffer may not be null terminated and a '\0' does not indicate the end of the buffer. Optional: Describes if the buffer itself is optional. <> : The pointer to the buffer must not be NULL. _opt : The pointer to the buffer might be NULL. It will be checked before being dereferenced. Parameters: Gives explicit counts for the size and length of the buffer. <> : There is no explicit count. Use when neither _ecount nor _bcount is used. (size) : Only the buffer's total size is given. Use with _ecount or _bcount but not _part. (size,length) : The buffer's total size and initialized length are given. Use with _ecount_part and _bcount_part. ------------------------------------------------------------------------------- Buffer Annotation Examples LWSTDAPI_(BOOL) StrToIntExA( LPCSTR pszString, -- No annotation required, const implies __in. DWORD dwFlags, __out int *piRet -- A pointer whose dereference will be filled in. ); void MyPaintingFunction( __in HWND hwndControl, -- An initialized read-only parameter. __in_opt HDC hdcOptional, -- An initialized read-only parameter that might be NULL. __inout IPropertyStore *ppsStore -- An initialized parameter that may be freely used -- and modified. ); LWSTDAPI_(BOOL) PathCompactPathExA( __out_ecount(cchMax) LPSTR pszOut, -- A string buffer with cch elements that will -- be NULL terminated on exit. LPCSTR pszSrc, -- No annotation required, const implies __in. UINT cchMax, DWORD dwFlags ); HRESULT SHLocalAllocBytes( size_t cb, __deref_bcount(cb) T **ppv -- A pointer whose dereference will be set to an -- uninitialized buffer with cb bytes. ); __inout_bcount_full(cb) : A buffer with cb elements that is fully initialized at entry and exit, and may be written to by this function. __out_ecount_part(count, *countOut) : A buffer with count elements that will be partially initialized by this function. The function indicates how much it initialized by setting *countOut. ------------------------------------------------------------------------------- Advanced Annotations Advanced annotations describe behavior that is not expressible with the regular buffer macros. These may be used either to annotate buffer parameters that involve complex or conditional behavior, or to enrich existing annotations with additional information. __success(expr) f : indicates whether function f succeeded or not. If is true at exit, all the function's guarantees (as given by other annotations) must hold. If is false at exit, the caller should not expect any of the function's guarantees to hold. If not used, the function must always satisfy its guarantees. Added automatically to functions that indicate success in standard ways, such as by returning an HRESULT. __nullterminated p : Pointer p is a buffer that may be read or written up to and including the first NULL character or pointer. May be used on typedefs, which marks valid (properly initialized) instances of that type as being NULL-terminated. __nullnullterminated p : Pointer p is a buffer that may be read or written up to and including the first sequence of two NULL characters or pointers. May be used on typedefs, which marks valid instances of that type as being double-NULL terminated. __reserved v : Value v must be 0/NULL, reserved for future use. __checkReturn v : Return value v must not be ignored by callers of this function. __typefix(ctype) v : Value v should be treated as an instance of ctype, rather than its declared type. __override f : Specify C#-style 'override' behaviour for overriding virtual methods. __callback f : Function f can be used as a function pointer. __format_string p : Pointer p is a string that contains % markers in the style of printf. __blocksOn(resource) f : Function f blocks on the resource 'resource'. __fallthrough : Annotates switch statement labels where fall-through is desired, to distinguish from forgotten break statements. ------------------------------------------------------------------------------- Advanced Annotation Examples __success(return == TRUE) LWSTDAPI_(BOOL) PathCanonicalizeA(__out_ecount(MAX_PATH) LPSTR pszBuf, LPCSTR pszPath) : pszBuf is only guaranteed to be NULL-terminated when TRUE is returned. typedef __nullterminated WCHAR* LPWSTR : Initialized LPWSTRs are NULL-terminated strings. __out_ecount(cch) __typefix(LPWSTR) void *psz : psz is a buffer parameter which will be a NULL-terminated WCHAR string at exit, and which initially contains cch WCHARs. ------------------------------------------------------------------------------- */ #pragma once #line 226 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\sal.h" extern "C" { #line 232 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\sal.h" /* ------------------------------------------------------------------------------- Helper Macro Definitions These express behavior common to many of the high-level annotations. DO NOT USE THESE IN YOUR CODE. ------------------------------------------------------------------------------- */ /* The helper annotations are only understood by the compiler version used by various defect detection tools. When the regular compiler is running, they are defined into nothing, and do not affect the compiled code. */ #line 452 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\sal.h" #line 486 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\sal.h" /* ------------------------------------------------------------------------------- Buffer Annotation Definitions Any of these may be used to directly annotate functions, but only one should be used for each parameter. To determine which annotation to use for a given buffer, use the table in the buffer annotations section. ------------------------------------------------------------------------------- */ /* ------------------------------------------------------------------------------- Advanced Annotation Definitions Any of these may be used to directly annotate functions, and may be used in combination with each other or with regular buffer macros. For an explanation of each annotation, see the advanced annotations section. ------------------------------------------------------------------------------- */ #line 716 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\sal.h" #line 723 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\sal.h" #line 724 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\sal.h" } #line 728 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\sal.h" #line 69 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 79 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 88 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 95 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 1 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtassem.h" /*** *crtassem.h - Libraries Assembly information * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file has information about Libraries Assembly version. * * [Public] * ****/ #pragma once #line 18 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtassem.h" #line 23 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtassem.h" #line 25 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtassem.h" #line 26 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtassem.h" #line 30 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtassem.h" #line 101 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #pragma comment(linker,"/manifestdependency:\"type='win32' " \ "name='" "Microsoft.VC80" ".DebugCRT' " \ "version='" "8.0.50727.762" "' " \ "processorArchitecture='x86' " \ "publicKeyToken='" "1fc8b3b9a1e18e3b" "'\"") #line 117 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 119 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 157 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 159 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #pragma pack(push,8) #line 166 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 1 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\vadefs.h" /*** *vadefs.h - defines helper macros for stdarg.h * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This is a helper file for stdarg.h * * [Public] * ****/ #pragma once #line 16 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\vadefs.h" #line 23 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\vadefs.h" /* * Currently, all MS C compilers for Win32 platforms default to 8 byte * alignment. */ #pragma pack(push,8) #line 34 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\vadefs.h" extern "C" { #line 38 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\vadefs.h" #line 46 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\vadefs.h" #line 47 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\vadefs.h" typedef __w64 unsigned int uintptr_t; #line 54 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\vadefs.h" #line 56 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\vadefs.h" typedef char * va_list; #line 63 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\vadefs.h" #line 65 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\vadefs.h" #line 71 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\vadefs.h" #line 83 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\vadefs.h" #line 86 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\vadefs.h" #line 100 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\vadefs.h" #line 145 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\vadefs.h" } #line 149 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\vadefs.h" #pragma pack(pop) #line 153 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\vadefs.h" #line 155 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\vadefs.h" #line 168 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" extern "C" { #line 172 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" /* preprocessor string helpers */ #line 178 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 183 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 192 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" /* Define _CRTIMP_NOIA64 */ #line 199 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 201 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 202 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" /* Define _CRTIMP2 */ #line 211 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 212 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" /* Define _CRTIMP_ALTERNATIVE */ #line 223 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 226 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 227 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" /* Define _MRTIMP */ #line 233 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" /* Define _MRTIMP2 */ #line 243 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 245 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 253 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 254 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 259 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 261 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 262 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 267 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 269 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 270 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 275 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 277 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 278 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 289 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 290 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 297 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 298 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" /* define a specific constant for mixed mode */ /* Define __STDC_SECURE_LIB__ */ /* Retain__GOT_SECURE_LIB__ for back-compat */ /* Default value for __STDC_WANT_SECURE_LIB__ is 1 */ #line 316 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" /* Turn off warnings if __STDC_WANT_SECURE_LIB__ is 0 */ #line 321 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" /* See note on use of deprecate at the top of this file */ #line 328 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" /* Define _CRT_INSECURE_DEPRECATE */ /* See note on use of deprecate at the top of this file */ #line 334 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 341 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 342 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" /* Define _CRT_INSECURE_DEPRECATE_MEMORY */ /* See note on use of deprecate at the top of this file */ #line 348 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 355 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 356 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" /* Define _CRT_INSECURE_DEPRECATE_GLOBALS */ /* See note on use of deprecate at the top of this file */ #line 363 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 364 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 369 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 372 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 374 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 375 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 376 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" /* Define _CRT_MANAGED_HEAP_DEPRECATE */ /* See note on use of deprecate at the top of this file */ #line 382 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 393 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 395 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 396 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 397 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" /* _SECURECRT_FILL_BUFFER_PATTERN is the same as _bNoMansLandFill */ /* obsolete stuff */ /* Define _CRT_OBSOLETE */ /* See note on use of deprecate at the top of this file */ #line 408 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 415 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 416 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" /* jit64 instrinsic stuff */ #line 424 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 426 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 427 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" /* Define overload switches */ #line 437 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 438 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" /* _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT is ignored if _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES is set to 0 */ #line 448 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 449 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 457 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 462 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 463 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" /* Define _CRT_NONSTDC_DEPRECATE */ /* See note on use of deprecate at the top of this file */ #line 469 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 476 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 477 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" typedef __w64 unsigned int size_t; #line 484 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 486 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" typedef size_t rsize_t; #line 492 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 493 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" typedef __w64 int intptr_t; #line 500 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 502 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" typedef __w64 int ptrdiff_t; #line 518 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 520 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" typedef unsigned short wchar_t; #line 525 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" typedef unsigned short wint_t; typedef unsigned short wctype_t; #line 531 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 550 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 551 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" /* errcode is deprecated in favor or errno_t, which is part of the standard proposal */ __declspec(deprecated("This name was supported during some Whidbey pre-releases. Instead, use the standard name errno_t.")) typedef int errcode; #line 560 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" typedef int errno_t; #line 563 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" typedef __w64 long __time32_t; /* 32-bit time value */ #line 568 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" typedef __int64 __time64_t; /* 64-bit time value */ #line 573 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 575 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" typedef __time64_t time_t; /* time value */ #line 582 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 584 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 592 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 593 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 598 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 600 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 601 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 606 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 608 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 609 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" /* Define _CRTNOALIAS, _CRTRESTRICT */ #line 616 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 617 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 622 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 626 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 638 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" /* Define __cdecl for non-Microsoft compilers */ #line 643 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 648 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 650 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 651 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" /* _TRUNCATE */ #line 659 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" /* helper macros for cpp overloads */ #line 822 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 823 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 1889 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 2033 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 2034 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" struct threadlocaleinfostruct; struct threadmbcinfostruct; typedef struct threadlocaleinfostruct * pthreadlocinfo; typedef struct threadmbcinfostruct * pthreadmbcinfo; struct __lc_time_data; typedef struct localeinfo_struct { pthreadlocinfo locinfo; pthreadmbcinfo mbcinfo; } _locale_tstruct, *_locale_t; typedef struct tagLC_ID { unsigned short wLanguage; unsigned short wCountry; unsigned short wCodePage; } LC_ID, *LPLC_ID; #line 2055 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" typedef struct threadlocaleinfostruct { int refcount; unsigned int lc_codepage; unsigned int lc_collate_cp; unsigned long lc_handle[6]; /* LCID */ LC_ID lc_id[6]; struct { char *locale; wchar_t *wlocale; int *refcount; int *wrefcount; } lc_category[6]; int lc_clike; int mb_cur_max; int * lconv_intl_refcount; int * lconv_num_refcount; int * lconv_mon_refcount; struct lconv * lconv; int * ctype1_refcount; unsigned short * ctype1; const unsigned short * pctype; const unsigned char * pclmap; const unsigned char * pcumap; struct __lc_time_data * lc_time_curr; } threadlocinfo; #line 2084 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" } #line 2088 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 2092 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 2094 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 2098 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 2100 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 2104 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 2106 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 2113 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 2117 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #pragma pack(pop) #line 2121 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 2123 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" #line 23 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stddef.h" extern "C" { #line 27 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stddef.h" /* Define NULL pointer value */ #line 35 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stddef.h" #line 36 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stddef.h" /* Declare reference to errno */ __declspec(dllimport) extern int * __cdecl _errno(void); errno_t __cdecl _set_errno( int _Value); errno_t __cdecl _get_errno( int * _Value); #line 47 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stddef.h" /* Define offsetof macro */ #line 56 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stddef.h" #line 66 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stddef.h" __declspec(dllimport) extern unsigned long __cdecl __threadid(void); __declspec(dllimport) extern uintptr_t __cdecl __threadhandle(void); #line 72 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stddef.h" } #line 77 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stddef.h" #line 79 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stddef.h" #line 62 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" /*********************************************************************** ** MACROS: PR_EXTERN ** PR_IMPLEMENT ** DESCRIPTION: ** These are only for externally visible routines and globals. For ** internal routines, just use "extern" for type checking and that ** will not export internal cross-file or forward-declared symbols. ** Define a macro for declaring procedures return types. We use this to ** deal with windoze specific type hackery for DLL definitions. Use ** PR_EXTERN when the prototype for the method is declared. Use ** PR_IMPLEMENT for the implementation of the method. ** ** Example: ** in dowhim.h ** PR_EXTERN( void ) DoWhatIMean( void ); ** in dowhim.c ** PR_IMPLEMENT( void ) DoWhatIMean( void ) { return; } ** ** ***********************************************************************/ #line 176 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" #line 181 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" #line 184 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" /*********************************************************************** ** MACROS: PR_BEGIN_MACRO ** PR_END_MACRO ** DESCRIPTION: ** Macro body brackets so that macros with compound statement definitions ** behave syntactically more like functions when called. ***********************************************************************/ /*********************************************************************** ** MACROS: PR_BEGIN_EXTERN_C ** PR_END_EXTERN_C ** DESCRIPTION: ** Macro shorthands for conditional C++ extern block delimiters. ***********************************************************************/ #line 208 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" /*********************************************************************** ** MACROS: PR_BIT ** PR_BITMASK ** DESCRIPTION: ** Bit masking macros. XXX n must be <= 31 to be portable ***********************************************************************/ /*********************************************************************** ** MACROS: PR_ROUNDUP ** PR_MIN ** PR_MAX ** PR_ABS ** DESCRIPTION: ** Commonly used macros for operations on compatible types. ***********************************************************************/ extern "C" { /************************************************************************ ** TYPES: PRUint8 ** PRInt8 ** DESCRIPTION: ** The int8 types are known to be 8 bits each. There is no type that ** is equivalent to a plain "char". ************************************************************************/ typedef unsigned char PRUint8; /* ** Some cfront-based C++ compilers do not like 'signed char' and ** issue the warning message: ** warning: "signed" not implemented (ignored) ** For these compilers, we have to define PRInt8 as plain 'char'. ** Make sure that plain 'char' is indeed signed under these compilers. */ #line 255 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" typedef signed char PRInt8; #line 257 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" #line 260 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" /************************************************************************ * MACROS: PR_INT8_MAX * PR_INT8_MIN * PR_UINT8_MAX * DESCRIPTION: * The maximum and minimum values of a PRInt8 or PRUint8. ************************************************************************/ /************************************************************************ ** TYPES: PRUint16 ** PRInt16 ** DESCRIPTION: ** The int16 types are known to be 16 bits each. ************************************************************************/ typedef unsigned short PRUint16; typedef short PRInt16; #line 285 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" /************************************************************************ * MACROS: PR_INT16_MAX * PR_INT16_MIN * PR_UINT16_MAX * DESCRIPTION: * The maximum and minimum values of a PRInt16 or PRUint16. ************************************************************************/ /************************************************************************ ** TYPES: PRUint32 ** PRInt32 ** DESCRIPTION: ** The int32 types are known to be 32 bits each. ************************************************************************/ typedef unsigned int PRUint32; typedef int PRInt32; #line 317 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" /************************************************************************ * MACROS: PR_INT32_MAX * PR_INT32_MIN * PR_UINT32_MAX * DESCRIPTION: * The maximum and minimum values of a PRInt32 or PRUint32. ************************************************************************/ /************************************************************************ ** TYPES: PRUint64 ** PRInt64 ** DESCRIPTION: ** The int64 types are known to be 64 bits each. Care must be used when ** declaring variables of type PRUint64 or PRInt64. Different hardware ** architectures and even different compilers have varying support for ** 64 bit values. The only guaranteed portability requires the use of ** the LL_ macros (see prlong.h). ************************************************************************/ /* Keep this in sync with prlong.h. */ /* * On 64-bit Mac OS X, uint64 needs to be defined as unsigned long long to * match uint64_t, otherwise our uint64 typedef conflicts with the uint64 * typedef in cssmconfig.h, which CoreServices.h includes indirectly. */ #line 351 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" typedef __int64 PRInt64; typedef unsigned __int64 PRUint64; #line 357 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" #line 367 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" /************************************************************************ ** TYPES: PRUintn ** PRIntn ** DESCRIPTION: ** The PRIntn types are most appropriate for automatic variables. They are ** guaranteed to be at least 16 bits, though various architectures may ** define them to be wider (e.g., 32 or even 64 bits). These types are ** never valid for fields of a structure. ************************************************************************/ typedef int PRIntn; typedef unsigned int PRUintn; #line 383 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" /************************************************************************ ** TYPES: PRFloat64 ** DESCRIPTION: ** NSPR's floating point type is always 64 bits. ************************************************************************/ typedef double PRFloat64; /************************************************************************ ** TYPES: PRSize ** DESCRIPTION: ** A type for representing the size of objects. ************************************************************************/ typedef size_t PRSize; /************************************************************************ ** TYPES: PROffset32, PROffset64 ** DESCRIPTION: ** A type for representing byte offsets from some location. ************************************************************************/ typedef PRInt32 PROffset32; typedef PRInt64 PROffset64; /************************************************************************ ** TYPES: PRPtrDiff ** DESCRIPTION: ** A type for pointer difference. Variables of this type are suitable ** for storing a pointer or pointer subtraction. ************************************************************************/ typedef ptrdiff_t PRPtrdiff; /************************************************************************ ** TYPES: PRUptrdiff ** DESCRIPTION: ** A type for pointer difference. Variables of this type are suitable ** for storing a pointer or pointer sutraction. ************************************************************************/ typedef unsigned long PRUptrdiff; #line 426 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" /************************************************************************ ** TYPES: PRBool ** DESCRIPTION: ** Use PRBool for variables and parameter types. Use PR_FALSE and PR_TRUE ** for clarity of target type in assignments and actual arguments. Use ** 'if (bool)', 'while (!bool)', '(bool) ? x : y' etc., to test booleans ** just as you would C int-valued conditions. ************************************************************************/ typedef PRIntn PRBool; /************************************************************************ ** TYPES: PRPackedBool ** DESCRIPTION: ** Use PRPackedBool within structs where bitfields are not desirable ** but minimum and consistant overhead matters. ************************************************************************/ typedef PRUint8 PRPackedBool; /* ** Status code used by some routines that have a single point of failure or ** special status return. */ typedef enum { PR_FAILURE = -1, PR_SUCCESS = 0 } PRStatus; typedef wchar_t PRUnichar; #line 460 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" #line 461 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" /* ** WARNING: The undocumented data types PRWord and PRUword are ** only used in the garbage collection and arena code. Do not ** use PRWord and PRUword in new code. ** ** A PRWord is an integer that is the same size as a void*. ** It implements the notion of a "word" in the Java Virtual ** Machine. (See Sec. 3.4 "Words", The Java Virtual Machine ** Specification, Addison-Wesley, September 1996. ** http://java.sun.com/docs/books/vmspec/index.html.) */ typedef long PRWord; typedef unsigned long PRUword; #line 480 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" #line 483 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" /********* ???????????????? FIX ME ??????????????????????????? *****/ /********************** Some old definitions until pr=>ds transition is done ***/ /********************** Also, we are still using NSPR 1.0. GC ******************/ /* ** Fundamental NSPR macros, used nearly everywhere. */ /* ** Macro body brackets so that macros with compound statement definitions ** behave syntactically more like functions when called. */ /* ** Macro shorthands for conditional C++ extern block delimiters. */ #line 516 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\obsolete/protypes.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* * This header typedefs the old 'native' types to the new PRs. * These definitions are scheduled to be eliminated at the earliest * possible time. The NSPR API is implemented and documented using * the new definitions. */ typedef PRUintn uintn; typedef PRIntn intn; #line 52 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\obsolete/protypes.h" /* * It is trickier to define uint, int8, uint8, int16, uint16, * int32, uint32, int64, and uint64 because some of these int * types are defined by standard header files on some platforms. * Our strategy here is to include all such standard headers * first, and then define these int types only if they are not * defined by those standard headers. */ /* * BeOS defines all the int types below in its standard header * file SupportDefs.h. */ /* * SVR4 typedef of uint is commonly found on UNIX machines. * * On AIX 4.3, sys/inttypes.h (which is included by sys/types.h) * defines the types int8, int16, int32, and int64. * * On OS/2, sys/types.h defines uint. */ #line 81 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\obsolete/protypes.h" /* model.h on HP-UX defines int8, int16, and int32. */ /* * uint */ typedef PRUintn uint; #line 94 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\obsolete/protypes.h" /* * uint64 */ typedef PRUint64 uint64; #line 102 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\obsolete/protypes.h" /* * uint32 */ #line 111 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\obsolete/protypes.h" typedef unsigned long uint32; #line 113 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\obsolete/protypes.h" #line 114 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\obsolete/protypes.h" /* * uint16 */ typedef PRUint16 uint16; #line 122 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\obsolete/protypes.h" /* * uint8 */ typedef PRUint8 uint8; #line 130 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\obsolete/protypes.h" /* * int64 */ typedef PRInt64 int64; #line 138 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\obsolete/protypes.h" /* * int32 */ #line 148 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\obsolete/protypes.h" typedef long int32; #line 150 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\obsolete/protypes.h" #line 151 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\obsolete/protypes.h" /* * int16 */ typedef PRInt16 int16; #line 160 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\obsolete/protypes.h" /* * int8 */ typedef PRInt8 int8; #line 169 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\obsolete/protypes.h" typedef PRFloat64 float64; typedef PRUptrdiff uptrdiff_t; typedef PRUword uprword_t; typedef PRWord prword_t; /* Re: prbit.h */ /* Re: prarena.h->plarena.h */ /* Re: prhash.h->plhash.h */ #line 232 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\obsolete/protypes.h" #line 518 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" /********* ????????????? End Fix me ?????????????????????????????? *****/ #line 521 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" /* ** Compile-time assert. "condition" must be a constant expression. ** The macro can be used only in places where an "extern" declaration is ** allowed. */ } #line 533 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" #line 42 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxTypes.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAtomicRefcnt.h" /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla code. * * The Initial Developer of the Original Code is the Mozilla Foundation. * Portions created by the Initial Developer are Copyright (C) 2010 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Justin Lebar * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /** * Make sure that we have the proper platform specific * c++ definitions needed by nscore.h */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\xpcom-config.h" /* xpcom/xpcom-config.h. Generated automatically by configure. */ /* Global defines needed by xpcom clients */ /* Define this to throw() if the compiler complains about * constructors returning NULL */ /* Define if the c++ compiler supports a 2-byte wchar_t */ /* #undef HAVE_CPP_2BYTE_WCHAR_T */ /* Define if the c++ compiler supports changing access with |using| */ /* #undef HAVE_CPP_ACCESS_CHANGING_USING */ /* Define if the c++ compiler can resolve ambiguity with |using| */ /* #undef HAVE_CPP_AMBIGUITY_RESOLVING_USING */ /* Define if the c++ compiler has builtin Bool type */ /* #undef HAVE_CPP_BOOL */ /* Define if the c++ compiler supports char16_t */ /* #undef HAVE_CPP_CHAR16_T */ /* Define if a dyanmic_cast to void* gives the most derived object */ /* #undef HAVE_CPP_DYNAMIC_CAST_TO_VOID_PTR */ /* Define if the c++ compiler supports the |explicit| keyword */ /* #undef HAVE_CPP_EXPLICIT */ /* Define if the c++ compiler supports the modern template * specialization syntax */ /* #undef HAVE_CPP_MODERN_SPECIALIZE_TEMPLATE_SYNTAX */ /* Define if the c++ compiler supports the |std| namespace */ /* #undef HAVE_CPP_NAMESPACE_STD */ /* Define if the c++ compiler supports reinterpret_cast */ /* #undef HAVE_CPP_NEW_CASTS */ /* Define if the c++ compiler supports partial template specialization */ /* #undef HAVE_CPP_PARTIAL_SPECIALIZATION */ /* Define if the c++ compiler has trouble comparing a constant * reference to a templatized class to zero */ /* #undef HAVE_CPP_TROUBLE_COMPARING_TO_ZERO */ /* Define if the c++ compiler supports the |typename| keyword */ /* #undef HAVE_CPP_TYPENAME */ /* Define if the stanard template operator!=() is ambiguous */ /* #undef HAVE_CPP_UNAMBIGUOUS_STD_NOTEQUAL */ /* Define if statvfs() is available */ /* #undef HAVE_STATVFS */ /* Define if the c++ compiler requires implementations of * unused virtual methods */ /* #undef NEED_CPP_UNUSED_IMPLEMENTATIONS */ /* Define to either or */ #line 70 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\xpcom-config.h" #line 46 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" #line 47 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" /* Definitions of functions and operators that allocate memory. */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/mozalloc.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- * vim: sw=4 ts=4 et : */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Mozilla Foundation * Portions created by the Initial Developer are Copyright (C) 2009 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Chris Jones * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* * https://bugzilla.mozilla.org/show_bug.cgi?id=427099 */ #line 1 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" /*** *stdlib.h - declarations/definitions for commonly used library functions * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This include file contains the function declarations for commonly * used library functions which either don't fit somewhere else, or, * cannot be declared in the normal place for other reasons. * [ANSI] * * [Public] * ****/ #pragma once #line 19 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" #line 1 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" /*** *crtdefs.h - definitions/declarations common to all CRT * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file has mostly defines used by the entire CRT. * * [Public] * ****/ /* Lack of pragma once is deliberate */ /* Define _CRTIMP */ #line 24 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" #line 1 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\limits.h" /*** *limits.h - implementation dependent values * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * Contains defines for a number of implementation dependent values * which are commonly used in C programs. * [ANSI] * * [Public] * ****/ #pragma once #line 18 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\limits.h" #line 1 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" /*** *crtdefs.h - definitions/declarations common to all CRT * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file has mostly defines used by the entire CRT. * * [Public] * ****/ /* Lack of pragma once is deliberate */ /* Define _CRTIMP */ #line 20 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\limits.h" #line 37 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\limits.h" #line 57 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\limits.h" #line 63 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\limits.h" #line 69 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\limits.h" /* minimum signed 64 bit value */ /* maximum signed 64 bit value */ /* maximum unsigned 64 bit value */ #line 78 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\limits.h" #line 87 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\limits.h" #line 94 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\limits.h" #line 95 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\limits.h" /* While waiting to the C standard committee to finalize the decision on RSIZE_MAX and rsize_t, * we define RSIZE_MAX as SIZE_MAX */ #line 103 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\limits.h" #line 104 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\limits.h" #line 137 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\limits.h" #line 25 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" /* * Currently, all MS C compilers for Win32 platforms default to 8 byte * alignment. */ #pragma pack(push,8) #line 33 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" extern "C" { #line 37 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" /* Define NULL pointer value */ /* Definition of the argument values for the exit() function */ typedef int (__cdecl * _onexit_t)(void); #line 61 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" #line 65 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" /* Non-ANSI name for compatibility */ #line 70 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" #line 73 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" /* Data structure definitions for div and ldiv runtimes. */ typedef struct _div_t { int quot; int rem; } div_t; typedef struct _ldiv_t { long quot; long rem; } ldiv_t; #line 91 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" /* * structs used to fool the compiler into not generating floating point * instructions when copying and pushing [long] double values */ #pragma pack(4) typedef struct { unsigned char ld[10]; } _LDOUBLE; #pragma pack() #line 120 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" typedef struct { double x; } _CRT_DOUBLE; typedef struct { float f; } _CRT_FLOAT; /* push and pop long, which is #defined as __int64 by a spec2k test */ typedef struct { /* * Assume there is a long double type */ long double x; } _LONGDOUBLE; #pragma pack(4) typedef struct { unsigned char ld12[12]; } _LDBL12; #pragma pack() #line 150 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" /* Maximum value that can be returned by the rand function. */ /* * Maximum number of bytes in multi-byte character in the current locale * (also defined in ctype.h). */ #line 165 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" __declspec(dllimport) extern int __mb_cur_max; #line 171 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" __declspec(dllimport) int __cdecl ___mb_cur_max_func(void); __declspec(dllimport) int __cdecl ___mb_cur_max_l_func(_locale_t); #line 174 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" /* Minimum and maximum macros */ /* * Sizes for buffers used by the _makepath() and _splitpath() functions. * note that the sizes include space for 0-terminator */ /* * Argument values for _set_error_mode(). */ /* * Argument values for _set_abort_behavior(). */ /* * Sizes for buffers used by the getenv/putenv family of functions. */ /* a purecall handler procedure. Never returns normally */ typedef void (__cdecl *_purecall_handler)(void); /* establishes a purecall handler for the process */ __declspec(dllimport) _purecall_handler __cdecl _set_purecall_handler( _purecall_handler _Handler); __declspec(dllimport) _purecall_handler __cdecl _get_purecall_handler(); #line 217 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" extern "C++" { #line 226 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" #line 234 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" } #line 236 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" /* a invalid_arg handler procedure. */ typedef void (__cdecl *_invalid_parameter_handler)(const wchar_t *, const wchar_t *, const wchar_t *, unsigned int, uintptr_t); /* establishes a invalid_arg handler for the process */ __declspec(dllimport) _invalid_parameter_handler __cdecl _set_invalid_parameter_handler( _invalid_parameter_handler _Handler); __declspec(dllimport) _invalid_parameter_handler __cdecl _get_invalid_parameter_handler(void); #line 245 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" extern "C++" { #line 254 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" #line 261 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" } #line 263 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" /* External variable declarations */ __declspec(dllimport) unsigned long * __cdecl __doserrno(void); errno_t __cdecl _set_doserrno( unsigned long _Value); errno_t __cdecl _get_doserrno( unsigned long * _Value); /* you can't modify this, but it is non-const for backcompat */ __declspec(dllimport) char ** __cdecl __sys_errlist(void); __declspec(dllimport) int * __cdecl __sys_nerr(void); __declspec(dllimport) int * __cdecl __p___argc(void); __declspec(dllimport) char *** __cdecl __p___argv(void); __declspec(dllimport) wchar_t *** __cdecl __p___wargv(void); __declspec(dllimport) char *** __cdecl __p__environ(void); __declspec(dllimport) wchar_t *** __cdecl __p__wenviron(void); __declspec(dllimport) char ** __cdecl __p__pgmptr(void); __declspec(dllimport) wchar_t ** __cdecl __p__wpgmptr(void); #line 299 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" __declspec(dllimport) extern int __argc; /* count of cmd line args */ __declspec(dllimport) extern char ** __argv; /* pointer to table of cmd line args */ __declspec(dllimport) extern wchar_t ** __wargv; /* pointer to table of wide cmd line args */ #line 312 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" __declspec(dllimport) extern char ** _environ; /* pointer to environment table */ __declspec(dllimport) extern wchar_t ** _wenviron; /* pointer to wide environment table */ #line 320 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" __declspec(dllimport) extern char * _pgmptr; /* points to the module (EXE) name */ __declspec(dllimport) extern wchar_t * _wpgmptr; /* points to the module (EXE) wide name */ #line 338 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" errno_t __cdecl _get_pgmptr( char ** _Value); errno_t __cdecl _get_wpgmptr( wchar_t ** _Value); __declspec(dllimport) extern int _fmode; /* default file translation mode */ #line 349 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" __declspec(dllimport) errno_t __cdecl _set_fmode( int _Mode); __declspec(dllimport) errno_t __cdecl _get_fmode( int * _PMode); /* Windows major/minor and O.S. version numbers */ #pragma warning(push) #pragma warning(disable:4141) __declspec(deprecated("This function or variable has been superceded by newer library or operating system functionality. Consider using " "GetVersionEx" " instead. See online help for details.")) __declspec(dllimport) extern unsigned int _osplatform; __declspec(deprecated("This function or variable has been superceded by newer library or operating system functionality. Consider using " "GetVersionEx" " instead. See online help for details.")) __declspec(dllimport) extern unsigned int _osver; __declspec(deprecated("This function or variable has been superceded by newer library or operating system functionality. Consider using " "GetVersionEx" " instead. See online help for details.")) __declspec(dllimport) extern unsigned int _winver; __declspec(deprecated("This function or variable has been superceded by newer library or operating system functionality. Consider using " "GetVersionEx" " instead. See online help for details.")) __declspec(dllimport) extern unsigned int _winmajor; __declspec(deprecated("This function or variable has been superceded by newer library or operating system functionality. Consider using " "GetVersionEx" " instead. See online help for details.")) __declspec(dllimport) extern unsigned int _winminor; #line 379 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" #pragma warning(pop) __declspec(deprecated("This function or variable has been superceded by newer library or operating system functionality. Consider using " "GetVersionEx" " instead. See online help for details.")) errno_t __cdecl _get_osplatform( unsigned int * _Value); __declspec(deprecated("This function or variable has been superceded by newer library or operating system functionality. Consider using " "GetVersionEx" " instead. See online help for details.")) errno_t __cdecl _get_osver( unsigned int * _Value); __declspec(deprecated("This function or variable has been superceded by newer library or operating system functionality. Consider using " "GetVersionEx" " instead. See online help for details.")) errno_t __cdecl _get_winver( unsigned int * _Value); __declspec(deprecated("This function or variable has been superceded by newer library or operating system functionality. Consider using " "GetVersionEx" " instead. See online help for details.")) errno_t __cdecl _get_winmajor( unsigned int * _Value); __declspec(deprecated("This function or variable has been superceded by newer library or operating system functionality. Consider using " "GetVersionEx" " instead. See online help for details.")) errno_t __cdecl _get_winminor( unsigned int * _Value); /* _countof helper */ #line 393 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" extern "C++" { template char (*__countof_helper( _CountofType (&_Array)[_SizeOfArray]))[_SizeOfArray]; } #line 400 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" #line 401 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" /* function prototypes */ __declspec(dllimport) __declspec(noreturn) void __cdecl exit( int _Code); __declspec(dllimport) __declspec(noreturn) void __cdecl _exit( int _Code); __declspec(dllimport) void __cdecl abort(void); #line 410 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" __declspec(dllimport) unsigned int __cdecl _set_abort_behavior( unsigned int _Flags, unsigned int _Mask); int __cdecl abs( int _X); long __cdecl labs( long _X); #line 418 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" __int64 __cdecl _abs64(__int64); #line 422 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" #line 433 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" #line 446 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" int __cdecl atexit(void (__cdecl *)(void)); #line 448 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" __declspec(dllimport) double __cdecl atof( const char *_String); __declspec(dllimport) double __cdecl _atof_l( const char *_String, _locale_t _Locale); #line 453 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" __declspec(dllimport) int __cdecl atoi( const char *_Str); __declspec(dllimport) int __cdecl _atoi_l( const char *_Str, _locale_t _Locale); __declspec(dllimport) long __cdecl atol( const char *_Str); __declspec(dllimport) long __cdecl _atol_l( const char *_Str, _locale_t _Locale); __declspec(dllimport) void * __cdecl bsearch_s( const void * _Key, const void * _Base, rsize_t _NumOfElements, rsize_t _SizeOfElements, int (__cdecl * _PtFuncCompare)(void *, const void *, const void *), void * _Context); #line 464 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" __declspec(dllimport) void * __cdecl bsearch( const void * _Key, const void * _Base, size_t _NumOfElements, size_t _SizeOfElements, int (__cdecl * _PtFuncCompare)(const void *, const void *)); __declspec(dllimport) void __cdecl qsort_s( void * _Base, rsize_t _NumOfElements, rsize_t _SizeOfElements, int (__cdecl * _PtFuncCompare)(void *, const void *, const void *), void *_Context); #line 473 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" __declspec(dllimport) void __cdecl qsort( void * _Base, size_t _NumOfElements, size_t _SizeOfElements, int (__cdecl * _PtFuncCompare)(const void *, const void *)); #line 477 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" unsigned short __cdecl _byteswap_ushort( unsigned short _Short); unsigned long __cdecl _byteswap_ulong ( unsigned long _Long); unsigned __int64 __cdecl _byteswap_uint64(unsigned __int64 _Int64); #line 482 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" __declspec(dllimport) div_t __cdecl div( int _Numerator, int _Denominator); __declspec(dllimport) char * __cdecl getenv( const char * _VarName); __declspec(dllimport) errno_t __cdecl getenv_s( size_t * _ReturnSize, char * _DstBuf, rsize_t _DstSize, const char * _VarName); #line 487 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" extern "C++" { template inline errno_t __cdecl getenv_s( size_t * _ReturnSize, char (&_Dest)[_Size], const char * _VarName) { return getenv_s(_ReturnSize, _Dest, _Size, _VarName); } } #line 492 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" __declspec(dllimport) errno_t __cdecl _dupenv_s( char **_PBuffer, size_t * _PBufferSizeInBytes, const char * _VarName); #line 498 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" __declspec(dllimport) errno_t __cdecl _itoa_s( int _Value, char * _DstBuf, size_t _Size, int _Radix); extern "C++" { template inline errno_t __cdecl _itoa_s( int _Value, char (&_Dest)[_Size], int _Radix) { return _itoa_s(_Value, _Dest, _Size, _Radix); } } __declspec(dllimport) char * __cdecl _itoa( int _Value, char *_Dest, int _Radix); __declspec(dllimport) errno_t __cdecl _i64toa_s( __int64 _Val, char * _DstBuf, size_t _Size, int _Radix); __declspec(dllimport) char * __cdecl _i64toa( __int64 _Val, char * _DstBuf, int _Radix); __declspec(dllimport) errno_t __cdecl _ui64toa_s( unsigned __int64 _Val, char * _DstBuf, size_t _Size, int _Radix); __declspec(dllimport) char * __cdecl _ui64toa( unsigned __int64 _Val, char * _DstBuf, int _Radix); __declspec(dllimport) __int64 __cdecl _atoi64( const char * _String); __declspec(dllimport) __int64 __cdecl _atoi64_l( const char * _String, _locale_t _Locale); __declspec(dllimport) __int64 __cdecl _strtoi64( const char * _String, char ** _EndPtr, int _Radix); __declspec(dllimport) __int64 __cdecl _strtoi64_l( const char * _String, char ** _EndPtr, int _Radix, _locale_t _Locale); __declspec(dllimport) unsigned __int64 __cdecl _strtoui64( const char * _String, char ** _EndPtr, int _Radix); __declspec(dllimport) unsigned __int64 __cdecl _strtoui64_l( const char * _String, char ** _EndPtr, int _Radix, _locale_t _Locale); #line 514 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" __declspec(dllimport) ldiv_t __cdecl ldiv( long _Numerator, long _Denominator); extern "C++" { inline ldiv_t div( long _A1, long _A2) { return ldiv(_A1, _A2); } } #line 524 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" __declspec(dllimport) errno_t __cdecl _ltoa_s( long _Val, char * _DstBuf, size_t _Size, int _Radix); extern "C++" { template inline errno_t __cdecl _ltoa_s( long _Value, char (&_Dest)[_Size], int _Radix) { return _ltoa_s(_Value, _Dest, _Size, _Radix); } } __declspec(dllimport) char * __cdecl _ltoa( long _Value, char *_Dest, int _Radix); __declspec(dllimport) int __cdecl mblen( const char * _Ch, size_t _MaxCount); __declspec(dllimport) int __cdecl _mblen_l( const char * _Ch, size_t _MaxCount, _locale_t _Locale); __declspec(dllimport) size_t __cdecl _mbstrlen( const char * _Str); __declspec(dllimport) size_t __cdecl _mbstrlen_l( const char *_Str, _locale_t _Locale); __declspec(dllimport) size_t __cdecl _mbstrnlen( const char *_Str, size_t _MaxCount); __declspec(dllimport) size_t __cdecl _mbstrnlen_l( const char *_Str, size_t _MaxCount, _locale_t _Locale); __declspec(dllimport) int __cdecl mbtowc( wchar_t * _DstCh, const char * _SrcCh, size_t _SrcSizeInBytes); __declspec(dllimport) int __cdecl _mbtowc_l( wchar_t * _DstCh, const char * _SrcCh, size_t _SrcSizeInBytes, _locale_t _Locale); __declspec(dllimport) errno_t __cdecl mbstowcs_s( size_t * _PtNumOfCharConverted, wchar_t * _DstBuf, size_t _SizeInWords, const char * _SrcBuf, size_t _MaxCount ); extern "C++" { template inline errno_t __cdecl mbstowcs_s( size_t * _PtNumOfCharConverted, wchar_t (&_Dest)[_Size], const char * _Source, size_t _MaxCount) { return mbstowcs_s(_PtNumOfCharConverted, _Dest, _Size, _Source, _MaxCount); } } __declspec(dllimport) size_t __cdecl mbstowcs( wchar_t *_Dest, const char * _Source, size_t _MaxCount); __declspec(dllimport) errno_t __cdecl _mbstowcs_s_l( size_t * _PtNumOfCharConverted, wchar_t * _DstBuf, size_t _SizeInWords, const char * _SrcBuf, size_t _MaxCount, _locale_t _Locale); extern "C++" { template inline errno_t __cdecl _mbstowcs_s_l( size_t * _PtNumOfCharConverted, wchar_t (&_Dest)[_Size], const char * _Source, size_t _MaxCount, _locale_t _Locale) { return _mbstowcs_s_l(_PtNumOfCharConverted, _Dest, _Size, _Source, _MaxCount, _Locale); } } __declspec(dllimport) size_t __cdecl _mbstowcs_l( wchar_t *_Dest, const char * _Source, size_t _MaxCount, _locale_t _Locale); __declspec(dllimport) int __cdecl rand(void); __declspec(dllimport) errno_t __cdecl rand_s ( unsigned int *_RandomValue); #line 547 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" __declspec(dllimport) int __cdecl _set_error_mode( int _Mode); __declspec(dllimport) void __cdecl srand( unsigned int _Seed); __declspec(dllimport) double __cdecl strtod( const char * _Str, char ** _EndPtr); __declspec(dllimport) double __cdecl _strtod_l( const char * _Str, char ** _EndPtr, _locale_t _Locale); __declspec(dllimport) long __cdecl strtol( const char * _Str, char ** _EndPtr, int _Radix ); __declspec(dllimport) long __cdecl _strtol_l( const char *_Str, char **_EndPtr, int _Radix, _locale_t _Locale); __declspec(dllimport) unsigned long __cdecl strtoul( const char * _Str, char ** _EndPtr, int _Radix); __declspec(dllimport) unsigned long __cdecl _strtoul_l(const char * _Str, char **_EndPtr, int _Radix, _locale_t _Locale); __declspec(dllimport) int __cdecl system( const char * _Command); #line 561 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" __declspec(dllimport) errno_t __cdecl _ultoa_s( unsigned long _Val, char * _DstBuf, size_t _Size, int _Radix); extern "C++" { template inline errno_t __cdecl _ultoa_s( unsigned long _Value, char (&_Dest)[_Size], int _Radix) { return _ultoa_s(_Value, _Dest, _Size, _Radix); } } __declspec(dllimport) char * __cdecl _ultoa( unsigned long _Value, char *_Dest, int _Radix); __declspec(dllimport) int __cdecl wctomb( char * _MbCh, wchar_t _WCh); __declspec(dllimport) int __cdecl _wctomb_l( char * _MbCh, wchar_t _WCh, _locale_t _Locale); __declspec(dllimport) errno_t __cdecl wctomb_s( int * _SizeConverted, char * _MbCh, rsize_t _SizeInBytes, wchar_t _WCh); #line 569 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" __declspec(dllimport) errno_t __cdecl _wctomb_s_l( int * _SizeConverted, char * _MbCh, size_t _SizeInBytes, wchar_t _WCh, _locale_t _Locale); __declspec(dllimport) errno_t __cdecl wcstombs_s( size_t * _PtNumOfCharConverted, char * _Dst, size_t _DstSizeInBytes, const wchar_t * _Src, size_t _MaxCountInBytes); extern "C++" { template inline errno_t __cdecl wcstombs_s( size_t * _PtNumOfCharConverted, char (&_Dest)[_Size], const wchar_t * _Source, size_t _MaxCount) { return wcstombs_s(_PtNumOfCharConverted, _Dest, _Size, _Source, _MaxCount); } } __declspec(dllimport) size_t __cdecl wcstombs( char *_Dest, const wchar_t * _Source, size_t _MaxCount); __declspec(dllimport) errno_t __cdecl _wcstombs_s_l( size_t * _PtNumOfCharConverted, char * _Dst, size_t _DstSizeInBytes, const wchar_t * _Src, size_t _MaxCountInBytes, _locale_t _Locale); extern "C++" { template inline errno_t __cdecl _wcstombs_s_l( size_t * _PtNumOfCharConverted, char (&_Dest)[_Size], const wchar_t * _Source, size_t _MaxCount, _locale_t _Locale) { return _wcstombs_s_l(_PtNumOfCharConverted, _Dest, _Size, _Source, _MaxCount, _Locale); } } __declspec(dllimport) size_t __cdecl _wcstombs_l( char *_Dest, const wchar_t * _Source, size_t _MaxCount, _locale_t _Locale); #line 599 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" #line 634 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" __declspec(dllimport) __declspec(noalias) __declspec(restrict) void * __cdecl calloc( size_t _NumOfElements, size_t _SizeOfElements); __declspec(dllimport) __declspec(noalias) void __cdecl free( void * _Memory); __declspec(dllimport) __declspec(noalias) __declspec(restrict) void * __cdecl malloc( size_t _Size); __declspec(dllimport) __declspec(noalias) __declspec(restrict) void * __cdecl realloc( void * _Memory, size_t _NewSize); __declspec(dllimport) __declspec(noalias) __declspec(restrict) void * __cdecl _recalloc( void * _Memory, size_t _Count, size_t _Size); __declspec(dllimport) __declspec(noalias) void __cdecl _aligned_free( void * _Memory); __declspec(dllimport) __declspec(noalias) __declspec(restrict) void * __cdecl _aligned_malloc( size_t _Size, size_t _Alignment); __declspec(dllimport) __declspec(noalias) __declspec(restrict) void * __cdecl _aligned_offset_malloc( size_t _Size, size_t _Alignment, size_t _Offset); __declspec(dllimport) __declspec(noalias) __declspec(restrict) void * __cdecl _aligned_realloc( void * _Memory, size_t _Size, size_t _Alignment); __declspec(dllimport) __declspec(noalias) __declspec(restrict) void * __cdecl _aligned_recalloc( void * _Memory, size_t _Count, size_t _Size, size_t _Alignment); __declspec(dllimport) __declspec(noalias) __declspec(restrict) void * __cdecl _aligned_offset_realloc( void * _Memory, size_t _Size, size_t _Alignment, size_t _Offset); __declspec(dllimport) __declspec(noalias) __declspec(restrict) void * __cdecl _aligned_offset_recalloc( void * _Memory, size_t _Count, size_t _Size, size_t _Alignment, size_t _Offset); __declspec(dllimport) size_t __cdecl _aligned_msize( void * _Memory, size_t _Alignment, size_t _Offset); #line 666 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" #line 668 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" /* wide function prototypes, also declared in wchar.h */ __declspec(dllimport) errno_t __cdecl _itow_s ( int _Val, wchar_t * _DstBuf, size_t _SizeInWords, int _Radix); extern "C++" { template inline errno_t __cdecl _itow_s( int _Value, wchar_t (&_Dest)[_Size], int _Radix) { return _itow_s(_Value, _Dest, _Size, _Radix); } } __declspec(dllimport) wchar_t * __cdecl _itow( int _Value, wchar_t *_Dest, int _Radix); __declspec(dllimport) errno_t __cdecl _ltow_s ( long _Val, wchar_t * _DstBuf, size_t _SizeInWords, int _Radix); extern "C++" { template inline errno_t __cdecl _ltow_s( long _Value, wchar_t (&_Dest)[_Size], int _Radix) { return _ltow_s(_Value, _Dest, _Size, _Radix); } } __declspec(dllimport) wchar_t * __cdecl _ltow( long _Value, wchar_t *_Dest, int _Radix); __declspec(dllimport) errno_t __cdecl _ultow_s ( unsigned long _Val, wchar_t * _DstBuf, size_t _SizeInWords, int _Radix); extern "C++" { template inline errno_t __cdecl _ultow_s( unsigned long _Value, wchar_t (&_Dest)[_Size], int _Radix) { return _ultow_s(_Value, _Dest, _Size, _Radix); } } __declspec(dllimport) wchar_t * __cdecl _ultow( unsigned long _Value, wchar_t *_Dest, int _Radix); __declspec(dllimport) double __cdecl wcstod( const wchar_t * _Str, wchar_t ** _EndPtr); __declspec(dllimport) double __cdecl _wcstod_l( const wchar_t *_Str, wchar_t ** _EndPtr, _locale_t _Locale); __declspec(dllimport) long __cdecl wcstol( const wchar_t *_Str, wchar_t ** _EndPtr, int _Radix); __declspec(dllimport) long __cdecl _wcstol_l( const wchar_t *_Str, wchar_t **_EndPtr, int _Radix, _locale_t _Locale); __declspec(dllimport) unsigned long __cdecl wcstoul( const wchar_t *_Str, wchar_t ** _EndPtr, int _Radix); __declspec(dllimport) unsigned long __cdecl _wcstoul_l( const wchar_t *_Str, wchar_t **_EndPtr, int _Radix, _locale_t _Locale); __declspec(dllimport) wchar_t * __cdecl _wgetenv( const wchar_t * _VarName); __declspec(dllimport) errno_t __cdecl _wgetenv_s( size_t * _ReturnSize, wchar_t * _DstBuf, size_t _DstSizeInWords, const wchar_t * _VarName); extern "C++" { template inline errno_t __cdecl _wgetenv_s( size_t * _ReturnSize, wchar_t (&_Dest)[_Size], const wchar_t * _VarName) { return _wgetenv_s(_ReturnSize, _Dest, _Size, _VarName); } } #line 696 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" __declspec(dllimport) errno_t __cdecl _wdupenv_s( wchar_t **_Buffer, size_t *_BufferSizeInWords, const wchar_t *_VarName); #line 702 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" __declspec(dllimport) int __cdecl _wsystem( const wchar_t * _Command); #line 707 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" __declspec(dllimport) double __cdecl _wtof( const wchar_t *_Str); __declspec(dllimport) double __cdecl _wtof_l( const wchar_t *_Str, _locale_t _Locale); __declspec(dllimport) int __cdecl _wtoi( const wchar_t *_Str); __declspec(dllimport) int __cdecl _wtoi_l( const wchar_t *_Str, _locale_t _Locale); __declspec(dllimport) long __cdecl _wtol( const wchar_t *_Str); __declspec(dllimport) long __cdecl _wtol_l( const wchar_t *_Str, _locale_t _Locale); __declspec(dllimport) errno_t __cdecl _i64tow_s( __int64 _Val, wchar_t * _DstBuf, size_t _SizeInWords, int _Radix); __declspec(dllimport) wchar_t * __cdecl _i64tow( __int64 _Val, wchar_t * _DstBuf, int _Radix); __declspec(dllimport) errno_t __cdecl _ui64tow_s( unsigned __int64 _Val, wchar_t * _DstBuf, size_t _SizeInWords, int _Radix); __declspec(dllimport) wchar_t * __cdecl _ui64tow( unsigned __int64 _Val, wchar_t * _DstBuf, int _Radix); __declspec(dllimport) __int64 __cdecl _wtoi64( const wchar_t *_Str); __declspec(dllimport) __int64 __cdecl _wtoi64_l( const wchar_t *_Str, _locale_t _Locale); __declspec(dllimport) __int64 __cdecl _wcstoi64( const wchar_t * _Str, wchar_t ** _EndPtr, int _Radix); __declspec(dllimport) __int64 __cdecl _wcstoi64_l( const wchar_t * _Str, wchar_t ** _EndPtr, int _Radix, _locale_t _Locale); __declspec(dllimport) unsigned __int64 __cdecl _wcstoui64( const wchar_t * _Str, wchar_t ** _EndPtr, int _Radix); __declspec(dllimport) unsigned __int64 __cdecl _wcstoui64_l( const wchar_t *_Str , wchar_t ** _EndPtr, int _Radix, _locale_t _Locale); #line 726 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" #line 729 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" /* Buffer size required to be passed to _gcvt, fcvt and other fp conversion routines */ #line 744 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" __declspec(dllimport) char * __cdecl _fullpath( char * _FullPath, const char * _Path, size_t _SizeInBytes); #line 752 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" __declspec(dllimport) errno_t __cdecl _ecvt_s( char * _DstBuf, size_t _Size, double _Val, int _NumOfDights, int * _PtDec, int * _PtSign); extern "C++" { template inline errno_t __cdecl _ecvt_s( char (&_Dest)[_Size], double _Value, int _NumOfDigits, int * _PtDec, int * _PtSign) { return _ecvt_s(_Dest, _Size, _Value, _NumOfDigits, _PtDec, _PtSign); } } __declspec(dllimport) char * __cdecl _ecvt( double _Val, int _NumOfDigits, int * _PtDec, int * _PtSign); __declspec(dllimport) errno_t __cdecl _fcvt_s( char * _DstBuf, size_t _Size, double _Val, int _NumOfDec, int * _PtDec, int * _PtSign); extern "C++" { template inline errno_t __cdecl _fcvt_s( char (&_Dest)[_Size], double _Value, int _NumOfDigits, int * _PtDec, int * _PtSign) { return _fcvt_s(_Dest, _Size, _Value, _NumOfDigits, _PtDec, _PtSign); } } __declspec(dllimport) char * __cdecl _fcvt( double _Val, int _NumOfDec, int * _PtDec, int * _PtSign); __declspec(dllimport) errno_t __cdecl _gcvt_s( char * _DstBuf, size_t _Size, double _Val, int _NumOfDigits); extern "C++" { template inline errno_t __cdecl _gcvt_s( char (&_Dest)[_Size], double _Value, int _NumOfDigits) { return _gcvt_s(_Dest, _Size, _Value, _NumOfDigits); } } __declspec(dllimport) char * __cdecl _gcvt( double _Val, int _NumOfDigits, char * _DstBuf); __declspec(dllimport) int __cdecl _atodbl( _CRT_DOUBLE * _Result, char * _Str); __declspec(dllimport) int __cdecl _atoldbl( _LDOUBLE * _Result, char * _Str); __declspec(dllimport) int __cdecl _atoflt( _CRT_FLOAT * _Result, char * _Str); __declspec(dllimport) int __cdecl _atodbl_l( _CRT_DOUBLE * _Result, char * _Str, _locale_t _Locale); __declspec(dllimport) int __cdecl _atoldbl_l( _LDOUBLE * _Result, char * _Str, _locale_t _Locale); __declspec(dllimport) int __cdecl _atoflt_l( _CRT_FLOAT * _Result, char * _Str, _locale_t _Locale); unsigned long __cdecl _lrotl( unsigned long _Val, int _Shift); unsigned long __cdecl _lrotr( unsigned long _Val, int _Shift); __declspec(dllimport) errno_t __cdecl _makepath_s( char * _PathResult, size_t _Size, const char * _Drive, const char * _Dir, const char * _Filename, const char * _Ext); extern "C++" { template inline errno_t __cdecl _makepath_s( char (&_Path)[_Size], const char * _Drive, const char * _Dir, const char * _Filename, const char * _Ext) { return _makepath_s(_Path, _Size, _Drive, _Dir, _Filename, _Ext); } } __declspec(dllimport) void __cdecl _makepath( char *_Path, const char * _Drive, const char * _Dir, const char * _Filename, const char * _Ext); #line 788 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" #line 801 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" _onexit_t __cdecl _onexit( _onexit_t _Func); #line 803 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" __declspec(dllimport) void __cdecl perror( const char * _ErrMsg); #line 808 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" __declspec(dllimport) int __cdecl _putenv( const char * _EnvString); __declspec(dllimport) errno_t __cdecl _putenv_s( const char * _Name, const char * _Value); unsigned int __cdecl _rotl( unsigned int _Val, int _Shift); unsigned __int64 __cdecl _rotl64( unsigned __int64 _Val, int _Shift); #line 814 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" unsigned int __cdecl _rotr( unsigned int _Val, int _Shift); unsigned __int64 __cdecl _rotr64( unsigned __int64 _Val, int _Shift); #line 818 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" __declspec(dllimport) errno_t __cdecl _searchenv_s( const char * _Filename, const char * _EnvVar, char * _ResultPath, size_t _SizeInBytes); extern "C++" { template inline errno_t __cdecl _searchenv_s( const char * _Filename, const char * _EnvVar, char (&_ResultPath)[_Size]) { return _searchenv_s(_Filename, _EnvVar, _ResultPath, _Size); } } __declspec(dllimport) void __cdecl _searchenv( const char * _Filename, const char * _EnvVar, char *_ResultPath); __declspec(dllimport) void __cdecl _splitpath( const char * _FullPath, char * _Drive, char * _Dir, char * _Filename, char * _Ext); __declspec(dllimport) errno_t __cdecl _splitpath_s( const char * _FullPath, char * _Drive, size_t _DriveSize, char * _Dir, size_t _DirSize, char * _Filename, size_t _FilenameSize, char * _Ext, size_t _ExtSize); extern "C++" { template inline errno_t __cdecl _splitpath_s( const char *_Dest, char (&_Drive)[_DriveSize], char (&_Dir)[_DirSize], char (&_Name)[_NameSize], char (&_Ext)[_ExtSize]) { return _splitpath_s(_Dest, _Drive, _DriveSize, _Dir, _DirSize, _Name, _NameSize, _Ext, _ExtSize); } } __declspec(dllimport) void __cdecl _swab( char * _Buf1, char * _Buf2, int _SizeInBytes); /* wide function prototypes, also declared in wchar.h */ #line 840 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" __declspec(dllimport) wchar_t * __cdecl _wfullpath( wchar_t * _FullPath, const wchar_t * _Path, size_t _SizeInWords); #line 846 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" __declspec(dllimport) errno_t __cdecl _wmakepath_s( wchar_t * _PathResult, size_t _SizeInWords, const wchar_t * _Drive, const wchar_t * _Dir, const wchar_t * _Filename, const wchar_t * _Ext); extern "C++" { template inline errno_t __cdecl _wmakepath_s( wchar_t (&_ResultPath)[_Size], const wchar_t * _Drive, const wchar_t * _Dir, const wchar_t * _Filename, const wchar_t * _Ext) { return _wmakepath_s(_ResultPath, _Size, _Drive, _Dir, _Filename, _Ext); } } __declspec(dllimport) void __cdecl _wmakepath( wchar_t *_ResultPath, const wchar_t * _Drive, const wchar_t * _Dir, const wchar_t * _Filename, const wchar_t * _Ext); __declspec(dllimport) void __cdecl _wperror( const wchar_t * _ErrMsg); #line 855 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" __declspec(dllimport) int __cdecl _wputenv( const wchar_t * _EnvString); __declspec(dllimport) errno_t __cdecl _wputenv_s( const wchar_t * _Name, const wchar_t * _Value); __declspec(dllimport) errno_t __cdecl _wsearchenv_s( const wchar_t * _Filename, const wchar_t * _EnvVar, wchar_t * _ResultPath, size_t _SizeInWords); extern "C++" { template inline errno_t __cdecl _wsearchenv_s( const wchar_t * _Filename, const wchar_t * _EnvVar, wchar_t (&_ResultPath)[_Size]) { return _wsearchenv_s(_Filename, _EnvVar, _ResultPath, _Size); } } __declspec(dllimport) void __cdecl _wsearchenv( const wchar_t * _Filename, const wchar_t * _EnvVar, wchar_t *_ResultPath); __declspec(dllimport) void __cdecl _wsplitpath( const wchar_t * _FullPath, wchar_t * _Drive, wchar_t * _Dir, wchar_t * _Filename, wchar_t * _Ext); __declspec(dllimport) errno_t __cdecl _wsplitpath_s( const wchar_t * _FullPath, wchar_t * _Drive, size_t _DriveSizeInWords, wchar_t * _Dir, size_t _DirSizeInWords, wchar_t * _Filename, size_t _FilenameSizeInWords, wchar_t * _Ext, size_t _ExtSizeInWords); extern "C++" { template inline errno_t __cdecl _wsplitpath_s( const wchar_t *_Path, wchar_t (&_Drive)[_DriveSize], wchar_t (&_Dir)[_DirSize], wchar_t (&_Name)[_NameSize], wchar_t (&_Ext)[_ExtSize]) { return _wsplitpath_s(_Path, _Drive, _DriveSize, _Dir, _DirSize, _Name, _NameSize, _Ext, _ExtSize); } } #line 870 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" /* The Win32 API SetErrorMode, Beep and Sleep should be used instead. */ __declspec(deprecated("This function or variable has been superceded by newer library or operating system functionality. Consider using " "SetErrorMode" " instead. See online help for details.")) __declspec(dllimport) void __cdecl _seterrormode( int _Mode); __declspec(deprecated("This function or variable has been superceded by newer library or operating system functionality. Consider using " "Beep" " instead. See online help for details.")) __declspec(dllimport) void __cdecl _beep( unsigned _Frequency, unsigned _Duration); __declspec(deprecated("This function or variable has been superceded by newer library or operating system functionality. Consider using " "Sleep" " instead. See online help for details.")) __declspec(dllimport) void __cdecl _sleep( unsigned long _Duration); #line 877 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" /* Non-ANSI names for compatibility */ #pragma warning(push) #pragma warning(disable: 4141) __declspec(dllimport) char * __cdecl ecvt( double _Val, int _NumOfDigits, int * _PtDec, int * _PtSign); __declspec(dllimport) char * __cdecl fcvt( double _Val, int _NumOfDec, int * _PtDec, int * _PtSign); __declspec(dllimport) char * __cdecl gcvt( double _Val, int _NumOfDigits, char * _DstBuf); __declspec(dllimport) char * __cdecl itoa( int _Val, char * _DstBuf, int _Radix); __declspec(dllimport) char * __cdecl ltoa( long _Val, char * _DstBuf, int _Radix); __declspec(dllimport) int __cdecl putenv( const char * _EnvString); __declspec(dllimport) void __cdecl swab( char * _Buf1, char * _Buf2, int _SizeInBytes); __declspec(dllimport) char * __cdecl ultoa( unsigned long _Val, char * _Dstbuf, int _Radix); #pragma warning(pop) _onexit_t __cdecl onexit( _onexit_t _Func); #line 907 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" #line 909 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" } #line 914 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" #pragma pack(pop) #line 918 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" #line 920 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdlib.h" #line 49 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/mozalloc.h" #line 1 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\string.h" /*** *string.h - declarations for string manipulation functions * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file contains the function declarations for the string * manipulation functions. * [ANSI/System V] * * [Public] * ****/ #pragma once #line 18 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\string.h" #line 1 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" /*** *crtdefs.h - definitions/declarations common to all CRT * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file has mostly defines used by the entire CRT. * * [Public] * ****/ /* Lack of pragma once is deliberate */ /* Define _CRTIMP */ #line 23 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\string.h" extern "C" { #line 27 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\string.h" #line 32 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\string.h" /* Define NULL pointer value */ /* For backwards compatibility */ /* Function prototypes */ __declspec(dllimport) void * __cdecl _memccpy( void * _Dst, const void * _Src, int _Val, size_t _MaxCount); __declspec(dllimport) const void * __cdecl memchr( const void * _Buf , int _Val, size_t _MaxCount); __declspec(dllimport) int __cdecl _memicmp( const void * _Buf1, const void * _Buf2, size_t _Size); __declspec(dllimport) int __cdecl _memicmp_l( const void * _Buf1, const void * _Buf2, size_t _Size, _locale_t _Locale); int __cdecl memcmp( const void * _Buf1, const void * _Buf2, size_t _Size); void * __cdecl memcpy( void * _Dst, const void * _Src, size_t _Size); __declspec(dllimport) errno_t __cdecl memcpy_s( void * _Dst, rsize_t _DstSize, const void * _Src, rsize_t _MaxCount); #line 57 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\string.h" void * __cdecl memset( void * _Dst, int _Val, size_t _Size); /* Non-ANSI names for compatibility */ __declspec(dllimport) void * __cdecl memccpy( void * _Dst, const void * _Src, int _Val, size_t _Size); __declspec(dllimport) int __cdecl memicmp( const void * _Buf1, const void * _Buf2, size_t _Size); #line 64 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\string.h" #line 66 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\string.h" __declspec(dllimport) errno_t __cdecl _strset_s( char * _Dst, size_t _DstSize, int _Value); extern "C++" { template inline errno_t __cdecl _strset_s( char (&_Dest)[_Size], int _Value) { return _strset_s(_Dest, _Size, _Value); } } char * __cdecl _strset( char *_Dest, int _Value); __declspec(dllimport) errno_t __cdecl strcpy_s( char * _Dst, rsize_t _DstSize, const char * _Src); #line 73 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\string.h" extern "C++" { template inline errno_t __cdecl strcpy_s( char (&_Dest)[_Size], const char * _Source) { return strcpy_s(_Dest, _Size, _Source); } } char * __cdecl strcpy( char *_Dest, const char * _Source); __declspec(dllimport) errno_t __cdecl strcat_s( char * _Dst, rsize_t _DstSize, const char * _Src); #line 78 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\string.h" extern "C++" { template inline errno_t __cdecl strcat_s( char (&_Dest)[_Size], const char * _Source) { return strcat_s(_Dest, _Size, _Source); } } char * __cdecl strcat( char *_Dest, const char * _Source); int __cdecl strcmp( const char * _Str1, const char * _Str2); size_t __cdecl strlen( const char * _Str); __declspec(dllimport) size_t __cdecl strnlen( const char * _Str, size_t _MaxCount); static __inline size_t __cdecl strnlen_s( const char * _Str, size_t _MaxCount) { return strnlen(_Str, _MaxCount); } #line 89 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\string.h" __declspec(dllimport) errno_t __cdecl memmove_s( void * _Dst, rsize_t _DstSize, const void * _Src, rsize_t _MaxCount); #line 92 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\string.h" #line 96 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\string.h" __declspec(dllimport) void * __cdecl memmove( void * _Dst, const void * _Src, size_t _Size); #line 98 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\string.h" #line 103 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\string.h" __declspec(dllimport) char * __cdecl _strdup( const char * _Src); #line 109 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\string.h" __declspec(dllimport) const char * __cdecl strchr( const char * _Str, int _Val); __declspec(dllimport) int __cdecl _stricmp( const char * _Str1, const char * _Str2); __declspec(dllimport) int __cdecl _strcmpi( const char * _Str1, const char * _Str2); __declspec(dllimport) int __cdecl _stricmp_l( const char * _Str1, const char * _Str2, _locale_t _Locale); __declspec(dllimport) int __cdecl strcoll( const char * _Str1, const char * _Str2); __declspec(dllimport) int __cdecl _strcoll_l( const char * _Str1, const char * _Str2, _locale_t _Locale); __declspec(dllimport) int __cdecl _stricoll( const char * _Str1, const char * _Str2); __declspec(dllimport) int __cdecl _stricoll_l( const char * _Str1, const char * _Str2, _locale_t _Locale); __declspec(dllimport) int __cdecl _strncoll ( const char * _Str1, const char * _Str2, size_t _MaxCount); __declspec(dllimport) int __cdecl _strncoll_l( const char * _Str1, const char * _Str2, size_t _MaxCount, _locale_t _Locale); __declspec(dllimport) int __cdecl _strnicoll ( const char * _Str1, const char * _Str2, size_t _MaxCount); __declspec(dllimport) int __cdecl _strnicoll_l( const char * _Str1, const char * _Str2, size_t _MaxCount, _locale_t _Locale); __declspec(dllimport) size_t __cdecl strcspn( const char * _Str, const char * _Control); __declspec(dllimport) char * __cdecl _strerror( const char * _ErrMsg); __declspec(dllimport) errno_t __cdecl _strerror_s( char * _Buf, size_t _SizeInBytes, const char * _ErrMsg); extern "C++" { template inline errno_t __cdecl _strerror_s( char (&_Buffer)[_Size], const char * _ErrorMessage) { return _strerror_s(_Buffer, _Size, _ErrorMessage); } } __declspec(dllimport) char * __cdecl strerror( int); __declspec(dllimport) errno_t __cdecl strerror_s( char * _Buf, size_t _SizeInBytes, int _ErrNum); #line 130 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\string.h" extern "C++" { template inline errno_t __cdecl strerror_s( char (&_Buffer)[_Size], int _ErrorMessage) { return strerror_s(_Buffer, _Size, _ErrorMessage); } } __declspec(dllimport) errno_t __cdecl _strlwr_s( char * _Str, size_t _Size); extern "C++" { template inline errno_t __cdecl _strlwr_s( char (&_String)[_Size]) { return _strlwr_s(_String, _Size); } } __declspec(dllimport) char * __cdecl _strlwr( char *_String); __declspec(dllimport) errno_t __cdecl _strlwr_s_l( char * _Str, size_t _Size, _locale_t _Locale); extern "C++" { template inline errno_t __cdecl _strlwr_s_l( char (&_String)[_Size], _locale_t _Locale) { return _strlwr_s_l(_String, _Size, _Locale); } } __declspec(dllimport) char * __cdecl _strlwr_l( char *_String, _locale_t _Locale); __declspec(dllimport) errno_t __cdecl strncat_s( char * _Dst, rsize_t _DstSize, const char * _Src, rsize_t _MaxCount); #line 140 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\string.h" extern "C++" { template inline errno_t __cdecl strncat_s( char (&_Dest)[_Size], const char * _Source, size_t _Count) { return strncat_s(_Dest, _Size, _Source, _Count); } } #pragma warning(push) #pragma warning(disable:6059) /* prefast noise VSW 489802 */ __declspec(dllimport) char * __cdecl strncat( char *_Dest, const char * _Source, size_t _Count); #pragma warning(pop) #line 149 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\string.h" __declspec(dllimport) int __cdecl strncmp( const char * _Str1, const char * _Str2, size_t _MaxCount); #line 151 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\string.h" __declspec(dllimport) int __cdecl _strnicmp( const char * _Str1, const char * _Str2, size_t _MaxCount); __declspec(dllimport) int __cdecl _strnicmp_l( const char * _Str1, const char * _Str2, size_t _MaxCount, _locale_t _Locale); __declspec(dllimport) errno_t __cdecl strncpy_s( char * _Dst, rsize_t _DstSize, const char * _Src, rsize_t _MaxCount); #line 156 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\string.h" extern "C++" { template inline errno_t __cdecl strncpy_s( char (&_Dest)[_Size], const char * _Source, size_t _Count) { return strncpy_s(_Dest, _Size, _Source, _Count); } } __declspec(dllimport) char * __cdecl strncpy( char *_Dest, const char * _Source, size_t _Count); __declspec(dllimport) errno_t __cdecl _strnset_s( char * _Str, size_t _Size, int _Val, size_t _MaxCount); extern "C++" { template inline errno_t __cdecl _strnset_s( char (&_Dest)[_Size], int _Val, size_t _Count) { return _strnset_s(_Dest, _Size, _Val, _Count); } } __declspec(dllimport) char * __cdecl _strnset( char *_Dest, int _Val, size_t _Count); __declspec(dllimport) const char * __cdecl strpbrk( const char * _Str, const char * _Control); __declspec(dllimport) const char * __cdecl strrchr( const char * _Str, int _Ch); __declspec(dllimport) char * __cdecl _strrev( char * _Str); __declspec(dllimport) size_t __cdecl strspn( const char * _Str, const char * _Control); __declspec(dllimport) const char * __cdecl strstr( const char * _Str, const char * _SubStr); __declspec(dllimport) char * __cdecl strtok( char * _Str, const char * _Delim); __declspec(dllimport) char * __cdecl strtok_s( char * _Str, const char * _Delim, char ** _Context); #line 170 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\string.h" __declspec(dllimport) errno_t __cdecl _strupr_s( char * _Str, size_t _Size); extern "C++" { template inline errno_t __cdecl _strupr_s( char (&_String)[_Size]) { return _strupr_s(_String, _Size); } } __declspec(dllimport) char * __cdecl _strupr( char *_String); __declspec(dllimport) errno_t __cdecl _strupr_s_l( char * _Str, size_t _Size, _locale_t _Locale); extern "C++" { template inline errno_t __cdecl _strupr_s_l( char (&_String)[_Size], _locale_t _Locale) { return _strupr_s_l(_String, _Size, _Locale); } } __declspec(dllimport) char * __cdecl _strupr_l( char *_String, _locale_t _Locale); __declspec(dllimport) size_t __cdecl strxfrm ( char * _Dst, const char * _Src, size_t _MaxCount); __declspec(dllimport) size_t __cdecl _strxfrm_l( char * _Dst, const char * _Src, size_t _MaxCount, _locale_t _Locale); extern "C++" { inline char * __cdecl strchr( char * _Str, int _Ch) { return (char*)strchr((const char*)_Str, _Ch); } inline char * __cdecl strpbrk( char * _Str, const char * _Control) { return (char*)strpbrk((const char*)_Str, _Control); } inline char * __cdecl strrchr( char * _Str, int _Ch) { return (char*)strrchr((const char*)_Str, _Ch); } inline char * __cdecl strstr( char * _Str, const char * _SubStr) { return (char*)strstr((const char*)_Str, _SubStr); } #line 192 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\string.h" inline void * __cdecl memchr( void * _Pv, int _C, size_t _N) { return (void*)memchr((const void*)_Pv, _C, _N); } #line 197 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\string.h" } #line 199 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\string.h" #line 206 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\string.h" __declspec(dllimport) char * __cdecl strdup( const char * _Src); #line 212 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\string.h" /* prototypes for oldnames.lib functions */ __declspec(dllimport) int __cdecl strcmpi( const char * _Str1, const char * _Str2); __declspec(dllimport) int __cdecl stricmp( const char * _Str1, const char * _Str2); __declspec(dllimport) char * __cdecl strlwr( char * _Str); __declspec(dllimport) int __cdecl strnicmp( const char * _Str1, const char * _Str, size_t _MaxCount); __declspec(dllimport) char * __cdecl strnset( char * _Str, int _Val, size_t _MaxCount); __declspec(dllimport) char * __cdecl strrev( char * _Str); char * __cdecl strset( char * _Str, int _Val); __declspec(dllimport) char * __cdecl strupr( char * _Str); #line 224 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\string.h" /* wide function prototypes, also declared in wchar.h */ #line 234 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\string.h" __declspec(dllimport) wchar_t * __cdecl _wcsdup( const wchar_t * _Str); #line 240 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\string.h" __declspec(dllimport) errno_t __cdecl wcscat_s( wchar_t * _Dst, rsize_t _DstSize, const wchar_t * _Src); #line 244 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\string.h" extern "C++" { template inline errno_t __cdecl wcscat_s( wchar_t (&_Dest)[_Size], const wchar_t * _Source) { return wcscat_s(_Dest, _Size, _Source); } } __declspec(dllimport) wchar_t * __cdecl wcscat( wchar_t *_Dest, const wchar_t * _Source); __declspec(dllimport) const wchar_t * __cdecl wcschr( const wchar_t * _Str, wchar_t _Ch); __declspec(dllimport) int __cdecl wcscmp( const wchar_t * _Str1, const wchar_t * _Str2); __declspec(dllimport) errno_t __cdecl wcscpy_s( wchar_t * _Dst, rsize_t _DstSize, const wchar_t * _Src); #line 251 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\string.h" extern "C++" { template inline errno_t __cdecl wcscpy_s( wchar_t (&_Dest)[_Size], const wchar_t * _Source) { return wcscpy_s(_Dest, _Size, _Source); } } __declspec(dllimport) wchar_t * __cdecl wcscpy( wchar_t *_Dest, const wchar_t * _Source); __declspec(dllimport) size_t __cdecl wcscspn( const wchar_t * _Str, const wchar_t * _Control); __declspec(dllimport) size_t __cdecl wcslen( const wchar_t * _Str); __declspec(dllimport) size_t __cdecl wcsnlen( const wchar_t * _Src, size_t _MaxCount); static __inline size_t __cdecl wcsnlen_s( const wchar_t * _Src, size_t _MaxCount) { return wcsnlen(_Src, _MaxCount); } #line 262 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\string.h" __declspec(dllimport) errno_t __cdecl wcsncat_s( wchar_t * _Dst, rsize_t _DstSize, const wchar_t * _Src, rsize_t _MaxCount); #line 265 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\string.h" extern "C++" { template inline errno_t __cdecl wcsncat_s( wchar_t (&_Dest)[_Size], const wchar_t * _Source, size_t _Count) { return wcsncat_s(_Dest, _Size, _Source, _Count); } } __declspec(dllimport) wchar_t * __cdecl wcsncat( wchar_t *_Dest, const wchar_t * _Source, size_t _Count); __declspec(dllimport) int __cdecl wcsncmp( const wchar_t * _Str1, const wchar_t * _Str2, size_t _MaxCount); __declspec(dllimport) errno_t __cdecl wcsncpy_s( wchar_t * _Dst, rsize_t _DstSize, const wchar_t * _Src, rsize_t _MaxCount); #line 271 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\string.h" extern "C++" { template inline errno_t __cdecl wcsncpy_s( wchar_t (&_Dest)[_Size], const wchar_t * _Source, size_t _Count) { return wcsncpy_s(_Dest, _Size, _Source, _Count); } } __declspec(dllimport) wchar_t * __cdecl wcsncpy( wchar_t *_Dest, const wchar_t * _Source, size_t _Count); __declspec(dllimport) const wchar_t * __cdecl wcspbrk( const wchar_t * _Str, const wchar_t * _Control); __declspec(dllimport) const wchar_t * __cdecl wcsrchr( const wchar_t * _Str, wchar_t _Ch); __declspec(dllimport) size_t __cdecl wcsspn( const wchar_t * _Str, const wchar_t * _Control); __declspec(dllimport) const wchar_t * __cdecl wcsstr( const wchar_t * _Str, const wchar_t * _SubStr); __declspec(dllimport) wchar_t * __cdecl wcstok( wchar_t * _Str, const wchar_t * _Delim); __declspec(dllimport) wchar_t * __cdecl wcstok_s( wchar_t * _Str, const wchar_t * _Delim, wchar_t ** _Context); __declspec(dllimport) wchar_t * __cdecl _wcserror( int _ErrNum); __declspec(dllimport) errno_t __cdecl _wcserror_s( wchar_t * _Buf, size_t _SizeInWords, int _ErrNum); extern "C++" { template inline errno_t __cdecl _wcserror_s( wchar_t (&_Buffer)[_Size], int _Error) { return _wcserror_s(_Buffer, _Size, _Error); } } __declspec(dllimport) wchar_t * __cdecl __wcserror( const wchar_t * _Str); __declspec(dllimport) errno_t __cdecl __wcserror_s( wchar_t * _Buffer, size_t _SizeInWords, const wchar_t * _ErrMsg); extern "C++" { template inline errno_t __cdecl __wcserror_s( wchar_t (&_Buffer)[_Size], const wchar_t * _ErrorMessage) { return __wcserror_s(_Buffer, _Size, _ErrorMessage); } } __declspec(dllimport) int __cdecl _wcsicmp( const wchar_t * _Str1, const wchar_t * _Str2); __declspec(dllimport) int __cdecl _wcsicmp_l( const wchar_t * _Str1, const wchar_t * _Str2, _locale_t _Locale); __declspec(dllimport) int __cdecl _wcsnicmp( const wchar_t * _Str1, const wchar_t * _Str2, size_t _MaxCount); __declspec(dllimport) int __cdecl _wcsnicmp_l( const wchar_t * _Str1, const wchar_t * _Str2, size_t _MaxCount, _locale_t _Locale); __declspec(dllimport) errno_t __cdecl _wcsnset_s( wchar_t * _Dst, size_t _DstSizeInWords, wchar_t _Val, size_t _MaxCount); extern "C++" { template inline errno_t __cdecl _wcsnset_s( wchar_t (&_Dst)[_Size], wchar_t _Val, size_t _MaxCount) { return _wcsnset_s(_Dst, _Size, _Val, _MaxCount); } } __declspec(dllimport) wchar_t * __cdecl _wcsnset( wchar_t *_Str, wchar_t _Val, size_t _MaxCount); __declspec(dllimport) wchar_t * __cdecl _wcsrev( wchar_t * _Str); __declspec(dllimport) errno_t __cdecl _wcsset_s( wchar_t * _Str, size_t _SizeInWords, wchar_t _Val); extern "C++" { template inline errno_t __cdecl _wcsset_s( wchar_t (&_Str)[_Size], wchar_t _Val) { return _wcsset_s(_Str, _Size, _Val); } } __declspec(dllimport) wchar_t * __cdecl _wcsset( wchar_t *_Str, wchar_t _Val); __declspec(dllimport) errno_t __cdecl _wcslwr_s( wchar_t * _Str, size_t _SizeInWords); extern "C++" { template inline errno_t __cdecl _wcslwr_s( wchar_t (&_String)[_Size]) { return _wcslwr_s(_String, _Size); } } __declspec(dllimport) wchar_t * __cdecl _wcslwr( wchar_t *_String); __declspec(dllimport) errno_t __cdecl _wcslwr_s_l( wchar_t * _Str, size_t _SizeInWords, _locale_t _Locale); extern "C++" { template inline errno_t __cdecl _wcslwr_s_l( wchar_t (&_String)[_Size], _locale_t _Locale) { return _wcslwr_s_l(_String, _Size, _Locale); } } __declspec(dllimport) wchar_t * __cdecl _wcslwr_l( wchar_t *_String, _locale_t _Locale); __declspec(dllimport) errno_t __cdecl _wcsupr_s( wchar_t * _Str, size_t _Size); extern "C++" { template inline errno_t __cdecl _wcsupr_s( wchar_t (&_String)[_Size]) { return _wcsupr_s(_String, _Size); } } __declspec(dllimport) wchar_t * __cdecl _wcsupr( wchar_t *_String); __declspec(dllimport) errno_t __cdecl _wcsupr_s_l( wchar_t * _Str, size_t _Size, _locale_t _Locale); extern "C++" { template inline errno_t __cdecl _wcsupr_s_l( wchar_t (&_String)[_Size], _locale_t _Locale) { return _wcsupr_s_l(_String, _Size, _Locale); } } __declspec(dllimport) wchar_t * __cdecl _wcsupr_l( wchar_t *_String, _locale_t _Locale); __declspec(dllimport) size_t __cdecl wcsxfrm( wchar_t * _Dst, const wchar_t * _Src, size_t _MaxCount); __declspec(dllimport) size_t __cdecl _wcsxfrm_l( wchar_t * _Dst, const wchar_t *_Src, size_t _MaxCount, _locale_t _Locale); __declspec(dllimport) int __cdecl wcscoll( const wchar_t * _Str1, const wchar_t * _Str2); __declspec(dllimport) int __cdecl _wcscoll_l( const wchar_t * _Str1, const wchar_t * _Str2, _locale_t _Locale); __declspec(dllimport) int __cdecl _wcsicoll( const wchar_t * _Str1, const wchar_t * _Str2); __declspec(dllimport) int __cdecl _wcsicoll_l( const wchar_t * _Str1, const wchar_t *_Str2, _locale_t _Locale); __declspec(dllimport) int __cdecl _wcsncoll( const wchar_t * _Str1, const wchar_t * _Str2, size_t _MaxCount); __declspec(dllimport) int __cdecl _wcsncoll_l( const wchar_t * _Str1, const wchar_t * _Str2, size_t _MaxCount, _locale_t _Locale); __declspec(dllimport) int __cdecl _wcsnicoll( const wchar_t * _Str1, const wchar_t * _Str2, size_t _MaxCount); __declspec(dllimport) int __cdecl _wcsnicoll_l( const wchar_t * _Str1, const wchar_t * _Str2, size_t _MaxCount, _locale_t _Locale); extern "C++" { inline wchar_t * __cdecl wcschr( wchar_t *_Str, wchar_t _Ch) {return ((wchar_t *)wcschr((const wchar_t *)_Str, _Ch)); } inline wchar_t * __cdecl wcspbrk( wchar_t *_Str, const wchar_t *_Control) {return ((wchar_t *)wcspbrk((const wchar_t *)_Str, _Control)); } inline wchar_t * __cdecl wcsrchr( wchar_t *_Str, wchar_t _Ch) {return ((wchar_t *)wcsrchr((const wchar_t *)_Str, _Ch)); } inline wchar_t * __cdecl wcsstr( wchar_t *_Str, const wchar_t *_SubStr) {return ((wchar_t *)wcsstr((const wchar_t *)_Str, _SubStr)); } } #line 335 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\string.h" #line 336 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\string.h" #line 343 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\string.h" __declspec(dllimport) wchar_t * __cdecl wcsdup( const wchar_t * _Str); #line 349 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\string.h" /* old names */ /* prototypes for oldnames.lib functions */ __declspec(dllimport) int __cdecl wcsicmp( const wchar_t * _Str1, const wchar_t * _Str2); __declspec(dllimport) int __cdecl wcsnicmp( const wchar_t * _Str1, const wchar_t * _Str2, size_t _MaxCount); __declspec(dllimport) wchar_t * __cdecl wcsnset( wchar_t * _Str, wchar_t _Val, size_t _MaxCount); __declspec(dllimport) wchar_t * __cdecl wcsrev( wchar_t * _Str); __declspec(dllimport) wchar_t * __cdecl wcsset( wchar_t * _Str, wchar_t _Val); __declspec(dllimport) wchar_t * __cdecl wcslwr( wchar_t * _Str); __declspec(dllimport) wchar_t * __cdecl wcsupr( wchar_t * _Str); __declspec(dllimport) int __cdecl wcsicoll( const wchar_t * _Str1, const wchar_t * _Str2); #line 364 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\string.h" #line 367 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\string.h" } #line 372 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\string.h" #line 374 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\string.h" #line 50 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/mozalloc.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\stl_wrappers\\new" /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- * vim: sw=2 ts=8 et : */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at: * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla Code. * * The Initial Developer of the Original Code is * The Mozilla Foundation * Portions created by the Initial Developer are Copyright (C) 2010 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Chris Jones * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 47 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\stl_wrappers\\new" // Code built with !_HAS_EXCEPTIONS calls std::_Throw(), but the win2k // CRT doesn't export std::_Throw(). So we define it. #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/throw_msvc.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- * vim: sw=4 ts=4 et : */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla Code * * The Initial Developer of the Original Code is * The Mozilla Foundation. * Portions created by the Initial Developer are Copyright (C) 2010 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Chris Jones * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 47 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/throw_msvc.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla\\msvc_throw_wrapper.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- * vim: sw=4 ts=4 et : */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla Code * * The Initial Developer of the Original Code is * The Mozilla Foundation. * Portions created by the Initial Developer are Copyright (C) 2010 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Chris Jones * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ // Define our own _Throw because the Win2k CRT doesn't export it. #line 1 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\exception" // exception standard header for Microsoft #pragma once #line 1 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\xstddef" // xstddef standard header #pragma once #line 1 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" /* yvals.h values header for Microsoft C/C++ */ #pragma once #line 1 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" /*** *crtdefs.h - definitions/declarations common to all CRT * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file has mostly defines used by the entire CRT. * * [Public] * ****/ /* Lack of pragma once is deliberate */ /* Define _CRTIMP */ #line 7 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" #pragma pack(push,8) #line 11 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" /* Note on use of "deprecate": * Various places in this header and other headers use __declspec(deprecate) or macros that have the term DEPRECATE in them. * We use deprecate here ONLY to signal the compiler to emit a warning about these items. The use of deprecate * should NOT be taken to imply that any standard committee has deprecated these functions from the relevant standards. * In fact, these functions are NOT deprecated from the standard. * * Full details can be found in our documentation by searching for "Checked Iterators". */ #line 53 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" #line 55 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" #line 56 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" /* NAMING PROPERTIES */ /* THREAD AND LOCALE CONTROL */ /* THREAD-LOCAL STORAGE */ #line 73 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" #line 81 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" #line 85 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" #line 89 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" #line 98 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" #line 106 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" /* _SECURE_CRT definitions */ /* _SECURE_SCL switches: default values */ #line 120 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" /* See note on use of deprecate at the top of this file */ #line 125 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" #line 130 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" #line 132 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" #line 133 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" #line 137 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" /* _SECURE_SCL switches: helper macros */ /* See note on use of deprecate at the top of this file */ #line 149 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" #line 158 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" /* * Assert in debug builds. * set errno and return * */ #line 169 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" #line 177 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" #line 184 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" #line 189 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" // validation a la Secure CRT #line 275 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" /* _SECURE_VALIDATION is the name of the bool template argument used to define iterators with secure validation selectively turned on or off (for an example, see the std::list iterators). Notice that all the _SCL_SECURE_TRAITS_* validation macros are almost identical to the _SCL_SECURE_* macros defined above. The only difference is the: if (_SECURE_VALIDATION) { } statement, which will statically evaluate to true or false. With optimizations on, the compiler will optimize the check away. */ #line 347 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" #line 359 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" #line 1 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\use_ansi.h" /*** *use_ansi.h - pragmas for ANSI Standard C++ libraries * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This header is intended to force the use of the appropriate ANSI * Standard C++ libraries whenever it is included. * * [Public] * ****/ #pragma once #pragma comment(lib,"msvcprtd") #line 31 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\use_ansi.h" #line 40 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\use_ansi.h" #line 47 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\use_ansi.h" #pragma comment(linker,"/manifestdependency:\"type='win32' " \ "name='" "Microsoft.VC80" ".DebugCRT' " \ "version='" "8.0.50727.762" "' " \ "processorArchitecture='x86' " \ "publicKeyToken='" "1fc8b3b9a1e18e3b" "'\"") #line 69 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\use_ansi.h" #line 71 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\use_ansi.h" #line 109 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\use_ansi.h" #line 117 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\use_ansi.h" #line 119 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\use_ansi.h" #line 121 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\use_ansi.h" #line 123 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\use_ansi.h" #line 361 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" #line 365 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" /* Define _CRTIMP2 */ /* Define _CRTIMP2_NCEEPURE */ #line 383 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" #line 385 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" #line 386 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" /* Define _MRTIMP2 */ /* Define _MRTIMP2_NPURE */ #line 410 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" #line 412 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" #line 414 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" /* Define _MRTIMP2_NCEE */ #line 420 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" #line 422 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" #line 423 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" /* Define _MRTIMP2_NCEEPURE */ #line 429 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" #line 431 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" #line 432 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" /* Define _MRTIMP2_NPURE_NCEEPURE */ #line 438 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" #line 440 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" #line 441 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" #line 445 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" #line 452 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" #line 453 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" #line 457 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" /* NAMESPACE */ /* We use the stdext (standard extension) namespace to contain extensions that are not part of the current standard */ /* #define _GLOBAL_USING *.h in global namespace, c* imports to std */ #line 489 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" #line 509 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" namespace std { typedef bool _Bool; } #line 517 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" /* VC++ COMPILER PARAMETERS */ /* INTEGER PROPERTIES */ typedef __int64 _Longlong; typedef unsigned __int64 _ULonglong; /* STDIO PROPERTIES */ #line 540 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" /* MULTITHREAD PROPERTIES */ /* LOCK MACROS */ namespace std { // CLASS _Lockit // warning 4412 is benign here #pragma warning(push) #pragma warning(disable:4412) class __declspec(dllimport) _Lockit { // lock while object in existence -- MUST NEST public: #line 580 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" explicit __thiscall _Lockit(); // set default lock explicit __thiscall _Lockit(int); // set the lock __thiscall ~_Lockit(); // clear the lock #line 584 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" static void __cdecl _Lockit_ctor(int); static void __cdecl _Lockit_dtor(int); private: static void __cdecl _Lockit_ctor(_Lockit *); static void __cdecl _Lockit_ctor(_Lockit *, int); static void __cdecl _Lockit_dtor(_Lockit *); _Lockit(const _Lockit&); // not defined _Lockit& operator=(const _Lockit&); // not defined int _Locktype; #line 612 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" }; #line 706 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" class __declspec(dllimport) _Mutex { // lock under program control public: #line 731 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" __thiscall _Mutex(); __thiscall ~_Mutex(); void __thiscall _Lock(); void __thiscall _Unlock(); #line 736 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" private: static void __cdecl _Mutex_ctor(_Mutex *); static void __cdecl _Mutex_dtor(_Mutex *); static void __cdecl _Mutex_Lock(_Mutex *); static void __cdecl _Mutex_Unlock(_Mutex *); _Mutex(const _Mutex&); // not defined _Mutex& operator=(const _Mutex&); // not defined void *_Mtx; #line 756 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" }; class __declspec(dllimport) _Init_locks { // initialize mutexes public: #line 775 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" __thiscall _Init_locks(); __thiscall ~_Init_locks(); #line 778 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" private: static void __cdecl _Init_locks_ctor(_Init_locks *); static void __cdecl _Init_locks_dtor(_Init_locks *); #line 792 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" }; #pragma warning(pop) } #line 797 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" /* MISCELLANEOUS MACROS AND TYPES */ __declspec(dllimport) void __cdecl _Atexit(void (__cdecl *)(void)); typedef int _Mbstatet; #pragma pack(pop) #line 818 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" #line 820 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\yvals.h" /* * Copyright (c) 1992-2005 by P.J. Plauger. ALL RIGHTS RESERVED. * Consult your license regarding permissions and restrictions. V4.05:0009 */ #line 8 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\xstddef" #line 9 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\xstddef" #line 1 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\cstddef" // cstddef standard header #pragma once namespace std { using ::ptrdiff_t; using ::size_t; } #line 21 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\cstddef" #line 22 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\cstddef" #line 24 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\cstddef" #line 25 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\cstddef" /* * Copyright (c) 1992-2005 by P.J. Plauger. ALL RIGHTS RESERVED. * Consult your license regarding permissions and restrictions. V4.05:0009 */ #line 11 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\xstddef" #pragma pack(push,8) #pragma warning(push,3) #line 16 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\xstddef" namespace std { // EXCEPTION MACROS #line 37 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\xstddef" #line 51 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\xstddef" // BITMASK MACROS // MISCELLANEOUS MACROS #line 73 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\xstddef" #line 75 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\xstddef" #line 81 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\xstddef" // TYPE DEFINITIONS enum _Uninitialized { // tag for suppressing initialization _Noinit}; } #pragma warning(pop) #pragma pack(pop) #line 92 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\xstddef" #line 94 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\xstddef" #line 95 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\xstddef" /* * Copyright (c) 1992-2005 by P.J. Plauger. ALL RIGHTS RESERVED. * Consult your license regarding permissions and restrictions. V4.05:0009 */ #line 17 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\exception" #pragma pack(push,8) #pragma warning(push,3) #line 22 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\exception" namespace std { } #line 222 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\exception" // CLASS exception namespace stdext { class exception; } namespace std { using ::stdext:: exception; typedef void (__cdecl *_Prhand)(const exception&); extern __declspec(dllimport) _Prhand _Raise_handler; // pointer to raise handler __declspec(dllimport) void __cdecl mozilla_Throw(const exception&); // throw the exception } namespace stdext { class exception { // base of all library exceptions public: static ::std:: _Prhand _Set_raise_handler(::std:: _Prhand _Pnew) { // register a handler for _Raise calls const ::std:: _Prhand _Pold = ::std:: _Raise_handler; ::std:: _Raise_handler = _Pnew; return (_Pold); } // this constructor is necessary to compile // successfully header new for _HAS_EXCEPTIONS==0 scenario explicit exception(const char *_Message = "unknown", int x=1) : _Ptr(_Message) { // construct from message string (void)x; } exception(const exception& _Right) : _Ptr(_Right._Ptr) { // construct by copying _Right } exception& operator=(const exception& _Right) { // assign _Right _Ptr = _Right._Ptr; return (*this); } virtual ~exception() { // destroy the object } virtual const char * what() const { // return pointer to message string return (_Ptr); } void _Raise() const { // raise the exception if (::std:: _Raise_handler != 0) (*::std:: _Raise_handler)(*this); // call raise handler if present _Doraise(); // call the protected virtual ::std:: mozilla_Throw(*this); // raise this exception } protected: virtual void _Doraise() const { // perform class-specific exception handling } protected: const char *_Ptr; // the message pointer }; } namespace std { // TYPES typedef void (__cdecl *terminate_handler)(); typedef void (__cdecl *unexpected_handler)(); // DUMMY FUNCTION DECLARATIONS inline terminate_handler __cdecl set_terminate(terminate_handler) { // register a terminate handler return 0; } inline unexpected_handler __cdecl set_unexpected(unexpected_handler) { // register an unexpected handler return 0; } inline void __cdecl terminate() { // handle exception termination } inline void __cdecl unexpected() { // handle unexpected exception } __declspec(dllimport) bool __cdecl uncaught_exception(); // handle uncaught exception } #line 331 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\exception" #line 335 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\exception" namespace stdext { #line 337 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\exception" // CLASS bad_exception class bad_exception : public exception { // base of all bad exceptions public: bad_exception(const char *_Message = "bad exception") : exception(_Message) { // construct from message string } virtual ~bad_exception() { // destroy the object } protected: virtual void _Doraise() const { // raise this exception ::std:: mozilla_Throw(*this); } #line 359 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\exception" }; static const char * _bad_alloc_Message = "bad allocation"; // CLASS bad_alloc class bad_alloc : public exception { // base of all bad allocation exceptions public: bad_alloc(const char *_Message) : exception(_Message) { // construct from message string } bad_alloc() : exception(_bad_alloc_Message, 1) { // construct from message string with no memory allocation } virtual ~bad_alloc() { // destroy the object } protected: virtual void _Doraise() const { // perform class-specific exception handling ::std:: mozilla_Throw(*this); } #line 390 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\exception" }; #line 396 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\exception" } namespace std { using ::stdext:: bad_alloc; using ::stdext:: bad_exception; } #line 405 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\exception" #pragma warning(pop) #pragma pack(pop) #line 415 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\exception" #line 417 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\exception" #line 418 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\exception" /* * Copyright (c) 1992-2005 by P.J. Plauger. ALL RIGHTS RESERVED. * Consult your license regarding permissions and restrictions. V4.05:0009 */ #line 50 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla\\msvc_throw_wrapper.h" #line 52 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla\\msvc_throw_wrapper.h" #line 48 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/throw_msvc.h" #line 51 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/throw_msvc.h" #line 53 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/throw_msvc.h" #line 52 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\stl_wrappers\\new" #line 53 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\stl_wrappers\\new" // Code might include before other wrapped headers, but // includes and so we want to wrap it. But mozalloc.h // wants also, so we break the cycle by always explicitly // including here. #line 1 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\new" // new standard header for Microsoft #pragma once #pragma pack(push,8) #pragma warning(push,3) #line 14 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\new" #line 25 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\new" namespace std { // SUPPORT TYPES // handler for operator new failures typedef void (__cdecl * new_handler) (); #line 37 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\new" #line 38 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\new" struct nothrow_t { // placement new tag type to suppress exceptions }; extern const nothrow_t nothrow; // constant for placement new tag #line 46 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\new" // FUNCTION AND OBJECT DECLARATIONS __declspec(dllimport) new_handler __cdecl set_new_handler(new_handler) ; // establish alternate new handler } // new AND delete DECLARATIONS (NB: NOT IN std) void __cdecl operator delete(void *) ; void *__cdecl operator new(size_t _Size) ; inline void *__cdecl operator new(size_t, void *_Where) { // construct array with placement at _Where return (_Where); } inline void __cdecl operator delete(void *, void *) { // delete if placement new fails } #line 67 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\new" inline void *__cdecl operator new[](size_t, void *_Where) { // construct array with placement at _Where return (_Where); } inline void __cdecl operator delete[](void *, void *) { // delete if placement array new fails } #line 79 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\new" void __cdecl operator delete[](void *) ; // delete allocated array void *__cdecl operator new[](size_t _Size) ; // allocate array or throw exception void *__cdecl operator new(size_t _Size, const std::nothrow_t&) ; void *__cdecl operator new[](size_t _Size, const std::nothrow_t&) ; // allocate array or return null pointer void __cdecl operator delete(void *, const std::nothrow_t&) ; // delete if nothrow new fails -- REPLACEABLE void __cdecl operator delete[](void *, const std::nothrow_t&) ; // delete if nothrow array new fails -- REPLACEABLE #line 99 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\new" using std::new_handler; #line 105 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\new" #pragma warning(pop) #pragma pack(pop) #line 112 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\new" #line 114 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\new" #line 115 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\new" /* * Copyright (c) 1992-2005 by P.J. Plauger. ALL RIGHTS RESERVED. * Consult your license regarding permissions and restrictions. V4.05:0009 */ #line 59 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\stl_wrappers\\new" // See if we're in code that can use mozalloc. NB: this duplicates // code in nscore.h because nscore.h pulls in prtypes.h, and chromium // can't build with that being included before base/basictypes.h. #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/mozalloc.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- * vim: sw=4 ts=4 et : */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Mozilla Foundation * Portions created by the Initial Developer are Copyright (C) 2009 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Chris Jones * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 65 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\stl_wrappers\\new" #line 68 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\stl_wrappers\\new" // From // http://msdn.microsoft.com/en-us/library/aa985982%28VS.80%29.aspx // and // http://msdn.microsoft.com/en-us/library/aa985965%28VS.80%29.aspx // there appear to be two types of STL container checking. The // former is enabled by -D_DEBUG (which is implied by -DDEBUG), and // looks to be full generation/mutation checked iterators as done by // _GLIBCXX_DEBUG. The latter appears to just be bounds checking, and // is enabled by the following macros. It appears that the _DEBUG // iterators subsume _SECURE_SCL, and the following settings are // default anyway, so we'll just leave this commented out. //# define _SECURE_SCL 1 //# define _SECURE_SCL_THROWS 0 #line 95 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\stl_wrappers\\new" // We know that code won't be able to catch exceptions, but that's OK // because we're not throwing them. #pragma warning( push ) #pragma warning( disable : 4530 ) #pragma warning( pop ) #line 106 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\stl_wrappers\\new" #line 52 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/mozalloc.h" #line 53 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/mozalloc.h" #line 61 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/mozalloc.h" #line 69 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/mozalloc.h" #line 78 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/mozalloc.h" /* Workaround build problem with Sun Studio 12 */ #line 86 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/mozalloc.h" extern "C" { #line 90 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/mozalloc.h" /* * Each pair of declarations below is analogous to a "standard" * allocation function, except that the out-of-memory handling is made * explicit. The |moz_x| versions will never return a NULL pointer; * if memory is exhausted, they abort. The |moz_| versions may return * NULL pointers if memory is exhausted: their return value must be * checked. * * All these allocation functions are *guaranteed* to return a pointer * to memory allocated in such a way that that memory can be freed by * passing that pointer to |moz_free()|. */ __declspec(dllimport) void moz_free(void* ptr); __declspec(dllimport) void* moz_xmalloc(size_t size) ; __declspec(dllimport) void* moz_malloc(size_t size) ; __declspec(dllimport) void* moz_xcalloc(size_t nmemb, size_t size) ; __declspec(dllimport) void* moz_calloc(size_t nmemb, size_t size) ; __declspec(dllimport) void* moz_xrealloc(void* ptr, size_t size) ; __declspec(dllimport) void* moz_realloc(void* ptr, size_t size) ; __declspec(dllimport) char* moz_xstrdup(const char* str) ; __declspec(dllimport) char* moz_strdup(const char* str) ; __declspec(dllimport) size_t moz_malloc_usable_size(void *ptr); #line 145 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/mozalloc.h" #line 154 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/mozalloc.h" #line 163 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/mozalloc.h" #line 172 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/mozalloc.h" } /* extern "C" */ #line 177 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/mozalloc.h" /* * We implement the default operators new/delete as part of * libmozalloc, replacing their definitions in libstdc++. The * operator new* definitions in libmozalloc will never return a NULL * pointer. * * Each operator new immediately below returns a pointer to memory * that can be delete'd by any of * * (1) the matching infallible operator delete immediately below * (2) the matching "fallible" operator delete further below * (3) the matching system |operator delete(void*, std::nothrow)| * (4) the matching system |operator delete(void*) throw(std::bad_alloc)| * * NB: these are declared |throw(std::bad_alloc)|, though they will never * throw that exception. This declaration is consistent with the rule * that |::operator new() throw(std::bad_alloc)| will never return NULL. */ /* NB: This is defined just to silence vacuous warnings about symbol * visibility on OS X/gcc. These symbols are force-inline and not * exported. */ #line 206 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/mozalloc.h" #line 208 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/mozalloc.h" /* * Android doesn't fully support exceptions, so its header * has operators that don't specify throw() at all. Also include MSVC * to suppress build warning spam (bug 578546). */ #line 219 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/mozalloc.h" #line 225 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/mozalloc.h" inline void* operator new(size_t size) { return moz_xmalloc(size); } inline void* operator new(size_t size, const std::nothrow_t&) { return moz_malloc(size); } inline void* operator new[](size_t size) { return moz_xmalloc(size); } inline void* operator new[](size_t size, const std::nothrow_t&) { return moz_malloc(size); } inline void operator delete(void* ptr) { return moz_free(ptr); } inline void operator delete(void* ptr, const std::nothrow_t&) { return moz_free(ptr); } inline void operator delete[](void* ptr) { return moz_free(ptr); } inline void operator delete[](void* ptr, const std::nothrow_t&) { return moz_free(ptr); } /* * We also add a new allocator variant: "fallible operator new." * Unlike libmozalloc's implementations of the standard nofail * allocators, this allocator is allowed to return NULL. It can be used * as follows * * Foo* f = new (mozilla::fallible) Foo(...); * * operator delete(fallible) is defined for completeness only. * * Each operator new below returns a pointer to memory that can be * delete'd by any of * * (1) the matching "fallible" operator delete below * (2) the matching infallible operator delete above * (3) the matching system |operator delete(void*, std::nothrow)| * (4) the matching system |operator delete(void*) throw(std::bad_alloc)| */ namespace mozilla { struct __declspec(dllimport) fallible_t { }; } /* namespace mozilla */ inline void* operator new(size_t size, const mozilla::fallible_t&) { return moz_malloc(size); } inline void* operator new[](size_t size, const mozilla::fallible_t&) { return moz_malloc(size); } inline void operator delete(void* ptr, const mozilla::fallible_t&) { moz_free(ptr); } inline void operator delete[](void* ptr, const mozilla::fallible_t&) { moz_free(ptr); } #line 325 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/mozalloc.h" #line 328 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/mozalloc.h" #line 51 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/mozalloc_macro_wrappers.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- * vim: sw=4 ts=4 et : */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Mozilla Foundation * Portions created by the Initial Developer are Copyright (C) 2009 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Chris Jones * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* * Make libc "allocating functions" never fail (return NULL). * * FIXME: use infallible allocators by default after * http://bugzilla.mozilla.org/show_bug.cgi?id=507249 * lands. */ #line 65 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/mozalloc_macro_wrappers.h" #line 69 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/mozalloc_macro_wrappers.h" #line 73 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/mozalloc_macro_wrappers.h" #line 77 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/mozalloc_macro_wrappers.h" #line 80 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/mozalloc_macro_wrappers.h" #line 52 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" #line 53 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" /** * Incorporate the core NSPR data types which XPCOM uses. */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* ** File: prtypes.h ** Description: Definitions of NSPR's basic types ** ** Prototypes and macros used to make up for deficiencies that we have found ** in ANSI environments. ** ** Since we do not wrap and all the other standard headers, authors ** of portable code will not know in general that they need these definitions. ** Instead of requiring these authors to find the dependent uses in their code ** and take the following steps only in those C files, we take steps once here ** for all C files. **/ #line 58 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" /* Core XPCOM declarations. */ /** * Macros defining the target platform... */ #line 73 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" /*----------------------------------------------------------------------*/ /* Import/export defines */ /** * Using the visibility("hidden") attribute allows the compiler to use * PC-relative addressing to call this function. If a function does not * access any global data, and does not call any methods which are not either * file-local or hidden, then on ELF systems we avoid loading the address of * the PLT into a register at the start of the function, which reduces code * size and frees up a register for general use. * * As a general rule, this should be used for any non-exported symbol * (including virtual method implementations). NS_IMETHOD uses this by * default; if you need to have your NS_IMETHOD functions exported, you can * wrap your class as follows: * * #undef IMETHOD_VISIBILITY * #define IMETHOD_VISIBILITY NS_VISIBILITY_DEFAULT * * class Foo { * ... * }; * * #undef IMETHOD_VISIBILITY * #define IMETHOD_VISIBILITY NS_VISIBILITY_HIDDEN * * Don't forget to change the visibility back to hidden before the end * of a header! * * Other examples: * * NS_HIDDEN_(int) someMethod(); * SomeCtor() NS_HIDDEN; */ #line 113 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" #line 117 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" #line 119 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" #line 121 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" /** * Mark a function as using a potentially non-standard function calling * convention. This can be used on functions that are called very * frequently, to reduce the overhead of the function call. It is still worth * using the macro for C++ functions which take no parameters since it allows * passing |this| in a register. * * - Do not use this on any scriptable interface method since xptcall won't be * aware of the different calling convention. * - This must appear on the declaration, not the definition. * - Adding this to a public function _will_ break binary compatibility. * - This may be used on virtual functions but you must ensure it is applied * to all implementations - the compiler will _not_ warn but it will crash. * - This has no effect for inline functions or functions which take a * variable number of arguments. * - __fastcall on windows should not be applied to class * constructors/destructors - use the NS_CONSTRUCTOR_FASTCALL macro for * constructors/destructors. * * Examples: int NS_FASTCALL func1(char *foo); * NS_HIDDEN_(int) NS_FASTCALL func2(char *foo); */ #line 159 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" #line 165 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" /* * NS_DEFCALL undoes the effect of a global regparm/stdcall setting * so that xptcall works correctly. */ #line 174 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" #line 176 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" /* These are needed to mark static members in exported classes, due to gcc bug XXX insert bug# here. */ #line 229 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" /** * Macro for creating typedefs for pointer-to-member types which are * declared with stdcall. It is important to use this for any type which is * declared as stdcall (i.e. NS_IMETHOD). For example, instead of writing: * * typedef nsresult (nsIFoo::*someType)(nsISupports* arg); * * you should write: * * typedef * NS_STDCALL_FUNCPROTO(nsresult, someType, nsIFoo, typeFunc, (nsISupports*)); * * where nsIFoo::typeFunc is any method declared as * NS_IMETHOD typeFunc(nsISupports*); * * XXX this can be simplified to always use the non-typeof implementation * when http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11893 is fixed. */ #line 256 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" /** * Deprecated declarations. */ #line 263 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" #line 267 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" /** * Generic API modifiers which return the standard XPCOM nsresult type */ /** * Import/Export macros for XPCOM APIs */ #line 285 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" #line 297 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" #line 307 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" /* The frozen string API has different definitions of nsAC?String classes than the internal API. On systems that explicitly declare dllexport symbols this is not a problem, but on ELF systems internal symbols can accidentally "shine through"; we rename the internal classes to avoid symbol conflicts. */ #line 326 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" /* Make refcnt logging part of the build. This doesn't mean that * actual logging will occur (that requires a separate enable; see * nsTraceRefcnt.h for more information). */ #line 333 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" /* If NO_BUILD_REFCNT_LOGGING is defined then disable refcnt logging * in the build. This overrides FORCE_BUILD_REFCNT_LOGGING. */ #line 339 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" /* If a program allocates memory for the lifetime of the app, it doesn't make * sense to touch memory pages and free that memory at shutdown, * unless we are running leak stats. */ #line 347 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" /** * NS_NO_VTABLE is emitted by xpidl in interface declarations whenever * xpidl can determine that the interface can't contain a constructor. * This results in some space savings and possible runtime savings - * see bug 49416. We undefine it first, as xpidl-generated headers * define it for IDL uses that don't include this file. */ #line 363 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" /** * Generic XPCOM result data type */ typedef PRUint32 nsresult; /** * Reference count values * * This is the return type for AddRef() and Release() in nsISupports. * IUnknown of COM returns an unsigned long from equivalent functions. * The following ifdef exists to maintain binary compatibility with * IUnknown. */ typedef unsigned long nsrefcnt; #line 383 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" /** * The preferred symbol for null. Make sure this is the same size as * void* on the target. See bug 547964. */ #line 391 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" #line 393 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsError.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* * To add error code to your module, you need to do the following: * * 1) Add a module offset code. Add yours to the bottom of the list * right below this comment, adding 1. * * 2) In your module, define a header file which uses one of the * NE_ERROR_GENERATExxxxxx macros. Some examples below: * * #define NS_ERROR_MYMODULE_MYERROR1 NS_ERROR_GENERATE(NS_ERROR_SEVERITY_ERROR,NS_ERROR_MODULE_MYMODULE,1) * #define NS_ERROR_MYMODULE_MYERROR2 NS_ERROR_GENERATE_SUCCESS(NS_ERROR_MODULE_MYMODULE,2) * #define NS_ERROR_MYMODULE_MYERROR3 NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_MYMODULE,3) * */ /** * @name Standard Module Offset Code. Each Module should identify a unique number * and then all errors associated with that module become offsets from the * base associated with that module id. There are 16 bits of code bits for * each module. */ /* NS_ERROR_MODULE_GENERAL should be used by modules that do not * care if return code values overlap. Callers of methods that * return such codes should be aware that they are not * globally unique. Implementors should be careful about blindly * returning codes from other modules that might also use * the generic base. */ /** * @name Standard Error Handling Macros * @return 0 or 1 */ #line 125 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsError.h" #line 128 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsError.h" /** * @name Severity Code. This flag identifies the level of warning */ /** * @name Mozilla Code. This flag separates consumers of mozilla code * from the native platform */ /** * @name Standard Error Generating Macros */ /** * @name Standard Macros for retrieving error bits */ /** * @name Standard return values */ /*@{*/ /* Standard "it worked" return value */ /* Returned when an instance is not initialized */ /* Returned when an instance is already initialized */ /* Returned by a not implemented function */ /* Returned when a given interface is not supported. */ /* Returned when a function aborts */ /* Returned when a function fails */ /* Returned when an unexpected error occurs */ /* Returned when a memory allocation fails */ /* Returned when an illegal value is passed */ /* Returned when a class doesn't allow aggregation */ /* Returned when an operation can't complete due to an unavailable resource */ /* Returned when a class is not registered */ /* Returned when a class cannot be registered, but may be tried again later */ /* Returned when a dynamically loaded factory couldn't be found */ /* Returned when a factory doesn't support signatures */ /* Returned when a factory already is registered */ /* For COM compatibility reasons, we want to use exact error code numbers for NS_ERROR_PROXY_INVALID_IN_PARAMETER and NS_ERROR_PROXY_INVALID_OUT_PARAMETER. The first matches: #define RPC_E_INVALID_PARAMETER _HRESULT_TYPEDEF_(0x80010010L) Errors returning this mean that the xpcom proxy code could not create a proxy for one of the in paramaters. Because of this, we are ignoring the convention if using a base and offset for error numbers. */ /* Returned when a proxy could not be create a proxy for one of the IN parameters This is returned only when the "real" method has NOT been invoked. */ /* Returned when a proxy could not be create a proxy for one of the OUT parameters This is returned only when the "real" method has ALREADY been invoked. */ /*@}*/ /* I/O Errors */ /* Stream closed */ /* Error from the operating system */ /* Illegal arguments */ /* For unichar streams */ /* For unichar streams */ /* Result codes used by nsIDirectoryServiceProvider2 */ /* Result codes used by nsIVariant */ /* Result codes used by nsIThreadManager */ /** * Various operations are not permitted during XPCOM shutdown and will fail * with this exception. */ /* * This will return the nsresult corresponding to the most recent NSPR failure * returned by PR_GetError. * *********************************************************************** * Do not depend on this function. It will be going away! *********************************************************************** */ extern nsresult NS_ErrorAccordingToNSPR(); #pragma warning(disable: 4251) #pragma warning(disable: 4275) #line 337 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsError.h" extern PRBool sXPCOMHasLoadedNewDLLs; __declspec(dllexport) void NS_SetHasLoadedNewDLLs(); #line 342 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsError.h" #line 344 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsError.h" #line 396 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" /* ------------------------------------------------------------------------ */ /* Casting macros for hiding C++ features from older compilers */ /* All our compiler support template specialization, but not all support the |template <>| notation. The compiler that don't understand this notation just omit it for specialization. Need to add an autoconf test for this. */ /* under VC++ (Windows), we don't have autoconf yet */ #line 420 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" /* If the compiler doesn't support |explicit|, we'll just make it go away, trusting that the builds under compilers that do have it will keep us on the straight and narrow. */ #line 452 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" /* * Use these macros to do 64bit safe pointer conversions. */ /* * Use NS_STRINGIFY to form a string literal from the value of a macro. */ /* * Use NS_CLAMP to force a value (such as a preference) into a range. */ /* * These macros allow you to give a hint to the compiler about branch * probability so that it can better optimize. Use them like this: * * if (NS_LIKELY(v == 1)) { * ... expected code path ... * } * * if (NS_UNLIKELY(v == 0)) { * ... non-expected code path ... * } * * These macros are guaranteed to always return 0 or 1. * The NS_FAILED/NS_SUCCEEDED macros depends on this. * @return 0 or 1 */ #line 493 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" #line 496 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" /* * If we're being linked as standalone glue, we don't want a dynamic * dependency on NSPR libs, so we skip the debug thread-safety * checks, and we cannot use the THREADSAFE_ISUPPORTS macros. */ #line 505 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" #line 509 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" /** * Static type annotations, enforced when static-checking is enabled: * * NS_STACK_CLASS: a class which must only be instantiated on the stack * NS_FINAL_CLASS: a class which may not be subclassed * * NS_MUST_OVERRIDE: * a method which every immediate subclass of this class must * override. A subclass override can itself be NS_MUST_OVERRIDE, in * which case its own subclasses must override the method as well. * * This is similar to, but not the same as, marking a method pure * virtual. It has no effect on the class in which the annotation * appears, you can still provide a definition for the method, and * it objects to the mere existence of a subclass that doesn't * override the method. See examples in analysis/must-override.js. */ #line 540 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" /** * Attributes defined to help Dehydra GCC analysis. */ #line 557 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" #line 559 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" #line 41 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAtomicRefcnt.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\pratom.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* GLOBAL FUNCTIONS: ** DESCRIPTION: ** PR Atomic operations */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* ** File: prtypes.h ** Description: Definitions of NSPR's basic types ** ** Prototypes and macros used to make up for deficiencies that we have found ** in ANSI environments. ** ** Since we do not wrap and all the other standard headers, authors ** of portable code will not know in general that they need these definitions. ** Instead of requiring these authors to find the dependent uses in their code ** and take the following steps only in those C files, we take steps once here ** for all C files. **/ #line 47 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\pratom.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prlock.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* ** File: prlock.h ** Description: API to basic locking functions of NSPR. ** ** ** NSPR provides basic locking mechanisms for thread synchronization. Locks ** are lightweight resource contention controls that prevent multiple threads ** from accessing something (code/data) simultaneously. **/ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* ** File: prtypes.h ** Description: Definitions of NSPR's basic types ** ** Prototypes and macros used to make up for deficiencies that we have found ** in ANSI environments. ** ** Since we do not wrap and all the other standard headers, authors ** of portable code will not know in general that they need these definitions. ** Instead of requiring these authors to find the dependent uses in their code ** and take the following steps only in those C files, we take steps once here ** for all C files. **/ #line 52 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prlock.h" extern "C" { /**********************************************************************/ /************************* TYPES AND CONSTANTS ************************/ /**********************************************************************/ /* * PRLock -- * * NSPR represents the lock as an opaque entity to the client of the * API. All routines operate on a pointer to this opaque entity. */ typedef struct PRLock PRLock; /**********************************************************************/ /****************************** FUNCTIONS *****************************/ /**********************************************************************/ /*********************************************************************** ** FUNCTION: PR_NewLock ** DESCRIPTION: ** Returns a pointer to a newly created opaque lock object. ** INPUTS: void ** OUTPUTS: void ** RETURN: PRLock* ** If the lock can not be created because of resource constraints, NULL ** is returned. ** ***********************************************************************/ __declspec(dllimport) PRLock* PR_NewLock(void); /*********************************************************************** ** FUNCTION: PR_DestroyLock ** DESCRIPTION: ** Destroys a given opaque lock object. ** INPUTS: PRLock *lock ** Lock to be freed. ** OUTPUTS: void ** RETURN: None ***********************************************************************/ __declspec(dllimport) void PR_DestroyLock(PRLock *lock); /*********************************************************************** ** FUNCTION: PR_Lock ** DESCRIPTION: ** Lock a lock. ** INPUTS: PRLock *lock ** Lock to locked. ** OUTPUTS: void ** RETURN: None ***********************************************************************/ __declspec(dllimport) void PR_Lock(PRLock *lock); /*********************************************************************** ** FUNCTION: PR_Unlock ** DESCRIPTION: ** Unlock a lock. Unlocking an unlocked lock has undefined results. ** INPUTS: PRLock *lock ** Lock to unlocked. ** OUTPUTS: void ** RETURN: PR_STATUS ** Returns PR_FAILURE if the caller does not own the lock. ***********************************************************************/ __declspec(dllimport) PRStatus PR_Unlock(PRLock *lock); /*********************************************************************** ** MACRO: PR_ASSERT_CURRENT_THREAD_OWNS_LOCK ** DESCRIPTION: ** If the current thread owns |lock|, this assertion is guaranteed to ** succeed. Otherwise, the behavior of this function is undefined. ** INPUTS: PRLock *lock ** Lock to assert ownership of. ** OUTPUTS: void ** RETURN: None ***********************************************************************/ #line 135 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prlock.h" /* Don't call this function directly. */ __declspec(dllimport) void PR_AssertCurrentThreadOwnsLock(PRLock *lock); } #line 142 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prlock.h" #line 48 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\pratom.h" extern "C" { /* ** FUNCTION: PR_AtomicIncrement ** DESCRIPTION: ** Atomically increment a 32 bit value. ** INPUTS: ** val: a pointer to the value to increment ** RETURN: ** the returned value is the result of the increment */ __declspec(dllimport) PRInt32 PR_AtomicIncrement(PRInt32 *val); /* ** FUNCTION: PR_AtomicDecrement ** DESCRIPTION: ** Atomically decrement a 32 bit value. ** INPUTS: ** val: a pointer to the value to decrement ** RETURN: ** the returned value is the result of the decrement */ __declspec(dllimport) PRInt32 PR_AtomicDecrement(PRInt32 *val); /* ** FUNCTION: PR_AtomicSet ** DESCRIPTION: ** Atomically set a 32 bit value. ** INPUTS: ** val: A pointer to a 32 bit value to be set ** newval: The newvalue to assign to val ** RETURN: ** Returns the prior value */ __declspec(dllimport) PRInt32 PR_AtomicSet(PRInt32 *val, PRInt32 newval); /* ** FUNCTION: PR_AtomicAdd ** DESCRIPTION: ** Atomically add a 32 bit value. ** INPUTS: ** ptr: a pointer to the value to increment ** val: value to be added ** RETURN: ** the returned value is the result of the addition */ __declspec(dllimport) PRInt32 PR_AtomicAdd(PRInt32 *ptr, PRInt32 val); /* ** MACRO: PR_ATOMIC_INCREMENT ** MACRO: PR_ATOMIC_DECREMENT ** MACRO: PR_ATOMIC_SET ** MACRO: PR_ATOMIC_ADD ** DESCRIPTION: ** Macro versions of the atomic operations. They may be implemented ** as compiler intrinsics. ** ** IMPORTANT NOTE TO NSPR MAINTAINERS: ** Implement these macros with compiler intrinsics only on platforms ** where the PR_AtomicXXX functions are truly atomic (i.e., where the ** configuration macro _PR_HAVE_ATOMIC_OPS is defined). Otherwise, ** the macros and functions won't be compatible and can't be used ** interchangeably. */ long __cdecl _InterlockedIncrement(long volatile *Addend); long __cdecl _InterlockedDecrement(long volatile *Addend); long __cdecl _InterlockedExchange(long volatile *Target, long Value); long __cdecl _InterlockedExchangeAdd(long volatile *Addend, long Value); #pragma intrinsic(_InterlockedIncrement) #pragma intrinsic(_InterlockedDecrement) #pragma intrinsic(_InterlockedExchange) #pragma intrinsic(_InterlockedExchangeAdd) #line 127 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\pratom.h" #line 164 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\pratom.h" /* ** LIFO linked-list (stack) */ typedef struct PRStackElemStr PRStackElem; struct PRStackElemStr { PRStackElem *prstk_elem_next; /* next pointer MUST be at offset 0; assembly language code relies on this */ }; typedef struct PRStackStr PRStack; /* ** FUNCTION: PR_CreateStack ** DESCRIPTION: ** Create a stack, a LIFO linked list ** INPUTS: ** stack_name: a pointer to string containing the name of the stack ** RETURN: ** A pointer to the created stack, if successful, else NULL. */ __declspec(dllimport) PRStack * PR_CreateStack(const char *stack_name); /* ** FUNCTION: PR_StackPush ** DESCRIPTION: ** Push an element on the top of the stack ** INPUTS: ** stack: pointer to the stack ** stack_elem: pointer to the stack element ** RETURN: ** None */ __declspec(dllimport) void PR_StackPush(PRStack *stack, PRStackElem *stack_elem); /* ** FUNCTION: PR_StackPop ** DESCRIPTION: ** Remove the element on the top of the stack ** INPUTS: ** stack: pointer to the stack ** RETURN: ** A pointer to the stack element removed from the top of the stack, ** if non-empty, ** else NULL */ __declspec(dllimport) PRStackElem * PR_StackPop(PRStack *stack); /* ** FUNCTION: PR_DestroyStack ** DESCRIPTION: ** Destroy the stack ** INPUTS: ** stack: pointer to the stack ** RETURN: ** PR_SUCCESS - if successfully deleted ** PR_FAILURE - if the stack is not empty ** PR_GetError will return ** PR_INVALID_STATE_ERROR - stack is not empty */ __declspec(dllimport) PRStatus PR_DestroyStack(PRStack *stack); } #line 230 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\pratom.h" #line 42 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAtomicRefcnt.h" class nsAutoRefCnt; // This header defines functions for modifying refcounts which wrap the // PR_ATOMIC_* macros. typedef volatile long nsAtomicRefcnt; #line 55 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAtomicRefcnt.h" #line 61 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAtomicRefcnt.h" inline nsrefcnt NS_AtomicIncrementRefcnt(nsrefcnt &refcnt) { return (nsrefcnt) _InterlockedIncrement((long volatile *)((nsAtomicRefcnt*)&refcnt)); } inline nsrefcnt NS_AtomicIncrementRefcnt(nsAutoRefCnt &refcnt) { // This cast is safe since nsAtomicRefCnt contains just one member, its refcount. return (nsrefcnt) _InterlockedIncrement((long volatile *)((nsAtomicRefcnt*)&refcnt)); } inline nsrefcnt NS_AtomicDecrementRefcnt(nsrefcnt &refcnt) { return (nsrefcnt) _InterlockedDecrement((long volatile *)((nsAtomicRefcnt*)&refcnt)); } inline nsrefcnt NS_AtomicDecrementRefcnt(nsAutoRefCnt &refcnt) { return (nsrefcnt) _InterlockedDecrement((long volatile *)((nsAtomicRefcnt*)&refcnt)); } #line 88 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAtomicRefcnt.h" #line 43 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxTypes.h" /** * Currently needs to be 'double' for Cairo compatibility. Could * become 'float', perhaps, in some configurations. */ typedef double gfxFloat; #line 53 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxTypes.h" #line 57 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxTypes.h" /** * gfx errors */ /* nsIDeviceContext.h defines a set of printer errors */ /* Font cmap is strangely structured - avoid this font! */ /** * Priority of a line break opportunity. * * eNoBreak The line has no break opportunities * eWordWrapBreak The line has a break opportunity only within a word. With * word-wrap: break-word we will break at this point only if * there are no other break opportunities in the line. * eNormalBreak The line has a break opportunity determined by the standard * line-breaking algorithm. * * Future expansion: split eNormalBreak into multiple priorities, e.g. * punctuation break and whitespace break (bug 389710). * As and when we implement it, text-wrap: unrestricted will * mean that priorities are ignored and all line-break * opportunities are equal. * * @see gfxTextRun::BreakAndMeasureText * @see nsLineLayout::NotifyOptionalBreakPosition */ enum gfxBreakPriority { eNoBreak = 0, eWordWrapBreak, eNormalBreak }; #line 118 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxTypes.h" #line 42 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\Layers.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxASurface.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxTypes.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 42 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxASurface.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxRect.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxTypes.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 42 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxRect.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxPoint.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsMathUtils.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla Foundation code. * * The Initial Developer of the Original Code is Mozilla Foundation. * Portions created by the Initial Developer are Copyright (C) 2007 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 44 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsMathUtils.h" #line 1 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\math.h" /*** *math.h - definitions and declarations for math library * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file contains constant definitions and external subroutine * declarations for the math subroutine library. * [ANSI/System V] * * [Public] * ****/ #line 1 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" /*** *crtdefs.h - definitions/declarations common to all CRT * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file has mostly defines used by the entire CRT. * * [Public] * ****/ /* Lack of pragma once is deliberate */ /* Define _CRTIMP */ #line 19 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\math.h" /* * Currently, all MS C compilers for Win32 platforms default to 8 byte * alignment. */ #pragma pack(push,8) #line 27 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\math.h" extern "C" { #line 31 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\math.h" /* Definition of _exception struct - this struct is passed to the matherr * routine when a floating point exception is detected */ struct _exception { int type; /* exception type - see below */ char *name; /* name of function where error occured */ double arg1; /* first argument to function */ double arg2; /* second argument (if any) to function */ double retval; /* value to be returned by function */ } ; #line 49 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\math.h" /* Definition of a _complex struct to be used by those who use cabs and * want type checking on their argument */ struct _complex { double x,y; /* real and imaginary parts */ } ; #line 64 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\math.h" #line 67 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\math.h" #line 68 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\math.h" /* Constant definitions for the exception type passed in the _exception struct */ /* Definitions of _HUGE and HUGE_VAL - respectively the XENIX and ANSI names * for a value returned in case of error by a number of the floating point * math routines */ __declspec(dllimport) extern double _HUGE; #line 94 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\math.h" #line 95 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\math.h" /* Function prototypes */ double __cdecl acos( double _X); double __cdecl asin( double _X); double __cdecl atan( double _X); double __cdecl atan2( double _Y, double _X); __declspec(dllimport) double __cdecl _copysign ( double _Number, double _Sign); __declspec(dllimport) double __cdecl _chgsign ( double _X); #line 116 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\math.h" double __cdecl cos( double _X); double __cdecl cosh( double _X); double __cdecl exp( double _X); double __cdecl fabs( double _X); double __cdecl fmod( double _X, double _Y); double __cdecl log( double _X); double __cdecl log10( double _X); double __cdecl pow( double _X, double _Y); double __cdecl sin( double _X); double __cdecl sinh( double _X); double __cdecl tan( double _X); double __cdecl tanh( double _X); double __cdecl sqrt( double _X); __declspec(dllimport) double __cdecl _cabs( struct _complex _Complex); __declspec(dllimport) double __cdecl ceil( double _X); __declspec(dllimport) double __cdecl floor( double _X); __declspec(dllimport) double __cdecl frexp( double _X, int * _Y); __declspec(dllimport) double __cdecl _hypot( double _X, double _Y); __declspec(dllimport) double __cdecl _j0( double _X ); __declspec(dllimport) double __cdecl _j1( double _X ); __declspec(dllimport) double __cdecl _jn(int _X, double _Y); __declspec(dllimport) double __cdecl ldexp( double _X, int _Y); #line 149 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\math.h" int __cdecl _matherr( struct _exception * _Except); #line 151 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\math.h" #line 152 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\math.h" __declspec(dllimport) double __cdecl modf( double _X, double * _Y); __declspec(dllimport) double __cdecl _y0( double _X); __declspec(dllimport) double __cdecl _y1( double _X); __declspec(dllimport) double __cdecl _yn( int _X, double _Y); __declspec(dllimport) int __cdecl _set_SSE2_enable( int _Flag); __declspec(dllimport) float __cdecl _hypotf( float _X, float _Y); #line 165 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\math.h" #line 205 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\math.h" #line 251 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\math.h" /* Macros defining long double functions to be their double counterparts * (long double is synonymous with double in this implementation). */ inline long double acosl( long double _X) {return (acos((double)_X)); } inline long double asinl( long double _X) {return (asin((double)_X)); } inline long double atanl( long double _X) {return (atan((double)_X)); } inline long double atan2l( long double _X, long double _Y) {return (atan2((double)_X, (double)_Y)); } inline long double ceill( long double _X) {return (ceil((double)_X)); } inline long double cosl( long double _X) {return (cos((double)_X)); } inline long double coshl( long double _X) {return (cosh((double)_X)); } inline long double expl( long double _X) {return (exp((double)_X)); } inline long double fabsl( long double _X) {return (fabs((double)_X)); } inline long double floorl( long double _X) {return (floor((double)_X)); } inline long double fmodl( long double _X, long double _Y) {return (fmod((double)_X, (double)_Y)); } inline long double frexpl( long double _X, int *_Y) {return (frexp((double)_X, _Y)); } inline long double ldexpl( long double _X, int _Y) {return (ldexp((double)_X, _Y)); } inline long double logl( long double _X) {return (log((double)_X)); } inline long double log10l( long double _X) {return (log10((double)_X)); } inline long double modfl( long double _X, long double *_Y) {double _Di, _Df = modf((double)_X, &_Di); *_Y = (long double)_Di; return (_Df); } inline long double powl( long double _X, long double _Y) {return (pow((double)_X, (double)_Y)); } inline long double sinl( long double _X) {return (sin((double)_X)); } inline long double sinhl( long double _X) {return (sinh((double)_X)); } inline long double sqrtl( long double _X) {return (sqrt((double)_X)); } inline long double tanl( long double _X) {return (tan((double)_X)); } #line 365 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\math.h" inline long double tanhl( long double _X) {return (tanh((double)_X)); } inline long double _chgsignl( long double _Number) { return _chgsign(static_cast(_Number)); } inline long double _copysignl( long double _Number, long double _Sign) { return _copysign(static_cast(_Number), static_cast(_Sign)); } inline float frexpf( float _X, int *_Y) {return ((float)frexp((double)_X, _Y)); } inline float fabsf( float _X) {return ((float)fabs((double)_X)); } inline float ldexpf( float _X, int _Y) {return ((float)ldexp((double)_X, _Y)); } inline float acosf( float _X) {return ((float)acos((double)_X)); } inline float asinf( float _X) {return ((float)asin((double)_X)); } inline float atanf( float _X) {return ((float)atan((double)_X)); } inline float atan2f( float _X, float _Y) {return ((float)atan2((double)_X, (double)_Y)); } inline float ceilf( float _X) {return ((float)ceil((double)_X)); } inline float cosf( float _X) {return ((float)cos((double)_X)); } inline float coshf( float _X) {return ((float)cosh((double)_X)); } inline float expf( float _X) {return ((float)exp((double)_X)); } inline float floorf( float _X) {return ((float)floor((double)_X)); } inline float fmodf( float _X, float _Y) {return ((float)fmod((double)_X, (double)_Y)); } inline float logf( float _X) {return ((float)log((double)_X)); } inline float log10f( float _X) {return ((float)log10((double)_X)); } inline float modff( float _X, float *_Y) { double _Di, _Df = modf((double)_X, &_Di); *_Y = (float)_Di; return ((float)_Df); } inline float powf( float _X, float _Y) {return ((float)pow((double)_X, (double)_Y)); } inline float sinf( float _X) {return ((float)sin((double)_X)); } inline float sinhf( float _X) {return ((float)sinh((double)_X)); } inline float sqrtf( float _X) {return ((float)sqrt((double)_X)); } inline float tanf( float _X) {return ((float)tan((double)_X)); } inline float tanhf( float _X) {return ((float)tanh((double)_X)); } #line 429 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\math.h" #line 430 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\math.h" #line 431 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\math.h" #line 432 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\math.h" /* Non-ANSI names for compatibility */ __declspec(dllimport) extern double HUGE; #line 453 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\math.h" __declspec(dllimport) double __cdecl cabs( struct _complex _X); __declspec(dllimport) double __cdecl hypot( double _X, double _Y); __declspec(dllimport) double __cdecl j0( double _X); __declspec(dllimport) double __cdecl j1( double _X); __declspec(dllimport) double __cdecl jn( int _X, double _Y); __declspec(dllimport) double __cdecl y0( double _X); __declspec(dllimport) double __cdecl y1( double _X); __declspec(dllimport) double __cdecl yn( int _X, double _Y); #line 464 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\math.h" #line 466 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\math.h" } extern "C++" { template inline _Ty _Pow_int(_Ty _X, int _Y) {unsigned int _N; if (_Y >= 0) _N = (unsigned int)_Y; else _N = (unsigned int)(-_Y); for (_Ty _Z = _Ty(1); ; _X *= _X) {if ((_N & 1) != 0) _Z *= _X; if ((_N >>= 1) == 0) return (_Y < 0 ? _Ty(1) / _Z : _Z); }} inline long __cdecl abs( long _X) {return (labs(_X)); } inline double __cdecl abs( double _X) {return (fabs(_X)); } inline double __cdecl pow( double _X, int _Y) {return (_Pow_int(_X, _Y)); } inline float __cdecl abs( float _X) {return (fabsf(_X)); } inline float __cdecl acos( float _X) {return (acosf(_X)); } inline float __cdecl asin( float _X) {return (asinf(_X)); } inline float __cdecl atan( float _X) {return (atanf(_X)); } inline float __cdecl atan2( float _Y, float _X) {return (atan2f(_Y, _X)); } inline float __cdecl ceil( float _X) {return (ceilf(_X)); } inline float __cdecl cos( float _X) {return (cosf(_X)); } inline float __cdecl cosh( float _X) {return (coshf(_X)); } inline float __cdecl exp( float _X) {return (expf(_X)); } inline float __cdecl fabs( float _X) {return (fabsf(_X)); } inline float __cdecl floor( float _X) {return (floorf(_X)); } inline float __cdecl fmod( float _X, float _Y) {return (fmodf(_X, _Y)); } inline float __cdecl frexp( float _X, int * _Y) {return (frexpf(_X, _Y)); } inline float __cdecl ldexp( float _X, int _Y) {return (ldexpf(_X, _Y)); } inline float __cdecl log( float _X) {return (logf(_X)); } inline float __cdecl log10( float _X) {return (log10f(_X)); } inline float __cdecl modf( float _X, float * _Y) {return (modff(_X, _Y)); } inline float __cdecl pow( float _X, float _Y) {return (powf(_X, _Y)); } inline float __cdecl pow( float _X, int _Y) {return (_Pow_int(_X, _Y)); } inline float __cdecl sin( float _X) {return (sinf(_X)); } inline float __cdecl sinh( float _X) {return (sinhf(_X)); } inline float __cdecl sqrt( float _X) {return (sqrtf(_X)); } inline float __cdecl tan( float _X) {return (tanf(_X)); } inline float __cdecl tanh( float _X) {return (tanhf(_X)); } inline long double __cdecl abs( long double _X) {return (fabsl(_X)); } inline long double __cdecl acos( long double _X) {return (acosl(_X)); } inline long double __cdecl asin( long double _X) {return (asinl(_X)); } inline long double __cdecl atan( long double _X) {return (atanl(_X)); } inline long double __cdecl atan2( long double _Y, long double _X) {return (atan2l(_Y, _X)); } inline long double __cdecl ceil( long double _X) {return (ceill(_X)); } inline long double __cdecl cos( long double _X) {return (cosl(_X)); } inline long double __cdecl cosh( long double _X) {return (coshl(_X)); } inline long double __cdecl exp( long double _X) {return (expl(_X)); } inline long double __cdecl fabs( long double _X) {return (fabsl(_X)); } inline long double __cdecl floor( long double _X) {return (floorl(_X)); } inline long double __cdecl fmod( long double _X, long double _Y) {return (fmodl(_X, _Y)); } inline long double __cdecl frexp( long double _X, int * _Y) {return (frexpl(_X, _Y)); } inline long double __cdecl ldexp( long double _X, int _Y) {return (ldexpl(_X, _Y)); } inline long double __cdecl log( long double _X) {return (logl(_X)); } inline long double __cdecl log10( long double _X) {return (log10l(_X)); } inline long double __cdecl modf( long double _X, long double * _Y) {return (modfl(_X, _Y)); } inline long double __cdecl pow( long double _X, long double _Y) {return (powl(_X, _Y)); } inline long double __cdecl pow( long double _X, int _Y) {return (_Pow_int(_X, _Y)); } inline long double __cdecl sin( long double _X) {return (sinl(_X)); } inline long double __cdecl sinh( long double _X) {return (sinhl(_X)); } inline long double __cdecl sqrt( long double _X) {return (sqrtl(_X)); } inline long double __cdecl tan( long double _X) {return (tanl(_X)); } inline long double __cdecl tanh( long double _X) {return (tanhl(_X)); } } #line 590 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\math.h" #pragma pack(pop) #line 594 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\math.h" #line 596 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\math.h" /* Define _USE_MATH_DEFINES before including math.h to expose these macro * definitions for common math constants. These are placed under an #ifdef * since these commonly-defined names are not part of the C/C++ standards. */ /* Definitions of useful mathematical constants * M_E - e * M_LOG2E - log2(e) * M_LOG10E - log10(e) * M_LN2 - ln(2) * M_LN10 - ln(10) * M_PI - pi * M_PI_2 - pi/2 * M_PI_4 - pi/4 * M_1_PI - 1/pi * M_2_PI - 2/pi * M_2_SQRTPI - 2/sqrt(pi) * M_SQRT2 - sqrt(2) * M_SQRT1_2 - 1/sqrt(2) */ #line 636 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\math.h" #line 45 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsMathUtils.h" #line 1 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\float.h" /*** *float.h - constants for floating point values * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file contains defines for a number of implementation dependent * values which are commonly used by sophisticated numerical (floating * point) programs. * [ANSI] * * [Public] * ****/ #pragma once #line 19 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\float.h" #line 1 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" /*** *crtdefs.h - definitions/declarations common to all CRT * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file has mostly defines used by the entire CRT. * * [Public] * ****/ /* Lack of pragma once is deliberate */ /* Define _CRTIMP */ #line 24 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\float.h" #line 1 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtwrn.h" /*** *crtwrn.h * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file contains the IDs and messages for warnings * in the CRT headers. * ****/ #pragma once #line 1 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" /*** *crtdefs.h - definitions/declarations common to all CRT * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file has mostly defines used by the entire CRT. * * [Public] * ****/ /* Lack of pragma once is deliberate */ /* Define _CRTIMP */ #line 18 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtwrn.h" /* A warning is a 4-digit ID number (_CRTWRN_WNUMBER_*) followed by a message (_CRTWRN_MESSAGE_*) Emit a warning by adding the following code to the header file: #pragma _CRT_WARNING( id ) */ /* NAME */ /* #pragma _CRT_WARNING( NAME ) */ /* #define _CRTWRN_WNUMBER_NAME 9999 */ /* #define _CRTWRN_MESSAGE_NAME description */ /* _VCCLRIT_DEPRECATED */ /* #pragma _CRT_WARNING( _VCCLRIT_DEPRECATED ) */ /* _EXPLICIT_KEYWORD_ */ /* #pragma _CRT_WARNING( _EXPLICIT_KEYWORD ) */ /* _CANNOT_USE_32BIT_TIME_T */ /* #pragma _CRT_WARNING( _NO_32BIT_TIME_T ) */ /* _NO_SPECIAL_TRANSFER */ /* #pragma _CRT_WARNING( _NO_SPECIAL_TRANSFER ) */ /* _NO_ITERATOR_DEBUGGING */ /* #pragma _CRT_WARNING( _NO_ITERATOR_DEBUGGING ) */ #line 69 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtwrn.h" #line 25 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\float.h" /* Define _CRT_MANAGED_FP_DEPRECATE */ #line 34 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\float.h" #line 36 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\float.h" #line 37 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\float.h" #line 38 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\float.h" extern "C" { #line 42 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\float.h" /* Function prototypes */ /* Reading or writing the floating point control/status words is not supported in managed code */ __declspec(dllimport) unsigned int __cdecl _clearfp(void); #pragma warning(push) #pragma warning(disable: 4141) __declspec(dllimport) unsigned int __cdecl _controlfp( unsigned int _NewValue, unsigned int _Mask); #pragma warning(pop) __declspec(dllimport) void __cdecl _set_controlfp( unsigned int _NewValue, unsigned int _Mask); __declspec(dllimport) errno_t __cdecl _controlfp_s( unsigned int *_CurrentState, unsigned int _NewValue, unsigned int _Mask); __declspec(dllimport) unsigned int __cdecl _statusfp(void); __declspec(dllimport) void __cdecl _fpreset(void); __declspec(dllimport) void __cdecl _statusfp2( unsigned int *_X86_status, unsigned int *_SSE2_status); #line 98 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\float.h" /* * Abstract User Status Word bit definitions */ /* * New Control Bit that specifies the ambiguity in control word. */ /* * Abstract User Control Word Mask and bit definitions */ /* * i386 specific definitions */ /* * RISC specific definitions */ /* initial Control Word value */ #line 173 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\float.h" __declspec(dllimport) unsigned int __cdecl _control87( unsigned int _NewValue, unsigned int _Mask); __declspec(dllimport) int __cdecl __control87_2( unsigned int _NewValue, unsigned int _Mask, unsigned int* _X86_cw, unsigned int* _Sse2_cw); #line 179 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\float.h" /* Global variable holding floating point error code */ __declspec(dllimport) extern int * __cdecl __fpecode(void); #line 188 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\float.h" /* invalid subconditions (_SW_INVALID also set) */ /* Floating point error signals and return codes */ /* IEEE recommended functions */ __declspec(dllimport) double __cdecl _scalb( double _X, long _Y); __declspec(dllimport) double __cdecl _logb( double _X); __declspec(dllimport) double __cdecl _nextafter( double _X, double _Y); __declspec(dllimport) int __cdecl _finite( double _X); __declspec(dllimport) int __cdecl _isnan( double _X); __declspec(dllimport) int __cdecl _fpclass( double _X); /* Non-ANSI names for compatibility */ __declspec(dllimport) void __cdecl fpreset(void); #line 314 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\float.h" } #line 318 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\float.h" #line 320 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\float.h" #line 46 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsMathUtils.h" /* * The M_ constants are not defined by the WinCE/WinMo SDKs even with * _USE_MATH_DEFINES. Provide a fallback. We assume that the entire * set is not available if M_E isn't. Values taken from GNU libc, * providing just enough precision for IEEE double. */ /* * round */ inline double NS_round(double x) { return x >= 0.0 ? floor(x + 0.5) : ceil(x - 0.5); } inline float NS_roundf(float x) { return x >= 0.0f ? floorf(x + 0.5f) : ceilf(x - 0.5f); } inline PRInt32 NS_lround(double x) { return x >= 0.0 ? PRInt32(x + 0.5) : PRInt32(x - 0.5); } /* NS_roundup30 rounds towards infinity for positive and */ /* negative numbers. */ inline PRInt32 NS_lroundup30(float x) { /* Code derived from Laurent de Soras' paper at */ /* http://ldesoras.free.fr/doc/articles/rounding_en.pdf */ /* Rounding up on Windows is expensive using the float to */ /* int conversion and the floor function. A faster */ /* approach is to use f87 rounding while assuming the */ /* default rounding mode of rounding to the nearest */ /* integer. This rounding mode, however, actually rounds */ /* to the nearest integer so we add the floating point */ /* number to itself and add our rounding factor before */ /* doing the conversion to an integer. We then do a right */ /* shift of one bit on the integer to divide by two. */ /* This routine doesn't handle numbers larger in magnitude */ /* than 2^30 but this is fine for NSToCoordRound because */ /* Coords are limited to 2^30 in magnitude. */ static const double round_to_nearest = 0.5f; int i; __asm { fld x ; load fp argument fadd st, st(0) ; double it fadd round_to_nearest ; add the rounding factor fistp dword ptr i ; convert the result to int } return i >> 1; /* divide by 2 */ } #line 121 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsMathUtils.h" inline PRInt32 NS_lroundf(float x) { return x >= 0.0f ? PRInt32(x + 0.5f) : PRInt32(x - 0.5f); } /* * ceil */ inline double NS_ceil(double x) { return ceil(x); } inline float NS_ceilf(float x) { return ceilf(x); } /* * floor */ inline double NS_floor(double x) { return floor(x); } inline float NS_floorf(float x) { return floorf(x); } /* * hypot. We don't need a super accurate version of this, if a platform * turns up with none of the possibilities below it would be okay to fall * back to sqrt(x*x + y*y). */ inline double NS_hypot(double x, double y) { #line 161 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsMathUtils.h" return _hypot(x, y); #line 165 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsMathUtils.h" } #line 168 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsMathUtils.h" #line 42 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxPoint.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxTypes.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 44 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxPoint.h" /* * gfxSize and gfxIntSize -- please keep their member functions in sync. * also note: gfxIntSize may be replaced by nsIntSize at some point... */ struct __declspec(dllexport) gfxIntSize { PRInt32 width, height; gfxIntSize() {} gfxIntSize(PRInt32 _width, PRInt32 _height) : width(_width), height(_height) {} void SizeTo(PRInt32 _width, PRInt32 _height) {width = _width; height = _height;} int operator==(const gfxIntSize& s) const { return ((width == s.width) && (height == s.height)); } int operator!=(const gfxIntSize& s) const { return ((width != s.width) || (height != s.height)); } gfxIntSize operator+(const gfxIntSize& s) const { return gfxIntSize(width + s.width, height + s.height); } gfxIntSize operator-() const { return gfxIntSize(- width, - height); } gfxIntSize operator-(const gfxIntSize& s) const { return gfxIntSize(width - s.width, height - s.height); } gfxIntSize operator*(const PRInt32 v) const { return gfxIntSize(width * v, height * v); } gfxIntSize operator/(const PRInt32 v) const { return gfxIntSize(width / v, height / v); } }; struct __declspec(dllexport) gfxSize { gfxFloat width, height; gfxSize() {} gfxSize(gfxFloat _width, gfxFloat _height) : width(_width), height(_height) {} gfxSize(const gfxIntSize& size) : width(size.width), height(size.height) {} void SizeTo(gfxFloat _width, gfxFloat _height) {width = _width; height = _height;} int operator==(const gfxSize& s) const { return ((width == s.width) && (height == s.height)); } int operator!=(const gfxSize& s) const { return ((width != s.width) || (height != s.height)); } gfxSize operator+(const gfxSize& s) const { return gfxSize(width + s.width, height + s.height); } gfxSize operator-() const { return gfxSize(- width, - height); } gfxSize operator-(const gfxSize& s) const { return gfxSize(width - s.width, height - s.height); } gfxSize operator*(const gfxFloat v) const { return gfxSize(width * v, height * v); } gfxSize operator/(const gfxFloat v) const { return gfxSize(width / v, height / v); } }; struct __declspec(dllexport) gfxPoint { gfxFloat x, y; gfxPoint() { } gfxPoint(const gfxPoint& p) : x(p.x), y(p.y) {} gfxPoint(gfxFloat _x, gfxFloat _y) : x(_x), y(_y) {} void MoveTo(gfxFloat aX, gfxFloat aY) { x = aX; y = aY; } int operator==(const gfxPoint& p) const { return ((x == p.x) && (y == p.y)); } int operator!=(const gfxPoint& p) const { return ((x != p.x) || (y != p.y)); } const gfxPoint& operator+=(const gfxPoint& p) { x += p.x; y += p.y; return *this; } gfxPoint operator+(const gfxPoint& p) const { return gfxPoint(x + p.x, y + p.y); } gfxPoint operator+(const gfxSize& s) const { return gfxPoint(x + s.width, y + s.height); } gfxPoint operator-(const gfxPoint& p) const { return gfxPoint(x - p.x, y - p.y); } gfxPoint operator-(const gfxSize& s) const { return gfxPoint(x - s.width, y - s.height); } gfxPoint operator-() const { return gfxPoint(- x, - y); } gfxPoint operator*(const gfxFloat v) const { return gfxPoint(x * v, y * v); } gfxPoint operator/(const gfxFloat v) const { return gfxPoint(x / v, y / v); } // Round() is *not* rounding to nearest integer if the values are negative. // They are always rounding as floor(n + 0.5). // See https://bugzilla.mozilla.org/show_bug.cgi?id=410748#c14 // And if you need similar method which is using NS_round(), you should // create new |RoundAwayFromZero()| method. gfxPoint& Round() { x = NS_floor(x + 0.5); y = NS_floor(y + 0.5); return *this; } }; #line 168 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxPoint.h" #line 43 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxRect.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxCore.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Marco Pesenti Gritti * Portions created by the Initial Developer are Copyright (C) 2004 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 42 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxCore.h" // Side constants for use in various places namespace mozilla { namespace css { enum Side {eSideTop, eSideRight, eSideBottom, eSideLeft}; } } #line 67 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxCore.h" #line 69 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxCore.h" #line 44 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxRect.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsDebug.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXPCOM.h" /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Benjamin Smedberg * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* Map frozen functions to private symbol names if not using strict API. */ #line 71 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXPCOM.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 73 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXPCOM.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXPCOMCID.h" /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /** * XPCOM Directory Service Contract ID * The directory service provides ways to obtain file system locations. The * directory service is a singleton. * * This contract supports the nsIDirectoryService and the nsIProperties * interfaces. * */ /** * XPCOM File * The file abstraction provides ways to obtain and access files and * directories located on the local system. * * This contract supports the nsIFile interface and the nsILocalFile interface. * This contract may also support platform specific interfaces such as * nsILocalFileMac on platforms where additional interfaces are required. * */ /** * XPCOM Category Manager Contract ID * The contract supports the nsICategoryManager interface. The * category manager is a singleton. * The "enumerateCategory" method of nsICategoryManager will return an object * that implements nsIUTF8StringEnumerator. In addition, the enumerator will * return the entries in sorted order (sorted by byte comparison). */ /** * XPCOM Properties Object Contract ID * Simple mapping object which supports the nsIProperties interface. */ /** * XPCOM Array Object ContractID * Simple array implementation which supports the nsIArray and * nsIMutableArray interfaces. */ /** * Observer Service ContractID * The observer service implements the global nsIObserverService object. * It should be used from the main thread only. */ /** * IO utilities service contract id. * This guarantees implementation of nsIIOUtil. Usable from any thread. */ /** * Memory reporter service CID */ /** * Cycle collector logger contract id */ /** * The following are the CIDs and Contract IDs of the nsISupports wrappers for * primative types. */ #line 200 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXPCOMCID.h" #line 74 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXPCOM.h" #line 82 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXPCOM.h" class nsAString_internal; class nsACString_internal; class nsISupports; class nsIModule; class nsIComponentManager; class nsIComponentRegistrar; class nsIServiceManager; class nsIFile; class nsILocalFile; class nsIDirectoryServiceProvider; class nsIMemory; class nsIDebug; class nsITraceRefcnt; struct nsPurpleBufferEntry; namespace mozilla { struct Module; } #line 104 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXPCOM.h" /** * Initialises XPCOM. You must call one of the NS_InitXPCOM methods * before proceeding to use xpcom. The one exception is that you may * call NS_NewLocalFile to create a nsIFile. * * @note Use NS_NewLocalFile or NS_NewNativeLocalFile * to create the file object you supply as the bin directory path in this * call. The function may be safely called before the rest of XPCOM or * embedding has been initialised. * * @param result The service manager. You may pass null. * * @param binDirectory The directory containing the component * registry and runtime libraries; * or use nsnull to use the working * directory. * * @param appFileLocationProvider The object to be used by Gecko that specifies * to Gecko where to find profiles, the component * registry preferences and so on; or use * nsnull for the default behaviour. * * @see NS_NewLocalFile * @see nsILocalFile * @see nsIDirectoryServiceProvider * * @return NS_OK for success; * NS_ERROR_NOT_INITIALIZED if static globals were not initialized, * which can happen if XPCOM is reloaded, but did not completly * shutdown. Other error codes indicate a failure during * initialisation. */ extern "C" __declspec(dllexport) nsresult __cdecl NS_InitXPCOM2_P(nsIServiceManager* *result, nsIFile* binDirectory, nsIDirectoryServiceProvider* appFileLocationProvider); /** * Shutdown XPCOM. You must call this method after you are finished * using xpcom. * * @param servMgr The service manager which was returned by NS_InitXPCOM. * This will release servMgr. You may pass null. * * @return NS_OK for success; * other error codes indicate a failure during initialisation. * */ extern "C" __declspec(dllexport) nsresult __cdecl NS_ShutdownXPCOM_P(nsIServiceManager* servMgr); /** * Public Method to access to the service manager. * * @param result Interface pointer to the service manager * * @return NS_OK for success; * other error codes indicate a failure during initialisation. * */ extern "C" __declspec(dllexport) nsresult __cdecl NS_GetServiceManager_P(nsIServiceManager* *result); /** * Public Method to access to the component manager. * * @param result Interface pointer to the service * * @return NS_OK for success; * other error codes indicate a failure during initialisation. * */ extern "C" __declspec(dllexport) nsresult __cdecl NS_GetComponentManager_P(nsIComponentManager* *result); /** * Public Method to access to the component registration manager. * * @param result Interface pointer to the service * * @return NS_OK for success; * other error codes indicate a failure during initialisation. * */ extern "C" __declspec(dllexport) nsresult __cdecl NS_GetComponentRegistrar_P(nsIComponentRegistrar* *result); /** * Public Method to access to the memory manager. See nsIMemory * * @param result Interface pointer to the memory manager * * @return NS_OK for success; * other error codes indicate a failure during initialisation. * */ extern "C" __declspec(dllexport) nsresult __cdecl NS_GetMemoryManager_P(nsIMemory* *result); /** * Public Method to create an instance of a nsILocalFile. This function * may be called prior to NS_InitXPCOM. * * @param path * A string which specifies a full file path to a * location. Relative paths will be treated as an * error (NS_ERROR_FILE_UNRECOGNIZED_PATH). * |NS_NewNativeLocalFile|'s path must be in the * filesystem charset. * @param followLinks * This attribute will determine if the nsLocalFile will auto * resolve symbolic links. By default, this value will be false * on all non unix systems. On unix, this attribute is effectively * a noop. * @param result Interface pointer to a new instance of an nsILocalFile * * @return NS_OK for success; * other error codes indicate a failure. */ extern "C" __declspec(dllexport) nsresult __cdecl NS_NewLocalFile_P(const nsAString_internal &path, PRBool followLinks, nsILocalFile* *result); extern "C" __declspec(dllexport) nsresult __cdecl NS_NewNativeLocalFile_P(const nsACString_internal &path, PRBool followLinks, nsILocalFile* *result); #line 240 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXPCOM.h" /** * Allocates a block of memory of a particular size. If the memory cannot * be allocated (because of an out-of-memory condition), null is returned. * * @param size The size of the block to allocate * @result The block of memory * @note This function is thread-safe. */ extern "C" __declspec(dllexport) void* __cdecl NS_Alloc_P(PRSize size); /** * Reallocates a block of memory to a new size. * * @param ptr The block of memory to reallocate. This block must originally have been allocated by NS_Alloc or NS_Realloc * @param size The new size. If 0, frees the block like NS_Free * @result The reallocated block of memory * @note This function is thread-safe. * * If ptr is null, this function behaves like NS_Alloc. * If s is the size of the block to which ptr points, the first min(s, size) * bytes of ptr's block are copied to the new block. If the allocation * succeeds, ptr is freed and a pointer to the new block is returned. If the * allocation fails, ptr is not freed and null is returned. The returned * value may be the same as ptr. */ extern "C" __declspec(dllexport) void* __cdecl NS_Realloc_P(void* ptr, PRSize size); /** * Frees a block of memory. Null is a permissible value, in which case no * action is taken. * * @param ptr The block of memory to free. This block must originally have * been allocated by NS_Alloc or NS_Realloc * @note This function is thread-safe. */ extern "C" __declspec(dllexport) void __cdecl NS_Free_P(void* ptr); /** * Support for warnings, assertions, and debugging breaks. */ enum { NS_DEBUG_WARNING = 0, NS_DEBUG_ASSERTION = 1, NS_DEBUG_BREAK = 2, NS_DEBUG_ABORT = 3 }; /** * Print a runtime assertion. This function is available in both debug and * release builds. * * @note Based on the value of aSeverity and the XPCOM_DEBUG_BREAK * environment variable, this function may cause the application to * print the warning, print a stacktrace, break into a debugger, or abort * immediately. * * @param aSeverity A NS_DEBUG_* value * @param aStr A readable error message (ASCII, may be null) * @param aExpr The expression evaluated (may be null) * @param aFile The source file containing the assertion (may be null) * @param aLine The source file line number (-1 indicates no line number) */ extern "C" __declspec(dllexport) void __cdecl NS_DebugBreak_P(PRUint32 aSeverity, const char *aStr, const char *aExpr, const char *aFile, PRInt32 aLine); /** * Perform a stack-walk to a debugging log under various * circumstances. Used to aid debugging of leaked object graphs. * * The NS_Log* functions are available in both debug and release * builds of XPCOM, but the output will be useless unless binary * debugging symbols for all modules in the stacktrace are available. */ /** * By default, refcount logging is enabled at NS_InitXPCOM and * refcount statistics are printed at NS_ShutdownXPCOM. NS_LogInit and * NS_LogTerm allow applications to enable logging earlier and delay * printing of logging statistics. They should always be used as a * matched pair. */ extern "C" __declspec(dllexport) void __cdecl NS_LogInit_P(); extern "C" __declspec(dllexport) void __cdecl NS_LogTerm_P(); /** * Log construction and destruction of objects. Processing tools can use the * stacktraces printed by these functions to identify objects that are being * leaked. * * @param aPtr A pointer to the concrete object. * @param aTypeName The class name of the type * @param aInstanceSize The size of the type */ extern "C" __declspec(dllexport) void __cdecl NS_LogCtor_P(void *aPtr, const char *aTypeName, PRUint32 aInstanceSize); extern "C" __declspec(dllexport) void __cdecl NS_LogDtor_P(void *aPtr, const char *aTypeName, PRUint32 aInstanceSize); /** * Log a stacktrace when an XPCOM object's refcount is incremented or * decremented. Processing tools can use the stacktraces printed by these * functions to identify objects that were leaked due to XPCOM references. * * @param aPtr A pointer to the concrete object * @param aNewRefCnt The new reference count. * @param aTypeName The class name of the type * @param aInstanceSize The size of the type */ extern "C" __declspec(dllexport) void __cdecl NS_LogAddRef_P(void *aPtr, nsrefcnt aNewRefCnt, const char *aTypeName, PRUint32 aInstanceSize); extern "C" __declspec(dllexport) void __cdecl NS_LogRelease_P(void *aPtr, nsrefcnt aNewRefCnt, const char *aTypeName); /** * Log reference counting performed by COMPtrs. Processing tools can * use the stacktraces printed by these functions to simplify reports * about leaked objects generated from the data printed by * NS_LogAddRef/NS_LogRelease. * * @param aCOMPtr the address of the COMPtr holding a strong reference * @param aObject the object being referenced by the COMPtr */ extern "C" __declspec(dllexport) void __cdecl NS_LogCOMPtrAddRef_P(void *aCOMPtr, nsISupports *aObject); extern "C" __declspec(dllexport) void __cdecl NS_LogCOMPtrRelease_P(void *aCOMPtr, nsISupports *aObject); /** * The XPCOM cycle collector analyzes and breaks reference cycles between * participating XPCOM objects. All objects in the cycle must implement * nsCycleCollectionParticipant to break cycles correctly. * * The first two functions below exist only to support binary components * that were compiled for older XPCOM versions. */ extern "C" __declspec(dllexport) PRBool __cdecl NS_CycleCollectorSuspect_P(nsISupports *n); extern "C" __declspec(dllexport) PRBool __cdecl NS_CycleCollectorForget_P(nsISupports *n); extern "C" __declspec(dllexport) nsPurpleBufferEntry* __cdecl NS_CycleCollectorSuspect2_P(nsISupports *n); extern "C" __declspec(dllexport) PRBool __cdecl NS_CycleCollectorForget2_P(nsPurpleBufferEntry *e); /** * Categories (in the category manager service) used by XPCOM: */ /** * A category which is read after component registration but before * the "xpcom-startup" notifications. Each category entry is treated * as the contract ID of a service which implements * nsIDirectoryServiceProvider. Each directory service provider is * installed in the global directory service. */ /** * A category which is read after component registration but before * NS_InitXPCOM returns. Each category entry is treated as the contractID of * a service: each service is instantiated, and if it implements nsIObserver * the nsIObserver.observe method is called with the "xpcom-startup" topic. */ /** * Observer topics (in the observer service) used by XPCOM: */ /** * At XPCOM startup after component registration is complete, the * following topic is notified. In order to receive this notification, * component must register their contract ID in the category manager, * * @see NS_XPCOM_STARTUP_CATEGORY */ /** * At XPCOM shutdown, this topic is notified just before "xpcom-shutdown". * Components should only use this to mark themselves as 'being destroyed'. * Nothing should be dispatched to any event loop. */ /** * At XPCOM shutdown, this topic is notified. All components must * release any interface references to objects in other modules when * this topic is notified. */ /** * This topic is notified when an entry was added to a category in the * category manager. The subject of the notification will be the name of * the added entry as an nsISupportsCString, and the data will be the * name of the category. The notification will occur on the main thread. */ /** * This topic is notified when an entry was removed from a category in the * category manager. The subject of the notification will be the name of * the removed entry as an nsISupportsCString, and the data will be the * name of the category. The notification will occur on the main thread. */ /** * This topic is notified when an a category was cleared in the category * manager. The subject of the notification will be the category manager, * and the data will be the name of the cleared category. * The notification will occur on the main thread. */ extern "C" __declspec(dllexport) nsresult __cdecl NS_GetDebug_P(nsIDebug* *result); extern "C" __declspec(dllexport) nsresult __cdecl NS_GetTraceRefcnt_P(nsITraceRefcnt* *result); #line 486 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXPCOM.h" #line 50 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsDebug.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prprf.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* ** API for PR printf like routines. Supports the following formats ** %d - decimal ** %u - unsigned decimal ** %x - unsigned hex ** %X - unsigned uppercase hex ** %o - unsigned octal ** %hd, %hu, %hx, %hX, %ho - 16-bit versions of above ** %ld, %lu, %lx, %lX, %lo - 32-bit versions of above ** %lld, %llu, %llx, %llX, %llo - 64 bit versions of above ** %s - string ** %c - character ** %p - pointer (deals with machine dependent pointer size) ** %f - float ** %g - float */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* ** File: prtypes.h ** Description: Definitions of NSPR's basic types ** ** Prototypes and macros used to make up for deficiencies that we have found ** in ANSI environments. ** ** Since we do not wrap and all the other standard headers, authors ** of portable code will not know in general that they need these definitions. ** Instead of requiring these authors to find the dependent uses in their code ** and take the following steps only in those C files, we take steps once here ** for all C files. **/ #line 58 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prprf.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prio.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* * File: prio.h * * Description: PR i/o related stuff, such as file system access, file * i/o, socket i/o, etc. */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prlong.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* ** File: prlong.h ** Description: Portable access to 64 bit numerics ** ** Long-long (64-bit signed integer type) support. Some C compilers ** don't support 64 bit integers yet, so we use these macros to ** support both machines that do and don't. **/ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* ** File: prtypes.h ** Description: Definitions of NSPR's basic types ** ** Prototypes and macros used to make up for deficiencies that we have found ** in ANSI environments. ** ** Since we do not wrap and all the other standard headers, authors ** of portable code will not know in general that they need these definitions. ** Instead of requiring these authors to find the dependent uses in their code ** and take the following steps only in those C files, we take steps once here ** for all C files. **/ #line 50 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prlong.h" extern "C" { /*********************************************************************** ** DEFINES: LL_MaxInt ** LL_MinInt ** LL_Zero ** LL_MaxUint ** DESCRIPTION: ** Various interesting constants and static variable ** initializer ***********************************************************************/ __declspec(dllimport) PRInt64 LL_MaxInt(void); __declspec(dllimport) PRInt64 LL_MinInt(void); __declspec(dllimport) PRInt64 LL_Zero(void); __declspec(dllimport) PRUint64 LL_MaxUint(void); /* Keep this in sync with prtypes.h. */ #line 77 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prlong.h" #line 89 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prlong.h" /*********************************************************************** ** MACROS: LL_* ** DESCRIPTION: ** The following macros define portable access to the 64 bit ** math facilities. ** ***********************************************************************/ /*********************************************************************** ** MACROS: LL_ ** ** LL_IS_ZERO Test for zero ** LL_EQ Test for equality ** LL_NE Test for inequality ** LL_GE_ZERO Test for zero or positive ** LL_CMP Compare two values ***********************************************************************/ /*********************************************************************** ** MACROS: LL_ ** ** LL_AND Logical and ** LL_OR Logical or ** LL_XOR Logical exclusion ** LL_OR2 A disgusting deviation ** LL_NOT Negation (one's complement) ***********************************************************************/ /*********************************************************************** ** MACROS: LL_ ** ** LL_NEG Negation (two's complement) ** LL_ADD Summation (two's complement) ** LL_SUB Difference (two's complement) ***********************************************************************/ /*********************************************************************** ** MACROS: LL_ ** ** LL_MUL Product (two's complement) ** LL_DIV Quotient (two's complement) ** LL_MOD Modulus (two's complement) ***********************************************************************/ /*********************************************************************** ** MACROS: LL_ ** ** LL_SHL Shift left [0..64] bits ** LL_SHR Shift right [0..64] bits with sign extension ** LL_USHR Unsigned shift right [0..64] bits ** LL_ISHL Signed shift left [0..64] bits ***********************************************************************/ /*********************************************************************** ** MACROS: LL_ ** ** LL_L2I Convert to signed 32 bit ** LL_L2UI Convert to unsigned 32 bit ** LL_L2F Convert to floating point ** LL_L2D Convert to floating point ** LL_I2L Convert signed to 64 bit ** LL_UI2L Convert unsigned to 64 bit ** LL_F2L Convert float to 64 bit ** LL_D2L Convert float to 64 bit ***********************************************************************/ /*********************************************************************** ** MACROS: LL_UDIVMOD ** DESCRIPTION: ** Produce both a quotient and a remainder given an unsigned ** INPUTS: PRUint64 a: The dividend of the operation ** PRUint64 b: The quotient of the operation ** OUTPUTS: PRUint64 *qp: pointer to quotient ** PRUint64 *rp: pointer to remainder ***********************************************************************/ #line 432 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prlong.h" } #line 436 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prlong.h" #line 49 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prio.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtime.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* *---------------------------------------------------------------------- * * prtime.h -- * * NSPR date and time functions * *----------------------------------------------------------------------- */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prlong.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* ** File: prlong.h ** Description: Portable access to 64 bit numerics ** ** Long-long (64-bit signed integer type) support. Some C compilers ** don't support 64 bit integers yet, so we use these macros to ** support both machines that do and don't. **/ #line 52 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtime.h" extern "C" { /**********************************************************************/ /************************* TYPES AND CONSTANTS ************************/ /**********************************************************************/ /* * PRTime -- * * NSPR represents basic time as 64-bit signed integers relative * to midnight (00:00:00), January 1, 1970 Greenwich Mean Time (GMT). * (GMT is also known as Coordinated Universal Time, UTC.) * The units of time are in microseconds. Negative times are allowed * to represent times prior to the January 1970 epoch. Such values are * intended to be exported to other systems or converted to human * readable form. * * Notes on porting: PRTime corresponds to time_t in ANSI C. NSPR 1.0 * simply uses PRInt64. */ typedef PRInt64 PRTime; /* * Time zone and daylight saving time corrections applied to GMT to * obtain the local time of some geographic location */ typedef struct PRTimeParameters { PRInt32 tp_gmt_offset; /* the offset from GMT in seconds */ PRInt32 tp_dst_offset; /* contribution of DST in seconds */ } PRTimeParameters; /* * PRExplodedTime -- * * Time broken down into human-readable components such as year, month, * day, hour, minute, second, and microsecond. Time zone and daylight * saving time corrections may be applied. If they are applied, the * offsets from the GMT must be saved in the 'tm_params' field so that * all the information is available to reconstruct GMT. * * Notes on porting: PRExplodedTime corrresponds to struct tm in * ANSI C, with the following differences: * - an additional field tm_usec; * - replacing tm_isdst by tm_params; * - the month field is spelled tm_month, not tm_mon; * - we use absolute year, AD, not the year since 1900. * The corresponding type in NSPR 1.0 is called PRTime. Below is * a table of date/time type correspondence in the three APIs: * API time since epoch time in components * ANSI C time_t struct tm * NSPR 1.0 PRInt64 PRTime * NSPR 2.0 PRTime PRExplodedTime */ typedef struct PRExplodedTime { PRInt32 tm_usec; /* microseconds past tm_sec (0-99999) */ PRInt32 tm_sec; /* seconds past tm_min (0-61, accomodating up to two leap seconds) */ PRInt32 tm_min; /* minutes past tm_hour (0-59) */ PRInt32 tm_hour; /* hours past tm_day (0-23) */ PRInt32 tm_mday; /* days past tm_mon (1-31, note that it starts from 1) */ PRInt32 tm_month; /* months past tm_year (0-11, Jan = 0) */ PRInt16 tm_year; /* absolute year, AD (note that we do not count from 1900) */ PRInt8 tm_wday; /* calculated day of the week (0-6, Sun = 0) */ PRInt16 tm_yday; /* calculated day of the year (0-365, Jan 1 = 0) */ PRTimeParameters tm_params; /* time parameters used by conversion */ } PRExplodedTime; /* * PRTimeParamFn -- * * A function of PRTimeParamFn type returns the time zone and * daylight saving time corrections for some geographic location, * given the current time in GMT. The input argument gmt should * point to a PRExplodedTime that is in GMT, i.e., whose * tm_params contains all 0's. * * For any time zone other than GMT, the computation is intended to * consist of two steps: * - Figure out the time zone correction, tp_gmt_offset. This number * usually depends on the geographic location only. But it may * also depend on the current time. For example, all of China * is one time zone right now. But this situation may change * in the future. * - Figure out the daylight saving time correction, tp_dst_offset. * This number depends on both the geographic location and the * current time. Most of the DST rules are expressed in local * current time. If so, one should apply the time zone correction * to GMT before applying the DST rules. */ typedef PRTimeParameters ( *PRTimeParamFn)(const PRExplodedTime *gmt); /**********************************************************************/ /****************************** FUNCTIONS *****************************/ /**********************************************************************/ /* * The PR_Now routine returns the current time relative to the * epoch, midnight, January 1, 1970 UTC. The units of the returned * value are microseconds since the epoch. * * The values returned are not guaranteed to advance in a linear fashion * due to the application of time correction protocols which synchronize * computer clocks to some external time source. Consequently it should * not be depended on for interval timing. * * The implementation is machine dependent. * Cf. time_t time(time_t *tp) in ANSI C. */ __declspec(dllimport) PRTime PR_Now(void); /* * Expand time binding it to time parameters provided by PRTimeParamFn. * The calculation is envisoned to proceed in the following steps: * - From given PRTime, calculate PRExplodedTime in GMT * - Apply the given PRTimeParamFn to the GMT that we just calculated * to obtain PRTimeParameters. * - Add the PRTimeParameters offsets to GMT to get the local time * as PRExplodedTime. */ __declspec(dllimport) void PR_ExplodeTime( PRTime usecs, PRTimeParamFn params, PRExplodedTime *exploded); /* Reverse operation of PR_ExplodeTime */ __declspec(dllimport) PRTime PR_ImplodeTime(const PRExplodedTime *exploded); /* * Adjust exploded time to normalize field overflows after manipulation. * Note that the following fields of PRExplodedTime should not be * manipulated: * - tm_month and tm_year: because the number of days in a month and * number of days in a year are not constant, it is ambiguous to * manipulate the month and year fields, although one may be tempted * to. For example, what does "a month from January 31st" mean? * - tm_wday and tm_yday: these fields are calculated by NSPR. Users * should treat them as "read-only". */ __declspec(dllimport) void PR_NormalizeTime( PRExplodedTime *exploded, PRTimeParamFn params); /**********************************************************************/ /*********************** TIME PARAMETER FUNCTIONS *********************/ /**********************************************************************/ /* Time parameters that suit current host machine */ __declspec(dllimport) PRTimeParameters PR_LocalTimeParameters(const PRExplodedTime *gmt); /* Time parameters that represent Greenwich Mean Time */ __declspec(dllimport) PRTimeParameters PR_GMTParameters(const PRExplodedTime *gmt); /* * Time parameters that represent the US Pacific Time Zone, with the * current daylight saving time rules (for testing only) */ __declspec(dllimport) PRTimeParameters PR_USPacificTimeParameters(const PRExplodedTime *gmt); /* * This parses a time/date string into a PRExplodedTime * struct. It populates all fields but it can't split * the offset from UTC into tp_gmt_offset and tp_dst_offset in * most cases (exceptions: PST/PDT, MST/MDT, CST/CDT, EST/EDT, GMT/BST). * In those cases tp_gmt_offset will be the sum of these two and * tp_dst_offset will be 0. * It returns PR_SUCCESS on success, and PR_FAILURE * if the time/date string can't be parsed. * * Many formats are handled, including: * * 14 Apr 89 03:20:12 * 14 Apr 89 03:20 GMT * Fri, 17 Mar 89 4:01:33 * Fri, 17 Mar 89 4:01 GMT * Mon Jan 16 16:12 PDT 1989 * Mon Jan 16 16:12 +0130 1989 * 6 May 1992 16:41-JST (Wednesday) * 22-AUG-1993 10:59:12.82 * 22-AUG-1993 10:59pm * 22-AUG-1993 12:59am * 22-AUG-1993 12:59 PM * Friday, August 04, 1995 3:54 PM * 06/21/95 04:24:34 PM * 20/06/95 21:07 * 95-06-08 19:32:48 EDT * * If the input string doesn't contain a description of the timezone, * we consult the `default_to_gmt' to decide whether the string should * be interpreted relative to the local time zone (PR_FALSE) or GMT (PR_TRUE). * The correct value for this argument depends on what standard specified * the time string which you are parsing. */ __declspec(dllimport) PRStatus PR_ParseTimeStringToExplodedTime ( const char *string, PRBool default_to_gmt, PRExplodedTime *result); /* * This uses PR_ParseTimeStringToExplodedTime to parse * a time/date string and PR_ImplodeTime to transform it into * a PRTime (microseconds after "1-Jan-1970 00:00:00 GMT"). * It returns PR_SUCCESS on success, and PR_FAILURE * if the time/date string can't be parsed. */ __declspec(dllimport) PRStatus PR_ParseTimeString ( const char *string, PRBool default_to_gmt, PRTime *result); /* * FIXME: should we also have a formatting function, such as asctime, ctime, * and strftime in standard C library? But this would involve * internationalization issues. Might want to provide a US English version. */ /**********************************************************************/ /*********************** OLD COMPATIBILITYFUNCTIONS *******************/ /**********************************************************************/ /* Format a time value into a buffer. Same semantics as strftime() */ __declspec(dllimport) PRUint32 PR_FormatTime(char *buf, int buflen, const char *fmt, const PRExplodedTime *tm); /* Format a time value into a buffer. Time is always in US English format, regardless * of locale setting. */ __declspec(dllimport) PRUint32 PR_FormatTimeUSEnglish( char* buf, PRUint32 bufSize, const char* format, const PRExplodedTime* tm ); #line 304 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtime.h" } #line 308 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtime.h" #line 50 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prio.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prinrval.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* ** File: prinrval.h ** Description: API to interval timing functions of NSPR. ** ** ** NSPR provides interval times that are independent of network time ** of day values. Interval times are (in theory) accurate regardless ** of host processing requirements and also very cheap to acquire. It ** is expected that getting an interval time while in a synchronized ** function (holding one's lock). **/ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* ** File: prtypes.h ** Description: Definitions of NSPR's basic types ** ** Prototypes and macros used to make up for deficiencies that we have found ** in ANSI environments. ** ** Since we do not wrap and all the other standard headers, authors ** of portable code will not know in general that they need these definitions. ** Instead of requiring these authors to find the dependent uses in their code ** and take the following steps only in those C files, we take steps once here ** for all C files. **/ #line 54 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prinrval.h" extern "C" { /**********************************************************************/ /************************* TYPES AND CONSTANTS ************************/ /**********************************************************************/ typedef PRUint32 PRIntervalTime; /*********************************************************************** ** DEFINES: PR_INTERVAL_MIN ** PR_INTERVAL_MAX ** DESCRIPTION: ** These two constants define the range (in ticks / second) of the ** platform dependent type, PRIntervalTime. These constants bound both ** the period and the resolution of a PRIntervalTime. ***********************************************************************/ /*********************************************************************** ** DEFINES: PR_INTERVAL_NO_WAIT ** PR_INTERVAL_NO_TIMEOUT ** DESCRIPTION: ** Two reserved constants are defined in the PRIntervalTime namespace. ** They are used to indicate that the process should wait no time (return ** immediately) or wait forever (never time out), respectively. ** Note: PR_INTERVAL_NO_TIMEOUT passed as input to PR_Connect is ** interpreted as use the OS's connect timeout. ** ***********************************************************************/ /**********************************************************************/ /****************************** FUNCTIONS *****************************/ /**********************************************************************/ /*********************************************************************** ** FUNCTION: PR_IntervalNow ** DESCRIPTION: ** Return the value of NSPR's free running interval timer. That timer ** can be used to establish epochs and determine intervals (be computing ** the difference between two times). ** INPUTS: void ** OUTPUTS: void ** RETURN: PRIntervalTime ** ** SIDE EFFECTS: ** None ** RESTRICTIONS: ** The units of PRIntervalTime are platform dependent. They are chosen ** such that they are appropriate for the host OS, yet provide sufficient ** resolution and period to be useful to clients. ** MEMORY: N/A ** ALGORITHM: Platform dependent ***********************************************************************/ __declspec(dllimport) PRIntervalTime PR_IntervalNow(void); /*********************************************************************** ** FUNCTION: PR_TicksPerSecond ** DESCRIPTION: ** Return the number of ticks per second for PR_IntervalNow's clock. ** The value will be in the range [PR_INTERVAL_MIN..PR_INTERVAL_MAX]. ** INPUTS: void ** OUTPUTS: void ** RETURN: PRUint32 ** ** SIDE EFFECTS: ** None ** RESTRICTIONS: ** None ** MEMORY: N/A ** ALGORITHM: N/A ***********************************************************************/ __declspec(dllimport) PRUint32 PR_TicksPerSecond(void); /*********************************************************************** ** FUNCTION: PR_SecondsToInterval ** PR_MillisecondsToInterval ** PR_MicrosecondsToInterval ** DESCRIPTION: ** Convert standard clock units to platform dependent intervals. ** INPUTS: PRUint32 ** OUTPUTS: void ** RETURN: PRIntervalTime ** ** SIDE EFFECTS: ** None ** RESTRICTIONS: ** Conversion may cause overflow, which is not reported. ** MEMORY: N/A ** ALGORITHM: N/A ***********************************************************************/ __declspec(dllimport) PRIntervalTime PR_SecondsToInterval(PRUint32 seconds); __declspec(dllimport) PRIntervalTime PR_MillisecondsToInterval(PRUint32 milli); __declspec(dllimport) PRIntervalTime PR_MicrosecondsToInterval(PRUint32 micro); /*********************************************************************** ** FUNCTION: PR_IntervalToSeconds ** PR_IntervalToMilliseconds ** PR_IntervalToMicroseconds ** DESCRIPTION: ** Convert platform dependent intervals to standard clock units. ** INPUTS: PRIntervalTime ** OUTPUTS: void ** RETURN: PRUint32 ** ** SIDE EFFECTS: ** None ** RESTRICTIONS: ** Conversion may cause overflow, which is not reported. ** MEMORY: N/A ** ALGORITHM: N/A ***********************************************************************/ __declspec(dllimport) PRUint32 PR_IntervalToSeconds(PRIntervalTime ticks); __declspec(dllimport) PRUint32 PR_IntervalToMilliseconds(PRIntervalTime ticks); __declspec(dllimport) PRUint32 PR_IntervalToMicroseconds(PRIntervalTime ticks); } #line 177 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prinrval.h" /* prinrval.h */ #line 51 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prio.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prinet.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* * File: prinet.h * Description: * Header file used to find the system header files for socket support[1]. * This file serves the following purposes: * - A cross-platform, "get-everything" socket header file. On * Unix, socket support is scattered in several header files, * while Windows has a "get-everything" socket header file[2]. * - NSPR needs the following macro definitions and function * prototype declarations from these header files: * AF_INET * INADDR_ANY, INADDR_LOOPBACK, INADDR_BROADCAST * ntohl(), ntohs(), htonl(), ntons(). * NSPR does not define its own versions of these macros and * functions. It simply uses the native versions, which have * the same names on all supported platforms. * This file is intended to be included by NSPR public header * files, such as prio.h. One should not include this file directly. * * Notes: * 1. This file should have been an internal header. Please do not * depend on it to pull in the system header files you need. * 2. WARNING: This file is no longer cross-platform as it is a no-op * for WIN32! See the comment in the WIN32 section for details. */ #line 110 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prinet.h" /* * Do not include any system header files. * * Originally we were including . It slowed down the * compilation of files that included NSPR headers, so we removed * the inclusion at customer's request, which created * an unfortunate inconsistency with other platforms. */ #line 125 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prinet.h" #line 127 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prinet.h" #line 52 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prio.h" extern "C" { /* Typedefs */ typedef struct PRDir PRDir; typedef struct PRDirEntry PRDirEntry; typedef struct PRFileDesc PRFileDesc; typedef struct PRFileInfo PRFileInfo; typedef struct PRFileInfo64 PRFileInfo64; typedef union PRNetAddr PRNetAddr; typedef struct PRIOMethods PRIOMethods; typedef struct PRPollDesc PRPollDesc; typedef struct PRFilePrivate PRFilePrivate; typedef struct PRSendFileData PRSendFileData; /* *************************************************************************** ** The file descriptor. ** This is the primary structure to represent any active open socket, ** whether it be a normal file or a network connection. Such objects ** are stackable (or layerable). Each layer may have its own set of ** method pointers and context private to that layer. All each layer ** knows about its neighbors is how to get to their method table. *************************************************************************** */ typedef PRIntn PRDescIdentity; /* see: Layering file descriptors */ struct PRFileDesc { const PRIOMethods *methods; /* the I/O methods table */ PRFilePrivate *secret; /* layer dependent data */ PRFileDesc *lower, *higher; /* pointers to adjacent layers */ void ( *dtor)(PRFileDesc *fd); /* A destructor function for layer */ PRDescIdentity identity; /* Identity of this particular layer */ }; /* *************************************************************************** ** PRTransmitFileFlags ** ** Flags for PR_TransmitFile. Pass PR_TRANSMITFILE_CLOSE_SOCKET to ** PR_TransmitFile if the connection should be closed after the file ** is transmitted. *************************************************************************** */ typedef enum PRTransmitFileFlags { PR_TRANSMITFILE_KEEP_OPEN = 0, /* socket is left open after file * is transmitted. */ PR_TRANSMITFILE_CLOSE_SOCKET = 1 /* socket is closed after file * is transmitted. */ } PRTransmitFileFlags; /* ************************************************************************** ** Macros for PRNetAddr ** ** Address families: PR_AF_INET, PR_AF_INET6, PR_AF_LOCAL ** IP addresses: PR_INADDR_ANY, PR_INADDR_LOOPBACK, PR_INADDR_BROADCAST ************************************************************************** */ #line 135 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prio.h" /* ** Define PR_AF_INET6 in prcpucfg.h with the same ** value as AF_INET6 on platforms with IPv6 support. ** Otherwise define it here. */ #line 148 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prio.h" /* ************************************************************************** ** A network address ** ** Only Internet Protocol (IPv4 and IPv6) addresses are supported. ** The address family must always represent IPv4 (AF_INET, probably == 2) ** or IPv6 (AF_INET6). ************************************************************************** *************************************************************************/ struct PRIPv6Addr { union { PRUint8 _S6_u8[16]; PRUint16 _S6_u16[8]; PRUint32 _S6_u32[4]; PRUint64 _S6_u64[2]; } _S6_un; }; typedef struct PRIPv6Addr PRIPv6Addr; union PRNetAddr { struct { PRUint16 family; /* address family (0x00ff maskable) */ char data[14]; /* raw address data */ #line 182 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prio.h" } raw; struct { PRUint16 family; /* address family (AF_INET) */ PRUint16 port; /* port number */ PRUint32 ip; /* The actual 32 bits of address */ char pad[8]; #line 192 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prio.h" } inet; struct { PRUint16 family; /* address family (AF_INET6) */ PRUint16 port; /* port number */ PRUint32 flowinfo; /* routing information */ PRIPv6Addr ip; /* the actual 128 bits of address */ PRUint32 scope_id; /* set of interfaces for a scope */ } ipv6; #line 211 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prio.h" }; /* *************************************************************************** ** PRSockOption ** ** The file descriptors can have predefined options set after they file ** descriptor is created to change their behavior. Only the options in ** the following enumeration are supported. *************************************************************************** */ typedef enum PRSockOption { PR_SockOpt_Nonblocking, /* nonblocking io */ PR_SockOpt_Linger, /* linger on close if data present */ PR_SockOpt_Reuseaddr, /* allow local address reuse */ PR_SockOpt_Keepalive, /* keep connections alive */ PR_SockOpt_RecvBufferSize, /* send buffer size */ PR_SockOpt_SendBufferSize, /* receive buffer size */ PR_SockOpt_IpTimeToLive, /* time to live */ PR_SockOpt_IpTypeOfService, /* type of service and precedence */ PR_SockOpt_AddMember, /* add an IP group membership */ PR_SockOpt_DropMember, /* drop an IP group membership */ PR_SockOpt_McastInterface, /* multicast interface address */ PR_SockOpt_McastTimeToLive, /* multicast timetolive */ PR_SockOpt_McastLoopback, /* multicast loopback */ PR_SockOpt_NoDelay, /* don't delay send to coalesce packets */ PR_SockOpt_MaxSegment, /* maximum segment size */ PR_SockOpt_Broadcast, /* enable broadcast */ PR_SockOpt_Last } PRSockOption; typedef struct PRLinger { PRBool polarity; /* Polarity of the option's setting */ PRIntervalTime linger; /* Time to linger before closing */ } PRLinger; typedef struct PRMcastRequest { PRNetAddr mcaddr; /* IP multicast address of group */ PRNetAddr ifaddr; /* local IP address of interface */ } PRMcastRequest; typedef struct PRSocketOptionData { PRSockOption option; union { PRUintn ip_ttl; /* IP time to live */ PRUintn mcast_ttl; /* IP multicast time to live */ PRUintn tos; /* IP type of service and precedence */ PRBool non_blocking; /* Non-blocking (network) I/O */ PRBool reuse_addr; /* Allow local address reuse */ PRBool keep_alive; /* Keep connections alive */ PRBool mcast_loopback; /* IP multicast loopback */ PRBool no_delay; /* Don't delay send to coalesce packets */ PRBool broadcast; /* Enable broadcast */ PRSize max_segment; /* Maximum segment size */ PRSize recv_buffer_size; /* Receive buffer size */ PRSize send_buffer_size; /* Send buffer size */ PRLinger linger; /* Time to linger on close if data present */ PRMcastRequest add_member; /* add an IP group membership */ PRMcastRequest drop_member; /* Drop an IP group membership */ PRNetAddr mcast_if; /* multicast interface address */ } value; } PRSocketOptionData; /* *************************************************************************** ** PRIOVec ** ** The I/O vector is used by the write vector method to describe the areas ** that are affected by the ouput operation. *************************************************************************** */ typedef struct PRIOVec { char *iov_base; int iov_len; } PRIOVec; /* *************************************************************************** ** Discover what type of socket is being described by the file descriptor. *************************************************************************** */ typedef enum PRDescType { PR_DESC_FILE = 1, PR_DESC_SOCKET_TCP = 2, PR_DESC_SOCKET_UDP = 3, PR_DESC_LAYERED = 4, PR_DESC_PIPE = 5 } PRDescType; typedef enum PRSeekWhence { PR_SEEK_SET = 0, PR_SEEK_CUR = 1, PR_SEEK_END = 2 } PRSeekWhence; __declspec(dllimport) PRDescType PR_GetDescType(PRFileDesc *file); /* *************************************************************************** ** PRIOMethods ** ** The I/O methods table provides procedural access to the functions of ** the file descriptor. It is the responsibility of a layer implementor ** to provide suitable functions at every entry point. If a layer provides ** no functionality, it should call the next lower(higher) function of the ** same name (e.g., return fd->lower->method->close(fd->lower)); ** ** Not all functions are implemented for all types of files. In cases where ** that is true, the function will return a error indication with an error ** code of PR_INVALID_METHOD_ERROR. *************************************************************************** */ typedef PRStatus ( *PRCloseFN)(PRFileDesc *fd); typedef PRInt32 ( *PRReadFN)(PRFileDesc *fd, void *buf, PRInt32 amount); typedef PRInt32 ( *PRWriteFN)(PRFileDesc *fd, const void *buf, PRInt32 amount); typedef PRInt32 ( *PRAvailableFN)(PRFileDesc *fd); typedef PRInt64 ( *PRAvailable64FN)(PRFileDesc *fd); typedef PRStatus ( *PRFsyncFN)(PRFileDesc *fd); typedef PROffset32 ( *PRSeekFN)(PRFileDesc *fd, PROffset32 offset, PRSeekWhence how); typedef PROffset64 ( *PRSeek64FN)(PRFileDesc *fd, PROffset64 offset, PRSeekWhence how); typedef PRStatus ( *PRFileInfoFN)(PRFileDesc *fd, PRFileInfo *info); typedef PRStatus ( *PRFileInfo64FN)(PRFileDesc *fd, PRFileInfo64 *info); typedef PRInt32 ( *PRWritevFN)( PRFileDesc *fd, const PRIOVec *iov, PRInt32 iov_size, PRIntervalTime timeout); typedef PRStatus ( *PRConnectFN)( PRFileDesc *fd, const PRNetAddr *addr, PRIntervalTime timeout); typedef PRFileDesc* ( *PRAcceptFN) ( PRFileDesc *fd, PRNetAddr *addr, PRIntervalTime timeout); typedef PRStatus ( *PRBindFN)(PRFileDesc *fd, const PRNetAddr *addr); typedef PRStatus ( *PRListenFN)(PRFileDesc *fd, PRIntn backlog); typedef PRStatus ( *PRShutdownFN)(PRFileDesc *fd, PRIntn how); typedef PRInt32 ( *PRRecvFN)( PRFileDesc *fd, void *buf, PRInt32 amount, PRIntn flags, PRIntervalTime timeout); typedef PRInt32 ( *PRSendFN) ( PRFileDesc *fd, const void *buf, PRInt32 amount, PRIntn flags, PRIntervalTime timeout); typedef PRInt32 ( *PRRecvfromFN)( PRFileDesc *fd, void *buf, PRInt32 amount, PRIntn flags, PRNetAddr *addr, PRIntervalTime timeout); typedef PRInt32 ( *PRSendtoFN)( PRFileDesc *fd, const void *buf, PRInt32 amount, PRIntn flags, const PRNetAddr *addr, PRIntervalTime timeout); typedef PRInt16 ( *PRPollFN)( PRFileDesc *fd, PRInt16 in_flags, PRInt16 *out_flags); typedef PRInt32 ( *PRAcceptreadFN)( PRFileDesc *sd, PRFileDesc **nd, PRNetAddr **raddr, void *buf, PRInt32 amount, PRIntervalTime t); typedef PRInt32 ( *PRTransmitfileFN)( PRFileDesc *sd, PRFileDesc *fd, const void *headers, PRInt32 hlen, PRTransmitFileFlags flags, PRIntervalTime t); typedef PRStatus ( *PRGetsocknameFN)(PRFileDesc *fd, PRNetAddr *addr); typedef PRStatus ( *PRGetpeernameFN)(PRFileDesc *fd, PRNetAddr *addr); typedef PRStatus ( *PRGetsocketoptionFN)( PRFileDesc *fd, PRSocketOptionData *data); typedef PRStatus ( *PRSetsocketoptionFN)( PRFileDesc *fd, const PRSocketOptionData *data); typedef PRInt32 ( *PRSendfileFN)( PRFileDesc *networkSocket, PRSendFileData *sendData, PRTransmitFileFlags flags, PRIntervalTime timeout); typedef PRStatus ( *PRConnectcontinueFN)( PRFileDesc *fd, PRInt16 out_flags); typedef PRIntn ( *PRReservedFN)(PRFileDesc *fd); struct PRIOMethods { PRDescType file_type; /* Type of file represented (tos) */ PRCloseFN close; /* close file and destroy descriptor */ PRReadFN read; /* read up to specified bytes into buffer */ PRWriteFN write; /* write specified bytes from buffer */ PRAvailableFN available; /* determine number of bytes available */ PRAvailable64FN available64; /* ditto, 64 bit */ PRFsyncFN fsync; /* flush all buffers to permanent store */ PRSeekFN seek; /* position the file to the desired place */ PRSeek64FN seek64; /* ditto, 64 bit */ PRFileInfoFN fileInfo; /* Get information about an open file */ PRFileInfo64FN fileInfo64; /* ditto, 64 bit */ PRWritevFN writev; /* Write segments as described by iovector */ PRConnectFN connect; /* Connect to the specified (net) address */ PRAcceptFN accept; /* Accept a connection for a (net) peer */ PRBindFN bind; /* Associate a (net) address with the fd */ PRListenFN listen; /* Prepare to listen for (net) connections */ PRShutdownFN shutdown; /* Shutdown a (net) connection */ PRRecvFN recv; /* Solicit up the the specified bytes */ PRSendFN send; /* Send all the bytes specified */ PRRecvfromFN recvfrom; /* Solicit (net) bytes and report source */ PRSendtoFN sendto; /* Send bytes to (net) address specified */ PRPollFN poll; /* Test the fd to see if it is ready */ PRAcceptreadFN acceptread; /* Accept and read on a new (net) fd */ PRTransmitfileFN transmitfile; /* Transmit at entire file */ PRGetsocknameFN getsockname; /* Get (net) address associated with fd */ PRGetpeernameFN getpeername; /* Get peer's (net) address */ PRReservedFN reserved_fn_6; /* reserved for future use */ PRReservedFN reserved_fn_5; /* reserved for future use */ PRGetsocketoptionFN getsocketoption; /* Get current setting of specified option */ PRSetsocketoptionFN setsocketoption; /* Set value of specified option */ PRSendfileFN sendfile; /* Send a (partial) file with header/trailer*/ PRConnectcontinueFN connectcontinue; /* Continue a nonblocking connect */ PRReservedFN reserved_fn_3; /* reserved for future use */ PRReservedFN reserved_fn_2; /* reserved for future use */ PRReservedFN reserved_fn_1; /* reserved for future use */ PRReservedFN reserved_fn_0; /* reserved for future use */ }; /* ************************************************************************** * FUNCTION: PR_GetSpecialFD * DESCRIPTION: Get the file descriptor that represents the standard input, * output, or error stream. * INPUTS: * PRSpecialFD id * A value indicating the type of stream desired: * PR_StandardInput: standard input * PR_StandardOuput: standard output * PR_StandardError: standard error * OUTPUTS: none * RETURNS: PRFileDesc * * If the argument is valid, PR_GetSpecialFD returns a file descriptor * that represents the corresponding standard I/O stream. Otherwise, * PR_GetSpecialFD returns NULL and sets error PR_INVALID_ARGUMENT_ERROR. ************************************************************************** */ typedef enum PRSpecialFD { PR_StandardInput, /* standard input */ PR_StandardOutput, /* standard output */ PR_StandardError /* standard error */ } PRSpecialFD; __declspec(dllimport) PRFileDesc* PR_GetSpecialFD(PRSpecialFD id); /* ************************************************************************** * Layering file descriptors * * File descriptors may be layered. Each layer has it's own identity. * Identities are allocated by the runtime and are to be associated * (by the layer implementor) with all layers that are of that type. * It is then possible to scan the chain of layers and find a layer * that one recongizes and therefore predict that it will implement * a desired protocol. * * There are three well-known identities: * PR_INVALID_IO_LAYER => an invalid layer identity, for error return * PR_TOP_IO_LAYER => the identity of the top of the stack * PR_NSPR_IO_LAYER => the identity used by NSPR proper * PR_TOP_IO_LAYER may be used as a shorthand for identifying the topmost * layer of an existing stack. Ie., the following two constructs are * equivalent. * * rv = PR_PushIOLayer(stack, PR_TOP_IO_LAYER, my_layer); * rv = PR_PushIOLayer(stack, PR_GetLayersIdentity(stack), my_layer) * * A string may be associated with the creation of the identity. It * will be copied by the runtime. If queried the runtime will return * a reference to that copied string (not yet another copy). There * is no facility for deleting an identity. ************************************************************************** */ __declspec(dllimport) PRDescIdentity PR_GetUniqueIdentity(const char *layer_name); __declspec(dllimport) const char* PR_GetNameForIdentity(PRDescIdentity ident); __declspec(dllimport) PRDescIdentity PR_GetLayersIdentity(PRFileDesc* fd); __declspec(dllimport) PRFileDesc* PR_GetIdentitiesLayer(PRFileDesc* fd_stack, PRDescIdentity id); /* ************************************************************************** * PR_GetDefaultIOMethods: Accessing the default methods table. * You may get a pointer to the default methods table by calling this function. * You may then select any elements from that table with which to build your * layer's methods table. You may NOT modify the table directly. ************************************************************************** */ __declspec(dllimport) const PRIOMethods * PR_GetDefaultIOMethods(void); /* ************************************************************************** * Creating a layer * * A new layer may be allocated by calling PR_CreateIOLayerStub(). The * file descriptor returned will contain the pointer to the methods table * provided. The runtime will not modify the table nor test its correctness. ************************************************************************** */ __declspec(dllimport) PRFileDesc* PR_CreateIOLayerStub( PRDescIdentity ident, const PRIOMethods *methods); /* ************************************************************************** * Creating a layer * * A new stack may be created by calling PR_CreateIOLayer(). The * file descriptor returned will point to the top of the stack, which has * the layer 'fd' as the topmost layer. * * NOTE: This function creates a new style stack, which has a fixed, dummy * header. The old style stack, created by a call to PR_PushIOLayer, * results in modifying contents of the top layer of the stack, when * pushing and popping layers of the stack. ************************************************************************** */ __declspec(dllimport) PRFileDesc* PR_CreateIOLayer(PRFileDesc* fd); /* ************************************************************************** * Pushing a layer * * A file descriptor (perhaps allocated using PR_CreateIOLayerStub()) may * be pushed into an existing stack of file descriptors at any point the * caller deems appropriate. The new layer will be inserted into the stack * just above the layer with the indicated identity. * * Note: Even if the identity parameter indicates the top-most layer of * the stack, the value of the file descriptor describing the original * stack will not change. ************************************************************************** */ __declspec(dllimport) PRStatus PR_PushIOLayer( PRFileDesc *fd_stack, PRDescIdentity id, PRFileDesc *layer); /* ************************************************************************** * Popping a layer * * A layer may be popped from a stack by indicating the identity of the * layer to be removed. If found, a pointer to the removed object will * be returned to the caller. The object then becomes the responsibility * of the caller. * * Note: Even if the identity indicates the top layer of the stack, the * reference returned will not be the file descriptor for the stack and * that file descriptor will remain valid. ************************************************************************** */ __declspec(dllimport) PRFileDesc* PR_PopIOLayer(PRFileDesc *fd_stack, PRDescIdentity id); /* ************************************************************************** * FUNCTION: PR_Open * DESCRIPTION: Open a file for reading, writing, or both. * INPUTS: * const char *name * The path name of the file to be opened * PRIntn flags * The file status flags. * It is a bitwise OR of the following bit flags (only one of * the first three flags below may be used): * PR_RDONLY Open for reading only. * PR_WRONLY Open for writing only. * PR_RDWR Open for reading and writing. * PR_CREATE_FILE If the file does not exist, the file is created * If the file exists, this flag has no effect. * PR_SYNC If set, each write will wait for both the file data * and file status to be physically updated. * PR_APPEND The file pointer is set to the end of * the file prior to each write. * PR_TRUNCATE If the file exists, its length is truncated to 0. * PR_EXCL With PR_CREATE_FILE, if the file does not exist, * the file is created. If the file already * exists, no action and NULL is returned * * PRIntn mode * The access permission bits of the file mode, if the file is * created when PR_CREATE_FILE is on. * OUTPUTS: None * RETURNS: PRFileDesc * * If the file is successfully opened, * returns a pointer to the PRFileDesc * created for the newly opened file. * Returns a NULL pointer if the open * failed. * SIDE EFFECTS: * RESTRICTIONS: * MEMORY: * The return value, if not NULL, points to a dynamically allocated * PRFileDesc object. * ALGORITHM: ************************************************************************** */ /* Open flags */ /* ** File modes .... ** ** CAVEAT: 'mode' is currently only applicable on UNIX platforms. ** The 'mode' argument may be ignored by PR_Open on other platforms. ** ** 00400 Read by owner. ** 00200 Write by owner. ** 00100 Execute (search if a directory) by owner. ** 00040 Read by group. ** 00020 Write by group. ** 00010 Execute by group. ** 00004 Read by others. ** 00002 Write by others ** 00001 Execute by others. ** */ __declspec(dllimport) PRFileDesc* PR_Open(const char *name, PRIntn flags, PRIntn mode); /* ************************************************************************** * FUNCTION: PR_OpenFile * DESCRIPTION: * Open a file for reading, writing, or both. * PR_OpenFile has the same prototype as PR_Open but implements * the specified file mode where possible. ************************************************************************** */ /* File mode bits */ __declspec(dllimport) PRFileDesc* PR_OpenFile( const char *name, PRIntn flags, PRIntn mode); /* ************************************************************************** * FUNCTION: PR_Close * DESCRIPTION: * Close a file or socket. * INPUTS: * PRFileDesc *fd * a pointer to a PRFileDesc. * OUTPUTS: * None. * RETURN: * PRStatus * SIDE EFFECTS: * RESTRICTIONS: * None. * MEMORY: * The dynamic memory pointed to by the argument fd is freed. ************************************************************************** */ __declspec(dllimport) PRStatus PR_Close(PRFileDesc *fd); /* ************************************************************************** * FUNCTION: PR_Read * DESCRIPTION: * Read bytes from a file or socket. * The operation will block until either an end of stream indication is * encountered, some positive number of bytes are transferred, or there * is an error. No more than 'amount' bytes will be transferred. * INPUTS: * PRFileDesc *fd * pointer to the PRFileDesc object for the file or socket * void *buf * pointer to a buffer to hold the data read in. * PRInt32 amount * the size of 'buf' (in bytes) * OUTPUTS: * RETURN: * PRInt32 * a positive number indicates the number of bytes actually read in. * 0 means end of file is reached or the network connection is closed. * -1 indicates a failure. The reason for the failure is obtained * by calling PR_GetError(). * SIDE EFFECTS: * data is written into the buffer pointed to by 'buf'. * RESTRICTIONS: * None. * MEMORY: * N/A * ALGORITHM: * N/A ************************************************************************** */ __declspec(dllimport) PRInt32 PR_Read(PRFileDesc *fd, void *buf, PRInt32 amount); /* *************************************************************************** * FUNCTION: PR_Write * DESCRIPTION: * Write a specified number of bytes to a file or socket. The thread * invoking this function blocks until all the data is written. * INPUTS: * PRFileDesc *fd * pointer to a PRFileDesc object that refers to a file or socket * const void *buf * pointer to the buffer holding the data * PRInt32 amount * amount of data in bytes to be written from the buffer * OUTPUTS: * None. * RETURN: PRInt32 * A positive number indicates the number of bytes successfully written. * A -1 is an indication that the operation failed. The reason * for the failure is obtained by calling PR_GetError(). *************************************************************************** */ __declspec(dllimport) PRInt32 PR_Write(PRFileDesc *fd,const void *buf,PRInt32 amount); /* *************************************************************************** * FUNCTION: PR_Writev * DESCRIPTION: * Write data to a socket. The data is organized in a PRIOVec array. The * operation will block until all the data is written or the operation * fails. * INPUTS: * PRFileDesc *fd * Pointer that points to a PRFileDesc object for a socket. * const PRIOVec *iov * An array of PRIOVec. PRIOVec is a struct with the following * two fields: * char *iov_base; * int iov_len; * PRInt32 iov_size * Number of elements in the iov array. The value of this * argument must not be greater than PR_MAX_IOVECTOR_SIZE. * If it is, the method will fail (PR_BUFFER_OVERFLOW_ERROR). * PRIntervalTime timeout * Time limit for completion of the entire write operation. * OUTPUTS: * None * RETURN: * A positive number indicates the number of bytes successfully written. * A -1 is an indication that the operation failed. The reason * for the failure is obtained by calling PR_GetError(). *************************************************************************** */ __declspec(dllimport) PRInt32 PR_Writev( PRFileDesc *fd, const PRIOVec *iov, PRInt32 iov_size, PRIntervalTime timeout); /* *************************************************************************** * FUNCTION: PR_Delete * DESCRIPTION: * Delete a file from the filesystem. The operation may fail if the * file is open. * INPUTS: * const char *name * Path name of the file to be deleted. * OUTPUTS: * None. * RETURN: PRStatus * The function returns PR_SUCCESS if the file is successfully * deleted, otherwise it returns PR_FAILURE. *************************************************************************** */ __declspec(dllimport) PRStatus PR_Delete(const char *name); /**************************************************************************/ typedef enum PRFileType { PR_FILE_FILE = 1, PR_FILE_DIRECTORY = 2, PR_FILE_OTHER = 3 } PRFileType; struct PRFileInfo { PRFileType type; /* Type of file */ PROffset32 size; /* Size, in bytes, of file's contents */ PRTime creationTime; /* Creation time per definition of PRTime */ PRTime modifyTime; /* Last modification time per definition of PRTime */ }; struct PRFileInfo64 { PRFileType type; /* Type of file */ PROffset64 size; /* Size, in bytes, of file's contents */ PRTime creationTime; /* Creation time per definition of PRTime */ PRTime modifyTime; /* Last modification time per definition of PRTime */ }; /**************************************************************************** * FUNCTION: PR_GetFileInfo, PR_GetFileInfo64 * DESCRIPTION: * Get the information about the file with the given path name. This is * applicable only to NSFileDesc describing 'file' types (see * INPUTS: * const char *fn * path name of the file * OUTPUTS: * PRFileInfo *info * Information about the given file is written into the file * information object pointer to by 'info'. * RETURN: PRStatus * PR_GetFileInfo returns PR_SUCCESS if file information is successfully * obtained, otherwise it returns PR_FAILURE. *************************************************************************** */ __declspec(dllimport) PRStatus PR_GetFileInfo(const char *fn, PRFileInfo *info); __declspec(dllimport) PRStatus PR_GetFileInfo64(const char *fn, PRFileInfo64 *info); /* ************************************************************************** * FUNCTION: PR_GetOpenFileInfo, PR_GetOpenFileInfo64 * DESCRIPTION: * Get information about an open file referred to by the * given PRFileDesc object. * INPUTS: * const PRFileDesc *fd * A reference to a valid, open file. * OUTPUTS: * Same as PR_GetFileInfo, PR_GetFileInfo64 * RETURN: PRStatus * PR_GetFileInfo returns PR_SUCCESS if file information is successfully * obtained, otherwise it returns PR_FAILURE. *************************************************************************** */ __declspec(dllimport) PRStatus PR_GetOpenFileInfo(PRFileDesc *fd, PRFileInfo *info); __declspec(dllimport) PRStatus PR_GetOpenFileInfo64(PRFileDesc *fd, PRFileInfo64 *info); /* ************************************************************************** * FUNCTION: PR_Rename * DESCRIPTION: * Rename a file from the old name 'from' to the new name 'to'. * INPUTS: * const char *from * The old name of the file to be renamed. * const char *to * The new name of the file. * OUTPUTS: * None. * RETURN: PRStatus ************************************************************************** */ __declspec(dllimport) PRStatus PR_Rename(const char *from, const char *to); /* ************************************************************************* * FUNCTION: PR_Access * DESCRIPTION: * Determine accessibility of a file. * INPUTS: * const char *name * path name of the file * PRAccessHow how * specifies which access permission to check for. * It can be one of the following values: * PR_ACCESS_READ_OK Test for read permission * PR_ACCESS_WRITE_OK Test for write permission * PR_ACCESS_EXISTS Check existence of file * OUTPUTS: * None. * RETURN: PRStatus * PR_SUCCESS is returned if the requested access is permitted. * Otherwise, PR_FAILURE is returned. Additional information * regarding the reason for the failure may be retrieved from * PR_GetError(). ************************************************************************* */ typedef enum PRAccessHow { PR_ACCESS_EXISTS = 1, PR_ACCESS_WRITE_OK = 2, PR_ACCESS_READ_OK = 3 } PRAccessHow; __declspec(dllimport) PRStatus PR_Access(const char *name, PRAccessHow how); /* ************************************************************************* * FUNCTION: PR_Seek, PR_Seek64 * DESCRIPTION: * Moves read-write file offset * INPUTS: * PRFileDesc *fd * Pointer to a PRFileDesc object. * PROffset32, PROffset64 offset * Specifies a value, in bytes, that is used in conjunction * with the 'whence' parameter to set the file pointer. A * negative value causes seeking in the reverse direction. * PRSeekWhence whence * Specifies how to interpret the 'offset' parameter in setting * the file pointer associated with the 'fd' parameter. * Values for the 'whence' parameter are: * PR_SEEK_SET Sets the file pointer to the value of the * 'offset' parameter * PR_SEEK_CUR Sets the file pointer to its current location * plus the value of the offset parameter. * PR_SEEK_END Sets the file pointer to the size of the * file plus the value of the offset parameter. * OUTPUTS: * None. * RETURN: PROffset32, PROffset64 * Upon successful completion, the resulting pointer location, * measured in bytes from the beginning of the file, is returned. * If the PR_Seek() function fails, the file offset remains * unchanged, and the returned value is -1. The error code can * then be retrieved via PR_GetError(). ************************************************************************* */ __declspec(dllimport) PROffset32 PR_Seek(PRFileDesc *fd, PROffset32 offset, PRSeekWhence whence); __declspec(dllimport) PROffset64 PR_Seek64(PRFileDesc *fd, PROffset64 offset, PRSeekWhence whence); /* ************************************************************************ * FUNCTION: PR_Available * DESCRIPTION: * Determine the amount of data in bytes available for reading * in the given file or socket. * INPUTS: * PRFileDesc *fd * Pointer to a PRFileDesc object that refers to a file or * socket. * OUTPUTS: * None * RETURN: PRInt32, PRInt64 * Upon successful completion, PR_Available returns the number of * bytes beyond the current read pointer that is available for * reading. Otherwise, it returns a -1 and the reason for the * failure can be retrieved via PR_GetError(). ************************************************************************ */ __declspec(dllimport) PRInt32 PR_Available(PRFileDesc *fd); __declspec(dllimport) PRInt64 PR_Available64(PRFileDesc *fd); /* ************************************************************************ * FUNCTION: PR_Sync * DESCRIPTION: * Sync any buffered data for a fd to its backing device (disk). * INPUTS: * PRFileDesc *fd * Pointer to a PRFileDesc object that refers to a file or * socket * OUTPUTS: * None * RETURN: PRStatus * PR_SUCCESS is returned if the requested access is permitted. * Otherwise, PR_FAILURE is returned. ************************************************************************ */ __declspec(dllimport) PRStatus PR_Sync(PRFileDesc *fd); /************************************************************************/ struct PRDirEntry { const char *name; /* name of entry, relative to directory name */ }; #line 1028 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prio.h" /* ************************************************************************* * FUNCTION: PR_OpenDir * DESCRIPTION: * Open the directory by the given name * INPUTS: * const char *name * path name of the directory to be opened * OUTPUTS: * None * RETURN: PRDir * * If the directory is sucessfully opened, a PRDir object is * dynamically allocated and a pointer to it is returned. * If the directory cannot be opened, a NULL pointer is returned. * MEMORY: * Upon successful completion, the return value points to * dynamically allocated memory. ************************************************************************* */ __declspec(dllimport) PRDir* PR_OpenDir(const char *name); /* ************************************************************************* * FUNCTION: PR_ReadDir * DESCRIPTION: * INPUTS: * PRDir *dir * pointer to a PRDir object that designates an open directory * PRDirFlags flags * PR_SKIP_NONE Do not skip any files * PR_SKIP_DOT Skip the directory entry "." that * represents the current directory * PR_SKIP_DOT_DOT Skip the directory entry ".." that * represents the parent directory. * PR_SKIP_BOTH Skip both '.' and '..' * PR_SKIP_HIDDEN Skip hidden files * OUTPUTS: * RETURN: PRDirEntry* * Returns a pointer to the next entry in the directory. Returns * a NULL pointer upon reaching the end of the directory or when an * error occurs. The actual reason can be retrieved via PR_GetError(). ************************************************************************* */ typedef enum PRDirFlags { PR_SKIP_NONE = 0x0, PR_SKIP_DOT = 0x1, PR_SKIP_DOT_DOT = 0x2, PR_SKIP_BOTH = 0x3, PR_SKIP_HIDDEN = 0x4 } PRDirFlags; __declspec(dllimport) PRDirEntry* PR_ReadDir(PRDir *dir, PRDirFlags flags); /* ************************************************************************* * FUNCTION: PR_CloseDir * DESCRIPTION: * Close the specified directory. * INPUTS: * PRDir *dir * The directory to be closed. * OUTPUTS: * None * RETURN: PRStatus * If successful, will return a status of PR_SUCCESS. Otherwise * a value of PR_FAILURE. The reason for the failure may be re- * trieved using PR_GetError(). ************************************************************************* */ __declspec(dllimport) PRStatus PR_CloseDir(PRDir *dir); /* ************************************************************************* * FUNCTION: PR_MkDir * DESCRIPTION: * Create a new directory with the given name and access mode. * INPUTS: * const char *name * The name of the directory to be created. All the path components * up to but not including the leaf component must already exist. * PRIntn mode * See 'mode' definiton in PR_Open(). * OUTPUTS: * None * RETURN: PRStatus * If successful, will return a status of PR_SUCCESS. Otherwise * a value of PR_FAILURE. The reason for the failure may be re- * trieved using PR_GetError(). ************************************************************************* */ __declspec(dllimport) PRStatus PR_MkDir(const char *name, PRIntn mode); /* ************************************************************************* * FUNCTION: PR_MakeDir * DESCRIPTION: * Create a new directory with the given name and access mode. * PR_MakeDir has the same prototype as PR_MkDir but implements * the specified access mode where possible. ************************************************************************* */ __declspec(dllimport) PRStatus PR_MakeDir(const char *name, PRIntn mode); /* ************************************************************************* * FUNCTION: PR_RmDir * DESCRIPTION: * Remove a directory by the given name. * INPUTS: * const char *name * The name of the directory to be removed. All the path components * must already exist. Only the leaf component will be removed. * OUTPUTS: * None * RETURN: PRStatus * If successful, will return a status of PR_SUCCESS. Otherwise * a value of PR_FAILURE. The reason for the failure may be re- * trieved using PR_GetError(). ************************************************************************** */ __declspec(dllimport) PRStatus PR_RmDir(const char *name); /* ************************************************************************* * FUNCTION: PR_NewUDPSocket * DESCRIPTION: * Create a new UDP socket. * INPUTS: * None * OUTPUTS: * None * RETURN: PRFileDesc* * Upon successful completion, PR_NewUDPSocket returns a pointer * to the PRFileDesc created for the newly opened UDP socket. * Returns a NULL pointer if the creation of a new UDP socket failed. * ************************************************************************** */ __declspec(dllimport) PRFileDesc* PR_NewUDPSocket(void); /* ************************************************************************* * FUNCTION: PR_NewTCPSocket * DESCRIPTION: * Create a new TCP socket. * INPUTS: * None * OUTPUTS: * None * RETURN: PRFileDesc* * Upon successful completion, PR_NewTCPSocket returns a pointer * to the PRFileDesc created for the newly opened TCP socket. * Returns a NULL pointer if the creation of a new TCP socket failed. * ************************************************************************** */ __declspec(dllimport) PRFileDesc* PR_NewTCPSocket(void); /* ************************************************************************* * FUNCTION: PR_OpenUDPSocket * DESCRIPTION: * Create a new UDP socket of the specified address family. * INPUTS: * PRIntn af * Address family * OUTPUTS: * None * RETURN: PRFileDesc* * Upon successful completion, PR_OpenUDPSocket returns a pointer * to the PRFileDesc created for the newly opened UDP socket. * Returns a NULL pointer if the creation of a new UDP socket failed. * ************************************************************************** */ __declspec(dllimport) PRFileDesc* PR_OpenUDPSocket(PRIntn af); /* ************************************************************************* * FUNCTION: PR_OpenTCPSocket * DESCRIPTION: * Create a new TCP socket of the specified address family. * INPUTS: * PRIntn af * Address family * OUTPUTS: * None * RETURN: PRFileDesc* * Upon successful completion, PR_NewTCPSocket returns a pointer * to the PRFileDesc created for the newly opened TCP socket. * Returns a NULL pointer if the creation of a new TCP socket failed. * ************************************************************************** */ __declspec(dllimport) PRFileDesc* PR_OpenTCPSocket(PRIntn af); /* ************************************************************************* * FUNCTION: PR_Connect * DESCRIPTION: * Initiate a connection on a socket. * INPUTS: * PRFileDesc *fd * Points to a PRFileDesc object representing a socket * PRNetAddr *addr * Specifies the address of the socket in its own communication * space. * PRIntervalTime timeout * The function uses the lesser of the provided timeout and * the OS's connect timeout. In particular, if you specify * PR_INTERVAL_NO_TIMEOUT as the timeout, the OS's connection * time limit will be used. * * OUTPUTS: * None * RETURN: PRStatus * Upon successful completion of connection initiation, PR_Connect * returns PR_SUCCESS. Otherwise, it returns PR_FAILURE. Further * failure information can be obtained by calling PR_GetError(). ************************************************************************** */ __declspec(dllimport) PRStatus PR_Connect( PRFileDesc *fd, const PRNetAddr *addr, PRIntervalTime timeout); /* ************************************************************************* * FUNCTION: PR_ConnectContinue * DESCRIPTION: * Continue a nonblocking connect. After a nonblocking connect * is initiated with PR_Connect() (which fails with * PR_IN_PROGRESS_ERROR), one should call PR_Poll() on the socket, * with the in_flags PR_POLL_WRITE | PR_POLL_EXCEPT. When * PR_Poll() returns, one calls PR_ConnectContinue() on the * socket to determine whether the nonblocking connect has * completed or is still in progress. Repeat the PR_Poll(), * PR_ConnectContinue() sequence until the nonblocking connect * has completed. * INPUTS: * PRFileDesc *fd * the file descriptor representing a socket * PRInt16 out_flags * the out_flags field of the poll descriptor returned by * PR_Poll() * RETURN: PRStatus * If the nonblocking connect has successfully completed, * PR_ConnectContinue returns PR_SUCCESS. If PR_ConnectContinue() * returns PR_FAILURE, call PR_GetError(): * - PR_IN_PROGRESS_ERROR: the nonblocking connect is still in * progress and has not completed yet. The caller should poll * on the file descriptor for the in_flags * PR_POLL_WRITE|PR_POLL_EXCEPT and retry PR_ConnectContinue * later when PR_Poll() returns. * - Other errors: the nonblocking connect has failed with this * error code. */ __declspec(dllimport) PRStatus PR_ConnectContinue(PRFileDesc *fd, PRInt16 out_flags); /* ************************************************************************* * THIS FUNCTION IS DEPRECATED. USE PR_ConnectContinue INSTEAD. * * FUNCTION: PR_GetConnectStatus * DESCRIPTION: * Get the completion status of a nonblocking connect. After * a nonblocking connect is initiated with PR_Connect() (which * fails with PR_IN_PROGRESS_ERROR), one should call PR_Poll() * on the socket, with the in_flags PR_POLL_WRITE | PR_POLL_EXCEPT. * When PR_Poll() returns, one calls PR_GetConnectStatus on the * PRPollDesc structure to determine whether the nonblocking * connect has succeeded or failed. * INPUTS: * const PRPollDesc *pd * Pointer to a PRPollDesc whose fd member is the socket, * and in_flags must contain PR_POLL_WRITE and PR_POLL_EXCEPT. * PR_Poll() should have been called and set the out_flags. * RETURN: PRStatus * If the nonblocking connect has successfully completed, * PR_GetConnectStatus returns PR_SUCCESS. If PR_GetConnectStatus() * returns PR_FAILURE, call PR_GetError(): * - PR_IN_PROGRESS_ERROR: the nonblocking connect is still in * progress and has not completed yet. * - Other errors: the nonblocking connect has failed with this * error code. */ __declspec(dllimport) PRStatus PR_GetConnectStatus(const PRPollDesc *pd); /* ************************************************************************* * FUNCTION: PR_Accept * DESCRIPTION: * Accept a connection on a socket. * INPUTS: * PRFileDesc *fd * Points to a PRFileDesc object representing the rendezvous socket * on which the caller is willing to accept new connections. * PRIntervalTime timeout * Time limit for completion of the accept operation. * OUTPUTS: * PRNetAddr *addr * Returns the address of the connecting entity in its own * communication space. It may be NULL. * RETURN: PRFileDesc* * Upon successful acceptance of a connection, PR_Accept * returns a valid file descriptor. Otherwise, it returns NULL. * Further failure information can be obtained by calling PR_GetError(). ************************************************************************** */ __declspec(dllimport) PRFileDesc* PR_Accept( PRFileDesc *fd, PRNetAddr *addr, PRIntervalTime timeout); /* ************************************************************************* * FUNCTION: PR_Bind * DESCRIPTION: * Bind an address to a socket. * INPUTS: * PRFileDesc *fd * Points to a PRFileDesc object representing a socket. * PRNetAddr *addr * Specifies the address to which the socket will be bound. * OUTPUTS: * None * RETURN: PRStatus * Upon successful binding of an address to a socket, PR_Bind * returns PR_SUCCESS. Otherwise, it returns PR_FAILURE. Further * failure information can be obtained by calling PR_GetError(). ************************************************************************** */ __declspec(dllimport) PRStatus PR_Bind(PRFileDesc *fd, const PRNetAddr *addr); /* ************************************************************************* * FUNCTION: PR_Listen * DESCRIPTION: * Listen for connections on a socket. * INPUTS: * PRFileDesc *fd * Points to a PRFileDesc object representing a socket that will be * used to listen for new connections. * PRIntn backlog * Specifies the maximum length of the queue of pending connections. * OUTPUTS: * None * RETURN: PRStatus * Upon successful completion of listen request, PR_Listen * returns PR_SUCCESS. Otherwise, it returns PR_FAILURE. Further * failure information can be obtained by calling PR_GetError(). ************************************************************************** */ __declspec(dllimport) PRStatus PR_Listen(PRFileDesc *fd, PRIntn backlog); /* ************************************************************************* * FUNCTION: PR_Shutdown * DESCRIPTION: * Shut down part of a full-duplex connection on a socket. * INPUTS: * PRFileDesc *fd * Points to a PRFileDesc object representing a connected socket. * PRIntn how * Specifies the kind of disallowed operations on the socket. * PR_SHUTDOWN_RCV - Further receives will be disallowed * PR_SHUTDOWN_SEND - Further sends will be disallowed * PR_SHUTDOWN_BOTH - Further sends and receives will be disallowed * OUTPUTS: * None * RETURN: PRStatus * Upon successful completion of shutdown request, PR_Shutdown * returns PR_SUCCESS. Otherwise, it returns PR_FAILURE. Further * failure information can be obtained by calling PR_GetError(). ************************************************************************** */ typedef enum PRShutdownHow { PR_SHUTDOWN_RCV = 0, /* disallow further receives */ PR_SHUTDOWN_SEND = 1, /* disallow further sends */ PR_SHUTDOWN_BOTH = 2 /* disallow further receives and sends */ } PRShutdownHow; __declspec(dllimport) PRStatus PR_Shutdown(PRFileDesc *fd, PRShutdownHow how); /* ************************************************************************* * FUNCTION: PR_Recv * DESCRIPTION: * Receive a specified number of bytes from a connected socket. * The operation will block until some positive number of bytes are * transferred, a time out has occurred, or there is an error. * No more than 'amount' bytes will be transferred. * INPUTS: * PRFileDesc *fd * points to a PRFileDesc object representing a socket. * void *buf * pointer to a buffer to hold the data received. * PRInt32 amount * the size of 'buf' (in bytes) * PRIntn flags * must be zero or PR_MSG_PEEK. * PRIntervalTime timeout * Time limit for completion of the receive operation. * OUTPUTS: * None * RETURN: PRInt32 * a positive number indicates the number of bytes actually received. * 0 means the network connection is closed. * -1 indicates a failure. The reason for the failure is obtained * by calling PR_GetError(). ************************************************************************** */ __declspec(dllimport) PRInt32 PR_Recv(PRFileDesc *fd, void *buf, PRInt32 amount, PRIntn flags, PRIntervalTime timeout); /* ************************************************************************* * FUNCTION: PR_Send * DESCRIPTION: * Send a specified number of bytes from a connected socket. * The operation will block until all bytes are * processed, a time out has occurred, or there is an error. * INPUTS: * PRFileDesc *fd * points to a PRFileDesc object representing a socket. * void *buf * pointer to a buffer from where the data is sent. * PRInt32 amount * the size of 'buf' (in bytes) * PRIntn flags * (OBSOLETE - must always be zero) * PRIntervalTime timeout * Time limit for completion of the send operation. * OUTPUTS: * None * RETURN: PRInt32 * A positive number indicates the number of bytes successfully processed. * This number must always equal 'amount'. A -1 is an indication that the * operation failed. The reason for the failure is obtained by calling * PR_GetError(). ************************************************************************** */ __declspec(dllimport) PRInt32 PR_Send(PRFileDesc *fd, const void *buf, PRInt32 amount, PRIntn flags, PRIntervalTime timeout); /* ************************************************************************* * FUNCTION: PR_RecvFrom * DESCRIPTION: * Receive up to a specified number of bytes from socket which may * or may not be connected. * The operation will block until one or more bytes are * transferred, a time out has occurred, or there is an error. * No more than 'amount' bytes will be transferred. * INPUTS: * PRFileDesc *fd * points to a PRFileDesc object representing a socket. * void *buf * pointer to a buffer to hold the data received. * PRInt32 amount * the size of 'buf' (in bytes) * PRIntn flags * (OBSOLETE - must always be zero) * PRNetAddr *addr * Specifies the address of the sending peer. It may be NULL. * PRIntervalTime timeout * Time limit for completion of the receive operation. * OUTPUTS: * None * RETURN: PRInt32 * a positive number indicates the number of bytes actually received. * 0 means the network connection is closed. * -1 indicates a failure. The reason for the failure is obtained * by calling PR_GetError(). ************************************************************************** */ __declspec(dllimport) PRInt32 PR_RecvFrom( PRFileDesc *fd, void *buf, PRInt32 amount, PRIntn flags, PRNetAddr *addr, PRIntervalTime timeout); /* ************************************************************************* * FUNCTION: PR_SendTo * DESCRIPTION: * Send a specified number of bytes from an unconnected socket. * The operation will block until all bytes are * sent, a time out has occurred, or there is an error. * INPUTS: * PRFileDesc *fd * points to a PRFileDesc object representing an unconnected socket. * void *buf * pointer to a buffer from where the data is sent. * PRInt32 amount * the size of 'buf' (in bytes) * PRIntn flags * (OBSOLETE - must always be zero) * PRNetAddr *addr * Specifies the address of the peer. .* PRIntervalTime timeout * Time limit for completion of the send operation. * OUTPUTS: * None * RETURN: PRInt32 * A positive number indicates the number of bytes successfully sent. * -1 indicates a failure. The reason for the failure is obtained * by calling PR_GetError(). ************************************************************************** */ __declspec(dllimport) PRInt32 PR_SendTo( PRFileDesc *fd, const void *buf, PRInt32 amount, PRIntn flags, const PRNetAddr *addr, PRIntervalTime timeout); /* ************************************************************************* ** FUNCTION: PR_TransmitFile ** DESCRIPTION: ** Transmitfile sends a complete file (sourceFile) across a socket ** (networkSocket). If headers is non-NULL, the headers will be sent across ** the socket prior to sending the file. ** ** Optionally, the PR_TRANSMITFILE_CLOSE_SOCKET flag may be passed to ** transmitfile. This flag specifies that transmitfile should close the ** socket after sending the data. ** ** INPUTS: ** PRFileDesc *networkSocket ** The socket to send data over ** PRFileDesc *sourceFile ** The file to send ** const void *headers ** A pointer to headers to be sent before sending data ** PRInt32 hlen ** length of header buffers in bytes. ** PRTransmitFileFlags flags ** If the flags indicate that the connection should be closed, ** it will be done immediately after transferring the file, unless ** the operation is unsuccessful. .* PRIntervalTime timeout * Time limit for completion of the transmit operation. ** ** RETURNS: ** Returns the number of bytes written or -1 if the operation failed. ** If an error occurs while sending the file, the PR_TRANSMITFILE_CLOSE_ ** SOCKET flag is ignored. The reason for the failure is obtained ** by calling PR_GetError(). ************************************************************************** */ __declspec(dllimport) PRInt32 PR_TransmitFile( PRFileDesc *networkSocket, PRFileDesc *sourceFile, const void *headers, PRInt32 hlen, PRTransmitFileFlags flags, PRIntervalTime timeout); /* ************************************************************************* ** FUNCTION: PR_SendFile ** DESCRIPTION: ** PR_SendFile sends data from a file (sendData->fd) across a socket ** (networkSocket). If specified, a header and/or trailer buffer are sent ** before and after the file, respectively. The file offset, number of bytes ** of file data to send, the header and trailer buffers are specified in the ** sendData argument. ** ** Optionally, if the PR_TRANSMITFILE_CLOSE_SOCKET flag is passed, the ** socket is closed after successfully sending the data. ** ** INPUTS: ** PRFileDesc *networkSocket ** The socket to send data over ** PRSendFileData *sendData ** Contains the FD, file offset and length, header and trailer ** buffer specifications. ** PRTransmitFileFlags flags ** If the flags indicate that the connection should be closed, ** it will be done immediately after transferring the file, unless ** the operation is unsuccessful. .* PRIntervalTime timeout * Time limit for completion of the send operation. ** ** RETURNS: ** Returns the number of bytes written or -1 if the operation failed. ** If an error occurs while sending the file, the PR_TRANSMITFILE_CLOSE_ ** SOCKET flag is ignored. The reason for the failure is obtained ** by calling PR_GetError(). ************************************************************************** */ struct PRSendFileData { PRFileDesc *fd; /* file to send */ PRUint32 file_offset; /* file offset */ PRSize file_nbytes; /* number of bytes of file data to send */ /* if 0, send data from file_offset to */ /* end-of-file. */ const void *header; /* header buffer */ PRInt32 hlen; /* header len */ const void *trailer; /* trailer buffer */ PRInt32 tlen; /* trailer len */ }; __declspec(dllimport) PRInt32 PR_SendFile( PRFileDesc *networkSocket, PRSendFileData *sendData, PRTransmitFileFlags flags, PRIntervalTime timeout); /* ************************************************************************* ** FUNCTION: PR_AcceptRead ** DESCRIPTION: ** AcceptRead accepts a new connection, returns the newly created ** socket's descriptor and also returns the connecting peer's address. ** AcceptRead, as its name suggests, also receives the first block of data ** sent by the peer. ** ** INPUTS: ** PRFileDesc *listenSock ** A socket descriptor that has been called with the PR_Listen() ** function, also known as the rendezvous socket. ** void *buf ** A pointer to a buffer to receive data sent by the client. This ** buffer must be large enough to receive bytes of data ** and two PRNetAddr structures, plus an extra 32 bytes. See: ** PR_ACCEPT_READ_BUF_OVERHEAD. ** PRInt32 amount ** The number of bytes of client data to receive. Does not include ** the size of the PRNetAddr structures. If 0, no data will be read ** from the client. ** PRIntervalTime timeout ** The timeout interval only applies to the read portion of the ** operation. PR_AcceptRead will block indefinitely until the ** connection is accepted; the read will timeout after the timeout ** interval elapses. ** OUTPUTS: ** PRFileDesc **acceptedSock ** The file descriptor for the newly connected socket. This parameter ** will only be valid if the function return does not indicate failure. ** PRNetAddr **peerAddr, ** The address of the remote socket. This parameter will only be ** valid if the function return does not indicate failure. The ** returned address is not guaranteed to be properly aligned. ** ** RETURNS: ** The number of bytes read from the client or -1 on failure. The reason ** for the failure is obtained by calling PR_GetError(). ************************************************************************** **/ /* define buffer overhead constant. Add this value to the user's ** data length when allocating a buffer to accept data. ** Example: ** #define USER_DATA_SIZE 10 ** char buf[USER_DATA_SIZE + PR_ACCEPT_READ_BUF_OVERHEAD]; ** bytesRead = PR_AcceptRead( s, fd, &a, &p, USER_DATA_SIZE, ...); */ __declspec(dllimport) PRInt32 PR_AcceptRead( PRFileDesc *listenSock, PRFileDesc **acceptedSock, PRNetAddr **peerAddr, void *buf, PRInt32 amount, PRIntervalTime timeout); /* ************************************************************************* ** FUNCTION: PR_NewTCPSocketPair ** DESCRIPTION: ** Create a new TCP socket pair. The returned descriptors can be used ** interchangeably; they are interconnected full-duplex descriptors: data ** written to one can be read from the other and vice-versa. ** ** INPUTS: ** None ** OUTPUTS: ** PRFileDesc *fds[2] ** The file descriptor pair for the newly created TCP sockets. ** RETURN: PRStatus ** Upon successful completion of TCP socket pair, PR_NewTCPSocketPair ** returns PR_SUCCESS. Otherwise, it returns PR_FAILURE. Further ** failure information can be obtained by calling PR_GetError(). ** XXX can we implement this on windoze and mac? ************************************************************************** **/ __declspec(dllimport) PRStatus PR_NewTCPSocketPair(PRFileDesc *fds[2]); /* ************************************************************************* ** FUNCTION: PR_GetSockName ** DESCRIPTION: ** Get socket name. Return the network address for this socket. ** ** INPUTS: ** PRFileDesc *fd ** Points to a PRFileDesc object representing the socket. ** OUTPUTS: ** PRNetAddr *addr ** Returns the address of the socket in its own communication space. ** RETURN: PRStatus ** Upon successful completion, PR_GetSockName returns PR_SUCCESS. ** Otherwise, it returns PR_FAILURE. Further failure information can ** be obtained by calling PR_GetError(). ************************************************************************** **/ __declspec(dllimport) PRStatus PR_GetSockName(PRFileDesc *fd, PRNetAddr *addr); /* ************************************************************************* ** FUNCTION: PR_GetPeerName ** DESCRIPTION: ** Get name of the connected peer. Return the network address for the ** connected peer socket. ** ** INPUTS: ** PRFileDesc *fd ** Points to a PRFileDesc object representing the connected peer. ** OUTPUTS: ** PRNetAddr *addr ** Returns the address of the connected peer in its own communication ** space. ** RETURN: PRStatus ** Upon successful completion, PR_GetPeerName returns PR_SUCCESS. ** Otherwise, it returns PR_FAILURE. Further failure information can ** be obtained by calling PR_GetError(). ************************************************************************** **/ __declspec(dllimport) PRStatus PR_GetPeerName(PRFileDesc *fd, PRNetAddr *addr); __declspec(dllimport) PRStatus PR_GetSocketOption( PRFileDesc *fd, PRSocketOptionData *data); __declspec(dllimport) PRStatus PR_SetSocketOption( PRFileDesc *fd, const PRSocketOptionData *data); /* ********************************************************************* * * File descriptor inheritance * ********************************************************************* */ /* ************************************************************************ * FUNCTION: PR_SetFDInheritable * DESCRIPTION: * Set the inheritance attribute of a file descriptor. * * INPUTS: * PRFileDesc *fd * Points to a PRFileDesc object. * PRBool inheritable * If PR_TRUE, the file descriptor fd is set to be inheritable * by a child process. If PR_FALSE, the file descriptor is set * to be not inheritable by a child process. * RETURN: PRStatus * Upon successful completion, PR_SetFDInheritable returns PR_SUCCESS. * Otherwise, it returns PR_FAILURE. Further failure information can * be obtained by calling PR_GetError(). ************************************************************************* */ __declspec(dllimport) PRStatus PR_SetFDInheritable( PRFileDesc *fd, PRBool inheritable); /* ************************************************************************ * FUNCTION: PR_GetInheritedFD * DESCRIPTION: * Get an inherited file descriptor with the specified name. * * INPUTS: * const char *name * The name of the inherited file descriptor. * RETURN: PRFileDesc * * Upon successful completion, PR_GetInheritedFD returns the * inherited file descriptor with the specified name. Otherwise, * it returns NULL. Further failure information can be obtained * by calling PR_GetError(). ************************************************************************* */ __declspec(dllimport) PRFileDesc * PR_GetInheritedFD(const char *name); /* ********************************************************************* * * Memory-mapped files * ********************************************************************* */ typedef struct PRFileMap PRFileMap; /* * protection options for read and write accesses of a file mapping */ typedef enum PRFileMapProtect { PR_PROT_READONLY, /* read only */ PR_PROT_READWRITE, /* readable, and write is shared */ PR_PROT_WRITECOPY /* readable, and write is private (copy-on-write) */ } PRFileMapProtect; __declspec(dllimport) PRFileMap * PR_CreateFileMap( PRFileDesc *fd, PRInt64 size, PRFileMapProtect prot); /* * return the alignment (in bytes) of the offset argument to PR_MemMap */ __declspec(dllimport) PRInt32 PR_GetMemMapAlignment(void); __declspec(dllimport) void * PR_MemMap( PRFileMap *fmap, PROffset64 offset, /* must be aligned and sized according to the * return value of PR_GetMemMapAlignment() */ PRUint32 len); __declspec(dllimport) PRStatus PR_MemUnmap(void *addr, PRUint32 len); __declspec(dllimport) PRStatus PR_CloseFileMap(PRFileMap *fmap); /* ****************************************************************** * * Interprocess communication * ****************************************************************** */ /* * Creates an anonymous pipe and returns file descriptors for the * read and write ends of the pipe. */ __declspec(dllimport) PRStatus PR_CreatePipe( PRFileDesc **readPipe, PRFileDesc **writePipe ); /************************************************************************/ /************** The following definitions are for poll ******************/ /************************************************************************/ struct PRPollDesc { PRFileDesc* fd; PRInt16 in_flags; PRInt16 out_flags; }; /* ** Bit values for PRPollDesc.in_flags or PRPollDesc.out_flags. Binary-or ** these together to produce the desired poll request. */ #line 1930 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prio.h" #line 1939 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prio.h" /* ************************************************************************* ** FUNCTION: PR_Poll ** DESCRIPTION: ** ** The call returns as soon as I/O is ready on one or more of the underlying ** socket objects. A count of the number of ready descriptors is ** returned unless a timeout occurs in which case zero is returned. ** ** PRPollDesc.fd should be set to a pointer to a PRFileDesc object ** representing a socket. This field can be set to NULL to indicate to ** PR_Poll that this PRFileDesc object should be ignored. ** PRPollDesc.in_flags should be set to the desired request ** (read/write/except or some combination). Upon successful return from ** this call PRPollDesc.out_flags will be set to indicate what kind of ** i/o can be performed on the respective descriptor. PR_Poll() uses the ** out_flags fields as scratch variables during the call. If PR_Poll() ** returns 0 or -1, the out_flags fields do not contain meaningful values ** and must not be used. ** ** INPUTS: ** PRPollDesc *pds A pointer to an array of PRPollDesc ** ** PRIntn npds The number of elements in the array ** If this argument is zero PR_Poll is ** equivalent to a PR_Sleep(timeout). ** ** PRIntervalTime timeout Amount of time the call will block waiting ** for I/O to become ready. If this time expires ** w/o any I/O becoming ready, the result will ** be zero. ** ** OUTPUTS: None ** RETURN: ** PRInt32 Number of PRPollDesc's with events or zero ** if the function timed out or -1 on failure. ** The reason for the failure is obtained by ** calling PR_GetError(). ************************************************************************** */ __declspec(dllimport) PRInt32 PR_Poll( PRPollDesc *pds, PRIntn npds, PRIntervalTime timeout); /* ************************************************************************** ** ** Pollable events ** ** A pollable event is a special kind of file descriptor. ** The only I/O operation you can perform on a pollable event ** is to poll it with the PR_POLL_READ flag. You can't ** read from or write to a pollable event. ** ** The purpose of a pollable event is to combine event waiting ** with I/O waiting in a single PR_Poll call. Pollable events ** are implemented using a pipe or a pair of TCP sockets ** connected via the loopback address, therefore setting and ** waiting for pollable events are expensive operating system ** calls. Do not use pollable events for general thread ** synchronization. Use condition variables instead. ** ** A pollable event has two states: set and unset. Events ** are not queued, so there is no notion of an event count. ** A pollable event is either set or unset. ** ** A new pollable event is created by a PR_NewPollableEvent ** call and is initially in the unset state. ** ** PR_WaitForPollableEvent blocks the calling thread until ** the pollable event is set, and then it atomically unsets ** the pollable event before it returns. ** ** To set a pollable event, call PR_SetPollableEvent. ** ** One can call PR_Poll with the PR_POLL_READ flag on a pollable ** event. When the pollable event is set, PR_Poll returns with ** the PR_POLL_READ flag set in the out_flags. ** ** To close a pollable event, call PR_DestroyPollableEvent ** (not PR_Close). ** ************************************************************************** */ __declspec(dllimport) PRFileDesc * PR_NewPollableEvent(void); __declspec(dllimport) PRStatus PR_DestroyPollableEvent(PRFileDesc *event); __declspec(dllimport) PRStatus PR_SetPollableEvent(PRFileDesc *event); __declspec(dllimport) PRStatus PR_WaitForPollableEvent(PRFileDesc *event); } #line 2035 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prio.h" #line 59 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prprf.h" #line 1 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" /*** *stdio.h - definitions/declarations for standard I/O routines * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file defines the structures, values, macros, and functions * used by the level 2 I/O ("standard I/O") routines. * [ANSI/System V] * * [Public] * ****/ #pragma once #line 18 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" #line 1 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" /*** *crtdefs.h - definitions/declarations common to all CRT * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file has mostly defines used by the entire CRT. * * [Public] * ****/ /* Lack of pragma once is deliberate */ /* Define _CRTIMP */ #line 23 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" /* * Currently, all MS C compilers for Win32 platforms default to 8 byte * alignment. */ #pragma pack(push,8) #line 30 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" extern "C" { #line 34 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" /* Buffered I/O macros */ /* * Default number of supported streams. _NFILE is confusing and obsolete, but * supported anyway for backwards compatibility. */ /* * Number of entries in _iob[] (declared below). Note that _NSTREAM_ must be * greater than or equal to _IOB_ENTRIES. */ struct _iobuf { char *_ptr; int _cnt; char *_base; int _flag; int _file; int _charbuf; int _bufsiz; char *_tmpfname; }; typedef struct _iobuf FILE; #line 72 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" /* Directory where temporary files may be created. */ #line 83 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" /* L_tmpnam = length of string _P_tmpdir * + 1 if _P_tmpdir does not end in "/" or "\", else 0 * + 12 (for the filename string) * + 1 (for the null terminator) * L_tmpnam_s = length of string _P_tmpdir * + 1 if _P_tmpdir does not end in "/" or "\", else 0 * + 16 (for the filename string) * + 1 (for the null terminator) */ #line 97 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" /* Seek method constants */ #line 118 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" /* Define NULL pointer value */ /* Declare _iob[] array */ __declspec(dllimport) FILE * __cdecl __iob_func(void); #line 133 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" /* Define file position type */ #line 144 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" /* At this point we could switch both to long long, but we won't do that till next version to avoid any potential compat issues */ typedef __int64 fpos_t; #line 153 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" #line 154 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" #line 157 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" #line 164 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" /* constants used by _set_output_format */ /* Function prototypes */ __declspec(dllimport) int __cdecl _filbuf( FILE * _File ); __declspec(dllimport) int __cdecl _flsbuf( int _Ch, FILE * _File); __declspec(dllimport) FILE * __cdecl _fsopen( const char * _Filename, const char * _Mode, int _ShFlag); #line 196 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" __declspec(dllimport) void __cdecl clearerr( FILE * _File); __declspec(dllimport) errno_t __cdecl clearerr_s( FILE * _File ); __declspec(dllimport) int __cdecl fclose( FILE * _File); __declspec(dllimport) int __cdecl _fcloseall(void); __declspec(dllimport) FILE * __cdecl _fdopen( int _FileHandle, const char * _Mode); #line 207 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" __declspec(dllimport) int __cdecl feof( FILE * _File); __declspec(dllimport) int __cdecl ferror( FILE * _File); __declspec(dllimport) int __cdecl fflush( FILE * _File); __declspec(dllimport) int __cdecl fgetc( FILE * _File); __declspec(dllimport) int __cdecl _fgetchar(void); __declspec(dllimport) int __cdecl fgetpos( FILE * _File , fpos_t * _Pos); __declspec(dllimport) char * __cdecl fgets( char * _Buf, int _MaxCount, FILE * _File); __declspec(dllimport) int __cdecl _fileno( FILE * _File); #line 221 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" #line 226 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" __declspec(dllimport) char * __cdecl _tempnam( const char * _DirName, const char * _FilePrefix); #line 232 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" __declspec(dllimport) int __cdecl _flushall(void); __declspec(dllimport) FILE * __cdecl fopen( const char * _Filename, const char * _Mode); __declspec(dllimport) errno_t __cdecl fopen_s( FILE ** _File, const char * _Filename, const char * _Mode); #line 238 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" __declspec(dllimport) int __cdecl fprintf( FILE * _File, const char * _Format, ...); __declspec(dllimport) int __cdecl fprintf_s( FILE * _File, const char * _Format, ...); __declspec(dllimport) int __cdecl fputc( int _Ch, FILE * _File); __declspec(dllimport) int __cdecl _fputchar( int _Ch); __declspec(dllimport) int __cdecl fputs( const char * _Str, FILE * _File); __declspec(dllimport) size_t __cdecl fread( void * _DstBuf, size_t _ElementSize, size_t _Count, FILE * _File); __declspec(dllimport) size_t __cdecl fread_s( void * _DstBuf, size_t _DstSize, size_t _ElementSize, size_t _Count, FILE * _File); __declspec(dllimport) FILE * __cdecl freopen( const char * _Filename, const char * _Mode, FILE * _File); __declspec(dllimport) errno_t __cdecl freopen_s( FILE ** _File, const char * _Filename, const char * _Mode, FILE * _OldFile); #line 249 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" __declspec(dllimport) int __cdecl fscanf( FILE * _File, const char * _Format, ...); __declspec(dllimport) int __cdecl _fscanf_l( FILE * _File, const char * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl fscanf_s( FILE * _File, const char * _Format, ...); #line 254 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" __declspec(dllimport) int __cdecl _fscanf_s_l( FILE * _File, const char * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl fsetpos( FILE * _File, const fpos_t * _Pos); __declspec(dllimport) int __cdecl fseek( FILE * _File, long _Offset, int _Origin); __declspec(dllimport) long __cdecl ftell( FILE * _File); __declspec(dllimport) int __cdecl _fseeki64( FILE * _File, __int64 _Offset, int _Origin); __declspec(dllimport) __int64 __cdecl _ftelli64( FILE * _File); __declspec(dllimport) size_t __cdecl fwrite( const void * _Str, size_t _Size, size_t _Count, FILE * _File); __declspec(dllimport) int __cdecl getc( FILE * _File); __declspec(dllimport) int __cdecl getchar(void); __declspec(dllimport) int __cdecl _getmaxstdio(void); __declspec(dllimport) char * __cdecl gets_s( char * _Buf, rsize_t _Size); #line 269 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" extern "C++" { template inline char * __cdecl gets_s( char (&_Buffer)[_Size]) { return gets_s(_Buffer, _Size); } } __declspec(dllimport) char * __cdecl gets( char *_Buffer); int __cdecl _getw( FILE * _File); __declspec(dllimport) int __cdecl _pclose( FILE * _File); __declspec(dllimport) FILE * __cdecl _popen( const char * _Command, const char * _Mode); __declspec(dllimport) int __cdecl printf( const char * _Format, ...); __declspec(dllimport) int __cdecl printf_s( const char * _Format, ...); __declspec(dllimport) int __cdecl putc( int _Ch, FILE * _File); __declspec(dllimport) int __cdecl putchar( int _Ch); __declspec(dllimport) int __cdecl puts( const char * _Str); __declspec(dllimport) int __cdecl _putw( int _Word, FILE * _File); __declspec(dllimport) int __cdecl remove( const char * _Filename); __declspec(dllimport) int __cdecl rename( const char * _OldFilename, const char * _NewFilename); __declspec(dllimport) int __cdecl _unlink( const char * _Filename); __declspec(dllimport) int __cdecl unlink( const char * _Filename); #line 292 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" #line 293 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" __declspec(dllimport) void __cdecl rewind( FILE * _File); __declspec(dllimport) int __cdecl _rmtmp(void); __declspec(dllimport) int __cdecl scanf( const char * _Format, ...); __declspec(dllimport) int __cdecl _scanf_l( const char * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl scanf_s( const char * _Format, ...); #line 300 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" __declspec(dllimport) int __cdecl _scanf_s_l( const char * _Format, _locale_t _Locale, ...); __declspec(dllimport) void __cdecl setbuf( FILE * _File, char * _Buffer); __declspec(dllimport) int __cdecl _setmaxstdio( int _Max); __declspec(dllimport) unsigned int __cdecl _set_output_format( unsigned int _Format); __declspec(dllimport) unsigned int __cdecl _get_output_format(void); __declspec(dllimport) int __cdecl setvbuf( FILE * _File, char * _Buf, int _Mode, size_t _Size); __declspec(dllimport) int __cdecl _snprintf_s( char * _DstBuf, size_t _DstSize, size_t _MaxCount, const char * _Format, ...); extern "C++" { __pragma(warning(push)); __pragma(warning(disable: 4793)); template inline int __cdecl _snprintf_s( char (&_Dest)[_Size], size_t _Size, const char * _Format, ...) { va_list _ArgList; ( _ArgList = (va_list)( &reinterpret_cast(_Format) ) + ( (sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1) ) ); return _vsnprintf_s(_Dest, _Size, _Size, _Format, _ArgList); } __pragma(warning(pop)); } __declspec(dllimport) int __cdecl sprintf_s( char * _DstBuf, size_t _DstSize, const char * _Format, ...); extern "C++" { __pragma(warning(push)); __pragma(warning(disable: 4793)); template inline int __cdecl sprintf_s( char (&_Dest)[_Size], const char * _Format, ...) { va_list _ArgList; ( _ArgList = (va_list)( &reinterpret_cast(_Format) ) + ( (sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1) ) ); return vsprintf_s(_Dest, _Size, _Format, _ArgList); } __pragma(warning(pop)); } __declspec(dllimport) int __cdecl _scprintf( const char * _Format, ...); __declspec(dllimport) int __cdecl sscanf( const char * _Src, const char * _Format, ...); __declspec(dllimport) int __cdecl _sscanf_l( const char * _Src, const char * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl sscanf_s( const char * _Src, const char * _Format, ...); #line 316 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" __declspec(dllimport) int __cdecl _sscanf_s_l( const char * _Src, const char * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _snscanf( const char * _Src, size_t _MaxCount, const char * _Format, ...); __declspec(dllimport) int __cdecl _snscanf_l( const char * _Src, size_t _MaxCount, const char * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _snscanf_s( const char * _Src, size_t _MaxCount, const char * _Format, ...); __declspec(dllimport) int __cdecl _snscanf_s_l( const char * _Src, size_t _MaxCount, const char * _Format, _locale_t _Locale, ...); __declspec(dllimport) FILE * __cdecl tmpfile(void); __declspec(dllimport) errno_t __cdecl tmpfile_s( FILE ** _File); __declspec(dllimport) errno_t __cdecl tmpnam_s( char * _Buf, rsize_t _Size); #line 326 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" extern "C++" { template inline errno_t __cdecl tmpnam_s( char (&_Buf)[_Size]) { return tmpnam_s(_Buf, _Size); } } __declspec(dllimport) char * __cdecl tmpnam( char *_Buffer); __declspec(dllimport) int __cdecl ungetc( int _Ch, FILE * _File); __declspec(dllimport) int __cdecl vfprintf( FILE * _File, const char * _Format, va_list _ArgList); __declspec(dllimport) int __cdecl vfprintf_s( FILE * _File, const char * _Format, va_list _ArgList); __declspec(dllimport) int __cdecl vprintf( const char * _Format, va_list _ArgList); __declspec(dllimport) int __cdecl vprintf_s( const char * _Format, va_list _ArgList); __declspec(dllimport) int __cdecl vsnprintf( char * _DstBuf, size_t _MaxCount, const char * _Format, va_list _ArgList); __declspec(dllimport) int __cdecl vsnprintf_s( char * _DstBuf, size_t _DstSize, size_t _MaxCount, const char * _Format, va_list _ArgList); __declspec(dllimport) int __cdecl _vsnprintf_s( char * _DstBuf, size_t _DstSize, size_t _MaxCount, const char * _Format, va_list _ArgList); extern "C++" { template inline int __cdecl _vsnprintf_s( char (&_Dest)[_Size], size_t _Size, const char * _Format, va_list _Args) { return _vsnprintf_s(_Dest, _Size, _Size, _Format, _Args); } } #pragma warning(push) #pragma warning(disable:4793) __declspec(dllimport) int __cdecl _snprintf( char *_Dest, size_t _Count, const char * _Format, ...); __declspec(dllimport) int __cdecl _vsnprintf( char *_Dest, size_t _Count, const char * _Format, va_list _Args); #pragma warning(pop) __declspec(dllimport) int __cdecl vsprintf_s( char * _DstBuf, size_t _Size, const char * _Format, va_list _ArgList); extern "C++" { template inline int __cdecl vsprintf_s( char (&_Dest)[_Size], const char * _Format, va_list _Args) { return vsprintf_s(_Dest, _Size, _Format, _Args); } } #pragma warning(push) #pragma warning(disable:4793) __declspec(dllimport) int __cdecl sprintf( char *_Dest, const char * _Format, ...); __declspec(dllimport) int __cdecl vsprintf( char *_Dest, const char * _Format, va_list _Args); #pragma warning(pop) __declspec(dllimport) int __cdecl _vscprintf( const char * _Format, va_list _ArgList); __declspec(dllimport) int __cdecl _snprintf_c( char * _DstBuf, size_t _MaxCount, const char * _Format, ...); __declspec(dllimport) int __cdecl _vsnprintf_c( char *_DstBuf, size_t _MaxCount, const char * _Format, va_list _ArgList); __declspec(dllimport) int __cdecl _fprintf_p( FILE * _File, const char * _Format, ...); __declspec(dllimport) int __cdecl _printf_p( const char * _Format, ...); __declspec(dllimport) int __cdecl _sprintf_p( char * _Dst, size_t _MaxCount, const char * _Format, ...); __declspec(dllimport) int __cdecl _vfprintf_p( FILE * _File, const char * _Format, va_list _ArgList); __declspec(dllimport) int __cdecl _vprintf_p( const char * _Format, va_list _ArgList); __declspec(dllimport) int __cdecl _vsprintf_p( char * _Dst, size_t _MaxCount, const char * _Format, va_list _ArgList); __declspec(dllimport) int __cdecl _scprintf_p( const char * _Format, ...); __declspec(dllimport) int __cdecl _vscprintf_p( const char * _Format, va_list _ArgList); __declspec(dllimport) int __cdecl _set_printf_count_output( int _Value); __declspec(dllimport) int __cdecl _get_printf_count_output(); __declspec(dllimport) int __cdecl _printf_l( const char * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _printf_p_l( const char * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _printf_s_l( const char * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _vprintf_l( const char * _Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _vprintf_p_l( const char * _Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _vprintf_s_l( const char * _Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _fprintf_l( FILE * _File, const char * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _fprintf_p_l( FILE * _File, const char * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _fprintf_s_l( FILE * _File, const char * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _vfprintf_l( FILE * _File, const char * _Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _vfprintf_p_l( FILE * _File, const char * _Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _vfprintf_s_l( FILE * _File, const char * _Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _sprintf_l( char * _DstBuf, const char * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _sprintf_p_l( char * _DstBuf, size_t _MaxCount, const char * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _sprintf_s_l( char * _DstBuf, size_t _DstSize, const char * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _vsprintf_l( char * _DstBuf, const char * _Format, _locale_t, va_list _ArgList); __declspec(dllimport) int __cdecl _vsprintf_p_l( char * _DstBuf, size_t _MaxCount, const char* _Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _vsprintf_s_l( char * _DstBuf, size_t _DstSize, const char * _Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _scprintf_l( const char * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _scprintf_p_l( const char * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _vscprintf_l( const char * _Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _vscprintf_p_l( const char * _Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _snprintf_l( char * _DstBuf, size_t _MaxCount, const char * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _snprintf_c_l( char * _DstBuf, size_t _MaxCount, const char * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _snprintf_s_l( char * _DstBuf, size_t _DstSize, size_t _MaxCount, const char * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _vsnprintf_l( char * _DstBuf, size_t _MaxCount, const char * _Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _vsnprintf_c_l( char * _DstBuf, size_t _MaxCount, const char *, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _vsnprintf_s_l( char * _DstBuf, size_t _DstSize, size_t _MaxCount, const char* _Format, _locale_t _Locale, va_list _ArgList); /* wide function prototypes, also declared in wchar.h */ #line 402 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" __declspec(dllimport) FILE * __cdecl _wfsopen( const wchar_t * _Filename, const wchar_t * _Mode, int _ShFlag); #line 408 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" __declspec(dllimport) wint_t __cdecl fgetwc( FILE * _File); __declspec(dllimport) wint_t __cdecl _fgetwchar(void); __declspec(dllimport) wint_t __cdecl fputwc( wchar_t _Ch, FILE * _File); __declspec(dllimport) wint_t __cdecl _fputwchar( wchar_t _Ch); __declspec(dllimport) wint_t __cdecl getwc( FILE * _File); __declspec(dllimport) wint_t __cdecl getwchar(void); __declspec(dllimport) wint_t __cdecl putwc( wchar_t _Ch, FILE * _File); __declspec(dllimport) wint_t __cdecl putwchar( wchar_t _Ch); __declspec(dllimport) wint_t __cdecl ungetwc( wint_t _Ch, FILE * _File); __declspec(dllimport) wchar_t * __cdecl fgetws( wchar_t * _Dst, int _SizeInWords, FILE * _File); __declspec(dllimport) int __cdecl fputws( const wchar_t * _Str, FILE * _File); __declspec(dllimport) wchar_t * __cdecl _getws_s( wchar_t * _Str, size_t _SizeInWords); extern "C++" { template inline wchar_t * __cdecl _getws_s( wchar_t (&_String)[_Size]) { return _getws_s(_String, _Size); } } __declspec(dllimport) wchar_t * __cdecl _getws( wchar_t *_String); __declspec(dllimport) int __cdecl _putws( const wchar_t * _Str); __declspec(dllimport) int __cdecl fwprintf( FILE * _File, const wchar_t * _Format, ...); __declspec(dllimport) int __cdecl fwprintf_s( FILE * _File, const wchar_t * _Format, ...); __declspec(dllimport) int __cdecl wprintf( const wchar_t * _Format, ...); __declspec(dllimport) int __cdecl wprintf_s( const wchar_t * _Format, ...); __declspec(dllimport) int __cdecl _scwprintf( const wchar_t * _Format, ...); __declspec(dllimport) int __cdecl vfwprintf( FILE * _File, const wchar_t * _Format, va_list _ArgList); __declspec(dllimport) int __cdecl vfwprintf_s( FILE * _File, const wchar_t * _Format, va_list _ArgList); __declspec(dllimport) int __cdecl vwprintf( const wchar_t * _Format, va_list _ArgList); __declspec(dllimport) int __cdecl vwprintf_s( const wchar_t * _Format, va_list _ArgList); __declspec(dllimport) int __cdecl swprintf_s( wchar_t * _Dst, size_t _SizeInWords, const wchar_t * _Format, ...); extern "C++" { __pragma(warning(push)); __pragma(warning(disable: 4793)); template inline int __cdecl swprintf_s( wchar_t (&_Dest)[_Size], const wchar_t * _Format, ...) { va_list _ArgList; ( _ArgList = (va_list)( &reinterpret_cast(_Format) ) + ( (sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1) ) ); return vswprintf_s(_Dest, _Size, _Format, _ArgList); } __pragma(warning(pop)); } __declspec(dllimport) int __cdecl vswprintf_s( wchar_t * _Dst, size_t _SizeInWords, const wchar_t * _Format, va_list _ArgList); extern "C++" { template inline int __cdecl vswprintf_s( wchar_t (&_Dest)[_Size], const wchar_t * _Format, va_list _Args) { return vswprintf_s(_Dest, _Size, _Format, _Args); } } __declspec(dllimport) int __cdecl _swprintf_c( wchar_t * _DstBuf, size_t _SizeInWords, const wchar_t * _Format, ...); __declspec(dllimport) int __cdecl _vswprintf_c( wchar_t * _DstBuf, size_t _SizeInWords, const wchar_t * _Format, va_list _ArgList); __declspec(dllimport) int __cdecl _snwprintf_s( wchar_t * _DstBuf, size_t _DstSizeInWords, size_t _MaxCount, const wchar_t * _Format, ...); extern "C++" { __pragma(warning(push)); __pragma(warning(disable: 4793)); template inline int __cdecl _snwprintf_s( wchar_t (&_Dest)[_Size], size_t _Count, const wchar_t * _Format, ...) { va_list _ArgList; ( _ArgList = (va_list)( &reinterpret_cast(_Format) ) + ( (sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1) ) ); return _vsnwprintf_s(_Dest, _Size, _Count, _Format, _ArgList); } __pragma(warning(pop)); } __declspec(dllimport) int __cdecl _vsnwprintf_s( wchar_t * _DstBuf, size_t _DstSizeInWords, size_t _MaxCount, const wchar_t * _Format, va_list _ArgList); extern "C++" { template inline int __cdecl _vsnwprintf_s( wchar_t (&_Dest)[_Size], size_t _Count, const wchar_t * _Format, va_list _Args) { return _vsnwprintf_s(_Dest, _Size, _Count, _Format, _Args); } } #pragma warning(push) #pragma warning(disable:4793) __declspec(dllimport) int __cdecl _snwprintf( wchar_t *_Dest, size_t _Count, const wchar_t * _Format, ...); __declspec(dllimport) int __cdecl _vsnwprintf( wchar_t *_Dest, size_t _Count, const wchar_t * _Format, va_list _Args); #pragma warning(pop) __declspec(dllimport) int __cdecl _fwprintf_p( FILE * _File, const wchar_t * _Format, ...); __declspec(dllimport) int __cdecl _wprintf_p( const wchar_t * _Format, ...); __declspec(dllimport) int __cdecl _vfwprintf_p( FILE * _File, const wchar_t * _Format, va_list _ArgList); __declspec(dllimport) int __cdecl _vwprintf_p( const wchar_t * _Format, va_list _ArgList); __declspec(dllimport) int __cdecl _swprintf_p( wchar_t * _DstBuf, size_t _MaxCount, const wchar_t * _Format, ...); __declspec(dllimport) int __cdecl _vswprintf_p( wchar_t * _DstBuf, size_t _MaxCount, const wchar_t * _Format, va_list _ArgList); __declspec(dllimport) int __cdecl _scwprintf_p( const wchar_t * _Format, ...); __declspec(dllimport) int __cdecl _vscwprintf_p( const wchar_t * _Format, va_list _ArgList); __declspec(dllimport) int __cdecl _wprintf_l( const wchar_t * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _wprintf_p_l( const wchar_t * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _wprintf_s_l( const wchar_t * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _vwprintf_l( const wchar_t * _Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _vwprintf_p_l( const wchar_t * _Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _vwprintf_s_l( const wchar_t * _Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _fwprintf_l( FILE * _File, const wchar_t * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _fwprintf_p_l( FILE * _File, const wchar_t * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _fwprintf_s_l( FILE * _File, const wchar_t * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _vfwprintf_l( FILE * _File, const wchar_t * _Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _vfwprintf_p_l( FILE * _File, const wchar_t * _Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _vfwprintf_s_l( FILE * _File, const wchar_t * _Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _swprintf_c_l( wchar_t * _DstBuf, size_t _MaxCount, const wchar_t * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _swprintf_p_l( wchar_t * _DstBuf, size_t _MaxCount, const wchar_t * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _swprintf_s_l( wchar_t * _DstBuf, size_t _DstSize, const wchar_t * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _vswprintf_c_l( wchar_t * _DstBuf, size_t _MaxCount, const wchar_t * _Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _vswprintf_p_l( wchar_t * _DstBuf, size_t _MaxCount, const wchar_t * _Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _vswprintf_s_l( wchar_t * _DstBuf, size_t _DstSize, const wchar_t * _Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _scwprintf_l( const wchar_t * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _scwprintf_p_l( const wchar_t * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _vscwprintf_p_l( const wchar_t * _Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _snwprintf_l( wchar_t * _DstBuf, size_t _MaxCount, const wchar_t * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _snwprintf_s_l( wchar_t * _DstBuf, size_t _DstSize, size_t _MaxCount, const wchar_t * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _vsnwprintf_l( wchar_t * _DstBuf, size_t _MaxCount, const wchar_t * _Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl _vsnwprintf_s_l( wchar_t * _DstBuf, size_t _DstSize, size_t _MaxCount, const wchar_t * _Format, _locale_t _Locale, va_list _ArgList); #line 502 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" /* we could end up with a double deprecation, disable warnings 4141 and 4996 */ #pragma warning(push) #pragma warning(disable:4141 4996 4793) __declspec(deprecated("swprintf has been changed to conform with the ISO C standard, adding an extra character count parameter. To use traditional Microsoft swprintf, set _CRT_NON_CONFORMING_SWPRINTFS.")) __declspec(dllimport) int __cdecl _swprintf( wchar_t *_Dest, const wchar_t * _Format, ...); __declspec(deprecated("swprintf has been changed to conform with the ISO C standard, adding an extra character count parameter. To use traditional Microsoft swprintf, set _CRT_NON_CONFORMING_SWPRINTFS.")) __declspec(dllimport) int __cdecl _vswprintf( wchar_t *_Dest, const wchar_t * _Format, va_list _Args); __declspec(deprecated("swprintf has been changed to conform with the ISO C standard, adding an extra character count parameter. To use traditional Microsoft swprintf, set _CRT_NON_CONFORMING_SWPRINTFS.")) __declspec(dllimport) int __cdecl __swprintf_l( wchar_t *_Dest, const wchar_t * _Format, _locale_t _Plocinfo, ...); __declspec(deprecated("swprintf has been changed to conform with the ISO C standard, adding an extra character count parameter. To use traditional Microsoft swprintf, set _CRT_NON_CONFORMING_SWPRINTFS.")) __declspec(dllimport) int __cdecl __vswprintf_l( wchar_t *_Dest, const wchar_t * _Format, _locale_t _Plocinfo, va_list _Args); #pragma warning(pop) #line 1 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\swprintf.inl" /*** *swprintf.inl - inline definitions for (v)swprintf * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file contains the function definitions for (v)swprintf * * [Public] * ****/ #pragma once #line 22 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\swprintf.inl" #line 33 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\swprintf.inl" #pragma warning( push ) #pragma warning( disable : 4793 4412 ) static __inline int swprintf(wchar_t * _String, size_t _Count, const wchar_t * _Format, ...) { va_list _Arglist; int _Ret; ( _Arglist = (va_list)( &reinterpret_cast(_Format) ) + ( (sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1) ) ); _Ret = _vswprintf_c_l(_String, _Count, _Format, 0, _Arglist); ( _Arglist = (va_list)0 ); return _Ret; } #pragma warning( pop ) #pragma warning( push ) #pragma warning( disable : 4412 ) static __inline int __cdecl vswprintf(wchar_t * _String, size_t _Count, const wchar_t * _Format, va_list _Ap) { return _vswprintf_c_l(_String, _Count, _Format, 0, _Ap); } #pragma warning( pop ) #line 57 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\swprintf.inl" #pragma warning( push ) #pragma warning( disable : 4793 4412 ) static __inline int _swprintf_l(wchar_t * _String, size_t _Count, const wchar_t * _Format, _locale_t _Plocinfo, ...) { va_list _Arglist; int _Ret; ( _Arglist = (va_list)( &reinterpret_cast(_Plocinfo) ) + ( (sizeof(_Plocinfo) + sizeof(int) - 1) & ~(sizeof(int) - 1) ) ); _Ret = _vswprintf_c_l(_String, _Count, _Format, _Plocinfo, _Arglist); ( _Arglist = (va_list)0 ); return _Ret; } #pragma warning( pop ) #pragma warning( push ) #pragma warning( disable : 4412 ) static __inline int __cdecl _vswprintf_l(wchar_t * _String, size_t _Count, const wchar_t * _Format, _locale_t _Plocinfo, va_list _Ap) { return _vswprintf_c_l(_String, _Count, _Format, _Plocinfo, _Ap); } #pragma warning( pop ) #pragma warning( push ) #pragma warning( disable : 4996 ) #pragma warning( push ) #pragma warning( disable : 4793 4141 ) extern "C++" __declspec(deprecated("swprintf has been changed to conform with the ISO C standard, adding an extra character count parameter. To use traditional Microsoft swprintf, set _CRT_NON_CONFORMING_SWPRINTFS.")) __inline int swprintf( wchar_t * _String, const wchar_t * _Format, ...) { va_list _Arglist; ( _Arglist = (va_list)( &reinterpret_cast(_Format) ) + ( (sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1) ) ); int _Ret = _vswprintf(_String, _Format, _Arglist); ( _Arglist = (va_list)0 ); return _Ret; } #pragma warning( pop ) #pragma warning( push ) #pragma warning( disable : 4141 ) extern "C++" __declspec(deprecated("swprintf has been changed to conform with the ISO C standard, adding an extra character count parameter. To use traditional Microsoft swprintf, set _CRT_NON_CONFORMING_SWPRINTFS.")) __inline int __cdecl vswprintf( wchar_t * _String, const wchar_t * _Format, va_list _Ap) { return _vswprintf(_String, _Format, _Ap); } #pragma warning( pop ) #pragma warning( push ) #pragma warning( disable : 4793 4141 ) extern "C++" __declspec(deprecated("swprintf has been changed to conform with the ISO C standard, adding an extra character count parameter. To use traditional Microsoft swprintf, set _CRT_NON_CONFORMING_SWPRINTFS.")) __inline int _swprintf_l( wchar_t * _String, const wchar_t * _Format, _locale_t _Plocinfo, ...) { va_list _Arglist; ( _Arglist = (va_list)( &reinterpret_cast(_Plocinfo) ) + ( (sizeof(_Plocinfo) + sizeof(int) - 1) & ~(sizeof(int) - 1) ) ); int _Ret = __vswprintf_l(_String, _Format, _Plocinfo, _Arglist); ( _Arglist = (va_list)0 ); return _Ret; } #pragma warning( pop ) #pragma warning( push ) #pragma warning( disable : 4141 ) extern "C++" __declspec(deprecated("swprintf has been changed to conform with the ISO C standard, adding an extra character count parameter. To use traditional Microsoft swprintf, set _CRT_NON_CONFORMING_SWPRINTFS.")) __inline int __cdecl _vswprintf_l( wchar_t * _String, const wchar_t * _Format, _locale_t _Plocinfo, va_list _Ap) { return __vswprintf_l(_String, _Format, _Plocinfo, _Ap); } #pragma warning( pop ) #pragma warning( pop ) #line 126 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\swprintf.inl" #line 128 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\swprintf.inl" #line 129 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\swprintf.inl" #line 512 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" #line 513 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" #line 527 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" __declspec(dllimport) wchar_t * __cdecl _wtempnam( const wchar_t * _Directory, const wchar_t * _FilePrefix); #line 533 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" __declspec(dllimport) int __cdecl _vscwprintf( const wchar_t * _Format, va_list _ArgList); __declspec(dllimport) int __cdecl _vscwprintf_l( const wchar_t * _Format, _locale_t _Locale, va_list _ArgList); __declspec(dllimport) int __cdecl fwscanf( FILE * _File, const wchar_t * _Format, ...); __declspec(dllimport) int __cdecl _fwscanf_l( FILE * _File, const wchar_t * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl fwscanf_s( FILE * _File, const wchar_t * _Format, ...); #line 541 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" __declspec(dllimport) int __cdecl _fwscanf_s_l( FILE * _File, const wchar_t * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl swscanf( const wchar_t * _Src, const wchar_t * _Format, ...); __declspec(dllimport) int __cdecl _swscanf_l( const wchar_t * _Src, const wchar_t * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl swscanf_s( const wchar_t *_Src, const wchar_t * _Format, ...); #line 547 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" __declspec(dllimport) int __cdecl _swscanf_s_l( const wchar_t * _Src, const wchar_t * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _snwscanf( const wchar_t * _Src, size_t _MaxCount, const wchar_t * _Format, ...); __declspec(dllimport) int __cdecl _snwscanf_l( const wchar_t * _Src, size_t _MaxCount, const wchar_t * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl _snwscanf_s( const wchar_t * _Src, size_t _MaxCount, const wchar_t * _Format, ...); __declspec(dllimport) int __cdecl _snwscanf_s_l( const wchar_t * _Src, size_t _MaxCount, const wchar_t * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl wscanf( const wchar_t * _Format, ...); __declspec(dllimport) int __cdecl _wscanf_l( const wchar_t * _Format, _locale_t _Locale, ...); __declspec(dllimport) int __cdecl wscanf_s( const wchar_t * _Format, ...); #line 557 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" __declspec(dllimport) int __cdecl _wscanf_s_l( const wchar_t * _Format, _locale_t _Locale, ...); __declspec(dllimport) FILE * __cdecl _wfdopen( int _FileHandle , const wchar_t * _Mode); __declspec(dllimport) FILE * __cdecl _wfopen( const wchar_t * _Filename, const wchar_t * _Mode); __declspec(dllimport) errno_t __cdecl _wfopen_s( FILE ** _File, const wchar_t * _Filename, const wchar_t * _Mode); __declspec(dllimport) FILE * __cdecl _wfreopen( const wchar_t * _Filename, const wchar_t * _Mode, FILE * _OldFile); __declspec(dllimport) errno_t __cdecl _wfreopen_s( FILE ** _File, const wchar_t * _Filename, const wchar_t * _Mode, FILE * _OldFile); __declspec(dllimport) FILE * __cdecl _wpopen( const wchar_t *_Command, const wchar_t * _Mode); __declspec(dllimport) int __cdecl _wremove( const wchar_t * _Filename); __declspec(dllimport) errno_t __cdecl _wtmpnam_s( wchar_t * _DstBuf, size_t _SizeInWords); extern "C++" { template inline errno_t __cdecl _wtmpnam_s( wchar_t (&_Buffer)[_Size]) { return _wtmpnam_s(_Buffer, _Size); } } __declspec(dllimport) wchar_t * __cdecl _wtmpnam( wchar_t *_Buffer); __declspec(dllimport) wint_t __cdecl _fgetwc_nolock( FILE * _File); __declspec(dllimport) wint_t __cdecl _fputwc_nolock( wchar_t _Ch, FILE * _File); __declspec(dllimport) wint_t __cdecl _ungetwc_nolock( wint_t _Ch, FILE * _File); #line 585 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" inline wint_t __cdecl getwchar() {return (fgetwc((&__iob_func()[0]))); } /* stdin */ inline wint_t __cdecl putwchar(wchar_t _C) {return (fputwc(_C, (&__iob_func()[1]))); } /* stdout */ #line 590 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" #line 601 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" #line 604 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" #line 607 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" /* Macro definitions */ #line 623 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" __declspec(dllimport) void __cdecl _lock_file( FILE * _File); __declspec(dllimport) void __cdecl _unlock_file( FILE * _File); #line 641 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" __declspec(dllimport) int __cdecl _fclose_nolock( FILE * _File); __declspec(dllimport) int __cdecl _fflush_nolock( FILE * _File); __declspec(dllimport) size_t __cdecl _fread_nolock( void * _DstBuf, size_t _ElementSize, size_t _Count, FILE * _File); __declspec(dllimport) size_t __cdecl _fread_nolock_s( void * _DstBuf, size_t _DstSize, size_t _ElementSize, size_t _Count, FILE * _File); __declspec(dllimport) int __cdecl _fseek_nolock( FILE * _File, long _Offset, int _Origin); __declspec(dllimport) long __cdecl _ftell_nolock( FILE * _File); __declspec(dllimport) int __cdecl _fseeki64_nolock( FILE * _File, __int64 _Offset, int _Origin); __declspec(dllimport) __int64 __cdecl _ftelli64_nolock( FILE * _File); __declspec(dllimport) size_t __cdecl _fwrite_nolock( const void * _DstBuf, size_t _Size, size_t _Count, FILE * _File); __declspec(dllimport) int __cdecl _ungetc_nolock( int _Ch, FILE * _File); #line 666 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" /* Non-ANSI names for compatibility */ #line 678 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" __declspec(dllimport) char * __cdecl tempnam( const char * _Directory, const char * _FilePrefix); #line 684 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" __declspec(dllimport) int __cdecl fcloseall(void); __declspec(dllimport) FILE * __cdecl fdopen( int _FileHandle, const char * _Format); __declspec(dllimport) int __cdecl fgetchar(void); __declspec(dllimport) int __cdecl fileno( FILE * _File); __declspec(dllimport) int __cdecl flushall(void); __declspec(dllimport) int __cdecl fputchar( int _Ch); __declspec(dllimport) int __cdecl getw( FILE * _File); __declspec(dllimport) int __cdecl putw( int _Ch, FILE * _File); __declspec(dllimport) int __cdecl rmtmp(void); #line 696 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" } #line 700 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" #pragma pack(pop) #line 704 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" #line 706 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdio.h" #line 60 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prprf.h" #line 1 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdarg.h" /*** *stdarg.h - defines ANSI-style macros for variable argument functions * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file defines ANSI-style macros for accessing arguments * of functions which take a variable number of arguments. * [ANSI] * * [Public] * ****/ #pragma once #line 18 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdarg.h" #line 25 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdarg.h" #line 34 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\stdarg.h" #line 61 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prprf.h" extern "C" { /* ** sprintf into a fixed size buffer. Guarantees that a NUL is at the end ** of the buffer. Returns the length of the written output, NOT including ** the NUL, or (PRUint32)-1 if an error occurs. */ __declspec(dllimport) PRUint32 PR_snprintf(char *out, PRUint32 outlen, const char *fmt, ...); /* ** sprintf into a PR_MALLOC'd buffer. Return a pointer to the malloc'd ** buffer on success, NULL on failure. Call "PR_smprintf_free" to release ** the memory returned. */ __declspec(dllimport) char* PR_smprintf(const char *fmt, ...); /* ** Free the memory allocated, for the caller, by PR_smprintf */ __declspec(dllimport) void PR_smprintf_free(char *mem); /* ** "append" sprintf into a PR_MALLOC'd buffer. "last" is the last value of ** the PR_MALLOC'd buffer. sprintf will append data to the end of last, ** growing it as necessary using realloc. If last is NULL, PR_sprintf_append ** will allocate the initial string. The return value is the new value of ** last for subsequent calls, or NULL if there is a malloc failure. */ __declspec(dllimport) char* PR_sprintf_append(char *last, const char *fmt, ...); /* ** sprintf into a function. The function "f" is called with a string to ** place into the output. "arg" is an opaque pointer used by the stuff ** function to hold any state needed to do the storage of the output ** data. The return value is a count of the number of characters fed to ** the stuff function, or (PRUint32)-1 if an error occurs. */ typedef PRIntn (*PRStuffFunc)(void *arg, const char *s, PRUint32 slen); __declspec(dllimport) PRUint32 PR_sxprintf(PRStuffFunc f, void *arg, const char *fmt, ...); /* ** fprintf to a PRFileDesc */ __declspec(dllimport) PRUint32 PR_fprintf(struct PRFileDesc* fd, const char *fmt, ...); /* ** va_list forms of the above. */ __declspec(dllimport) PRUint32 PR_vsnprintf(char *out, PRUint32 outlen, const char *fmt, va_list ap); __declspec(dllimport) char* PR_vsmprintf(const char *fmt, va_list ap); __declspec(dllimport) char* PR_vsprintf_append(char *last, const char *fmt, va_list ap); __declspec(dllimport) PRUint32 PR_vsxprintf(PRStuffFunc f, void *arg, const char *fmt, va_list ap); __declspec(dllimport) PRUint32 PR_vfprintf(struct PRFileDesc* fd, const char *fmt, va_list ap); /* *************************************************************************** ** FUNCTION: PR_sscanf ** DESCRIPTION: ** PR_sscanf() scans the input character string, performs data ** conversions, and stores the converted values in the data objects ** pointed to by its arguments according to the format control ** string. ** ** PR_sscanf() behaves the same way as the sscanf() function in the ** Standard C Library (stdio.h), with the following exceptions: ** - PR_sscanf() handles the NSPR integer and floating point types, ** such as PRInt16, PRInt32, PRInt64, and PRFloat64, whereas ** sscanf() handles the standard C types like short, int, long, ** and double. ** - PR_sscanf() has no multibyte character support, while sscanf() ** does. ** INPUTS: ** const char *buf ** a character string holding the input to scan ** const char *fmt ** the format control string for the conversions ** ... ** variable number of arguments, each of them is a pointer to ** a data object in which the converted value will be stored ** OUTPUTS: none ** RETURNS: PRInt32 ** The number of values converted and stored. ** RESTRICTIONS: ** Multibyte characters in 'buf' or 'fmt' are not allowed. *************************************************************************** */ __declspec(dllimport) PRInt32 PR_sscanf(const char *buf, const char *fmt, ...); } #line 155 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prprf.h" #line 54 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsDebug.h" #line 55 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsDebug.h" /** * Abort the execution of the program if the expression evaluates to * false. * * There is no status value returned from the macro. * * Note that the non-debug version of this macro does not * evaluate the expression argument. Hence side effect statements * as arguments to the macro will yield improper execution in a * non-debug build. For example: * * NS_ABORT_IF_FALSE(0 == foo++, "yikes foo should be zero"); * * Note also that the non-debug version of this macro does not * evaluate the message argument. */ /** * Warn if a given condition is false. * * Program execution continues past the usage of this macro. * * Note also that the non-debug version of this macro does not * evaluate the message argument. */ /** * Test a precondition for truth. If the expression is not true then * trigger a program failure. */ /** * Test an assertion for truth. If the expression is not true then * trigger a program failure. */ /** * Test a post-condition for truth. If the expression is not true then * trigger a program failure. */ /** * This macros triggers a program failure if executed. It indicates that * an attempt was made to execute some unimplemented functionality. */ /** * This macros triggers a program failure if executed. It indicates that * an attempt was made to execute some unimplemented functionality. */ /** * Log an error message. */ /** * Log a warning message. */ /** * Trigger an abort */ /** * Cause a break */ #line 186 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsDebug.h" /****************************************************************************** ** Macros for static assertions. These are used by the sixgill tool. ** When the tool is not running these macros are no-ops. ******************************************************************************/ /* Avoid name collision if included with other headers defining annotations. */ #line 241 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsDebug.h" #line 245 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsDebug.h" /****************************************************************************** ** Macros for terminating execution when an unrecoverable condition is ** reached. These need to be compiled regardless of the NS_DEBUG flag. ******************************************************************************/ /** * Terminate execution immediately, and if possible on the current * platform, in such a way that execution can't be continued by other * code (e.g., by intercepting a signal). */ /* Macros for checking the trueness of an expression passed in within an * interface implementation. These need to be compiled regardless of the */ /* NS_DEBUG flag ******************************************************************************/ /****************************************************************************** ** Macros for checking results ******************************************************************************/ #line 310 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsDebug.h" /****************************************************************************** ** Macros for checking state and arguments upon entering interface boundaries ******************************************************************************/ /*****************************************************************************/ #line 356 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsDebug.h" /* When compiling the XPCOM Glue on Windows, we pretend that it's going to * be linked with a static CRT (-MT) even when it's not. This means that we * cannot link to data exports from the CRT, only function exports. So, * instead of referencing "stderr" directly, use fdopen. */ extern "C" { void printf_stderr(const char *fmt, ...); } #line 370 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsDebug.h" #line 45 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxRect.h" namespace mozilla { namespace css { enum Corner { // this order is important! eCornerTopLeft = 0, eCornerTopRight = 1, eCornerBottomRight = 2, eCornerBottomLeft = 3, eNumCorners = 4 }; } } static inline mozilla::css::Corner operator++(mozilla::css::Corner& corner, int) { do { if (!(corner >= mozilla::css::eCornerTopLeft && corner < mozilla::css::eNumCorners)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Out of range corner", "corner >= NS_CORNER_TOP_LEFT && corner < NS_NUM_CORNERS", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxRect.h", 71); } } while (0); #line 72 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxRect.h" corner = mozilla::css::Corner(corner + 1); return corner; } struct __declspec(dllexport) gfxRect { // pt? point? gfxPoint pos; gfxSize size; gfxRect() {} gfxRect(const gfxRect& s) : pos(s.pos), size(s.size) {} gfxRect(const gfxPoint& _pos, const gfxSize& _size) : pos(_pos), size(_size) {} gfxRect(gfxFloat _x, gfxFloat _y, gfxFloat _width, gfxFloat _height) : pos(_x, _y), size(_width, _height) {} int operator==(const gfxRect& s) const { return (pos == s.pos) && (size == s.size); } int operator!=(const gfxRect& s) const { return (pos != s.pos) || (size != s.size); } const gfxRect& MoveBy(const gfxPoint& aPt) { pos = pos + aPt; return *this; } gfxRect operator+(const gfxPoint& aPt) const { return gfxRect(pos + aPt, size); } gfxRect operator-(const gfxPoint& aPt) const { return gfxRect(pos - aPt, size); } gfxFloat Width() const { return size.width; } gfxFloat Height() const { return size.height; } gfxFloat X() const { return pos.x; } gfxFloat Y() const { return pos.y; } gfxFloat XMost() const { return pos.x + size.width; } gfxFloat YMost() const { return pos.y + size.height; } PRBool IsEmpty() const { return size.width <= 0 || size.height <= 0; } gfxRect Intersect(const gfxRect& aRect) const; gfxRect Union(const gfxRect& aRect) const; PRBool Contains(const gfxRect& aRect) const; PRBool Contains(const gfxPoint& aPoint) const; // XXX figure out what methods (intersect, union, etc) we use and add them. gfxPoint TopLeft() { return pos; } gfxPoint BottomRight() { return gfxPoint(XMost(), YMost()); } void Inset(gfxFloat k) { pos.x += k; pos.y += k; size.width = ((0.0)>(size.width - k * 2.0)?(0.0):(size.width - k * 2.0)); size.height = ((0.0)>(size.height - k * 2.0)?(0.0):(size.height - k * 2.0)); } void Inset(gfxFloat top, gfxFloat right, gfxFloat bottom, gfxFloat left) { pos.x += left; pos.y += top; size.width = ((0.0)>(size.width - (right+left))?(0.0):(size.width - (right+left))); size.height = ((0.0)>(size.height - (bottom+top))?(0.0):(size.height - (bottom+top))); } void Inset(const gfxFloat *sides) { Inset(sides[0], sides[1], sides[2], sides[3]); } void Inset(const gfxIntSize& aSize) { Inset(aSize.height, aSize.width, aSize.height, aSize.width); } void Outset(gfxFloat k) { pos.x -= k; pos.y -= k; size.width = ((0.0)>(size.width + k * 2.0)?(0.0):(size.width + k * 2.0)); size.height = ((0.0)>(size.height + k * 2.0)?(0.0):(size.height + k * 2.0)); } void Outset(gfxFloat top, gfxFloat right, gfxFloat bottom, gfxFloat left) { pos.x -= left; pos.y -= top; size.width = ((0.0)>(size.width + (right+left))?(0.0):(size.width + (right+left))); size.height = ((0.0)>(size.height + (bottom+top))?(0.0):(size.height + (bottom+top))); } void Outset(const gfxFloat *sides) { Outset(sides[0], sides[1], sides[2], sides[3]); } void Outset(const gfxIntSize& aSize) { Outset(aSize.height, aSize.width, aSize.height, aSize.width); } // Round the rectangle edges to integer coordinates, such that the rounded // rectangle has the same set of pixel centers as the original rectangle. // Edges at offset 0.5 round up. // Suitable for most places where integral device coordinates // are needed, but note that any translation should be applied first to // avoid pixel rounding errors. // Note that this is *not* rounding to nearest integer if the values are negative. // They are always rounding as floor(n + 0.5). // See https://bugzilla.mozilla.org/show_bug.cgi?id=410748#c14 // If you need similar method which is using NS_round(), you should create // new |RoundAwayFromZero()| method. void Round(); // Snap the rectangle edges to integer coordinates, such that the // original rectangle contains the resulting rectangle. void RoundIn(); // Snap the rectangle edges to integer coordinates, such that the // resulting rectangle contains the original rectangle. void RoundOut(); // grabbing specific points gfxPoint TopLeft() const { return gfxPoint(pos); } gfxPoint TopRight() const { return pos + gfxSize(size.width, 0.0); } gfxPoint BottomLeft() const { return pos + gfxSize(0.0, size.height); } gfxPoint BottomRight() const { return pos + size; } gfxPoint AtCorner(mozilla::css::Corner corner) const { switch (corner) { case mozilla::css::eCornerTopLeft: return TopLeft(); case mozilla::css::eCornerTopRight: return TopRight(); case mozilla::css::eCornerBottomRight: return BottomRight(); case mozilla::css::eCornerBottomLeft: return BottomLeft(); default: NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Invalid corner!", "Error", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxRect.h", 200); break; } return gfxPoint(0.0, 0.0); } gfxPoint CCWCorner(mozilla::css::Side side) const { switch (side) { case mozilla::css::eSideTop: return TopLeft(); case mozilla::css::eSideRight: return TopRight(); case mozilla::css::eSideBottom: return BottomRight(); case mozilla::css::eSideLeft: return BottomLeft(); default: NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Invalid side!", "Error", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxRect.h", 213); break; } return gfxPoint(0.0, 0.0); } gfxPoint CWCorner(mozilla::css::Side side) const { switch (side) { case mozilla::css::eSideTop: return TopRight(); case mozilla::css::eSideRight: return BottomRight(); case mozilla::css::eSideBottom: return BottomLeft(); case mozilla::css::eSideLeft: return TopLeft(); default: NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Invalid side!", "Error", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxRect.h", 226); break; } return gfxPoint(0.0, 0.0); } /* Conditions this border to Cairo's max coordinate space. * The caller can check IsEmpty() after Condition() -- if it's TRUE, * the caller can possibly avoid doing any extra rendering. */ void Condition(); void Scale(gfxFloat k) { do { if (!(k >= 0.0)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Invalid (negative) scale factor", "k >= 0.0", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxRect.h", 239); } } while (0); pos.x *= k; pos.y *= k; size.width *= k; size.height *= k; } void Scale(gfxFloat sx, gfxFloat sy) { do { if (!(sx >= 0.0)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Invalid (negative) scale factor", "sx >= 0.0", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxRect.h", 247); } } while (0); do { if (!(sy >= 0.0)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Invalid (negative) scale factor", "sy >= 0.0", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxRect.h", 248); } } while (0); pos.x *= sx; pos.y *= sy; size.width *= sx; size.height *= sy; } void ScaleInverse(gfxFloat k) { do { if (!(k > 0.0)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Invalid (negative) scale factor", "k > 0.0", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxRect.h", 256); } } while (0); pos.x /= k; pos.y /= k; size.width /= k; size.height /= k; } }; struct __declspec(dllexport) gfxCornerSizes { gfxSize sizes[mozilla::css::eNumCorners]; gfxCornerSizes () { } gfxCornerSizes (gfxFloat v) { for (int i = 0; i < mozilla::css::eNumCorners; i++) sizes[i].SizeTo(v, v); } gfxCornerSizes (gfxFloat tl, gfxFloat tr, gfxFloat br, gfxFloat bl) { sizes[mozilla::css::eCornerTopLeft].SizeTo(tl, tl); sizes[mozilla::css::eCornerTopRight].SizeTo(tr, tr); sizes[mozilla::css::eCornerBottomRight].SizeTo(br, br); sizes[mozilla::css::eCornerBottomLeft].SizeTo(bl, bl); } gfxCornerSizes (const gfxSize& tl, const gfxSize& tr, const gfxSize& br, const gfxSize& bl) { sizes[mozilla::css::eCornerTopLeft] = tl; sizes[mozilla::css::eCornerTopRight] = tr; sizes[mozilla::css::eCornerBottomRight] = br; sizes[mozilla::css::eCornerBottomLeft] = bl; } const gfxSize& operator[] (mozilla::css::Corner index) const { return sizes[index]; } gfxSize& operator[] (mozilla::css::Corner index) { return sizes[index]; } const gfxSize TopLeft() const { return sizes[mozilla::css::eCornerTopLeft]; } gfxSize& TopLeft() { return sizes[mozilla::css::eCornerTopLeft]; } const gfxSize TopRight() const { return sizes[mozilla::css::eCornerTopRight]; } gfxSize& TopRight() { return sizes[mozilla::css::eCornerTopRight]; } const gfxSize BottomLeft() const { return sizes[mozilla::css::eCornerBottomLeft]; } gfxSize& BottomLeft() { return sizes[mozilla::css::eCornerBottomLeft]; } const gfxSize BottomRight() const { return sizes[mozilla::css::eCornerBottomRight]; } gfxSize& BottomRight() { return sizes[mozilla::css::eCornerBottomRight]; } }; #line 309 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxRect.h" #line 43 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxASurface.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAutoPtr.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Scott Collins (original author of nsCOMPtr) * L. David Baron * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ // Wrapping includes can speed up compiles (see "Large Scale C++ Software Design") // For |already_AddRefed|, |NSCAP_Zero|, // |NSCAP_DONT_PROVIDE_NONCONST_OPEQ|, // |NSCAP_FEATURE_INLINE_STARTASSIGNMENT| #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCOMPtr.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Scott Collins (original author) * L. David Baron * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* Having problems? See the User Manual at: http://www.mozilla.org/projects/xpcom/nsCOMPtr.html nsCOMPtr better than a raw pointer for owning objects -- scc */ // Wrapping includes can speed up compiles (see "Large Scale C++ Software Design") #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupportsUtils.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Pierre Phaneuf * Scott Collins * Dan Mosedale * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupportsBase.h" /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is XPCOM. * * The Initial Developer of the Original Code is Netscape Communications Corp. * Portions created by the Initial Developer are Copyright (C) 2001 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsID.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /** * A "unique identifier". This is modeled after OSF DCE UUIDs. */ struct nsID { /** * @name Identifier values */ //@{ PRUint32 m0; PRUint16 m1; PRUint16 m2; PRUint8 m3[8]; //@} /** * @name Methods */ //@{ /** * Equivalency method. Compares this nsID with another. * @return PR_TRUE if they are the same, PR_FALSE if not. */ inline PRBool Equals(const nsID& other) const { // One would think that this could be done faster with a really // efficient implementation of memcmp(), but evidently no // memcmp()'s out there are better than this code. // // See bug http://bugzilla.mozilla.org/show_bug.cgi?id=164580 for // details. return ((((PRUint32*) &m0)[0] == ((PRUint32*) &other.m0)[0]) && (((PRUint32*) &m0)[1] == ((PRUint32*) &other.m0)[1]) && (((PRUint32*) &m0)[2] == ((PRUint32*) &other.m0)[2]) && (((PRUint32*) &m0)[3] == ((PRUint32*) &other.m0)[3])); } /** * nsID Parsing method. Turns a {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} * string into an nsID */ PRBool Parse(const char *aIDStr); /** * nsID string encoder. Returns an allocated string in * {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} format. Caller should free string. * YOU SHOULD ONLY USE THIS IF YOU CANNOT USE ToProvidedString() BELOW. */ char* ToString() const; /** * nsID string encoder. Builds a string in * {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} format, into a char[NSID_LENGTH] * buffer provided by the caller (for instance, on the stack). */ void ToProvidedString(char (&dest)[39]) const; #line 112 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsID.h" //@} }; /* * Class IDs */ typedef nsID nsCID; // Define an CID /** * An "interface id" which can be used to uniquely identify a given * interface. */ typedef nsID nsIID; /** * A macro shorthand for const nsIID& */ /** * Define an IID * obsolete - do not use this macro */ /** * A macro to build the static const IID accessor method. The Dummy * template parameter only exists so that the kIID symbol will be linked * properly (weak symbol on linux, gnu_linkonce on mac, multiple-definitions * merged on windows). Dummy should always be instantiated as "int". */ /** * A macro to build the static const CID accessor method */ #line 182 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsID.h" #line 45 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupportsBase.h" #line 46 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupportsBase.h" /*@{*/ /** * IID for the nsISupports interface * {00000000-0000-0000-c000-000000000046} * * To maintain binary compatibility with COM's IUnknown, we define the IID * of nsISupports to be the same as that of COM's IUnknown. */ /** * Basic component object model interface. Objects which implement * this interface support runtime interface discovery (QueryInterface) * and a reference counted memory model (AddRef/Release). This is * modelled after the win32 IUnknown API. */ class __declspec(novtable) nsISupports { public: template struct COMTypeInfo { static const nsIID kIID ; }; static const nsIID& GetIID() {return COMTypeInfo::kIID;} /** * @name Methods */ //@{ /** * A run time mechanism for interface discovery. * @param aIID [in] A requested interface IID * @param aInstancePtr [out] A pointer to an interface pointer to * receive the result. * @return NS_OK if the interface is supported by the associated * instance, NS_NOINTERFACE if it is not. * * aInstancePtr must not be null. */ virtual nsresult __stdcall QueryInterface(const nsIID& aIID, void** aInstancePtr) = 0; /** * Increases the reference count for this interface. * The associated instance will not be deleted unless * the reference count is returned to zero. * * @return The resulting reference count. */ virtual nsrefcnt __stdcall AddRef(void) = 0; /** * Decreases the reference count for this interface. * Generally, if the reference count returns to zero, * the associated instance is deleted. * * @return The resulting reference count. */ virtual nsrefcnt __stdcall Release(void) = 0; //@} }; template const nsIID nsISupports::COMTypeInfo::kIID = { 0x00000000, 0x0000, 0x0000, {0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46} }; /*@}*/ #line 113 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupportsBase.h" #line 50 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupportsUtils.h" #line 51 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupportsUtils.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupportsImpl.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is XPCOM. * * The Initial Developer of the Original Code is Netscape Communications Corp. * Portions created by the Initial Developer are Copyright (C) 2001 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prthread.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* ** API for NSPR threads. On some architectures (Mac OS Classic ** notably) pre-emptibility is not guaranteed. Hard priority scheduling ** is not guaranteed, so programming using priority based synchronization ** is a no-no. ** ** NSPR threads are scheduled based loosely on their client set priority. ** In general, a thread of a higher priority has a statistically better ** chance of running relative to threads of lower priority. However, ** NSPR uses multiple strategies to provide execution vehicles for thread ** abstraction of various host platforms. As it turns out, there is little ** NSPR can do to affect the scheduling attributes of "GLOBAL" threads. ** However, a semblance of GLOBAL threads is used to implement "LOCAL" ** threads. An arbitrary number of such LOCAL threads can be assigned to ** a single GLOBAL thread. ** ** For scheduling, NSPR will attempt to run the highest priority LOCAL ** thread associated with a given GLOBAL thread. It is further assumed ** that the host OS will apply some form of "fair" scheduling on the ** GLOBAL threads. ** ** Threads have a "system flag" which when set indicates the thread ** doesn't count for determining when the process should exit (the ** process exits when the last user thread exits). ** ** Threads also have a "scope flag" which controls whether the threads ** are scheduled in the local scope or scheduled by the OS globally. This ** indicates whether a thread is permanently bound to a native OS thread. ** An unbound thread competes for scheduling resources in the same process. ** ** Another flag is "state flag" which control whether the thread is joinable. ** It allows other threads to wait for the created thread to reach completion. ** ** Threads can have "per-thread-data" attached to them. Each thread has a ** per-thread error number and error string which are updated when NSPR ** operations fail. */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* ** File: prtypes.h ** Description: Definitions of NSPR's basic types ** ** Prototypes and macros used to make up for deficiencies that we have found ** in ANSI environments. ** ** Since we do not wrap and all the other standard headers, authors ** of portable code will not know in general that they need these definitions. ** Instead of requiring these authors to find the dependent uses in their code ** and take the following steps only in those C files, we take steps once here ** for all C files. **/ #line 79 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prthread.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prinrval.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* ** File: prinrval.h ** Description: API to interval timing functions of NSPR. ** ** ** NSPR provides interval times that are independent of network time ** of day values. Interval times are (in theory) accurate regardless ** of host processing requirements and also very cheap to acquire. It ** is expected that getting an interval time while in a synchronized ** function (holding one's lock). **/ #line 177 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prinrval.h" /* prinrval.h */ #line 80 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prthread.h" extern "C" { typedef struct PRThread PRThread; typedef struct PRThreadStack PRThreadStack; typedef enum PRThreadType { PR_USER_THREAD, PR_SYSTEM_THREAD } PRThreadType; typedef enum PRThreadScope { PR_LOCAL_THREAD, PR_GLOBAL_THREAD, PR_GLOBAL_BOUND_THREAD } PRThreadScope; typedef enum PRThreadState { PR_JOINABLE_THREAD, PR_UNJOINABLE_THREAD } PRThreadState; typedef enum PRThreadPriority { PR_PRIORITY_FIRST = 0, /* just a placeholder */ PR_PRIORITY_LOW = 0, /* the lowest possible priority */ PR_PRIORITY_NORMAL = 1, /* most common expected priority */ PR_PRIORITY_HIGH = 2, /* slightly more aggressive scheduling */ PR_PRIORITY_URGENT = 3, /* it does little good to have more than one */ PR_PRIORITY_LAST = 3 /* this is just a placeholder */ } PRThreadPriority; /* ** Create a new thread: ** "type" is the type of thread to create ** "start(arg)" will be invoked as the threads "main" ** "priority" will be created thread's priority ** "scope" will specify whether the thread is local or global ** "state" will specify whether the thread is joinable or not ** "stackSize" the size of the stack, in bytes. The value can be zero ** and then a machine specific stack size will be chosen. ** ** This can return NULL if some kind of error occurs, such as if memory is ** tight. ** ** If you want the thread to start up waiting for the creator to do ** something, enter a lock before creating the thread and then have the ** threads start routine enter and exit the same lock. When you are ready ** for the thread to run, exit the lock. ** ** If you want to detect the completion of the created thread, the thread ** should be created joinable. Then, use PR_JoinThread to synchrnoize the ** termination of another thread. ** ** When the start function returns the thread exits. If it is the last ** PR_USER_THREAD to exit then the process exits. */ __declspec(dllimport) PRThread* PR_CreateThread(PRThreadType type, void ( *start)(void *arg), void *arg, PRThreadPriority priority, PRThreadScope scope, PRThreadState state, PRUint32 stackSize); /* ** Wait for thread termination: ** "thread" is the target thread ** ** This can return PR_FAILURE if no joinable thread could be found ** corresponding to the specified target thread. ** ** The calling thread is blocked until the target thread completes. ** Several threads cannot wait for the same thread to complete; one thread ** will operate successfully and others will terminate with an error PR_FAILURE. ** The calling thread will not be blocked if the target thread has already ** terminated. */ __declspec(dllimport) PRStatus PR_JoinThread(PRThread *thread); /* ** Return the current thread object for the currently running code. ** Never returns NULL. */ __declspec(dllimport) PRThread* PR_GetCurrentThread(void); #line 168 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prthread.h" /* ** Get the priority of "thread". */ __declspec(dllimport) PRThreadPriority PR_GetThreadPriority(const PRThread *thread); /* ** Change the priority of the "thread" to "priority". */ __declspec(dllimport) void PR_SetThreadPriority(PRThread *thread, PRThreadPriority priority); /* ** This routine returns a new index for per-thread-private data table. ** The index is visible to all threads within a process. This index can ** be used with the PR_SetThreadPrivate() and PR_GetThreadPrivate() routines ** to save and retrieve data associated with the index for a thread. ** ** Each index is associationed with a destructor function ('dtor'). The function ** may be specified as NULL when the index is created. If it is not NULL, the ** function will be called when: ** - the thread exits and the private data for the associated index ** is not NULL, ** - new thread private data is set and the current private data is ** not NULL. ** ** The index independently maintains specific values for each binding thread. ** A thread can only get access to its own thread-specific-data. ** ** Upon a new index return the value associated with the index for all threads ** is NULL, and upon thread creation the value associated with all indices for ** that thread is NULL. ** ** Returns PR_FAILURE if the total number of indices will exceed the maximun ** allowed. */ typedef void ( *PRThreadPrivateDTOR)(void *priv); __declspec(dllimport) PRStatus PR_NewThreadPrivateIndex( PRUintn *newIndex, PRThreadPrivateDTOR destructor); /* ** Define some per-thread-private data. ** "tpdIndex" is an index into the per-thread private data table ** "priv" is the per-thread-private data ** ** If the per-thread private data table has a previously registered ** destructor function and a non-NULL per-thread-private data value, ** the destructor function is invoked. ** ** This can return PR_FAILURE if the index is invalid. */ __declspec(dllimport) PRStatus PR_SetThreadPrivate(PRUintn tpdIndex, void *priv); /* ** Recover the per-thread-private data for the current thread. "tpdIndex" is ** the index into the per-thread private data table. ** ** The returned value may be NULL which is indistinguishable from an error ** condition. ** ** A thread can only get access to its own thread-specific-data. */ __declspec(dllimport) void* PR_GetThreadPrivate(PRUintn tpdIndex); /* ** This routine sets the interrupt request for a target thread. The interrupt ** request remains in the thread's state until it is delivered exactly once ** or explicitly canceled. ** ** A thread that has been interrupted will fail all NSPR blocking operations ** that return a PRStatus (I/O, waiting on a condition, etc). ** ** PR_Interrupt may itself fail if the target thread is invalid. */ __declspec(dllimport) PRStatus PR_Interrupt(PRThread *thread); /* ** Clear the interrupt request for the calling thread. If no such request ** is pending, this operation is a noop. */ __declspec(dllimport) void PR_ClearInterrupt(void); /* ** Block the interrupt for the calling thread. */ __declspec(dllimport) void PR_BlockInterrupt(void); /* ** Unblock the interrupt for the calling thread. */ __declspec(dllimport) void PR_UnblockInterrupt(void); /* ** Make the current thread sleep until "ticks" time amount of time ** has expired. If "ticks" is PR_INTERVAL_NO_WAIT then the call is ** equivalent to calling PR_Yield. Calling PR_Sleep with an argument ** equivalent to PR_INTERVAL_NO_TIMEOUT is an error and will result ** in a PR_FAILURE error return. */ __declspec(dllimport) PRStatus PR_Sleep(PRIntervalTime ticks); /* ** Get the scoping of this thread. */ __declspec(dllimport) PRThreadScope PR_GetThreadScope(const PRThread *thread); /* ** Get the type of this thread. */ __declspec(dllimport) PRThreadType PR_GetThreadType(const PRThread *thread); /* ** Get the join state of this thread. */ __declspec(dllimport) PRThreadState PR_GetThreadState(const PRThread *thread); } #line 287 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prthread.h" #line 56 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupportsImpl.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAtomicRefcnt.h" /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla code. * * The Initial Developer of the Original Code is the Mozilla Foundation. * Portions created by the Initial Developer are Copyright (C) 2010 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Justin Lebar * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 57 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupportsImpl.h" #line 58 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupportsImpl.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsDebug.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 60 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupportsImpl.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTraceRefcnt.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla Communicator client code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * L. David Baron * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXPCOM.h" /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Benjamin Smedberg * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 42 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTraceRefcnt.h" /* nsCOMPtr.h allows these macros to be defined by clients * These logging functions require dynamic_cast, so they don't * do anything useful if we don't have dynamic_cast. */ #line 92 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTraceRefcnt.h" class nsTraceRefcnt { public: inline static void LogAddRef(void* aPtr, nsrefcnt aNewRefCnt, const char* aTypeName, PRUint32 aInstanceSize) { NS_LogAddRef_P(aPtr, aNewRefCnt, aTypeName, aInstanceSize); } inline static void LogRelease(void* aPtr, nsrefcnt aNewRefCnt, const char* aTypeName) { NS_LogRelease_P(aPtr, aNewRefCnt, aTypeName); } inline static void LogCtor(void* aPtr, const char* aTypeName, PRUint32 aInstanceSize) { NS_LogCtor_P(aPtr, aTypeName, aInstanceSize); } inline static void LogDtor(void* aPtr, const char* aTypeName, PRUint32 aInstanceSize) { NS_LogDtor_P(aPtr, aTypeName, aInstanceSize); } inline static void LogAddCOMPtr(void *aCOMPtr, nsISupports *aObject) { NS_LogCOMPtrAddRef_P(aCOMPtr, aObject); } inline static void LogReleaseCOMPtr(void *aCOMPtr, nsISupports *aObject) { NS_LogCOMPtrRelease_P(aCOMPtr, aObject); } }; #line 127 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTraceRefcnt.h" #line 129 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTraceRefcnt.h" #line 61 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupportsImpl.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCycleCollector.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * The Mozilla Foundation. * Portions created by the Initial Developer are Copyright (C) 2006 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ // NOTE: If you use header files to define DEBUG_CC, you must do so here // *and* in nsCycleCollectionParticipant.h //#define DEBUG_CC class nsISupports; class nsICycleCollectorListener; class nsCycleCollectionParticipant; class nsCycleCollectionTraversalCallback; // An nsCycleCollectionLanguageRuntime is a per-language object that // implements language-specific aspects of the cycle collection task. struct nsCycleCollectionLanguageRuntime { virtual nsresult BeginCycleCollection(nsCycleCollectionTraversalCallback &cb, bool explainLiveExpectedGarbage) = 0; virtual nsresult FinishTraverse() = 0; virtual nsresult FinishCycleCollection() = 0; virtual nsCycleCollectionParticipant *ToParticipant(void *p) = 0; }; nsresult nsCycleCollector_startup(); // Returns the number of collected nodes. PRUint32 nsCycleCollector_collect(nsICycleCollectorListener *aListener); PRUint32 nsCycleCollector_suspectedCount(); void nsCycleCollector_shutdownThreads(); void nsCycleCollector_shutdown(); // The JS runtime is special, it needs to call cycle collection during its GC. // If the JS runtime is registered nsCycleCollector_collect will call // nsCycleCollectionJSRuntime::Collect which will call // nsCycleCollector_doCollect, else nsCycleCollector_collect will call // nsCycleCollector_doCollect directly. struct nsCycleCollectionJSRuntime : public nsCycleCollectionLanguageRuntime { /** * Runs the JavaScript GC. */ virtual void Collect() = 0; }; void nsCycleCollector_DEBUG_shouldBeFreed(nsISupports *n); void nsCycleCollector_DEBUG_wasFreed(nsISupports *n); #line 89 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCycleCollector.h" // Helpers for interacting with language-identified scripts void nsCycleCollector_registerRuntime(PRUint32 langID, nsCycleCollectionLanguageRuntime *rt); nsCycleCollectionLanguageRuntime * nsCycleCollector_getRuntime(PRUint32 langID); void nsCycleCollector_forgetRuntime(PRUint32 langID); extern nsresult nsCycleCollectorLoggerConstructor(nsISupports* outer, const nsIID& aIID, void* *aInstancePtr); #line 106 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCycleCollector.h" #line 62 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupportsImpl.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCycleCollectorUtils.h" /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Cycle Collector. * * The Initial Developer of the Original Code is * Mozilla Foundation. * Portions created by the Initial Developer are Copyright (C) 2010 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 41 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCycleCollectorUtils.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/threads/nsThreadIDs.h" /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is XPCOM. * * The Initial Developer of the Original Code is * Mozilla Foundation. * Portions created by the Initial Developer are Copyright (C) 2010 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ namespace mozilla { namespace threads { enum ID { Generic = 0, Main = 1, CycleCollector = 2 }; } /* namespace threads */ } /* namespace mozilla */ #line 53 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/threads/nsThreadIDs.h" #line 42 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCycleCollectorUtils.h" bool NS_IsCycleCollectorThread_P(); #line 61 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCycleCollectorUtils.h" #line 64 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCycleCollectorUtils.h" #line 66 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCycleCollectorUtils.h" #line 63 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupportsImpl.h" //////////////////////////////////////////////////////////////////////////////// // Macros to help detect thread-safety: class nsAutoOwningThread { public: nsAutoOwningThread() { mThread = PR_GetCurrentThread(); } void *GetThread() const { return mThread; } private: void *mThread; }; #line 99 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupportsImpl.h" // Support for ISupports classes which interact with cycle collector. /** * This struct (once shipped) will be FROZEN with respect to the * NS_CycleCollectorSuspect2 and NS_CycleCollectorForget2 functions. If * we need to change the struct, we'll need Suspect3 and Forget3 for the * new versions. */ struct nsPurpleBufferEntry { union { nsISupports *mObject; // when low bit unset nsPurpleBufferEntry *mNextInFreeList; // when low bit set }; // When an object is in the purple buffer, it replaces its reference // count with a (tagged) pointer to this entry, so we store the // reference count for it. nsrefcnt mRefCnt; }; class nsCycleCollectingAutoRefCnt { public: nsCycleCollectingAutoRefCnt() : mTagged(((void *) (PRWord) ((0 << 1) | 1))) {} nsCycleCollectingAutoRefCnt(nsrefcnt aValue) : mTagged(((void *) (PRWord) ((aValue << 1) | 1))) { } nsrefcnt incr(nsISupports *owner) { if ((!!(mTagged == static_cast(0)))) { // The sentinel value "purple bit alone, refcount 0" means // that we're stabilized, during finalization. In this // state we lie about our actual refcount if anyone asks // and say it's 2, which is basically true: the caller who // is incrementing has a reference, as does the decr() frame // that stabilized-and-is-deleting us. return 2; } nsrefcnt refcount; if (IsPurple()) { nsPurpleBufferEntry *e = static_cast(mTagged); do { if (!(e->mObject == owner)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "wrong entry", "e->mObject == owner", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupportsImpl.h", 157); } } while (0); refcount = e->mRefCnt; do { if (!(refcount != 0)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "purple ISupports pointer with zero refcnt", "refcount != 0", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupportsImpl.h", 159); } } while (0); if ((!!(NS_CycleCollectorForget2_P(e)))) { // |e| is now invalid ++refcount; mTagged = ((void *) (PRWord) ((refcount << 1) | 1)); } else { ++refcount; e->mRefCnt = refcount; } } else { refcount = nsrefcnt(((PRInt32) (PRWord) (mTagged)) >> 1); ++refcount; mTagged = ((void *) (PRWord) ((refcount << 1) | 1)); } return refcount; } void stabilizeForDeletion(nsISupports *owner) { mTagged = static_cast(0); } nsrefcnt decr(nsISupports *owner) { if ((!!(mTagged == static_cast(0)))) return 1; nsrefcnt refcount; if (IsPurple()) { nsPurpleBufferEntry *e = static_cast(mTagged); do { if (!(e->mObject == owner)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "wrong entry", "e->mObject == owner", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupportsImpl.h", 191); } } while (0); refcount = e->mRefCnt; --refcount; if ((!!(refcount == 0))) { if ((!!(!NS_CycleCollectorForget2_P(e)))) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "forget should not fail when reference count hits 0", "Not Reached", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupportsImpl.h", 197); // Clear the entry's pointer to us. e->mObject = 0L; } mTagged = ((void *) (PRWord) ((refcount << 1) | 1)); } else { e->mRefCnt = refcount; } } else { refcount = nsrefcnt(((PRInt32) (PRWord) (mTagged)) >> 1); --refcount; nsPurpleBufferEntry *e; if ((!!(refcount > 0)) && ((e = NS_CycleCollectorSuspect2_P(owner)))) { e->mRefCnt = refcount; mTagged = static_cast(e); } else { mTagged = ((void *) (PRWord) ((refcount << 1) | 1)); } } return refcount; } void unmarkPurple() { do { if (!(IsPurple())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "must be purple", "IsPurple()", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupportsImpl.h", 224); } } while (0); nsrefcnt refcount = static_cast(mTagged)->mRefCnt; mTagged = ((void *) (PRWord) ((refcount << 1) | 1)); } PRBool IsPurple() const { do { if (!(mTagged != static_cast(0))) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "should have checked for stabilization first", "mTagged != NS_CCAR_TAGGED_STABILIZED_REFCNT", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupportsImpl.h", 232); } } while (0); #line 233 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupportsImpl.h" return !(((PRInt32) (PRWord) (mTagged)) & 1); } nsrefcnt get() const { if ((!!(mTagged == static_cast(0)))) return 1; return (!!(IsPurple())) ? static_cast(mTagged)->mRefCnt : nsrefcnt(((PRInt32) (PRWord) (mTagged)) >> 1); } operator nsrefcnt() const { return get(); } private: void *mTagged; }; class nsAutoRefCnt { public: nsAutoRefCnt() : mValue(0) {} nsAutoRefCnt(nsrefcnt aValue) : mValue(aValue) {} // only support prefix increment/decrement nsrefcnt operator++() { return ++mValue; } nsrefcnt operator--() { return --mValue; } nsrefcnt operator=(nsrefcnt aValue) { return (mValue = aValue); } operator nsrefcnt() const { return mValue; } nsrefcnt get() const { return mValue; } private: // do not define these to enforce the faster prefix notation nsrefcnt operator++(int); nsrefcnt operator--(int); nsrefcnt mValue; }; /////////////////////////////////////////////////////////////////////////////// /** * Declare the reference count variable and the implementations of the * AddRef and QueryInterface methods. */ /////////////////////////////////////////////////////////////////////////////// /** * Previously used to initialize the reference count, but no longer needed. * * DEPRECATED. */ /** * Use this macro to declare and implement the AddRef & Release methods for a * given non-XPCOM _class. * * The implementations here should match NS_IMPL_ADDREF/NS_IMPL_RELEASE, minus * the nsrefcnt return-value and the NS_ASSERT_OWNINGTHREAD() call. * * @param _class The name of the class implementing the method */ /** * Use this macro to implement the AddRef method for a given _class * @param _class The name of the class implementing the method */ /** * Use this macro to implement the AddRef method for a given _class * implemented as a wholly owned aggregated object intended to implement * interface(s) for its owner * @param _class The name of the class implementing the method * @param _aggregator the owning/containing object */ /** * Use this macro to implement the Release method for a given * _class. * @param _class The name of the class implementing the method * @param _destroy A statement that is executed when the object's * refcount drops to zero. * * For example, * * NS_IMPL_RELEASE_WITH_DESTROY(Foo, Destroy(this)) * * will cause * * Destroy(this); * * to be invoked when the object's refcount drops to zero. This * allows for arbitrary teardown activity to occur (e.g., deallocation * of object allocated with placement new). */ /** * Use this macro to implement the Release method for a given _class * @param _class The name of the class implementing the method * * A note on the 'stabilization' of the refcnt to one. At that point, * the object's refcount will have gone to zero. The object's * destructor may trigger code that attempts to QueryInterface() and * Release() 'this' again. Doing so will temporarily increment and * decrement the refcount. (Only a logic error would make one try to * keep a permanent hold on 'this'.) To prevent re-entering the * destructor, we make sure that no balanced refcounting can return * the refcount to |0|. */ /** * Use this macro to implement the Release method for a given _class * implemented as a wholly owned aggregated object intended to implement * interface(s) for its owner * @param _class The name of the class implementing the method * @param _aggregator the owning/containing object */ /////////////////////////////////////////////////////////////////////////////// /** * There are two ways of implementing QueryInterface, and we use both: * * Table-driven QueryInterface uses a static table of IID->offset mappings * and a shared helper function. Using it tends to reduce codesize and improve * runtime performance (due to processor cache hits). * * Macro-driven QueryInterface generates a QueryInterface function directly * using common macros. This is necessary if special QueryInterface features * are being used (such as tearoffs and conditional interfaces). * * These methods can be combined into a table-driven function call followed * by custom code for tearoffs and conditionals. */ struct QITableEntry { const nsIID *iid; // null indicates end of the QITableEntry array PROffset32 offset; }; nsresult __fastcall NS_TableDrivenQI(void* aThis, const QITableEntry* entries, const nsIID& aIID, void **aInstancePtr); /** * Implement table-driven queryinterface */ /** * This implements query interface with two assumptions: First, the * class in question implements nsISupports and its own interface and * nothing else. Second, the implementation of the class's primary * inheritance chain leads to its own interface. * * @param _class The name of the class implementing the method * @param _classiiddef The name of the #define symbol that defines the IID * for the class (e.g. NS_ISUPPORTS_IID) */ /* This is the new scheme. Using this notation now will allow us to switch to a table driven mechanism when it's ready. Note the difference between this and the (currently) underlying NS_IMPL_QUERY_INTERFACE mechanism. You must explicitly mention |nsISupports| when using the interface maps. */ /** * Declare that you're going to inherit from something that already * implements nsISupports, but also implements an additional interface, thus * causing an ambiguity. In this case you don't need another mRefCnt, you * just need to forward the definitions to the appropriate superclass. E.g. * * class Bar : public Foo, public nsIBar { // both provide nsISupports * public: * NS_DECL_ISUPPORTS_INHERITED * ...other nsIBar and Bar methods... * }; */ /** * These macros can be used in conjunction with NS_DECL_ISUPPORTS_INHERITED * to implement the nsISupports methods, forwarding the invocations to a * superclass that already implements nsISupports. * * Note that I didn't make these inlined because they're virtual methods. */ /** * As above but not logging the addref/release; needed if the base * class might be aggregated. */ /** * Convenience macros for implementing all nsISupports methods for * a simple class. * @param _class The name of the class implementing the method * @param _classiiddef The name of the #define symbol that defines the IID * for the class (e.g. NS_ISUPPORTS_IID) */ /////////////////////////////////////////////////////////////////////////////// /** * * Threadsafe implementations of the ISupports convenience macros. * * @note These are not available when linking against the standalone glue, * because the implementation requires PR_ symbols. */ /** * Use this macro to implement the AddRef method for a given _class * @param _class The name of the class implementing the method */ /** * Use this macro to implement the Release method for a given _class * @param _class The name of the class implementing the method * * Note that we don't need to use an atomic operation to stabilize the refcnt. * If the refcnt is released to 0, only the current thread has a reference to * the object; we thus don't have to use an atomic set to inform other threads * that we've changed the refcnt. */ #line 1318 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupportsImpl.h" /** * Macro to generate nsIClassInfo methods for classes which do not have * corresponding nsIFactory implementations. */ #line 1451 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupportsImpl.h" #line 62 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupportsUtils.h" #line 63 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupportsUtils.h" /** * Macro for adding a reference to an interface. * @param _ptr The interface pointer. */ /** * Macro for adding a reference to this. This macro should be used * because NS_ADDREF (when tracing) may require an ambiguous cast * from the pointers primary type to nsISupports. This macro sidesteps * that entire problem. */ extern "C++" { // ...because some one is accidentally including this file inside // an |extern "C"| // Making this a |inline| |template| allows |expr| to be evaluated only once, // yet still denies you the ability to |AddRef()| an |nsCOMPtr|. template inline void ns_if_addref( T expr ) { if (expr) { expr->AddRef(); } } } /* extern "C++" */ /** * Macro for adding a reference to an interface that checks for NULL. * @param _expr The interface pointer. */ /* * Given these declarations, it explicitly OK and efficient to end a `getter' with: * * NS_IF_ADDREF(*result = mThing); * * even if |mThing| is an |nsCOMPtr|. If |mThing| is an |nsCOMPtr|, however, it is still * _illegal_ to say |NS_IF_ADDREF(mThing)|. */ /** * Macro for releasing a reference to an interface. * @param _ptr The interface pointer. */ /** * Macro for releasing a reference to an interface. * @param _ptr The interface pointer. */ /** * Macro for releasing a reference to an interface, except that this * macro preserves the return value from the underlying Release call. * The interface pointer argument will only be NULLed if the reference count * goes to zero. * * @param _ptr The interface pointer. */ /** * Macro for releasing a reference to an interface that checks for NULL; * @param _ptr The interface pointer. */ /* * Often you have to cast an implementation pointer, e.g., |this|, to an * |nsISupports*|, but because you have multiple inheritance, a simple cast * is ambiguous. One could simply say, e.g., (given a base |nsIBase|), * |static_cast(this)|; but that disguises the fact that what * you are really doing is disambiguating the |nsISupports|. You could make * that more obvious with a double cast, e.g., |static_cast (* static_cast(this))|, but that is bulky and harder to read... * * The following macro is clean, short, and obvious. In the example above, * you would use it like this: |NS_ISUPPORTS_CAST(nsIBase*, this)|. */ // a type-safe shortcut for calling the |QueryInterface()| member function template inline nsresult CallQueryInterface( T* aSource, DestinationType** aDestination ) { do { if (!(aSource)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "null parameter", "aSource", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupportsUtils.h", 180); } } while (0); do { if (!(aDestination)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "null parameter", "aDestination", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupportsUtils.h", 181); } } while (0); return aSource->QueryInterface((DestinationType::template COMTypeInfo::kIID), reinterpret_cast(aDestination)); } #line 188 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupportsUtils.h" #line 65 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCOMPtr.h" // for |nsresult|, |NS_ADDREF|, |NS_GET_TEMPLATE_IID| et al #line 67 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCOMPtr.h" /* WARNING: This file defines several macros for internal use only. These macros begin with the prefix |NSCAP_|. Do not use these macros in your own code. They are for internal use only for cross-platform compatibility, and are subject to change without notice. */ // under VC++, we win by inlining StartAssignment // Also under VC++, at the highest warning level, we are overwhelmed with warnings // about (unused) inline functions being removed. This is to be expected with // templates, so we disable the warning. #pragma warning( disable: 4514 ) #line 91 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCOMPtr.h" //#define NSCAP_FEATURE_TEST_NONNULL_QUERY_SUCCEEDS #line 99 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCOMPtr.h" /* |...TEST_DONTQUERY_CASES| and |...DEBUG_PTR_TYPES| introduce some code that is problematic on a select few of our platforms, e.g., QNX. Therefore, I'm providing a mechanism by which these features can be explicitly disabled from the command-line. */ #line 119 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCOMPtr.h" #line 121 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCOMPtr.h" #line 125 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCOMPtr.h" typedef PRBool NSCAP_BOOL; #line 132 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCOMPtr.h" /* The following three macros (|NSCAP_ADDREF|, |NSCAP_RELEASE|, and |NSCAP_LOG_ASSIGNMENT|) allow external clients the ability to add logging or other interesting debug facilities. In fact, if you want |nsCOMPtr| to participate in the standard logging facility, you provide (e.g., in "nsTraceRefcnt.h") suitable definitions #define NSCAP_ADDREF(this, ptr) NS_ADDREF(ptr) #define NSCAP_RELEASE(this, ptr) NS_RELEASE(ptr) */ #line 149 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCOMPtr.h" #line 153 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCOMPtr.h" // Clients can define |NSCAP_LOG_ASSIGNMENT| to perform logging. // Remember that |NSCAP_LOG_ASSIGNMENT| was defined by some client so that we know // to instantiate |~nsGetterAddRefs| in turn to note the external assignment into // the |nsCOMPtr|. #line 164 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCOMPtr.h" template struct already_AddRefed /* ...cooperates with |nsCOMPtr| to allow you to assign in a pointer _without_ |AddRef|ing it. You might want to use this as a return type from a function that produces an already |AddRef|ed pointer as a result. See also |getter_AddRefs()|, |dont_AddRef()|, and |class nsGetterAddRefs|. This type should be a nested class inside |nsCOMPtr|. Yes, |already_AddRefed| could have been implemented as an |nsCOMPtr_helper| to avoid adding specialized machinery to |nsCOMPtr| ... but this is the simplest case, and perhaps worth the savings in time and space that its specific implementation affords over the more general solution offered by |nsCOMPtr_helper|. */ { already_AddRefed( T* aRawPtr ) : mRawPtr(aRawPtr) { // nothing else to do here } T* get() const { return mRawPtr; } /** * This helper is useful in cases like * * already_AddRefed * Foo() * { * nsRefPtr x = ...; * return x.forget(); * } * * The autoconversion allows one to omit the idiom * * nsRefPtr y = x.forget(); * return y.forget(); */ template operator already_AddRefed() { U* tmp = mRawPtr; mRawPtr = 0; return tmp; } T* mRawPtr; }; template inline const already_AddRefed getter_AddRefs( T* aRawPtr ) /* ...makes typing easier, because it deduces the template type, e.g., you write |dont_AddRef(fooP)| instead of |already_AddRefed(fooP)|. */ { return already_AddRefed(aRawPtr); } template inline const already_AddRefed getter_AddRefs( const already_AddRefed aAlreadyAddRefedPtr ) { return aAlreadyAddRefedPtr; } template inline const already_AddRefed dont_AddRef( T* aRawPtr ) { return already_AddRefed(aRawPtr); } template inline const already_AddRefed dont_AddRef( const already_AddRefed aAlreadyAddRefedPtr ) { return aAlreadyAddRefedPtr; } class nsCOMPtr_helper /* An |nsCOMPtr_helper| transforms commonly called getters into typesafe forms that are more convenient to call, and more efficient to use with |nsCOMPtr|s. Good candidates for helpers are |QueryInterface()|, |CreateInstance()|, etc. Here are the rules for a helper: - it implements |operator()| to produce an interface pointer - (except for its name) |operator()| is a valid [XP]COM `getter' - the interface pointer that it returns is already |AddRef()|ed (as from any good getter) - it matches the type requested with the supplied |nsIID| argument - its constructor provides an optional |nsresult*| that |operator()| can fill in with an error when it is executed See |class nsGetInterface| for an example. */ { public: virtual nsresult __fastcall operator()( const nsIID&, void** ) const = 0; }; /* |nsQueryInterface| could have been implemented as an |nsCOMPtr_helper| to avoid adding specialized machinery in |nsCOMPtr|, But |do_QueryInterface| is called often enough that the codesize savings are big enough to warrant the specialcasing. */ class nsQueryInterface { public: explicit nsQueryInterface( nsISupports* aRawPtr ) : mRawPtr(aRawPtr) { // nothing else to do here } nsresult __fastcall operator()( const nsIID& aIID, void** ) const; private: nsISupports* mRawPtr; }; class nsQueryInterfaceWithError { public: nsQueryInterfaceWithError( nsISupports* aRawPtr, nsresult* error ) : mRawPtr(aRawPtr), mErrorPtr(error) { // nothing else to do here } nsresult __fastcall operator()( const nsIID& aIID, void** ) const; private: nsISupports* mRawPtr; nsresult* mErrorPtr; }; inline nsQueryInterface do_QueryInterface( nsISupports* aRawPtr ) { return nsQueryInterface(aRawPtr); } inline nsQueryInterfaceWithError do_QueryInterface( nsISupports* aRawPtr, nsresult* error ) { return nsQueryInterfaceWithError(aRawPtr, error); } template inline void do_QueryInterface( already_AddRefed& ) { // This signature exists solely to _stop_ you from doing the bad thing. // Saying |do_QueryInterface()| on a pointer that is not otherwise owned by // someone else is an automatic leak. See . } template inline void do_QueryInterface( already_AddRefed&, nsresult* ) { // This signature exists solely to _stop_ you from doing the bad thing. // Saying |do_QueryInterface()| on a pointer that is not otherwise owned by // someone else is an automatic leak. See . } //////////////////////////////////////////////////////////////////////////// // Using servicemanager with COMPtrs class nsGetServiceByCID { public: explicit nsGetServiceByCID(const nsCID& aCID) : mCID(aCID) { // nothing else to do } nsresult __fastcall operator()( const nsIID&, void** ) const; private: const nsCID& mCID; }; class nsGetServiceByCIDWithError { public: nsGetServiceByCIDWithError( const nsCID& aCID, nsresult* aErrorPtr ) : mCID(aCID), mErrorPtr(aErrorPtr) { // nothing else to do } nsresult __fastcall operator()( const nsIID&, void** ) const; private: const nsCID& mCID; nsresult* mErrorPtr; }; class nsGetServiceByContractID { public: explicit nsGetServiceByContractID(const char* aContractID) : mContractID(aContractID) { // nothing else to do } nsresult __fastcall operator()( const nsIID&, void** ) const; private: const char* mContractID; }; class nsGetServiceByContractIDWithError { public: nsGetServiceByContractIDWithError(const char* aContractID, nsresult* aErrorPtr) : mContractID(aContractID), mErrorPtr(aErrorPtr) { // nothing else to do } nsresult __fastcall operator()( const nsIID&, void** ) const; private: const char* mContractID; nsresult* mErrorPtr; }; class nsCOMPtr_base /* ...factors implementation for all template versions of |nsCOMPtr|. This should really be an |nsCOMPtr|, but this wouldn't work because unlike the Here's the way people normally do things like this template class Foo { ... }; template <> class Foo { ... }; template class Foo : private Foo { ... }; */ { public: nsCOMPtr_base( nsISupports* rawPtr = 0 ) : mRawPtr(rawPtr) { // nothing else to do here } ~nsCOMPtr_base(); void __fastcall assign_with_AddRef( nsISupports* ); void __fastcall assign_from_qi( const nsQueryInterface, const nsIID& ); void __fastcall assign_from_qi_with_error( const nsQueryInterfaceWithError&, const nsIID& ); void __fastcall assign_from_gs_cid( const nsGetServiceByCID, const nsIID& ); void __fastcall assign_from_gs_cid_with_error( const nsGetServiceByCIDWithError&, const nsIID& ); void __fastcall assign_from_gs_contractid( const nsGetServiceByContractID, const nsIID& ); void __fastcall assign_from_gs_contractid_with_error( const nsGetServiceByContractIDWithError&, const nsIID& ); void __fastcall assign_from_helper( const nsCOMPtr_helper&, const nsIID& ); void** __fastcall begin_assignment(); protected: nsISupports* mRawPtr; void assign_assuming_AddRef( nsISupports* newPtr ) { /* |AddRef()|ing the new value (before entering this function) before |Release()|ing the old lets us safely ignore the self-assignment case. We must, however, be careful only to |Release()| _after_ doing the assignment, in case the |Release()| leads to our _own_ destruction, which would, in turn, cause an incorrect second |Release()| of our old pointer. Thank for discovering this. */ nsISupports* oldPtr = mRawPtr; mRawPtr = newPtr; if (newPtr) NS_LogCOMPtrAddRef_P((this),static_cast(newPtr)); if (oldPtr) NS_LogCOMPtrRelease_P((this), static_cast(oldPtr)); if ( oldPtr ) (oldPtr)->Release(); } }; // template class nsGetterAddRefs; template class nsCOMPtr { private: void assign_with_AddRef( nsISupports* ); void assign_from_qi( const nsQueryInterface, const nsIID& ); void assign_from_qi_with_error( const nsQueryInterfaceWithError&, const nsIID& ); void assign_from_gs_cid( const nsGetServiceByCID, const nsIID& ); void assign_from_gs_cid_with_error( const nsGetServiceByCIDWithError&, const nsIID& ); void assign_from_gs_contractid( const nsGetServiceByContractID, const nsIID& ); void assign_from_gs_contractid_with_error( const nsGetServiceByContractIDWithError&, const nsIID& ); void assign_from_helper( const nsCOMPtr_helper&, const nsIID& ); void** begin_assignment(); void assign_assuming_AddRef( T* newPtr ) { T* oldPtr = mRawPtr; mRawPtr = newPtr; if (newPtr) NS_LogCOMPtrAddRef_P((this),static_cast(newPtr)); if (oldPtr) NS_LogCOMPtrRelease_P((this), static_cast(oldPtr)); if ( oldPtr ) (oldPtr)->Release(); } private: T* mRawPtr; #line 524 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCOMPtr.h" public: typedef T element_type; ~nsCOMPtr() { if (mRawPtr) NS_LogCOMPtrRelease_P((this), static_cast(mRawPtr)); if ( mRawPtr ) (mRawPtr)->Release(); } #line 536 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCOMPtr.h" void Assert_NoQueryNeeded() { if ( mRawPtr ) { nsCOMPtr query_result( do_QueryInterface(mRawPtr) ); do { if (!(query_result.get() == mRawPtr)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "QueryInterface needed", "query_result.get() == mRawPtr", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCOMPtr.h", 544); } } while (0); } } #line 552 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCOMPtr.h" // Constructors nsCOMPtr() : mRawPtr(0) // default constructor { if (0) NS_LogCOMPtrAddRef_P((this),static_cast(0)); } nsCOMPtr( const nsCOMPtr& aSmartPtr ) : mRawPtr(aSmartPtr.mRawPtr) // copy-constructor { if ( mRawPtr ) (mRawPtr)->AddRef(); if (aSmartPtr.mRawPtr) NS_LogCOMPtrAddRef_P((this),static_cast(aSmartPtr.mRawPtr)); } nsCOMPtr( T* aRawPtr ) : mRawPtr(aRawPtr) // construct from a raw pointer (of the right type) { if ( mRawPtr ) (mRawPtr)->AddRef(); if (aRawPtr) NS_LogCOMPtrAddRef_P((this),static_cast(aRawPtr)); Assert_NoQueryNeeded();; } nsCOMPtr( const already_AddRefed& aSmartPtr ) : mRawPtr(aSmartPtr.mRawPtr) // construct from |dont_AddRef(expr)| { if (aSmartPtr.mRawPtr) NS_LogCOMPtrAddRef_P((this),static_cast(aSmartPtr.mRawPtr)); Assert_NoQueryNeeded();; } nsCOMPtr( const nsQueryInterface qi ) : mRawPtr(0) // construct from |do_QueryInterface(expr)| { if (0) NS_LogCOMPtrAddRef_P((this),static_cast(0)); assign_from_qi(qi, (T::template COMTypeInfo::kIID)); } nsCOMPtr( const nsQueryInterfaceWithError& qi ) : mRawPtr(0) // construct from |do_QueryInterface(expr, &rv)| { if (0) NS_LogCOMPtrAddRef_P((this),static_cast(0)); assign_from_qi_with_error(qi, (T::template COMTypeInfo::kIID)); } nsCOMPtr( const nsGetServiceByCID gs ) : mRawPtr(0) // construct from |do_GetService(cid_expr)| { if (0) NS_LogCOMPtrAddRef_P((this),static_cast(0)); assign_from_gs_cid(gs, (T::template COMTypeInfo::kIID)); } nsCOMPtr( const nsGetServiceByCIDWithError& gs ) : mRawPtr(0) // construct from |do_GetService(cid_expr, &rv)| { if (0) NS_LogCOMPtrAddRef_P((this),static_cast(0)); assign_from_gs_cid_with_error(gs, (T::template COMTypeInfo::kIID)); } nsCOMPtr( const nsGetServiceByContractID gs ) : mRawPtr(0) // construct from |do_GetService(contractid_expr)| { if (0) NS_LogCOMPtrAddRef_P((this),static_cast(0)); assign_from_gs_contractid(gs, (T::template COMTypeInfo::kIID)); } nsCOMPtr( const nsGetServiceByContractIDWithError& gs ) : mRawPtr(0) // construct from |do_GetService(contractid_expr, &rv)| { if (0) NS_LogCOMPtrAddRef_P((this),static_cast(0)); assign_from_gs_contractid_with_error(gs, (T::template COMTypeInfo::kIID)); } nsCOMPtr( const nsCOMPtr_helper& helper ) : mRawPtr(0) // ...and finally, anything else we might need to construct from // can exploit the |nsCOMPtr_helper| facility { if (0) NS_LogCOMPtrAddRef_P((this),static_cast(0)); assign_from_helper(helper, (T::template COMTypeInfo::kIID)); Assert_NoQueryNeeded();; } // Assignment operators nsCOMPtr& operator=( const nsCOMPtr& rhs ) // copy assignment operator { assign_with_AddRef(rhs.mRawPtr); return *this; } nsCOMPtr& operator=( T* rhs ) // assign from a raw pointer (of the right type) { assign_with_AddRef(rhs); Assert_NoQueryNeeded();; return *this; } nsCOMPtr& operator=( const already_AddRefed& rhs ) // assign from |dont_AddRef(expr)| { assign_assuming_AddRef(rhs.mRawPtr); Assert_NoQueryNeeded();; return *this; } nsCOMPtr& operator=( const nsQueryInterface rhs ) // assign from |do_QueryInterface(expr)| { assign_from_qi(rhs, (T::template COMTypeInfo::kIID)); return *this; } nsCOMPtr& operator=( const nsQueryInterfaceWithError& rhs ) // assign from |do_QueryInterface(expr, &rv)| { assign_from_qi_with_error(rhs, (T::template COMTypeInfo::kIID)); return *this; } nsCOMPtr& operator=( const nsGetServiceByCID rhs ) // assign from |do_GetService(cid_expr)| { assign_from_gs_cid(rhs, (T::template COMTypeInfo::kIID)); return *this; } nsCOMPtr& operator=( const nsGetServiceByCIDWithError& rhs ) // assign from |do_GetService(cid_expr, &rv)| { assign_from_gs_cid_with_error(rhs, (T::template COMTypeInfo::kIID)); return *this; } nsCOMPtr& operator=( const nsGetServiceByContractID rhs ) // assign from |do_GetService(contractid_expr)| { assign_from_gs_contractid(rhs, (T::template COMTypeInfo::kIID)); return *this; } nsCOMPtr& operator=( const nsGetServiceByContractIDWithError& rhs ) // assign from |do_GetService(contractid_expr, &rv)| { assign_from_gs_contractid_with_error(rhs, (T::template COMTypeInfo::kIID)); return *this; } nsCOMPtr& operator=( const nsCOMPtr_helper& rhs ) // ...and finally, anything else we might need to assign from // can exploit the |nsCOMPtr_helper| facility. { assign_from_helper(rhs, (T::template COMTypeInfo::kIID)); Assert_NoQueryNeeded();; return *this; } void swap( nsCOMPtr& rhs ) // ...exchange ownership with |rhs|; can save a pair of refcount operations { T* temp = rhs.mRawPtr; #line 744 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCOMPtr.h" if (mRawPtr) NS_LogCOMPtrAddRef_P((&rhs),static_cast(mRawPtr)); if (temp) NS_LogCOMPtrAddRef_P((this),static_cast(temp)); if (mRawPtr) NS_LogCOMPtrRelease_P((this), static_cast(mRawPtr)); if (temp) NS_LogCOMPtrRelease_P((&rhs), static_cast(temp)); rhs.mRawPtr = mRawPtr; mRawPtr = temp; // |rhs| maintains the same invariants, so we don't need to |NSCAP_ASSERT_NO_QUERY_NEEDED| } void swap( T*& rhs ) // ...exchange ownership with |rhs|; can save a pair of refcount operations { T* temp = rhs; #line 762 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCOMPtr.h" if (temp) NS_LogCOMPtrAddRef_P((this),static_cast(temp)); if (mRawPtr) NS_LogCOMPtrRelease_P((this), static_cast(mRawPtr)); rhs = reinterpret_cast(mRawPtr); mRawPtr = temp; Assert_NoQueryNeeded();; } // Other pointer operators already_AddRefed forget() // return the value of mRawPtr and null out mRawPtr. Useful for // already_AddRefed return values. { T* temp = 0; swap(temp); return temp; } void forget( T** rhs ) // Set the target of rhs to the value of mRawPtr and null out mRawPtr. // Useful to avoid unnecessary AddRef/Release pairs with "out" // parameters. { do { if (!(rhs)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Null pointer passed to forget!", "rhs", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCOMPtr.h", 788); } } while (0); *rhs = 0; swap(*rhs); } T* get() const /* Prefer the implicit conversion provided automatically by |operator T*() const|. Use |get()| to resolve ambiguity or to get a castable pointer. */ { return reinterpret_cast(mRawPtr); } operator T*() const /* ...makes an |nsCOMPtr| act like its underlying raw pointer type whenever it is used in a context where a raw pointer is expected. It is this operator that makes an |nsCOMPtr| substitutable for a raw pointer. Prefer the implicit use of this operator to calling |get()|, except where necessary to resolve ambiguity. */ { return get(); } T* operator->() const { do { if (!(mRawPtr != 0)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "You can't dereference a NULL nsCOMPtr with operator->().", "mRawPtr != 0", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCOMPtr.h", 819); } } while (0); return get(); } nsCOMPtr* get_address() // This is not intended to be used by clients. See |address_of| // below. { return this; } const nsCOMPtr* get_address() const // This is not intended to be used by clients. See |address_of| // below. { return this; } #line 853 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCOMPtr.h" public: T& operator*() const { do { if (!(mRawPtr != 0)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "You can't dereference a NULL nsCOMPtr with operator*().", "mRawPtr != 0", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCOMPtr.h", 858); } } while (0); return *get(); } T** StartAssignment() { assign_assuming_AddRef(0); return reinterpret_cast(&mRawPtr); #line 871 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCOMPtr.h" } }; /* Specializing |nsCOMPtr| for |nsISupports| allows us to use |nsCOMPtr| the same way people use |nsISupports*| and |void*|, i.e., as a `catch-all' pointer pointing to any valid [XP]COM interface. Otherwise, an |nsCOMPtr| would only be able to point to the single [XP]COM-correct |nsISupports| instance within an object; extra querying ensues. Clients need to be able to pass around arbitrary interface pointers, without hassles, through intermediary code that doesn't know the exact type. */ template <> class nsCOMPtr : private nsCOMPtr_base { public: typedef nsISupports element_type; // Constructors nsCOMPtr() : nsCOMPtr_base(0) // default constructor { if (0) NS_LogCOMPtrAddRef_P((this),static_cast(0)); } nsCOMPtr( const nsCOMPtr& aSmartPtr ) : nsCOMPtr_base(aSmartPtr.mRawPtr) // copy constructor { if ( mRawPtr ) (mRawPtr)->AddRef(); if (aSmartPtr.mRawPtr) NS_LogCOMPtrAddRef_P((this),static_cast(aSmartPtr.mRawPtr)); } nsCOMPtr( nsISupports* aRawPtr ) : nsCOMPtr_base(aRawPtr) // construct from a raw pointer (of the right type) { if ( mRawPtr ) (mRawPtr)->AddRef(); if (aRawPtr) NS_LogCOMPtrAddRef_P((this),static_cast(aRawPtr)); } nsCOMPtr( const already_AddRefed& aSmartPtr ) : nsCOMPtr_base(aSmartPtr.mRawPtr) // construct from |dont_AddRef(expr)| { if (aSmartPtr.mRawPtr) NS_LogCOMPtrAddRef_P((this),static_cast(aSmartPtr.mRawPtr)); } nsCOMPtr( const nsQueryInterface qi ) : nsCOMPtr_base(0) // assign from |do_QueryInterface(expr)| { if (0) NS_LogCOMPtrAddRef_P((this),static_cast(0)); assign_from_qi(qi, (::nsISupports::COMTypeInfo::kIID)); } nsCOMPtr( const nsQueryInterfaceWithError& qi ) : nsCOMPtr_base(0) // assign from |do_QueryInterface(expr, &rv)| { if (0) NS_LogCOMPtrAddRef_P((this),static_cast(0)); assign_from_qi_with_error(qi, (::nsISupports::COMTypeInfo::kIID)); } nsCOMPtr( const nsGetServiceByCID gs ) : nsCOMPtr_base(0) // assign from |do_GetService(cid_expr)| { if (0) NS_LogCOMPtrAddRef_P((this),static_cast(0)); assign_from_gs_cid(gs, (::nsISupports::COMTypeInfo::kIID)); } nsCOMPtr( const nsGetServiceByCIDWithError& gs ) : nsCOMPtr_base(0) // assign from |do_GetService(cid_expr, &rv)| { if (0) NS_LogCOMPtrAddRef_P((this),static_cast(0)); assign_from_gs_cid_with_error(gs, (::nsISupports::COMTypeInfo::kIID)); } nsCOMPtr( const nsGetServiceByContractID gs ) : nsCOMPtr_base(0) // assign from |do_GetService(contractid_expr)| { if (0) NS_LogCOMPtrAddRef_P((this),static_cast(0)); assign_from_gs_contractid(gs, (::nsISupports::COMTypeInfo::kIID)); } nsCOMPtr( const nsGetServiceByContractIDWithError& gs ) : nsCOMPtr_base(0) // assign from |do_GetService(contractid_expr, &rv)| { if (0) NS_LogCOMPtrAddRef_P((this),static_cast(0)); assign_from_gs_contractid_with_error(gs, (::nsISupports::COMTypeInfo::kIID)); } nsCOMPtr( const nsCOMPtr_helper& helper ) : nsCOMPtr_base(0) // ...and finally, anything else we might need to construct from // can exploit the |nsCOMPtr_helper| facility { if (0) NS_LogCOMPtrAddRef_P((this),static_cast(0)); assign_from_helper(helper, (::nsISupports::COMTypeInfo::kIID)); } // Assignment operators nsCOMPtr& operator=( const nsCOMPtr& rhs ) // copy assignment operator { assign_with_AddRef(rhs.mRawPtr); return *this; } nsCOMPtr& operator=( nsISupports* rhs ) // assign from a raw pointer (of the right type) { assign_with_AddRef(rhs); return *this; } nsCOMPtr& operator=( const already_AddRefed& rhs ) // assign from |dont_AddRef(expr)| { assign_assuming_AddRef(rhs.mRawPtr); return *this; } nsCOMPtr& operator=( const nsQueryInterface rhs ) // assign from |do_QueryInterface(expr)| { assign_from_qi(rhs, (::nsISupports::COMTypeInfo::kIID)); return *this; } nsCOMPtr& operator=( const nsQueryInterfaceWithError& rhs ) // assign from |do_QueryInterface(expr, &rv)| { assign_from_qi_with_error(rhs, (::nsISupports::COMTypeInfo::kIID)); return *this; } nsCOMPtr& operator=( const nsGetServiceByCID rhs ) // assign from |do_GetService(cid_expr)| { assign_from_gs_cid(rhs, (::nsISupports::COMTypeInfo::kIID)); return *this; } nsCOMPtr& operator=( const nsGetServiceByCIDWithError& rhs ) // assign from |do_GetService(cid_expr, &rv)| { assign_from_gs_cid_with_error(rhs, (::nsISupports::COMTypeInfo::kIID)); return *this; } nsCOMPtr& operator=( const nsGetServiceByContractID rhs ) // assign from |do_GetService(contractid_expr)| { assign_from_gs_contractid(rhs, (::nsISupports::COMTypeInfo::kIID)); return *this; } nsCOMPtr& operator=( const nsGetServiceByContractIDWithError& rhs ) // assign from |do_GetService(contractid_expr, &rv)| { assign_from_gs_contractid_with_error(rhs, (::nsISupports::COMTypeInfo::kIID)); return *this; } nsCOMPtr& operator=( const nsCOMPtr_helper& rhs ) // ...and finally, anything else we might need to assign from // can exploit the |nsCOMPtr_helper| facility. { assign_from_helper(rhs, (::nsISupports::COMTypeInfo::kIID)); return *this; } void swap( nsCOMPtr& rhs ) // ...exchange ownership with |rhs|; can save a pair of refcount operations { nsISupports* temp = rhs.mRawPtr; if (mRawPtr) NS_LogCOMPtrAddRef_P((&rhs),static_cast(mRawPtr)); if (temp) NS_LogCOMPtrAddRef_P((this),static_cast(temp)); if (mRawPtr) NS_LogCOMPtrRelease_P((this), static_cast(mRawPtr)); if (temp) NS_LogCOMPtrRelease_P((&rhs), static_cast(temp)); rhs.mRawPtr = mRawPtr; mRawPtr = temp; } void swap( nsISupports*& rhs ) // ...exchange ownership with |rhs|; can save a pair of refcount operations { nsISupports* temp = rhs; if (temp) NS_LogCOMPtrAddRef_P((this),static_cast(temp)); if (mRawPtr) NS_LogCOMPtrRelease_P((this), static_cast(mRawPtr)); rhs = mRawPtr; mRawPtr = temp; } already_AddRefed forget() // return the value of mRawPtr and null out mRawPtr. Useful for // already_AddRefed return values. { nsISupports* temp = 0; swap(temp); return temp; } void forget( nsISupports** rhs ) // Set the target of rhs to the value of mRawPtr and null out mRawPtr. // Useful to avoid unnecessary AddRef/Release pairs with "out" // parameters. { do { if (!(rhs)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Null pointer passed to forget!", "rhs", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCOMPtr.h", 1107); } } while (0); *rhs = 0; swap(*rhs); } // Other pointer operators nsISupports* get() const /* Prefer the implicit conversion provided automatically by |operator nsISupports*() const|. Use |get()| to resolve ambiguity or to get a castable pointer. */ { return reinterpret_cast(mRawPtr); } operator nsISupports*() const /* ...makes an |nsCOMPtr| act like its underlying raw pointer type whenever it is used in a context where a raw pointer is expected. It is this operator that makes an |nsCOMPtr| substitutable for a raw pointer. Prefer the implicit use of this operator to calling |get()|, except where necessary to resolve ambiguity. */ { return get(); } nsISupports* operator->() const { do { if (!(mRawPtr != 0)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "You can't dereference a NULL nsCOMPtr with operator->().", "mRawPtr != 0", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCOMPtr.h", 1141); } } while (0); return get(); } nsCOMPtr* get_address() // This is not intended to be used by clients. See |address_of| // below. { return this; } const nsCOMPtr* get_address() const // This is not intended to be used by clients. See |address_of| // below. { return this; } #line 1175 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCOMPtr.h" public: nsISupports& operator*() const { do { if (!(mRawPtr != 0)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "You can't dereference a NULL nsCOMPtr with operator*().", "mRawPtr != 0", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCOMPtr.h", 1181); } } while (0); return *get(); } nsISupports** StartAssignment() { assign_assuming_AddRef(0); return reinterpret_cast(&mRawPtr); #line 1194 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCOMPtr.h" } }; template void nsCOMPtr::assign_with_AddRef( nsISupports* rawPtr ) { if ( rawPtr ) (rawPtr)->AddRef(); assign_assuming_AddRef(reinterpret_cast(rawPtr)); } template void nsCOMPtr::assign_from_qi( const nsQueryInterface qi, const nsIID& aIID ) { void* newRawPtr; if ( ((!!((qi(aIID, &newRawPtr)) & 0x80000000))) ) newRawPtr = 0; assign_assuming_AddRef(static_cast(newRawPtr)); } template void nsCOMPtr::assign_from_qi_with_error( const nsQueryInterfaceWithError& qi, const nsIID& aIID ) { void* newRawPtr; if ( ((!!((qi(aIID, &newRawPtr)) & 0x80000000))) ) newRawPtr = 0; assign_assuming_AddRef(static_cast(newRawPtr)); } template void nsCOMPtr::assign_from_gs_cid( const nsGetServiceByCID gs, const nsIID& aIID ) { void* newRawPtr; if ( ((!!((gs(aIID, &newRawPtr)) & 0x80000000))) ) newRawPtr = 0; assign_assuming_AddRef(static_cast(newRawPtr)); } template void nsCOMPtr::assign_from_gs_cid_with_error( const nsGetServiceByCIDWithError& gs, const nsIID& aIID ) { void* newRawPtr; if ( ((!!((gs(aIID, &newRawPtr)) & 0x80000000))) ) newRawPtr = 0; assign_assuming_AddRef(static_cast(newRawPtr)); } template void nsCOMPtr::assign_from_gs_contractid( const nsGetServiceByContractID gs, const nsIID& aIID ) { void* newRawPtr; if ( ((!!((gs(aIID, &newRawPtr)) & 0x80000000))) ) newRawPtr = 0; assign_assuming_AddRef(static_cast(newRawPtr)); } template void nsCOMPtr::assign_from_gs_contractid_with_error( const nsGetServiceByContractIDWithError& gs, const nsIID& aIID ) { void* newRawPtr; if ( ((!!((gs(aIID, &newRawPtr)) & 0x80000000))) ) newRawPtr = 0; assign_assuming_AddRef(static_cast(newRawPtr)); } template void nsCOMPtr::assign_from_helper( const nsCOMPtr_helper& helper, const nsIID& aIID ) { void* newRawPtr; if ( ((!!((helper(aIID, &newRawPtr)) & 0x80000000))) ) newRawPtr = 0; assign_assuming_AddRef(static_cast(newRawPtr)); } template void** nsCOMPtr::begin_assignment() { assign_assuming_AddRef(0); union { T** mT; void** mVoid; } result; result.mT = &mRawPtr; return result.mVoid; } #line 1287 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCOMPtr.h" template inline nsCOMPtr* address_of( nsCOMPtr& aPtr ) { return aPtr.get_address(); } template inline const nsCOMPtr* address_of( const nsCOMPtr& aPtr ) { return aPtr.get_address(); } #line 1319 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCOMPtr.h" template class nsGetterAddRefs /* ... This class is designed to be used for anonymous temporary objects in the argument list of calls that return COM interface pointers, e.g., nsCOMPtr fooP; ...->QueryInterface(iid, getter_AddRefs(fooP)) DO NOT USE THIS TYPE DIRECTLY IN YOUR CODE. Use |getter_AddRefs()| instead. When initialized with a |nsCOMPtr|, as in the example above, it returns a |void**|, a |T**|, or an |nsISupports**| as needed, that the outer call (|QueryInterface| in this case) can fill in. This type should be a nested class inside |nsCOMPtr|. */ { public: explicit nsGetterAddRefs( nsCOMPtr& aSmartPtr ) : mTargetSmartPtr(aSmartPtr) { // nothing else to do } ~nsGetterAddRefs() { if (mTargetSmartPtr.get()) NS_LogCOMPtrAddRef_P((reinterpret_cast(address_of(mTargetSmartPtr))),static_cast(mTargetSmartPtr.get())); #line 1354 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCOMPtr.h" mTargetSmartPtr.Assert_NoQueryNeeded(); #line 1358 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCOMPtr.h" } #line 1360 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCOMPtr.h" operator void**() { return reinterpret_cast(mTargetSmartPtr.StartAssignment()); } operator nsISupports**() { return reinterpret_cast(mTargetSmartPtr.StartAssignment()); } operator T**() { return mTargetSmartPtr.StartAssignment(); } T*& operator*() { return *(mTargetSmartPtr.StartAssignment()); } private: nsCOMPtr& mTargetSmartPtr; }; template <> class nsGetterAddRefs { public: explicit nsGetterAddRefs( nsCOMPtr& aSmartPtr ) : mTargetSmartPtr(aSmartPtr) { // nothing else to do } ~nsGetterAddRefs() { if (mTargetSmartPtr.get()) NS_LogCOMPtrAddRef_P((reinterpret_cast(address_of(mTargetSmartPtr))),static_cast(mTargetSmartPtr.get())); } #line 1404 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCOMPtr.h" operator void**() { return reinterpret_cast(mTargetSmartPtr.StartAssignment()); } operator nsISupports**() { return mTargetSmartPtr.StartAssignment(); } nsISupports*& operator*() { return *(mTargetSmartPtr.StartAssignment()); } private: nsCOMPtr& mTargetSmartPtr; }; template inline nsGetterAddRefs getter_AddRefs( nsCOMPtr& aSmartPtr ) /* Used around a |nsCOMPtr| when ...makes the class |nsGetterAddRefs| invisible. */ { return nsGetterAddRefs(aSmartPtr); } template inline nsresult CallQueryInterface( T* aSource, nsGetterAddRefs aDestination ) { return CallQueryInterface(aSource, static_cast(aDestination)); } // Comparing two |nsCOMPtr|s template inline NSCAP_BOOL operator==( const nsCOMPtr& lhs, const nsCOMPtr& rhs ) { return static_cast(lhs.get()) == static_cast(rhs.get()); } template inline NSCAP_BOOL operator!=( const nsCOMPtr& lhs, const nsCOMPtr& rhs ) { return static_cast(lhs.get()) != static_cast(rhs.get()); } // Comparing an |nsCOMPtr| to a raw pointer template inline NSCAP_BOOL operator==( const nsCOMPtr& lhs, const U* rhs ) { return static_cast(lhs.get()) == rhs; } template inline NSCAP_BOOL operator==( const U* lhs, const nsCOMPtr& rhs ) { return lhs == static_cast(rhs.get()); } template inline NSCAP_BOOL operator!=( const nsCOMPtr& lhs, const U* rhs ) { return static_cast(lhs.get()) != rhs; } template inline NSCAP_BOOL operator!=( const U* lhs, const nsCOMPtr& rhs ) { return lhs != static_cast(rhs.get()); } // To avoid ambiguities caused by the presence of builtin |operator==|s // creating a situation where one of the |operator==| defined above // has a better conversion for one argument and the builtin has a // better conversion for the other argument, define additional // |operator==| without the |const| on the raw pointer. // See bug 65664 for details. // This is defined by an autoconf test, but VC++ also has a bug that // prevents us from using these. (It also, fortunately, has the bug // that we don't need them either.) #line 1517 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCOMPtr.h" template inline NSCAP_BOOL operator==( const nsCOMPtr& lhs, U* rhs ) { return static_cast(lhs.get()) == const_cast(rhs); } template inline NSCAP_BOOL operator==( U* lhs, const nsCOMPtr& rhs ) { return const_cast(lhs) == static_cast(rhs.get()); } template inline NSCAP_BOOL operator!=( const nsCOMPtr& lhs, U* rhs ) { return static_cast(lhs.get()) != const_cast(rhs); } template inline NSCAP_BOOL operator!=( U* lhs, const nsCOMPtr& rhs ) { return const_cast(lhs) != static_cast(rhs.get()); } #line 1551 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCOMPtr.h" // Comparing an |nsCOMPtr| to |0| class NSCAP_Zero; template inline NSCAP_BOOL operator==( const nsCOMPtr& lhs, NSCAP_Zero* rhs ) // specifically to allow |smartPtr == 0| { return static_cast(lhs.get()) == reinterpret_cast(rhs); } template inline NSCAP_BOOL operator==( NSCAP_Zero* lhs, const nsCOMPtr& rhs ) // specifically to allow |0 == smartPtr| { return reinterpret_cast(lhs) == static_cast(rhs.get()); } template inline NSCAP_BOOL operator!=( const nsCOMPtr& lhs, NSCAP_Zero* rhs ) // specifically to allow |smartPtr != 0| { return static_cast(lhs.get()) != reinterpret_cast(rhs); } template inline NSCAP_BOOL operator!=( NSCAP_Zero* lhs, const nsCOMPtr& rhs ) // specifically to allow |0 != smartPtr| { return reinterpret_cast(lhs) != static_cast(rhs.get()); } // Comparing any two [XP]COM objects for identity inline NSCAP_BOOL SameCOMIdentity( nsISupports* lhs, nsISupports* rhs ) { return nsCOMPtr( do_QueryInterface(lhs) ) == nsCOMPtr( do_QueryInterface(rhs) ); } template inline nsresult CallQueryInterface( nsCOMPtr& aSourcePtr, DestinationType** aDestPtr ) { return CallQueryInterface(aSourcePtr.get(), aDestPtr); } #line 1640 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCOMPtr.h" #line 49 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAutoPtr.h" #line 50 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAutoPtr.h" /*****************************************************************************/ // template class nsAutoPtrGetterTransfers; template class nsAutoPtr { private: void** begin_assignment() { assign(0); return reinterpret_cast(&mRawPtr); } void assign( T* newPtr ) { T* oldPtr = mRawPtr; mRawPtr = newPtr; delete oldPtr; } // |class Ptr| helps us prevent implicit "copy construction" // through |operator T*() const| from a |const nsAutoPtr| // because two implicit conversions in a row aren't allowed. // It still allows assignment from T* through implicit conversion // from |T*| to |nsAutoPtr::Ptr| class Ptr { public: Ptr( T* aPtr ) : mPtr(aPtr) { } operator T*() const { return mPtr; } private: T* mPtr; }; private: T* mRawPtr; public: typedef T element_type; ~nsAutoPtr() { delete mRawPtr; } // Constructors nsAutoPtr() : mRawPtr(0) // default constructor { } nsAutoPtr( Ptr aRawPtr ) : mRawPtr(aRawPtr) // construct from a raw pointer (of the right type) { } nsAutoPtr( nsAutoPtr& aSmartPtr ) : mRawPtr( aSmartPtr.forget() ) // Construct by transferring ownership from another smart pointer. { } // Assignment operators nsAutoPtr& operator=( T* rhs ) // assign from a raw pointer (of the right type) { assign(rhs); return *this; } nsAutoPtr& operator=( nsAutoPtr& rhs ) // assign by transferring ownership from another smart pointer. { assign(rhs.forget()); return *this; } // Other pointer operators T* get() const /* Prefer the implicit conversion provided automatically by |operator T*() const|. Use |get()| _only_ to resolve ambiguity. */ { return mRawPtr; } operator T*() const /* ...makes an |nsAutoPtr| act like its underlying raw pointer type whenever it is used in a context where a raw pointer is expected. It is this operator that makes an |nsAutoPtr| substitutable for a raw pointer. Prefer the implicit use of this operator to calling |get()|, except where necessary to resolve ambiguity. */ { return get(); } T* forget() { T* temp = mRawPtr; mRawPtr = 0; return temp; } T* operator->() const { do { if (!(mRawPtr != 0)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "You can't dereference a NULL nsAutoPtr with operator->().", "mRawPtr != 0", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAutoPtr.h", 183); } } while (0); return get(); } // This operator is needed for gcc <= 4.0.* and for Sun Studio; it // causes internal compiler errors for some MSVC versions. (It's not // clear to me whether it should be needed.) nsAutoPtr* get_address() // This is not intended to be used by clients. See |address_of| // below. { return this; } const nsAutoPtr* get_address() const // This is not intended to be used by clients. See |address_of| // below. { return this; } #line 230 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAutoPtr.h" public: T& operator*() const { do { if (!(mRawPtr != 0)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "You can't dereference a NULL nsAutoPtr with operator*().", "mRawPtr != 0", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAutoPtr.h", 235); } } while (0); return *get(); } T** StartAssignment() { assign(0); return reinterpret_cast(&mRawPtr); #line 248 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAutoPtr.h" } }; template inline nsAutoPtr* address_of( nsAutoPtr& aPtr ) { return aPtr.get_address(); } template inline const nsAutoPtr* address_of( const nsAutoPtr& aPtr ) { return aPtr.get_address(); } #line 282 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAutoPtr.h" template class nsAutoPtrGetterTransfers /* ... This class is designed to be used for anonymous temporary objects in the argument list of calls that return COM interface pointers, e.g., nsAutoPtr fooP; ...->GetTransferedPointer(getter_Transfers(fooP)) DO NOT USE THIS TYPE DIRECTLY IN YOUR CODE. Use |getter_Transfers()| instead. When initialized with a |nsAutoPtr|, as in the example above, it returns a |void**|, a |T**|, or an |nsISupports**| as needed, that the outer call (|GetTransferedPointer| in this case) can fill in. This type should be a nested class inside |nsAutoPtr|. */ { public: explicit nsAutoPtrGetterTransfers( nsAutoPtr& aSmartPtr ) : mTargetSmartPtr(aSmartPtr) { // nothing else to do } operator void**() { return reinterpret_cast(mTargetSmartPtr.StartAssignment()); } operator T**() { return mTargetSmartPtr.StartAssignment(); } T*& operator*() { return *(mTargetSmartPtr.StartAssignment()); } private: nsAutoPtr& mTargetSmartPtr; }; template inline nsAutoPtrGetterTransfers getter_Transfers( nsAutoPtr& aSmartPtr ) /* Used around a |nsAutoPtr| when ...makes the class |nsAutoPtrGetterTransfers| invisible. */ { return nsAutoPtrGetterTransfers(aSmartPtr); } // Comparing two |nsAutoPtr|s template inline NSCAP_BOOL operator==( const nsAutoPtr& lhs, const nsAutoPtr& rhs ) { return static_cast(lhs.get()) == static_cast(rhs.get()); } template inline NSCAP_BOOL operator!=( const nsAutoPtr& lhs, const nsAutoPtr& rhs ) { return static_cast(lhs.get()) != static_cast(rhs.get()); } // Comparing an |nsAutoPtr| to a raw pointer template inline NSCAP_BOOL operator==( const nsAutoPtr& lhs, const U* rhs ) { return static_cast(lhs.get()) == static_cast(rhs); } template inline NSCAP_BOOL operator==( const U* lhs, const nsAutoPtr& rhs ) { return static_cast(lhs) == static_cast(rhs.get()); } template inline NSCAP_BOOL operator!=( const nsAutoPtr& lhs, const U* rhs ) { return static_cast(lhs.get()) != static_cast(rhs); } template inline NSCAP_BOOL operator!=( const U* lhs, const nsAutoPtr& rhs ) { return static_cast(lhs) != static_cast(rhs.get()); } // To avoid ambiguities caused by the presence of builtin |operator==|s // creating a situation where one of the |operator==| defined above // has a better conversion for one argument and the builtin has a // better conversion for the other argument, define additional // |operator==| without the |const| on the raw pointer. // See bug 65664 for details. template inline NSCAP_BOOL operator==( const nsAutoPtr& lhs, U* rhs ) { return static_cast(lhs.get()) == const_cast(rhs); } template inline NSCAP_BOOL operator==( U* lhs, const nsAutoPtr& rhs ) { return const_cast(lhs) == static_cast(rhs.get()); } template inline NSCAP_BOOL operator!=( const nsAutoPtr& lhs, U* rhs ) { return static_cast(lhs.get()) != const_cast(rhs); } template inline NSCAP_BOOL operator!=( U* lhs, const nsAutoPtr& rhs ) { return const_cast(lhs) != static_cast(rhs.get()); } #line 439 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAutoPtr.h" // Comparing an |nsAutoPtr| to |0| template inline NSCAP_BOOL operator==( const nsAutoPtr& lhs, NSCAP_Zero* rhs ) // specifically to allow |smartPtr == 0| { return static_cast(lhs.get()) == reinterpret_cast(rhs); } template inline NSCAP_BOOL operator==( NSCAP_Zero* lhs, const nsAutoPtr& rhs ) // specifically to allow |0 == smartPtr| { return reinterpret_cast(lhs) == static_cast(rhs.get()); } template inline NSCAP_BOOL operator!=( const nsAutoPtr& lhs, NSCAP_Zero* rhs ) // specifically to allow |smartPtr != 0| { return static_cast(lhs.get()) != reinterpret_cast(rhs); } template inline NSCAP_BOOL operator!=( NSCAP_Zero* lhs, const nsAutoPtr& rhs ) // specifically to allow |0 != smartPtr| { return reinterpret_cast(lhs) != static_cast(rhs.get()); } /*****************************************************************************/ // template class nsAutoArrayPtrGetterTransfers; template class nsAutoArrayPtr { private: void** begin_assignment() { assign(0); return reinterpret_cast(&mRawPtr); } void assign( T* newPtr ) { T* oldPtr = mRawPtr; mRawPtr = newPtr; delete [] oldPtr; } private: T* mRawPtr; public: typedef T element_type; ~nsAutoArrayPtr() { delete [] mRawPtr; } // Constructors nsAutoArrayPtr() : mRawPtr(0) // default constructor { } nsAutoArrayPtr( T* aRawPtr ) : mRawPtr(aRawPtr) // construct from a raw pointer (of the right type) { } nsAutoArrayPtr( nsAutoArrayPtr& aSmartPtr ) : mRawPtr( aSmartPtr.forget() ) // Construct by transferring ownership from another smart pointer. { } // Assignment operators nsAutoArrayPtr& operator=( T* rhs ) // assign from a raw pointer (of the right type) { assign(rhs); return *this; } nsAutoArrayPtr& operator=( nsAutoArrayPtr& rhs ) // assign by transferring ownership from another smart pointer. { assign(rhs.forget()); return *this; } // Other pointer operators T* get() const /* Prefer the implicit conversion provided automatically by |operator T*() const|. Use |get()| _only_ to resolve ambiguity. */ { return mRawPtr; } operator T*() const /* ...makes an |nsAutoArrayPtr| act like its underlying raw pointer type whenever it is used in a context where a raw pointer is expected. It is this operator that makes an |nsAutoArrayPtr| substitutable for a raw pointer. Prefer the implicit use of this operator to calling |get()|, except where necessary to resolve ambiguity. */ { return get(); } T* forget() { T* temp = mRawPtr; mRawPtr = 0; return temp; } T* operator->() const { do { if (!(mRawPtr != 0)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "You can't dereference a NULL nsAutoArrayPtr with operator->().", "mRawPtr != 0", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAutoPtr.h", 616); } } while (0); return get(); } nsAutoArrayPtr* get_address() // This is not intended to be used by clients. See |address_of| // below. { return this; } const nsAutoArrayPtr* get_address() const // This is not intended to be used by clients. See |address_of| // below. { return this; } #line 650 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAutoPtr.h" public: T& operator*() const { do { if (!(mRawPtr != 0)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "You can't dereference a NULL nsAutoArrayPtr with operator*().", "mRawPtr != 0", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAutoPtr.h", 655); } } while (0); return *get(); } T** StartAssignment() { assign(0); return reinterpret_cast(&mRawPtr); #line 668 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAutoPtr.h" } }; template inline nsAutoArrayPtr* address_of( nsAutoArrayPtr& aPtr ) { return aPtr.get_address(); } template inline const nsAutoArrayPtr* address_of( const nsAutoArrayPtr& aPtr ) { return aPtr.get_address(); } #line 702 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAutoPtr.h" template class nsAutoArrayPtrGetterTransfers /* ... This class is designed to be used for anonymous temporary objects in the argument list of calls that return COM interface pointers, e.g., nsAutoArrayPtr fooP; ...->GetTransferedPointer(getter_Transfers(fooP)) DO NOT USE THIS TYPE DIRECTLY IN YOUR CODE. Use |getter_Transfers()| instead. When initialized with a |nsAutoArrayPtr|, as in the example above, it returns a |void**|, a |T**|, or an |nsISupports**| as needed, that the outer call (|GetTransferedPointer| in this case) can fill in. This type should be a nested class inside |nsAutoArrayPtr|. */ { public: explicit nsAutoArrayPtrGetterTransfers( nsAutoArrayPtr& aSmartPtr ) : mTargetSmartPtr(aSmartPtr) { // nothing else to do } operator void**() { return reinterpret_cast(mTargetSmartPtr.StartAssignment()); } operator T**() { return mTargetSmartPtr.StartAssignment(); } T*& operator*() { return *(mTargetSmartPtr.StartAssignment()); } private: nsAutoArrayPtr& mTargetSmartPtr; }; template inline nsAutoArrayPtrGetterTransfers getter_Transfers( nsAutoArrayPtr& aSmartPtr ) /* Used around a |nsAutoArrayPtr| when ...makes the class |nsAutoArrayPtrGetterTransfers| invisible. */ { return nsAutoArrayPtrGetterTransfers(aSmartPtr); } // Comparing two |nsAutoArrayPtr|s template inline NSCAP_BOOL operator==( const nsAutoArrayPtr& lhs, const nsAutoArrayPtr& rhs ) { return static_cast(lhs.get()) == static_cast(rhs.get()); } template inline NSCAP_BOOL operator!=( const nsAutoArrayPtr& lhs, const nsAutoArrayPtr& rhs ) { return static_cast(lhs.get()) != static_cast(rhs.get()); } // Comparing an |nsAutoArrayPtr| to a raw pointer template inline NSCAP_BOOL operator==( const nsAutoArrayPtr& lhs, const U* rhs ) { return static_cast(lhs.get()) == static_cast(rhs); } template inline NSCAP_BOOL operator==( const U* lhs, const nsAutoArrayPtr& rhs ) { return static_cast(lhs) == static_cast(rhs.get()); } template inline NSCAP_BOOL operator!=( const nsAutoArrayPtr& lhs, const U* rhs ) { return static_cast(lhs.get()) != static_cast(rhs); } template inline NSCAP_BOOL operator!=( const U* lhs, const nsAutoArrayPtr& rhs ) { return static_cast(lhs) != static_cast(rhs.get()); } // To avoid ambiguities caused by the presence of builtin |operator==|s // creating a situation where one of the |operator==| defined above // has a better conversion for one argument and the builtin has a // better conversion for the other argument, define additional // |operator==| without the |const| on the raw pointer. // See bug 65664 for details. template inline NSCAP_BOOL operator==( const nsAutoArrayPtr& lhs, U* rhs ) { return static_cast(lhs.get()) == const_cast(rhs); } template inline NSCAP_BOOL operator==( U* lhs, const nsAutoArrayPtr& rhs ) { return const_cast(lhs) == static_cast(rhs.get()); } template inline NSCAP_BOOL operator!=( const nsAutoArrayPtr& lhs, U* rhs ) { return static_cast(lhs.get()) != const_cast(rhs); } template inline NSCAP_BOOL operator!=( U* lhs, const nsAutoArrayPtr& rhs ) { return const_cast(lhs) != static_cast(rhs.get()); } #line 859 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAutoPtr.h" // Comparing an |nsAutoArrayPtr| to |0| template inline NSCAP_BOOL operator==( const nsAutoArrayPtr& lhs, NSCAP_Zero* rhs ) // specifically to allow |smartPtr == 0| { return static_cast(lhs.get()) == reinterpret_cast(rhs); } template inline NSCAP_BOOL operator==( NSCAP_Zero* lhs, const nsAutoArrayPtr& rhs ) // specifically to allow |0 == smartPtr| { return reinterpret_cast(lhs) == static_cast(rhs.get()); } template inline NSCAP_BOOL operator!=( const nsAutoArrayPtr& lhs, NSCAP_Zero* rhs ) // specifically to allow |smartPtr != 0| { return static_cast(lhs.get()) != reinterpret_cast(rhs); } template inline NSCAP_BOOL operator!=( NSCAP_Zero* lhs, const nsAutoArrayPtr& rhs ) // specifically to allow |0 != smartPtr| { return reinterpret_cast(lhs) != static_cast(rhs.get()); } /*****************************************************************************/ // template class nsRefPtrGetterAddRefs; template class nsRefPtr { private: void assign_with_AddRef( T* rawPtr ) { if ( rawPtr ) rawPtr->AddRef(); assign_assuming_AddRef(rawPtr); } void** begin_assignment() { assign_assuming_AddRef(0); return reinterpret_cast(&mRawPtr); } void assign_assuming_AddRef( T* newPtr ) { T* oldPtr = mRawPtr; mRawPtr = newPtr; if ( oldPtr ) oldPtr->Release(); } private: T* mRawPtr; public: typedef T element_type; ~nsRefPtr() { if ( mRawPtr ) mRawPtr->Release(); } // Constructors nsRefPtr() : mRawPtr(0) // default constructor { } nsRefPtr( const nsRefPtr& aSmartPtr ) : mRawPtr(aSmartPtr.mRawPtr) // copy-constructor { if ( mRawPtr ) mRawPtr->AddRef(); } nsRefPtr( T* aRawPtr ) : mRawPtr(aRawPtr) // construct from a raw pointer (of the right type) { if ( mRawPtr ) mRawPtr->AddRef(); } template nsRefPtr( const already_AddRefed& aSmartPtr ) : mRawPtr(aSmartPtr.mRawPtr) // construct from |dont_AddRef(expr)| { } nsRefPtr( const nsCOMPtr_helper& helper ) { void* newRawPtr; if (((!!((helper((T::template COMTypeInfo::kIID), &newRawPtr)) & 0x80000000)))) newRawPtr = 0; mRawPtr = static_cast(newRawPtr); } // Assignment operators nsRefPtr& operator=( const nsRefPtr& rhs ) // copy assignment operator { assign_with_AddRef(rhs.mRawPtr); return *this; } nsRefPtr& operator=( T* rhs ) // assign from a raw pointer (of the right type) { assign_with_AddRef(rhs); return *this; } template nsRefPtr& operator=( const already_AddRefed& rhs ) // assign from |dont_AddRef(expr)| { assign_assuming_AddRef(rhs.mRawPtr); return *this; } nsRefPtr& operator=( const nsCOMPtr_helper& helper ) { void* newRawPtr; if (((!!((helper((T::template COMTypeInfo::kIID), &newRawPtr)) & 0x80000000)))) newRawPtr = 0; assign_assuming_AddRef(static_cast(newRawPtr)); return *this; } // Other pointer operators void swap( nsRefPtr& rhs ) // ...exchange ownership with |rhs|; can save a pair of refcount operations { T* temp = rhs.mRawPtr; rhs.mRawPtr = mRawPtr; mRawPtr = temp; } void swap( T*& rhs ) // ...exchange ownership with |rhs|; can save a pair of refcount operations { T* temp = rhs; rhs = mRawPtr; mRawPtr = temp; } already_AddRefed forget() // return the value of mRawPtr and null out mRawPtr. Useful for // already_AddRefed return values. { T* temp = 0; swap(temp); return temp; } template void forget( I** rhs) // Set the target of rhs to the value of mRawPtr and null out mRawPtr. // Useful to avoid unnecessary AddRef/Release pairs with "out" // parameters where rhs bay be a T** or an I** where I is a base class // of T. { do { if (!(rhs)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Null pointer passed to forget!", "rhs", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAutoPtr.h", 1086); } } while (0); *rhs = mRawPtr; mRawPtr = 0; } T* get() const /* Prefer the implicit conversion provided automatically by |operator T*() const|. Use |get()| to resolve ambiguity or to get a castable pointer. */ { return const_cast(mRawPtr); } operator T*() const /* ...makes an |nsRefPtr| act like its underlying raw pointer type whenever it is used in a context where a raw pointer is expected. It is this operator that makes an |nsRefPtr| substitutable for a raw pointer. Prefer the implicit use of this operator to calling |get()|, except where necessary to resolve ambiguity. */ { return get(); } T* operator->() const { do { if (!(mRawPtr != 0)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "You can't dereference a NULL nsRefPtr with operator->().", "mRawPtr != 0", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAutoPtr.h", 1117); } } while (0); return get(); } // This operator is needed for gcc <= 4.0.* and for Sun Studio; it // causes internal compiler errors for some MSVC versions. (It's not // clear to me whether it should be needed.) nsRefPtr* get_address() // This is not intended to be used by clients. See |address_of| // below. { return this; } const nsRefPtr* get_address() const // This is not intended to be used by clients. See |address_of| // below. { return this; } #line 1164 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAutoPtr.h" public: T& operator*() const { do { if (!(mRawPtr != 0)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "You can't dereference a NULL nsRefPtr with operator*().", "mRawPtr != 0", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAutoPtr.h", 1169); } } while (0); return *get(); } T** StartAssignment() { assign_assuming_AddRef(0); return reinterpret_cast(&mRawPtr); #line 1182 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAutoPtr.h" } }; template inline nsRefPtr* address_of( nsRefPtr& aPtr ) { return aPtr.get_address(); } template inline const nsRefPtr* address_of( const nsRefPtr& aPtr ) { return aPtr.get_address(); } #line 1216 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAutoPtr.h" template class nsRefPtrGetterAddRefs /* ... This class is designed to be used for anonymous temporary objects in the argument list of calls that return COM interface pointers, e.g., nsRefPtr fooP; ...->GetAddRefedPointer(getter_AddRefs(fooP)) DO NOT USE THIS TYPE DIRECTLY IN YOUR CODE. Use |getter_AddRefs()| instead. When initialized with a |nsRefPtr|, as in the example above, it returns a |void**|, a |T**|, or an |nsISupports**| as needed, that the outer call (|GetAddRefedPointer| in this case) can fill in. This type should be a nested class inside |nsRefPtr|. */ { public: explicit nsRefPtrGetterAddRefs( nsRefPtr& aSmartPtr ) : mTargetSmartPtr(aSmartPtr) { // nothing else to do } operator void**() { return reinterpret_cast(mTargetSmartPtr.StartAssignment()); } operator T**() { return mTargetSmartPtr.StartAssignment(); } T*& operator*() { return *(mTargetSmartPtr.StartAssignment()); } private: nsRefPtr& mTargetSmartPtr; }; template inline nsRefPtrGetterAddRefs getter_AddRefs( nsRefPtr& aSmartPtr ) /* Used around a |nsRefPtr| when ...makes the class |nsRefPtrGetterAddRefs| invisible. */ { return nsRefPtrGetterAddRefs(aSmartPtr); } // Comparing two |nsRefPtr|s template inline NSCAP_BOOL operator==( const nsRefPtr& lhs, const nsRefPtr& rhs ) { return static_cast(lhs.get()) == static_cast(rhs.get()); } template inline NSCAP_BOOL operator!=( const nsRefPtr& lhs, const nsRefPtr& rhs ) { return static_cast(lhs.get()) != static_cast(rhs.get()); } // Comparing an |nsRefPtr| to a raw pointer template inline NSCAP_BOOL operator==( const nsRefPtr& lhs, const U* rhs ) { return static_cast(lhs.get()) == static_cast(rhs); } template inline NSCAP_BOOL operator==( const U* lhs, const nsRefPtr& rhs ) { return static_cast(lhs) == static_cast(rhs.get()); } template inline NSCAP_BOOL operator!=( const nsRefPtr& lhs, const U* rhs ) { return static_cast(lhs.get()) != static_cast(rhs); } template inline NSCAP_BOOL operator!=( const U* lhs, const nsRefPtr& rhs ) { return static_cast(lhs) != static_cast(rhs.get()); } // To avoid ambiguities caused by the presence of builtin |operator==|s // creating a situation where one of the |operator==| defined above // has a better conversion for one argument and the builtin has a // better conversion for the other argument, define additional // |operator==| without the |const| on the raw pointer. // See bug 65664 for details. template inline NSCAP_BOOL operator==( const nsRefPtr& lhs, U* rhs ) { return static_cast(lhs.get()) == const_cast(rhs); } template inline NSCAP_BOOL operator==( U* lhs, const nsRefPtr& rhs ) { return const_cast(lhs) == static_cast(rhs.get()); } template inline NSCAP_BOOL operator!=( const nsRefPtr& lhs, U* rhs ) { return static_cast(lhs.get()) != const_cast(rhs); } template inline NSCAP_BOOL operator!=( U* lhs, const nsRefPtr& rhs ) { return const_cast(lhs) != static_cast(rhs.get()); } #line 1373 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAutoPtr.h" // Comparing an |nsRefPtr| to |0| template inline NSCAP_BOOL operator==( const nsRefPtr& lhs, NSCAP_Zero* rhs ) // specifically to allow |smartPtr == 0| { return static_cast(lhs.get()) == reinterpret_cast(rhs); } template inline NSCAP_BOOL operator==( NSCAP_Zero* lhs, const nsRefPtr& rhs ) // specifically to allow |0 == smartPtr| { return reinterpret_cast(lhs) == static_cast(rhs.get()); } template inline NSCAP_BOOL operator!=( const nsRefPtr& lhs, NSCAP_Zero* rhs ) // specifically to allow |smartPtr != 0| { return static_cast(lhs.get()) != reinterpret_cast(rhs); } template inline NSCAP_BOOL operator!=( NSCAP_Zero* lhs, const nsRefPtr& rhs ) // specifically to allow |0 != smartPtr| { return reinterpret_cast(lhs) != static_cast(rhs.get()); } template inline nsresult CallQueryInterface( nsRefPtr& aSourcePtr, DestinationType** aDestPtr ) { return CallQueryInterface(aSourcePtr.get(), aDestPtr); } /*****************************************************************************/ template class nsQueryObject : public nsCOMPtr_helper { public: nsQueryObject(T* aRawPtr) : mRawPtr(aRawPtr) {} virtual nsresult __fastcall operator()( const nsIID& aIID, void** aResult ) const { nsresult status = mRawPtr ? mRawPtr->QueryInterface(aIID, aResult) : ((nsresult) 0x80004003L); return status; } private: T* mRawPtr; }; template class nsQueryObjectWithError : public nsCOMPtr_helper { public: nsQueryObjectWithError(T* aRawPtr, nsresult* aErrorPtr) : mRawPtr(aRawPtr), mErrorPtr(aErrorPtr) {} virtual nsresult __fastcall operator()( const nsIID& aIID, void** aResult ) const { nsresult status = mRawPtr ? mRawPtr->QueryInterface(aIID, aResult) : ((nsresult) 0x80004003L); if (mErrorPtr) *mErrorPtr = status; return status; } private: T* mRawPtr; nsresult* mErrorPtr; }; template inline nsQueryObject do_QueryObject(T* aRawPtr) { return nsQueryObject(aRawPtr); } template inline nsQueryObject do_QueryObject(nsCOMPtr& aRawPtr) { return nsQueryObject(aRawPtr); } template inline nsQueryObject do_QueryObject(nsRefPtr& aRawPtr) { return nsQueryObject(aRawPtr); } template inline nsQueryObjectWithError do_QueryObject(T* aRawPtr, nsresult* aErrorPtr) { return nsQueryObjectWithError(aRawPtr, aErrorPtr); } template inline nsQueryObjectWithError do_QueryObject(nsCOMPtr& aRawPtr, nsresult* aErrorPtr) { return nsQueryObjectWithError(aRawPtr, aErrorPtr); } template inline nsQueryObjectWithError do_QueryObject(nsRefPtr& aRawPtr, nsresult* aErrorPtr) { return nsQueryObjectWithError(aRawPtr, aErrorPtr); } /*****************************************************************************/ #line 1536 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAutoPtr.h" #line 44 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxASurface.h" typedef struct _cairo_surface cairo_surface_t; typedef struct _cairo_user_data_key cairo_user_data_key_t; typedef void (*thebes_destroy_func_t) (void *data); class gfxImageSurface; /** * A surface is something you can draw on. Instantiate a subclass of this * abstract class, and use gfxContext to draw on this surface. */ class __declspec(dllexport) gfxASurface { public: nsrefcnt AddRef(void); nsrefcnt Release(void); public: /** * The format for an image surface. For all formats with alpha data, 0 * means transparent, 1 or 255 means fully opaque. */ typedef enum { ImageFormatARGB32, ///< ARGB data in native endianness, using premultiplied alpha ImageFormatRGB24, ///< xRGB data in native endianness ImageFormatA8, ///< Only an alpha channel ImageFormatA1, ///< Packed transparency information (one byte refers to 8 pixels) ImageFormatRGB16_565, ///< RGB_565 data in native endianness ImageFormatUnknown } gfxImageFormat; typedef enum { SurfaceTypeImage, SurfaceTypePDF, SurfaceTypePS, SurfaceTypeXlib, SurfaceTypeXcb, SurfaceTypeGlitz, SurfaceTypeQuartz, SurfaceTypeWin32, SurfaceTypeBeOS, SurfaceTypeDirectFB, SurfaceTypeSVG, SurfaceTypeOS2, SurfaceTypeWin32Printing, SurfaceTypeQuartzImage, SurfaceTypeScript, SurfaceTypeQPainter, SurfaceTypeRecording, SurfaceTypeVG, SurfaceTypeGL, SurfaceTypeDRM, SurfaceTypeTee, SurfaceTypeXML, SurfaceTypeSkia, SurfaceTypeD2D, SurfaceTypeMax } gfxSurfaceType; typedef enum { CONTENT_COLOR = 0x1000, CONTENT_ALPHA = 0x2000, CONTENT_COLOR_ALPHA = 0x3000 } gfxContentType; /** Wrap the given cairo surface and return a gfxASurface for it. * This adds a reference to csurf (owned by the returned gfxASurface). */ static already_AddRefed Wrap(cairo_surface_t *csurf); /*** this DOES NOT addref the surface */ cairo_surface_t *CairoSurface() { do { if (!(mSurface != 0L)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "gfxASurface::CairoSurface called with mSurface == nsnull!", "mSurface != nsnull", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxASurface.h", 116); } } while (0); return mSurface; } gfxSurfaceType GetType() const; gfxContentType GetContentType() const; void SetDeviceOffset(const gfxPoint& offset); gfxPoint GetDeviceOffset() const; void Flush() const; void MarkDirty(); void MarkDirty(const gfxRect& r); /* Printing backend functions */ virtual nsresult BeginPrinting(const nsAString_internal& aTitle, const nsAString_internal& aPrintToFileName); virtual nsresult EndPrinting(); virtual nsresult AbortPrinting(); virtual nsresult BeginPage(); virtual nsresult EndPage(); void SetData(const cairo_user_data_key_t *key, void *user_data, thebes_destroy_func_t destroy); void *GetData(const cairo_user_data_key_t *key); virtual void Finish(); /** * Create an offscreen surface that can be efficiently copied into * this surface (at least if tiling is not involved). * Returns null on error. */ virtual already_AddRefed CreateSimilarSurface(gfxContentType aType, const gfxIntSize& aSize); /** * Returns an image surface for this surface, or nsnull if not supported. * This will not copy image data, just wraps an image surface around * pixel data already available in memory. */ virtual already_AddRefed GetAsImageSurface() { return 0L; } int CairoStatus(); /* Make sure that the given dimensions don't overflow a 32-bit signed int * using 4 bytes per pixel; optionally, make sure that either dimension * doesn't exceed the given limit. */ static PRBool CheckSurfaceSize(const gfxIntSize& sz, PRInt32 limit = 0); /* Return the default set of context flags for this surface; these are * hints to the context about any special rendering considerations. See * gfxContext::SetFlag for documentation. */ virtual PRInt32 GetDefaultContextFlags() const { return 0; } static gfxContentType ContentFromFormat(gfxImageFormat format); static gfxImageFormat FormatFromContent(gfxContentType format); /** * Record number of bytes for given surface type. Use positive bytes * for allocations and negative bytes for deallocations. */ static void RecordMemoryUsedForSurfaceType(gfxASurface::gfxSurfaceType aType, PRInt32 aBytes); /** * Same as above, but use current surface type as returned by GetType(). * The bytes will be accumulated until RecordMemoryFreed is called, * in which case the value that was recorded for this surface will * be freed. */ void RecordMemoryUsed(PRInt32 aBytes); void RecordMemoryFreed(); PRInt32 KnownMemoryUsed() { return mBytesRecorded; } static PRInt32 BytePerPixelFromFormat(gfxImageFormat format); virtual const gfxIntSize GetSize() const { return gfxIntSize(-1, -1); } virtual PRBool SupportsSelfCopy() { return 1; } protected: gfxASurface() : mSurface(0L), mFloatingRefs(0), mBytesRecorded(0), mSurfaceValid(0) { do { NS_LogCtor_P((void*)this, "gfxASurface", sizeof(*this)); } while (0); } static gfxASurface* GetSurfaceWrapper(cairo_surface_t *csurf); static void SetSurfaceWrapper(cairo_surface_t *csurf, gfxASurface *asurf); void Init(cairo_surface_t *surface, PRBool existingSurface = 0); virtual ~gfxASurface() { RecordMemoryFreed(); do { NS_LogDtor_P((void*)this, "gfxASurface", sizeof(*this)); } while (0); } cairo_surface_t *mSurface; private: static void SurfaceDestroyFunc(void *data); PRInt32 mFloatingRefs; PRInt32 mBytesRecorded; protected: PRPackedBool mSurfaceValid; }; /** * An Unknown surface; used to wrap unknown cairo_surface_t returns from cairo */ class __declspec(dllexport) gfxUnknownSurface : public gfxASurface { public: gfxUnknownSurface(cairo_surface_t *surf) { Init(surf, 1); } virtual ~gfxUnknownSurface() { } }; #line 247 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxASurface.h" #line 43 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\Layers.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsRegion.h" /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Dainis Jonitis, . * Portions created by the Initial Developer are Copyright (C) 2001 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsRect.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 42 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsMathUtils.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla Foundation code. * * The Initial Developer of the Original Code is Mozilla Foundation. * Portions created by the Initial Developer are Copyright (C) 2007 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 43 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h" #line 1 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\math.h" /*** *math.h - definitions and declarations for math library * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file contains constant definitions and external subroutine * declarations for the math subroutine library. * [ANSI/System V] * * [Public] * ****/ #line 636 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\math.h" #line 44 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsDebug.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 47 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h" /* * Basic type used for the geometry classes. * * Normally all coordinates are maintained in an app unit coordinate * space. An app unit is 1/60th of a CSS device pixel, which is, in turn * an integer number of device pixels, such at the CSS DPI is as close to * 96dpi as possible. */ // This controls whether we're using integers or floats for coordinates. We // want to eventually use floats. If you change this, you need to manually // change the definition of nscoord in gfx/src/gfxidltypes.idl. //#define NS_COORD_IS_FLOAT inline float NS_IEEEPositiveInfinity() { union { PRUint32 mPRUint32; float mFloat; } pun; pun.mPRUint32 = 0x7F800000; return pun.mFloat; } inline PRBool NS_IEEEIsNan(float aF) { union { PRUint32 mBits; float mFloat; } pun; pun.mFloat = aF; return (pun.mBits & 0x7F800000) == 0x7F800000 && (pun.mBits & 0x007FFFFF) != 0; } typedef PRInt32 nscoord; #line 81 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h" inline void VERIFY_COORD(nscoord aCoord) { } inline nscoord NSToCoordRound(float aValue) { return NS_lroundup30(aValue); #line 98 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h" } inline nscoord NSToCoordRoundWithClamp(float aValue) { // Bounds-check before converting out of float, to avoid overflow if (aValue >= nscoord(1 << 30)) { NS_DebugBreak_P(NS_DEBUG_WARNING, "Overflowed nscoord_MAX in conversion to nscoord", 0L, "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h", 105); return nscoord(1 << 30); } if (aValue <= (-nscoord(1 << 30))) { NS_DebugBreak_P(NS_DEBUG_WARNING, "Overflowed nscoord_MIN in conversion to nscoord", 0L, "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h", 109); return (-nscoord(1 << 30)); } #line 113 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h" return NSToCoordRound(aValue); } /** * Returns aCoord * aScale, capping the product to nscoord_MAX or nscoord_MIN as * appropriate for the signs of aCoord and aScale. If requireNotNegative is * true, this method will enforce that aScale is not negative; use that * parametrization to get a check of that fact in debug builds. */ inline nscoord _nscoordSaturatingMultiply(nscoord aCoord, float aScale, PRBool requireNotNegative) { VERIFY_COORD(aCoord); if (requireNotNegative) { do { if (!(aScale >= 0.0f)) { NS_DebugBreak_P(NS_DEBUG_ABORT, "negative scaling factors must be handled manually", "aScale >= 0.0f", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h", 127); } } while (0); #line 128 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h" } // This one's only a warning because it may be possible to trigger it with // valid inputs. do { if (!((requireNotNegative ? aCoord > 0 : (aCoord > 0) == (aScale > 0)) ? floorf(aCoord * aScale) < nscoord(1 << 30) : ceilf(aCoord * aScale) > (-nscoord(1 << 30)))) { NS_DebugBreak_P(NS_DEBUG_WARNING, "nscoord multiplication capped", "(requireNotNegative ? aCoord > 0 : (aCoord > 0) == (aScale > 0)) ? floorf(aCoord * aScale) < nscoord_MAX : ceilf(aCoord * aScale) > nscoord_MIN", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h", 139); } } while (0); #line 140 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h" float product = aCoord * aScale; if (requireNotNegative ? aCoord > 0 : (aCoord > 0) == (aScale > 0)) return NSToCoordRoundWithClamp(((nscoord(1 << 30))<(product)?(nscoord(1 << 30)):(product))); return NSToCoordRoundWithClamp((((-nscoord(1 << 30)))>(product)?((-nscoord(1 << 30))):(product))); #line 146 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h" } /** * Returns aCoord * aScale, capping the product to nscoord_MAX or nscoord_MIN as * appropriate for the sign of aCoord. This method requires aScale to not be * negative; use this method when you know that aScale should never be * negative to get a sanity check of that invariant in debug builds. */ inline nscoord NSCoordSaturatingNonnegativeMultiply(nscoord aCoord, float aScale) { return _nscoordSaturatingMultiply(aCoord, aScale, 1); } /** * Returns aCoord * aScale, capping the product to nscoord_MAX or nscoord_MIN as * appropriate for the signs of aCoord and aScale. */ inline nscoord NSCoordSaturatingMultiply(nscoord aCoord, float aScale) { return _nscoordSaturatingMultiply(aCoord, aScale, 0); } inline nscoord NSCoordMultiply(nscoord aCoord, PRInt32 aScale) { VERIFY_COORD(aCoord); return aCoord * aScale; } inline nscoord NSCoordDivide(nscoord aCoord, float aVal) { VERIFY_COORD(aCoord); return (PRInt32)(aCoord/aVal); #line 178 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h" } inline nscoord NSCoordDivide(nscoord aCoord, PRInt32 aVal) { VERIFY_COORD(aCoord); return aCoord/aVal; #line 187 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h" } /** * Returns a + b, capping the sum to nscoord_MAX. * * This function assumes that neither argument is nscoord_MIN. * * Note: If/when we start using floats for nscoords, this function won't be as * necessary. Normal float addition correctly handles adding with infinity, * assuming we aren't adding nscoord_MIN. (-infinity) */ inline nscoord NSCoordSaturatingAdd(nscoord a, nscoord b) { VERIFY_COORD(a); VERIFY_COORD(b); do { if (!(a != (-nscoord(1 << 30)) && b != (-nscoord(1 << 30)))) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "NSCoordSaturatingAdd got nscoord_MIN as argument", "a != nscoord_MIN && b != nscoord_MIN", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h", 204); } } while (0); #line 205 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h" if (a == nscoord(1 << 30) || b == nscoord(1 << 30)) { // infinity + anything = anything + infinity = infinity return nscoord(1 << 30); } else { // a + b = a + b do { if (!(a < nscoord(1 << 30) && b < nscoord(1 << 30))) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Doing nscoord addition with values > nscoord_MAX", "a < nscoord_MAX && b < nscoord_MAX", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h", 216); } } while (0); #line 217 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h" do { if (!((PRInt64)a + (PRInt64)b > (PRInt64)(-nscoord(1 << 30)))) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "nscoord addition will reach or pass nscoord_MIN", "(PRInt64)a + (PRInt64)b > (PRInt64)nscoord_MIN", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h", 218); } } while (0); #line 219 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h" // This one's only a warning because the PR_MIN below means that // we'll handle this case correctly. do { if (!((PRInt64)a + (PRInt64)b < (PRInt64)nscoord(1 << 30))) { NS_DebugBreak_P(NS_DEBUG_WARNING, "nscoord addition capped to nscoord_MAX", "(PRInt64)a + (PRInt64)b < (PRInt64)nscoord_MAX", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h", 222); } } while (0); #line 223 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h" // Cap the result, just in case we're dealing with numbers near nscoord_MAX return ((nscoord(1 << 30))<(a + b)?(nscoord(1 << 30)):(a + b)); } #line 228 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h" } /** * Returns a - b, gracefully handling cases involving nscoord_MAX. * This function assumes that neither argument is nscoord_MIN. * * The behavior is as follows: * * a) infinity - infinity -> infMinusInfResult * b) N - infinity -> 0 (unexpected -- triggers NOTREACHED) * c) infinity - N -> infinity * d) N1 - N2 -> N1 - N2 * * Note: For float nscoords, cases (c) and (d) are handled by normal float * math. We still need to explicitly specify the behavior for cases (a) * and (b), though. (Under normal float math, those cases would return NaN * and -infinity, respectively.) */ inline nscoord NSCoordSaturatingSubtract(nscoord a, nscoord b, nscoord infMinusInfResult) { VERIFY_COORD(a); VERIFY_COORD(b); do { if (!(a != (-nscoord(1 << 30)) && b != (-nscoord(1 << 30)))) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "NSCoordSaturatingSubtract got nscoord_MIN as argument", "a != nscoord_MIN && b != nscoord_MIN", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h", 253); } } while (0); #line 254 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h" if (b == nscoord(1 << 30)) { if (a == nscoord(1 << 30)) { // case (a) return infMinusInfResult; } else { // case (b) NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Attempted to subtract [n - nscoord_MAX]", "Not Reached", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h", 261); return 0; } } else { if (a == nscoord(1 << 30)) { // case (c) for integers return nscoord(1 << 30); } else { // case (d) for integers do { if (!(a < nscoord(1 << 30) && b < nscoord(1 << 30))) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Doing nscoord subtraction with values > nscoord_MAX", "a < nscoord_MAX && b < nscoord_MAX", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h", 275); } } while (0); #line 276 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h" do { if (!((PRInt64)a - (PRInt64)b > (PRInt64)(-nscoord(1 << 30)))) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "nscoord subtraction will reach or pass nscoord_MIN", "(PRInt64)a - (PRInt64)b > (PRInt64)nscoord_MIN", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h", 277); } } while (0); #line 278 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h" // This one's only a warning because the PR_MIN below means that // we'll handle this case correctly. do { if (!((PRInt64)a - (PRInt64)b < (PRInt64)nscoord(1 << 30))) { NS_DebugBreak_P(NS_DEBUG_WARNING, "nscoord subtraction capped to nscoord_MAX", "(PRInt64)a - (PRInt64)b < (PRInt64)nscoord_MAX", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h", 281); } } while (0); #line 282 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h" // Cap the result, in case we're dealing with numbers near nscoord_MAX return ((nscoord(1 << 30))<(a - b)?(nscoord(1 << 30)):(a - b)); } } #line 288 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h" } /** compare against a nscoord "b", which might be unconstrained * "a" must not be unconstrained. * Every number is smaller than a unconstrained one */ inline PRBool NSCoordLessThan(nscoord a,nscoord b) { do { if (!(a != nscoord(1 << 30))) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "This coordinate should be constrained", "a != nscoord_MAX", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h", 297); } } while (0); #line 298 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h" return ((a < b) || (b == nscoord(1 << 30))); } /** compare against a nscoord "b", which might be unconstrained * "a" must not be unconstrained * No number is larger than a unconstrained one. */ inline PRBool NSCoordGreaterThan(nscoord a,nscoord b) { do { if (!(a != nscoord(1 << 30))) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "This coordinate should be constrained", "a != nscoord_MAX", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h", 309); } } while (0); #line 310 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h" return ((a > b) && (b != nscoord(1 << 30))); } /** * Convert an nscoord to a PRInt32. This *does not* do rounding because * coords are never fractional. They can be out of range, so this does * clamp out of bounds coord values to PR_INT32_MIN and PR_INT32_MAX. */ inline PRInt32 NSCoordToInt(nscoord aCoord) { VERIFY_COORD(aCoord); return aCoord; #line 336 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h" } inline float NSCoordToFloat(nscoord aCoord) { VERIFY_COORD(aCoord); return (float)aCoord; } /* * Coord Rounding Functions */ inline nscoord NSToCoordFloor(float aValue) { return nscoord(NS_floorf(aValue)); } inline nscoord NSToCoordFloorClamped(float aValue) { // Bounds-check before converting out of float, to avoid overflow if (aValue >= nscoord(1 << 30)) { NS_DebugBreak_P(NS_DEBUG_WARNING, "Overflowed nscoord_MAX in conversion to nscoord", 0L, "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h", 359); return nscoord(1 << 30); } if (aValue <= (-nscoord(1 << 30))) { NS_DebugBreak_P(NS_DEBUG_WARNING, "Overflowed nscoord_MIN in conversion to nscoord", 0L, "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h", 363); return (-nscoord(1 << 30)); } #line 367 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h" return NSToCoordFloor(aValue); } inline nscoord NSToCoordCeil(float aValue) { return nscoord(NS_ceilf(aValue)); } inline nscoord NSToCoordCeilClamped(float aValue) { // Bounds-check before converting out of float, to avoid overflow if (aValue >= nscoord(1 << 30)) { NS_DebugBreak_P(NS_DEBUG_WARNING, "Overflowed nscoord_MAX in conversion to nscoord", 0L, "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h", 380); return nscoord(1 << 30); } if (aValue <= (-nscoord(1 << 30))) { NS_DebugBreak_P(NS_DEBUG_WARNING, "Overflowed nscoord_MIN in conversion to nscoord", 0L, "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h", 384); return (-nscoord(1 << 30)); } #line 388 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h" return NSToCoordCeil(aValue); } /* * Int Rounding Functions */ inline PRInt32 NSToIntFloor(float aValue) { return PRInt32(NS_floorf(aValue)); } inline PRInt32 NSToIntCeil(float aValue) { return PRInt32(NS_ceilf(aValue)); } inline PRInt32 NSToIntRound(float aValue) { return NS_lroundf(aValue); } inline PRInt32 NSToIntRoundUp(float aValue) { return PRInt32(NS_floorf(aValue + 0.5f)); } /* * App Unit/Pixel conversions */ inline nscoord NSFloatPixelsToAppUnits(float aPixels, float aAppUnitsPerPixel) { return NSToCoordRoundWithClamp(aPixels * aAppUnitsPerPixel); } inline nscoord NSIntPixelsToAppUnits(PRInt32 aPixels, PRInt32 aAppUnitsPerPixel) { // The cast to nscoord makes sure we don't overflow if we ever change // nscoord to float nscoord r = aPixels * (nscoord)aAppUnitsPerPixel; VERIFY_COORD(r); return r; } inline float NSAppUnitsToFloatPixels(nscoord aAppUnits, float aAppUnitsPerPixel) { return (float(aAppUnits) / aAppUnitsPerPixel); } inline PRInt32 NSAppUnitsToIntPixels(nscoord aAppUnits, float aAppUnitsPerPixel) { return NSToIntRound(float(aAppUnits) / aAppUnitsPerPixel); } inline float NSCoordScale(nscoord aCoord, PRInt32 aFromAPP, PRInt32 aToAPP) { return (NSCoordToFloat(aCoord) * aToAPP) / aFromAPP; } /// handy constants /* * Twips/unit conversions */ inline float NSUnitsToTwips(float aValue, float aPointsPerUnit) { return aValue * aPointsPerUnit * 20.0f; } inline float NSTwipsToUnits(float aTwips, float aUnitsPerPoint) { return (aTwips * (aUnitsPerPoint / 20.0f)); } /// Unit conversion macros //@{ //@} #line 490 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h" #line 44 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsRect.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsPoint.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 42 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsPoint.h" struct nsIntPoint; struct nsPoint { nscoord x, y; // Constructors nsPoint() {} nsPoint(const nsPoint& aPoint) { x = aPoint.x; y = aPoint.y;} nsPoint(nscoord aX, nscoord aY) { VERIFY_COORD(aX); VERIFY_COORD(aY); x = aX; y = aY;} void MoveTo(nscoord aX, nscoord aY) {x = aX; y = aY;} void MoveBy(nscoord aDx, nscoord aDy) {x += aDx; y += aDy;} // Overloaded operators. Note that '=' isn't defined so we'll get the // compiler generated default assignment operator PRBool operator==(const nsPoint& aPoint) const { return (PRBool) ((x == aPoint.x) && (y == aPoint.y)); } PRBool operator!=(const nsPoint& aPoint) const { return (PRBool) ((x != aPoint.x) || (y != aPoint.y)); } nsPoint operator+(const nsPoint& aPoint) const { return nsPoint(x + aPoint.x, y + aPoint.y); } nsPoint operator-(const nsPoint& aPoint) const { return nsPoint(x - aPoint.x, y - aPoint.y); } nsPoint& operator+=(const nsPoint& aPoint) { x += aPoint.x; y += aPoint.y; return *this; } nsPoint& operator-=(const nsPoint& aPoint) { x -= aPoint.x; y -= aPoint.y; return *this; } nsPoint operator-() const { return nsPoint(-x, -y); } inline nsIntPoint ToNearestPixels(nscoord aAppUnitsPerPixel) const; // Converts this point from aFromAPP, an appunits per pixel ratio, to aToAPP. inline nsPoint ConvertAppUnits(PRInt32 aFromAPP, PRInt32 aToAPP) const; }; struct nsIntPoint { PRInt32 x, y; // Constructors nsIntPoint() {} nsIntPoint(const nsIntPoint& aPoint) { x = aPoint.x; y = aPoint.y;} nsIntPoint(PRInt32 aX, PRInt32 aY) { x = aX; y = aY;} PRBool operator==(const nsIntPoint& aPoint) const { return (PRBool) ((x == aPoint.x) && (y == aPoint.y)); } PRBool operator!=(const nsIntPoint& aPoint) const { return (PRBool) ((x != aPoint.x) || (y != aPoint.y)); } nsIntPoint operator+(const nsIntPoint& aPoint) const { return nsIntPoint(x + aPoint.x, y + aPoint.y); } nsIntPoint operator-(const nsIntPoint& aPoint) const { return nsIntPoint(x - aPoint.x, y - aPoint.y); } nsIntPoint& operator+=(const nsIntPoint& aPoint) { x += aPoint.x; y += aPoint.y; return *this; } nsIntPoint& operator-=(const nsIntPoint& aPoint) { x -= aPoint.x; y -= aPoint.y; return *this; } nsIntPoint operator-() const { return nsIntPoint(-x, -y); } void MoveTo(PRInt32 aX, PRInt32 aY) {x = aX; y = aY;} }; inline nsIntPoint nsPoint::ToNearestPixels(nscoord aAppUnitsPerPixel) const { return nsIntPoint( NSToIntRoundUp(NSAppUnitsToFloatPixels(x, float(aAppUnitsPerPixel))), NSToIntRoundUp(NSAppUnitsToFloatPixels(y, float(aAppUnitsPerPixel)))); } inline nsPoint nsPoint::ConvertAppUnits(PRInt32 aFromAPP, PRInt32 aToAPP) const { if (aFromAPP != aToAPP) { nsPoint point; point.x = NSToCoordRound(NSCoordScale(x, aFromAPP, aToAPP)); point.y = NSToCoordRound(NSCoordScale(y, aFromAPP, aToAPP)); return point; } return *this; } #line 146 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsPoint.h" #line 45 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsRect.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsSize.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 42 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsSize.h" // Maximum allowable size struct nsSize { nscoord width, height; // Constructors nsSize() {} nsSize(const nsSize& aSize) {width = aSize.width; height = aSize.height;} nsSize(nscoord aWidth, nscoord aHeight) {width = aWidth; height = aHeight;} void SizeTo(nscoord aWidth, nscoord aHeight) {width = aWidth; height = aHeight;} void SizeBy(nscoord aDeltaWidth, nscoord aDeltaHeight) {width += aDeltaWidth; height += aDeltaHeight;} // Overloaded operators. Note that '=' isn't defined so we'll get the // compiler generated default assignment operator PRBool operator==(const nsSize& aSize) const { return (PRBool) ((width == aSize.width) && (height == aSize.height)); } PRBool operator!=(const nsSize& aSize) const { return (PRBool) ((width != aSize.width) || (height != aSize.height)); } nsSize operator+(const nsSize& aSize) const { return nsSize(width + aSize.width, height + aSize.height); } nsSize& operator+=(const nsSize& aSize) {width += aSize.width; height += aSize.height; return *this;} // Converts this size from aFromAPP, an appunits per pixel ratio, to aToAPP. inline nsSize ConvertAppUnits(PRInt32 aFromAPP, PRInt32 aToAPP) const; }; struct nsIntSize { PRInt32 width, height; nsIntSize() {} nsIntSize(const nsIntSize& aSize) {width = aSize.width; height = aSize.height;} nsIntSize(PRInt32 aWidth, PRInt32 aHeight) {width = aWidth; height = aHeight;} // Overloaded operators. Note that '=' isn't defined so we'll get the // compiler generated default assignment operator PRBool operator==(const nsIntSize& aSize) const { return (PRBool) ((width == aSize.width) && (height == aSize.height)); } PRBool operator!=(const nsIntSize& aSize) const { return (PRBool) ((width != aSize.width) || (height != aSize.height)); } PRBool operator<(const nsIntSize& aSize) const { return (PRBool) (operator<=(aSize) && (width < aSize.width || height < aSize.height)); } PRBool operator<=(const nsIntSize& aSize) const { return (PRBool) ((width <= aSize.width) && (height <= aSize.height)); } void SizeTo(PRInt32 aWidth, PRInt32 aHeight) {width = aWidth; height = aHeight;} }; inline nsSize nsSize::ConvertAppUnits(PRInt32 aFromAPP, PRInt32 aToAPP) const { if (aFromAPP != aToAPP) { nsSize size; size.width = NSToCoordRound(NSCoordScale(width, aFromAPP, aToAPP)); size.height = NSToCoordRound(NSCoordScale(height, aFromAPP, aToAPP)); return size; } return *this; } #line 115 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsSize.h" #line 46 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsRect.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsMargin.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 42 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsMargin.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsPoint.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 43 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsMargin.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxCore.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Marco Pesenti Gritti * Portions created by the Initial Developer are Copyright (C) 2004 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 44 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsMargin.h" struct nsMargin { nscoord top, right, bottom, left; // Constructors nsMargin() {} nsMargin(const nsMargin& aMargin) {*this = aMargin;} nsMargin(nscoord aLeft, nscoord aTop, nscoord aRight, nscoord aBottom) {left = aLeft; top = aTop; right = aRight; bottom = aBottom;} void SizeTo(nscoord aLeft, nscoord aTop, nscoord aRight, nscoord aBottom) {left = aLeft; top = aTop; right = aRight; bottom = aBottom;} void SizeBy(nscoord aLeft, nscoord aTop, nscoord aRight, nscoord aBottom) {left += aLeft; top += aTop; right += aRight; bottom += aBottom;} nscoord LeftRight() const { return left + right; } nscoord TopBottom() const { return top + bottom; } nsPoint TopLeft() const { return nsPoint(left, top); } nscoord& side(mozilla::css::Side aSide) { do { if (!(aSide <= mozilla::css::eSideLeft)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Out of range side", "aSide <= NS_SIDE_LEFT", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsMargin.h", 68); } } while (0); return *(&top + aSide); } nscoord side(mozilla::css::Side aSide) const { do { if (!(aSide <= mozilla::css::eSideLeft)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Out of range side", "aSide <= NS_SIDE_LEFT", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsMargin.h", 73); } } while (0); return *(&top + aSide); } // Overloaded operators. Note that '=' isn't defined so we'll get the // compiler generated default assignment operator PRBool operator==(const nsMargin& aMargin) const { return (PRBool) ((left == aMargin.left) && (top == aMargin.top) && (right == aMargin.right) && (bottom == aMargin.bottom)); } PRBool operator!=(const nsMargin& aMargin) const { return (PRBool) ((left != aMargin.left) || (top != aMargin.top) || (right != aMargin.right) || (bottom != aMargin.bottom)); } nsMargin operator+(const nsMargin& aMargin) const { return nsMargin(left + aMargin.left, top + aMargin.top, right + aMargin.right, bottom + aMargin.bottom); } nsMargin operator-(const nsMargin& aMargin) const { return nsMargin(left - aMargin.left, top - aMargin.top, right - aMargin.right, bottom - aMargin.bottom); } nsMargin& operator+=(const nsMargin& aMargin) {left += aMargin.left; top += aMargin.top; right += aMargin.right; bottom += aMargin.bottom; return *this;} nsMargin& operator-=(const nsMargin& aMargin) {left -= aMargin.left; top -= aMargin.top; right -= aMargin.right; bottom -= aMargin.bottom; return *this;} PRBool IsZero() { return !left && !top && !right && !bottom; } }; struct nsIntMargin { PRInt32 top, right, bottom, left; // Constructors nsIntMargin() {} nsIntMargin(const nsIntMargin& aMargin) {*this = aMargin;} nsIntMargin(PRInt32 aLeft, PRInt32 aTop, PRInt32 aRight, PRInt32 aBottom) {left = aLeft; top = aTop; right = aRight; bottom = aBottom;} void SizeTo(PRInt32 aLeft, PRInt32 aTop, PRInt32 aRight, PRInt32 aBottom) {left = aLeft; top = aTop; right = aRight; bottom = aBottom;} PRInt32 LeftRight() const { return left + right; } PRInt32 TopBottom() const { return top + bottom; } nsPoint TopLeft() const { return nsPoint(left, top); } PRInt32& side(mozilla::css::Side aSide) { do { if (!(aSide <= mozilla::css::eSideLeft)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Out of range side", "aSide <= NS_SIDE_LEFT", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsMargin.h", 128); } } while (0); return *(&top + aSide); } PRInt32 side(mozilla::css::Side aSide) const { do { if (!(aSide <= mozilla::css::eSideLeft)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Out of range side", "aSide <= NS_SIDE_LEFT", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsMargin.h", 133); } } while (0); return *(&top + aSide); } PRBool operator!=(const nsIntMargin& aMargin) const { return (PRBool) ((left != aMargin.left) || (top != aMargin.top) || (right != aMargin.right) || (bottom != aMargin.bottom)); } nsIntMargin operator+(const nsIntMargin& aMargin) const { return nsIntMargin(left + aMargin.left, top + aMargin.top, right + aMargin.right, bottom + aMargin.bottom); } PRBool IsZero() { return !left && !top && !right && !bottom; } }; #line 150 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsMargin.h" #line 47 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsRect.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxCore.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Marco Pesenti Gritti * Portions created by the Initial Developer are Copyright (C) 2004 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 48 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsRect.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTraceRefcnt.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla Communicator client code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * L. David Baron * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 49 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsRect.h" struct nsIntRect; struct nsRect { nscoord x, y; nscoord width, height; // Constructors nsRect() : x(0), y(0), width(0), height(0) { do { NS_LogCtor_P((void*)this, "nsRect", sizeof(*this)); } while (0); } nsRect(const nsRect& aRect) { do { NS_LogCtor_P((void*)this, "nsRect", sizeof(*this)); } while (0); *this = aRect; } nsRect(const nsPoint& aOrigin, const nsSize &aSize) { do { NS_LogCtor_P((void*)this, "nsRect", sizeof(*this)); } while (0); x = aOrigin.x; y = aOrigin.y; width = aSize.width; height = aSize.height; } nsRect(nscoord aX, nscoord aY, nscoord aWidth, nscoord aHeight) { do { NS_LogCtor_P((void*)this, "nsRect", sizeof(*this)); } while (0); x = aX; y = aY; width = aWidth; height = aHeight; VERIFY_COORD(x); VERIFY_COORD(y); VERIFY_COORD(width); VERIFY_COORD(height); } ~nsRect() { do { NS_LogDtor_P((void*)this, "nsRect", sizeof(*this)); } while (0); } #line 80 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsRect.h" // Emptiness. An empty rect is one that has no area, i.e. its height or width // is <= 0 PRBool IsEmpty() const { return (PRBool) ((height <= 0) || (width <= 0)); } void Empty() {width = height = 0;} // Containment PRBool Contains(const nsRect& aRect) const; PRBool Contains(nscoord aX, nscoord aY) const; PRBool Contains(const nsPoint& aPoint) const {return Contains(aPoint.x, aPoint.y);} // Intersection. Returns TRUE if the receiver overlaps aRect and // FALSE otherwise PRBool Intersects(const nsRect& aRect) const; // Computes the area in which aRect1 and aRect2 overlap, and fills 'this' with // the result. Returns FALSE if the rectangles don't intersect, and sets 'this' // rect to be an empty rect. // // 'this' can be the same object as either aRect1 or aRect2 PRBool IntersectRect(const nsRect& aRect1, const nsRect& aRect2); // Computes the smallest rectangle that contains both aRect1 and aRect2 and // fills 'this' with the result, ignoring empty input rectangles. // Returns FALSE and sets 'this' rect to be an empty rect if both aRect1 // and aRect2 are empty. // // 'this' can be the same object as either aRect1 or aRect2 PRBool UnionRect(const nsRect& aRect1, const nsRect& aRect2); // Computes the smallest rectangle that contains both aRect1 and aRect2, // where empty input rectangles are allowed to affect the result; the // top-left of an empty input rectangle will be inside or on the edge of // the result. // // 'this' can be the same object as either aRect1 or aRect2 void UnionRectIncludeEmpty(const nsRect& aRect1, const nsRect& aRect2); // Accessors void SetRect(nscoord aX, nscoord aY, nscoord aWidth, nscoord aHeight) { x = aX; y = aY; width = aWidth; height = aHeight; } void SetRect(const nsPoint& aPt, const nsSize& aSize) { SetRect(aPt.x, aPt.y, aSize.width, aSize.height); } void MoveTo(nscoord aX, nscoord aY) {x = aX; y = aY;} void MoveTo(const nsPoint& aPoint) {x = aPoint.x; y = aPoint.y;} void MoveBy(nscoord aDx, nscoord aDy) {x += aDx; y += aDy;} void MoveBy(const nsPoint& aPoint) {x += aPoint.x; y += aPoint.y;} void SizeTo(nscoord aWidth, nscoord aHeight) {width = aWidth; height = aHeight;} void SizeTo(const nsSize& aSize) {SizeTo(aSize.width, aSize.height);} void SizeBy(nscoord aDeltaWidth, nscoord aDeltaHeight) {width += aDeltaWidth; height += aDeltaHeight;} // Inflate the rect by the specified width/height or margin void Inflate(nscoord aDx, nscoord aDy); void Inflate(const nsSize& aSize) {Inflate(aSize.width, aSize.height);} void Inflate(const nsMargin& aMargin); // Deflate the rect by the specified width/height or margin void Deflate(nscoord aDx, nscoord aDy); void Deflate(const nsSize& aSize) {Deflate(aSize.width, aSize.height);} void Deflate(const nsMargin& aMargin); // Overloaded operators. Note that '=' isn't defined so we'll get the // compiler generated default assignment operator. PRBool operator==(const nsRect& aRect) const { return (PRBool) ((IsEmpty() && aRect.IsEmpty()) || ((x == aRect.x) && (y == aRect.y) && (width == aRect.width) && (height == aRect.height))); } PRBool operator!=(const nsRect& aRect) const { return (PRBool) !operator==(aRect); } // Useful when we care about the exact x/y/width/height values being // equal (i.e. we care about differences in empty rectangles) PRBool IsExactEqual(const nsRect& aRect) const { return x == aRect.x && y == aRect.y && width == aRect.width && height == aRect.height; } // Arithmetic with nsPoints nsRect operator+(const nsPoint& aPoint) const { return nsRect(x + aPoint.x, y + aPoint.y, width, height); } nsRect operator-(const nsPoint& aPoint) const { return nsRect(x - aPoint.x, y - aPoint.y, width, height); } nsRect& operator+=(const nsPoint& aPoint) {x += aPoint.x; y += aPoint.y; return *this;} nsRect& operator-=(const nsPoint& aPoint) {x -= aPoint.x; y -= aPoint.y; return *this;} // Arithmetic with nsMargins nsMargin operator-(const nsRect& aRect) const; // Find difference as nsMargin nsRect& operator+=(const nsMargin& aMargin) { Inflate(aMargin); return *this; } nsRect& operator-=(const nsMargin& aMargin) { Deflate(aMargin); return *this; } nsRect operator+(const nsMargin& aMargin) const { return nsRect(*this) += aMargin; } nsRect operator-(const nsMargin& aMargin) const { return nsRect(*this) -= aMargin; } // Scale by aScale, converting coordinates to integers so that the result is // the smallest integer-coordinate rectangle containing the unrounded result. nsRect& ScaleRoundOut(float aScale) { return ScaleRoundOut(aScale, aScale); } nsRect& ScaleRoundOut(float aXScale, float aYScale); // Converts this rect from aFromAPP, an appunits per pixel ratio, to aToAPP. // In the RoundOut version we make the rect the smallest rect containing the // unrounded result. In the RoundIn version we make the rect the largest rect // contained in the unrounded result. inline nsRect ConvertAppUnitsRoundOut(PRInt32 aFromAPP, PRInt32 aToAPP) const; inline nsRect ConvertAppUnitsRoundIn(PRInt32 aFromAPP, PRInt32 aToAPP) const; // Helpers for accessing the vertices nsPoint TopLeft() const { return nsPoint(x, y); } nsPoint TopRight() const { return nsPoint(XMost(), y); } nsPoint BottomLeft() const { return nsPoint(x, YMost()); } nsPoint BottomRight() const { return nsPoint(XMost(), YMost()); } nsSize Size() const { return nsSize(width, height); } // Helper methods for computing the extents nscoord XMost() const {return x + width;} nscoord YMost() const {return y + height;} inline nsIntRect ToNearestPixels(nscoord aAppUnitsPerPixel) const; inline nsIntRect ToOutsidePixels(nscoord aAppUnitsPerPixel) const; inline nsIntRect ToInsidePixels(nscoord aAppUnitsPerPixel) const; }; struct nsIntRect { PRInt32 x, y; PRInt32 width, height; // Constructors nsIntRect() : x(0), y(0), width(0), height(0) {} nsIntRect(const nsIntRect& aRect) {*this = aRect;} nsIntRect(const nsIntPoint& aOrigin, const nsIntSize &aSize) { x = aOrigin.x; y = aOrigin.y; width = aSize.width; height = aSize.height; } nsIntRect(PRInt32 aX, PRInt32 aY, PRInt32 aWidth, PRInt32 aHeight) { x = aX; y = aY; width = aWidth; height = aHeight; } // Emptiness. An empty rect is one that has no area, i.e. its height or width // is <= 0 PRBool IsEmpty() const { return (PRBool) ((height <= 0) || (width <= 0)); } void Empty() {width = height = 0;} // Inflate the rect by the specified width/height or margin void Inflate(PRInt32 aDx, PRInt32 aDy) { x -= aDx; y -= aDy; width += aDx*2; height += aDy*2; } void Inflate(const nsIntMargin &aMargin) { x -= aMargin.left; y -= aMargin.top; width += aMargin.left + aMargin.right; height += aMargin.top + aMargin.bottom; } // Deflate the rect by the specified width/height or margin void Deflate(PRInt32 aDx, PRInt32 aDy) { x += aDx; y += aDy; width -= aDx*2; height -= aDy*2; } void Deflate(const nsIntMargin &aMargin) { x += aMargin.left; y += aMargin.top; width -= (aMargin.left + aMargin.right); height -= (aMargin.top + aMargin.bottom); } // Overloaded operators. Note that '=' isn't defined so we'll get the // compiler generated default assignment operator. PRBool operator==(const nsIntRect& aRect) const { return (PRBool) ((IsEmpty() && aRect.IsEmpty()) || ((x == aRect.x) && (y == aRect.y) && (width == aRect.width) && (height == aRect.height))); } PRBool operator!=(const nsIntRect& aRect) const { return (PRBool) !operator==(aRect); } nsIntRect operator+(const nsIntPoint& aPoint) const { return nsIntRect(x + aPoint.x, y + aPoint.y, width, height); } nsIntRect operator-(const nsIntPoint& aPoint) const { return nsIntRect(x - aPoint.x, y - aPoint.y, width, height); } nsIntRect& operator+=(const nsIntPoint& aPoint) {x += aPoint.x; y += aPoint.y; return *this;} nsIntRect& operator-=(const nsIntPoint& aPoint) {x -= aPoint.x; y -= aPoint.y; return *this;} void SetRect(PRInt32 aX, PRInt32 aY, PRInt32 aWidth, PRInt32 aHeight) { x = aX; y = aY; width = aWidth; height = aHeight; } void MoveTo(PRInt32 aX, PRInt32 aY) {x = aX; y = aY;} void MoveTo(const nsIntPoint& aPoint) {x = aPoint.x; y = aPoint.y;} void MoveBy(PRInt32 aDx, PRInt32 aDy) {x += aDx; y += aDy;} void MoveBy(const nsIntPoint& aPoint) {x += aPoint.x; y += aPoint.y;} void SizeTo(PRInt32 aWidth, PRInt32 aHeight) {width = aWidth; height = aHeight;} void SizeTo(const nsIntSize& aSize) {SizeTo(aSize.width, aSize.height);} void SizeBy(PRInt32 aDeltaWidth, PRInt32 aDeltaHeight) {width += aDeltaWidth; height += aDeltaHeight;} PRBool Contains(const nsIntRect& aRect) const { return (PRBool) ((aRect.x >= x) && (aRect.y >= y) && (aRect.XMost() <= XMost()) && (aRect.YMost() <= YMost())); } PRBool Contains(PRInt32 aX, PRInt32 aY) const { return (PRBool) ((aX >= x) && (aY >= y) && (aX < XMost()) && (aY < YMost())); } PRBool Contains(const nsIntPoint& aPoint) const { return Contains(aPoint.x, aPoint.y); } // Intersection. Returns TRUE if the receiver overlaps aRect and // FALSE otherwise PRBool Intersects(const nsIntRect& aRect) const { return (PRBool) ((x < aRect.XMost()) && (y < aRect.YMost()) && (aRect.x < XMost()) && (aRect.y < YMost())); } // Computes the area in which aRect1 and aRect2 overlap, and fills 'this' with // the result. Returns FALSE if the rectangles don't intersect, and sets 'this' // rect to be an empty rect. // // 'this' can be the same object as either aRect1 or aRect2 PRBool IntersectRect(const nsIntRect& aRect1, const nsIntRect& aRect2); // Computes the smallest rectangle that contains both aRect1 and aRect2 and // fills 'this' with the result. Returns FALSE and sets 'this' rect to be an // empty rect if both aRect1 and aRect2 are empty // // 'this' can be the same object as either aRect1 or aRect2 PRBool UnionRect(const nsIntRect& aRect1, const nsIntRect& aRect2); // Helpers for accessing the vertices nsIntPoint TopLeft() const { return nsIntPoint(x, y); } nsIntPoint TopRight() const { return nsIntPoint(XMost(), y); } nsIntPoint BottomLeft() const { return nsIntPoint(x, YMost()); } nsIntPoint BottomRight() const { return nsIntPoint(XMost(), YMost()); } nsIntSize Size() const { return nsIntSize(width, height); } // Helper methods for computing the extents PRInt32 XMost() const {return x + width;} PRInt32 YMost() const {return y + height;} inline nsRect ToAppUnits(nscoord aAppUnitsPerPixel) const; // Returns a special nsIntRect that's used in some places to signify // "all available space". static const nsIntRect& GetMaxSizedIntRect() { return kMaxSizedIntRect; } protected: static const nsIntRect kMaxSizedIntRect; }; /* * App Unit/Pixel conversions */ inline nsRect nsRect::ConvertAppUnitsRoundOut(PRInt32 aFromAPP, PRInt32 aToAPP) const { if (aFromAPP == aToAPP) { return *this; } nsRect rect; nscoord right = NSToCoordCeil(NSCoordScale(XMost(), aFromAPP, aToAPP)); nscoord bottom = NSToCoordCeil(NSCoordScale(YMost(), aFromAPP, aToAPP)); rect.x = NSToCoordFloor(NSCoordScale(x, aFromAPP, aToAPP)); rect.y = NSToCoordFloor(NSCoordScale(y, aFromAPP, aToAPP)); rect.width = (right - rect.x); rect.height = (bottom - rect.y); return rect; } inline nsRect nsRect::ConvertAppUnitsRoundIn(PRInt32 aFromAPP, PRInt32 aToAPP) const { if (aFromAPP == aToAPP) { return *this; } nsRect rect; nscoord right = NSToCoordFloor(NSCoordScale(XMost(), aFromAPP, aToAPP)); nscoord bottom = NSToCoordFloor(NSCoordScale(YMost(), aFromAPP, aToAPP)); rect.x = NSToCoordCeil(NSCoordScale(x, aFromAPP, aToAPP)); rect.y = NSToCoordCeil(NSCoordScale(y, aFromAPP, aToAPP)); rect.width = (right - rect.x); rect.height = (bottom - rect.y); return rect; } // scale the rect but round to preserve centers inline nsIntRect nsRect::ToNearestPixels(nscoord aAppUnitsPerPixel) const { nsIntRect rect; rect.x = NSToIntRoundUp(NSAppUnitsToFloatPixels(x, float(aAppUnitsPerPixel))); rect.y = NSToIntRoundUp(NSAppUnitsToFloatPixels(y, float(aAppUnitsPerPixel))); rect.width = NSToIntRoundUp(NSAppUnitsToFloatPixels(XMost(), float(aAppUnitsPerPixel))) - rect.x; rect.height = NSToIntRoundUp(NSAppUnitsToFloatPixels(YMost(), float(aAppUnitsPerPixel))) - rect.y; return rect; } // scale the rect but round to smallest containing rect inline nsIntRect nsRect::ToOutsidePixels(nscoord aAppUnitsPerPixel) const { nsIntRect rect; rect.x = NSToIntFloor(NSAppUnitsToFloatPixels(x, float(aAppUnitsPerPixel))); rect.y = NSToIntFloor(NSAppUnitsToFloatPixels(y, float(aAppUnitsPerPixel))); rect.width = NSToIntCeil(NSAppUnitsToFloatPixels(XMost(), float(aAppUnitsPerPixel))) - rect.x; rect.height = NSToIntCeil(NSAppUnitsToFloatPixels(YMost(), float(aAppUnitsPerPixel))) - rect.y; return rect; } // scale the rect but round to largest contained rect inline nsIntRect nsRect::ToInsidePixels(nscoord aAppUnitsPerPixel) const { nsIntRect rect; rect.x = NSToIntCeil(NSAppUnitsToFloatPixels(x, float(aAppUnitsPerPixel))); rect.y = NSToIntCeil(NSAppUnitsToFloatPixels(y, float(aAppUnitsPerPixel))); rect.width = NSToIntFloor(NSAppUnitsToFloatPixels(XMost(), float(aAppUnitsPerPixel))) - rect.x; rect.height = NSToIntFloor(NSAppUnitsToFloatPixels(YMost(), float(aAppUnitsPerPixel))) - rect.y; return rect; } // app units are integer multiples of pixels, so no rounding needed inline nsRect nsIntRect::ToAppUnits(nscoord aAppUnitsPerPixel) const { return nsRect(NSIntPixelsToAppUnits(x, aAppUnitsPerPixel), NSIntPixelsToAppUnits(y, aAppUnitsPerPixel), NSIntPixelsToAppUnits(width, aAppUnitsPerPixel), NSIntPixelsToAppUnits(height, aAppUnitsPerPixel)); } // Diagnostics extern FILE* operator<<(FILE* out, const nsRect& rect); #line 444 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsRect.h" #line 446 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsRect.h" #line 43 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsRegion.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsPoint.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 44 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsRegion.h" class nsIntRegion; /** * Implementation of regions. * A region is represented as circular double-linked list of nsRegion::RgnRect structures. * Rectangles in this list do not overlap and are sorted by (y, x) coordinates. * * nsRegions use nscoord coordinates and nsRects. */ class nsRegion { friend class nsRegionRectIterator; friend class RgnRectMemoryAllocator; // Special version of nsRect structure for speed optimizations in nsRegion code. // Most important functions could be made inline and be sure that passed rectangles // will always be non-empty. // // Do not add any new member variables to this structure! // Otherwise it will break casts from nsRect to nsRectFast, which expect data parts to be identical. struct nsRectFast : public nsRect { nsRectFast () {} // No need to call parent constructor to set default values nsRectFast (PRInt32 aX, PRInt32 aY, PRInt32 aWidth, PRInt32 aHeight) : nsRect (aX, aY, aWidth, aHeight) {} nsRectFast (const nsRect& aRect) : nsRect (aRect) {} // Override nsRect methods to make them inline. Do not check for emptiness. inline PRBool Contains (const nsRect& aRect) const; inline PRBool Intersects (const nsRect& aRect) const; inline PRBool IntersectRect (const nsRect& aRect1, const nsRect& aRect2); inline void UnionRect (const nsRect& aRect1, const nsRect& aRect2); }; struct RgnRect : public nsRectFast { RgnRect* prev; RgnRect* next; RgnRect () {} // No need to call parent constructor to set default values RgnRect (PRInt32 aX, PRInt32 aY, PRInt32 aWidth, PRInt32 aHeight) : nsRectFast (aX, aY, aWidth, aHeight) {} RgnRect (const nsRectFast& aRect) : nsRectFast (aRect) {} void* operator new (size_t) throw(); void operator delete (void* aRect, size_t); RgnRect& operator = (const RgnRect& aRect) // Do not overwrite prev/next pointers { x = aRect.x; y = aRect.y; width = aRect.width; height = aRect.height; return *this; } }; public: nsRegion () { Init (); } nsRegion (const nsRect& aRect) { Init (); Copy (aRect); } nsRegion (const nsRegion& aRegion) { Init (); Copy (aRegion); } ~nsRegion () { SetToElements (0); } nsRegion& operator = (const nsRect& aRect) { Copy (aRect); return *this; } nsRegion& operator = (const nsRegion& aRegion) { Copy (aRegion); return *this; } nsRegion& And (const nsRegion& aRgn1, const nsRegion& aRgn2); nsRegion& And (const nsRegion& aRegion, const nsRect& aRect); nsRegion& And (const nsRect& aRect, const nsRegion& aRegion) { return And (aRegion, aRect); } nsRegion& And (const nsRect& aRect1, const nsRect& aRect2) { nsRect TmpRect; TmpRect.IntersectRect (aRect1, aRect2); return Copy (TmpRect); } nsRegion& Or (const nsRegion& aRgn1, const nsRegion& aRgn2); nsRegion& Or (const nsRegion& aRegion, const nsRect& aRect); nsRegion& Or (const nsRect& aRect, const nsRegion& aRegion) { return Or (aRegion, aRect); } nsRegion& Or (const nsRect& aRect1, const nsRect& aRect2) { Copy (aRect1); return Or (*this, aRect2); } nsRegion& Xor (const nsRegion& aRgn1, const nsRegion& aRgn2); nsRegion& Xor (const nsRegion& aRegion, const nsRect& aRect); nsRegion& Xor (const nsRect& aRect, const nsRegion& aRegion) { return Xor (aRegion, aRect); } nsRegion& Xor (const nsRect& aRect1, const nsRect& aRect2) { Copy (aRect1); return Xor (*this, aRect2); } nsRegion& Sub (const nsRegion& aRgn1, const nsRegion& aRgn2); nsRegion& Sub (const nsRegion& aRegion, const nsRect& aRect); nsRegion& Sub (const nsRect& aRect, const nsRegion& aRegion) { return Sub (nsRegion (aRect), aRegion); } nsRegion& Sub (const nsRect& aRect1, const nsRect& aRect2) { Copy (aRect1); return Sub (*this, aRect2); } PRBool Contains (const nsRect& aRect) const; PRBool Intersects (const nsRect& aRect) const; void MoveBy (PRInt32 aXOffset, PRInt32 aYOffset) { MoveBy (nsPoint (aXOffset, aYOffset)); } void MoveBy (nsPoint aPt); void SetEmpty () { SetToElements (0); mBoundRect.SetRect (0, 0, 0, 0); } PRBool IsEmpty () const { return mRectCount == 0; } PRBool IsComplex () const { return mRectCount > 1; } PRBool IsEqual (const nsRegion& aRegion) const; PRUint32 GetNumRects () const { return mRectCount; } const nsRect& GetBounds () const { return mBoundRect; } // Converts this region from aFromAPP, an appunits per pixel ratio, to // aToAPP. This applies nsRect::ConvertAppUnitsRoundOut/In to each rect of // the region. nsRegion ConvertAppUnitsRoundOut (PRInt32 aFromAPP, PRInt32 aToAPP) const; nsRegion ConvertAppUnitsRoundIn (PRInt32 aFromAPP, PRInt32 aToAPP) const; nsIntRegion ToOutsidePixels (nscoord aAppUnitsPerPixel) const; nsRect GetLargestRectangle () const; /** * Make sure the region has at most aMaxRects by adding area to it * if necessary. The simplified region will be a superset of the * original region. The simplified region's bounding box will be * the same as for the current region. */ void SimplifyOutward (PRUint32 aMaxRects); /** * Make sure the region has at most aMaxRects by removing area from * it if necessary. The simplified region will be a subset of the * original region. */ void SimplifyInward (PRUint32 aMaxRects); /** * Efficiently try to remove a rectangle from this region. The actual * area removed could be some sub-area contained by the rectangle * (even possibly nothing at all). * * We remove all rectangles that are contained by aRect. */ void SimpleSubtract (const nsRect& aRect); /** * Efficiently try to remove a region from this region. The actual * area removed could be some sub-area contained by aRegion * (even possibly nothing at all). * * We remove all rectangles of this region that are contained by * a rectangle of aRegion. */ void SimpleSubtract (const nsRegion& aRegion); /** * Initialize any static data associated with nsRegion. */ static nsresult InitStatic(); /** * Deinitialize static data. */ static void ShutdownStatic(); private: PRUint32 mRectCount; RgnRect* mCurRect; RgnRect mRectListHead; nsRectFast mBoundRect; void Init (); nsRegion& Copy (const nsRegion& aRegion); nsRegion& Copy (const nsRect& aRect); void InsertBefore (RgnRect* aNewRect, RgnRect* aRelativeRect); void InsertAfter (RgnRect* aNewRect, RgnRect* aRelativeRect); void SetToElements (PRUint32 aCount); RgnRect* Remove (RgnRect* aRect); void InsertInPlace (RgnRect* aRect, PRBool aOptimizeOnFly = 0); inline void SaveLinkChain (); inline void RestoreLinkChain (); void Optimize (); void SubRegion (const nsRegion& aRegion, nsRegion& aResult) const; void SubRect (const nsRectFast& aRect, nsRegion& aResult, nsRegion& aCompleted) const; void SubRect (const nsRectFast& aRect, nsRegion& aResult) const { SubRect (aRect, aResult, aResult); } void Merge (const nsRegion& aRgn1, const nsRegion& aRgn2); void MoveInto (nsRegion& aDestRegion, const RgnRect* aStartRect); void MoveInto (nsRegion& aDestRegion) { MoveInto (aDestRegion, mRectListHead.next); } }; // Allow read-only access to region rectangles by iterating the list class nsRegionRectIterator { const nsRegion* mRegion; const nsRegion::RgnRect* mCurPtr; public: nsRegionRectIterator (const nsRegion& aRegion) { mRegion = &aRegion; mCurPtr = &aRegion.mRectListHead; } const nsRect* Next () { mCurPtr = mCurPtr->next; return (mCurPtr != &mRegion->mRectListHead) ? mCurPtr : 0L; } const nsRect* Prev () { mCurPtr = mCurPtr->prev; return (mCurPtr != &mRegion->mRectListHead) ? mCurPtr : 0L; } void Reset () { mCurPtr = &mRegion->mRectListHead; } }; /** * nsIntRegions use PRInt32 coordinates and nsIntRects. */ class nsIntRegion { friend class nsIntRegionRectIterator; public: nsIntRegion () {} nsIntRegion (const nsIntRect& aRect) : mImpl (ToRect(aRect)) {} nsIntRegion (const nsIntRegion& aRegion) : mImpl (aRegion.mImpl) {} nsIntRegion& operator = (const nsIntRect& aRect) { mImpl = ToRect (aRect); return *this; } nsIntRegion& operator = (const nsIntRegion& aRegion) { mImpl = aRegion.mImpl; return *this; } bool operator==(const nsIntRegion& aRgn) const { return IsEqual(aRgn); } nsIntRegion& And (const nsIntRegion& aRgn1, const nsIntRegion& aRgn2) { mImpl.And (aRgn1.mImpl, aRgn2.mImpl); return *this; } nsIntRegion& And (const nsIntRegion& aRegion, const nsIntRect& aRect) { mImpl.And (aRegion.mImpl, ToRect (aRect)); return *this; } nsIntRegion& And (const nsIntRect& aRect, const nsIntRegion& aRegion) { return And (aRegion, aRect); } nsIntRegion& And (const nsIntRect& aRect1, const nsIntRect& aRect2) { nsIntRect TmpRect; TmpRect.IntersectRect (aRect1, aRect2); mImpl = ToRect (TmpRect); return *this; } nsIntRegion& Or (const nsIntRegion& aRgn1, const nsIntRegion& aRgn2) { mImpl.Or (aRgn1.mImpl, aRgn2.mImpl); return *this; } nsIntRegion& Or (const nsIntRegion& aRegion, const nsIntRect& aRect) { mImpl.Or (aRegion.mImpl, ToRect (aRect)); return *this; } nsIntRegion& Or (const nsIntRect& aRect, const nsIntRegion& aRegion) { return Or (aRegion, aRect); } nsIntRegion& Or (const nsIntRect& aRect1, const nsIntRect& aRect2) { mImpl = ToRect (aRect1); return Or (*this, aRect2); } nsIntRegion& Xor (const nsIntRegion& aRgn1, const nsIntRegion& aRgn2) { mImpl.Xor (aRgn1.mImpl, aRgn2.mImpl); return *this; } nsIntRegion& Xor (const nsIntRegion& aRegion, const nsIntRect& aRect) { mImpl.Xor (aRegion.mImpl, ToRect (aRect)); return *this; } nsIntRegion& Xor (const nsIntRect& aRect, const nsIntRegion& aRegion) { return Xor (aRegion, aRect); } nsIntRegion& Xor (const nsIntRect& aRect1, const nsIntRect& aRect2) { mImpl = ToRect (aRect1); return Xor (*this, aRect2); } nsIntRegion& Sub (const nsIntRegion& aRgn1, const nsIntRegion& aRgn2) { mImpl.Sub (aRgn1.mImpl, aRgn2.mImpl); return *this; } nsIntRegion& Sub (const nsIntRegion& aRegion, const nsIntRect& aRect) { mImpl.Sub (aRegion.mImpl, ToRect (aRect)); return *this; } nsIntRegion& Sub (const nsIntRect& aRect, const nsIntRegion& aRegion) { return Sub (nsIntRegion (aRect), aRegion); } nsIntRegion& Sub (const nsIntRect& aRect1, const nsIntRect& aRect2) { mImpl = ToRect (aRect1); return Sub (*this, aRect2); } PRBool Contains (const nsIntRect& aRect) const { return mImpl.Contains (ToRect (aRect)); } PRBool Intersects (const nsIntRect& aRect) const { return mImpl.Intersects (ToRect (aRect)); } void MoveBy (PRInt32 aXOffset, PRInt32 aYOffset) { MoveBy (nsIntPoint (aXOffset, aYOffset)); } void MoveBy (nsIntPoint aPt) { mImpl.MoveBy (aPt.x, aPt.y); } void SetEmpty () { mImpl.SetEmpty (); } PRBool IsEmpty () const { return mImpl.IsEmpty (); } PRBool IsComplex () const { return mImpl.IsComplex (); } PRBool IsEqual (const nsIntRegion& aRegion) const { return mImpl.IsEqual (aRegion.mImpl); } PRUint32 GetNumRects () const { return mImpl.GetNumRects (); } nsIntRect GetBounds () const { return FromRect (mImpl.GetBounds ()); } nsRegion ToAppUnits (nscoord aAppUnitsPerPixel) const; nsIntRect GetLargestRectangle () const { return FromRect (mImpl.GetLargestRectangle()); } /** * Make sure the region has at most aMaxRects by adding area to it * if necessary. The simplified region will be a superset of the * original region. The simplified region's bounding box will be * the same as for the current region. */ void SimplifyOutward (PRUint32 aMaxRects) { mImpl.SimplifyOutward (aMaxRects); } /** * Make sure the region has at most aMaxRects by removing area from * it if necessary. The simplified region will be a subset of the * original region. */ void SimplifyInward (PRUint32 aMaxRects) { mImpl.SimplifyInward (aMaxRects); } /** * Efficiently try to remove a rectangle from this region. The actual * area removed could be some sub-area contained by the rectangle * (even possibly nothing at all). * * We remove all rectangles that are contained by aRect. */ void SimpleSubtract (const nsIntRect& aRect) { mImpl.SimpleSubtract (ToRect (aRect)); } /** * Efficiently try to remove a region from this region. The actual * area removed could be some sub-area contained by aRegion * (even possibly nothing at all). * * We remove all rectangles of this region that are contained by * a rectangle of aRegion. */ void SimpleSubtract (const nsIntRegion& aRegion) { mImpl.SimpleSubtract (aRegion.mImpl); } private: nsRegion mImpl; static nsRect ToRect(const nsIntRect& aRect) { return nsRect (aRect.x, aRect.y, aRect.width, aRect.height); } static nsIntRect FromRect(const nsRect& aRect) { return nsIntRect (aRect.x, aRect.y, aRect.width, aRect.height); } }; class nsIntRegionRectIterator { nsRegionRectIterator mImpl; nsIntRect mTmp; public: nsIntRegionRectIterator (const nsIntRegion& aRegion) : mImpl (aRegion.mImpl) {} const nsIntRect* Next () { const nsRect* r = mImpl.Next(); if (!r) return 0L; mTmp = nsIntRegion::FromRect (*r); return &mTmp; } const nsIntRect* Prev () { const nsRect* r = mImpl.Prev(); if (!r) return 0L; mTmp = nsIntRegion::FromRect (*r); return &mTmp; } void Reset () { mImpl.Reset (); } }; #line 515 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsRegion.h" #line 44 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\Layers.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsPoint.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 45 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\Layers.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsRect.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 46 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\Layers.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupportsImpl.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is XPCOM. * * The Initial Developer of the Original Code is Netscape Communications Corp. * Portions created by the Initial Developer are Copyright (C) 2001 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 47 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\Layers.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAutoPtr.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Scott Collins (original author of nsCOMPtr) * L. David Baron * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 48 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\Layers.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfx3DMatrix.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Bas Schouten * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 42 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfx3DMatrix.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxMatrix.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxPoint.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 42 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxMatrix.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxTypes.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 43 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxMatrix.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxRect.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 44 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxMatrix.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsMathUtils.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla Foundation code. * * The Initial Developer of the Original Code is Mozilla Foundation. * Portions created by the Initial Developer are Copyright (C) 2007 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 45 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxMatrix.h" // XX - I don't think this class should use gfxFloat at all, // but should use 'double' and be called gfxDoubleMatrix; // we can then typedef that to gfxMatrix where we typedef // double to be gfxFloat. /** * A matrix that represents an affine transformation. Projective * transformations are not supported. This matrix looks like: * * / a b 0 \ * | c d 0 | * \ tx ty 1 / * * So, transforming a point (x, y) results in: * * / a b 0 \ / a * x + c * y + tx \ T * (x y 1) * | c d 0 | = | b * x + d * y + ty | * \ tx ty 1 / \ 1 / * */ struct __declspec(dllexport) gfxMatrix { double xx; double yx; double xy; double yy; double x0; double y0; public: /** * Initializes this matrix as the identity matrix. */ gfxMatrix() { Reset(); } /** * Initializes the matrix from individual components. See the class * description for the layout of the matrix. */ gfxMatrix(gfxFloat a, gfxFloat b, gfxFloat c, gfxFloat d, gfxFloat tx, gfxFloat ty) : xx(a), yx(b), xy(c), yy(d), x0(tx), y0(ty) { } /** * Post-multiplies m onto the matrix. */ const gfxMatrix& operator *= (const gfxMatrix& m) { return Multiply(m); } /** * Multiplies *this with m and returns the result. */ gfxMatrix operator * (const gfxMatrix& m) const { return gfxMatrix(*this).Multiply(m); } // matrix operations /** * Resets this matrix to the identity matrix. */ const gfxMatrix& Reset(); /** * Inverts this matrix, if possible. Otherwise, the matrix is left * unchanged. * * XXX should this do something with the return value of * cairo_matrix_invert? */ const gfxMatrix& Invert(); /** * Check if matrix is singular (no inverse exists). */ PRBool IsSingular() const { // if the determinant (ad - bc) is zero it's singular return (xx * yy) == (yx * xy); } /** * Scales this matrix. The scale is pre-multiplied onto this matrix, * i.e. the scaling takes place before the other transformations. */ const gfxMatrix& Scale(gfxFloat x, gfxFloat y); /** * Translates this matrix. The translation is pre-multiplied onto this matrix, * i.e. the translation takes place before the other transformations. */ const gfxMatrix& Translate(const gfxPoint& pt); /** * Rotates this matrix. The rotation is pre-multiplied onto this matrix, * i.e. the translation takes place after the other transformations. * * @param radians Angle in radians. */ const gfxMatrix& Rotate(gfxFloat radians); /** * Multiplies the current matrix with m. * This is a post-multiplication, i.e. the transformations of m are * applied _after_ the existing transformations. * * XXX is that difference (compared to Rotate etc) a good thing? */ const gfxMatrix& Multiply(const gfxMatrix& m); /** * Multiplies the current matrix with m. * This is a pre-multiplication, i.e. the transformations of m are * applied _before_ the existing transformations. */ const gfxMatrix& PreMultiply(const gfxMatrix& m); /** * Transforms a point according to this matrix. */ gfxPoint Transform(const gfxPoint& point) const; /** * Transform a distance according to this matrix. This does not apply * any translation components. */ gfxSize Transform(const gfxSize& size) const; /** * Transforms both the point and distance according to this matrix. */ gfxRect Transform(const gfxRect& rect) const; gfxRect TransformBounds(const gfxRect& rect) const; /** * Returns the translation component of this matrix. */ gfxPoint GetTranslation() const { return gfxPoint(x0, y0); } /** * Returns true if the matrix is anything other than a straight * translation by integers. */ PRBool HasNonIntegerTranslation() const { return HasNonTranslation() || !FuzzyEqual(x0, NS_floor(x0 + 0.5)) || !FuzzyEqual(y0, NS_floor(y0 + 0.5)); } /** * Returns true if the matrix has any transform other * than a straight translation */ PRBool HasNonTranslation() const { return !FuzzyEqual(xx, 1.0) || !FuzzyEqual(yy, 1.0) || !FuzzyEqual(xy, 0.0) || !FuzzyEqual(yx, 0.0); } /** * Returns true if the matrix only has an integer translation. */ PRBool HasOnlyIntegerTranslation() const { return !HasNonIntegerTranslation(); } /** * Returns true if the matrix has any transform other * than a translation or a -1 y scale (y axis flip) */ PRBool HasNonTranslationOrFlip() const { return !FuzzyEqual(xx, 1.0) || (!FuzzyEqual(yy, 1.0) && !FuzzyEqual(yy, -1.0)) || !FuzzyEqual(xy, 0.0) || !FuzzyEqual(yx, 0.0); } /** * Returns true if the matrix has any transform other * than a translation or scale; this is, if there is * no rotation. */ PRBool HasNonAxisAlignedTransform() const { return !FuzzyEqual(xy, 0.0) || !FuzzyEqual(yx, 0.0); } /** * Computes the determinant of this matrix. */ double Determinant() const { return xx*yy - yx*xy; } /* Computes the scale factors of this matrix; that is, * the amounts each basis vector is scaled by. * The xMajor parameter indicates if the larger scale is * to be assumed to be in the X direction or not. */ gfxSize ScaleFactors(PRBool xMajor) const { double det = Determinant(); if (det == 0.0) return gfxSize(0.0, 0.0); gfxSize sz((xMajor != 0 ? 1.0 : 0.0), (xMajor != 0 ? 0.0 : 1.0)); sz = Transform(sz); double major = sqrt(sz.width * sz.width + sz.height * sz.height); double minor = 0.0; // ignore mirroring if (det < 0.0) det = - det; if (major) minor = det / major; if (xMajor) return gfxSize(major, minor); return gfxSize(minor, major); } /** * Snap matrix components that are close to integers * to integers. In particular, components that are integral when * converted to single precision are set to those integers. */ void NudgeToIntegers(void); /** * Returns true if matrix is multiple of 90 degrees rotation with flipping, * scaling and translation. */ PRBool PreservesAxisAlignedRectangles() const { return ((FuzzyEqual(xx, 0.0) && FuzzyEqual(yy, 0.0)) || (FuzzyEqual(xy, 0.0) && FuzzyEqual(yx, 0.0))); } private: static PRBool FuzzyEqual(gfxFloat aV1, gfxFloat aV2) { return fabs(aV2 - aV1) < 1e-6; } }; #line 291 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxMatrix.h" #line 43 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfx3DMatrix.h" #line 1 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\math.h" /*** *math.h - definitions and declarations for math library * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file contains constant definitions and external subroutine * declarations for the math subroutine library. * [ANSI/System V] * * [Public] * ****/ #line 636 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\math.h" #line 44 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfx3DMatrix.h" /** * This class represents a 3D transformation. The matrix is laid * out as follows: * * _11 _12 _13 _14 * _21 _22 _23 _24 * _31 _32 _33 _34 * _41 _42 _43 _44 * * This matrix is treated as row-major. Assuming we consider our vectors row * vectors, this matrix type will be identical in memory to the OpenGL and D3D * matrices. OpenGL matrices are column-major, however OpenGL also treats * vectors as column vectors, the double transposition makes everything work * out nicely. */ class __declspec(dllexport) gfx3DMatrix { public: /** * Create matrix. */ inline gfx3DMatrix(void); /** * Matrix multiplication. */ inline gfx3DMatrix operator*(const gfx3DMatrix &aMatrix) const; /** * Return true if this matrix and |aMatrix| are the same matrix. */ inline bool operator==(const gfx3DMatrix& aMatrix) const; /** * Create a 3D matrix from a gfxMatrix 2D affine transformation. * * \param aMatrix gfxMatrix 2D affine transformation. */ static inline gfx3DMatrix From2D(const gfxMatrix &aMatrix); /** * Returns true if the matrix is isomorphic to a 2D affine transformation * (i.e. as obtained by From2D). If it is, optionally returns the 2D * matrix in aMatrix. */ PRBool Is2D(gfxMatrix* aMatrix = 0L) const; /** * Returns true if the matrix is the identity matrix. The most important * property we require is that gfx3DMatrix().IsIdentity() returns true. */ inline PRBool IsIdentity() const; /** * Create a translation matrix. * * \param aX Translation on X-axis. * \param aY Translation on Y-axis. * \param aZ Translation on Z-axis. */ static inline gfx3DMatrix Translation(float aX, float aY, float aZ); /** * Create a scale matrix. Scales uniformly along all axes. * * \param aScale Scale factor */ static inline gfx3DMatrix Scale(float aFactor); /** * Create a scale matrix. */ static inline gfx3DMatrix Scale(float aX, float aY, float aZ); /** Matrix elements */ float _11, _12, _13, _14; float _21, _22, _23, _24; float _31, _32, _33, _34; float _41, _42, _43, _44; }; inline gfx3DMatrix::gfx3DMatrix(void) { _11 = _22 = _33 = _44 = 1.0f; _12 = _13 = _14 = 0.0f; _21 = _23 = _24 = 0.0f; _31 = _32 = _34 = 0.0f; _41 = _42 = _43 = 0.0f; } inline gfx3DMatrix gfx3DMatrix::operator*(const gfx3DMatrix &aMatrix) const { gfx3DMatrix matrix; matrix._11 = _11 * aMatrix._11 + _12 * aMatrix._21 + _13 * aMatrix._31 + _14 * aMatrix._41; matrix._21 = _21 * aMatrix._11 + _22 * aMatrix._21 + _23 * aMatrix._31 + _24 * aMatrix._41; matrix._31 = _31 * aMatrix._11 + _32 * aMatrix._21 + _33 * aMatrix._31 + _34 * aMatrix._41; matrix._41 = _41 * aMatrix._11 + _42 * aMatrix._21 + _43 * aMatrix._31 + _44 * aMatrix._41; matrix._12 = _11 * aMatrix._12 + _12 * aMatrix._22 + _13 * aMatrix._32 + _14 * aMatrix._42; matrix._22 = _21 * aMatrix._12 + _22 * aMatrix._22 + _23 * aMatrix._32 + _24 * aMatrix._42; matrix._32 = _31 * aMatrix._12 + _32 * aMatrix._22 + _33 * aMatrix._32 + _34 * aMatrix._42; matrix._42 = _41 * aMatrix._12 + _42 * aMatrix._22 + _43 * aMatrix._32 + _44 * aMatrix._42; matrix._13 = _11 * aMatrix._13 + _12 * aMatrix._23 + _13 * aMatrix._33 + _14 * aMatrix._43; matrix._23 = _21 * aMatrix._13 + _22 * aMatrix._23 + _23 * aMatrix._33 + _24 * aMatrix._43; matrix._33 = _31 * aMatrix._13 + _32 * aMatrix._23 + _33 * aMatrix._33 + _34 * aMatrix._43; matrix._43 = _41 * aMatrix._13 + _42 * aMatrix._23 + _43 * aMatrix._33 + _44 * aMatrix._43; matrix._14 = _11 * aMatrix._14 + _12 * aMatrix._24 + _13 * aMatrix._34 + _14 * aMatrix._44; matrix._24 = _21 * aMatrix._14 + _22 * aMatrix._24 + _23 * aMatrix._34 + _24 * aMatrix._44; matrix._34 = _31 * aMatrix._14 + _32 * aMatrix._24 + _33 * aMatrix._34 + _34 * aMatrix._44; matrix._44 = _41 * aMatrix._14 + _42 * aMatrix._24 + _43 * aMatrix._34 + _44 * aMatrix._44; return matrix; } inline bool gfx3DMatrix::operator==(const gfx3DMatrix& o) const { // XXX would be nice to memcmp here, but that breaks IEEE 754 semantics return _11 == o._11 && _12 == o._12 && _13 == o._13 && _14 == o._14 && _21 == o._21 && _22 == o._22 && _23 == o._23 && _24 == o._24 && _31 == o._31 && _32 == o._32 && _33 == o._33 && _34 == o._34 && _41 == o._41 && _42 == o._42 && _43 == o._43 && _44 == o._44; } inline gfx3DMatrix gfx3DMatrix::From2D(const gfxMatrix &aMatrix) { gfx3DMatrix matrix; matrix._11 = (float)aMatrix.xx; matrix._12 = (float)aMatrix.yx; matrix._21 = (float)aMatrix.xy; matrix._22 = (float)aMatrix.yy; matrix._41 = (float)aMatrix.x0; matrix._42 = (float)aMatrix.y0; return matrix; } inline PRBool gfx3DMatrix::IsIdentity() const { return _11 == 1.0f && _12 == 0.0f && _13 == 0.0f && _14 == 0.0f && _21 == 0.0f && _22 == 1.0f && _23 == 0.0f && _24 == 0.0f && _31 == 0.0f && _32 == 0.0f && _33 == 1.0f && _34 == 0.0f && _41 == 0.0f && _42 == 0.0f && _43 == 0.0f && _44 == 1.0f; } inline gfx3DMatrix gfx3DMatrix::Translation(float aX, float aY, float aZ) { gfx3DMatrix matrix; matrix._41 = aX; matrix._42 = aY; matrix._43 = aZ; return matrix; } inline gfx3DMatrix gfx3DMatrix::Scale(float aFactor) { gfx3DMatrix matrix; matrix._11 = matrix._22 = matrix._33 = aFactor; return matrix; } inline gfx3DMatrix gfx3DMatrix::Scale(float aX, float aY, float aZ) { gfx3DMatrix matrix; matrix._11 = aX; matrix._22 = aY; matrix._33 = aZ; return matrix; } #line 226 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfx3DMatrix.h" #line 49 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\Layers.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxColor.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsPrintfCString.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1994-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsString.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsSubstring.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAString.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsStringFwd.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is * Netscape Communications. * Portions created by the Initial Developer are Copyright (C) 2001 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Scott Collins (original author) * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* nsStringFwd.h --- forward declarations for string classes */ /** * double-byte (PRUnichar) string types */ class nsAString_internal; class nsSubstringTuple; class nsString; class nsAutoString; class nsDependentString; class nsDependentSubstring; class nsPromiseFlatString; class nsStringComparator; class nsDefaultStringComparator; class nsXPIDLString; /** * single-byte (char) string types */ class nsACString_internal; class nsCSubstringTuple; class nsCString; class nsCAutoString; class nsDependentCString; class nsDependentCSubstring; class nsPromiseFlatCString; class nsCStringComparator; class nsDefaultCStringComparator; class nsXPIDLCString; /** * typedefs for backwards compatibility */ typedef nsAString_internal nsSubstring; typedef nsACString_internal nsCSubstring; typedef nsString nsAFlatString; typedef nsSubstring nsASingleFragmentString; typedef nsCString nsAFlatCString; typedef nsCSubstring nsASingleFragmentCString; #line 99 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsStringFwd.h" #line 44 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAString.h" #line 45 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAString.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsStringIterator.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is * Netscape Communications. * Portions created by the Initial Developer are Copyright (C) 2001 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Scott Collins (original author) * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCharTraits.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Scott Collins (original author) * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\ctype.h" /*** *ctype.h - character conversion macros and ctype macros * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * Defines macros for character classification/conversion. * [ANSI/System V] * * [Public] * ****/ #pragma once #line 17 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\ctype.h" #line 1 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" /*** *crtdefs.h - definitions/declarations common to all CRT * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file has mostly defines used by the entire CRT. * * [Public] * ****/ /* Lack of pragma once is deliberate */ /* Define _CRTIMP */ #line 22 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\ctype.h" extern "C" { #line 26 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\ctype.h" #line 39 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\ctype.h" #line 41 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\ctype.h" #line 42 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\ctype.h" __declspec(dllimport) const unsigned short * __cdecl __pctype_func(void); __declspec(dllimport) extern const unsigned short *_pctype; #line 49 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\ctype.h" #line 50 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\ctype.h" #line 51 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\ctype.h" __declspec(dllimport) extern const unsigned short _wctype[]; #line 58 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\ctype.h" __declspec(dllimport) const wctype_t * __cdecl __pwctype_func(void); __declspec(dllimport) extern const wctype_t *_pwctype; #line 65 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\ctype.h" #line 66 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\ctype.h" #line 67 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\ctype.h" #line 70 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\ctype.h" /* set bit masks for the possible character types */ /* vertical tab or form feed */ /* character classification function prototypes */ __declspec(dllimport) int __cdecl _isctype( int _C, int _Type); __declspec(dllimport) int __cdecl _isctype_l( int _C, int _Type, _locale_t _Locale); __declspec(dllimport) int __cdecl isalpha( int _C); __declspec(dllimport) int __cdecl _isalpha_l( int _C, _locale_t _Locale); __declspec(dllimport) int __cdecl isupper( int _C); __declspec(dllimport) int __cdecl _isupper_l( int _C, _locale_t _Locale); __declspec(dllimport) int __cdecl islower( int _C); __declspec(dllimport) int __cdecl _islower_l( int _C, _locale_t _Locale); __declspec(dllimport) int __cdecl isdigit( int _C); __declspec(dllimport) int __cdecl _isdigit_l( int _C, _locale_t _Locale); __declspec(dllimport) int __cdecl isxdigit( int _C); __declspec(dllimport) int __cdecl _isxdigit_l( int _C, _locale_t _Locale); __declspec(dllimport) int __cdecl isspace( int _C); __declspec(dllimport) int __cdecl _isspace_l( int _C, _locale_t _Locale); __declspec(dllimport) int __cdecl ispunct( int _C); __declspec(dllimport) int __cdecl _ispunct_l( int _C, _locale_t _Locale); __declspec(dllimport) int __cdecl isalnum( int _C); __declspec(dllimport) int __cdecl _isalnum_l( int _C, _locale_t _Locale); __declspec(dllimport) int __cdecl isprint( int _C); __declspec(dllimport) int __cdecl _isprint_l( int _C, _locale_t _Locale); __declspec(dllimport) int __cdecl isgraph( int _C); __declspec(dllimport) int __cdecl _isgraph_l( int _C, _locale_t _Locale); __declspec(dllimport) int __cdecl iscntrl( int _C); __declspec(dllimport) int __cdecl _iscntrl_l( int _C, _locale_t _Locale); __declspec(dllimport) int __cdecl toupper( int _C); __declspec(dllimport) int __cdecl tolower( int _C); __declspec(dllimport) int __cdecl _tolower( int _C); __declspec(dllimport) int __cdecl _tolower_l( int _C, _locale_t _Locale); __declspec(dllimport) int __cdecl _toupper( int _C); __declspec(dllimport) int __cdecl _toupper_l( int _C, _locale_t _Locale); __declspec(dllimport) int __cdecl __isascii( int _C); __declspec(dllimport) int __cdecl __toascii( int _C); __declspec(dllimport) int __cdecl __iscsymf( int _C); __declspec(dllimport) int __cdecl __iscsym( int _C); #line 130 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\ctype.h" /* wide function prototypes, also declared in wchar.h */ /* character classification function prototypes */ __declspec(dllimport) int __cdecl iswalpha( wint_t _C); __declspec(dllimport) int __cdecl _iswalpha_l( wint_t _C, _locale_t _Locale); __declspec(dllimport) int __cdecl iswupper( wint_t _C); __declspec(dllimport) int __cdecl _iswupper_l( wint_t _C, _locale_t _Locale); __declspec(dllimport) int __cdecl iswlower( wint_t _C); __declspec(dllimport) int __cdecl _iswlower_l( wint_t _C, _locale_t _Locale); __declspec(dllimport) int __cdecl iswdigit( wint_t _C); __declspec(dllimport) int __cdecl _iswdigit_l( wint_t _C, _locale_t _Locale); __declspec(dllimport) int __cdecl iswxdigit( wint_t _C); __declspec(dllimport) int __cdecl _iswxdigit_l( wint_t _C, _locale_t _Locale); __declspec(dllimport) int __cdecl iswspace( wint_t _C); __declspec(dllimport) int __cdecl _iswspace_l( wint_t _C, _locale_t _Locale); __declspec(dllimport) int __cdecl iswpunct( wint_t _C); __declspec(dllimport) int __cdecl _iswpunct_l( wint_t _C, _locale_t _Locale); __declspec(dllimport) int __cdecl iswalnum( wint_t _C); __declspec(dllimport) int __cdecl _iswalnum_l( wint_t _C, _locale_t _Locale); __declspec(dllimport) int __cdecl iswprint( wint_t _C); __declspec(dllimport) int __cdecl _iswprint_l( wint_t _C, _locale_t _Locale); __declspec(dllimport) int __cdecl iswgraph( wint_t _C); __declspec(dllimport) int __cdecl _iswgraph_l( wint_t _C, _locale_t _Locale); __declspec(dllimport) int __cdecl iswcntrl( wint_t _C); __declspec(dllimport) int __cdecl _iswcntrl_l( wint_t _C, _locale_t _Locale); __declspec(dllimport) int __cdecl iswascii( wint_t _C); __declspec(dllimport) int __cdecl isleadbyte( int _C); __declspec(dllimport) int __cdecl _isleadbyte_l( int _C, _locale_t _Locale); __declspec(dllimport) wint_t __cdecl towupper( wint_t _C); __declspec(dllimport) wint_t __cdecl _towupper_l( wint_t _C, _locale_t _Locale); __declspec(dllimport) wint_t __cdecl towlower( wint_t _C); __declspec(dllimport) wint_t __cdecl _towlower_l( wint_t _C, _locale_t _Locale); __declspec(dllimport) int __cdecl iswctype( wint_t _C, wctype_t _Type); __declspec(dllimport) int __cdecl _iswctype_l( wint_t _C, wctype_t _Type, _locale_t _Locale); __declspec(dllimport) int __cdecl __iswcsymf( wint_t _C); __declspec(dllimport) int __cdecl _iswcsymf_l( wint_t _C, _locale_t _Locale); __declspec(dllimport) int __cdecl __iswcsym( wint_t _C); __declspec(dllimport) int __cdecl _iswcsym_l( wint_t _C, _locale_t _Locale); __declspec(deprecated("This function or variable has been superceded by newer library or operating system functionality. Consider using " "iswctype" " instead. See online help for details.")) __declspec(dllimport) int __cdecl is_wctype( wint_t _C, wctype_t _Type); #line 179 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\ctype.h" /* the character classification macro definitions */ /* * Maximum number of bytes in multi-byte character in the current locale * (also defined in stdlib.h). */ /* Introduced to detect error when character testing functions are called * with illegal input of integer. */ __declspec(dllimport) int __cdecl _chvalidator( int _Ch, int _Mask); #line 214 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\ctype.h" #line 259 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\ctype.h" int __cdecl _chvalidator_l( _locale_t, int _Ch, int _Mask); #line 266 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\ctype.h" #line 317 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\ctype.h" #line 344 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\ctype.h" #line 346 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\ctype.h" /* MS C version 2.0 extended ctype macros */ #line 360 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\ctype.h" /* Non-ANSI names for compatibility */ #line 377 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\ctype.h" #line 379 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\ctype.h" } #line 383 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\ctype.h" #line 385 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\ctype.h" #line 43 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCharTraits.h" // for |EOF|, |WEOF| // disable special optimizations for now through this hack #line 51 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCharTraits.h" // for |memcpy|, et al // This file may be used (through nsUTF8Utils.h) from non-XPCOM code, in // particular the standalone software updater. In that case stub out // the macros provided by nsDebug.h which are only usable when linking XPCOM #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsDebug.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 76 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCharTraits.h" // for NS_ASSERTION #line 78 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCharTraits.h" #line 79 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCharTraits.h" typedef PRBool nsCharTraits_bool; #line 85 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCharTraits.h" /* * Some macros for converting PRUnichar (UTF-16) to and from Unicode scalar * values. * * Note that UTF-16 represents all Unicode scalar values up to U+10FFFF by * using "surrogate pairs". These consist of a high surrogate, i.e. a code * point in the range U+D800 - U+DBFF, and a low surrogate, i.e. a code point * in the range U+DC00 - U+DFFF, like this: * * U+D800 U+DC00 = U+10000 * U+D800 U+DC01 = U+10001 * ... * U+DBFF U+DFFE = U+10FFFE * U+DBFF U+DFFF = U+10FFFF * * These surrogate code points U+D800 - U+DFFF are not themselves valid Unicode * scalar values and are not well-formed UTF-16 except as high-surrogate / * low-surrogate pairs. */ // High surrogates are in the range 0xD800 -- OxDBFF // Low surrogates are in the range 0xDC00 -- 0xDFFF // Faster than testing NS_IS_HIGH_SURROGATE || NS_IS_LOW_SURROGATE // Everything else is not a surrogate: 0x000 -- 0xD7FF, 0xE000 -- 0xFFFF // N = (H - 0xD800) * 0x400 + 0x10000 + (L - 0xDC00) // I wonder whether we could somehow assert that H is a high surrogate // and L is a low surrogate // Extract surrogates from a UCS4 char // Reference: the Unicode standard 4.0, section 3.9 // Since (c - 0x10000) >> 10 == (c >> 10) - 0x0080 and // 0xD7C0 == 0xD800 - 0x0080, // ((c - 0x10000) >> 10) + 0xD800 can be simplified to // where it's to be noted that 0xD7C0 is not bitwise-OR'd // but added. // Since 0x10000 & 0x03FF == 0, // (c - 0x10000) & 0x03FF == c & 0x03FF so that // ((c - 0x10000) & 0x03FF) | 0xDC00 is equivalent to template struct nsCharTraits {}; template <> struct nsCharTraits { typedef PRUnichar char_type; typedef PRUint16 unsigned_char_type; typedef char incompatible_char_type; static char_type *sEmptyBuffer; static void assign( char_type& lhs, char_type rhs ) { lhs = rhs; } // integer representation of characters: typedef int int_type; #line 171 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCharTraits.h" static char_type to_char_type( int_type c ) { return char_type(c); } static int_type to_int_type( char_type c ) { return int_type( static_cast(c) ); } static nsCharTraits_bool eq_int_type( int_type lhs, int_type rhs ) { return lhs == rhs; } // |char_type| comparisons: static nsCharTraits_bool eq( char_type lhs, char_type rhs ) { return lhs == rhs; } static nsCharTraits_bool lt( char_type lhs, char_type rhs ) { return lhs < rhs; } // operations on s[n] arrays: static char_type* move( char_type* s1, const char_type* s2, size_t n ) { return static_cast(memmove(s1, s2, n * sizeof(char_type))); } static char_type* copy( char_type* s1, const char_type* s2, size_t n ) { return static_cast(memcpy(s1, s2, n * sizeof(char_type))); } static char_type* copyASCII( char_type* s1, const char* s2, size_t n ) { for (char_type* s = s1; n--; ++s, ++s2) { do { if (!(!(*s2 & ~0x7F))) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Unexpected non-ASCII character", "!(*s2 & ~0x7F)", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCharTraits.h", 232); } } while (0); *s = *s2; } return s1; } static char_type* assign( char_type* s, size_t n, char_type c ) { char_type* result = s; while ( n-- ) assign(*s++, c); return result; #line 250 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCharTraits.h" } static int compare( const char_type* s1, const char_type* s2, size_t n ) { for ( ; n--; ++s1, ++s2 ) { if ( !eq(*s1, *s2) ) return to_int_type(*s1) - to_int_type(*s2); } return 0; #line 267 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCharTraits.h" } static int compareASCII( const char_type* s1, const char* s2, size_t n ) { for ( ; n--; ++s1, ++s2 ) { do { if (!(!(*s2 & ~0x7F))) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Unexpected non-ASCII character", "!(*s2 & ~0x7F)", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCharTraits.h", 275); } } while (0); if ( !eq_int_type(to_int_type(*s1), to_int_type(*s2)) ) return to_int_type(*s1) - to_int_type(*s2); } return 0; } // this version assumes that s2 is null-terminated and s1 has length n. // if s1 is shorter than s2 then we return -1; if s1 is longer than s2, // we return 1. static int compareASCIINullTerminated( const char_type* s1, size_t n, const char* s2 ) { for ( ; n--; ++s1, ++s2 ) { if ( !*s2 ) return 1; do { if (!(!(*s2 & ~0x7F))) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Unexpected non-ASCII character", "!(*s2 & ~0x7F)", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCharTraits.h", 294); } } while (0); if ( !eq_int_type(to_int_type(*s1), to_int_type(*s2)) ) return to_int_type(*s1) - to_int_type(*s2); } if ( *s2 ) return -1; return 0; } /** * Convert c to its lower-case form, but only if the lower-case form is * ASCII. Otherwise leave it alone. * * There are only two non-ASCII Unicode characters whose lowercase * equivalents are ASCII: KELVIN SIGN and LATIN CAPITAL LETTER I WITH * DOT ABOVE. So it's a simple matter to handle those explicitly. */ static char_type ASCIIToLower( char_type c ) { if (c < 0x100) { if (c >= 'A' && c <= 'Z') return char_type(c + ('a' - 'A')); return c; } else { if (c == 0x212A) // KELVIN SIGN return 'k'; if (c == 0x0130) // LATIN CAPITAL LETTER I WITH DOT ABOVE return 'i'; return c; } } static int compareLowerCaseToASCII( const char_type* s1, const char* s2, size_t n ) { for ( ; n--; ++s1, ++s2 ) { do { if (!(!(*s2 & ~0x7F))) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Unexpected non-ASCII character", "!(*s2 & ~0x7F)", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCharTraits.h", 340); } } while (0); do { if (!(!(*s2 >= 'A' && *s2 <= 'Z'))) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Unexpected uppercase character", "!(*s2 >= 'A' && *s2 <= 'Z')", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCharTraits.h", 342); } } while (0); #line 343 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCharTraits.h" char_type lower_s1 = ASCIIToLower(*s1); if ( lower_s1 != to_char_type(*s2) ) return to_int_type(lower_s1) - to_int_type(*s2); } return 0; } // this version assumes that s2 is null-terminated and s1 has length n. // if s1 is shorter than s2 then we return -1; if s1 is longer than s2, // we return 1. static int compareLowerCaseToASCIINullTerminated( const char_type* s1, size_t n, const char* s2 ) { for ( ; n--; ++s1, ++s2 ) { if ( !*s2 ) return 1; do { if (!(!(*s2 & ~0x7F))) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Unexpected non-ASCII character", "!(*s2 & ~0x7F)", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCharTraits.h", 362); } } while (0); do { if (!(!(*s2 >= 'A' && *s2 <= 'Z'))) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Unexpected uppercase character", "!(*s2 >= 'A' && *s2 <= 'Z')", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCharTraits.h", 364); } } while (0); #line 365 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCharTraits.h" char_type lower_s1 = ASCIIToLower(*s1); if ( lower_s1 != to_char_type(*s2) ) return to_int_type(lower_s1) - to_int_type(*s2); } if ( *s2 ) return -1; return 0; } static size_t length( const char_type* s ) { size_t result = 0; while ( !eq(*s++, char_type(0)) ) ++result; return result; #line 388 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCharTraits.h" } static const char_type* find( const char_type* s, size_t n, char_type c ) { while ( n-- ) { if ( eq(*s, c) ) return s; ++s; } return 0; #line 406 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCharTraits.h" } #line 435 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCharTraits.h" }; template <> struct nsCharTraits { typedef char char_type; typedef unsigned char unsigned_char_type; typedef PRUnichar incompatible_char_type; static char_type *sEmptyBuffer; static void assign( char_type& lhs, char_type rhs ) { lhs = rhs; } // integer representation of characters: typedef int int_type; static char_type to_char_type( int_type c ) { return char_type(c); } static int_type to_int_type( char_type c ) { return int_type( static_cast(c) ); } static nsCharTraits_bool eq_int_type( int_type lhs, int_type rhs ) { return lhs == rhs; } // |char_type| comparisons: static nsCharTraits_bool eq( char_type lhs, char_type rhs ) { return lhs == rhs; } static nsCharTraits_bool lt( char_type lhs, char_type rhs ) { return lhs < rhs; } // operations on s[n] arrays: static char_type* move( char_type* s1, const char_type* s2, size_t n ) { return static_cast(memmove(s1, s2, n * sizeof(char_type))); } static char_type* copy( char_type* s1, const char_type* s2, size_t n ) { return static_cast(memcpy(s1, s2, n * sizeof(char_type))); } static char_type* copyASCII( char_type* s1, const char* s2, size_t n ) { return copy(s1, s2, n); } static char_type* assign( char_type* s, size_t n, char_type c ) { return static_cast(memset(s, to_int_type(c), n)); } static int compare( const char_type* s1, const char_type* s2, size_t n ) { return memcmp(s1, s2, n); } static int compareASCII( const char_type* s1, const char* s2, size_t n ) { for (size_t i = 0; i < n; ++i) { do { if (!(!(s2[i] & ~0x7F))) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Unexpected non-ASCII character", "!(s2[i] & ~0x7F)", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCharTraits.h", 541); } } while (0); } #line 544 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCharTraits.h" return compare(s1, s2, n); } // this version assumes that s2 is null-terminated and s1 has length n. // if s1 is shorter than s2 then we return -1; if s1 is longer than s2, // we return 1. static int compareASCIINullTerminated( const char_type* s1, size_t n, const char* s2 ) { // can't use strcmp here because we don't want to stop when s1 // contains a null for ( ; n--; ++s1, ++s2 ) { if ( !*s2 ) return 1; do { if (!(!(*s2 & ~0x7F))) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Unexpected non-ASCII character", "!(*s2 & ~0x7F)", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCharTraits.h", 560); } } while (0); if ( *s1 != *s2 ) return to_int_type(*s1) - to_int_type(*s2); } if ( *s2 ) return -1; return 0; } /** * Convert c to its lower-case form, but only if c is ASCII. */ static char_type ASCIIToLower( char_type c ) { if (c >= 'A' && c <= 'Z') return char_type(c + ('a' - 'A')); return c; } static int compareLowerCaseToASCII( const char_type* s1, const char* s2, size_t n ) { for ( ; n--; ++s1, ++s2 ) { do { if (!(!(*s2 & ~0x7F))) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Unexpected non-ASCII character", "!(*s2 & ~0x7F)", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCharTraits.h", 590); } } while (0); do { if (!(!(*s2 >= 'A' && *s2 <= 'Z'))) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Unexpected uppercase character", "!(*s2 >= 'A' && *s2 <= 'Z')", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCharTraits.h", 592); } } while (0); #line 593 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCharTraits.h" char_type lower_s1 = ASCIIToLower(*s1); if ( lower_s1 != *s2 ) return to_int_type(lower_s1) - to_int_type(*s2); } return 0; } // this version assumes that s2 is null-terminated and s1 has length n. // if s1 is shorter than s2 then we return -1; if s1 is longer than s2, // we return 1. static int compareLowerCaseToASCIINullTerminated( const char_type* s1, size_t n, const char* s2 ) { for ( ; n--; ++s1, ++s2 ) { if ( !*s2 ) return 1; do { if (!(!(*s2 & ~0x7F))) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Unexpected non-ASCII character", "!(*s2 & ~0x7F)", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCharTraits.h", 611); } } while (0); do { if (!(!(*s2 >= 'A' && *s2 <= 'Z'))) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Unexpected uppercase character", "!(*s2 >= 'A' && *s2 <= 'Z')", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCharTraits.h", 613); } } while (0); #line 614 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCharTraits.h" char_type lower_s1 = ASCIIToLower(*s1); if ( lower_s1 != *s2 ) return to_int_type(lower_s1) - to_int_type(*s2); } if ( *s2 ) return -1; return 0; } static size_t length( const char_type* s ) { return strlen(s); } static const char_type* find( const char_type* s, size_t n, char_type c ) { return reinterpret_cast(memchr(s, to_int_type(c), n)); } #line 662 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCharTraits.h" }; template struct nsCharSourceTraits { typedef typename InputIterator::difference_type difference_type; static PRUint32 readable_distance( const InputIterator& first, const InputIterator& last ) { // assumes single fragment return PRUint32(last.get() - first.get()); } static const typename InputIterator::value_type* read( const InputIterator& iter ) { return iter.get(); } static void advance( InputIterator& s, difference_type n ) { s.advance(n); } }; template <> struct nsCharSourceTraits { typedef ptrdiff_t difference_type; static PRUint32 readable_distance( const char* s ) { return PRUint32(nsCharTraits::length(s)); // return numeric_limits::max(); } static PRUint32 readable_distance( const char* first, const char* last ) { return PRUint32(last-first); } static const char* read( const char* s ) { return s; } static void advance( const char*& s, difference_type n ) { s += n; } }; template <> struct nsCharSourceTraits { typedef ptrdiff_t difference_type; static PRUint32 readable_distance( const PRUnichar* s ) { return PRUint32(nsCharTraits::length(s)); // return numeric_limits::max(); } static PRUint32 readable_distance( const PRUnichar* first, const PRUnichar* last ) { return PRUint32(last-first); } static const PRUnichar* read( const PRUnichar* s ) { return s; } static void advance( const PRUnichar*& s, difference_type n ) { s += n; } }; #line 803 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCharTraits.h" template struct nsCharSinkTraits { static void write( OutputIterator& iter, const typename OutputIterator::value_type* s, PRUint32 n ) { iter.write(s, n); } }; template <> struct nsCharSinkTraits { static void write( char*& iter, const char* s, PRUint32 n ) { nsCharTraits::move(iter, s, n); iter += n; } }; template <> struct nsCharSinkTraits { static void write( PRUnichar*& iter, const PRUnichar* s, PRUint32 n ) { nsCharTraits::move(iter, s, n); iter += n; } }; #line 857 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCharTraits.h" #line 859 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCharTraits.h" #line 44 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsStringIterator.h" #line 45 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsStringIterator.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAlgorithm.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Scott Collins (original author) * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ template inline const T& NS_MIN( const T& a, const T& b ) { return b < a ? b : a; } template inline const T& NS_MAX( const T& a, const T& b ) { return a > b ? a : b; } template inline PRUint32 NS_COUNT( InputIterator& first, const InputIterator& last, const T& value ) { PRUint32 result = 0; for ( ; first != last; ++first ) if ( *first == value ) ++result; return result; } template inline OutputIterator& copy_string( const InputIterator& first, const InputIterator& last, OutputIterator& result ) { typedef nsCharSourceTraits source_traits; typedef nsCharSinkTraits sink_traits; sink_traits::write(result, source_traits::read(first), source_traits::readable_distance(first, last)); return result; } #line 98 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAlgorithm.h" #line 48 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsStringIterator.h" #line 49 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsStringIterator.h" /** * @see nsTAString */ template class nsReadingIterator { public: typedef nsReadingIterator self_type; typedef ptrdiff_t difference_type; typedef CharT value_type; typedef const CharT* pointer; typedef const CharT& reference; private: friend class nsAString_internal; friend class nsACString_internal; // unfortunately, the API for nsReadingIterator requires that the // iterator know its start and end positions. this was needed when // we supported multi-fragment strings, but now it is really just // extra baggage. we should remove mStart and mEnd at some point. const CharT* mStart; const CharT* mEnd; const CharT* mPosition; public: nsReadingIterator() { } // nsReadingIterator( const nsReadingIterator& ); // auto-generated copy-constructor OK // nsReadingIterator& operator=( const nsReadingIterator& ); // auto-generated copy-assignment operator OK inline void normalize_forward() {} inline void normalize_backward() {} pointer start() const { return mStart; } pointer end() const { return mEnd; } pointer get() const { return mPosition; } CharT operator*() const { return *get(); } #line 122 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsStringIterator.h" self_type& operator++() { ++mPosition; return *this; } self_type operator++( int ) { self_type result(*this); ++mPosition; return result; } self_type& operator--() { --mPosition; return *this; } self_type operator--( int ) { self_type result(*this); --mPosition; return result; } difference_type size_forward() const { return mEnd - mPosition; } difference_type size_backward() const { return mPosition - mStart; } self_type& advance( difference_type n ) { if (n > 0) { difference_type step = NS_MIN(n, size_forward()); do { if (!(step>0)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "can't advance a reading iterator beyond the end of a string", "step>0", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsStringIterator.h", 172); } } while (0); mPosition += step; } else if (n < 0) { difference_type step = NS_MAX(n, -size_backward()); do { if (!(step<0)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "can't advance (backward) a reading iterator beyond the end of a string", "step<0", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsStringIterator.h", 180); } } while (0); mPosition += step; } return *this; } }; /** * @see nsTAString */ template class nsWritingIterator { public: typedef nsWritingIterator self_type; typedef ptrdiff_t difference_type; typedef CharT value_type; typedef CharT* pointer; typedef CharT& reference; private: friend class nsAString_internal; friend class nsACString_internal; // unfortunately, the API for nsWritingIterator requires that the // iterator know its start and end positions. this was needed when // we supported multi-fragment strings, but now it is really just // extra baggage. we should remove mStart and mEnd at some point. CharT* mStart; CharT* mEnd; CharT* mPosition; public: nsWritingIterator() { } // nsWritingIterator( const nsWritingIterator& ); // auto-generated copy-constructor OK // nsWritingIterator& operator=( const nsWritingIterator& ); // auto-generated copy-assignment operator OK inline void normalize_forward() {} inline void normalize_backward() {} pointer start() const { return mStart; } pointer end() const { return mEnd; } pointer get() const { return mPosition; } reference operator*() const { return *get(); } #line 256 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsStringIterator.h" self_type& operator++() { ++mPosition; return *this; } self_type operator++( int ) { self_type result(*this); ++mPosition; return result; } self_type& operator--() { --mPosition; return *this; } self_type operator--( int ) { self_type result(*this); --mPosition; return result; } difference_type size_forward() const { return mEnd - mPosition; } difference_type size_backward() const { return mPosition - mStart; } self_type& advance( difference_type n ) { if (n > 0) { difference_type step = NS_MIN(n, size_forward()); do { if (!(step>0)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "can't advance a writing iterator beyond the end of a string", "step>0", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsStringIterator.h", 306); } } while (0); mPosition += step; } else if (n < 0) { difference_type step = NS_MAX(n, -size_backward()); do { if (!(step<0)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "can't advance (backward) a writing iterator beyond the end of a string", "step<0", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsStringIterator.h", 314); } } while (0); mPosition += step; } return *this; } void write( const value_type* s, PRUint32 n ) { do { if (!(size_forward() > 0)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "You can't |write| into an |nsWritingIterator| with no space!", "size_forward() > 0", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsStringIterator.h", 324); } } while (0); nsCharTraits::move(mPosition, s, n); advance( difference_type(n) ); } }; template inline PRBool operator==( const nsReadingIterator& lhs, const nsReadingIterator& rhs ) { return lhs.get() == rhs.get(); } template inline PRBool operator!=( const nsReadingIterator& lhs, const nsReadingIterator& rhs ) { return lhs.get() != rhs.get(); } // // |nsWritingIterator|s // template inline PRBool operator==( const nsWritingIterator& lhs, const nsWritingIterator& rhs ) { return lhs.get() == rhs.get(); } template inline PRBool operator!=( const nsWritingIterator& lhs, const nsWritingIterator& rhs ) { return lhs.get() != rhs.get(); } #line 369 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsStringIterator.h" #line 48 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAString.h" #line 49 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAString.h" // If some platform(s) can't handle our template that matches literal strings, // then we'll disable it on those platforms. #line 56 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAString.h" #line 57 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAString.h" // declare nsAString #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\string-template-def-unichar.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 64 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAString.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTSubstring.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /** * The base for string comparators */ class nsStringComparator { public: typedef PRUnichar char_type; nsStringComparator() {} virtual int operator()( const char_type*, const char_type*, PRUint32, PRUint32 ) const = 0; }; /** * The default string comparator (case-sensitive comparision) */ class nsDefaultStringComparator : public nsStringComparator { public: typedef PRUnichar char_type; nsDefaultStringComparator() {} virtual int operator()( const char_type*, const char_type*, PRUint32, PRUint32 ) const; }; /** * nsTSubstring is the most abstract class in the string hierarchy. It * represents a single contiguous array of characters, which may or may not * be null-terminated. This type is not instantiated directly. A sub-class * is instantiated instead. For example, see nsTString. * * NAMES: * nsAString for wide characters * nsACString for narrow characters * * Many of the accessors on nsTSubstring are inlined as an optimization. */ class nsAString_internal { public: typedef PRUnichar char_type; typedef nsCharTraits char_traits; typedef char_traits::incompatible_char_type incompatible_char_type; typedef nsAString_internal self_type; typedef self_type abstract_string_type; typedef self_type base_string_type; typedef self_type substring_type; typedef nsSubstringTuple substring_tuple_type; typedef nsString string_type; typedef nsReadingIterator const_iterator; typedef nsWritingIterator iterator; typedef nsStringComparator comparator_type; typedef char_type* char_iterator; typedef const char_type* const_char_iterator; typedef PRUint32 size_type; typedef PRUint32 index_type; public: // this acts like a virtual destructor ~nsAString_internal() { Finalize(); } /** * reading iterators */ const_char_iterator BeginReading() const { return mData; } const_char_iterator EndReading() const { return mData + mLength; } /** * deprecated reading iterators */ const_iterator& BeginReading( const_iterator& iter ) const { iter.mStart = mData; iter.mEnd = mData + mLength; iter.mPosition = iter.mStart; return iter; } const_iterator& EndReading( const_iterator& iter ) const { iter.mStart = mData; iter.mEnd = mData + mLength; iter.mPosition = iter.mEnd; return iter; } const_char_iterator& BeginReading( const_char_iterator& iter ) const { return iter = mData; } const_char_iterator& EndReading( const_char_iterator& iter ) const { return iter = mData + mLength; } /** * writing iterators */ char_iterator BeginWriting() { return EnsureMutable() ? mData : char_iterator(0); } char_iterator EndWriting() { return EnsureMutable() ? (mData + mLength) : char_iterator(0); } /** * deprecated writing iterators */ iterator& BeginWriting( iterator& iter ) { char_type *data = EnsureMutable() ? mData : 0L; iter.mStart = data; iter.mEnd = data + mLength; iter.mPosition = iter.mStart; return iter; } iterator& EndWriting( iterator& iter ) { char_type *data = EnsureMutable() ? mData : 0L; iter.mStart = data; iter.mEnd = data + mLength; iter.mPosition = iter.mEnd; return iter; } char_iterator& BeginWriting( char_iterator& iter ) { return iter = EnsureMutable() ? mData : char_iterator(0); } char_iterator& EndWriting( char_iterator& iter ) { return iter = EnsureMutable() ? (mData + mLength) : char_iterator(0); } /** * accessors */ // returns pointer to string data (not necessarily null-terminated) const char_type *Data() const { return mData; } size_type Length() const { return mLength; } PRBool IsEmpty() const { return mLength == 0; } PRBool IsVoid() const { return (mFlags & F_VOIDED) != 0; } PRBool IsTerminated() const { return (mFlags & F_TERMINATED) != 0; } char_type CharAt( index_type i ) const { do { if (!(i < mLength)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "index exceeds allowable range", "i < mLength", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTSubstring.h", 233); } } while (0); return mData[i]; } char_type operator[]( index_type i ) const { return CharAt(i); } char_type First() const { do { if (!(mLength > 0)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "|First()| called on an empty string", "mLength > 0", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTSubstring.h", 244); } } while (0); return mData[0]; } inline char_type Last() const { do { if (!(mLength > 0)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "|Last()| called on an empty string", "mLength > 0", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTSubstring.h", 251); } } while (0); return mData[mLength - 1]; } size_type __fastcall CountChar( char_type ) const; PRInt32 __fastcall FindChar( char_type, index_type offset = 0 ) const; /** * equality */ PRBool __fastcall Equals( const self_type& ) const; PRBool __fastcall Equals( const self_type&, const comparator_type& ) const; PRBool __fastcall Equals( const char_type* data ) const; PRBool __fastcall Equals( const char_type* data, const comparator_type& comp ) const; /** * An efficient comparison with ASCII that can be used even * for wide strings. Call this version when you know the * length of 'data'. */ PRBool __fastcall EqualsASCII( const char* data, size_type len ) const; /** * An efficient comparison with ASCII that can be used even * for wide strings. Call this version when 'data' is * null-terminated. */ PRBool __fastcall EqualsASCII( const char* data ) const; // EqualsLiteral must ONLY be applied to an actual literal string. // Do not attempt to use it with a regular char* pointer, or with a char // array variable. // The template trick to acquire the array length at compile time without // using a macro is due to Corey Kosak, with much thanks. template inline PRBool EqualsLiteral( const char (&str)[N] ) const { return EqualsASCII(str, N-1); } template inline PRBool EqualsLiteral( char (&str)[N] ) const { const char* s = str; return EqualsASCII(s, N-1); } #line 305 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTSubstring.h" // The LowerCaseEquals methods compare the lower case version of // this string to some ASCII/Literal string. The ASCII string is // *not* lowercased for you. If you compare to an ASCII or literal // string that contains an uppercase character, it is guaranteed to // return false. We will throw assertions too. PRBool __fastcall LowerCaseEqualsASCII( const char* data, size_type len ) const; PRBool __fastcall LowerCaseEqualsASCII( const char* data ) const; // LowerCaseEqualsLiteral must ONLY be applied to an actual // literal string. Do not attempt to use it with a regular char* // pointer, or with a char array variable. Use // LowerCaseEqualsASCII for them. template inline PRBool LowerCaseEqualsLiteral( const char (&str)[N] ) const { return LowerCaseEqualsASCII(str, N-1); } template inline PRBool LowerCaseEqualsLiteral( char (&str)[N] ) const { const char* s = str; return LowerCaseEqualsASCII(s, N-1); } #line 336 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTSubstring.h" /** * assignment */ void __fastcall Assign( char_type c ); void __fastcall Assign( const char_type* data, size_type length = size_type(-1) ); void __fastcall Assign( const self_type& ); void __fastcall Assign( const substring_tuple_type& ); void __fastcall AssignASCII( const char* data, size_type length ); void __fastcall AssignASCII( const char* data ); // AssignLiteral must ONLY be applied to an actual literal string. // Do not attempt to use it with a regular char* pointer, or with a char // array variable. Use AssignASCII for those. template void AssignLiteral( const char (&str)[N] ) { AssignASCII(str, N-1); } template void AssignLiteral( char (&str)[N] ) { AssignASCII(str, N-1); } #line 363 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTSubstring.h" self_type& operator=( char_type c ) { Assign(c); return *this; } self_type& operator=( const char_type* data ) { Assign(data); return *this; } self_type& operator=( const self_type& str ) { Assign(str); return *this; } self_type& operator=( const substring_tuple_type& tuple ) { Assign(tuple); return *this; } void __fastcall Adopt( char_type* data, size_type length = size_type(-1) ); /** * buffer manipulation */ void __fastcall Replace( index_type cutStart, size_type cutLength, char_type c ); void __fastcall Replace( index_type cutStart, size_type cutLength, const char_type* data, size_type length = size_type(-1) ); void Replace( index_type cutStart, size_type cutLength, const self_type& str ) { Replace(cutStart, cutLength, str.Data(), str.Length()); } void __fastcall Replace( index_type cutStart, size_type cutLength, const substring_tuple_type& tuple ); void __fastcall ReplaceASCII( index_type cutStart, size_type cutLength, const char* data, size_type length = size_type(-1) ); void Append( char_type c ) { Replace(mLength, 0, c); } void Append( const char_type* data, size_type length = size_type(-1) ) { Replace(mLength, 0, data, length); } void Append( const self_type& str ) { Replace(mLength, 0, str); } void Append( const substring_tuple_type& tuple ) { Replace(mLength, 0, tuple); } void AppendASCII( const char* data, size_type length = size_type(-1) ) { ReplaceASCII(mLength, 0, data, length); } // AppendPrintf truncates output to 31 ASCII characters void AppendPrintf( const char* format, ... ); void AppendInt( PRInt32 aInteger ) { AppendPrintf( "%d", aInteger ); } void AppendInt( PRInt32 aInteger, int aRadix ) { const char *fmt = aRadix == 10 ? "%d" : aRadix == 8 ? "%o" : "%x"; AppendPrintf( fmt, aInteger ); } void AppendInt( PRUint32 aInteger ) { AppendPrintf( "%u", aInteger ); } void AppendInt( PRUint32 aInteger, int aRadix ) { const char *fmt = aRadix == 10 ? "%u" : aRadix == 8 ? "%o" : "%x"; AppendPrintf( fmt, aInteger ); } void AppendInt( PRInt64 aInteger ) { AppendPrintf( "%lld", aInteger ); } void AppendInt( PRInt64 aInteger, int aRadix ) { const char *fmt = aRadix == 10 ? "%lld" : aRadix == 8 ? "%llo" : "%llx"; AppendPrintf( fmt, aInteger ); } void AppendInt( PRUint64 aInteger ) { AppendPrintf( "%llu", aInteger ); } void AppendInt( PRUint64 aInteger, int aRadix ) { const char *fmt = aRadix == 10 ? "%llu" : aRadix == 8 ? "%llo" : "%llx"; AppendPrintf( fmt, aInteger ); } /** * Append the given float to this string */ void AppendFloat( float aFloat ) { DoAppendFloat(aFloat, 6); } void AppendFloat( double aFloat ) { DoAppendFloat(aFloat, 15); } private: void __fastcall DoAppendFloat( double aFloat, int digits ); public: // AppendLiteral must ONLY be applied to an actual literal string. // Do not attempt to use it with a regular char* pointer, or with a char // array variable. Use AppendASCII for those. template void AppendLiteral( const char (&str)[N] ) { AppendASCII(str, N-1); } template void AppendLiteral( char (&str)[N] ) { AppendASCII(str, N-1); } #line 446 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTSubstring.h" self_type& operator+=( char_type c ) { Append(c); return *this; } self_type& operator+=( const char_type* data ) { Append(data); return *this; } self_type& operator+=( const self_type& str ) { Append(str); return *this; } self_type& operator+=( const substring_tuple_type& tuple ) { Append(tuple); return *this; } void Insert( char_type c, index_type pos ) { Replace(pos, 0, c); } void Insert( const char_type* data, index_type pos, size_type length = size_type(-1) ) { Replace(pos, 0, data, length); } void Insert( const self_type& str, index_type pos ) { Replace(pos, 0, str); } void Insert( const substring_tuple_type& tuple, index_type pos ) { Replace(pos, 0, tuple); } void Cut( index_type cutStart, size_type cutLength ) { Replace(cutStart, cutLength, char_traits::sEmptyBuffer, 0); } /** * buffer sizing */ /** * Attempts to set the capacity to the given size, without affecting * the length of the string. Also ensures that the buffer is mutable. * * @returns PR_TRUE on success * PR_FALSE on out-of-memory, or if requesting a size bigger * than a string can hold (2^31 chars). */ PRBool __fastcall SetCapacity( size_type newCapacity ); void __fastcall SetLength( size_type newLength ); void Truncate( size_type newLength = 0 ) { do { if (!(newLength <= mLength)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Truncate cannot make string longer", "newLength <= mLength", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTSubstring.h", 478); } } while (0); SetLength(newLength); } /** * buffer access */ /** * Get a const pointer to the string's internal buffer. The caller * MUST NOT modify the characters at the returned address. * * @returns The length of the buffer in characters. */ inline size_type GetData( const char_type** data ) const { *data = mData; return mLength; } /** * Get a pointer to the string's internal buffer, optionally resizing * the buffer first. If size_type(-1) is passed for newLen, then the * current length of the string is used. The caller MAY modify the * characters at the returned address (up to but not exceeding the * length of the string). * * @returns The length of the buffer in characters or 0 if unable to * satisfy the request due to low-memory conditions. */ inline size_type GetMutableData( char_type** data, size_type newLen = size_type(-1) ) { if (!EnsureMutable(newLen)) { *data = 0L; return 0; } *data = mData; return mLength; } /** * string data is never null, but can be marked void. if true, the * string will be truncated. @see nsTSubstring::IsVoid */ void __fastcall SetIsVoid( PRBool ); /** * This method is used to remove all occurrences of aChar from this * string. * * @param aChar -- char to be stripped * @param aOffset -- where in this string to start stripping chars */ void StripChar( char_type aChar, PRInt32 aOffset=0 ); /** * This method is used to remove all occurrences of aChars from this * string. * * @param aChars -- chars to be stripped * @param aOffset -- where in this string to start stripping chars */ void StripChars( const char_type* aChars, PRUint32 aOffset=0 ); /** * If the string uses a shared buffer, this method * clears the pointer without releasing the buffer. */ void ForgetSharedBuffer() { if (mFlags & nsSubstring::F_SHARED) { mData = char_traits::sEmptyBuffer; mLength = 0; mFlags = F_TERMINATED; } } public: /** * this is public to support automatic conversion of tuple to string * base type, which helps avoid converting to nsTAString. */ nsAString_internal(const substring_tuple_type& tuple) : mData(0L), mLength(0), mFlags(F_NONE) { Assign(tuple); } /** * allows for direct initialization of a nsTSubstring object. * * NOTE: this constructor is declared public _only_ for convenience * inside the string implementation. */ // XXXbz or can I just include nscore.h and use NS_BUILD_REFCNT_LOGGING? nsAString_internal( char_type *data, size_type length, PRUint32 flags ); #line 595 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTSubstring.h" protected: friend class nsTObsoleteAStringThunk_CharT; friend class nsSubstringTuple; // XXX GCC 3.4 needs this :-( friend class nsPromiseFlatString; char_type* mData; size_type mLength; PRUint32 mFlags; // default initialization nsAString_internal() : mData(char_traits::sEmptyBuffer), mLength(0), mFlags(F_TERMINATED) {} // version of constructor that leaves mData and mLength uninitialized explicit nsAString_internal( PRUint32 flags ) : mFlags(flags) {} // copy-constructor, constructs as dependent on given object // (NOTE: this is for internal use only) nsAString_internal( const self_type& str ) : mData(str.mData), mLength(str.mLength), mFlags(str.mFlags & (F_TERMINATED | F_VOIDED)) {} /** * this function releases mData and does not change the value of * any of its member variables. in other words, this function acts * like a destructor. */ void __fastcall Finalize(); /** * this function prepares mData to be mutated. * * @param capacity specifies the required capacity of mData * @param old_data returns null or the old value of mData * @param old_flags returns 0 or the old value of mFlags * * if mData is already mutable and of sufficient capacity, then this * function will return immediately. otherwise, it will either resize * mData or allocate a new shared buffer. if it needs to allocate a * new buffer, then it will return the old buffer and the corresponding * flags. this allows the caller to decide when to free the old data. * * this function returns false if is unable to allocate sufficient * memory. * * XXX we should expose a way for subclasses to free old_data. */ PRBool __fastcall MutatePrep( size_type capacity, char_type** old_data, PRUint32* old_flags ); /** * this function prepares a section of mData to be modified. if * necessary, this function will reallocate mData and possibly move * existing data to open up the specified section. * * @param cutStart specifies the starting offset of the section * @param cutLength specifies the length of the section to be replaced * @param newLength specifies the length of the new section * * for example, suppose mData contains the string "abcdef" then * * ReplacePrep(2, 3, 4); * * would cause mData to look like "ab____f" where the characters * indicated by '_' have an unspecified value and can be freely * modified. this function will null-terminate mData upon return. * * this function returns false if is unable to allocate sufficient * memory. */ PRBool ReplacePrep(index_type cutStart, size_type cutLength, size_type newLength) { cutLength = NS_MIN(cutLength, mLength - cutStart); PRUint32 newTotalLen = mLength - cutLength + newLength; if (cutStart == mLength && Capacity() > newTotalLen) { mFlags &= ~F_VOIDED; mData[newTotalLen] = char_type(0); mLength = newTotalLen; return 1; } return ReplacePrepInternal(cutStart, cutLength, newLength, newTotalLen); } PRBool __fastcall ReplacePrepInternal(index_type cutStart, size_type cutLength, size_type newFragLength, size_type newTotalLength); /** * returns the number of writable storage units starting at mData. * the value does not include space for the null-terminator character. * * NOTE: this function returns 0 if mData is immutable (or the buffer * is 0-sized). */ size_type __fastcall Capacity() const; /** * this helper function can be called prior to directly manipulating * the contents of mData. see, for example, BeginWriting. */ PRBool __fastcall EnsureMutable( size_type newLen = size_type(-1) ); /** * returns true if this string overlaps with the given string fragment. */ PRBool IsDependentOn( const char_type *start, const char_type *end ) const { /** * if it _isn't_ the case that one fragment starts after the other ends, * or ends before the other starts, then, they conflict: * * !(f2.begin >= f1.end || f2.end <= f1.begin) * * Simplified, that gives us: */ return ( start < (mData + mLength) && end > mData ); } /** * this helper function stores the specified dataFlags in mFlags */ void SetDataFlags(PRUint32 dataFlags) { do { if (!((dataFlags & 0xFFFF0000) == 0)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "bad flags", "(dataFlags & 0xFFFF0000) == 0", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTSubstring.h", 728); } } while (0); mFlags = dataFlags | (mFlags & 0xFFFF0000); } public: // mFlags is a bitwise combination of the following flags. the meaning // and interpretation of these flags is an implementation detail. // // NOTE: these flags are declared public _only_ for convenience inside // the string implementation. enum { F_NONE = 0, // no flags // data flags are in the lower 16-bits F_TERMINATED = 1 << 0, // IsTerminated returns true F_VOIDED = 1 << 1, // IsVoid returns true F_SHARED = 1 << 2, // mData points to a heap-allocated, shared buffer F_OWNED = 1 << 3, // mData points to a heap-allocated, raw buffer F_FIXED = 1 << 4, // mData points to a fixed-size writable, dependent buffer // class flags are in the upper 16-bits F_CLASS_FIXED = 1 << 16 // indicates that |this| is of type nsTFixedString }; // // Some terminology: // // "dependent buffer" A dependent buffer is one that the string class // does not own. The string class relies on some // external code to ensure the lifetime of the // dependent buffer. // // "shared buffer" A shared buffer is one that the string class // allocates. When it allocates a shared string // buffer, it allocates some additional space at // the beginning of the buffer for additional // fields, including a reference count and a // buffer length. See nsStringHeader. // // "adopted buffer" An adopted buffer is a raw string buffer // allocated on the heap (using nsMemory::Alloc) // of which the string class subsumes ownership. // // Some comments about the string flags: // // F_SHARED, F_OWNED, and F_FIXED are all mutually exlusive. They // indicate the allocation type of mData. If none of these flags // are set, then the string buffer is dependent. // // F_SHARED, F_OWNED, or F_FIXED imply F_TERMINATED. This is because // the string classes always allocate null-terminated buffers, and // non-terminated substrings are always dependent. // // F_VOIDED implies F_TERMINATED, and moreover it implies that mData // points to char_traits::sEmptyBuffer. Therefore, F_VOIDED is // mutually exclusive with F_SHARED, F_OWNED, and F_FIXED. // }; int __fastcall Compare( const nsAString_internal::base_string_type& lhs, const nsAString_internal::base_string_type& rhs, const nsStringComparator& = nsDefaultStringComparator() ); inline PRBool operator!=( const nsAString_internal::base_string_type& lhs, const nsAString_internal::base_string_type& rhs ) { return !lhs.Equals(rhs); } inline PRBool operator< ( const nsAString_internal::base_string_type& lhs, const nsAString_internal::base_string_type& rhs ) { return Compare(lhs, rhs)< 0; } inline PRBool operator<=( const nsAString_internal::base_string_type& lhs, const nsAString_internal::base_string_type& rhs ) { return Compare(lhs, rhs)<=0; } inline PRBool operator==( const nsAString_internal::base_string_type& lhs, const nsAString_internal::base_string_type& rhs ) { return lhs.Equals(rhs); } inline PRBool operator>=( const nsAString_internal::base_string_type& lhs, const nsAString_internal::base_string_type& rhs ) { return Compare(lhs, rhs)>=0; } inline PRBool operator> ( const nsAString_internal::base_string_type& lhs, const nsAString_internal::base_string_type& rhs ) { return Compare(lhs, rhs)> 0; } #line 65 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAString.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\string-template-undef.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 66 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAString.h" // declare nsACString #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\string-template-def-char.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 69 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAString.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTSubstring.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /** * The base for string comparators */ class nsCStringComparator { public: typedef char char_type; nsCStringComparator() {} virtual int operator()( const char_type*, const char_type*, PRUint32, PRUint32 ) const = 0; }; /** * The default string comparator (case-sensitive comparision) */ class nsDefaultCStringComparator : public nsCStringComparator { public: typedef char char_type; nsDefaultCStringComparator() {} virtual int operator()( const char_type*, const char_type*, PRUint32, PRUint32 ) const; }; /** * nsTSubstring is the most abstract class in the string hierarchy. It * represents a single contiguous array of characters, which may or may not * be null-terminated. This type is not instantiated directly. A sub-class * is instantiated instead. For example, see nsTString. * * NAMES: * nsAString for wide characters * nsACString for narrow characters * * Many of the accessors on nsTSubstring are inlined as an optimization. */ class nsACString_internal { public: typedef char char_type; typedef nsCharTraits char_traits; typedef char_traits::incompatible_char_type incompatible_char_type; typedef nsACString_internal self_type; typedef self_type abstract_string_type; typedef self_type base_string_type; typedef self_type substring_type; typedef nsCSubstringTuple substring_tuple_type; typedef nsCString string_type; typedef nsReadingIterator const_iterator; typedef nsWritingIterator iterator; typedef nsCStringComparator comparator_type; typedef char_type* char_iterator; typedef const char_type* const_char_iterator; typedef PRUint32 size_type; typedef PRUint32 index_type; public: // this acts like a virtual destructor ~nsACString_internal() { Finalize(); } /** * reading iterators */ const_char_iterator BeginReading() const { return mData; } const_char_iterator EndReading() const { return mData + mLength; } /** * deprecated reading iterators */ const_iterator& BeginReading( const_iterator& iter ) const { iter.mStart = mData; iter.mEnd = mData + mLength; iter.mPosition = iter.mStart; return iter; } const_iterator& EndReading( const_iterator& iter ) const { iter.mStart = mData; iter.mEnd = mData + mLength; iter.mPosition = iter.mEnd; return iter; } const_char_iterator& BeginReading( const_char_iterator& iter ) const { return iter = mData; } const_char_iterator& EndReading( const_char_iterator& iter ) const { return iter = mData + mLength; } /** * writing iterators */ char_iterator BeginWriting() { return EnsureMutable() ? mData : char_iterator(0); } char_iterator EndWriting() { return EnsureMutable() ? (mData + mLength) : char_iterator(0); } /** * deprecated writing iterators */ iterator& BeginWriting( iterator& iter ) { char_type *data = EnsureMutable() ? mData : 0L; iter.mStart = data; iter.mEnd = data + mLength; iter.mPosition = iter.mStart; return iter; } iterator& EndWriting( iterator& iter ) { char_type *data = EnsureMutable() ? mData : 0L; iter.mStart = data; iter.mEnd = data + mLength; iter.mPosition = iter.mEnd; return iter; } char_iterator& BeginWriting( char_iterator& iter ) { return iter = EnsureMutable() ? mData : char_iterator(0); } char_iterator& EndWriting( char_iterator& iter ) { return iter = EnsureMutable() ? (mData + mLength) : char_iterator(0); } /** * accessors */ // returns pointer to string data (not necessarily null-terminated) const char_type *Data() const { return mData; } size_type Length() const { return mLength; } PRBool IsEmpty() const { return mLength == 0; } PRBool IsVoid() const { return (mFlags & F_VOIDED) != 0; } PRBool IsTerminated() const { return (mFlags & F_TERMINATED) != 0; } char_type CharAt( index_type i ) const { do { if (!(i < mLength)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "index exceeds allowable range", "i < mLength", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTSubstring.h", 233); } } while (0); return mData[i]; } char_type operator[]( index_type i ) const { return CharAt(i); } char_type First() const { do { if (!(mLength > 0)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "|First()| called on an empty string", "mLength > 0", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTSubstring.h", 244); } } while (0); return mData[0]; } inline char_type Last() const { do { if (!(mLength > 0)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "|Last()| called on an empty string", "mLength > 0", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTSubstring.h", 251); } } while (0); return mData[mLength - 1]; } size_type __fastcall CountChar( char_type ) const; PRInt32 __fastcall FindChar( char_type, index_type offset = 0 ) const; /** * equality */ PRBool __fastcall Equals( const self_type& ) const; PRBool __fastcall Equals( const self_type&, const comparator_type& ) const; PRBool __fastcall Equals( const char_type* data ) const; PRBool __fastcall Equals( const char_type* data, const comparator_type& comp ) const; /** * An efficient comparison with ASCII that can be used even * for wide strings. Call this version when you know the * length of 'data'. */ PRBool __fastcall EqualsASCII( const char* data, size_type len ) const; /** * An efficient comparison with ASCII that can be used even * for wide strings. Call this version when 'data' is * null-terminated. */ PRBool __fastcall EqualsASCII( const char* data ) const; // EqualsLiteral must ONLY be applied to an actual literal string. // Do not attempt to use it with a regular char* pointer, or with a char // array variable. // The template trick to acquire the array length at compile time without // using a macro is due to Corey Kosak, with much thanks. template inline PRBool EqualsLiteral( const char (&str)[N] ) const { return EqualsASCII(str, N-1); } template inline PRBool EqualsLiteral( char (&str)[N] ) const { const char* s = str; return EqualsASCII(s, N-1); } #line 305 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTSubstring.h" // The LowerCaseEquals methods compare the lower case version of // this string to some ASCII/Literal string. The ASCII string is // *not* lowercased for you. If you compare to an ASCII or literal // string that contains an uppercase character, it is guaranteed to // return false. We will throw assertions too. PRBool __fastcall LowerCaseEqualsASCII( const char* data, size_type len ) const; PRBool __fastcall LowerCaseEqualsASCII( const char* data ) const; // LowerCaseEqualsLiteral must ONLY be applied to an actual // literal string. Do not attempt to use it with a regular char* // pointer, or with a char array variable. Use // LowerCaseEqualsASCII for them. template inline PRBool LowerCaseEqualsLiteral( const char (&str)[N] ) const { return LowerCaseEqualsASCII(str, N-1); } template inline PRBool LowerCaseEqualsLiteral( char (&str)[N] ) const { const char* s = str; return LowerCaseEqualsASCII(s, N-1); } #line 336 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTSubstring.h" /** * assignment */ void __fastcall Assign( char_type c ); void __fastcall Assign( const char_type* data, size_type length = size_type(-1) ); void __fastcall Assign( const self_type& ); void __fastcall Assign( const substring_tuple_type& ); void __fastcall AssignASCII( const char* data, size_type length ); void __fastcall AssignASCII( const char* data ); // AssignLiteral must ONLY be applied to an actual literal string. // Do not attempt to use it with a regular char* pointer, or with a char // array variable. Use AssignASCII for those. template void AssignLiteral( const char (&str)[N] ) { AssignASCII(str, N-1); } template void AssignLiteral( char (&str)[N] ) { AssignASCII(str, N-1); } #line 363 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTSubstring.h" self_type& operator=( char_type c ) { Assign(c); return *this; } self_type& operator=( const char_type* data ) { Assign(data); return *this; } self_type& operator=( const self_type& str ) { Assign(str); return *this; } self_type& operator=( const substring_tuple_type& tuple ) { Assign(tuple); return *this; } void __fastcall Adopt( char_type* data, size_type length = size_type(-1) ); /** * buffer manipulation */ void __fastcall Replace( index_type cutStart, size_type cutLength, char_type c ); void __fastcall Replace( index_type cutStart, size_type cutLength, const char_type* data, size_type length = size_type(-1) ); void Replace( index_type cutStart, size_type cutLength, const self_type& str ) { Replace(cutStart, cutLength, str.Data(), str.Length()); } void __fastcall Replace( index_type cutStart, size_type cutLength, const substring_tuple_type& tuple ); void __fastcall ReplaceASCII( index_type cutStart, size_type cutLength, const char* data, size_type length = size_type(-1) ); void Append( char_type c ) { Replace(mLength, 0, c); } void Append( const char_type* data, size_type length = size_type(-1) ) { Replace(mLength, 0, data, length); } void Append( const self_type& str ) { Replace(mLength, 0, str); } void Append( const substring_tuple_type& tuple ) { Replace(mLength, 0, tuple); } void AppendASCII( const char* data, size_type length = size_type(-1) ) { ReplaceASCII(mLength, 0, data, length); } // AppendPrintf truncates output to 31 ASCII characters void AppendPrintf( const char* format, ... ); void AppendInt( PRInt32 aInteger ) { AppendPrintf( "%d", aInteger ); } void AppendInt( PRInt32 aInteger, int aRadix ) { const char *fmt = aRadix == 10 ? "%d" : aRadix == 8 ? "%o" : "%x"; AppendPrintf( fmt, aInteger ); } void AppendInt( PRUint32 aInteger ) { AppendPrintf( "%u", aInteger ); } void AppendInt( PRUint32 aInteger, int aRadix ) { const char *fmt = aRadix == 10 ? "%u" : aRadix == 8 ? "%o" : "%x"; AppendPrintf( fmt, aInteger ); } void AppendInt( PRInt64 aInteger ) { AppendPrintf( "%lld", aInteger ); } void AppendInt( PRInt64 aInteger, int aRadix ) { const char *fmt = aRadix == 10 ? "%lld" : aRadix == 8 ? "%llo" : "%llx"; AppendPrintf( fmt, aInteger ); } void AppendInt( PRUint64 aInteger ) { AppendPrintf( "%llu", aInteger ); } void AppendInt( PRUint64 aInteger, int aRadix ) { const char *fmt = aRadix == 10 ? "%llu" : aRadix == 8 ? "%llo" : "%llx"; AppendPrintf( fmt, aInteger ); } /** * Append the given float to this string */ void AppendFloat( float aFloat ) { DoAppendFloat(aFloat, 6); } void AppendFloat( double aFloat ) { DoAppendFloat(aFloat, 15); } private: void __fastcall DoAppendFloat( double aFloat, int digits ); public: // AppendLiteral must ONLY be applied to an actual literal string. // Do not attempt to use it with a regular char* pointer, or with a char // array variable. Use AppendASCII for those. template void AppendLiteral( const char (&str)[N] ) { AppendASCII(str, N-1); } template void AppendLiteral( char (&str)[N] ) { AppendASCII(str, N-1); } #line 446 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTSubstring.h" self_type& operator+=( char_type c ) { Append(c); return *this; } self_type& operator+=( const char_type* data ) { Append(data); return *this; } self_type& operator+=( const self_type& str ) { Append(str); return *this; } self_type& operator+=( const substring_tuple_type& tuple ) { Append(tuple); return *this; } void Insert( char_type c, index_type pos ) { Replace(pos, 0, c); } void Insert( const char_type* data, index_type pos, size_type length = size_type(-1) ) { Replace(pos, 0, data, length); } void Insert( const self_type& str, index_type pos ) { Replace(pos, 0, str); } void Insert( const substring_tuple_type& tuple, index_type pos ) { Replace(pos, 0, tuple); } void Cut( index_type cutStart, size_type cutLength ) { Replace(cutStart, cutLength, char_traits::sEmptyBuffer, 0); } /** * buffer sizing */ /** * Attempts to set the capacity to the given size, without affecting * the length of the string. Also ensures that the buffer is mutable. * * @returns PR_TRUE on success * PR_FALSE on out-of-memory, or if requesting a size bigger * than a string can hold (2^31 chars). */ PRBool __fastcall SetCapacity( size_type newCapacity ); void __fastcall SetLength( size_type newLength ); void Truncate( size_type newLength = 0 ) { do { if (!(newLength <= mLength)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Truncate cannot make string longer", "newLength <= mLength", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTSubstring.h", 478); } } while (0); SetLength(newLength); } /** * buffer access */ /** * Get a const pointer to the string's internal buffer. The caller * MUST NOT modify the characters at the returned address. * * @returns The length of the buffer in characters. */ inline size_type GetData( const char_type** data ) const { *data = mData; return mLength; } /** * Get a pointer to the string's internal buffer, optionally resizing * the buffer first. If size_type(-1) is passed for newLen, then the * current length of the string is used. The caller MAY modify the * characters at the returned address (up to but not exceeding the * length of the string). * * @returns The length of the buffer in characters or 0 if unable to * satisfy the request due to low-memory conditions. */ inline size_type GetMutableData( char_type** data, size_type newLen = size_type(-1) ) { if (!EnsureMutable(newLen)) { *data = 0L; return 0; } *data = mData; return mLength; } /** * string data is never null, but can be marked void. if true, the * string will be truncated. @see nsTSubstring::IsVoid */ void __fastcall SetIsVoid( PRBool ); /** * This method is used to remove all occurrences of aChar from this * string. * * @param aChar -- char to be stripped * @param aOffset -- where in this string to start stripping chars */ void StripChar( char_type aChar, PRInt32 aOffset=0 ); /** * This method is used to remove all occurrences of aChars from this * string. * * @param aChars -- chars to be stripped * @param aOffset -- where in this string to start stripping chars */ void StripChars( const char_type* aChars, PRUint32 aOffset=0 ); /** * If the string uses a shared buffer, this method * clears the pointer without releasing the buffer. */ void ForgetSharedBuffer() { if (mFlags & nsSubstring::F_SHARED) { mData = char_traits::sEmptyBuffer; mLength = 0; mFlags = F_TERMINATED; } } public: /** * this is public to support automatic conversion of tuple to string * base type, which helps avoid converting to nsTAString. */ nsACString_internal(const substring_tuple_type& tuple) : mData(0L), mLength(0), mFlags(F_NONE) { Assign(tuple); } /** * allows for direct initialization of a nsTSubstring object. * * NOTE: this constructor is declared public _only_ for convenience * inside the string implementation. */ // XXXbz or can I just include nscore.h and use NS_BUILD_REFCNT_LOGGING? nsACString_internal( char_type *data, size_type length, PRUint32 flags ); #line 595 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTSubstring.h" protected: friend class nsTObsoleteAStringThunk_CharT; friend class nsCSubstringTuple; // XXX GCC 3.4 needs this :-( friend class nsPromiseFlatCString; char_type* mData; size_type mLength; PRUint32 mFlags; // default initialization nsACString_internal() : mData(char_traits::sEmptyBuffer), mLength(0), mFlags(F_TERMINATED) {} // version of constructor that leaves mData and mLength uninitialized explicit nsACString_internal( PRUint32 flags ) : mFlags(flags) {} // copy-constructor, constructs as dependent on given object // (NOTE: this is for internal use only) nsACString_internal( const self_type& str ) : mData(str.mData), mLength(str.mLength), mFlags(str.mFlags & (F_TERMINATED | F_VOIDED)) {} /** * this function releases mData and does not change the value of * any of its member variables. in other words, this function acts * like a destructor. */ void __fastcall Finalize(); /** * this function prepares mData to be mutated. * * @param capacity specifies the required capacity of mData * @param old_data returns null or the old value of mData * @param old_flags returns 0 or the old value of mFlags * * if mData is already mutable and of sufficient capacity, then this * function will return immediately. otherwise, it will either resize * mData or allocate a new shared buffer. if it needs to allocate a * new buffer, then it will return the old buffer and the corresponding * flags. this allows the caller to decide when to free the old data. * * this function returns false if is unable to allocate sufficient * memory. * * XXX we should expose a way for subclasses to free old_data. */ PRBool __fastcall MutatePrep( size_type capacity, char_type** old_data, PRUint32* old_flags ); /** * this function prepares a section of mData to be modified. if * necessary, this function will reallocate mData and possibly move * existing data to open up the specified section. * * @param cutStart specifies the starting offset of the section * @param cutLength specifies the length of the section to be replaced * @param newLength specifies the length of the new section * * for example, suppose mData contains the string "abcdef" then * * ReplacePrep(2, 3, 4); * * would cause mData to look like "ab____f" where the characters * indicated by '_' have an unspecified value and can be freely * modified. this function will null-terminate mData upon return. * * this function returns false if is unable to allocate sufficient * memory. */ PRBool ReplacePrep(index_type cutStart, size_type cutLength, size_type newLength) { cutLength = NS_MIN(cutLength, mLength - cutStart); PRUint32 newTotalLen = mLength - cutLength + newLength; if (cutStart == mLength && Capacity() > newTotalLen) { mFlags &= ~F_VOIDED; mData[newTotalLen] = char_type(0); mLength = newTotalLen; return 1; } return ReplacePrepInternal(cutStart, cutLength, newLength, newTotalLen); } PRBool __fastcall ReplacePrepInternal(index_type cutStart, size_type cutLength, size_type newFragLength, size_type newTotalLength); /** * returns the number of writable storage units starting at mData. * the value does not include space for the null-terminator character. * * NOTE: this function returns 0 if mData is immutable (or the buffer * is 0-sized). */ size_type __fastcall Capacity() const; /** * this helper function can be called prior to directly manipulating * the contents of mData. see, for example, BeginWriting. */ PRBool __fastcall EnsureMutable( size_type newLen = size_type(-1) ); /** * returns true if this string overlaps with the given string fragment. */ PRBool IsDependentOn( const char_type *start, const char_type *end ) const { /** * if it _isn't_ the case that one fragment starts after the other ends, * or ends before the other starts, then, they conflict: * * !(f2.begin >= f1.end || f2.end <= f1.begin) * * Simplified, that gives us: */ return ( start < (mData + mLength) && end > mData ); } /** * this helper function stores the specified dataFlags in mFlags */ void SetDataFlags(PRUint32 dataFlags) { do { if (!((dataFlags & 0xFFFF0000) == 0)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "bad flags", "(dataFlags & 0xFFFF0000) == 0", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTSubstring.h", 728); } } while (0); mFlags = dataFlags | (mFlags & 0xFFFF0000); } public: // mFlags is a bitwise combination of the following flags. the meaning // and interpretation of these flags is an implementation detail. // // NOTE: these flags are declared public _only_ for convenience inside // the string implementation. enum { F_NONE = 0, // no flags // data flags are in the lower 16-bits F_TERMINATED = 1 << 0, // IsTerminated returns true F_VOIDED = 1 << 1, // IsVoid returns true F_SHARED = 1 << 2, // mData points to a heap-allocated, shared buffer F_OWNED = 1 << 3, // mData points to a heap-allocated, raw buffer F_FIXED = 1 << 4, // mData points to a fixed-size writable, dependent buffer // class flags are in the upper 16-bits F_CLASS_FIXED = 1 << 16 // indicates that |this| is of type nsTFixedString }; // // Some terminology: // // "dependent buffer" A dependent buffer is one that the string class // does not own. The string class relies on some // external code to ensure the lifetime of the // dependent buffer. // // "shared buffer" A shared buffer is one that the string class // allocates. When it allocates a shared string // buffer, it allocates some additional space at // the beginning of the buffer for additional // fields, including a reference count and a // buffer length. See nsStringHeader. // // "adopted buffer" An adopted buffer is a raw string buffer // allocated on the heap (using nsMemory::Alloc) // of which the string class subsumes ownership. // // Some comments about the string flags: // // F_SHARED, F_OWNED, and F_FIXED are all mutually exlusive. They // indicate the allocation type of mData. If none of these flags // are set, then the string buffer is dependent. // // F_SHARED, F_OWNED, or F_FIXED imply F_TERMINATED. This is because // the string classes always allocate null-terminated buffers, and // non-terminated substrings are always dependent. // // F_VOIDED implies F_TERMINATED, and moreover it implies that mData // points to char_traits::sEmptyBuffer. Therefore, F_VOIDED is // mutually exclusive with F_SHARED, F_OWNED, and F_FIXED. // }; int __fastcall Compare( const nsACString_internal::base_string_type& lhs, const nsACString_internal::base_string_type& rhs, const nsCStringComparator& = nsDefaultCStringComparator() ); inline PRBool operator!=( const nsACString_internal::base_string_type& lhs, const nsACString_internal::base_string_type& rhs ) { return !lhs.Equals(rhs); } inline PRBool operator< ( const nsACString_internal::base_string_type& lhs, const nsACString_internal::base_string_type& rhs ) { return Compare(lhs, rhs)< 0; } inline PRBool operator<=( const nsACString_internal::base_string_type& lhs, const nsACString_internal::base_string_type& rhs ) { return Compare(lhs, rhs)<=0; } inline PRBool operator==( const nsACString_internal::base_string_type& lhs, const nsACString_internal::base_string_type& rhs ) { return lhs.Equals(rhs); } inline PRBool operator>=( const nsACString_internal::base_string_type& lhs, const nsACString_internal::base_string_type& rhs ) { return Compare(lhs, rhs)>=0; } inline PRBool operator> ( const nsACString_internal::base_string_type& lhs, const nsACString_internal::base_string_type& rhs ) { return Compare(lhs, rhs)> 0; } #line 70 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAString.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\string-template-undef.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 71 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAString.h" /** * ASCII case-insensitive comparator. (for Unicode case-insensitive * comparision, see nsUnicharUtils.h) */ class nsCaseInsensitiveCStringComparator : public nsCStringComparator { public: typedef char char_type; virtual int operator()( const char_type*, const char_type*, PRUint32, PRUint32 ) const; }; class nsCaseInsensitiveCStringArrayComparator { public: template PRBool Equals(const A& a, const B& b) const { return a.Equals(b, nsCaseInsensitiveCStringComparator()); } }; // included here for backwards compatibility #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsSubstringTuple.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsSubstring.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 44 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsSubstringTuple.h" #line 45 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsSubstringTuple.h" // declare nsSubstringTuple #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\string-template-def-unichar.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 48 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsSubstringTuple.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTSubstringTuple.h" //* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /** * nsTSubstringTuple_CharT * * Represents a tuple of string fragments. Built as a recursive binary tree. * It is used to implement the concatenation of two or more string objects. * * NOTE: This class is a private implementation detail and should never be * referenced outside the string code. */ class nsSubstringTuple { public: typedef PRUnichar char_type; typedef nsCharTraits char_traits; typedef nsSubstringTuple self_type; typedef nsAString_internal substring_type; typedef nsAString_internal base_string_type; typedef PRUint32 size_type; public: nsSubstringTuple(const base_string_type* a, const base_string_type* b) : mHead(0L) , mFragA(a) , mFragB(b) {} nsSubstringTuple(const self_type& head, const base_string_type* b) : mHead(&head) , mFragA(0L) // this fragment is ignored when head != nsnull , mFragB(b) {} /** * computes the aggregate string length */ size_type Length() const; /** * writes the aggregate string to the given buffer. bufLen is assumed * to be equal to or greater than the value returned by the Length() * method. the string written to |buf| is not null-terminated. */ void WriteTo(char_type *buf, PRUint32 bufLen) const; /** * returns true if this tuple is dependent on (i.e., overlapping with) * the given char sequence. */ PRBool IsDependentOn(const char_type *start, const char_type *end) const; private: const self_type* mHead; const base_string_type* mFragA; const base_string_type* mFragB; }; inline const nsSubstringTuple operator+(const nsSubstringTuple::base_string_type& a, const nsSubstringTuple::base_string_type& b) { return nsSubstringTuple(&a, &b); } inline const nsSubstringTuple operator+(const nsSubstringTuple& head, const nsSubstringTuple::base_string_type& b) { return nsSubstringTuple(head, &b); } #line 49 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsSubstringTuple.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\string-template-undef.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 50 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsSubstringTuple.h" // declare nsCSubstringTuple #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\string-template-def-char.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 53 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsSubstringTuple.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTSubstringTuple.h" //* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /** * nsTSubstringTuple_CharT * * Represents a tuple of string fragments. Built as a recursive binary tree. * It is used to implement the concatenation of two or more string objects. * * NOTE: This class is a private implementation detail and should never be * referenced outside the string code. */ class nsCSubstringTuple { public: typedef char char_type; typedef nsCharTraits char_traits; typedef nsCSubstringTuple self_type; typedef nsACString_internal substring_type; typedef nsACString_internal base_string_type; typedef PRUint32 size_type; public: nsCSubstringTuple(const base_string_type* a, const base_string_type* b) : mHead(0L) , mFragA(a) , mFragB(b) {} nsCSubstringTuple(const self_type& head, const base_string_type* b) : mHead(&head) , mFragA(0L) // this fragment is ignored when head != nsnull , mFragB(b) {} /** * computes the aggregate string length */ size_type Length() const; /** * writes the aggregate string to the given buffer. bufLen is assumed * to be equal to or greater than the value returned by the Length() * method. the string written to |buf| is not null-terminated. */ void WriteTo(char_type *buf, PRUint32 bufLen) const; /** * returns true if this tuple is dependent on (i.e., overlapping with) * the given char sequence. */ PRBool IsDependentOn(const char_type *start, const char_type *end) const; private: const self_type* mHead; const base_string_type* mFragA; const base_string_type* mFragB; }; inline const nsCSubstringTuple operator+(const nsCSubstringTuple::base_string_type& a, const nsCSubstringTuple::base_string_type& b) { return nsCSubstringTuple(&a, &b); } inline const nsCSubstringTuple operator+(const nsCSubstringTuple& head, const nsCSubstringTuple::base_string_type& b) { return nsCSubstringTuple(head, &b); } #line 54 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsSubstringTuple.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\string-template-undef.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 55 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsSubstringTuple.h" #line 57 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsSubstringTuple.h" #line 98 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAString.h" #line 99 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAString.h" #line 101 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAString.h" #line 41 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsSubstring.h" #line 42 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsSubstring.h" #line 45 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsString.h" #line 46 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsString.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsDependentSubstring.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsSubstring.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 44 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsDependentSubstring.h" #line 45 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsDependentSubstring.h" // declare nsDependentSubstring #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\string-template-def-unichar.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 48 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsDependentSubstring.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTDependentSubstring.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Scott Collins (original author) * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /** * nsTDependentSubstring_CharT * * A string class which wraps an external array of string characters. It * is the client code's responsibility to ensure that the external buffer * remains valid for a long as the string is alive. * * NAMES: * nsDependentSubstring for wide characters * nsDependentCSubstring for narrow characters */ class nsDependentSubstring : public nsAString_internal { public: typedef nsDependentSubstring self_type; public: void Rebind( const substring_type&, PRUint32 startPos, PRUint32 length = size_type(-1) ); void Rebind( const char_type* start, const char_type* end ); nsDependentSubstring( const substring_type& str, PRUint32 startPos, PRUint32 length = size_type(-1) ) : substring_type() { Rebind(str, startPos, length); } nsDependentSubstring( const char_type* start, const char_type* end ) : substring_type(const_cast(start), PRUint32(end - start), F_NONE) {} nsDependentSubstring( const const_iterator& start, const const_iterator& end ) : substring_type(const_cast(start.get()), PRUint32(end.get() - start.get()), F_NONE) {} // Create a nsTDependentSubstring to be bound later nsDependentSubstring() : substring_type() {} // auto-generated copy-constructor OK (XXX really?? what about base class copy-ctor?) private: // NOT USED void operator=( const self_type& ); // we're immutable, you can't assign into a substring }; inline const nsDependentSubstring Substring( const nsAString_internal& str, PRUint32 startPos, PRUint32 length = PRUint32(-1) ) { return nsDependentSubstring(str, startPos, length); } inline const nsDependentSubstring Substring( const nsReadingIterator& start, const nsReadingIterator& end ) { return nsDependentSubstring(start.get(), end.get()); } inline const nsDependentSubstring Substring( const PRUnichar* start, const PRUnichar* end ) { return nsDependentSubstring(start, end); } inline const nsDependentSubstring StringHead( const nsAString_internal& str, PRUint32 count ) { return nsDependentSubstring(str, 0, count); } inline const nsDependentSubstring StringTail( const nsAString_internal& str, PRUint32 count ) { return nsDependentSubstring(str, str.Length() - count, count); } #line 49 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsDependentSubstring.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\string-template-undef.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 50 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsDependentSubstring.h" // declare nsDependentCSubstring #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\string-template-def-char.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 53 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsDependentSubstring.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTDependentSubstring.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Scott Collins (original author) * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /** * nsTDependentSubstring_CharT * * A string class which wraps an external array of string characters. It * is the client code's responsibility to ensure that the external buffer * remains valid for a long as the string is alive. * * NAMES: * nsDependentSubstring for wide characters * nsDependentCSubstring for narrow characters */ class nsDependentCSubstring : public nsACString_internal { public: typedef nsDependentCSubstring self_type; public: void Rebind( const substring_type&, PRUint32 startPos, PRUint32 length = size_type(-1) ); void Rebind( const char_type* start, const char_type* end ); nsDependentCSubstring( const substring_type& str, PRUint32 startPos, PRUint32 length = size_type(-1) ) : substring_type() { Rebind(str, startPos, length); } nsDependentCSubstring( const char_type* start, const char_type* end ) : substring_type(const_cast(start), PRUint32(end - start), F_NONE) {} nsDependentCSubstring( const const_iterator& start, const const_iterator& end ) : substring_type(const_cast(start.get()), PRUint32(end.get() - start.get()), F_NONE) {} // Create a nsTDependentSubstring to be bound later nsDependentCSubstring() : substring_type() {} // auto-generated copy-constructor OK (XXX really?? what about base class copy-ctor?) private: // NOT USED void operator=( const self_type& ); // we're immutable, you can't assign into a substring }; inline const nsDependentCSubstring Substring( const nsACString_internal& str, PRUint32 startPos, PRUint32 length = PRUint32(-1) ) { return nsDependentCSubstring(str, startPos, length); } inline const nsDependentCSubstring Substring( const nsReadingIterator& start, const nsReadingIterator& end ) { return nsDependentCSubstring(start.get(), end.get()); } inline const nsDependentCSubstring Substring( const char* start, const char* end ) { return nsDependentCSubstring(start, end); } inline const nsDependentCSubstring StringHead( const nsACString_internal& str, PRUint32 count ) { return nsDependentCSubstring(str, 0, count); } inline const nsDependentCSubstring StringTail( const nsACString_internal& str, PRUint32 count ) { return nsDependentCSubstring(str, str.Length() - count, count); } #line 54 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsDependentSubstring.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\string-template-undef.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 55 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsDependentSubstring.h" #line 57 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsDependentSubstring.h" #line 49 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsString.h" #line 50 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsString.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsReadableUtils.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Scott Collins (original author) * Johnny Stenbeck * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /** * I guess all the routines in this file are all mis-named. * According to our conventions, they should be |NS_xxx|. */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTArray.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is C++ array template. * * The Initial Developer of the Original Code is Google Inc. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* ** File: prtypes.h ** Description: Definitions of NSPR's basic types ** ** Prototypes and macros used to make up for deficiencies that we have found ** in ANSI environments. ** ** Since we do not wrap and all the other standard headers, authors ** of portable code will not know in general that they need these definitions. ** Instead of requiring these authors to find the dependent uses in their code ** and take the following steps only in those C files, we take steps once here ** for all C files. **/ #line 45 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTArray.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 46 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTArray.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsQuickSort.h" /* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* We need this because Solaris' version of qsort is broken and * causes array bounds reads. */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* ** File: prtypes.h ** Description: Definitions of NSPR's basic types ** ** Prototypes and macros used to make up for deficiencies that we have found ** in ANSI environments. ** ** Since we do not wrap and all the other standard headers, authors ** of portable code will not know in general that they need these definitions. ** Instead of requiring these authors to find the dependent uses in their code ** and take the following steps only in those C files, we take steps once here ** for all C files. **/ #line 47 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsQuickSort.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 48 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsQuickSort.h" extern "C" { /** * Parameters: * 1. the array to sort * 2. the number of elements in the array * 3. the size of each array element * 4. comparison function taking two elements and parameter #5 and * returning an integer: * + less than zero if the first element should be before the second * + 0 if the order of the elements does not matter * + greater than zero if the second element should be before the first * 5. extra data to pass to comparison function */ void NS_QuickSort(void *, unsigned int, unsigned int, int (*)(const void *, const void *, void *), void *); } #line 70 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsQuickSort.h" #line 47 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTArray.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsDebug.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 48 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTArray.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTraceRefcnt.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla Communicator client code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * L. David Baron * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 49 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTArray.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\stl_wrappers\\new" /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- * vim: sw=2 ts=8 et : */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at: * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla Code. * * The Initial Developer of the Original Code is * The Mozilla Foundation * Portions created by the Initial Developer are Copyright (C) 2010 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Chris Jones * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 50 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTArray.h" // // NB: nsTArray assumes that your "T" can be memmove()d. This is in // contrast to STL containers, which follow C++ // construction/destruction rules. // // Don't use nsTArray if your "T" can't be memmove()d correctly. // // // nsTArray*Allocators must all use the same |free()|, to allow // swapping between fallible and infallible variants. (NS_Free() and // moz_free() end up calling the same underlying free()). // struct nsTArrayFallibleAllocator { static void* Malloc(size_t size) { return NS_Alloc_P(size); } static void* Realloc(void* ptr, size_t size) { return NS_Realloc_P(ptr, size); } static void Free(void* ptr) { NS_Free_P(ptr); } }; struct nsTArrayInfallibleAllocator { static void* Malloc(size_t size) { return moz_xmalloc(size); } static void* Realloc(void* ptr, size_t size) { return moz_xrealloc(ptr, size); } static void Free(void* ptr) { moz_free(ptr); } }; #line 96 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTArray.h" struct nsTArrayDefaultAllocator : public nsTArrayFallibleAllocator { }; // nsTArray_base stores elements into the space allocated beyond // sizeof(*this). This is done to minimize the size of the nsTArray // object when it is empty. struct nsTArrayHeader { static nsTArrayHeader sEmptyHdr; PRUint32 mLength; PRUint32 mCapacity : 31; PRUint32 mIsAutoArray : 1; }; // // This class serves as a base class for nsTArray. It shouldn't be used // directly. It holds common implementation code that does not depend on the // element type of the nsTArray. // template class nsTArray_base { // Allow swapping elements with |nsTArray_base|s created using a // different allocator. This is kosher because all allocators use // the same free(). template friend class nsTArray_base; protected: typedef nsTArrayHeader Header; public: typedef PRUint32 size_type; typedef PRUint32 index_type; // @return The number of elements in the array. size_type Length() const { return mHdr->mLength; } // @return True if the array is empty or false otherwise. PRBool IsEmpty() const { return Length() == 0; } // @return The number of elements that can fit in the array without forcing // the array to be re-allocated. The length of an array is always less // than or equal to its capacity. size_type Capacity() const { return mHdr->mCapacity; } void* DebugGetHeader() const { return mHdr; } #line 155 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTArray.h" protected: nsTArray_base(); ~nsTArray_base(); // Resize the storage if necessary to achieve the requested capacity. // @param capacity The requested number of array elements. // @param elemSize The size of an array element. // @return False if insufficient memory is available; true otherwise. PRBool EnsureCapacity(size_type capacity, size_type elemSize); // Resize the storage to the minimum required amount. // @param elemSize The size of an array element. void ShrinkCapacity(size_type elemSize); // This method may be called to resize a "gap" in the array by shifting // elements around. It updates mLength appropriately. If the resulting // array has zero elements, then the array's memory is free'd. // @param start The starting index of the gap. // @param oldLen The current length of the gap. // @param newLen The desired length of the gap. // @param elemSize The size of an array element. void ShiftData(index_type start, size_type oldLen, size_type newLen, size_type elemSize); // This method increments the length member of the array's header. // Note that mHdr may actually be sEmptyHdr in the case where a // zero-length array is inserted into our array. But then n should // always be 0. void IncrementLength(PRUint32 n) { do { if (!(mHdr != EmptyHdr() || n == 0)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "bad data pointer", "mHdr != EmptyHdr() || n == 0", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTArray.h", 186); } } while (0); mHdr->mLength += n; } // This method inserts blank slots into the array. // @param index the place to insert the new elements. This must be no // greater than the current length of the array. // @param count the number of slots to insert // @param elementSize the size of an array element. PRBool InsertSlotsAt(index_type index, size_type count, size_type elementSize); protected: // NOTE: This method isn't heavily optimized if either array is an // nsAutoTArray. template PRBool SwapArrayElements(nsTArray_base& other, size_type elemSize); // Helper function for SwapArrayElements. Ensures that if the array // is an nsAutoTArray that it doesn't use the built-in buffer. PRBool EnsureNotUsingAutoArrayBuffer(size_type elemSize); // Returns true if this nsTArray is an nsAutoTArray with a built-in buffer. PRBool IsAutoArray() { return mHdr->mIsAutoArray; } // Dummy struct to get the compiler to simulate the alignment of // nsAutoTArray's and nsAutoTPtrArray's mAutoBuf. struct AutoArray { Header *mHdr; PRUint64 aligned; }; // Returns a Header for the built-in buffer of this nsAutoTArray. Header* GetAutoArrayBuffer() { do { if (!(IsAutoArray())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Should be an auto array to call this", "IsAutoArray()", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTArray.h", 223); } } while (0); return reinterpret_cast(&(reinterpret_cast(&mHdr))->aligned); } // Returns true if this is an nsAutoTArray and it currently uses the // built-in buffer to store its elements. PRBool UsesAutoArrayBuffer() { return mHdr->mIsAutoArray && mHdr == GetAutoArrayBuffer(); } // The array's elements (prefixed with a Header). This pointer is never // null. If the array is empty, then this will point to sEmptyHdr. Header *mHdr; Header* Hdr() const { return mHdr; } Header** PtrToHdr() { return &mHdr; } static Header* EmptyHdr() { return &Header::sEmptyHdr; } }; // // This class defines convenience functions for element specific operations. // Specialize this template if necessary. // template class nsTArrayElementTraits { public: // Invoke the default constructor in place. static inline void Construct(E *e) { // Do NOT call "E()"! That triggers C++ "default initialization" // which zeroes out POD ("plain old data") types such as regular // ints. We don't want that because it can be a performance issue // and people don't expect it; nsTArray should work like a regular // C/C++ array in this respect. new (static_cast(e)) E; } // Invoke the copy-constructor in place. template static inline void Construct(E *e, const A &arg) { new (static_cast(e)) E(arg); } // Invoke the destructor in place. static inline void Destruct(E *e) { e->~E(); } }; // This class exists because VC6 cannot handle static template functions. // Otherwise, the Compare method would be defined directly on nsTArray. template class nsQuickSortComparator { public: typedef E elem_type; // This function is meant to be used with the NS_QuickSort function. It // maps the callback API expected by NS_QuickSort to the Comparator API // used by nsTArray. See nsTArray::Sort. static int Compare(const void* e1, const void* e2, void *data) { const Comparator* c = reinterpret_cast(data); const elem_type* a = static_cast(e1); const elem_type* b = static_cast(e2); return c->LessThan(*a, *b) ? -1 : (c->Equals(*a, *b) ? 0 : 1); } }; // The default comparator used by nsTArray template class nsDefaultComparator { public: PRBool Equals(const A& a, const B& b) const { return a == b; } PRBool LessThan(const A& a, const B& b) const { return a < b; } }; // // The templatized array class that dynamically resizes its storage as // elements are added. This class is designed to behave a bit like // std::vector, though note that unlike std::vector, nsTArray doesn't // follow C++ construction/destruction rules. // // The template parameter specifies the type of the elements (elem_type), and // has the following requirements: // // elem_type MUST define a copy-constructor. // elem_type MAY define operator< for sorting. // elem_type MAY define operator== for searching. // // For methods taking a Comparator instance, the Comparator must be a class // defining the following methods: // // class Comparator { // public: // /** @return True if the elements are equals; false otherwise. */ // PRBool Equals(const elem_type& a, const elem_type& b) const; // // /** @return True if (a < b); false otherwise. */ // PRBool LessThan(const elem_type& a, const elem_type& b) const; // }; // // The Equals method is used for searching, and the LessThan method is used // for sorting. // // The Alloc template parameter can be used to choose between // "fallible" and "infallible" nsTArray (if available), defaulting to // fallible. If the *fallible* allocator is used, the return value of // methods that might allocate doesn't need to be checked; Append() is // one such method. These return values don't need to be checked if // the *in*fallible allocator is chosen. When in doubt, choose the // infallible allocator. // template class nsTArray : public nsTArray_base { public: typedef nsTArray_base base_type; typedef typename base_type::size_type size_type; typedef typename base_type::index_type index_type; typedef E elem_type; typedef nsTArray self_type; typedef nsTArrayElementTraits elem_traits; // A special value that is used to indicate an invalid or unknown index // into the array. enum { NoIndex = index_type(-1) }; using base_type::Length; // // Finalization method // ~nsTArray() { Clear(); } // // Initialization methods // nsTArray() {} // Initialize this array and pre-allocate some number of elements. explicit nsTArray(size_type capacity) { SetCapacity(capacity); } // The array's copy-constructor performs a 'deep' copy of the given array. // @param other The array object to copy. nsTArray(const self_type& other) { AppendElements(other); } template nsTArray(const nsTArray& other) { AppendElements(other); } // The array's assignment operator performs a 'deep' copy of the given // array. It is optimized to reuse existing storage if possible. // @param other The array object to copy. nsTArray& operator=(const self_type& other) { ReplaceElementsAt(0, Length(), other.Elements(), other.Length()); return *this; } // Return true if this array has the same length and the same // elements as |other|. bool operator==(const self_type& other) const { size_type len = Length(); if (len != other.Length()) return false; // XXX std::equal would be as fast or faster here for (index_type i = 0; i < len; ++i) if (!(operator[](i) == other[i])) return false; return true; } // Return true if this array does not have the same length and the same // elements as |other|. bool operator!=(const self_type& other) const { return !operator==(other); } template nsTArray& operator=(const nsTArray& other) { ReplaceElementsAt(0, Length(), other.Elements(), other.Length()); return *this; } // // Accessor methods // // This method provides direct access to the array elements. // @return A pointer to the first element of the array. If the array is // empty, then this pointer must not be dereferenced. elem_type* Elements() { return reinterpret_cast(Hdr() + 1); } // This method provides direct, readonly access to the array elements. // @return A pointer to the first element of the array. If the array is // empty, then this pointer must not be dereferenced. const elem_type* Elements() const { return reinterpret_cast(Hdr() + 1); } // This method provides direct access to the i'th element of the array. // The given index must be within the array bounds. // @param i The index of an element in the array. // @return A reference to the i'th element of the array. elem_type& ElementAt(index_type i) { do { if (!(i < Length())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "invalid array index", "i < Length()", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTArray.h", 451); } } while (0); return Elements()[i]; } // This method provides direct, readonly access to the i'th element of the // array. The given index must be within the array bounds. // @param i The index of an element in the array. // @return A const reference to the i'th element of the array. const elem_type& ElementAt(index_type i) const { do { if (!(i < Length())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "invalid array index", "i < Length()", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTArray.h", 460); } } while (0); return Elements()[i]; } // This method provides direct access to the i'th element of the array in // a bounds safe manner. If the requested index is out of bounds the // provided default value is returned. // @param i The index of an element in the array. // @param def The value to return if the index is out of bounds. elem_type& SafeElementAt(index_type i, elem_type& def) { return i < Length() ? Elements()[i] : def; } // This method provides direct access to the i'th element of the array in // a bounds safe manner. If the requested index is out of bounds the // provided default value is returned. // @param i The index of an element in the array. // @param def The value to return if the index is out of bounds. const elem_type& SafeElementAt(index_type i, const elem_type& def) const { return i < Length() ? Elements()[i] : def; } // Shorthand for ElementAt(i) elem_type& operator[](index_type i) { return ElementAt(i); } // Shorthand for ElementAt(i) const elem_type& operator[](index_type i) const { return ElementAt(i); } // // Search methods // // This method searches for the first element in this array that is equal // to the given element. // @param item The item to search for. // @param comp The Comparator used to determine element equality. // @return PR_TRUE if the element was found. template PRBool Contains(const Item& item, const Comparator& comp) const { return IndexOf(item, 0, comp) != NoIndex; } // This method searches for the first element in this array that is equal // to the given element. This method assumes that 'operator==' is defined // for elem_type. // @param item The item to search for. // @return PR_TRUE if the element was found. template PRBool Contains(const Item& item) const { return IndexOf(item) != NoIndex; } // This method searches for the offset of the first element in this // array that is equal to the given element. // @param item The item to search for. // @param start The index to start from. // @param comp The Comparator used to determine element equality. // @return The index of the found element or NoIndex if not found. template index_type IndexOf(const Item& item, index_type start, const Comparator& comp) const { const elem_type* iter = Elements() + start, *end = Elements() + Length(); for (; iter != end; ++iter) { if (comp.Equals(*iter, item)) return index_type(iter - Elements()); } return NoIndex; } // This method searches for the offset of the first element in this // array that is equal to the given element. This method assumes // that 'operator==' is defined for elem_type. // @param item The item to search for. // @param start The index to start from. // @return The index of the found element or NoIndex if not found. template index_type IndexOf(const Item& item, index_type start = 0) const { return IndexOf(item, start, nsDefaultComparator()); } // This method searches for the offset of the last element in this // array that is equal to the given element. // @param item The item to search for. // @param start The index to start from. If greater than or equal to the // length of the array, then the entire array is searched. // @param comp The Comparator used to determine element equality. // @return The index of the found element or NoIndex if not found. template index_type LastIndexOf(const Item& item, index_type start, const Comparator& comp) const { if (start >= Length()) start = Length() - 1; const elem_type* end = Elements() - 1, *iter = end + start + 1; for (; iter != end; --iter) { if (comp.Equals(*iter, item)) return index_type(iter - Elements()); } return NoIndex; } // This method searches for the offset of the last element in this // array that is equal to the given element. This method assumes // that 'operator==' is defined for elem_type. // @param item The item to search for. // @param start The index to start from. If greater than or equal to the // length of the array, then the entire array is searched. // @return The index of the found element or NoIndex if not found. template index_type LastIndexOf(const Item& item, index_type start = NoIndex) const { return LastIndexOf(item, start, nsDefaultComparator()); } // This method searches for the offset for the element in this array // that is equal to the given element. The array is assumed to be sorted. // @param item The item to search for. // @param comp The Comparator used. // @return The index of the found element or NoIndex if not found. template index_type BinaryIndexOf(const Item& item, const Comparator& comp) const { index_type low = 0, high = Length(); while (high > low) { index_type mid = (high + low) >> 1; if (comp.Equals(ElementAt(mid), item)) return mid; if (comp.LessThan(ElementAt(mid), item)) low = mid + 1; else high = mid; } return NoIndex; } // This method searches for the offset for the element in this array // that is equal to the given element. The array is assumed to be sorted. // This method assumes that 'operator==' and 'operator<' are defined. // @param item The item to search for. // @return The index of the found element or NoIndex if not found. template index_type BinaryIndexOf(const Item& item) const { return BinaryIndexOf(item, nsDefaultComparator()); } // // Mutation methods // // This method replaces a range of elements in this array. // @param start The starting index of the elements to replace. // @param count The number of elements to replace. This may be zero to // insert elements without removing any existing elements. // @param array The values to copy into this array. Must be non-null, // and these elements must not already exist in the array // being modified. // @param arrayLen The number of values to copy into this array. // @return A pointer to the new elements in the array, or null if // the operation failed due to insufficient memory. template elem_type *ReplaceElementsAt(index_type start, size_type count, const Item* array, size_type arrayLen) { // Adjust memory allocation up-front to catch errors. if (!EnsureCapacity(Length() + arrayLen - count, sizeof(elem_type))) return 0L; DestructRange(start, count); ShiftData(start, count, arrayLen, sizeof(elem_type)); AssignRange(start, arrayLen, array); return Elements() + start; } // A variation on the ReplaceElementsAt method defined above. template elem_type *ReplaceElementsAt(index_type start, size_type count, const nsTArray& array) { return ReplaceElementsAt(start, count, array.Elements(), array.Length()); } // A variation on the ReplaceElementsAt method defined above. template elem_type *ReplaceElementsAt(index_type start, size_type count, const Item& item) { return ReplaceElementsAt(start, count, &item, 1); } // A variation on the ReplaceElementsAt method defined above. template elem_type *InsertElementsAt(index_type index, const Item* array, size_type arrayLen) { return ReplaceElementsAt(index, 0, array, arrayLen); } // A variation on the ReplaceElementsAt method defined above. template elem_type *InsertElementsAt(index_type index, const nsTArray& array) { return ReplaceElementsAt(index, 0, array.Elements(), array.Length()); } // A variation on the ReplaceElementsAt method defined above. template elem_type *InsertElementAt(index_type index, const Item& item) { return ReplaceElementsAt(index, 0, &item, 1); } // Insert a new element without copy-constructing. This is useful to avoid // temporaries. // @return A pointer to the newly inserted element, or null on OOM. elem_type* InsertElementAt(index_type index) { if (!EnsureCapacity(Length() + 1, sizeof(elem_type))) return 0L; ShiftData(index, 0, 1, sizeof(elem_type)); elem_type *elem = Elements() + index; elem_traits::Construct(elem); return elem; } // This method searches for the least index of the greatest // element less than or equal to |item|. If |item| is inserted at // this index, the array will remain sorted. True is returned iff // this index is also equal to |item|. In this case, the returned // index may point to the start of multiple copies of |item|. // @param item The item to search for. // @param comp The Comparator used. // @outparam idx The index of greatest element <= to |item| // @return True iff |item == array[*idx]|. // @precondition The array is sorted template PRBool GreatestIndexLtEq(const Item& item, const Comparator& comp, index_type* idx ) const { // Nb: we could replace all the uses of "BinaryIndexOf" with this // function, but BinaryIndexOf will be oh-so-slightly faster so // it's not strictly desired to do. // invariant: low <= [idx] < high index_type low = 0, high = Length(); while (high > low) { index_type mid = (high + low) >> 1; if (comp.Equals(ElementAt(mid), item)) { // we might have the array [..., 2, 4, 4, 4, 4, 4, 5, ...] // and be searching for "4". it's arbitrary where mid ends // up here, so we back it up to the first instance to maintain // the "least index ..." we promised above. do { --mid; } while (NoIndex != mid && comp.Equals(ElementAt(mid), item)); *idx = ++mid; return 1; } if (comp.LessThan(ElementAt(mid), item)) // invariant: low <= idx < high low = mid + 1; else // invariant: low <= idx < high high = mid; } // low <= idx < high, so insert at high ("shifting" high up by // 1) to maintain invariant. // (or insert at low, since low==high; just a matter of taste here.) *idx = high; return 0; } // A variation on the GreatestIndexLtEq method defined above. template PRBool GreatestIndexLtEq(const Item& item, index_type& idx, const Comparator& comp) const { return GreatestIndexLtEq(item, comp, &idx); } // A variation on the GreatestIndexLtEq method defined above. template PRBool GreatestIndexLtEq(const Item& item, index_type& idx) const { return GreatestIndexLtEq(item, nsDefaultComparator(), &idx); } // Inserts |item| at such an index to guarantee that if the array // was previously sorted, it will remain sorted after this // insertion. template elem_type *InsertElementSorted(const Item& item, const Comparator& comp) { index_type index; GreatestIndexLtEq(item, comp, &index); return InsertElementAt(index, item); } // A variation on the InsertElementSorted metod defined above. template elem_type *InsertElementSorted(const Item& item) { return InsertElementSorted(item, nsDefaultComparator()); } // This method appends elements to the end of this array. // @param array The elements to append to this array. // @param arrayLen The number of elements to append to this array. // @return A pointer to the new elements in the array, or null if // the operation failed due to insufficient memory. template elem_type *AppendElements(const Item* array, size_type arrayLen) { if (!EnsureCapacity(Length() + arrayLen, sizeof(elem_type))) return 0L; index_type len = Length(); AssignRange(len, arrayLen, array); IncrementLength(arrayLen); return Elements() + len; } // A variation on the AppendElements method defined above. template elem_type *AppendElements(const nsTArray& array) { return AppendElements(array.Elements(), array.Length()); } // A variation on the AppendElements method defined above. template elem_type *AppendElement(const Item& item) { return AppendElements(&item, 1); } // Append new elements without copy-constructing. This is useful to avoid // temporaries. // @return A pointer to the newly appended elements, or null on OOM. elem_type *AppendElements(size_type count) { if (!EnsureCapacity(Length() + count, sizeof(elem_type))) return 0L; elem_type *elems = Elements() + Length(); size_type i; for (i = 0; i < count; ++i) { elem_traits::Construct(elems + i); } IncrementLength(count); return elems; } // Append a new element without copy-constructing. This is useful to avoid // temporaries. // @return A pointer to the newly appended element, or null on OOM. elem_type *AppendElement() { return AppendElements(1); } // Move all elements from another array to the end of this array without // calling copy constructors or destructors. // @return A pointer to the newly appended elements, or null on OOM. template elem_type *MoveElementsFrom(nsTArray& array) { do { if (!(&array != this)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "argument must be different array", "&array != this", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTArray.h", 813); } } while (0); index_type len = Length(); index_type otherLen = array.Length(); if (!EnsureCapacity(len + otherLen, sizeof(elem_type))) return 0L; memcpy(Elements() + len, array.Elements(), otherLen * sizeof(elem_type)); IncrementLength(otherLen); array.ShiftData(0, otherLen, 0, sizeof(elem_type)); return Elements() + len; } // This method removes a range of elements from this array. // @param start The starting index of the elements to remove. // @param count The number of elements to remove. void RemoveElementsAt(index_type start, size_type count) { do { if (!(count == 0 || start < Length())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Invalid start index", "count == 0 || start < Length()", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTArray.h", 828); } } while (0); do { if (!(start + count <= Length())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Invalid length", "start + count <= Length()", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTArray.h", 829); } } while (0); DestructRange(start, count); ShiftData(start, count, 0, sizeof(elem_type)); } // A variation on the RemoveElementsAt method defined above. void RemoveElementAt(index_type index) { RemoveElementsAt(index, 1); } // A variation on the RemoveElementsAt method defined above. void Clear() { RemoveElementsAt(0, Length()); } // This helper function combines IndexOf with RemoveElementAt to "search // and destroy" the first element that is equal to the given element. // @param item The item to search for. // @param comp The Comparator used to determine element equality. // @return PR_TRUE if the element was found template PRBool RemoveElement(const Item& item, const Comparator& comp) { index_type i = IndexOf(item, 0, comp); if (i == NoIndex) return 0; RemoveElementAt(i); return 1; } // A variation on the RemoveElement method defined above that assumes // that 'operator==' is defined for elem_type. template PRBool RemoveElement(const Item& item) { return RemoveElement(item, nsDefaultComparator()); } // This helper function combines GreatestIndexLtEq with // RemoveElementAt to "search and destroy" the first element that // is equal to the given element. // @param item The item to search for. // @param comp The Comparator used to determine element equality. // @return PR_TRUE if the element was found template PRBool RemoveElementSorted(const Item& item, const Comparator& comp) { index_type index; PRBool found = GreatestIndexLtEq(item, comp, &index); if (found) RemoveElementAt(index); return found; } // A variation on the RemoveElementSorted method defined above. template PRBool RemoveElementSorted(const Item& item) { return RemoveElementSorted(item, nsDefaultComparator()); } // This method causes the elements contained in this array and the given // array to be swapped. // NOTE: This method isn't heavily optimized if either array is an // nsAutoTArray. template PRBool SwapElements(nsTArray& other) { return SwapArrayElements(other, sizeof(elem_type)); } // // Allocation // // This method may increase the capacity of this array object by the // specified amount. This method may be called in advance of several // AppendElement operations to minimize heap re-allocations. This method // will not reduce the number of elements in this array. // @param capacity The desired capacity of this array. // @return True if the operation succeeded; false if we ran out of memory PRBool SetCapacity(size_type capacity) { return EnsureCapacity(capacity, sizeof(elem_type)); } // This method modifies the length of the array. If the new length is // larger than the existing length of the array, then new elements will be // constructed using elem_type's default constructor. Otherwise, this call // removes elements from the array (see also RemoveElementsAt). // @param newLen The desired length of this array. // @return True if the operation succeeded; false otherwise. // See also TruncateLength if the new length is guaranteed to be // smaller than the old. PRBool SetLength(size_type newLen) { size_type oldLen = Length(); if (newLen > oldLen) { return InsertElementsAt(oldLen, newLen - oldLen) != 0L; } TruncateLength(newLen); return 1; } // This method modifies the length of the array, but may only be // called when the new length is shorter than the old. It can // therefore be called when elem_type has no default constructor, // unlike SetLength. It removes elements from the array (see also // RemoveElementsAt). // @param newLen The desired length of this array. void TruncateLength(size_type newLen) { size_type oldLen = Length(); do { if (!(newLen <= oldLen)) { NS_DebugBreak_P(NS_DEBUG_ABORT, "caller should use SetLength instead", "newLen <= oldLen", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTArray.h", 937); } } while (0); #line 938 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTArray.h" RemoveElementsAt(newLen, oldLen - newLen); } // This method ensures that the array has length at least the given // length. If the current length is shorter than the given length, // then new elements will be constructed using elem_type's default // constructor. // @param minLen The desired minimum length of this array. // @return True if the operation succeeded; false otherwise. PRBool EnsureLengthAtLeast(size_type minLen) { size_type oldLen = Length(); if (minLen > oldLen) { return InsertElementsAt(oldLen, minLen - oldLen) != 0L; } return 1; } // This method inserts elements into the array, constructing // them using elem_type's default constructor. // @param index the place to insert the new elements. This must be no // greater than the current length of the array. // @param count the number of elements to insert elem_type *InsertElementsAt(index_type index, size_type count) { if (!base_type::InsertSlotsAt(index, count, sizeof(elem_type))) { return 0L; } // Initialize the extra array elements elem_type *iter = Elements() + index, *end = iter + count; for (; iter != end; ++iter) { elem_traits::Construct(iter); } return Elements() + index; } // This method inserts elements into the array, constructing them // elem_type's copy constructor (or whatever one-arg constructor // happens to match the Item type). // @param index the place to insert the new elements. This must be no // greater than the current length of the array. // @param count the number of elements to insert. // @param item the value to use when constructing the new elements. template elem_type *InsertElementsAt(index_type index, size_type count, const Item& item) { if (!base_type::InsertSlotsAt(index, count, sizeof(elem_type))) { return 0L; } // Initialize the extra array elements elem_type *iter = Elements() + index, *end = iter + count; for (; iter != end; ++iter) { elem_traits::Construct(iter, item); } return Elements() + index; } // This method may be called to minimize the memory used by this array. void Compact() { ShrinkCapacity(sizeof(elem_type)); } // // Sorting // // This method sorts the elements of the array. It uses the LessThan // method defined on the given Comparator object to collate elements. // @param comp The Comparator used to collate elements. template void Sort(const Comparator& comp) { NS_QuickSort(Elements(), Length(), sizeof(elem_type), nsQuickSortComparator::Compare, const_cast(&comp)); } // A variation on the Sort method defined above that assumes that // 'operator<' is defined for elem_type. void Sort() { Sort(nsDefaultComparator()); } // // Binary Heap // // Sorts the array into a binary heap. // @param comp The Comparator used to create the heap template void MakeHeap(const Comparator& comp) { if (!Length()) { return; } index_type index = (Length() - 1) / 2; do { SiftDown(index, comp); } while (index--); } // A variation on the MakeHeap method defined above. void MakeHeap() { MakeHeap(nsDefaultComparator()); } // Adds an element to the heap // @param item The item to add // @param comp The Comparator used to sift-up the item template elem_type *PushHeap(const Item& item, const Comparator& comp) { if (!base_type::InsertSlotsAt(Length(), 1, sizeof(elem_type))) { return 0L; } // Sift up the new node elem_type *elem = Elements(); index_type index = Length() - 1; index_type parent_index = (index - 1) / 2; while (index && comp.LessThan(elem[parent_index], item)) { elem[index] = elem[parent_index]; index = parent_index; parent_index = (index - 1) / 2; } elem[index] = item; return &elem[index]; } // A variation on the PushHeap method defined above. template elem_type *PushHeap(const Item& item) { return PushHeap(item, nsDefaultComparator()); } // Delete the root of the heap and restore the heap // @param comp The Comparator used to restore the heap template void PopHeap(const Comparator& comp) { if (!Length()) { return; } index_type last_index = Length() - 1; elem_type *elem = Elements(); elem[0] = elem[last_index]; TruncateLength(last_index); if (Length()) { SiftDown(0, comp); } } // A variation on the PopHeap method defined above. void PopHeap() { PopHeap(nsDefaultComparator()); } protected: using base_type::Hdr; using base_type::ShrinkCapacity; // This method invokes elem_type's destructor on a range of elements. // @param start The index of the first element to destroy. // @param count The number of elements to destroy. void DestructRange(index_type start, size_type count) { elem_type *iter = Elements() + start, *end = iter + count; for (; iter != end; ++iter) { elem_traits::Destruct(iter); } } // This method invokes elem_type's copy-constructor on a range of elements. // @param start The index of the first element to construct. // @param count The number of elements to construct. // @param values The array of elements to copy. template void AssignRange(index_type start, size_type count, const Item *values) { elem_type *iter = Elements() + start, *end = iter + count; for (; iter != end; ++iter, ++values) { elem_traits::Construct(iter, *values); } } // This method sifts an item down to its proper place in a binary heap // @param index The index of the node to start sifting down from // @param comp The Comparator used to sift down template void SiftDown(index_type index, const Comparator& comp) { elem_type *elem = Elements(); elem_type item = elem[index]; index_type end = Length() - 1; while ((index * 2) < end) { const index_type left = (index * 2) + 1; const index_type right = (index * 2) + 2; const index_type parent_index = index; if (comp.LessThan(item, elem[left])) { if (left < end && comp.LessThan(elem[left], elem[right])) { index = right; } else { index = left; } } else if (left < end && comp.LessThan(item, elem[right])) { index = right; } else { break; } elem[parent_index] = elem[index]; } elem[index] = item; } }; // // Convenience subtypes of nsTArray. // template class FallibleTArray : public nsTArray { public: typedef nsTArray base_type; typedef typename base_type::size_type size_type; FallibleTArray() {} explicit FallibleTArray(size_type capacity) : base_type(capacity) {} FallibleTArray(const FallibleTArray& other) : base_type(other) {} }; template class InfallibleTArray : public nsTArray { public: typedef nsTArray base_type; typedef typename base_type::size_type size_type; InfallibleTArray() {} explicit InfallibleTArray(size_type capacity) : base_type(capacity) {} InfallibleTArray(const InfallibleTArray& other) : base_type(other) {} }; #line 1178 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTArray.h" template class nsAutoArrayBase : public TArrayBase { public: typedef TArrayBase base_type; typedef typename base_type::Header Header; typedef typename base_type::elem_type elem_type; nsAutoArrayBase() { *base_type::PtrToHdr() = reinterpret_cast(&mAutoBuf); base_type::Hdr()->mLength = 0; base_type::Hdr()->mCapacity = N; base_type::Hdr()->mIsAutoArray = 1; do { if (!(base_type::GetAutoArrayBuffer() == reinterpret_cast(&mAutoBuf))) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "GetAutoArrayBuffer needs to be fixed", "base_type::GetAutoArrayBuffer() == reinterpret_cast(&mAutoBuf)", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTArray.h", 1196); } } while (0); #line 1197 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTArray.h" } protected: union { char mAutoBuf[sizeof(Header) + N * sizeof(elem_type)]; PRUint64 dummy; }; }; template class nsAutoTArray : public nsAutoArrayBase, N> { public: nsAutoTArray() {} }; template class AutoFallibleTArray : public nsAutoArrayBase, N> { public: AutoFallibleTArray() {} }; template class AutoInfallibleTArray : public nsAutoArrayBase, N> { public: AutoInfallibleTArray() {} }; #line 1228 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTArray.h" // specializations for N = 0. this makes the inheritance model easier for // templated users of nsAutoTArray. template class nsAutoTArray : public nsAutoArrayBase< nsTArray, 0> { public: nsAutoTArray() {} }; template class AutoFallibleTArray : public nsAutoArrayBase< FallibleTArray, 0> { public: AutoFallibleTArray() {} }; template class AutoInfallibleTArray : public nsAutoArrayBase< InfallibleTArray, 0> { public: AutoInfallibleTArray() {} }; #line 1256 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTArray.h" // Definitions of nsTArray methods #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTArray-inl.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is C++ array template. * * The Initial Developer of the Original Code is Google Inc. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ template nsTArray_base::nsTArray_base() : mHdr(EmptyHdr()) { do { NS_LogCtor_P((void*)this, "nsTArray_base", sizeof(*this)); } while (0); } template nsTArray_base::~nsTArray_base() { if (mHdr != EmptyHdr() && !UsesAutoArrayBuffer()) { Alloc::Free(mHdr); } do { NS_LogDtor_P((void*)this, "nsTArray_base", sizeof(*this)); } while (0); } template PRBool nsTArray_base::EnsureCapacity(size_type capacity, size_type elemSize) { // This should be the most common case so test this first if (capacity <= mHdr->mCapacity) return 1; // If the requested memory allocation exceeds size_type(-1)/2, then // our doubling algorithm may not be able to allocate it. // Additionally we couldn't fit in the Header::mCapacity // member. Just bail out in cases like that. We don't want to be // allocating 2 GB+ arrays anyway. if ((PRUint64)capacity * elemSize > size_type(-1)/2) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Attempting to allocate excessively large array", "Error", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTArray-inl.h", 70); return 0; } if (mHdr == EmptyHdr()) { // Malloc() new data Header *header = static_cast (Alloc::Malloc(sizeof(Header) + capacity * elemSize)); if (!header) return 0; header->mLength = 0; header->mCapacity = capacity; header->mIsAutoArray = 0; mHdr = header; return 1; } // Use doubling algorithm when forced to increase available // capacity. (Note that mCapacity is only 31 bits wide, so // multiplication promotes its type. We use |2u| instead of |2| // to make sure it's promoted to unsigned.) capacity = ((capacity)>(mHdr->mCapacity * 2u)?(capacity):(mHdr->mCapacity * 2u)); Header *header; if (UsesAutoArrayBuffer()) { // Malloc() and copy header = static_cast (Alloc::Malloc(sizeof(Header) + capacity * elemSize)); if (!header) return 0; memcpy(header, mHdr, sizeof(Header) + Length() * elemSize); } else { // Realloc() existing data size_type size = sizeof(Header) + capacity * elemSize; header = static_cast(Alloc::Realloc(mHdr, size)); if (!header) return 0; } header->mCapacity = capacity; mHdr = header; return 1; } template void nsTArray_base::ShrinkCapacity(size_type elemSize) { if (mHdr == EmptyHdr() || UsesAutoArrayBuffer()) return; if (mHdr->mLength >= mHdr->mCapacity) // should never be greater than... return; size_type length = Length(); if (IsAutoArray() && GetAutoArrayBuffer()->mCapacity >= length) { Header* header = GetAutoArrayBuffer(); // Copy data, but don't copy the header to avoid overwriting mCapacity header->mLength = length; memcpy(header + 1, mHdr + 1, length * elemSize); Alloc::Free(mHdr); mHdr = header; return; } if (length == 0) { do { if (!(!IsAutoArray())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "autoarray should have fit 0 elements", "!IsAutoArray()", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTArray-inl.h", 141); } } while (0); Alloc::Free(mHdr); mHdr = EmptyHdr(); return; } size_type size = sizeof(Header) + length * elemSize; void *ptr = Alloc::Realloc(mHdr, size); if (!ptr) return; mHdr = static_cast(ptr); mHdr->mCapacity = length; } template void nsTArray_base::ShiftData(index_type start, size_type oldLen, size_type newLen, size_type elemSize) { if (oldLen == newLen) return; // Determine how many elements need to be shifted size_type num = mHdr->mLength - (start + oldLen); // Compute the resulting length of the array mHdr->mLength += newLen - oldLen; if (mHdr->mLength == 0) { ShrinkCapacity(elemSize); } else { // Maybe nothing needs to be shifted if (num == 0) return; // Perform shift (change units to bytes first) start *= elemSize; newLen *= elemSize; oldLen *= elemSize; num *= elemSize; char *base = reinterpret_cast(mHdr + 1) + start; memmove(base + newLen, base + oldLen, num); } } template PRBool nsTArray_base::InsertSlotsAt(index_type index, size_type count, size_type elementSize) { do { if (!(index <= Length())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Bogus insertion index", "index <= Length()", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTArray-inl.h", 188); } } while (0); size_type newLen = Length() + count; EnsureCapacity(newLen, elementSize); // Check for out of memory conditions if (Capacity() < newLen) return 0; // Move the existing elements as needed. Note that this will // change our mLength, so no need to call IncrementLength. ShiftData(index, 0, count, elementSize); return 1; } template template PRBool nsTArray_base::SwapArrayElements(nsTArray_base& other, size_type elemSize) { PRBool isAuto = IsAutoArray(); PRBool otherIsAuto = other.IsAutoArray(); #line 213 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTArray-inl.h" if (!EnsureNotUsingAutoArrayBuffer(elemSize) || !other.EnsureNotUsingAutoArrayBuffer(elemSize)) { return 0; } do { if (!(isAuto == IsAutoArray())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "lost auto info", "isAuto == IsAutoArray()", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTArray-inl.h", 219); } } while (0); do { if (!(otherIsAuto == other.IsAutoArray())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "lost auto info", "otherIsAuto == other.IsAutoArray()", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTArray-inl.h", 220); } } while (0); do { if (!(!UsesAutoArrayBuffer() && !other.UsesAutoArrayBuffer())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "both should be using an alloced buffer now", "!UsesAutoArrayBuffer() && !other.UsesAutoArrayBuffer()", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTArray-inl.h", 222); } } while (0); #line 223 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTArray-inl.h" // If the two arrays have different mIsAutoArray values (i.e. one is // an autoarray and one is not) then simply switching the buffers is // going to make that bit wrong. We therefore adjust these // mIsAutoArray bits before switching the buffers so that once the // buffers are switched the mIsAutoArray bits are right again. // However, we have to watch out so that we don't set the bit on // sEmptyHeader. If an array (A) uses the empty header (and the // other (B) therefore must be an nsAutoTArray) we make A point to // the B's autobuffer so that when the buffers are switched B points // to its own autobuffer. // Adjust mIsAutoArray flags before swapping the buffers if (IsAutoArray() && !other.IsAutoArray()) { if (other.mHdr == EmptyHdr()) { // Set other to use our built-in buffer so that we use it // after the swap below. other.mHdr = GetAutoArrayBuffer(); other.mHdr->mLength = 0; } else { other.mHdr->mIsAutoArray = 1; } mHdr->mIsAutoArray = 0; } else if (!IsAutoArray() && other.IsAutoArray()) { if (mHdr == EmptyHdr()) { // Set us to use other's built-in buffer so that other use it // after the swap below. mHdr = other.GetAutoArrayBuffer(); mHdr->mLength = 0; } else { mHdr->mIsAutoArray = 1; } other.mHdr->mIsAutoArray = 0; } // Swap the buffers Header *h = other.mHdr; other.mHdr = mHdr; mHdr = h; do { if (!(isAuto == IsAutoArray())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "lost auto info", "isAuto == IsAutoArray()", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTArray-inl.h", 266); } } while (0); do { if (!(otherIsAuto == other.IsAutoArray())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "lost auto info", "otherIsAuto == other.IsAutoArray()", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTArray-inl.h", 267); } } while (0); return 1; } template PRBool nsTArray_base::EnsureNotUsingAutoArrayBuffer(size_type elemSize) { if (UsesAutoArrayBuffer()) { size_type size = sizeof(Header) + Length() * elemSize; Header* header = static_cast(Alloc::Malloc(size)); if (!header) return 0; memcpy(header, mHdr, size); header->mCapacity = Length(); mHdr = header; } return 1; } #line 1259 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTArray.h" #line 1261 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTArray.h" #line 52 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsReadableUtils.h" inline size_t Distance( const nsReadingIterator& start, const nsReadingIterator& end ) { return end.get() - start.get(); } inline size_t Distance( const nsReadingIterator& start, const nsReadingIterator& end ) { return end.get() - start.get(); } void LossyCopyUTF16toASCII( const nsAString_internal& aSource, nsACString_internal& aDest ); void CopyASCIItoUTF16( const nsACString_internal& aSource, nsAString_internal& aDest ); void LossyCopyUTF16toASCII( const PRUnichar* aSource, nsACString_internal& aDest ); void CopyASCIItoUTF16( const char* aSource, nsAString_internal& aDest ); void CopyUTF16toUTF8( const nsAString_internal& aSource, nsACString_internal& aDest ); void CopyUTF8toUTF16( const nsACString_internal& aSource, nsAString_internal& aDest ); void CopyUTF16toUTF8( const PRUnichar* aSource, nsACString_internal& aDest ); void CopyUTF8toUTF16( const char* aSource, nsAString_internal& aDest ); void LossyAppendUTF16toASCII( const nsAString_internal& aSource, nsACString_internal& aDest ); void AppendASCIItoUTF16( const nsACString_internal& aSource, nsAString_internal& aDest ); void LossyAppendUTF16toASCII( const PRUnichar* aSource, nsACString_internal& aDest ); void AppendASCIItoUTF16( const char* aSource, nsAString_internal& aDest ); void AppendUTF16toUTF8( const nsAString_internal& aSource, nsACString_internal& aDest ); void AppendUTF8toUTF16( const nsACString_internal& aSource, nsAString_internal& aDest ); void AppendUTF16toUTF8( const PRUnichar* aSource, nsACString_internal& aDest ); void AppendUTF8toUTF16( const char* aSource, nsAString_internal& aDest ); /** * Returns a new |char| buffer containing a zero-terminated copy of |aSource|. * * Allocates and returns a new |char| buffer which you must free with |nsMemory::Free|. * Performs a lossy encoding conversion by chopping 16-bit wide characters down to 8-bits wide while copying |aSource| to your new buffer. * This conversion is not well defined; but it reproduces legacy string behavior. * The new buffer is zero-terminated, but that may not help you if |aSource| contains embedded nulls. * * @param aSource a 16-bit wide string * @return a new |char| buffer you must free with |nsMemory::Free|. */ char* ToNewCString( const nsAString_internal& aSource ); /** * Returns a new |char| buffer containing a zero-terminated copy of |aSource|. * * Allocates and returns a new |char| buffer which you must free with |nsMemory::Free|. * The new buffer is zero-terminated, but that may not help you if |aSource| contains embedded nulls. * * @param aSource an 8-bit wide string * @return a new |char| buffer you must free with |nsMemory::Free|. */ char* ToNewCString( const nsACString_internal& aSource ); /** * Returns a new |char| buffer containing a zero-terminated copy of |aSource|. * * Allocates and returns a new |char| buffer which you must free with * |nsMemory::Free|. * Performs an encoding conversion from a UTF-16 string to a UTF-8 string * copying |aSource| to your new buffer. * The new buffer is zero-terminated, but that may not help you if |aSource| * contains embedded nulls. * * @param aSource a UTF-16 string (made of PRUnichar's) * @param aUTF8Count the number of 8-bit units that was returned * @return a new |char| buffer you must free with |nsMemory::Free|. */ char* ToNewUTF8String( const nsAString_internal& aSource, PRUint32 *aUTF8Count = 0L ); /** * Returns a new |PRUnichar| buffer containing a zero-terminated copy of * |aSource|. * * Allocates and returns a new |PRUnichar| buffer which you must free with * |nsMemory::Free|. * The new buffer is zero-terminated, but that may not help you if |aSource| * contains embedded nulls. * * @param aSource a UTF-16 string * @return a new |PRUnichar| buffer you must free with |nsMemory::Free|. */ PRUnichar* ToNewUnicode( const nsAString_internal& aSource ); /** * Returns a new |PRUnichar| buffer containing a zero-terminated copy of |aSource|. * * Allocates and returns a new |PRUnichar| buffer which you must free with |nsMemory::Free|. * Performs an encoding conversion by 0-padding 8-bit wide characters up to 16-bits wide while copying |aSource| to your new buffer. * This conversion is not well defined; but it reproduces legacy string behavior. * The new buffer is zero-terminated, but that may not help you if |aSource| contains embedded nulls. * * @param aSource an 8-bit wide string (a C-string, NOT UTF-8) * @return a new |PRUnichar| buffer you must free with |nsMemory::Free|. */ PRUnichar* ToNewUnicode( const nsACString_internal& aSource ); /** * Returns a new |PRUnichar| buffer containing a zero-terminated copy * of |aSource|. * * Allocates and returns a new |char| buffer which you must free with * |nsMemory::Free|. Performs an encoding conversion from UTF-8 to UTF-16 * while copying |aSource| to your new buffer. This conversion is well defined * for a valid UTF-8 string. The new buffer is zero-terminated, but that * may not help you if |aSource| contains embedded nulls. * * @param aSource an 8-bit wide string, UTF-8 encoded * @param aUTF16Count the number of 16-bit units that was returned * @return a new |PRUnichar| buffer you must free with |nsMemory::Free|. * (UTF-16 encoded) */ PRUnichar* UTF8ToNewUnicode( const nsACString_internal& aSource, PRUint32 *aUTF16Count = 0L ); /** * Copies |aLength| 16-bit code units from the start of |aSource| to the * |PRUnichar| buffer |aDest|. * * After this operation |aDest| is not null terminated. * * @param aSource a UTF-16 string * @param aSrcOffset start offset in the source string * @param aDest a |PRUnichar| buffer * @param aLength the number of 16-bit code units to copy * @return pointer to destination buffer - identical to |aDest| */ PRUnichar* CopyUnicodeTo( const nsAString_internal& aSource, PRUint32 aSrcOffset, PRUnichar* aDest, PRUint32 aLength ); /** * Copies 16-bit characters between iterators |aSrcStart| and * |aSrcEnd| to the writable string |aDest|. Similar to the * |nsString::Mid| method. * * After this operation |aDest| is not null terminated. * * @param aSrcStart start source iterator * @param aSrcEnd end source iterator * @param aDest destination for the copy */ void CopyUnicodeTo( const nsAString_internal::const_iterator& aSrcStart, const nsAString_internal::const_iterator& aSrcEnd, nsAString_internal& aDest ); /** * Appends 16-bit characters between iterators |aSrcStart| and * |aSrcEnd| to the writable string |aDest|. * * After this operation |aDest| is not null terminated. * * @param aSrcStart start source iterator * @param aSrcEnd end source iterator * @param aDest destination for the copy */ void AppendUnicodeTo( const nsAString_internal::const_iterator& aSrcStart, const nsAString_internal::const_iterator& aSrcEnd, nsAString_internal& aDest ); /** * Returns |PR_TRUE| if |aString| contains only ASCII characters, that is, characters in the range (0x00, 0x7F). * * @param aString a 16-bit wide string to scan */ PRBool IsASCII( const nsAString_internal& aString ); /** * Returns |PR_TRUE| if |aString| contains only ASCII characters, that is, characters in the range (0x00, 0x7F). * * @param aString a 8-bit wide string to scan */ PRBool IsASCII( const nsACString_internal& aString ); /** * Returns |PR_TRUE| if |aString| is a valid UTF-8 string. * XXX This is not bullet-proof and nor an all-purpose UTF-8 validator. * It is mainly written to replace and roughly equivalent to * * str.Equals(NS_ConvertUTF16toUTF8(NS_ConvertUTF8toUTF16(str))) * * (see bug 191541) * As such, it does not check for non-UTF-8 7bit encodings such as * ISO-2022-JP and HZ. However, it filters out UTF-8 representation * of surrogate codepoints and non-characters ( 0xFFFE and 0xFFFF * in planes 0 through 16.) as well as overlong UTF-8 sequences. * Also note that it regards UTF-8 sequences corresponding to * codepoints above 0x10FFFF as invalid in accordance with * http://www.ietf.org/internet-drafts/draft-yergeau-rfc2279bis-04.txt * * @param aString an 8-bit wide string to scan */ PRBool IsUTF8( const nsACString_internal& aString ); PRBool ParseString(const nsACString_internal& aAstring, char aDelimiter, nsTArray& aArray); /** * Converts case in place in the argument string. */ void ToUpperCase( nsACString_internal& ); void ToLowerCase( nsACString_internal& ); void ToUpperCase( nsCSubstring& ); void ToLowerCase( nsCSubstring& ); /** * Converts case from string aSource to aDest. */ void ToUpperCase( const nsACString_internal& aSource, nsACString_internal& aDest ); void ToLowerCase( const nsACString_internal& aSource, nsACString_internal& aDest ); /** * Finds the leftmost occurrence of |aPattern|, if any in the range |aSearchStart|..|aSearchEnd|. * * Returns |PR_TRUE| if a match was found, and adjusts |aSearchStart| and |aSearchEnd| to * point to the match. If no match was found, returns |PR_FALSE| and makes |aSearchStart == aSearchEnd|. * * Currently, this is equivalent to the O(m*n) implementation previously on |ns[C]String|. * If we need something faster, then we can implement that later. */ PRBool FindInReadable( const nsAString_internal& aPattern, nsAString_internal::const_iterator&, nsAString_internal::const_iterator&, const nsStringComparator& = nsDefaultStringComparator() ); PRBool FindInReadable( const nsACString_internal& aPattern, nsACString_internal::const_iterator&, nsACString_internal::const_iterator&, const nsCStringComparator& = nsDefaultCStringComparator() ); /* sometimes we don't care about where the string was, just that we * found it or not */ inline PRBool FindInReadable( const nsAString_internal& aPattern, const nsAString_internal& aSource, const nsStringComparator& compare = nsDefaultStringComparator() ) { nsAString_internal::const_iterator start, end; aSource.BeginReading(start); aSource.EndReading(end); return FindInReadable(aPattern, start, end, compare); } inline PRBool FindInReadable( const nsACString_internal& aPattern, const nsACString_internal& aSource, const nsCStringComparator& compare = nsDefaultCStringComparator() ) { nsACString_internal::const_iterator start, end; aSource.BeginReading(start); aSource.EndReading(end); return FindInReadable(aPattern, start, end, compare); } PRBool CaseInsensitiveFindInReadable( const nsACString_internal& aPattern, nsACString_internal::const_iterator&, nsACString_internal::const_iterator& ); /** * Finds the rightmost occurrence of |aPattern| * Returns |PR_TRUE| if a match was found, and adjusts |aSearchStart| and |aSearchEnd| to * point to the match. If no match was found, returns |PR_FALSE| and makes |aSearchStart == aSearchEnd|. * */ PRBool RFindInReadable( const nsAString_internal& aPattern, nsAString_internal::const_iterator&, nsAString_internal::const_iterator&, const nsStringComparator& = nsDefaultStringComparator() ); PRBool RFindInReadable( const nsACString_internal& aPattern, nsACString_internal::const_iterator&, nsACString_internal::const_iterator&, const nsCStringComparator& = nsDefaultCStringComparator() ); /** * Finds the leftmost occurrence of |aChar|, if any in the range * |aSearchStart|..|aSearchEnd|. * * Returns |PR_TRUE| if a match was found, and adjusts |aSearchStart| to * point to the match. If no match was found, returns |PR_FALSE| and * makes |aSearchStart == aSearchEnd|. */ PRBool FindCharInReadable( PRUnichar aChar, nsAString_internal::const_iterator& aSearchStart, const nsAString_internal::const_iterator& aSearchEnd ); PRBool FindCharInReadable( char aChar, nsACString_internal::const_iterator& aSearchStart, const nsACString_internal::const_iterator& aSearchEnd ); /** * Finds the number of occurences of |aChar| in the string |aStr| */ PRUint32 CountCharInReadable( const nsAString_internal& aStr, PRUnichar aChar ); PRUint32 CountCharInReadable( const nsACString_internal& aStr, char aChar ); PRBool StringBeginsWith( const nsAString_internal& aSource, const nsAString_internal& aSubstring, const nsStringComparator& aComparator = nsDefaultStringComparator() ); PRBool StringBeginsWith( const nsACString_internal& aSource, const nsACString_internal& aSubstring, const nsCStringComparator& aComparator = nsDefaultCStringComparator() ); PRBool StringEndsWith( const nsAString_internal& aSource, const nsAString_internal& aSubstring, const nsStringComparator& aComparator = nsDefaultStringComparator() ); PRBool StringEndsWith( const nsACString_internal& aSource, const nsACString_internal& aSubstring, const nsCStringComparator& aComparator = nsDefaultCStringComparator() ); const nsAFlatString& EmptyString(); const nsAFlatCString& EmptyCString(); /** * Compare a UTF-8 string to an UTF-16 string. * * Returns 0 if the strings are equal, -1 if aUTF8String is less * than aUTF16Count, and 1 in the reverse case. In case of fatal * error (eg the strings are not valid UTF8 and UTF16 respectively), * this method will return PR_INT32_MIN. */ PRInt32 CompareUTF8toUTF16(const nsASingleFragmentCString& aUTF8String, const nsASingleFragmentString& aUTF16String); void AppendUCS4ToUTF16(const PRUint32 aSource, nsAString_internal& aDest); template inline PRBool EnsureStringLength(T& aStr, PRUint32 aLen) { aStr.SetLength(aLen); return (aStr.Length() == aLen); } #line 383 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsReadableUtils.h" #line 53 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsString.h" #line 54 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsString.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\stl_wrappers\\new" /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- * vim: sw=2 ts=8 et : */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at: * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla Code. * * The Initial Developer of the Original Code is * The Mozilla Foundation * Portions created by the Initial Developer are Copyright (C) 2010 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Chris Jones * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 56 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsString.h" // enable support for the obsolete string API if not explicitly disabled #line 61 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsString.h" // radix values for ToInteger/AppendInt #line 70 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsString.h" // declare nsString, et. al. #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\string-template-def-unichar.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 74 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsString.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTString.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Rick Gessner (original author) * Scott Collins * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /** * This is the canonical null-terminated string class. All subclasses * promise null-terminated storage. Instances of this class allocate * strings on the heap. * * NAMES: * nsString for wide characters * nsCString for narrow characters * * This class is also known as nsAFlat[C]String, where "flat" is used * to denote a null-terminated string. */ class nsString : public nsAString_internal { public: typedef nsString self_type; public: /** * constructors */ nsString() : substring_type() {} explicit nsString( char_type c ) : substring_type() { Assign(c); } explicit nsString( const char_type* data, size_type length = size_type(-1) ) : substring_type() { Assign(data, length); } nsString( const self_type& str ) : substring_type() { Assign(str); } nsString( const substring_tuple_type& tuple ) : substring_type() { Assign(tuple); } explicit nsString( const substring_type& readable ) : substring_type() { Assign(readable); } // |operator=| does not inherit, so we must define our own self_type& operator=( char_type c ) { Assign(c); return *this; } self_type& operator=( const char_type* data ) { Assign(data); return *this; } self_type& operator=( const self_type& str ) { Assign(str); return *this; } self_type& operator=( const substring_type& str ) { Assign(str); return *this; } self_type& operator=( const substring_tuple_type& tuple ) { Assign(tuple); return *this; } /** * returns the null-terminated string */ const char_type* get() const { return mData; } /** * returns character at specified index. * * NOTE: unlike nsTSubstring::CharAt, this function allows you to index * the null terminator character. */ char_type CharAt( index_type i ) const { do { if (!(i <= mLength)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "index exceeds allowable range", "i <= mLength", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTString.h", 129); } } while (0); return mData[i]; } char_type operator[]( index_type i ) const { return CharAt(i); } /** * Search for the given substring within this string. * * @param aString is substring to be sought in this * @param aIgnoreCase selects case sensitivity * @param aOffset tells us where in this string to start searching * @param aCount tells us how far from the offset we are to search. Use * -1 to search the whole string. * @return offset in string, or kNotFound */ PRInt32 Find( const nsCString& aString, PRBool aIgnoreCase=0, PRInt32 aOffset=0, PRInt32 aCount=-1 ) const; PRInt32 Find( const char* aString, PRBool aIgnoreCase=0, PRInt32 aOffset=0, PRInt32 aCount=-1 ) const; PRInt32 Find( const nsAFlatString& aString, PRInt32 aOffset=0, PRInt32 aCount=-1 ) const; PRInt32 Find( const PRUnichar* aString, PRInt32 aOffset=0, PRInt32 aCount=-1 ) const; #line 160 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTString.h" /** * This methods scans the string backwards, looking for the given string * * @param aString is substring to be sought in this * @param aIgnoreCase tells us whether or not to do caseless compare * @param aOffset tells us where in this string to start searching. * Use -1 to search from the end of the string. * @param aCount tells us how many iterations to make starting at the * given offset. * @return offset in string, or kNotFound */ PRInt32 RFind( const nsCString& aString, PRBool aIgnoreCase=0, PRInt32 aOffset=-1, PRInt32 aCount=-1 ) const; PRInt32 RFind( const char* aCString, PRBool aIgnoreCase=0, PRInt32 aOffset=-1, PRInt32 aCount=-1 ) const; PRInt32 RFind( const nsAFlatString& aString, PRInt32 aOffset=-1, PRInt32 aCount=-1 ) const; PRInt32 RFind( const PRUnichar* aString, PRInt32 aOffset=-1, PRInt32 aCount=-1 ) const; #line 181 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTString.h" /** * Search for given char within this string * * @param aChar is the character to search for * @param aOffset tells us where in this string to start searching * @param aCount tells us how far from the offset we are to search. * Use -1 to search the whole string. * @return offset in string, or kNotFound */ // PRInt32 FindChar( PRUnichar aChar, PRInt32 aOffset=0, PRInt32 aCount=-1 ) const; PRInt32 RFindChar( PRUnichar aChar, PRInt32 aOffset=-1, PRInt32 aCount=-1 ) const; /** * This method searches this string for the first character found in * the given string. * * @param aString contains set of chars to be found * @param aOffset tells us where in this string to start searching * (counting from left) * @return offset in string, or kNotFound */ PRInt32 FindCharInSet( const char* aString, PRInt32 aOffset=0 ) const; PRInt32 FindCharInSet( const self_type& aString, PRInt32 aOffset=0 ) const { return FindCharInSet(aString.get(), aOffset); } PRInt32 FindCharInSet( const PRUnichar* aString, PRInt32 aOffset=0 ) const; #line 216 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTString.h" /** * This method searches this string for the last character found in * the given string. * * @param aString contains set of chars to be found * @param aOffset tells us where in this string to start searching * (counting from left) * @return offset in string, or kNotFound */ PRInt32 RFindCharInSet( const char_type* aString, PRInt32 aOffset=-1 ) const; PRInt32 RFindCharInSet( const self_type& aString, PRInt32 aOffset=-1 ) const { return RFindCharInSet(aString.get(), aOffset); } /** * Compares a given string to this string. * * @param aString is the string to be compared * @param aIgnoreCase tells us how to treat case * @param aCount tells us how many chars to compare * @return -1,0,1 */ /** * Equality check between given string and this string. * * @param aString is the string to check * @param aIgnoreCase tells us how to treat case * @param aCount tells us how many chars to compare * @return boolean */ PRBool EqualsIgnoreCase( const char* aString, PRInt32 aCount=-1 ) const; #line 266 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTString.h" /** * Perform string to float conversion. * * @param aErrorCode will contain error if one occurs * @return float rep of string value */ float ToFloat( PRInt32* aErrorCode ) const; /** * Perform string to int conversion. * @param aErrorCode will contain error if one occurs * @param aRadix tells us which radix to assume; kAutoDetect tells us to determine the radix for you. * @return int rep of string value, and possible (out) error code */ PRInt32 ToInteger( PRInt32* aErrorCode, PRUint32 aRadix=(10) ) const; PRInt32 ToInteger( nsresult* aErrorCode, PRUint32 aRadix=(10) ) const { return ToInteger(reinterpret_cast(aErrorCode), aRadix); } /** * |Left|, |Mid|, and |Right| are annoying signatures that seem better almost * any _other_ way than they are now. Consider these alternatives * * aWritable = aReadable.Left(17); // ...a member function that returns a |Substring| * aWritable = Left(aReadable, 17); // ...a global function that returns a |Substring| * Left(aReadable, 17, aWritable); // ...a global function that does the assignment * * as opposed to the current signature * * aReadable.Left(aWritable, 17); // ...a member function that does the assignment * * or maybe just stamping them out in favor of |Substring|, they are just duplicate functionality * * aWritable = Substring(aReadable, 0, 17); */ size_type Mid( self_type& aResult, PRUint32 aStartPos, PRUint32 aCount ) const; size_type Left( self_type& aResult, size_type aCount ) const { return Mid(aResult, 0, aCount); } size_type Right( self_type& aResult, size_type aCount ) const { aCount = NS_MIN(mLength, aCount); return Mid(aResult, mLength - aCount, aCount); } /** * Set a char inside this string at given index * * @param aChar is the char you want to write into this string * @param anIndex is the ofs where you want to write the given char * @return TRUE if successful */ PRBool SetCharAt( PRUnichar aChar, PRUint32 aIndex ); /** * These methods are used to remove all occurrences of the * characters found in aSet from this string. * * @param aSet -- characters to be cut from this */ void StripChars( const char* aSet ); /** * This method strips whitespace throughout the string. */ void StripWhitespace(); /** * swaps occurence of 1 string for another */ void ReplaceChar( char_type aOldChar, char_type aNewChar ); void ReplaceChar( const char* aSet, char_type aNewChar ); void ReplaceSubstring( const self_type& aTarget, const self_type& aNewValue); void ReplaceSubstring( const char_type* aTarget, const char_type* aNewValue); /** * This method trims characters found in aTrimSet from * either end of the underlying string. * * @param aSet -- contains chars to be trimmed from both ends * @param aEliminateLeading * @param aEliminateTrailing * @param aIgnoreQuotes -- if true, causes surrounding quotes to be ignored * @return this */ void Trim( const char* aSet, PRBool aEliminateLeading=1, PRBool aEliminateTrailing=1, PRBool aIgnoreQuotes=0 ); /** * This method strips whitespace from string. * You can control whether whitespace is yanked from start and end of * string as well. * * @param aEliminateLeading controls stripping of leading ws * @param aEliminateTrailing controls stripping of trailing ws */ void CompressWhitespace( PRBool aEliminateLeading=1, PRBool aEliminateTrailing=1 ); /** * assign/append/insert with _LOSSY_ conversion */ void AssignWithConversion( const nsACString_internal& aString ); void AssignWithConversion( const incompatible_char_type* aData, PRInt32 aLength=-1 ); void AppendWithConversion( const nsACString_internal& aString ); void AppendWithConversion( const incompatible_char_type* aData, PRInt32 aLength=-1 ); #line 388 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTString.h" protected: explicit nsString( PRUint32 flags ) : substring_type(flags) {} // allow subclasses to initialize fields directly nsString( char_type* data, size_type length, PRUint32 flags ) : substring_type(data, length, flags) {} }; class nsFixedString : public nsString { public: typedef nsFixedString self_type; typedef nsFixedString fixed_string_type; public: /** * @param data * fixed-size buffer to be used by the string (the contents of * this buffer may be modified by the string) * @param storageSize * the size of the fixed buffer * @param length (optional) * the length of the string already contained in the buffer */ nsFixedString( char_type* data, size_type storageSize ) : string_type(data, PRUint32(char_traits::length(data)), F_TERMINATED | F_FIXED | F_CLASS_FIXED) , mFixedCapacity(storageSize - 1) , mFixedBuf(data) {} nsFixedString( char_type* data, size_type storageSize, size_type length ) : string_type(data, length, F_TERMINATED | F_FIXED | F_CLASS_FIXED) , mFixedCapacity(storageSize - 1) , mFixedBuf(data) { // null-terminate mFixedBuf[length] = char_type(0); } // |operator=| does not inherit, so we must define our own self_type& operator=( char_type c ) { Assign(c); return *this; } self_type& operator=( const char_type* data ) { Assign(data); return *this; } self_type& operator=( const substring_type& str ) { Assign(str); return *this; } self_type& operator=( const substring_tuple_type& tuple ) { Assign(tuple); return *this; } protected: friend class nsAString_internal; size_type mFixedCapacity; char_type *mFixedBuf; }; /** * nsTAutoString_CharT * * Subclass of nsTString_CharT that adds support for stack-based string * allocation. It is normally not a good idea to use this class on the * heap, because it will allocate space which may be wasted if the string * it contains is significantly smaller or any larger than 64 characters. * * NAMES: * nsAutoString for wide characters * nsCAutoString for narrow characters */ class nsAutoString : public nsFixedString { public: typedef nsAutoString self_type; public: /** * constructors */ nsAutoString() : fixed_string_type(mStorage, kDefaultStorageSize, 0) {} explicit nsAutoString( char_type c ) : fixed_string_type(mStorage, kDefaultStorageSize, 0) { Assign(c); } explicit nsAutoString( const char_type* data, size_type length = size_type(-1) ) : fixed_string_type(mStorage, kDefaultStorageSize, 0) { Assign(data, length); } nsAutoString( const self_type& str ) : fixed_string_type(mStorage, kDefaultStorageSize, 0) { Assign(str); } explicit nsAutoString( const substring_type& str ) : fixed_string_type(mStorage, kDefaultStorageSize, 0) { Assign(str); } nsAutoString( const substring_tuple_type& tuple ) : fixed_string_type(mStorage, kDefaultStorageSize, 0) { Assign(tuple); } // |operator=| does not inherit, so we must define our own self_type& operator=( char_type c ) { Assign(c); return *this; } self_type& operator=( const char_type* data ) { Assign(data); return *this; } self_type& operator=( const self_type& str ) { Assign(str); return *this; } self_type& operator=( const substring_type& str ) { Assign(str); return *this; } self_type& operator=( const substring_tuple_type& tuple ) { Assign(tuple); return *this; } enum { kDefaultStorageSize = 64 }; private: char_type mStorage[kDefaultStorageSize]; }; // // nsAutoString stores pointers into itself which are invalidated when an // nsTArray is resized, so nsTArray must not be instantiated with nsAutoString // elements! // template class nsTArrayElementTraits; template<> class nsTArrayElementTraits { public: template struct Dont_Instantiate_nsTArray_of; template struct Instead_Use_nsTArray_of; static Dont_Instantiate_nsTArray_of * Construct(Instead_Use_nsTArray_of *e) { return 0; } template static Dont_Instantiate_nsTArray_of * Construct(Instead_Use_nsTArray_of *e, const A &arg) { return 0; } static Dont_Instantiate_nsTArray_of * Destruct(Instead_Use_nsTArray_of *e) { return 0; } }; /** * nsTXPIDLString extends nsTString such that: * * (1) mData can be null * (2) objects of this type can be automatically cast to |const CharT*| * (3) getter_Copies method is supported to adopt data allocated with * NS_Alloc, such as "out string" parameters in XPIDL. * * NAMES: * nsXPIDLString for wide characters * nsXPIDLCString for narrow characters */ class nsXPIDLString : public nsString { public: typedef nsXPIDLString self_type; public: nsXPIDLString() : string_type(char_traits::sEmptyBuffer, 0, F_TERMINATED | F_VOIDED) {} // copy-constructor required to avoid default nsXPIDLString( const self_type& str ) : string_type(char_traits::sEmptyBuffer, 0, F_TERMINATED | F_VOIDED) { Assign(str); } // return nsnull if we are voided const char_type* get() const { return (mFlags & F_VOIDED) ? 0L : mData; } // this case operator is the reason why this class cannot just be a // typedef for nsTString operator const char_type*() const { return get(); } // need this to diambiguous operator[int] char_type operator[]( PRInt32 i ) const { return CharAt(index_type(i)); } // |operator=| does not inherit, so we must define our own self_type& operator=( char_type c ) { Assign(c); return *this; } self_type& operator=( const char_type* data ) { Assign(data); return *this; } self_type& operator=( const self_type& str ) { Assign(str); return *this; } self_type& operator=( const substring_type& str ) { Assign(str); return *this; } self_type& operator=( const substring_tuple_type& tuple ) { Assign(tuple); return *this; } }; /** * getter_Copies support for use with raw string out params: * * NS_IMETHOD GetBlah(char**); * * void some_function() * { * nsXPIDLCString blah; * GetBlah(getter_Copies(blah)); * // ... * } */ class nsGetterCopies { public: typedef PRUnichar char_type; nsGetterCopies(nsAString_internal& str) : mString(str), mData(0L) {} ~nsGetterCopies() { mString.Adopt(mData); // OK if mData is null } operator char_type**() { return &mData; } private: nsAString_internal& mString; char_type* mData; }; inline nsGetterCopies getter_Copies( nsAString_internal& aString ) { return nsGetterCopies(aString); } /** * nsTAdoptingString extends nsTXPIDLString such that: * * (1) Adopt given string on construction or assignment, i.e. take * the value of what's given, and make what's given forget its * value. Note that this class violates constness in a few * places. Be careful! */ class nsAdoptingString : public nsXPIDLString { public: typedef nsAdoptingString self_type; public: explicit nsAdoptingString() {} explicit nsAdoptingString(char_type* str, size_type length = size_type(-1)) { Adopt(str, length); } // copy-constructor required to adopt on copy. Note that this // will violate the constness of |str| in the operator=() // call. |str| will be truncated as a side-effect of this // constructor. nsAdoptingString( const self_type& str ) { *this = str; } // |operator=| does not inherit, so we must define our own self_type& operator=( const substring_type& str ) { Assign(str); return *this; } self_type& operator=( const substring_tuple_type& tuple ) { Assign(tuple); return *this; } // Adopt(), if possible, when assigning to a self_type&. Note // that this violates the constness of str, str is always // truncated when this operator is called. self_type& operator=( const self_type& str ); private: // NOT TO BE IMPLEMENTED. self_type& operator=( const char_type* data ); self_type& operator=( char_type* data ); }; #line 75 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsString.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\string-template-undef.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 76 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsString.h" // declare nsCString, et. al. #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\string-template-def-char.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 79 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsString.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTString.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Rick Gessner (original author) * Scott Collins * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /** * This is the canonical null-terminated string class. All subclasses * promise null-terminated storage. Instances of this class allocate * strings on the heap. * * NAMES: * nsString for wide characters * nsCString for narrow characters * * This class is also known as nsAFlat[C]String, where "flat" is used * to denote a null-terminated string. */ class nsCString : public nsACString_internal { public: typedef nsCString self_type; public: /** * constructors */ nsCString() : substring_type() {} explicit nsCString( char_type c ) : substring_type() { Assign(c); } explicit nsCString( const char_type* data, size_type length = size_type(-1) ) : substring_type() { Assign(data, length); } nsCString( const self_type& str ) : substring_type() { Assign(str); } nsCString( const substring_tuple_type& tuple ) : substring_type() { Assign(tuple); } explicit nsCString( const substring_type& readable ) : substring_type() { Assign(readable); } // |operator=| does not inherit, so we must define our own self_type& operator=( char_type c ) { Assign(c); return *this; } self_type& operator=( const char_type* data ) { Assign(data); return *this; } self_type& operator=( const self_type& str ) { Assign(str); return *this; } self_type& operator=( const substring_type& str ) { Assign(str); return *this; } self_type& operator=( const substring_tuple_type& tuple ) { Assign(tuple); return *this; } /** * returns the null-terminated string */ const char_type* get() const { return mData; } /** * returns character at specified index. * * NOTE: unlike nsTSubstring::CharAt, this function allows you to index * the null terminator character. */ char_type CharAt( index_type i ) const { do { if (!(i <= mLength)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "index exceeds allowable range", "i <= mLength", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTString.h", 129); } } while (0); return mData[i]; } char_type operator[]( index_type i ) const { return CharAt(i); } /** * Search for the given substring within this string. * * @param aString is substring to be sought in this * @param aIgnoreCase selects case sensitivity * @param aOffset tells us where in this string to start searching * @param aCount tells us how far from the offset we are to search. Use * -1 to search the whole string. * @return offset in string, or kNotFound */ PRInt32 Find( const nsCString& aString, PRBool aIgnoreCase=0, PRInt32 aOffset=0, PRInt32 aCount=-1 ) const; PRInt32 Find( const char* aString, PRBool aIgnoreCase=0, PRInt32 aOffset=0, PRInt32 aCount=-1 ) const; /** * This methods scans the string backwards, looking for the given string * * @param aString is substring to be sought in this * @param aIgnoreCase tells us whether or not to do caseless compare * @param aOffset tells us where in this string to start searching. * Use -1 to search from the end of the string. * @param aCount tells us how many iterations to make starting at the * given offset. * @return offset in string, or kNotFound */ PRInt32 RFind( const nsCString& aString, PRBool aIgnoreCase=0, PRInt32 aOffset=-1, PRInt32 aCount=-1 ) const; PRInt32 RFind( const char* aCString, PRBool aIgnoreCase=0, PRInt32 aOffset=-1, PRInt32 aCount=-1 ) const; /** * Search for given char within this string * * @param aChar is the character to search for * @param aOffset tells us where in this string to start searching * @param aCount tells us how far from the offset we are to search. * Use -1 to search the whole string. * @return offset in string, or kNotFound */ // PRInt32 FindChar( PRUnichar aChar, PRInt32 aOffset=0, PRInt32 aCount=-1 ) const; PRInt32 RFindChar( PRUnichar aChar, PRInt32 aOffset=-1, PRInt32 aCount=-1 ) const; /** * This method searches this string for the first character found in * the given string. * * @param aString contains set of chars to be found * @param aOffset tells us where in this string to start searching * (counting from left) * @return offset in string, or kNotFound */ PRInt32 FindCharInSet( const char* aString, PRInt32 aOffset=0 ) const; PRInt32 FindCharInSet( const self_type& aString, PRInt32 aOffset=0 ) const { return FindCharInSet(aString.get(), aOffset); } /** * This method searches this string for the last character found in * the given string. * * @param aString contains set of chars to be found * @param aOffset tells us where in this string to start searching * (counting from left) * @return offset in string, or kNotFound */ PRInt32 RFindCharInSet( const char_type* aString, PRInt32 aOffset=-1 ) const; PRInt32 RFindCharInSet( const self_type& aString, PRInt32 aOffset=-1 ) const { return RFindCharInSet(aString.get(), aOffset); } /** * Compares a given string to this string. * * @param aString is the string to be compared * @param aIgnoreCase tells us how to treat case * @param aCount tells us how many chars to compare * @return -1,0,1 */ PRInt32 Compare( const char* aString, PRBool aIgnoreCase=0, PRInt32 aCount=-1 ) const; #line 247 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTString.h" /** * Equality check between given string and this string. * * @param aString is the string to check * @param aIgnoreCase tells us how to treat case * @param aCount tells us how many chars to compare * @return boolean */ PRBool EqualsIgnoreCase( const char* aString, PRInt32 aCount=-1 ) const { return Compare(aString, 1, aCount) == 0; } #line 266 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTString.h" /** * Perform string to float conversion. * * @param aErrorCode will contain error if one occurs * @return float rep of string value */ float ToFloat( PRInt32* aErrorCode ) const; /** * Perform string to int conversion. * @param aErrorCode will contain error if one occurs * @param aRadix tells us which radix to assume; kAutoDetect tells us to determine the radix for you. * @return int rep of string value, and possible (out) error code */ PRInt32 ToInteger( PRInt32* aErrorCode, PRUint32 aRadix=(10) ) const; PRInt32 ToInteger( nsresult* aErrorCode, PRUint32 aRadix=(10) ) const { return ToInteger(reinterpret_cast(aErrorCode), aRadix); } /** * |Left|, |Mid|, and |Right| are annoying signatures that seem better almost * any _other_ way than they are now. Consider these alternatives * * aWritable = aReadable.Left(17); // ...a member function that returns a |Substring| * aWritable = Left(aReadable, 17); // ...a global function that returns a |Substring| * Left(aReadable, 17, aWritable); // ...a global function that does the assignment * * as opposed to the current signature * * aReadable.Left(aWritable, 17); // ...a member function that does the assignment * * or maybe just stamping them out in favor of |Substring|, they are just duplicate functionality * * aWritable = Substring(aReadable, 0, 17); */ size_type Mid( self_type& aResult, PRUint32 aStartPos, PRUint32 aCount ) const; size_type Left( self_type& aResult, size_type aCount ) const { return Mid(aResult, 0, aCount); } size_type Right( self_type& aResult, size_type aCount ) const { aCount = NS_MIN(mLength, aCount); return Mid(aResult, mLength - aCount, aCount); } /** * Set a char inside this string at given index * * @param aChar is the char you want to write into this string * @param anIndex is the ofs where you want to write the given char * @return TRUE if successful */ PRBool SetCharAt( PRUnichar aChar, PRUint32 aIndex ); /** * These methods are used to remove all occurrences of the * characters found in aSet from this string. * * @param aSet -- characters to be cut from this */ void StripChars( const char* aSet ); /** * This method strips whitespace throughout the string. */ void StripWhitespace(); /** * swaps occurence of 1 string for another */ void ReplaceChar( char_type aOldChar, char_type aNewChar ); void ReplaceChar( const char* aSet, char_type aNewChar ); void ReplaceSubstring( const self_type& aTarget, const self_type& aNewValue); void ReplaceSubstring( const char_type* aTarget, const char_type* aNewValue); /** * This method trims characters found in aTrimSet from * either end of the underlying string. * * @param aSet -- contains chars to be trimmed from both ends * @param aEliminateLeading * @param aEliminateTrailing * @param aIgnoreQuotes -- if true, causes surrounding quotes to be ignored * @return this */ void Trim( const char* aSet, PRBool aEliminateLeading=1, PRBool aEliminateTrailing=1, PRBool aIgnoreQuotes=0 ); /** * This method strips whitespace from string. * You can control whether whitespace is yanked from start and end of * string as well. * * @param aEliminateLeading controls stripping of leading ws * @param aEliminateTrailing controls stripping of trailing ws */ void CompressWhitespace( PRBool aEliminateLeading=1, PRBool aEliminateTrailing=1 ); /** * assign/append/insert with _LOSSY_ conversion */ void AssignWithConversion( const nsAString_internal& aString ); void AssignWithConversion( const incompatible_char_type* aData, PRInt32 aLength=-1 ); void AppendWithConversion( const nsAString_internal& aString ); void AppendWithConversion( const incompatible_char_type* aData, PRInt32 aLength=-1 ); #line 388 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTString.h" protected: explicit nsCString( PRUint32 flags ) : substring_type(flags) {} // allow subclasses to initialize fields directly nsCString( char_type* data, size_type length, PRUint32 flags ) : substring_type(data, length, flags) {} }; class nsFixedCString : public nsCString { public: typedef nsFixedCString self_type; typedef nsFixedCString fixed_string_type; public: /** * @param data * fixed-size buffer to be used by the string (the contents of * this buffer may be modified by the string) * @param storageSize * the size of the fixed buffer * @param length (optional) * the length of the string already contained in the buffer */ nsFixedCString( char_type* data, size_type storageSize ) : string_type(data, PRUint32(char_traits::length(data)), F_TERMINATED | F_FIXED | F_CLASS_FIXED) , mFixedCapacity(storageSize - 1) , mFixedBuf(data) {} nsFixedCString( char_type* data, size_type storageSize, size_type length ) : string_type(data, length, F_TERMINATED | F_FIXED | F_CLASS_FIXED) , mFixedCapacity(storageSize - 1) , mFixedBuf(data) { // null-terminate mFixedBuf[length] = char_type(0); } // |operator=| does not inherit, so we must define our own self_type& operator=( char_type c ) { Assign(c); return *this; } self_type& operator=( const char_type* data ) { Assign(data); return *this; } self_type& operator=( const substring_type& str ) { Assign(str); return *this; } self_type& operator=( const substring_tuple_type& tuple ) { Assign(tuple); return *this; } protected: friend class nsACString_internal; size_type mFixedCapacity; char_type *mFixedBuf; }; /** * nsTAutoString_CharT * * Subclass of nsTString_CharT that adds support for stack-based string * allocation. It is normally not a good idea to use this class on the * heap, because it will allocate space which may be wasted if the string * it contains is significantly smaller or any larger than 64 characters. * * NAMES: * nsAutoString for wide characters * nsCAutoString for narrow characters */ class nsCAutoString : public nsFixedCString { public: typedef nsCAutoString self_type; public: /** * constructors */ nsCAutoString() : fixed_string_type(mStorage, kDefaultStorageSize, 0) {} explicit nsCAutoString( char_type c ) : fixed_string_type(mStorage, kDefaultStorageSize, 0) { Assign(c); } explicit nsCAutoString( const char_type* data, size_type length = size_type(-1) ) : fixed_string_type(mStorage, kDefaultStorageSize, 0) { Assign(data, length); } nsCAutoString( const self_type& str ) : fixed_string_type(mStorage, kDefaultStorageSize, 0) { Assign(str); } explicit nsCAutoString( const substring_type& str ) : fixed_string_type(mStorage, kDefaultStorageSize, 0) { Assign(str); } nsCAutoString( const substring_tuple_type& tuple ) : fixed_string_type(mStorage, kDefaultStorageSize, 0) { Assign(tuple); } // |operator=| does not inherit, so we must define our own self_type& operator=( char_type c ) { Assign(c); return *this; } self_type& operator=( const char_type* data ) { Assign(data); return *this; } self_type& operator=( const self_type& str ) { Assign(str); return *this; } self_type& operator=( const substring_type& str ) { Assign(str); return *this; } self_type& operator=( const substring_tuple_type& tuple ) { Assign(tuple); return *this; } enum { kDefaultStorageSize = 64 }; private: char_type mStorage[kDefaultStorageSize]; }; // // nsAutoString stores pointers into itself which are invalidated when an // nsTArray is resized, so nsTArray must not be instantiated with nsAutoString // elements! // template class nsTArrayElementTraits; template<> class nsTArrayElementTraits { public: template struct Dont_Instantiate_nsTArray_of; template struct Instead_Use_nsTArray_of; static Dont_Instantiate_nsTArray_of * Construct(Instead_Use_nsTArray_of *e) { return 0; } template static Dont_Instantiate_nsTArray_of * Construct(Instead_Use_nsTArray_of *e, const A &arg) { return 0; } static Dont_Instantiate_nsTArray_of * Destruct(Instead_Use_nsTArray_of *e) { return 0; } }; /** * nsTXPIDLString extends nsTString such that: * * (1) mData can be null * (2) objects of this type can be automatically cast to |const CharT*| * (3) getter_Copies method is supported to adopt data allocated with * NS_Alloc, such as "out string" parameters in XPIDL. * * NAMES: * nsXPIDLString for wide characters * nsXPIDLCString for narrow characters */ class nsXPIDLCString : public nsCString { public: typedef nsXPIDLCString self_type; public: nsXPIDLCString() : string_type(char_traits::sEmptyBuffer, 0, F_TERMINATED | F_VOIDED) {} // copy-constructor required to avoid default nsXPIDLCString( const self_type& str ) : string_type(char_traits::sEmptyBuffer, 0, F_TERMINATED | F_VOIDED) { Assign(str); } // return nsnull if we are voided const char_type* get() const { return (mFlags & F_VOIDED) ? 0L : mData; } // this case operator is the reason why this class cannot just be a // typedef for nsTString operator const char_type*() const { return get(); } // need this to diambiguous operator[int] char_type operator[]( PRInt32 i ) const { return CharAt(index_type(i)); } // |operator=| does not inherit, so we must define our own self_type& operator=( char_type c ) { Assign(c); return *this; } self_type& operator=( const char_type* data ) { Assign(data); return *this; } self_type& operator=( const self_type& str ) { Assign(str); return *this; } self_type& operator=( const substring_type& str ) { Assign(str); return *this; } self_type& operator=( const substring_tuple_type& tuple ) { Assign(tuple); return *this; } }; /** * getter_Copies support for use with raw string out params: * * NS_IMETHOD GetBlah(char**); * * void some_function() * { * nsXPIDLCString blah; * GetBlah(getter_Copies(blah)); * // ... * } */ class nsCGetterCopies { public: typedef char char_type; nsCGetterCopies(nsACString_internal& str) : mString(str), mData(0L) {} ~nsCGetterCopies() { mString.Adopt(mData); // OK if mData is null } operator char_type**() { return &mData; } private: nsACString_internal& mString; char_type* mData; }; inline nsCGetterCopies getter_Copies( nsACString_internal& aString ) { return nsCGetterCopies(aString); } /** * nsTAdoptingString extends nsTXPIDLString such that: * * (1) Adopt given string on construction or assignment, i.e. take * the value of what's given, and make what's given forget its * value. Note that this class violates constness in a few * places. Be careful! */ class nsAdoptingCString : public nsXPIDLCString { public: typedef nsAdoptingCString self_type; public: explicit nsAdoptingCString() {} explicit nsAdoptingCString(char_type* str, size_type length = size_type(-1)) { Adopt(str, length); } // copy-constructor required to adopt on copy. Note that this // will violate the constness of |str| in the operator=() // call. |str| will be truncated as a side-effect of this // constructor. nsAdoptingCString( const self_type& str ) { *this = str; } // |operator=| does not inherit, so we must define our own self_type& operator=( const substring_type& str ) { Assign(str); return *this; } self_type& operator=( const substring_tuple_type& tuple ) { Assign(tuple); return *this; } // Adopt(), if possible, when assigning to a self_type&. Note // that this violates the constness of str, str is always // truncated when this operator is called. self_type& operator=( const self_type& str ); private: // NOT TO BE IMPLEMENTED. self_type& operator=( const char_type* data ); self_type& operator=( char_type* data ); }; #line 80 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsString.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\string-template-undef.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 81 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsString.h" extern void pr_static_assert(int arg[(sizeof(PRUnichar) == 2) ? 1 : -1]); extern void pr_static_assert(int arg[(sizeof(nsString::char_type) == 2) ? 1 : -1]); extern void pr_static_assert(int arg[(sizeof(nsCString::char_type) == 1) ? 1 : -1]); /** * A helper class that converts a UTF-16 string to ASCII in a lossy manner */ class NS_LossyConvertUTF16toASCII : public nsCAutoString { public: explicit NS_LossyConvertUTF16toASCII( const PRUnichar* aString ) { LossyAppendUTF16toASCII(aString, *this); } NS_LossyConvertUTF16toASCII( const PRUnichar* aString, PRUint32 aLength ) { LossyAppendUTF16toASCII(Substring(aString, aString + aLength), *this); } explicit NS_LossyConvertUTF16toASCII( const nsAString_internal& aString ) { LossyAppendUTF16toASCII(aString, *this); } private: // NOT TO BE IMPLEMENTED NS_LossyConvertUTF16toASCII( char ); }; class NS_ConvertASCIItoUTF16 : public nsAutoString { public: explicit NS_ConvertASCIItoUTF16( const char* aCString ) { AppendASCIItoUTF16(aCString, *this); } NS_ConvertASCIItoUTF16( const char* aCString, PRUint32 aLength ) { AppendASCIItoUTF16(Substring(aCString, aCString + aLength), *this); } explicit NS_ConvertASCIItoUTF16( const nsACString_internal& aCString ) { AppendASCIItoUTF16(aCString, *this); } private: // NOT TO BE IMPLEMENTED NS_ConvertASCIItoUTF16( PRUnichar ); }; /** * A helper class that converts a UTF-16 string to UTF-8 */ class NS_ConvertUTF16toUTF8 : public nsCAutoString { public: explicit NS_ConvertUTF16toUTF8( const PRUnichar* aString ) { AppendUTF16toUTF8(aString, *this); } NS_ConvertUTF16toUTF8( const PRUnichar* aString, PRUint32 aLength ) { AppendUTF16toUTF8(Substring(aString, aString + aLength), *this); } explicit NS_ConvertUTF16toUTF8( const nsAString_internal& aString ) { AppendUTF16toUTF8(aString, *this); } private: // NOT TO BE IMPLEMENTED NS_ConvertUTF16toUTF8( char ); }; class NS_ConvertUTF8toUTF16 : public nsAutoString { public: explicit NS_ConvertUTF8toUTF16( const char* aCString ) { AppendUTF8toUTF16(aCString, *this); } NS_ConvertUTF8toUTF16( const char* aCString, PRUint32 aLength ) { AppendUTF8toUTF16(Substring(aCString, aCString + aLength), *this); } explicit NS_ConvertUTF8toUTF16( const nsACString_internal& aCString ) { AppendUTF8toUTF16(aCString, *this); } private: // NOT TO BE IMPLEMENTED NS_ConvertUTF8toUTF16( PRUnichar ); }; // the following are included/declared for backwards compatibility typedef nsAutoString nsVoidableString; #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsDependentString.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ // declare nsDependentString #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\string-template-def-unichar.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 52 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsDependentString.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTDependentString.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Scott Collins (original author) * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /** * nsTDependentString_CharT * * Stores a null-terminated, immutable sequence of characters. * * Subclass of nsTString that restricts string value to an immutable * character sequence. This class does not own its data, so the creator * of objects of this type must take care to ensure that a * nsTDependentString continues to reference valid memory for the * duration of its use. */ class nsDependentString : public nsString { public: typedef nsDependentString self_type; public: /** * verify restrictions */ void AssertValid() { do { if (!(mData)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "nsTDependentString must wrap a non-NULL buffer", "mData", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTDependentString.h", 65); } } while (0); do { if (!(mLength != size_type(-1))) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "nsTDependentString has bogus length", "mLength != size_type(-1)", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTDependentString.h", 66); } } while (0); do { if (!(mData[mLength] == 0)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "nsTDependentString must wrap only null-terminated strings", "mData[mLength] == 0", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTDependentString.h", 67); } } while (0); } /** * constructors */ nsDependentString( const char_type* start, const char_type* end ) : string_type(const_cast(start), PRUint32(end - start), F_TERMINATED) { AssertValid(); } nsDependentString( const char_type* data, PRUint32 length ) : string_type(const_cast(data), length, F_TERMINATED) { AssertValid(); } explicit nsDependentString( const char_type* data ) : string_type(const_cast(data), PRUint32(char_traits::length(data)), F_TERMINATED) { AssertValid(); } explicit nsDependentString( const substring_type& str ) : string_type(const_cast(str.Data()), str.Length(), F_TERMINATED) { AssertValid(); } // Create a nsTDependentSubstring to be bound later nsDependentString() : string_type() {} // XXX are you sure?? // auto-generated copy-constructor OK // auto-generated copy-assignment operator OK // auto-generated destructor OK /** * allow this class to be bound to a different string... */ void Rebind( const char_type* data ) { Rebind(data, PRUint32(char_traits::length(data))); } void Rebind( const char_type* data, size_type length ); void Rebind( const char_type* start, const char_type* end ) { Rebind(start, PRUint32(end - start)); } private: // NOT USED nsDependentString( const substring_tuple_type& ); }; #line 53 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsDependentString.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\string-template-undef.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 54 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsDependentString.h" // declare nsDependentCString #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\string-template-def-char.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 57 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsDependentString.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTDependentString.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Scott Collins (original author) * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /** * nsTDependentString_CharT * * Stores a null-terminated, immutable sequence of characters. * * Subclass of nsTString that restricts string value to an immutable * character sequence. This class does not own its data, so the creator * of objects of this type must take care to ensure that a * nsTDependentString continues to reference valid memory for the * duration of its use. */ class nsDependentCString : public nsCString { public: typedef nsDependentCString self_type; public: /** * verify restrictions */ void AssertValid() { do { if (!(mData)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "nsTDependentString must wrap a non-NULL buffer", "mData", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTDependentString.h", 65); } } while (0); do { if (!(mLength != size_type(-1))) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "nsTDependentString has bogus length", "mLength != size_type(-1)", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTDependentString.h", 66); } } while (0); do { if (!(mData[mLength] == 0)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "nsTDependentString must wrap only null-terminated strings", "mData[mLength] == 0", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTDependentString.h", 67); } } while (0); } /** * constructors */ nsDependentCString( const char_type* start, const char_type* end ) : string_type(const_cast(start), PRUint32(end - start), F_TERMINATED) { AssertValid(); } nsDependentCString( const char_type* data, PRUint32 length ) : string_type(const_cast(data), length, F_TERMINATED) { AssertValid(); } explicit nsDependentCString( const char_type* data ) : string_type(const_cast(data), PRUint32(char_traits::length(data)), F_TERMINATED) { AssertValid(); } explicit nsDependentCString( const substring_type& str ) : string_type(const_cast(str.Data()), str.Length(), F_TERMINATED) { AssertValid(); } // Create a nsTDependentSubstring to be bound later nsDependentCString() : string_type() {} // XXX are you sure?? // auto-generated copy-constructor OK // auto-generated copy-assignment operator OK // auto-generated destructor OK /** * allow this class to be bound to a different string... */ void Rebind( const char_type* data ) { Rebind(data, PRUint32(char_traits::length(data))); } void Rebind( const char_type* data, size_type length ); void Rebind( const char_type* start, const char_type* end ) { Rebind(start, PRUint32(end - start)); } private: // NOT USED nsDependentCString( const substring_tuple_type& ); }; #line 58 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsDependentString.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\string-template-undef.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 59 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsDependentString.h" #line 61 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsDependentString.h" #line 201 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsString.h" #line 202 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsString.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsLiteralString.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is * Netscape Communications. * Portions created by the Initial Developer are Copyright (C) 2001 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Scott Collins (original author) * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 80 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsLiteralString.h" #line 86 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsLiteralString.h" //PR_STATIC_ASSERT(sizeof(wchar_t) == 2); #line 89 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsLiteralString.h" typedef nsDependentString nsLiteralString; #line 100 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsLiteralString.h" /* * Macro arguments used in concatenation or stringification won't be expanded. * Therefore, in order for |NS_L(FOO)| to work as expected (which is to expand * |FOO| before doing whatever |NS_L| needs to do to it) a helper macro needs * to be inserted in between to allow the macro argument to expand. * See "3.10.6 Separate Expansion of Macro Arguments" of the CPP manual for a * more accurate and precise explanation. */ typedef nsDependentCString nsLiteralCString; #line 123 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsLiteralString.h" #line 205 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsString.h" #line 206 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsString.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsPromiseFlatString.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ // declare nsPromiseFlatString #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\string-template-def-unichar.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 48 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsPromiseFlatString.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTPromiseFlatString.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Scott Collins (original author) * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /** * NOTE: * * Try to avoid flat strings. |PromiseFlat[C]String| will help you as a last * resort, and this may be necessary when dealing with legacy or OS calls, * but in general, requiring a null-terminated array of characters kills many * of the performance wins the string classes offer. Write your own code to * use |nsA[C]String&|s for parameters. Write your string proccessing * algorithms to exploit iterators. If you do this, you will benefit from * being able to chain operations without copying or allocating and your code * will be significantly more efficient. Remember, a function that takes an * |const nsA[C]String&| can always be passed a raw character pointer by * wrapping it (for free) in a |nsDependent[C]String|. But a function that * takes a character pointer always has the potential to force allocation and * copying. * * * How to use it: * * A |nsPromiseFlat[C]String| doesn't necessarily own the characters it * promises. You must never use it to promise characters out of a string * with a shorter lifespan. The typical use will be something like this: * * SomeOSFunction( PromiseFlatCString(aCString).get() ); // GOOD * * Here's a BAD use: * * const char* buffer = PromiseFlatCString(aCString).get(); * SomeOSFunction(buffer); // BAD!! |buffer| is a dangling pointer * * The only way to make one is with the function |PromiseFlat[C]String|, * which produce a |const| instance. ``What if I need to keep a promise * around for a little while?'' you might ask. In that case, you can keep a * reference, like so * * const nsPromiseFlatString& flat = PromiseFlatString(aString); * // this reference holds the anonymous temporary alive, but remember, * // it must _still_ have a lifetime shorter than that of |aString| * * SomeOSFunction(flat.get()); * SomeOtherOSFunction(flat.get()); * * * How does it work? * * A |nsPromiseFlat[C]String| is just a wrapper for another string. If you * apply it to a string that happens to be flat, your promise is just a * dependent reference to the string's data. If you apply it to a non-flat * string, then a temporary flat string is created for you, by allocating and * copying. In the event that you end up assigning the result into a sharing * string (e.g., |nsTString|), the right thing happens. */ class nsPromiseFlatString : public nsString { public: typedef nsPromiseFlatString self_type; private: void Init( const substring_type& ); // NOT TO BE IMPLEMENTED void operator=( const self_type& ); // NOT TO BE IMPLEMENTED nsPromiseFlatString(); public: explicit nsPromiseFlatString( const substring_type& str ) : string_type() { Init(str); } explicit nsPromiseFlatString( const substring_tuple_type& tuple ) : string_type() { // nothing else to do here except assign the value of the tuple // into ourselves. Assign(tuple); } }; // e.g., PromiseFlatCString(Substring(s)) inline const nsPromiseFlatString PromiseFlatString( const nsAString_internal& frag ) { return nsPromiseFlatString(frag); } // e.g., PromiseFlatCString(a + b) inline const nsPromiseFlatString PromiseFlatString( const nsSubstringTuple& tuple ) { return nsPromiseFlatString(tuple); } #line 49 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsPromiseFlatString.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\string-template-undef.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 50 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsPromiseFlatString.h" // declare nsPromiseFlatCString #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\string-template-def-char.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 53 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsPromiseFlatString.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTPromiseFlatString.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Scott Collins (original author) * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /** * NOTE: * * Try to avoid flat strings. |PromiseFlat[C]String| will help you as a last * resort, and this may be necessary when dealing with legacy or OS calls, * but in general, requiring a null-terminated array of characters kills many * of the performance wins the string classes offer. Write your own code to * use |nsA[C]String&|s for parameters. Write your string proccessing * algorithms to exploit iterators. If you do this, you will benefit from * being able to chain operations without copying or allocating and your code * will be significantly more efficient. Remember, a function that takes an * |const nsA[C]String&| can always be passed a raw character pointer by * wrapping it (for free) in a |nsDependent[C]String|. But a function that * takes a character pointer always has the potential to force allocation and * copying. * * * How to use it: * * A |nsPromiseFlat[C]String| doesn't necessarily own the characters it * promises. You must never use it to promise characters out of a string * with a shorter lifespan. The typical use will be something like this: * * SomeOSFunction( PromiseFlatCString(aCString).get() ); // GOOD * * Here's a BAD use: * * const char* buffer = PromiseFlatCString(aCString).get(); * SomeOSFunction(buffer); // BAD!! |buffer| is a dangling pointer * * The only way to make one is with the function |PromiseFlat[C]String|, * which produce a |const| instance. ``What if I need to keep a promise * around for a little while?'' you might ask. In that case, you can keep a * reference, like so * * const nsPromiseFlatString& flat = PromiseFlatString(aString); * // this reference holds the anonymous temporary alive, but remember, * // it must _still_ have a lifetime shorter than that of |aString| * * SomeOSFunction(flat.get()); * SomeOtherOSFunction(flat.get()); * * * How does it work? * * A |nsPromiseFlat[C]String| is just a wrapper for another string. If you * apply it to a string that happens to be flat, your promise is just a * dependent reference to the string's data. If you apply it to a non-flat * string, then a temporary flat string is created for you, by allocating and * copying. In the event that you end up assigning the result into a sharing * string (e.g., |nsTString|), the right thing happens. */ class nsPromiseFlatCString : public nsCString { public: typedef nsPromiseFlatCString self_type; private: void Init( const substring_type& ); // NOT TO BE IMPLEMENTED void operator=( const self_type& ); // NOT TO BE IMPLEMENTED nsPromiseFlatCString(); public: explicit nsPromiseFlatCString( const substring_type& str ) : string_type() { Init(str); } explicit nsPromiseFlatCString( const substring_tuple_type& tuple ) : string_type() { // nothing else to do here except assign the value of the tuple // into ourselves. Assign(tuple); } }; // e.g., PromiseFlatCString(Substring(s)) inline const nsPromiseFlatCString PromiseFlatCString( const nsACString_internal& frag ) { return nsPromiseFlatCString(frag); } // e.g., PromiseFlatCString(a + b) inline const nsPromiseFlatCString PromiseFlatCString( const nsCSubstringTuple& tuple ) { return nsPromiseFlatCString(tuple); } #line 54 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsPromiseFlatString.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\string-template-undef.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 55 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsPromiseFlatString.h" #line 57 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsPromiseFlatString.h" #line 209 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsString.h" #line 210 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsString.h" // need to include these for backwards compatibility #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsMemory.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXPCOM.h" /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Benjamin Smedberg * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 42 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsMemory.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIMemory.h" /* * DO NOT EDIT. THIS FILE IS GENERATED FROM c:/build/hg.instantbird.org/mozilla/xpcom/base/nsIMemory.idl */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupports.h" /* * DO NOT EDIT. THIS FILE IS GENERATED FROM c:/build/hg.instantbird.org/mozilla/xpcom/base/nsISupports.idl */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsrootidl.h" /* * DO NOT EDIT. THIS FILE IS GENERATED FROM c:/build/hg.instantbird.org/mozilla/xpcom/base/nsrootidl.idl */ /* For IDL files that don't want to include root IDL files. */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 12 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsrootidl.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtime.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* *---------------------------------------------------------------------- * * prtime.h -- * * NSPR date and time functions * *----------------------------------------------------------------------- */ #line 13 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsrootidl.h" /* * Forward declarations for new string types */ class nsAString_internal; class nsACString_internal; /* * Start commenting out the C++ versions of the below in the output header */ #line 55 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsrootidl.h" #line 57 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsrootidl.h" #line 11 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupports.h" #line 12 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupports.h" /* For IDL files that don't want to include root IDL files. */ /* * Start commenting out the C++ versions of the below in the output header */ #line 122 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupports.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupportsBase.h" /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is XPCOM. * * The Initial Developer of the Original Code is Netscape Communications Corp. * Portions created by the Initial Developer are Copyright (C) 2001 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 123 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupports.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupportsUtils.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Pierre Phaneuf * Scott Collins * Dan Mosedale * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 124 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupports.h" #line 126 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupports.h" #line 11 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIMemory.h" #line 12 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIMemory.h" /* For IDL files that don't want to include root IDL files. */ /* starting interface: nsIMemory */ /** * * nsIMemory: interface to allocate and deallocate memory. Also provides * for notifications in low-memory situations. * * The frozen exported symbols NS_Alloc, NS_Realloc, and NS_Free * provide a more efficient way to access XPCOM memory allocation. Using * those symbols is preferred to using the methods on this interface. * * A client that wishes to be notified of low memory situations (for * example, because the client maintains a large memory cache that * could be released when memory is tight) should register with the * observer service (see nsIObserverService) using the topic * "memory-pressure". There are three specific types of notications * that can occur. These types will be passed as the |aData| * parameter of the of the "memory-pressure" notification: * * "low-memory" * This will be passed as the extra data when the pressure * observer is being asked to flush for low-memory conditions. * * "heap-minimize" * This will be passed as the extra data when the pressure * observer is being asked to flush because of a heap minimize * call. * * "alloc-failure" * This will be passed as the extra data when the pressure * observer has been asked to flush because a malloc() or * realloc() has failed. */ class __declspec(novtable) nsIMemory : public nsISupports { public: template struct COMTypeInfo { static const nsIID kIID ; }; static const nsIID& GetIID() {return COMTypeInfo::kIID;} /** * Allocates a block of memory of a particular size. If the memory * cannot be allocated (because of an out-of-memory condition), null * is returned. * * @param size - the size of the block to allocate * @result the block of memory */ /* [noscript, notxpcom] voidPtr alloc (in size_t size); */ virtual void * __stdcall Alloc(size_t size) = 0; /** * Reallocates a block of memory to a new size. * * @param ptr - the block of memory to reallocate * @param size - the new size * @result the reallocated block of memory * * If ptr is null, this function behaves like malloc. * If s is the size of the block to which ptr points, the first * min(s, size) bytes of ptr's block are copied to the new block. * If the allocation succeeds, ptr is freed and a pointer to the * new block returned. If the allocation fails, ptr is not freed * and null is returned. The returned value may be the same as ptr. */ /* [noscript, notxpcom] voidPtr realloc (in voidPtr ptr, in size_t newSize); */ virtual void * __stdcall Realloc(void *ptr, size_t newSize) = 0; /** * Frees a block of memory. Null is a permissible value, in which case * nothing happens. * * @param ptr - the block of memory to free */ /* [noscript, notxpcom] void free (in voidPtr ptr); */ virtual void __stdcall Free(void *ptr) = 0; /** * Attempts to shrink the heap. * @param immediate - if true, heap minimization will occur * immediately if the call was made on the main thread. If * false, the flush will be scheduled to happen when the app is * idle. * @return NS_ERROR_FAILURE if 'immediate' is set an the call * was not on the application's main thread. */ /* void heapMinimize (in boolean immediate); */ virtual nsresult __stdcall HeapMinimize(PRBool immediate) = 0; /** * This predicate can be used to determine if we're in a low-memory * situation (what constitutes low-memory is platform dependent). This * can be used to trigger the memory pressure observers. * * DEPRECATED - Always returns false. See bug 592308. */ /* boolean isLowMemory (); */ virtual nsresult __stdcall IsLowMemory(PRBool *_retval ) = 0; }; template const nsIID nsIMemory::COMTypeInfo::kIID = {0x59e7e77a, 0x38e4, 0x11d4, { 0x8c, 0xf5, 0x00, 0x60, 0xb0, 0xfc, 0x14, 0xa3 }}; /* Use this macro when declaring classes that implement this interface. */ /* Use this macro to declare functions that forward the behavior of this interface to another object. */ /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */ #line 212 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIMemory.h" #line 215 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIMemory.h" #line 43 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsMemory.h" /** * Static helper routines to manage memory. These routines allow easy access * to xpcom's built-in (global) nsIMemory implementation, without needing * to go through the service manager to get it. However this requires clients * to link with the xpcom DLL. * * This class is not threadsafe and is intented for use only on the main * thread. */ class nsMemory { public: static void* Alloc(size_t size) { return NS_Alloc_P(size); } static void* Realloc(void* ptr, PRSize size) { return NS_Realloc_P(ptr, size); } static void Free(void* ptr) { NS_Free_P(ptr); } static nsresult HeapMinimize(PRBool aImmediate); static void* Clone(const void* ptr, PRSize size); static nsIMemory* GetGlobalMemoryService(); // AddRefs }; /** * Macro to free all elements of an XPCOM array of a given size using * freeFunc, then frees the array itself using nsMemory::Free(). * * Note that this macro (and its wrappers) can be used to deallocate a * partially- or completely-built array while unwinding an error * condition inside the XPCOM routine that was going to return the * array. For this to work on a partially-built array, your code * needs to be building the array from index 0 upwards, and simply * pass the number of elements that have already been built (and thus * need to be freed) as |size|. * * Thanks to for suggesting this form, which * allows the macro to be used with NS_RELEASE / NS_RELEASE_IF in * addition to nsMemory::Free. * * @param size Number of elements in the array. If not a constant, this * should be a PRInt32. Note that this means this macro * will not work if size >= 2^31. * @param array The array to be freed. * @param freeFunc The function or macro to be used to free it. * For arrays of nsISupports (or any class derived * from it), NS_IF_RELEASE (or NS_RELEASE) should be * passed as freeFunc. For most (all?) other pointer * types (including XPCOM strings and wstrings), * nsMemory::Free should be used, since the * shared-allocator (nsMemory) is what will have been * used to allocate the memory. */ // convenience macros for commonly used calls. mmmmm. syntactic sugar. /** * Macro to free arrays of non-refcounted objects allocated by the * shared allocator (nsMemory) such as strings and wstrings. A * convenience wrapper around NS_FREE_XPCOM_POINTER_ARRAY. * * @param size Number of elements in the array. If not a constant, this * should be a PRInt32. Note that this means this macro * will not work if size >= 2^31. * @param array The array to be freed. */ /** * Macro to free an array of pointers to nsISupports (or classes * derived from it). A convenience wrapper around * NS_FREE_XPCOM_POINTER_ARRAY. * * Note that if you know that none of your nsISupports pointers are * going to be 0, you can gain a bit of speed by calling * NS_FREE_XPCOM_POINTER_ARRAY directly and using NS_RELEASE as your * free function. * * @param size Number of elements in the array. If not a constant, this * should be a PRInt32. Note that this means this macro * will not work if size >= 2^31. * @param array The array to be freed. */ /** * Helpful array length function for calculating the length of a * statically declared array. */ /** * A macro, NS_ALIGNMENT_OF(t_) that determines the alignment * requirements of a type. */ namespace mozilla { template struct AlignmentTestStruct { char c; T t; }; } /** * An enumeration type used to represent a method of assignment. */ enum nsAssignmentType { NS_ASSIGNMENT_COPY, // copy by value NS_ASSIGNMENT_DEPEND, // copy by reference NS_ASSIGNMENT_ADOPT // copy by reference (take ownership of resource) }; #line 185 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsMemory.h" #line 213 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsString.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\plhash.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* * API to portable hash table code. */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* ** File: prtypes.h ** Description: Definitions of NSPR's basic types ** ** Prototypes and macros used to make up for deficiencies that we have found ** in ANSI environments. ** ** Since we do not wrap and all the other standard headers, authors ** of portable code will not know in general that they need these definitions. ** Instead of requiring these authors to find the dependent uses in their code ** and take the following steps only in those C files, we take steps once here ** for all C files. **/ #line 45 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\plhash.h" extern "C" { typedef struct PLHashEntry PLHashEntry; typedef struct PLHashTable PLHashTable; typedef PRUint32 PLHashNumber; typedef PLHashNumber ( *PLHashFunction)(const void *key); typedef PRIntn ( *PLHashComparator)(const void *v1, const void *v2); typedef PRIntn ( *PLHashEnumerator)(PLHashEntry *he, PRIntn i, void *arg); /* Flag bits in PLHashEnumerator's return value */ typedef struct PLHashAllocOps { void * ( *allocTable)(void *pool, PRSize size); void ( *freeTable)(void *pool, void *item); PLHashEntry * ( *allocEntry)(void *pool, const void *key); void ( *freeEntry)(void *pool, PLHashEntry *he, PRUintn flag); } PLHashAllocOps; struct PLHashEntry { PLHashEntry *next; /* hash chain linkage */ PLHashNumber keyHash; /* key hash function result */ const void *key; /* ptr to opaque key */ void *value; /* ptr to opaque value */ }; struct PLHashTable { PLHashEntry **buckets; /* vector of hash buckets */ PRUint32 nentries; /* number of entries in table */ PRUint32 shift; /* multiplicative hash shift */ PLHashFunction keyHash; /* key hash function */ PLHashComparator keyCompare; /* key comparison function */ PLHashComparator valueCompare; /* value comparison function */ const PLHashAllocOps *allocOps; /* allocation operations */ void *allocPriv; /* allocation private data */ }; /* * Create a new hash table. * If allocOps is null, use default allocator ops built on top of malloc(). */ extern __declspec(dllexport) PLHashTable * PL_NewHashTable(PRUint32 numBuckets, PLHashFunction keyHash, PLHashComparator keyCompare, PLHashComparator valueCompare, const PLHashAllocOps *allocOps, void *allocPriv); extern __declspec(dllexport) void PL_HashTableDestroy(PLHashTable *ht); /* Higher level access methods */ extern __declspec(dllexport) PLHashEntry * PL_HashTableAdd(PLHashTable *ht, const void *key, void *value); extern __declspec(dllexport) PRBool PL_HashTableRemove(PLHashTable *ht, const void *key); extern __declspec(dllexport) void * PL_HashTableLookup(PLHashTable *ht, const void *key); extern __declspec(dllexport) void * PL_HashTableLookupConst(PLHashTable *ht, const void *key); extern __declspec(dllexport) PRIntn PL_HashTableEnumerateEntries(PLHashTable *ht, PLHashEnumerator f, void *arg); /* General-purpose C string hash function. */ extern __declspec(dllexport) PLHashNumber PL_HashString(const void *key); /* Compare strings using strcmp(), return true if equal. */ extern __declspec(dllexport) PRIntn PL_CompareStrings(const void *v1, const void *v2); /* Stub function just returns v1 == v2 */ extern __declspec(dllexport) PRIntn PL_CompareValues(const void *v1, const void *v2); /* Low level access methods */ extern __declspec(dllexport) PLHashEntry ** PL_HashTableRawLookup(PLHashTable *ht, PLHashNumber keyHash, const void *key); extern __declspec(dllexport) PLHashEntry ** PL_HashTableRawLookupConst(PLHashTable *ht, PLHashNumber keyHash, const void *key); extern __declspec(dllexport) PLHashEntry * PL_HashTableRawAdd(PLHashTable *ht, PLHashEntry **hep, PLHashNumber keyHash, const void *key, void *value); extern __declspec(dllexport) void PL_HashTableRawRemove(PLHashTable *ht, PLHashEntry **hep, PLHashEntry *he); /* This can be trivially implemented using PL_HashTableEnumerateEntries. */ extern __declspec(dllexport) PRIntn PL_HashTableDump(PLHashTable *ht, PLHashEnumerator dump, FILE *fp); } #line 159 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\plhash.h" #line 216 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsString.h" inline PRInt32 MinInt(PRInt32 x, PRInt32 y) { return NS_MIN(x, y); } inline PRInt32 MaxInt(PRInt32 x, PRInt32 y) { return NS_MAX(x, y); } /** * Deprecated: don't use |Recycle|, just call |nsMemory::Free| directly * * Return the given buffer to the heap manager. Calls allocator::Free() */ inline void Recycle( char* aBuffer) { nsMemory::Free(aBuffer); } inline void Recycle( PRUnichar* aBuffer) { nsMemory::Free(aBuffer); } #line 236 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsString.h" #line 43 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsPrintfCString.h" #line 44 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsPrintfCString.h" /** * |nsPrintfCString| lets you use a formated |printf| string as an |const nsACString|. * * myCStr += nsPrintfCString("%f", 13.917); * // ...a general purpose substitute for |AppendFloat| * * For longer patterns, you'll want to use the constructor that takes a length * * nsPrintfCString(128, "%f, %f, %f, %f, %f, %f, %f, %i, %f", x, y, z, 3.2, j, k, l, 3, 3.1); * * Exceding the default size (which you must specify in the constructor, it is not determined) * causes an allocation, so avoid that. If your formatted string exceeds the allocated space, it is * cut off at the size of the buffer, no error is reported (and no out-of-bounds writing occurs). * This class is intended to be useful for numbers and short * strings, not arbitrary formatting of other strings (e.g., with %s). There is currently no * wide version of this class, since wide |printf| is not generally available. That means * to get a wide version of your formatted data, you must, e.g., * * CopyASCIItoUTF16(nsPrintfCString("%f", 13.917"), myStr); * * That's another good reason to avoid this class for anything but numbers ... as strings can be * much more efficiently handled with |NS_LITERAL_[C]STRING| and |nsLiteral[C]String|. */ class nsPrintfCString : public nsCString { typedef nsCString string_type; enum { kLocalBufferSize=15 }; // ought to be large enough for most things ... a |long long| needs at most 20 (so you'd better ask) // pinkerton suggests 7. We should measure and decide what's appropriate public: // XXX don't these need to be declared CDECL ?? explicit nsPrintfCString( const char_type* format, ... ); nsPrintfCString( size_type n, const char_type* format, ...); private: char_type mLocalBuffer[ kLocalBufferSize + 1 ]; }; #line 88 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsPrintfCString.h" #line 43 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxColor.h" #line 44 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxColor.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxTypes.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 46 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxColor.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prbit.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* ** File: prtypes.h ** Description: Definitions of NSPR's basic types ** ** Prototypes and macros used to make up for deficiencies that we have found ** in ANSI environments. ** ** Since we do not wrap and all the other standard headers, authors ** of portable code will not know in general that they need these definitions. ** Instead of requiring these authors to find the dependent uses in their code ** and take the following steps only in those C files, we take steps once here ** for all C files. **/ #line 42 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prbit.h" extern "C" { /* replace compare/jump/add/shift sequence with x86 BSF/BSR instruction */ unsigned char _BitScanForward(unsigned long * Index, unsigned long Mask); unsigned char _BitScanReverse(unsigned long * Index, unsigned long Mask); #pragma intrinsic(_BitScanForward,_BitScanReverse) __forceinline static int __prBitScanForward32(unsigned int val) { unsigned long idx; _BitScanForward(&idx, (unsigned long)val); return( (int)idx ); } __forceinline static int __prBitScanReverse32(unsigned int val) { unsigned long idx; _BitScanReverse(&idx, (unsigned long)val); return( (int)(31-idx) ); } #line 70 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prbit.h" /* ** A prbitmap_t is a long integer that can be used for bitmaps */ typedef unsigned long prbitmap_t; /* ** Compute the log of the least power of 2 greater than or equal to n */ __declspec(dllimport) PRIntn PR_CeilingLog2(PRUint32 i); /* ** Compute the log of the greatest power of 2 less than or equal to n */ __declspec(dllimport) PRIntn PR_FloorLog2(PRUint32 i); /* ** Macro version of PR_CeilingLog2: Compute the log of the least power of ** 2 greater than or equal to _n. The result is returned in _log2. */ #line 122 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prbit.h" /* ** Macro version of PR_FloorLog2: Compute the log of the greatest power of ** 2 less than or equal to _n. The result is returned in _log2. ** ** This is equivalent to finding the highest set bit in the word. */ #line 152 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prbit.h" /* ** Macros for rotate left and right. The argument 'a' must be an unsigned ** 32-bit integer type such as PRUint32. ** ** There is no rotate operation in the C Language, so the construct ** (a << 4) | (a >> 28) is frequently used instead. Most compilers convert ** this to a rotate instruction, but MSVC doesn't without a little help. ** To get MSVC to generate a rotate instruction, we have to use the _rotl ** or _rotr intrinsic and use a pragma to make it inline. ** ** Note: MSVC in VS2005 will do an inline rotate instruction on the above ** construct. */ #pragma intrinsic(_rotl, _rotr) #line 177 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prbit.h" } #line 180 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prbit.h" #line 48 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxColor.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prio.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* * File: prio.h * * Description: PR i/o related stuff, such as file system access, file * i/o, socket i/o, etc. */ #line 49 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxColor.h" #line 56 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxColor.h" #pragma intrinsic(_byteswap_ulong) #line 67 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxColor.h" #line 71 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxColor.h" /** * GFX_0XFF_PPIXEL_FROM_BPTR(x) * * Avoid tortured construction of 32-bit ARGB pixel from 3 individual bytes * of memory plus constant 0xFF. RGB bytes are already contiguous! * Equivalent to: GFX_PACKED_PIXEL(0xff,r,g,b) * * Attempt to use fast byte-swapping instruction(s), e.g. bswap on x86, in * preference to a sequence of shift/or operations. */ #line 90 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxColor.h" /** * GFX_BLOCK_RGB_TO_FRGB(from,to) * sizeof(*from) == sizeof(char) * sizeof(*to) == sizeof(PRUint32) * * Copy 4 pixels at a time, reading blocks of 12 bytes (RGB x4) * and writing blocks of 16 bytes (FRGB x4) */ /** * Fast approximate division by 255. It has the property that * for all 0 <= n <= 255*255, GFX_DIVIDE_BY_255(n) == n/255. * But it only uses two adds and two shifts instead of an * integer division (which is expensive on many processors). * * equivalent to ((v)/255) */ /** * Fast premultiply macro * * equivalent to (((c)*(a))/255) */ /** * Macro to pack the 4 8-bit channels (A,R,G,B) * into a 32-bit packed premultiplied pixel. * * The checks for 0 alpha or max alpha ensure that the * compiler selects the quicked calculation when alpha is constant. */ /** * A color value, storing red, green, blue and alpha components. * This class does not use premultiplied alpha. * * XXX should this use doubles (instead of gfxFloat), for consistency with * cairo? */ struct __declspec(dllexport) gfxRGBA { gfxFloat r, g, b, a; enum PackedColorType { PACKED_ABGR, PACKED_ABGR_PREMULTIPLIED, PACKED_ARGB, PACKED_ARGB_PREMULTIPLIED, PACKED_XBGR, PACKED_XRGB }; gfxRGBA() { } gfxRGBA(const gfxRGBA& c) : r(c.r), g(c.g), b(c.b), a(c.a) {} /** * Intialize this color using explicit red, green, blue and alpha * values. */ gfxRGBA(gfxFloat _r, gfxFloat _g, gfxFloat _b, gfxFloat _a=1.0) : r(_r), g(_g), b(_b), a(_a) {} /** * Initialize this color from a packed 32-bit color. * The color value is interpreted based on colorType; * all values use the native platform endianness. * * @see gfxRGBA::Packed */ gfxRGBA(PRUint32 c, PackedColorType colorType = PACKED_ABGR) { if (colorType == PACKED_ABGR || colorType == PACKED_XBGR || colorType == PACKED_ABGR_PREMULTIPLIED) { r = ((c >> 0) & 0xff) * (1.0 / 255.0); g = ((c >> 8) & 0xff) * (1.0 / 255.0); b = ((c >> 16) & 0xff) * (1.0 / 255.0); a = ((c >> 24) & 0xff) * (1.0 / 255.0); } else if (colorType == PACKED_ARGB || colorType == PACKED_XRGB || colorType == PACKED_ARGB_PREMULTIPLIED) { b = ((c >> 0) & 0xff) * (1.0 / 255.0); g = ((c >> 8) & 0xff) * (1.0 / 255.0); r = ((c >> 16) & 0xff) * (1.0 / 255.0); a = ((c >> 24) & 0xff) * (1.0 / 255.0); } if (colorType == PACKED_ABGR_PREMULTIPLIED || colorType == PACKED_ARGB_PREMULTIPLIED) { if (a > 0.0) { r /= a; g /= a; b /= a; } } else if (colorType == PACKED_XBGR || colorType == PACKED_XRGB) { a = 1.0; } } /** * Initialize this color by parsing the given string. * XXX implement me! */ #line 234 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxColor.h" bool operator==(const gfxRGBA& other) const { return r == other.r && g == other.g && b == other.b && a == other.a; } /** * Returns this color value as a packed 32-bit integer. This reconstructs * the int32 based on the given colorType, always in the native byte order. * * Note: gcc 4.2.3 on at least Ubuntu (x86) does something strange with * (PRUint8)(c * 255.0) << x, where the result is different than * double d = c * 255.0; v = ((PRUint8) d) << x. */ PRUint32 Packed(PackedColorType colorType = PACKED_ABGR) const { gfxFloat rb = (r * 255.0); gfxFloat gb = (g * 255.0); gfxFloat bb = (b * 255.0); gfxFloat ab = (a * 255.0); if (colorType == PACKED_ABGR || colorType == PACKED_XBGR) { return (PRUint8(ab) << 24) | (PRUint8(bb) << 16) | (PRUint8(gb) << 8) | (PRUint8(rb) << 0); } else if (colorType == PACKED_ARGB || colorType == PACKED_XRGB) { return (PRUint8(ab) << 24) | (PRUint8(rb) << 16) | (PRUint8(gb) << 8) | (PRUint8(bb) << 0); } rb = (r*a) * 255.0; gb = (g*a) * 255.0; bb = (b*a) * 255.0; if (colorType == PACKED_ABGR_PREMULTIPLIED) { return (((PRUint8)(ab) << 24) | ((PRUint8)(bb) << 16) | ((PRUint8)(gb) << 8) | ((PRUint8)(rb) << 0)); } else if (colorType == PACKED_ARGB_PREMULTIPLIED) { return (((PRUint8)(ab) << 24) | ((PRUint8)(rb) << 16) | ((PRUint8)(gb) << 8) | ((PRUint8)(bb) << 0)); } return 0; } /** * Convert this color to a hex value. For example, for rgb(255,0,0), * this will return FF0000. */ // XXX I'd really prefer to just have this return an nsACString // Does this function even make sense, since we're just ignoring the alpha value? void Hex(nsACString_internal& result) const { nsPrintfCString hex(8, "%02x%02x%02x", PRUint8(r*255.0), PRUint8(g*255.0), PRUint8(b*255.0)); result.Assign(hex); } #line 297 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxColor.h" }; #line 301 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxColor.h" #line 50 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\Layers.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxPattern.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxTypes.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 42 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxPattern.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxColor.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 44 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxPattern.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxMatrix.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 45 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxPattern.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupportsImpl.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is XPCOM. * * The Initial Developer of the Original Code is Netscape Communications Corp. * Portions created by the Initial Developer are Copyright (C) 2001 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 46 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxPattern.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAutoPtr.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Scott Collins (original author of nsCOMPtr) * L. David Baron * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 47 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxPattern.h" class gfxContext; class gfxASurface; typedef struct _cairo_pattern cairo_pattern_t; class __declspec(dllexport) gfxPattern { public: void AddRef(void) { do { if (!(PRInt32(mRefCnt) >= 0)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "illegal refcnt", "PRInt32(mRefCnt) >= 0", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxPattern.h", 54); } } while (0); do { if (NS_IsCycleCollectorThread_P()) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Changing refcount of " "gfxPattern" " object during Traverse is " "not permitted!", "Error", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxPattern.h", 54); } else { do { if (!(_mOwningThread.GetThread() == PR_GetCurrentThread())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "gfxPattern" " not thread-safe", "_mOwningThread.GetThread() == PR_GetCurrentThread()", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxPattern.h", 54); } } while (0); } } while (0); ++mRefCnt; NS_LogAddRef_P((this), (mRefCnt), ("gfxPattern"), (PRUint32) (sizeof(*this))); } void Release(void) { do { if (!(0 != mRefCnt)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "dup release", "0 != mRefCnt", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxPattern.h", 54); } } while (0); do { if (NS_IsCycleCollectorThread_P()) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Changing refcount of " "gfxPattern" " object during Traverse is " "not permitted!", "Error", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxPattern.h", 54); } else { do { if (!(_mOwningThread.GetThread() == PR_GetCurrentThread())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "gfxPattern" " not thread-safe", "_mOwningThread.GetThread() == PR_GetCurrentThread()", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxPattern.h", 54); } } while (0); } } while (0); --mRefCnt; NS_LogRelease_P((this), (mRefCnt), ("gfxPattern")); if (mRefCnt == 0) { do { if (!(_mOwningThread.GetThread() == PR_GetCurrentThread())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "gfxPattern" " not thread-safe", "_mOwningThread.GetThread() == PR_GetCurrentThread()", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxPattern.h", 54); } } while (0); mRefCnt = 1; delete this; } } protected: nsAutoRefCnt mRefCnt; nsAutoOwningThread _mOwningThread; public: public: gfxPattern(cairo_pattern_t *aPattern); gfxPattern(const gfxRGBA& aColor); gfxPattern(gfxASurface *surface); // from another surface // linear gfxPattern(gfxFloat x0, gfxFloat y0, gfxFloat x1, gfxFloat y1); // linear gfxPattern(gfxFloat cx0, gfxFloat cy0, gfxFloat radius0, gfxFloat cx1, gfxFloat cy1, gfxFloat radius1); // radial virtual ~gfxPattern(); cairo_pattern_t *CairoPattern(); void AddColorStop(gfxFloat offset, const gfxRGBA& c); void SetMatrix(const gfxMatrix& matrix); gfxMatrix GetMatrix() const; enum GraphicsExtend { EXTEND_NONE, EXTEND_REPEAT, EXTEND_REFLECT, EXTEND_PAD, // Our own private flag for setting either NONE or PAD, // depending on what the platform does for NONE. This is only // relevant for surface patterns; for all other patterns, it // behaves identical to PAD. On MacOS X, this becomes "NONE", // because Quartz does the thing that we want at image edges; // similarily on the win32 printing surface, since // everything's done with GDI there. On other platforms, it // usually becomes PAD. EXTEND_PAD_EDGE = 1000 }; // none, repeat, reflect void SetExtend(GraphicsExtend extend); GraphicsExtend Extend() const; enum GraphicsPatternType { PATTERN_SOLID, PATTERN_SURFACE, PATTERN_LINEAR, PATTERN_RADIAL }; GraphicsPatternType GetType() const; int CairoStatus(); enum GraphicsFilter { FILTER_FAST, FILTER_GOOD, FILTER_BEST, FILTER_NEAREST, FILTER_BILINEAR, FILTER_GAUSSIAN }; void SetFilter(GraphicsFilter filter); GraphicsFilter Filter() const; /* returns TRUE if it succeeded */ PRBool GetSolidColor(gfxRGBA& aColor); already_AddRefed GetSurface(); protected: cairo_pattern_t *mPattern; }; #line 126 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxPattern.h" #line 51 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\Layers.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prlog.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* ** File: prtypes.h ** Description: Definitions of NSPR's basic types ** ** Prototypes and macros used to make up for deficiencies that we have found ** in ANSI environments. ** ** Since we do not wrap and all the other standard headers, authors ** of portable code will not know in general that they need these definitions. ** Instead of requiring these authors to find the dependent uses in their code ** and take the following steps only in those C files, we take steps once here ** for all C files. **/ #line 42 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prlog.h" extern "C" { /* ** prlog.h -- Declare interfaces to NSPR's Logging service ** ** NSPR provides a logging service that is used by NSPR itself and is ** available to client programs. ** ** To use the service from a client program, you should create a ** PRLogModuleInfo structure by calling PR_NewLogModule(). After ** creating the LogModule, you can write to the log using the PR_LOG() ** macro. ** ** Initialization of the log service is handled by NSPR initialization. ** ** At execution time, you must enable the log service. To enable the ** log service, set the environment variable: NSPR_LOG_MODULES ** variable. ** ** NSPR_LOG_MODULES variable has the form: ** ** :[, :]* ** ** Where: ** is the name passed to PR_NewLogModule(). ** is a numeric constant, e.g. 5. This value is the maximum ** value of a log event, enumerated by PRLogModuleLevel, that you want ** written to the log. ** ** For example: to record all events of greater value than or equal to ** PR_LOG_ERROR for a LogModule names "gizmo", say: ** ** set NSPR_LOG_MODULES=gizmo:2 ** ** Note that you must specify the numeric value of PR_LOG_ERROR. ** ** Special LogModule names are provided for controlling NSPR's log ** service at execution time. These controls should be set in the ** NSPR_LOG_MODULES environment variable at execution time to affect ** NSPR's log service for your application. ** ** The special LogModule "all" enables all LogModules. To enable all ** LogModule calls to PR_LOG(), say: ** ** set NSPR_LOG_MODULES=all:5 ** ** The special LogModule name "sync" tells the NSPR log service to do ** unbuffered logging. ** ** The special LogModule name "bufsize:" tells NSPR to set the ** log buffer to . ** ** The environment variable NSPR_LOG_FILE specifies the log file to use ** unless the default of "stderr" is acceptable. For MS Windows ** systems, NSPR_LOG_FILE can be set to a special value: "WinDebug" ** (case sensitive). This value causes PR_LOG() output to be written ** using the Windows API OutputDebugString(). OutputDebugString() ** writes to the debugger window; some people find this helpful. ** ** ** To put log messages in your programs, use the PR_LOG macro: ** ** PR_LOG(, , (, *)); ** ** Where is the address of a PRLogModuleInfo structure, and ** is one of the levels defined by the enumeration: ** PRLogModuleLevel. is a printf() style of argument list. That ** is: (fmtstring, ...). ** ** Example: ** ** main() { ** PRIntn one = 1; ** PRLogModuleInfo * myLm = PR_NewLogModule("gizmo"); ** PR_LOG( myLm, PR_LOG_ALWAYS, ("Log this! %d\n", one)); ** return; ** } ** ** Note the use of printf() style arguments as the third agrument(s) to ** PR_LOG(). ** ** After compiling and linking you application, set the environment: ** ** set NSPR_LOG_MODULES=gizmo:5 ** set NSPR_LOG_FILE=logfile.txt ** ** When you execute your application, the string "Log this! 1" will be ** written to the file "logfile.txt". ** ** Note to NSPR engineers: a number of PRLogModuleInfo structures are ** defined and initialized in prinit.c. See this module for ideas on ** what to log where. ** */ typedef enum PRLogModuleLevel { PR_LOG_NONE = 0, /* nothing */ PR_LOG_ALWAYS = 1, /* always printed */ PR_LOG_ERROR = 2, /* error messages */ PR_LOG_WARNING = 3, /* warning messages */ PR_LOG_DEBUG = 4, /* debug messages */ PR_LOG_NOTICE = PR_LOG_DEBUG, /* notice messages */ PR_LOG_WARN = PR_LOG_WARNING, /* warning messages */ PR_LOG_MIN = PR_LOG_DEBUG, /* minimal debugging messages */ PR_LOG_MAX = PR_LOG_DEBUG /* maximal debugging messages */ } PRLogModuleLevel; /* ** One of these structures is created for each module that uses logging. ** "name" is the name of the module ** "level" is the debugging level selected for that module */ typedef struct PRLogModuleInfo { const char *name; PRLogModuleLevel level; struct PRLogModuleInfo *next; } PRLogModuleInfo; /* ** Create a new log module. */ __declspec(dllimport) PRLogModuleInfo* PR_NewLogModule(const char *name); /* ** Set the file to use for logging. Returns PR_FALSE if the file cannot ** be created */ __declspec(dllimport) PRBool PR_SetLogFile(const char *name); /* ** Set the size of the logging buffer. If "buffer_size" is zero then the ** logging becomes "synchronous" (or unbuffered). */ __declspec(dllimport) void PR_SetLogBuffering(PRIntn buffer_size); /* ** Print a string to the log. "fmt" is a PR_snprintf format type. All ** messages printed to the log are preceeded by the name of the thread ** and a time stamp. Also, the routine provides a missing newline if one ** is not provided. */ __declspec(dllimport) void PR_LogPrint(const char *fmt, ...); /* ** Flush the log to its file. */ __declspec(dllimport) void PR_LogFlush(void); __declspec(dllimport) void PR_Assert(const char *s, const char *file, PRIntn ln); /* ** Log something. ** "module" is the address of a PRLogModuleInfo structure ** "level" is the desired logging level ** "args" is a variable length list of arguments to print, in the following ** format: ("printf style format string", ...) */ #line 221 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prlog.h" #line 233 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prlog.h" #line 235 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prlog.h" #line 250 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prlog.h" } #line 254 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prlog.h" #line 55 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\Layers.h" #line 62 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\Layers.h" class gfxContext; class nsPaintEvent; namespace mozilla { namespace gl { class GLContext; } namespace layers { class Layer; class ThebesLayer; class ContainerLayer; class ImageLayer; class ColorLayer; class ImageContainer; class CanvasLayer; class ShadowLayer; class SpecificLayerAttributes; /** * The viewport and displayport metrics for the painted frame at the * time of a layer-tree transaction. These metrics are especially * useful for shadow layers, because the metrics values are updated * atomically with new pixels. */ struct FrameMetrics { FrameMetrics() : mViewportSize(0, 0) , mViewportScrollOffset(0, 0) {} // Default copy ctor and operator= are fine PRBool operator==(const FrameMetrics& aOther) const { return (mViewportSize == aOther.mViewportSize && mViewportScrollOffset == aOther.mViewportScrollOffset && mDisplayPort == aOther.mDisplayPort); } PRBool IsDefault() const { return (FrameMetrics() == *this); } nsIntSize mViewportSize; nsIntPoint mViewportScrollOffset; nsIntRect mDisplayPort; }; /** * Base class for userdata objects attached to layers and layer managers. */ class __declspec(dllexport) LayerUserData { public: virtual ~LayerUserData() {} }; /* * Motivation: For truly smooth animation and video playback, we need to * be able to compose frames and render them on a dedicated thread (i.e. * off the main thread where DOM manipulation, script execution and layout * induce difficult-to-bound latency). This requires Gecko to construct * some kind of persistent scene structure (graph or tree) that can be * safely transmitted across threads. We have other scenarios (e.g. mobile * browsing) where retaining some rendered data between paints is desired * for performance, so again we need a retained scene structure. * * Our retained scene structure is a layer tree. Each layer represents * content which can be composited onto a destination surface; the root * layer is usually composited into a window, and non-root layers are * composited into their parent layers. Layers have attributes (e.g. * opacity and clipping) that influence their compositing. * * We want to support a variety of layer implementations, including * a simple "immediate mode" implementation that doesn't retain any * rendered data between paints (i.e. uses cairo in just the way that * Gecko used it before layers were introduced). But we also don't want * to have bifurcated "layers"/"non-layers" rendering paths in Gecko. * Therefore the layers API is carefully designed to permit maximally * efficient implementation in an "immediate mode" style. See the * BasicLayerManager for such an implementation. */ /** * Helper class to manage user data for layers and LayerManagers. */ class __declspec(dllexport) LayerUserDataSet { public: LayerUserDataSet() : mKey(0L) {} void Set(void* aKey, LayerUserData* aValue) { do { if (!(!mKey || mKey == aKey)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Multiple LayerUserData objects not supported", "!mKey || mKey == aKey", "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\Layers.h", 162); } } while (0); #line 163 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\Layers.h" mKey = aKey; mValue = aValue; } /** * This can be used anytime. Ownership passes to the caller! */ LayerUserData* Remove(void* aKey) { if (mKey == aKey) { mKey = 0L; LayerUserData* d = mValue.forget(); return d; } return 0L; } /** * This getter can be used anytime. */ PRBool Has(void* aKey) { return mKey == aKey; } /** * This getter can be used anytime. Ownership is retained by this object. */ LayerUserData* Get(void* aKey) { return mKey == aKey ? mValue.get() : 0L; } /** * Clear out current user data. */ void Clear() { mKey = 0L; mValue = 0L; } private: void* mKey; nsAutoPtr mValue; }; /** * A LayerManager controls a tree of layers. All layers in the tree * must use the same LayerManager. * * All modifications to a layer tree must happen inside a transaction. * Only the state of the layer tree at the end of a transaction is * rendered. Transactions cannot be nested * * Each transaction has two phases: * 1) Construction: layers are created, inserted, removed and have * properties set on them in this phase. * BeginTransaction and BeginTransactionWithTarget start a transaction in * the Construction phase. When the client has finished constructing the layer * tree, it should call EndConstruction() to enter the drawing phase. * 2) Drawing: ThebesLayers are rendered into in this phase, in tree * order. When the client has finished drawing into the ThebesLayers, it should * call EndTransaction to complete the transaction. * * All layer API calls happen on the main thread. * * Layers are refcounted. The layer manager holds a reference to the * root layer, and each container layer holds a reference to its children. */ class __declspec(dllexport) LayerManager { public: void AddRef(void) { do { if (!(PRInt32(mRefCnt) >= 0)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "illegal refcnt", "PRInt32(mRefCnt) >= 0", "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\Layers.h", 231); } } while (0); do { if (NS_IsCycleCollectorThread_P()) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Changing refcount of " "LayerManager" " object during Traverse is " "not permitted!", "Error", "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\Layers.h", 231); } else { do { if (!(_mOwningThread.GetThread() == PR_GetCurrentThread())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "LayerManager" " not thread-safe", "_mOwningThread.GetThread() == PR_GetCurrentThread()", "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\Layers.h", 231); } } while (0); } } while (0); ++mRefCnt; NS_LogAddRef_P((this), (mRefCnt), ("LayerManager"), (PRUint32) (sizeof(*this))); } void Release(void) { do { if (!(0 != mRefCnt)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "dup release", "0 != mRefCnt", "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\Layers.h", 231); } } while (0); do { if (NS_IsCycleCollectorThread_P()) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Changing refcount of " "LayerManager" " object during Traverse is " "not permitted!", "Error", "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\Layers.h", 231); } else { do { if (!(_mOwningThread.GetThread() == PR_GetCurrentThread())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "LayerManager" " not thread-safe", "_mOwningThread.GetThread() == PR_GetCurrentThread()", "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\Layers.h", 231); } } while (0); } } while (0); --mRefCnt; NS_LogRelease_P((this), (mRefCnt), ("LayerManager")); if (mRefCnt == 0) { do { if (!(_mOwningThread.GetThread() == PR_GetCurrentThread())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "LayerManager" " not thread-safe", "_mOwningThread.GetThread() == PR_GetCurrentThread()", "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\Layers.h", 231); } } while (0); mRefCnt = 1; delete this; } } protected: nsAutoRefCnt mRefCnt; nsAutoOwningThread _mOwningThread; public: public: enum LayersBackend { LAYERS_BASIC = 0, LAYERS_OPENGL, LAYERS_D3D9, LAYERS_D3D10 }; LayerManager() : mDestroyed(0), mSnapEffectiveTransforms(1) { InitLog(); } virtual ~LayerManager() {} /** * Release layers and resources held by this layer manager, and mark * it as destroyed. Should do any cleanup necessary in preparation * for its widget going away. After this call, only user data calls * are valid on the layer manager. */ virtual void Destroy() { mDestroyed = 1; mUserData.Clear(); } PRBool IsDestroyed() { return mDestroyed; } /** * Start a new transaction. Nested transactions are not allowed so * there must be no transaction currently in progress. * This transaction will update the state of the window from which * this LayerManager was obtained. */ virtual void BeginTransaction() = 0; /** * Start a new transaction. Nested transactions are not allowed so * there must be no transaction currently in progress. * This transaction will render the contents of the layer tree to * the given target context. The rendering will be complete when * EndTransaction returns. */ virtual void BeginTransactionWithTarget(gfxContext* aTarget) = 0; /** * Function called to draw the contents of each ThebesLayer. * aRegionToDraw contains the region that needs to be drawn. * This would normally be a subregion of the visible region. * The callee must draw all of aRegionToDraw. Drawing outside * aRegionToDraw will be clipped out or ignored. * The callee must draw all of aRegionToDraw. * This region is relative to 0,0 in the ThebesLayer. * * aRegionToInvalidate contains a region whose contents have been * changed by the layer manager and which must therefore be invalidated. * For example, this could be non-empty if a retained layer internally * switches from RGBA to RGB or back ... we might want to repaint it to * consistently use subpixel-AA or not. * This region is relative to 0,0 in the ThebesLayer. * aRegionToInvalidate may contain areas that are outside * aRegionToDraw; the callee must ensure that these areas are repainted * in the current layer manager transaction or in a later layer * manager transaction. * * aContext must not be used after the call has returned. * We guarantee that buffered contents in the visible * region are valid once drawing is complete. * * The origin of aContext is 0,0 in the ThebesLayer. */ typedef void (* DrawThebesLayerCallback)(ThebesLayer* aLayer, gfxContext* aContext, const nsIntRegion& aRegionToDraw, const nsIntRegion& aRegionToInvalidate, void* aCallbackData); /** * Finish the construction phase of the transaction, perform the * drawing phase, and end the transaction. * During the drawing phase, all ThebesLayers in the tree are * drawn in tree order, exactly once each, except for those layers * where it is known that the visible region is empty. */ virtual void EndTransaction(DrawThebesLayerCallback aCallback, void* aCallbackData) = 0; PRBool IsSnappingEffectiveTransforms() { return mSnapEffectiveTransforms; } /** * CONSTRUCTION PHASE ONLY * Set the root layer. */ virtual void SetRoot(Layer* aLayer) = 0; /** * Can be called anytime */ Layer* GetRoot() { return mRoot; } /** * CONSTRUCTION PHASE ONLY * Called when a managee has mutated. */ virtual void Mutated(Layer* aLayer) { } /** * CONSTRUCTION PHASE ONLY * Create a ThebesLayer for this manager's layer tree. */ virtual already_AddRefed CreateThebesLayer() = 0; /** * CONSTRUCTION PHASE ONLY * Create a ContainerLayer for this manager's layer tree. */ virtual already_AddRefed CreateContainerLayer() = 0; /** * CONSTRUCTION PHASE ONLY * Create an ImageLayer for this manager's layer tree. */ virtual already_AddRefed CreateImageLayer() = 0; /** * CONSTRUCTION PHASE ONLY * Create a ColorLayer for this manager's layer tree. */ virtual already_AddRefed CreateColorLayer() = 0; /** * CONSTRUCTION PHASE ONLY * Create a CanvasLayer for this manager's layer tree. */ virtual already_AddRefed CreateCanvasLayer() = 0; /** * Can be called anytime */ virtual already_AddRefed CreateImageContainer() = 0; /** * Type of layer manager his is. This is to be used sparsely in order to * avoid a lot of Layers backend specific code. It should be used only when * Layers backend specific functionality is necessary. */ virtual LayersBackend GetBackendType() = 0; /** * Creates a layer which is optimized for inter-operating with this layer * manager. */ virtual already_AddRefed CreateOptimalSurface(const gfxIntSize &aSize, gfxASurface::gfxImageFormat imageFormat); /** * Return the name of the layer manager's backend. */ virtual void GetBackendName(nsAString_internal& aName) = 0; /** * This setter can be used anytime. The user data for all keys is * initially null. Ownership pases to the layer manager. */ void SetUserData(void* aKey, LayerUserData* aData) { mUserData.Set(aKey, aData); } /** * This can be used anytime. Ownership passes to the caller! */ nsAutoPtr RemoveUserData(void* aKey) { nsAutoPtr d(mUserData.Remove(aKey)); return d; } /** * This getter can be used anytime. */ PRBool HasUserData(void* aKey) { return mUserData.Has(aKey); } /** * This getter can be used anytime. Ownership is retained by the layer * manager. */ LayerUserData* GetUserData(void* aKey) { return mUserData.Get(aKey); } // We always declare the following logging symbols, because it's // extremely tricky to conditionally declare them. However, for // ifndef MOZ_LAYERS_HAVE_LOG builds, they only have trivial // definitions in Layers.cpp. virtual const char* Name() const { return "???"; } /** * Dump information about this layer manager and its managed tree to * aFile, which defaults to stderr. */ void Dump(FILE* aFile=0, const char* aPrefix=""); /** * Dump information about just this layer manager itself to aFile, * which defaults to stderr. */ void DumpSelf(FILE* aFile=0, const char* aPrefix=""); /** * Log information about this layer manager and its managed tree to * the NSPR log (if enabled for "Layers"). */ void Log(const char* aPrefix=""); /** * Log information about just this layer manager itself to the NSPR * log (if enabled for "Layers"). */ void LogSelf(const char* aPrefix=""); static bool IsLogEnabled(); static PRLogModuleInfo* GetLog() { return sLog; } protected: nsRefPtr mRoot; LayerUserDataSet mUserData; PRPackedBool mDestroyed; PRPackedBool mSnapEffectiveTransforms; // Print interesting information about this into aTo. Internally // used to implement Dump*() and Log*(). virtual nsACString_internal& PrintInfo(nsACString_internal& aTo, const char* aPrefix); static void InitLog(); static PRLogModuleInfo* sLog; }; class ThebesLayer; /** * A Layer represents anything that can be rendered onto a destination * surface. */ class __declspec(dllexport) Layer { public: void AddRef(void) { do { if (!(PRInt32(mRefCnt) >= 0)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "illegal refcnt", "PRInt32(mRefCnt) >= 0", "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\Layers.h", 456); } } while (0); do { if (NS_IsCycleCollectorThread_P()) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Changing refcount of " "Layer" " object during Traverse is " "not permitted!", "Error", "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\Layers.h", 456); } else { do { if (!(_mOwningThread.GetThread() == PR_GetCurrentThread())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Layer" " not thread-safe", "_mOwningThread.GetThread() == PR_GetCurrentThread()", "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\Layers.h", 456); } } while (0); } } while (0); ++mRefCnt; NS_LogAddRef_P((this), (mRefCnt), ("Layer"), (PRUint32) (sizeof(*this))); } void Release(void) { do { if (!(0 != mRefCnt)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "dup release", "0 != mRefCnt", "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\Layers.h", 456); } } while (0); do { if (NS_IsCycleCollectorThread_P()) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Changing refcount of " "Layer" " object during Traverse is " "not permitted!", "Error", "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\Layers.h", 456); } else { do { if (!(_mOwningThread.GetThread() == PR_GetCurrentThread())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Layer" " not thread-safe", "_mOwningThread.GetThread() == PR_GetCurrentThread()", "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\Layers.h", 456); } } while (0); } } while (0); --mRefCnt; NS_LogRelease_P((this), (mRefCnt), ("Layer")); if (mRefCnt == 0) { do { if (!(_mOwningThread.GetThread() == PR_GetCurrentThread())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Layer" " not thread-safe", "_mOwningThread.GetThread() == PR_GetCurrentThread()", "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\Layers.h", 456); } } while (0); mRefCnt = 1; delete this; } } protected: nsAutoRefCnt mRefCnt; nsAutoOwningThread _mOwningThread; public: public: enum LayerType { TYPE_THEBES, TYPE_CONTAINER, TYPE_IMAGE, TYPE_COLOR, TYPE_CANVAS, TYPE_SHADOW }; virtual ~Layer() {} /** * Returns the LayerManager this Layer belongs to. Note that the layer * manager might be in a destroyed state, at which point it's only * valid to set/get user data from it. */ LayerManager* Manager() { return mManager; } enum { /** * If this is set, the caller is promising that by the end of this * transaction the entire visible region (as specified by * SetVisibleRegion) will be filled with opaque content. */ CONTENT_OPAQUE = 0x01, /** * If this is set, the caller is notifying that the contents of this layer * require per-component alpha for optimal fidelity. However, there is no * guarantee that component alpha will be supported for this layer at * paint time. * This should never be set at the same time as CONTENT_OPAQUE. */ CONTENT_COMPONENT_ALPHA = 0x02 }; /** * CONSTRUCTION PHASE ONLY * This lets layout make some promises about what will be drawn into the * visible region of the ThebesLayer. This enables internal quality * and performance optimizations. */ void SetContentFlags(PRUint32 aFlags) { do { if (!((aFlags & (CONTENT_OPAQUE | CONTENT_COMPONENT_ALPHA)) != (CONTENT_OPAQUE | CONTENT_COMPONENT_ALPHA))) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Can't be opaque and require component alpha", "(aFlags & (CONTENT_OPAQUE | CONTENT_COMPONENT_ALPHA)) != (CONTENT_OPAQUE | CONTENT_COMPONENT_ALPHA)", "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\Layers.h", 503); } } while (0); #line 504 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\Layers.h" mContentFlags = aFlags; Mutated(); } /** * CONSTRUCTION PHASE ONLY * Tell this layer which region will be visible. The visible region * is a region which contains all the contents of the layer that can * actually affect the rendering of the window. It can exclude areas * that are covered by opaque contents of other layers, and it can * exclude areas where this layer simply contains no content at all. * (This can be an overapproximation to the "true" visible region.) * * There is no general guarantee that drawing outside the bounds of the * visible region will be ignored. So if a layer draws outside the bounds * of its visible region, it needs to ensure that what it draws is valid. */ virtual void SetVisibleRegion(const nsIntRegion& aRegion) { mVisibleRegion = aRegion; Mutated(); } /** * CONSTRUCTION PHASE ONLY * Set the opacity which will be applied to this layer as it * is composited to the destination. */ void SetOpacity(float aOpacity) { mOpacity = aOpacity; Mutated(); } /** * CONSTRUCTION PHASE ONLY * Set a clip rect which will be applied to this layer as it is * composited to the destination. The coordinates are relative to * the parent layer (i.e. the contents of this layer * are transformed before this clip rect is applied). * For the root layer, the coordinates are relative to the widget, * in device pixels. * If aRect is null no clipping will be performed. */ void SetClipRect(const nsIntRect* aRect) { mUseClipRect = aRect != 0L; if (aRect) { mClipRect = *aRect; } Mutated(); } /** * CONSTRUCTION PHASE ONLY * Set a clip rect which will be applied to this layer as it is * composited to the destination. The coordinates are relative to * the parent layer (i.e. the contents of this layer * are transformed before this clip rect is applied). * For the root layer, the coordinates are relative to the widget, * in device pixels. * The provided rect is intersected with any existing clip rect. */ void IntersectClipRect(const nsIntRect& aRect) { if (mUseClipRect) { mClipRect.IntersectRect(mClipRect, aRect); } else { mUseClipRect = 1; mClipRect = aRect; } Mutated(); } /** * CONSTRUCTION PHASE ONLY * Tell this layer what its transform should be. The transformation * is applied when compositing the layer into its parent container. * XXX Currently only transformations corresponding to 2D affine transforms * are supported. */ void SetTransform(const gfx3DMatrix& aMatrix) { mTransform = aMatrix; Mutated(); } // These getters can be used anytime. float GetOpacity() { return mOpacity; } const nsIntRect* GetClipRect() { return mUseClipRect ? &mClipRect : 0L; } PRUint32 GetContentFlags() { return mContentFlags; } const nsIntRegion& GetVisibleRegion() { return mVisibleRegion; } ContainerLayer* GetParent() { return mParent; } Layer* GetNextSibling() { return mNextSibling; } Layer* GetPrevSibling() { return mPrevSibling; } virtual Layer* GetFirstChild() { return 0L; } virtual Layer* GetLastChild() { return 0L; } const gfx3DMatrix& GetTransform() { return mTransform; } /** * DRAWING PHASE ONLY * * Write layer-subtype-specific attributes into aAttrs. Used to * synchronize layer attributes to their shadows'. */ virtual void FillSpecificAttributes(SpecificLayerAttributes& aAttrs) { } // Returns true if it's OK to save the contents of aLayer in an // opaque surface (a surface without an alpha channel). // If we can use a surface without an alpha channel, we should, because // it will often make painting of antialiased text faster and higher // quality. PRBool CanUseOpaqueSurface(); /** * This setter can be used anytime. The user data for all keys is * initially null. Ownership pases to the layer manager. */ void SetUserData(void* aKey, LayerUserData* aData) { mUserData.Set(aKey, aData); } /** * This can be used anytime. Ownership passes to the caller! */ nsAutoPtr RemoveUserData(void* aKey) { nsAutoPtr d(mUserData.Remove(aKey)); return d; } /** * This getter can be used anytime. */ PRBool HasUserData(void* aKey) { return mUserData.Has(aKey); } /** * This getter can be used anytime. Ownership is retained by the layer * manager. */ LayerUserData* GetUserData(void* aKey) { return mUserData.Get(aKey); } /** * |Disconnect()| is used by layers hooked up over IPC. It may be * called at any time, and may not be called at all. Using an * IPC-enabled layer after Destroy() (drawing etc.) results in a * safe no-op; no crashy or uaf etc. * * XXX: this interface is essentially LayerManager::Destroy, but at * Layer granularity. It might be beneficial to unify them. */ virtual void Disconnect() {} /** * Dynamic downcast to a Thebes layer. Returns null if this is not * a ThebesLayer. */ virtual ThebesLayer* AsThebesLayer() { return 0L; } /** * Dynamic cast to a ShadowLayer. Return null if this is not a * ShadowLayer. Can be used anytime. */ virtual ShadowLayer* AsShadowLayer() { return 0L; } // These getters can be used anytime. They return the effective // values that should be used when drawing this layer to screen, // accounting for this layer possibly being a shadow. const nsIntRect* GetEffectiveClipRect(); const nsIntRegion& GetEffectiveVisibleRegion(); /** * Returns the product of the opacities of this layer and all ancestors up * to and excluding the nearest ancestor that has UseIntermediateSurface() set. */ float GetEffectiveOpacity(); /** * This returns the effective transform computed by * ComputeEffectiveTransforms. Typically this is a transform that transforms * this layer all the way to some intermediate surface or destination * surface. For non-BasicLayers this will be a transform to the nearest * ancestor with UseIntermediateSurface() (or to the root, if there is no * such ancestor), but for BasicLayers it's different. */ const gfx3DMatrix& GetEffectiveTransform() const { return mEffectiveTransform; } /** * @param aTransformToSurface the composition of the transforms * from the parent layer (if any) to the destination pixel grid. * * Computes mEffectiveTransform for this layer and all its descendants. * mEffectiveTransform transforms this layer up to the destination * pixel grid (whatever aTransformToSurface is relative to). * * We promise that when this is called on a layer, all ancestor layers * have already had ComputeEffectiveTransforms called. */ virtual void ComputeEffectiveTransforms(const gfx3DMatrix& aTransformToSurface) = 0; virtual const char* Name() const =0; virtual LayerType GetType() const =0; /** * Only the implementation should call this. This is per-implementation * private data. Normally, all layers with a given layer manager * use the same type of ImplData. */ void* ImplData() { return mImplData; } /** * Only the implementation should use these methods. */ void SetParent(ContainerLayer* aParent) { mParent = aParent; } void SetNextSibling(Layer* aSibling) { mNextSibling = aSibling; } void SetPrevSibling(Layer* aSibling) { mPrevSibling = aSibling; } /** * Dump information about this layer manager and its managed tree to * aFile, which defaults to stderr. */ void Dump(FILE* aFile=0, const char* aPrefix=""); /** * Dump information about just this layer manager itself to aFile, * which defaults to stderr. */ void DumpSelf(FILE* aFile=0, const char* aPrefix=""); /** * Log information about this layer manager and its managed tree to * the NSPR log (if enabled for "Layers"). */ void Log(const char* aPrefix=""); /** * Log information about just this layer manager itself to the NSPR * log (if enabled for "Layers"). */ void LogSelf(const char* aPrefix=""); static bool IsLogEnabled() { return LayerManager::IsLogEnabled(); } protected: Layer(LayerManager* aManager, void* aImplData) : mManager(aManager), mParent(0L), mNextSibling(0L), mPrevSibling(0L), mImplData(aImplData), mOpacity(1.0), mContentFlags(0), mUseClipRect(0) {} void Mutated() { mManager->Mutated(this); } // Print interesting information about this into aTo. Internally // used to implement Dump*() and Log*(). If subclasses have // additional interesting properties, they should override this with // an implementation that first calls the base implementation then // appends additional info to aTo. virtual nsACString_internal& PrintInfo(nsACString_internal& aTo, const char* aPrefix); /** * Returns the local transform for this layer: either mTransform or, * for shadow layers, GetShadowTransform() */ const gfx3DMatrix& GetLocalTransform(); /** * Computes a tweaked version of aTransform that snaps a point or a rectangle * to pixel boundaries. Snapping is only performed if this layer's * layer manager has enabled snapping (which is the default). * @param aSnapRect a rectangle whose edges should be snapped to pixel * boundaries in the destination surface. If the rectangle is empty, * then the snapping process should preserve the scale factors of the * transform matrix * @param aResidualTransform a transform to apply before mEffectiveTransform * in order to get the results to completely match aTransform */ gfx3DMatrix SnapTransform(const gfx3DMatrix& aTransform, const gfxRect& aSnapRect, gfxMatrix* aResidualTransform); LayerManager* mManager; ContainerLayer* mParent; Layer* mNextSibling; Layer* mPrevSibling; void* mImplData; LayerUserDataSet mUserData; nsIntRegion mVisibleRegion; gfx3DMatrix mTransform; gfx3DMatrix mEffectiveTransform; float mOpacity; nsIntRect mClipRect; PRUint32 mContentFlags; PRPackedBool mUseClipRect; }; /** * A Layer which we can draw into using Thebes. It is a conceptually * infinite surface, but each ThebesLayer has an associated "valid region" * of contents that it is currently storing, which is finite. ThebesLayer * implementations can store content between paints. * * ThebesLayers are rendered into during the drawing phase of a transaction. * * Currently the contents of a ThebesLayer are in the device output color * space. */ class __declspec(dllexport) ThebesLayer : public Layer { public: /** * CONSTRUCTION PHASE ONLY * Tell this layer that the content in some region has changed and * will need to be repainted. This area is removed from the valid * region. */ virtual void InvalidateRegion(const nsIntRegion& aRegion) = 0; /** * Can be used anytime */ const nsIntRegion& GetValidRegion() const { return mValidRegion; } float GetXResolution() const { return mXResolution; } float GetYResolution() const { return mYResolution; } virtual ThebesLayer* AsThebesLayer() { return this; } virtual const char* Name() const { return "ThebesLayer"; } virtual LayerType GetType() const { return TYPE_THEBES; } virtual void ComputeEffectiveTransforms(const gfx3DMatrix& aTransformToSurface) { // The default implementation just snaps 0,0 to pixels. gfx3DMatrix idealTransform = GetLocalTransform()*aTransformToSurface; mEffectiveTransform = SnapTransform(idealTransform, gfxRect(0, 0, 0, 0), 0L); } protected: ThebesLayer(LayerManager* aManager, void* aImplData) : Layer(aManager, aImplData) , mValidRegion() , mXResolution(1.0) , mYResolution(1.0) { mContentFlags = 0; // Clear NO_TEXT, NO_TEXT_OVER_TRANSPARENT } virtual nsACString_internal& PrintInfo(nsACString_internal& aTo, const char* aPrefix); nsIntRegion mValidRegion; // Resolution values tell this to paint its content scaled by // , into a backing buffer with // dimensions scaled the same. A non-1.0 resolution also tells this // to set scaling factors that compensate for the re-paint // resolution when rendering itself to render targets // // Resolution doesn't affect the visible region, valid region, or // re-painted regions at all. It only affects how scalable thebes // content is rasterized to device pixels. // // Setting the resolution isn't part of the public ThebesLayer API // because it's backend-specific, and it doesn't necessarily make // sense for all backends to fully support it. float mXResolution; float mYResolution; }; /** * A Layer which other layers render into. It holds references to its * children. */ class __declspec(dllexport) ContainerLayer : public Layer { public: /** * CONSTRUCTION PHASE ONLY * Insert aChild into the child list of this container. aChild must * not be currently in any child list or the root for the layer manager. * If aAfter is non-null, it must be a child of this container and * we insert after that layer. If it's null we insert at the start. */ virtual void InsertAfter(Layer* aChild, Layer* aAfter) = 0; /** * CONSTRUCTION PHASE ONLY * Remove aChild from the child list of this container. aChild must * be a child of this container. */ virtual void RemoveChild(Layer* aChild) = 0; /** * CONSTRUCTION PHASE ONLY * Set the (sub)document metrics used to render the Layer subtree * rooted at this. */ void SetFrameMetrics(const FrameMetrics& aFrameMetrics) { mFrameMetrics = aFrameMetrics; } // These getters can be used anytime. virtual Layer* GetFirstChild() { return mFirstChild; } virtual Layer* GetLastChild() { return mLastChild; } const FrameMetrics& GetFrameMetrics() { return mFrameMetrics; } virtual const char* Name() const { return "ContainerLayer"; } virtual LayerType GetType() const { return TYPE_CONTAINER; } /** * ContainerLayer backends need to override ComputeEffectiveTransforms * since the decision about whether to use a temporary surface for the * container is backend-specific. ComputeEffectiveTransforms must also set * mUseIntermediateSurface. */ virtual void ComputeEffectiveTransforms(const gfx3DMatrix& aTransformToSurface) = 0; /** * Call this only after ComputeEffectiveTransforms has been invoked * on this layer. * Returns true if this will use an intermediate surface. This is largely * backend-dependent, but it affects the operation of GetEffectiveOpacity(). */ PRBool UseIntermediateSurface() { return mUseIntermediateSurface; } /** * Returns true if this container has more than one non-empty child */ PRBool HasMultipleChildren(); protected: ContainerLayer(LayerManager* aManager, void* aImplData) : Layer(aManager, aImplData), mFirstChild(0L), mLastChild(0L), mUseIntermediateSurface(0) { mContentFlags = 0; // Clear NO_TEXT, NO_TEXT_OVER_TRANSPARENT } /** * A default implementation of ComputeEffectiveTransforms for use by OpenGL * and D3D. */ void DefaultComputeEffectiveTransforms(const gfx3DMatrix& aTransformToSurface); /** * Loops over the children calling ComputeEffectiveTransforms on them. */ void ComputeEffectiveTransformsForChildren(const gfx3DMatrix& aTransformToSurface); virtual nsACString_internal& PrintInfo(nsACString_internal& aTo, const char* aPrefix); Layer* mFirstChild; Layer* mLastChild; FrameMetrics mFrameMetrics; PRPackedBool mUseIntermediateSurface; }; /** * A Layer which just renders a solid color in its visible region. It actually * can fill any area that contains the visible region, so if you need to * restrict the area filled, set a clip region on this layer. */ class __declspec(dllexport) ColorLayer : public Layer { public: /** * CONSTRUCTION PHASE ONLY * Set the color of the layer. */ virtual void SetColor(const gfxRGBA& aColor) { mColor = aColor; } // This getter can be used anytime. virtual const gfxRGBA& GetColor() { return mColor; } virtual const char* Name() const { return "ColorLayer"; } virtual LayerType GetType() const { return TYPE_COLOR; } virtual void ComputeEffectiveTransforms(const gfx3DMatrix& aTransformToSurface) { // Snap 0,0 to pixel boundaries, no extra internal transform. gfx3DMatrix idealTransform = GetLocalTransform()*aTransformToSurface; mEffectiveTransform = SnapTransform(idealTransform, gfxRect(0, 0, 0, 0), 0L); } protected: ColorLayer(LayerManager* aManager, void* aImplData) : Layer(aManager, aImplData), mColor(0.0, 0.0, 0.0, 0.0) {} virtual nsACString_internal& PrintInfo(nsACString_internal& aTo, const char* aPrefix); gfxRGBA mColor; }; /** * A Layer for HTML Canvas elements. It's backed by either a * gfxASurface or a GLContext (for WebGL layers), and has some control * for intelligent updating from the source if necessary (for example, * if hardware compositing is not available, for reading from the GL * buffer into an image surface that we can layer composite.) * * After Initialize is called, the underlying canvas Surface/GLContext * must not be modified during a layer transaction. */ class __declspec(dllexport) CanvasLayer : public Layer { public: struct Data { Data() : mSurface(0L), mGLContext(0L), mGLBufferIsPremultiplied(0) { } /* One of these two must be specified, but never both */ gfxASurface* mSurface; // a gfx Surface for the canvas contents mozilla::gl::GLContext* mGLContext; // a GL PBuffer Context /* The size of the canvas content */ nsIntSize mSize; /* Whether the GLContext contains premultiplied alpha * values in the framebuffer or not. Defaults to FALSE. */ PRPackedBool mGLBufferIsPremultiplied; }; /** * CONSTRUCTION PHASE ONLY * Initialize this CanvasLayer with the given data. The data must * have either mSurface or mGLContext initialized (but not both), as * well as mSize. * * This must only be called once. */ virtual void Initialize(const Data& aData) = 0; /** * CONSTRUCTION PHASE ONLY * Notify this CanvasLayer that the rectangle given by aRect * has been updated, and any work that needs to be done * to bring the contents from the Surface/GLContext to the * Layer in preparation for compositing should be performed. */ virtual void Updated(const nsIntRect& aRect) = 0; /** * CONSTRUCTION PHASE ONLY * Set the filter used to resample this image (if necessary). */ void SetFilter(gfxPattern::GraphicsFilter aFilter) { mFilter = aFilter; } gfxPattern::GraphicsFilter GetFilter() const { return mFilter; } virtual const char* Name() const { return "CanvasLayer"; } virtual LayerType GetType() const { return TYPE_CANVAS; } virtual void ComputeEffectiveTransforms(const gfx3DMatrix& aTransformToSurface) { // Snap our local transform first, and snap the inherited transform as well. // This makes our snapping equivalent to what would happen if our content // was drawn into a ThebesLayer (gfxContext would snap using the local // transform, then we'd snap again when compositing the ThebesLayer). mEffectiveTransform = SnapTransform(GetLocalTransform(), gfxRect(0, 0, mBounds.width, mBounds.height), 0L)* SnapTransform(aTransformToSurface, gfxRect(0, 0, 0, 0), 0L); } protected: CanvasLayer(LayerManager* aManager, void* aImplData) : Layer(aManager, aImplData), mFilter(gfxPattern::FILTER_GOOD) {} virtual nsACString_internal& PrintInfo(nsACString_internal& aTo, const char* aPrefix); /** * 0, 0, canvaswidth, canvasheight */ nsIntRect mBounds; gfxPattern::GraphicsFilter mFilter; }; } } #line 1079 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\Layers.h" #line 42 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\LayerManagerD3D9.h" #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windows.h" /*++ BUILD Version: 0001 Increment this if a change has global effects Copyright (c) Microsoft Corporation. All rights reserved. Module Name: windows.h Abstract: Master include file for Windows applications. --*/ #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\sdkddkver.h" /* Copyright (c) Microsoft Corporation. All rights reserved. Module Name: sdkddkver.h Abstract: Master include file for versioning windows SDK/DDK. */ #pragma once // // _WIN32_WINNT version constants // // // _WIN32_IE_ version constants // // // IE <-> OS version mapping // // NT4 supports IE versions 2.0 -> 6.0 SP1 // Win98 supports IE versions 4.01 -> 6.0 SP1 // Win98SE supports IE versions 5.0 -> 6.0 SP1 // WinME supports IE versions 5.5 -> 6.0 SP1 // Win2k supports IE versions 5.01 -> 6.0 SP1 // // NTDDI version constants // // // masks for version macros // // // macros to extract various version fields from the NTDDI version // #line 141 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\sdkddkver.h" // // if versions aren't already defined, default to most current // #line 153 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\sdkddkver.h" // set NTDDI_VERSION based on _WIN32_WINNT #line 161 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\sdkddkver.h" #line 162 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\sdkddkver.h" // // Sanity check for compatible versions // #line 199 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\sdkddkver.h" #line 203 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\sdkddkver.h" #line 207 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\sdkddkver.h" #line 211 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\sdkddkver.h" #line 215 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\sdkddkver.h" #line 219 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\sdkddkver.h" #line 221 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\sdkddkver.h" #line 224 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\sdkddkver.h" #line 22 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windows.h" #pragma once #line 29 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windows.h" /* If defined, the following flags inhibit definition * of the indicated items. * * NOGDICAPMASKS - CC_*, LC_*, PC_*, CP_*, TC_*, RC_ * NOVIRTUALKEYCODES - VK_* * NOWINMESSAGES - WM_*, EM_*, LB_*, CB_* * NOWINSTYLES - WS_*, CS_*, ES_*, LBS_*, SBS_*, CBS_* * NOSYSMETRICS - SM_* * NOMENUS - MF_* * NOICONS - IDI_* * NOKEYSTATES - MK_* * NOSYSCOMMANDS - SC_* * NORASTEROPS - Binary and Tertiary raster ops * NOSHOWWINDOW - SW_* * OEMRESOURCE - OEM Resource values * NOATOM - Atom Manager routines * NOCLIPBOARD - Clipboard routines * NOCOLOR - Screen colors * NOCTLMGR - Control and Dialog routines * NODRAWTEXT - DrawText() and DT_* * NOGDI - All GDI defines and routines * NOKERNEL - All KERNEL defines and routines * NOUSER - All USER defines and routines * NONLS - All NLS defines and routines * NOMB - MB_* and MessageBox() * NOMEMMGR - GMEM_*, LMEM_*, GHND, LHND, associated routines * NOMETAFILE - typedef METAFILEPICT * NOMINMAX - Macros min(a,b) and max(a,b) * NOMSG - typedef MSG and associated routines * NOOPENFILE - OpenFile(), OemToAnsi, AnsiToOem, and OF_* * NOSCROLL - SB_* and scrolling routines * NOSERVICE - All Service Controller routines, SERVICE_ equates, etc. * NOSOUND - Sound driver routines * NOTEXTMETRIC - typedef TEXTMETRIC and associated routines * NOWH - SetWindowsHook and WH_* * NOWINOFFSETS - GWL_*, GCL_*, associated routines * NOCOMM - COMM driver routines * NOKANJI - Kanji support stuff. * NOHELP - Help engine interface. * NOPROFILER - Profiler interface. * NODEFERWINDOWPOS - DeferWindowPos routines * NOMCX - Modem Configuration Extensions */ #line 79 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windows.h" #line 100 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windows.h" #line 104 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windows.h" #line 108 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windows.h" #line 112 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windows.h" #line 116 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windows.h" #line 122 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windows.h" #line 127 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windows.h" #line 128 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windows.h" #line 136 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windows.h" #line 137 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windows.h" #pragma warning(disable:4514) #pragma warning(disable:4103) #line 144 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windows.h" #pragma warning(push) #line 147 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windows.h" #pragma warning(disable:4001) #pragma warning(disable:4201) #pragma warning(disable:4214) #line 151 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windows.h" #line 1 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\excpt.h" /*** *excpt.h - defines exception values, types and routines * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file contains the definitions and prototypes for the compiler- * dependent intrinsics, support functions and keywords which implement * the structured exception handling extensions. * * [Public] * ****/ #pragma once #line 18 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\excpt.h" #line 1 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\crtdefs.h" /*** *crtdefs.h - definitions/declarations common to all CRT * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * This file has mostly defines used by the entire CRT. * * [Public] * ****/ /* Lack of pragma once is deliberate */ /* Define _CRTIMP */ #line 23 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\excpt.h" /* * Currently, all MS C compilers for Win32 platforms default to 8 byte * alignment. */ #pragma pack(push,8) #line 31 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\excpt.h" extern "C" { #line 35 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\excpt.h" /* * Exception disposition return values. */ typedef enum _EXCEPTION_DISPOSITION { ExceptionContinueExecution, ExceptionContinueSearch, ExceptionNestedException, ExceptionCollidedUnwind } EXCEPTION_DISPOSITION; /* * Prototype for SEH support function. */ /* * Declarations to keep MS C 8 (386/486) compiler happy */ struct _EXCEPTION_RECORD; struct _CONTEXT; EXCEPTION_DISPOSITION __cdecl _except_handler ( struct _EXCEPTION_RECORD *_ExceptionRecord, void * _EstablisherFrame, struct _CONTEXT *_ContextRecord, void * _DispatcherContext ); #line 95 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\excpt.h" /* * Keywords and intrinsics for SEH */ unsigned long __cdecl _exception_code(void); void * __cdecl _exception_info(void); int __cdecl _abnormal_termination(void); #line 115 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\excpt.h" /* * Legal values for expression in except(). */ } #line 130 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\excpt.h" #pragma pack(pop) #line 134 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\excpt.h" #line 136 "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCLUDE\\excpt.h" #line 152 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windows.h" #line 154 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windows.h" #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windef.h" /**************************************************************************** * * * windef.h -- Basic Windows Type Definitions * * * * Copyright (c) Microsoft Corporation. All rights reserved. * * * ****************************************************************************/ #pragma once #line 18 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windef.h" #line 19 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windef.h" // Win32 defines _WIN32 automatically, // but Macintosh doesn't, so if we are using // Win32 Functions, we must do it here extern "C" { #line 37 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windef.h" /* * BASETYPES is defined in ntdef.h if these types are already defined */ typedef unsigned long ULONG; typedef ULONG *PULONG; typedef unsigned short USHORT; typedef USHORT *PUSHORT; typedef unsigned char UCHAR; typedef UCHAR *PUCHAR; typedef char *PSZ; #line 56 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windef.h" #line 70 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windef.h" #line 74 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windef.h" #line 78 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windef.h" #line 82 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windef.h" #line 86 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windef.h" #line 98 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windef.h" #line 105 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windef.h" #line 109 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windef.h" #line 110 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windef.h" #line 137 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windef.h" #line 143 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windef.h" #line 151 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windef.h" typedef unsigned long DWORD; typedef int BOOL; typedef unsigned char BYTE; typedef unsigned short WORD; typedef float FLOAT; typedef FLOAT *PFLOAT; typedef BOOL *PBOOL; typedef BOOL *LPBOOL; typedef BYTE *PBYTE; typedef BYTE *LPBYTE; typedef int *PINT; typedef int *LPINT; typedef WORD *PWORD; typedef WORD *LPWORD; typedef long *LPLONG; typedef DWORD *PDWORD; typedef DWORD *LPDWORD; typedef void *LPVOID; typedef const void *LPCVOID; typedef int INT; typedef unsigned int UINT; typedef unsigned int *PUINT; #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" /*++ BUILD Version: 0091 Increment this if a change has global effects Copyright (c) Microsoft Corporation. All rights reserved. Module Name: winnt.h Abstract: This module defines the 32-Bit Windows types and constants that are defined by NT, but exposed through the Win32 API. Revision History: --*/ extern "C" { #line 24 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\specstrings.h" /************************************************************************* * See specstrings_strict.h for documentation of all user visible macros. *************************************************************************/ #pragma once #line 9 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\specstrings.h" #line 14 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\specstrings.h" extern "C" { #line 18 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\specstrings.h" /* version specific fixes to bring sal.h upto date */ /* Missing from RTM sal.h */ #line 33 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\specstrings.h" #line 41 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\specstrings.h" /* Must protect redfinitions of macros to workaround rc.exe issues. */ #line 122 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\specstrings.h" #line 123 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\specstrings.h" /************************************************************************ New extensions to sal.h follow here. *************************************************************************/ #line 155 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\specstrings.h" /* Internal defintions */ #line 180 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\specstrings.h" /* integer related macros */ /* Pentraion review macros */ /* useful PFD related macros */ /* Windows Internal */ /* declare stub functions for macros */ } #line 267 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\specstrings.h" #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\specstrings_adt.h" #pragma once /************************************************************************* * DEFINITIONS OF NEW TYPES *************************************************************************/ #line 16 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\specstrings_adt.h" typedef char* ValidCompNameA; typedef unsigned short* ValidCompNameW; typedef const unsigned short* ConstValidCompNameW; typedef unsigned short* SAL_ValidCompNameT; typedef const unsigned short* SAL_ConstValidCompNameT; #line 24 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\specstrings_adt.h" /************************************************************************* * DEFINITIONS OF INLINE FUNCTIONS FOR CASTING TO THE NEW TYPES : USER *************************************************************************/ #line 40 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\specstrings_adt.h" #line 43 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\specstrings_adt.h" #line 268 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\specstrings.h" /************************************************************************** * This include should always be the last thing in this file. * Must avoid redfinitions of macros to workaround rc.exe issues. ***************************************************************************/ #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\specstrings_strict.h" /************************************************************************* * This file documents all the macros approved for use in windows source * code. It includes some experimental macros which should only be used by * experts. * * DO NOT include this file directly. This file is include after * specstrings.h. So we can undefine every possible old definition including * private internal macros people should not be using, as well as macros from * sal.h. Macros are redefined here in a way to cause syntax errors when used * incorrectly during a normal build when specstrings.h is included and * __SPECSTRINGS_STRICT_LEVEL is defined. * * There are several levels of strictness, each level includes the behavior of * all previous levels. * * 0 - Disable strict checking * 1 - Break on unapproved macros and misuse of statement * macros such as __fallthrough (default) * 2 - Deprecated some old macros that should not be used * 3 - Use VS 2005 Source Annotation to make sure every macro * is used in the right context. For example placing __in on a return * parameter will result in an error. ************************************************************************/ #line 27 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\specstrings_strict.h" /************************************************************************ * Introduction * * specstrings.h provides a set of annotations to describe how a function uses * its parameters - the assumptions it makes about them, and the guarantees it * makes upon finishing. * * Annotations must be placed before a function parameter's type or its return * type. There are two basic classes of common annotations buffer annotations * and advanced annotations. Buffer annotations describe how functions use * their pointer parameters, and advanced annotations either describe * complex/unusual buffer behavior, or provide additional information about a * parameter that is not otherwise expressible. * * Buffer Annotations * * The most important annotations in SpecStrings.h provide a consistent way to * annotate buffer parameters or return values for a function. Each of these * annotations describes a single buffer (which could be a string, a * fixed-length or variable-length array, or just a pointer) that the function * interacts with: where it is, how large it is, how much is initialized, and * what the function does with it. * * The appropriate macro for a given buffer can be constructed using the table * below. Just pick the appropriate values from each category, and combine * them together with a leading underscore. Some combinations of values do not * make sense as buffer annotations. Only meaningful annotations can be added * to your code; for a list of these, see the buffer annotation definitions * section. * * Only a single buffer annotation should be used for each parameter. * * |------------|------------|---------|--------|----------|---------------| * | Level | Usage | Size | Output | Optional | Parameters | * |------------|------------|---------|--------|----------|---------------| * | <> | <> | <> | <> | <> | <> | * | _deref | _in | _ecount | _full | _opt | (size) | * | _deref_opt | _out | _bcount | _part | | (size,length) | * | | _inout | | | | | * | | | | | | | * |------------|------------|---------|--------|----------|---------------| * * Note: "<>" represents the empty string. * * Level: Describes the buffer pointer's level of indirection from the * parameter or return value 'p'. * * <> : p is the buffer pointer. * _deref : *p is the buffer pointer. p must not be NULL. * _deref_opt : *p may be the buffer pointer. p may be NULL, in which case the * rest of the annotation is ignored. * * Usage: Describes how the function uses the buffer. * * <> : The buffer is not accessed. If used on the return value or with * _deref, the function will provide the buffer, and it will be uninitialized * at exit. Otherwise, the caller must provide the buffer. This should only * be used for alloc and free functions. * * _in : The function will only read from the buffer. The caller must provide * the buffer and initialize it. * * _out : The function will only write to the buffer. If used on the return * value or with _deref, the function will provide the buffer and initialize * it. Otherwise, the caller must provide the buffer, and the function will * initialize it. * * _inout : The function may freely read from and write to the buffer. The * caller must provide the buffer and initialize it. If used with _deref, the * buffer may be reallocated by the function. * * Size: Describes the total size of the buffer. This may be less than the * space actually allocated for the buffer, in which case it describes the * accessible amount. * * <> : No buffer size is given. If the type specifies the buffer size (such * as with LPSTR and LPWSTR), that amount is used. Otherwise, the buffer is * one element long. Must be used with _in, _out, or _inout. * * _ecount : The buffer size is an explicit element count. * * _bcount : The buffer size is an explicit byte count. * * Output: Describes how much of the buffer will be initialized by the * function. For _inout buffers, this also describes how much is initialized * at entry. Omit this category for _in buffers; they must be fully * initialized by the caller. * * <> : The type specifies how much is initialized. For instance, a function * initializing an LPWSTR must NULL-terminate the string. * * _full : The function initializes the entire buffer. * * _part : The function initializes part of the buffer, and explicitly * indicates how much. * * Optional: Describes if the buffer itself is optional. * * <> : The pointer to the buffer must not be NULL. * * _opt : The pointer to the buffer might be NULL. It will be checked before * being dereferenced. * * Parameters: Gives explicit counts for the size and length of the buffer. * * <> : There is no explicit count. Use when neither _ecount nor _bcount is * used. * * (size) : Only the buffer's total size is given. Use with _ecount or _bcount * but not _part. * * (size,length) : The buffer's total size and initialized length are * given. Use with _ecount_part and _bcount_part. * * ---------------------------------------------------------------------------- * Buffer Annotation Examples * * LWSTDAPI_(BOOL) StrToIntExA( * LPCSTR pszString, // No annotation required, const implies __in. * DWORD dwFlags, * __out int *piRet // A pointer whose dereference will be filled in. * ); * * void MyPaintingFunction( * __in HWND hwndControl, // An initialized read-only parameter. * __in_opt HDC hdcOptional, // An initialized read-only parameter that * // might be NULL. * __inout IPropertyStore *ppsStore // An initialized parameter that * // may be freely used and modified. * ); * * LWSTDAPI_(BOOL) PathCompactPathExA( * __out_ecount(cchMax) LPSTR pszOut, // A string buffer with cch elements * // that will be '\0' terminated * // on exit. * LPCSTR pszSrc, // No annotation required, * // const implies __in. * UINT cchMax, * DWORD dwFlags * ); * * HRESULT SHLocalAllocBytes( * size_t cb, * __deref_bcount(cb) T **ppv // A pointer whose dereference will be set * // to an uninitialized buffer with cb bytes. * ); * * __inout_bcount_full(cb) : A buffer with cb elements that is fully * initialized at entry and exit, and may be written to by this function. * * __out_ecount_part(count, *countOut) : A buffer with count elements that * will be partially initialized by this function. The function indicates how * much it initialized by setting *countOut. * ************************************************************************/ #pragma once #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\specstrings_undef.h" #line 185 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\specstrings_strict.h" /************************************************************************ * Advanced Annotations * * Advanced annotations describe behavior that is not expressible with the * regular buffer macros. These may be used either to annotate buffer * parameters that involve complex or conditional behavior, or to enrich * existing annotations with additional information. * * __success(expr) T f() : indicates whether function f succeeded or * not. If is true at exit, all the function's guarantees (as given * by other annotations) must hold. If is false at exit, the caller * should not expect any of the function's guarantees to hold. If not used, * the function must always satisfy its guarantees. Added automatically to * functions that indicate success in standard ways, such as by returning an * HRESULT. * * __out_awcount(expr, size) T *p : Pointer p is a buffer whose size may be * given in either bytes or elements. If is true, this acts like * __out_bcount. If is false, this acts like __out_ecount. This * should only be used to annotate old APIs. * * __in_awcount(expr, size) T* p : Pointer p is a buffer whose size may be given * in either bytes or elements. If is true, this acts like * __in_bcount. If is false, this acts like __in_ecount. This should * only be used to annotate old APIs. * * __nullterminated T* p : Pointer p is a buffer that may be read or written * up to and including the first '\0' character or pointer. May be used on * typedefs, which marks valid (properly initialized) instances of that type * as being null-terminated. * * __nullnullterminated T* p : Pointer p is a buffer that may be read or * written up to and including the first sequence of two '\0' characters or * pointers. May be used on typedefs, which marks valid instances of that * type as being double-null terminated. * * __reserved T v : Value v must be 0/NULL, reserved for future use. * * __checkReturn T f(); : Return value of f must not be ignored by callers * of this function. * * __typefix(ctype) T v : Value v should be treated as an instance of ctype, * rather than its declared type when considering validity. * * __override T f(); : Specify C#-style 'override' behaviour for overriding * virtual methods. * * __callback T f(); : Function f can be used as a function pointer. * * __format_string T p : Pointer p is a string that contains % markers in * the style of printf. * * __blocksOn(resource) f(); : Function f blocks on the resource 'resource'. * * __fallthrough : Annotates switch statement labels where fall-through is * desired, to distinguish from forgotten break statements. * * __range(low_bnd, up_bnd) int f(): The return from the function "f" must * be in the inclusive numeric range [low_bnd, up_bnd]. * * __in_range(low_bnd, up_bnd) int i : Precondition that integer i must be * in the inclusive numeric range [low_bnd, up_bnd]. * * __out_range(low_bnd, up_bnd) int i : Postcondition that integer i must be * in the inclusive numeric range [low_bnd, up_bnd]. * * __deref_in_range(low_bnd, up_bnd) int* pi : Precondition that integer *pi * must be in the inclusive numeric range [low_bnd, up_bnd]. * * __deref_out_range(low_bnd, up_bnd) int* pi : Postcondition that integer * *pi must be in the inclusive numeric range [low_bnd, up_bnd]. * * The first argument of a range macro may also be a C relational operator * (<,>,!=, ==, <=, >=). * * __range(rel_op, j) int f(): Postcondition that "f() rel_op j" must be * true. Note that j may be a expression known only at runtime. * * __in_range(rel_op, j) int i : Precondition that "i rel_op j" must be * true. Note that j may be a expression known only at runtime. * * __out_range(rel_op, j) int i : Postcondition that integer "i rel_op j" * must be true. Note that j may be a expression known only at runtime. * * __deref_in_range(rel_op, j) int *pi : Precondition that "*pi rel_op j" * must be true. Note that j may be a expression known only at runtime. * * __deref_out_range(rel_op, j) int *pi : Postcondition that "*pi rel_op j" * must be true. Note that j may be a expression known only at runtime. * * __in_bound int i : Precondition that integer i must be bound, but the * exact range can't be specified at compile time. __in_range should be * used if the range can be explicitly stated. * * __out_bound int i : Postcondition that integer i must be bound, but the * exact range can't be specified at compile time. __out_range should be * used if the range can be explicitly stated. * * __deref_out_bound int pi : Postcondition that integer *pi must be bound, * but the exact range can't be specified at compile time. * __deref_out_range should be used if the range can be explicitly stated. * * __assume_bound(expr); : Assume that the expression is bound to some known * range. This can be used to suppress integer overflow warnings on integral * expressions that are known to be bound due to reasons not explicit in the * code. Use as a statement in the body of a function. * * __allocator void f(): Function allocates memory using an integral size * argument * * ---------------------------------------------------------------------------- * Advanced Annotation Examples * * __success(return == TRUE) LWSTDAPI_(BOOL) * PathCanonicalizeA(__out_ecount(MAX_PATH) LPSTR pszBuf, LPCSTR pszPath); * // pszBuf is only guaranteed to be null-terminated when TRUE is returned. * * // Initialized LPWSTRs are null-terminated strings. * typedef __nullterminated WCHAR* LPWSTR; * * __out_ecount(cch) __typefix(LPWSTR) void *psz; * // psz is a buffer parameter which will be a null-terminated WCHAR string * // at exit, and which initially contains cch WCHARs. * ************************************************************************/ /*************************************************************************** * Expert Macros ***************************************************************************/ /*************************************************************************** * Macros to classify fields of structures. * Structure Annotations * * The buffer annotations are a convenient way of describing * relationships between buffers and their size on a function by * function basis. Very often struct or class data members have similar * invariants, which can be expressed directly on the type. * * Similar to our buffer annotations we can summarize all the various * structure annotations by one choosing an element from each column of * this table to build a composite annotation. * * +--------------------------------------------------+ * | Selector | Units | Size/Init | Optional | * |----------+---------+------------------+----------| * | __field | _ecount | (size) | empty | * |----------+---------+------------------+----------| * | __struct | _bcount | _full(size) | _opt | * |----------+---------+------------------+----------| * | | _xcount | _part(size,init) | | * +--------------------------------------------------+ * * Note that empty represents the empty string. Sometime arguments need * to be "floated" to the left to give us a valid annotation name. For * example the naive combination __field_ecount(size)_opt is actually * written as __field_ecount_opt(size). Not all possible combinations * are currently supported or sensible. See specstrings_strict.h for * the currently supported set. Those that are supported are documented * below. * *Summary of Elements * * Selector * * __field * The annotation should only be placed in front * of data members of structures and classes. The * data members are pointers to a block of data. * The annotations describe properties about the * size of the block of data. This can be used for * * __struct * The annotation should only be placed at the * beginning of the definition of a structure or * class. These annotations are used when a struct * or class is used as a "header" that is * allocated inline with a block of data and there * is no apparent field that represents the tail * end of the structure. * * Units * * _ecount * All size and initialization values are in terms * of elements of the appropriate type * * _bcount * All size and initialization values are in terms * of raw byte sizes. * * _xcount * The size or initialization values cannot be * properly expressed as a simple byte or element * count, and instead a place holder is used to * document the relationship. * * Size/Init * All the size/init expressions can contain references to * other fields in the struct or class. * * (size) * The size of the buffer is determined by the * expression size. Unless, the type of the buffer * provides more information nothing is know about * how much of this data is initialized. For * example, if the data member happens to be a * string type such as LPSTR. It is assumed that * the data is initialized to the first '\0'. * * _full(size) * The size of the buffer is determined by the * expression size and all the data in the buffer * is guaranteed to be initialized. * * _part(size,init) * The size of the buffer is determined by the * expression size and all the data in the buffer * is guaranteed to be initialized up to init * elements or bytes. * * Optional * * empty * The pointer to the block of memory is never * NULL * * _opt * The pointer to the block of memory is may be * NULL * * * // Basic Usage of Struct Annotations * #include * #include * struct buf_s { * int sz; * __field_bcount_full(sz) * char *buf; * }; * void InitBuf(__out struct *buf_s b,int sz) { * b->buf = calloc(sz,sizeof(char)); * b->sz = sz; * } * void WriteBuf(__in FILE *fp,__in struct *buf_s b) { * fwrite(b->buf,b->sz,sizeof(char),fp); * } * void ReadBuf(__in FILE *fp,__inout struct *buf_s b) { * fread(b->buf,b->sz,sizeof(char),fp); * } * * * * // Inline Allocated Buffer * struct buf_s { * int sz; * __field_bcount(sz) * char buf[1]; * }; * void WriteBuf(__in FILE *fp,__in struct *buf_s b) { * fwrite(&(b->buf),b->sz,sizeof(char),fp); * } * void ReadBuf(__in FILE *fp,__inout struct *buf_s b) { * fread(&(b->buf),b->sz,sizeof(char),fp); * } * * * * // Embedded Header Structure * __struct_bcount(sz) * struct buf_s { * int sz; * }; * void WriteBuf(__in FILE *fp,__in struct *buf_s b) { * fwrite(&b,b->sz,sizeof(char),fp); * } * void ReadBuf(__in FILE *fp,__inout struct *buf_s b) { * fread(&b,b->sz,sizeof(char),fp); * } * * ****************************************************************************/ /*************************************************************************** * Macros to classify the entrypoints and indicate their category. * * Pre-defined control point categories include: RPC, KERNEL, GDI. * * Pre-defined control point macros include: * __rpc_entry, __kernel_entry, __gdi_entry. ***************************************************************************/ /*************************************************************************** * Macros to track untrusted data and their validation. The list of untrusted * sources include: * * FILE - File reading stream or API * NETWORK - Socket readers * INTERNET - WinInet and WinHttp readers * USER_REGISTRY - HKCU portions of the registry * USER_MODE - Parameters to kernel entry points * RPC - Parameters to RPC entry points * DRIVER - Device driver ***************************************************************************/ /************************************************************************** * Macros to tag file parsing code. Predefined formats include: * PNG - Portable Network Graphics * JPEG - Joint Photographic Experts Group * BMP - Bitmap * RC_BMP - Resource bitmap * WMF - Windows Metafile * EMF - Windows Enhanced Metafile * GIF - Graphics Interchange Format * MIME_TYPE - MIME type from header tokens * MAIL_MONIKER - MAIL information refered by URL moniker * HTML - HyperText Markup Language * WMPHOTO - Windows media photo * OE_VCARD - Outlook Express virtual card * OE_CONTACT - Outlook Express contact * MIDI - Musical Instrument Digital Interface * LDIF - LDAP Data Interchange Format * AVI - Audio Visual Interchange * ACM - Audio Compression Manager **************************************************************************/ /*************************************************************************** * Macros to track the code content in the file. The type of code * contents currently tracked: * * NDIS_DRIVER - NDIS Device driver ***************************************************************************/ /*************************************************************************** * Macros to track the code content in the class. The type of code * contents currently tracked: * * DCOM - Class implementing DCOM ***************************************************************************/ /************************************************************************* * Macros to tag encoded function pointers **************************************************************************/ /************************************************************************* * __analysis_assume(expr) : Expert macro use only when directed. Use this to * tell static analysis tools like PREfix and PREfast about a non-coded * assumption that you wish the tools to assume. The assumption will be * understood by those tools. By default there is no dynamic checking or * static checking of the assumption in any build. * * To obtain dynamic checking wrap this macro in your local version of a debug * assert. * Please do not put function calls in the expression because this is not * supported by all tools: * __analysis_assume(GetObject () != NULL); // DO NOT DO THIS * *************************************************************************/ /************************************************************************* * __analysis_hint(hint_sym) : Expert macro use only when * directed. Use this to influence certain analysis heuristics * used by the tools. These hints do not describe the semantics * of functions but simply direct the tools to act in a certain * way. * * Current hints that are supported are: * * INLINE - inline this function during analysis overrides any * default heuristics * NOINLINE - do not inline this function during analysis overrides * and default heuristics *************************************************************************/ /************************************************************************* * Macros to encode abstract properties of values. Used by SALadt.h *************************************************************************/ /************************************************************************* * Macros used by Prefast for Drivers * * __possibly_notnulltermiated : * * Used for return values of parameters or functions that do not * guarantee nullterimination in all cases. * *************************************************************************/ /************************************************************************* * Advanced macros * * __volatile * The __volatile annotation identifies a global variable or * structure field that: * 1) is not declared volatile; * 2) is accessed concurrently by multiple threads. * * The __deref_volatile annotation identifies a global variable * or structure field that stores a pointer to some data that: * 1) is not declared volatile; * 2) is accessed concurrently by multiple threads. * * Prefast uses these annotations to find patterns of code that * may result in unexpected re-fetching of the global variable * into a local variable. * * We also provide two complimentary annotations __nonvolatile * and __deref_nonvolatile that could be used to suppress Prefast * * re-fetching warnings on variables that are known either: * 1) not to be in danger of being re-fetched or, * 2) not to lead to incorrect results if they are re-fetched * *************************************************************************/ /************************************************************************* * Macros deprecated with strict level greater then 1. **************************************************************************/ #line 948 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\specstrings_strict.h" /* Define soon to be deprecated macros to nops. */ /************************************************************************* * Definitions to force a compile error when macros are used improperly. * Relies on VS 2005 source annotations. *************************************************************************/ /************************************************************************** * This should go away. It's only for __success which we should split into. * __success and __typdecl_sucess ***************************************************************************/ #line 1065 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\specstrings_strict.h" #line 1066 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\specstrings_strict.h" #line 295 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\specstrings.h" #line 296 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\specstrings.h" #line 297 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\specstrings.h" #line 29 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 33 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 35 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 45 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 49 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 55 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 58 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // // TYPE_ALIGNMENT will return the alignment requirements of a given type for // the current platform. // #line 68 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 72 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 87 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 91 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // // C_ASSERT() can be used to perform many compile-time assertions: // type sizes, field offsets, etc. // // An assertion failure results in error C2118: negative subscript. // #line 104 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\basetsd.h" /*++ Copyright (c) Microsoft Corporation. All rights reserved. Module Name: basetsd.h Abstract: Type definitions for the basic sized types. Author: Revision History: --*/ #line 31 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\basetsd.h" #line 35 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\basetsd.h" #line 40 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\basetsd.h" typedef unsigned long POINTER_64_INT; #line 42 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\basetsd.h" #line 44 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\basetsd.h" #line 48 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\basetsd.h" #line 50 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\basetsd.h" // // A compiler with support for __sptr and __uptr is in qualification. To // participate in qualification, remove the "0 &&" term below and also // enable warning 4826 in warning.w // #line 61 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\basetsd.h" #line 64 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\basetsd.h" #pragma once #line 71 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\basetsd.h" extern "C" { #line 75 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\basetsd.h" typedef signed char INT8, *PINT8; typedef signed short INT16, *PINT16; typedef signed int INT32, *PINT32; typedef signed __int64 INT64, *PINT64; typedef unsigned char UINT8, *PUINT8; typedef unsigned short UINT16, *PUINT16; typedef unsigned int UINT32, *PUINT32; typedef unsigned __int64 UINT64, *PUINT64; // // The following types are guaranteed to be signed and 32 bits wide. // typedef signed int LONG32, *PLONG32; // // The following types are guaranteed to be unsigned and 32 bits wide. // typedef unsigned int ULONG32, *PULONG32; typedef unsigned int DWORD32, *PDWORD32; #line 105 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\basetsd.h" // // The INT_PTR is guaranteed to be the same size as a pointer. Its // size with change with pointer size (32/64). It should be used // anywhere that a pointer is cast to an integer type. UINT_PTR is // the unsigned variation. // // __int3264 is intrinsic to 64b MIDL but not to old MIDL or to C compiler. // #line 123 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\basetsd.h" // old midl and C++ compiler #line 135 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\basetsd.h" typedef __w64 int INT_PTR, *PINT_PTR; typedef __w64 unsigned int UINT_PTR, *PUINT_PTR; typedef __w64 long LONG_PTR, *PLONG_PTR; typedef __w64 unsigned long ULONG_PTR, *PULONG_PTR; #line 144 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\basetsd.h" #line 145 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\basetsd.h" // // HALF_PTR is half the size of a pointer it intended for use with // within structures which contain a pointer and two small fields. // UHALF_PTR is the unsigned variation. // typedef unsigned short UHALF_PTR, *PUHALF_PTR; typedef short HALF_PTR, *PHALF_PTR; typedef __w64 long SHANDLE_PTR; typedef __w64 unsigned long HANDLE_PTR; __inline void * __ptr64 PtrToPtr64( const void *p ) { return((void * __ptr64) (unsigned __int64) (ULONG_PTR)p ); } __inline void * Ptr64ToPtr( const void * __ptr64 p ) { return((void *) (ULONG_PTR) (unsigned __int64) p); } __inline void * __ptr64 HandleToHandle64( const void *h ) { return((void * __ptr64)(__int64)(LONG_PTR)h ); } __inline void * Handle64ToHandle( const void * __ptr64 h ) { return((void *) (ULONG_PTR) (unsigned __int64) h ); } #line 391 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\basetsd.h" #line 398 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\basetsd.h" // // SIZE_T used for counts or ranges which need to span the range of // of a pointer. SSIZE_T is the signed variation. // typedef ULONG_PTR SIZE_T, *PSIZE_T; typedef LONG_PTR SSIZE_T, *PSSIZE_T; #line 465 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\basetsd.h" // // Add Windows flavor DWORD_PTR types // typedef ULONG_PTR DWORD_PTR, *PDWORD_PTR; // // The following types are guaranteed to be signed and 64 bits wide. // typedef __int64 LONG64, *PLONG64; // // The following types are guaranteed to be unsigned and 64 bits wide. // typedef unsigned __int64 ULONG64, *PULONG64; typedef unsigned __int64 DWORD64, *PDWORD64; // // Thread affinity. // typedef ULONG_PTR KAFFINITY; typedef KAFFINITY *PKAFFINITY; } #line 496 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\basetsd.h" #line 498 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\basetsd.h" #line 106 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 113 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 120 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 121 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 128 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 129 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 136 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 137 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 144 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 145 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 149 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 156 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 157 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 164 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 165 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 172 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 173 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 180 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 181 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 186 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 188 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 189 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 196 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 197 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 204 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 205 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 214 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 215 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 230 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // // Void // typedef void *PVOID; typedef void * __ptr64 PVOID64; #line 245 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 251 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // // Define API decoration for direct importing system DLL references. // #line 268 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // // Basics // typedef char CHAR; typedef short SHORT; typedef long LONG; typedef int INT; #line 282 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 283 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // // UNICODE (Wide Character) types // typedef wchar_t WCHAR; // wc, 16-bit UNICODE character #line 294 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" typedef WCHAR *PWCHAR, *LPWCH, *PWCH; typedef const WCHAR *LPCWCH, *PCWCH; typedef WCHAR *NWPSTR, *LPWSTR, *PWSTR; typedef PWSTR *PZPWSTR; typedef const PWSTR *PCZPWSTR; typedef WCHAR *LPUWSTR, *PUWSTR; typedef const WCHAR *LPCWSTR, *PCWSTR; typedef PCWSTR *PZPCWSTR; typedef const WCHAR *LPCUWSTR, *PCUWSTR; #line 348 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // // ANSI (Multi-byte Character) types // typedef CHAR *PCHAR, *LPCH, *PCH; typedef const CHAR *LPCCH, *PCCH; typedef CHAR *NPSTR, *LPSTR, *PSTR; typedef PSTR *PZPSTR; typedef const PSTR *PCZPSTR; typedef const CHAR *LPCSTR, *PCSTR; typedef PCSTR *PZPCSTR; // // Neutral ANSI/UNICODE types and macros // typedef WCHAR TCHAR, *PTCHAR; typedef WCHAR TBYTE , *PTBYTE ; #line 372 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" typedef LPWCH LPTCH, PTCH; typedef LPWSTR PTSTR, LPTSTR; typedef LPCWSTR PCTSTR, LPCTSTR; typedef LPUWSTR PUTSTR, LPUTSTR; typedef LPCUWSTR PCUTSTR, LPCUTSTR; typedef LPWSTR LP; #line 395 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" typedef SHORT *PSHORT; typedef LONG *PLONG; typedef void *HANDLE; #line 408 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" typedef HANDLE *PHANDLE; // // Flag (bit) fields // typedef BYTE FCHAR; typedef WORD FSHORT; typedef DWORD FLONG; // Component Object Model defines, and macros typedef long HRESULT; #line 427 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 428 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 434 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // Win32 doesn't support __export #line 444 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 458 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // The 'V' versions allow Variable Argument lists. typedef char CCHAR; typedef DWORD LCID; typedef PDWORD PLCID; typedef WORD LANGID; // // _M_IX86 included so that EM CONTEXT structure compiles with // x86 programs. *** TBD should this be for all architectures? // // // 16 byte aligned type for 128 bit floats // // // For we define a 128 bit structure and use __declspec(align(16)) pragma to // align to 128 bits. // #line 513 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" typedef struct _FLOAT128 { __int64 LowPart; __int64 HighPart; } FLOAT128; typedef FLOAT128 *PFLOAT128; // // __int64 is only supported by 2.0 and later midl. // __midl is set by the 2.0 midl and not by 1.0 midl. // typedef __int64 LONGLONG; typedef unsigned __int64 ULONGLONG; #line 549 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" typedef LONGLONG *PLONGLONG; typedef ULONGLONG *PULONGLONG; // Update Sequence Number typedef LONGLONG USN; #line 560 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" typedef union _LARGE_INTEGER { struct { DWORD LowPart; LONG HighPart; }; struct { DWORD LowPart; LONG HighPart; } u; #line 570 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" LONGLONG QuadPart; } LARGE_INTEGER; typedef LARGE_INTEGER *PLARGE_INTEGER; #line 578 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" typedef union _ULARGE_INTEGER { struct { DWORD LowPart; DWORD HighPart; }; struct { DWORD LowPart; DWORD HighPart; } u; #line 588 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" ULONGLONG QuadPart; } ULARGE_INTEGER; typedef ULARGE_INTEGER *PULARGE_INTEGER; // end_ntminiport end_ntndis end_ntminitape // // Locally Unique Identifier // typedef struct _LUID { DWORD LowPart; LONG HighPart; } LUID, *PLUID; typedef ULONGLONG DWORDLONG; typedef DWORDLONG *PDWORDLONG; // // Define operations to logically shift an int64 by 0..31 bits and to multiply // 32-bits by 32-bits to form a 64-bit product. // #line 640 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // // The x86 C compiler understands inline assembler. Therefore, inline functions // that employ inline assembler are used for shifts of 0..31. The multiplies // rely on the compiler recognizing the cast of the multiplicand to int64 to // generate the optimal code inline. // ULONGLONG __stdcall Int64ShllMod32 ( ULONGLONG Value, DWORD ShiftCount ); LONGLONG __stdcall Int64ShraMod32 ( LONGLONG Value, DWORD ShiftCount ); ULONGLONG __stdcall Int64ShrlMod32 ( ULONGLONG Value, DWORD ShiftCount ); #pragma warning(push) #line 676 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #pragma warning(disable:4035 4793) __inline ULONGLONG __stdcall Int64ShllMod32 ( ULONGLONG Value, DWORD ShiftCount ) { __asm { mov ecx, ShiftCount mov eax, dword ptr [Value] mov edx, dword ptr [Value+4] shld edx, eax, cl shl eax, cl } } __inline LONGLONG __stdcall Int64ShraMod32 ( LONGLONG Value, DWORD ShiftCount ) { __asm { mov ecx, ShiftCount mov eax, dword ptr [Value] mov edx, dword ptr [Value+4] shrd eax, edx, cl sar edx, cl } } __inline ULONGLONG __stdcall Int64ShrlMod32 ( ULONGLONG Value, DWORD ShiftCount ) { __asm { mov ecx, ShiftCount mov eax, dword ptr [Value] mov edx, dword ptr [Value+4] shrd eax, edx, cl shr edx, cl } } #pragma warning(pop) #line 731 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 737 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // // Define rotate intrinsics. // extern "C" { #line 745 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 787 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" unsigned int __cdecl _rotl ( unsigned int Value, int Shift ); unsigned __int64 __cdecl _rotl64 ( unsigned __int64 Value, int Shift ); unsigned int __cdecl _rotr ( unsigned int Value, int Shift ); unsigned __int64 __cdecl _rotr64 ( unsigned __int64 Value, int Shift ); #pragma intrinsic(_rotl) #pragma intrinsic(_rotl64) #pragma intrinsic(_rotr) #pragma intrinsic(_rotr64) #line 831 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" } #line 835 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" typedef BYTE BOOLEAN; typedef BOOLEAN *PBOOLEAN; // // Doubly linked list structure. Can be used as either a list head, or // as link words. // typedef struct _LIST_ENTRY { struct _LIST_ENTRY *Flink; struct _LIST_ENTRY *Blink; } LIST_ENTRY, *PLIST_ENTRY, * PRLIST_ENTRY; // // Singly linked list structure. Can be used as either a list head, or // as link words. // typedef struct _SINGLE_LIST_ENTRY { struct _SINGLE_LIST_ENTRY *Next; } SINGLE_LIST_ENTRY, *PSINGLE_LIST_ENTRY; // // These are needed for portable debugger support. // typedef struct LIST_ENTRY32 { DWORD Flink; DWORD Blink; } LIST_ENTRY32; typedef LIST_ENTRY32 *PLIST_ENTRY32; typedef struct LIST_ENTRY64 { ULONGLONG Flink; ULONGLONG Blink; } LIST_ENTRY64; typedef LIST_ENTRY64 *PLIST_ENTRY64; #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\guiddef.h" //+--------------------------------------------------------------------------- // // Microsoft Windows // Copyright (c) Microsoft Corporation. All rights reserved. // // File: guiddef.h // // Contents: GUID definition // //---------------------------------------------------------------------------- #line 22 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\guiddef.h" typedef struct _GUID { unsigned long Data1; unsigned short Data2; unsigned short Data3; unsigned char Data4[ 8 ]; } GUID; #line 29 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\guiddef.h" #line 30 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\guiddef.h" #line 67 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\guiddef.h" typedef GUID *LPGUID; #line 77 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\guiddef.h" typedef const GUID *LPCGUID; #line 82 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\guiddef.h" typedef GUID IID; typedef IID *LPIID; typedef GUID CLSID; typedef CLSID *LPCLSID; typedef GUID FMTID; typedef FMTID *LPFMTID; #line 104 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\guiddef.h" #line 112 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\guiddef.h" #line 113 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\guiddef.h" #line 121 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\guiddef.h" #line 122 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\guiddef.h" #line 130 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\guiddef.h" #line 131 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\guiddef.h" #line 139 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\guiddef.h" #line 140 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\guiddef.h" #line 142 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\guiddef.h" // Faster (but makes code fatter) inline version...use sparingly __inline int InlineIsEqualGUID(const GUID & rguid1, const GUID & rguid2) { return ( ((unsigned long *) &rguid1)[0] == ((unsigned long *) &rguid2)[0] && ((unsigned long *) &rguid1)[1] == ((unsigned long *) &rguid2)[1] && ((unsigned long *) &rguid1)[2] == ((unsigned long *) &rguid2)[2] && ((unsigned long *) &rguid1)[3] == ((unsigned long *) &rguid2)[3]); } __inline int IsEqualGUID(const GUID & rguid1, const GUID & rguid2) { return !memcmp(&rguid1, &rguid2, sizeof(GUID)); } #line 175 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\guiddef.h" // Same type, different name // A couple of C++ helpers __inline int operator==(const GUID & guidOne, const GUID & guidOther) { return IsEqualGUID(guidOne,guidOther); } __inline int operator!=(const GUID & guidOne, const GUID & guidOther) { return !(guidOne == guidOther); } #line 202 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\guiddef.h" #line 203 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\guiddef.h" #line 204 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\guiddef.h" #line 205 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\guiddef.h" #line 206 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\guiddef.h" #line 879 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" typedef struct _OBJECTID { // size is 20 GUID Lineage; DWORD Uniquifier; } OBJECTID; #line 888 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // // Calculate the byte offset of a field in a structure of type type. // // // Calculate the size of a field in a structure of type type, without // knowing or stating the type of the field. // // // Calculate the size of a structure of type type up through and // including a field. // // // RTL_CONTAINS_FIELD usage: // // if (RTL_CONTAINS_FIELD(pBlock, pBlock->cbSize, dwMumble)) { // safe to use pBlock->dwMumble // // // Return the number of elements in a statically sized array. // DWORD Buffer[100]; // RTL_NUMBER_OF(Buffer) == 100 // This is also popularly known as: NUMBER_OF, ARRSIZE, _countof, NELEM, etc. // // // RtlpNumberOf is a function that takes a reference to an array of N Ts. // // typedef T array_of_T[N]; // typedef array_of_T &reference_to_array_of_T; // // RtlpNumberOf returns a pointer to an array of N chars. // We could return a reference instead of a pointer but older compilers do not accept that. // // typedef char array_of_char[N]; // typedef array_of_char *pointer_to_array_of_char; // // sizeof(array_of_char) == N // sizeof(*pointer_to_array_of_char) == N // // pointer_to_array_of_char RtlpNumberOf(reference_to_array_of_T); // // We never even call RtlpNumberOf, we just take the size of dereferencing its return type. // We do not even implement RtlpNumberOf, we just decare it. // // Attempts to pass pointers instead of arrays to this macro result in compile time errors. // That is the point. // extern "C++" // templates cannot be declared to have 'C' linkage template char (*RtlpNumberOf( T (&)[N] ))[N]; // // This does not work with: // // void Foo() // { // struct { int x; } y[2]; // RTL_NUMBER_OF_V2(y); // illegal use of anonymous local type in template instantiation // } // // You must instead do: // // struct Foo1 { int x; }; // // void Foo() // { // Foo1 y[2]; // RTL_NUMBER_OF_V2(y); // ok // } // // OR // // void Foo() // { // struct { int x; } y[2]; // RTL_NUMBER_OF_V1(y); // ok // } // // OR // // void Foo() // { // struct { int x; } y[2]; // _ARRAYSIZE(y); // ok // } // #line 1007 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 1013 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // // ARRAYSIZE is more readable version of RTL_NUMBER_OF_V2, and uses // it regardless of ENABLE_RTL_NUMBER_OF_V2 // // _ARRAYSIZE is a version useful for anonymous types // // // An expression that yields the type of a field in a struct. // // RTL_ to avoid collisions in the global namespace. // // Given typedef struct _FOO { BYTE Bar[123]; } FOO; // RTL_NUMBER_OF_FIELD(FOO, Bar) == 123 // // // eg: // typedef struct FOO { // DWORD Integer; // PVOID Pointer; // } FOO; // // RTL_PADDING_BETWEEN_FIELDS(FOO, Integer, Pointer) == 0 for Win32, 4 for Win64 // // RTL_ to avoid collisions in the global namespace. #line 1055 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // like sizeof // usually this would be * CHAR_BIT, but we don't necessarily have #include // // Calculate the address of the base of the structure given its type, and an // address of a field within the structure. // // // Product types // This list grows with each OS release. // // There is no ordering of values to ensure callers // do an equality test i.e. greater-than and less-than // comparisons are not useful. // // NOTE: Values in this list should never be deleted. // When a product-type 'X' gets dropped from a // OS release onwards, the value of 'X' continues // to be used in the mapping table of GetProductInfo. // // // Language IDs. // // The following two combinations of primary language ID and // sublanguage ID have special semantics: // // Primary Language ID Sublanguage ID Result // ------------------- --------------- ------------------------ // LANG_NEUTRAL SUBLANG_NEUTRAL Language neutral // LANG_NEUTRAL SUBLANG_DEFAULT User default language // LANG_NEUTRAL SUBLANG_SYS_DEFAULT System default language // LANG_INVARIANT SUBLANG_NEUTRAL Invariant locale // // // Primary language IDs. // // // Sublanguage IDs. // // The name immediately following SUBLANG_ dictates which primary // language ID that sublanguage ID can be combined with to form a // valid language ID. // // // Sorting IDs. // // end_r_winnt // // A language ID is a 16 bit value which is the combination of a // primary language ID and a secondary language ID. The bits are // allocated as follows: // // +-----------------------+-------------------------+ // | Sublanguage ID | Primary Language ID | // +-----------------------+-------------------------+ // 15 10 9 0 bit // // // Language ID creation/extraction macros: // // MAKELANGID - construct language id from a primary language id and // a sublanguage id. // PRIMARYLANGID - extract primary language id from a language id. // SUBLANGID - extract sublanguage id from a language id. // // // A locale ID is a 32 bit value which is the combination of a // language ID, a sort ID, and a reserved area. The bits are // allocated as follows: // // +-------------+---------+-------------------------+ // | Reserved | Sort ID | Language ID | // +-------------+---------+-------------------------+ // 31 20 19 16 15 0 bit // // // Locale ID creation/extraction macros: // // MAKELCID - construct the locale id from a language id and a sort id. // MAKESORTLCID - construct the locale id from a language id, sort id, and sort version. // LANGIDFROMLCID - extract the language id from a locale id. // SORTIDFROMLCID - extract the sort id from a locale id. // SORTVERSIONFROMLCID - extract the sort version from a locale id. // // 8 characters for language // 8 characters for region // 64 characters for suffix (script) // 2 characters for '-' separators // 2 characters for prefix like "i-" or "x-" // 1 null termination // // Default System and User IDs for language and locale. // // // Other special IDs for language and locale. // // begin_ntminiport begin_ntndis begin_ntminitape // // Macros used to eliminate compiler warning generated when formal // parameters or local variables are not declared. // // Use DBG_UNREFERENCED_PARAMETER() when a parameter is not yet // referenced but will be once the module is completely developed. // // Use DBG_UNREFERENCED_LOCAL_VARIABLE() when a local variable is not yet // referenced but will be once the module is completely developed. // // Use UNREFERENCED_PARAMETER() if a parameter will never be referenced. // // DBG_UNREFERENCED_PARAMETER and DBG_UNREFERENCED_LOCAL_VARIABLE will // eventually be made into a null macro to help determine whether there // is unfinished work. // #line 1693 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // // Macro used to eliminate compiler warning 4715 within a switch statement // when all possible cases have already been accounted for. // // switch (a & 3) { // case 0: return 1; // case 1: return Foo(); // case 2: return Bar(); // case 3: return 1; // DEFAULT_UNREACHABLE; // #line 1718 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" /*lint -save -e767 */ #line 1766 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" /*lint -restore */ #line 1768 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" typedef ULONG_PTR KSPIN_LOCK; typedef KSPIN_LOCK *PKSPIN_LOCK; // // Disable these two pragmas that evaluate to "sti" "cli" on x86 so that driver // writers to not leave them inadvertantly in their code. // #pragma warning(push) #line 3043 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #pragma warning(disable:4164) // build with /Od don't get weird errors ! #pragma function(_enable) #pragma function(_disable) #line 3049 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #pragma warning(pop) #line 3055 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 3057 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 3058 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // end_ntddk end_nthal extern "C" { #line 3065 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // // [pfx_parse] - guard against PREfix intrinsic error // // // Define bit test intrinsics. // BOOLEAN _bittest ( LONG const *Base, LONG Offset ); BOOLEAN _bittestandcomplement ( LONG *Base, LONG Offset ); BOOLEAN _bittestandset ( LONG *Base, LONG Offset ); BOOLEAN _bittestandreset ( LONG *Base, LONG Offset ); BOOLEAN _interlockedbittestandset ( LONG volatile *Base, LONG Offset ); BOOLEAN _interlockedbittestandreset ( LONG volatile *Base, LONG Offset ); #pragma intrinsic(_bittest) #pragma intrinsic(_bittestandcomplement) #pragma intrinsic(_bittestandset) #pragma intrinsic(_bittestandreset) #pragma intrinsic(_interlockedbittestandset) #pragma intrinsic(_interlockedbittestandreset) // // Define bit scan intrinsics. // BOOLEAN _BitScanForward ( DWORD *Index, DWORD Mask ); BOOLEAN _BitScanReverse ( DWORD *Index, DWORD Mask ); #pragma intrinsic(_BitScanForward) #pragma intrinsic(_BitScanReverse) #line 3186 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // // [pfx_parse] - guard against PREfix intrinsic error // SHORT _InterlockedCompareExchange16 ( SHORT volatile *Destination, SHORT ExChange, SHORT Comperand ); #pragma intrinsic(_InterlockedCompareExchange16) #line 3205 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #pragma warning(push) #pragma warning(disable:4035 4793) __forceinline BOOLEAN InterlockedBitTestAndComplement ( LONG volatile *Base, LONG Bit ) { __asm { mov eax, Bit mov ecx, Base lock btc [ecx], eax setc al }; } #pragma warning(pop) #line 3226 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // // [pfx_parse] // guard against __readfsbyte parsing error // // // Define FS referencing intrinsics // BYTE __readfsbyte ( DWORD Offset ); WORD __readfsword ( DWORD Offset ); DWORD __readfsdword ( DWORD Offset ); void __writefsbyte ( DWORD Offset, BYTE Data ); void __writefsword ( DWORD Offset, WORD Data ); void __writefsdword ( DWORD Offset, DWORD Data ); #pragma intrinsic(__readfsbyte) #pragma intrinsic(__readfsword) #pragma intrinsic(__readfsdword) #pragma intrinsic(__writefsbyte) #pragma intrinsic(__writefsword) #pragma intrinsic(__writefsdword) #line 3278 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" void __incfsbyte ( DWORD Offset ); void __addfsbyte ( DWORD Offset, BYTE Value ); void __incfsword ( DWORD Offset ); void __addfsword ( DWORD Offset, WORD Value ); void __incfsdword ( DWORD Offset ); void __addfsdword ( DWORD Offset, DWORD Value ); #line 3324 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 3326 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 3328 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" void _mm_pause ( void ); #pragma intrinsic(_mm_pause) #line 3347 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" } #line 3351 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 3353 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #pragma warning( push ) #pragma warning( disable : 4793 ) __forceinline void MemoryBarrier ( void ) { LONG Barrier; __asm { xchg Barrier, eax } } #pragma warning( pop ) #line 3374 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // // Prefetch is not supported on all x86 procssors. // // // PreFetchCacheLine level defines. // // // Define function to read the value of a performance counter. // DWORD64 __readpmc ( DWORD Counter ); #pragma intrinsic(__readpmc) #line 3420 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // // Define function to read the value of the time stamp counter // DWORD64 __rdtsc ( void ); #pragma intrinsic(__rdtsc) #line 3450 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // end_ntddk // begin_wdm void __int2c ( void ); #pragma intrinsic(__int2c) #line 3483 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 3485 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // end_wdm __inline PVOID GetFiberData( void ) { return *(PVOID *) (ULONG_PTR) __readfsdword (0x10);} __inline PVOID GetCurrentFiber( void ) { return (PVOID) (ULONG_PTR) __readfsdword (0x10);} #line 3511 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // begin_ntddk #line 3514 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // end_ntddk // // The following values specify the type of failing access when the status is // STATUS_ACCESS_VIOLATION and the first parameter in the execpetion record. // // begin_wx86 // begin_ntddk // // Define the size of the 80387 save area, which is in the context frame. // // // The following flags control the contents of the CONTEXT structure. // // end_wx86 // begin_wx86 #line 3562 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" typedef struct _FLOATING_SAVE_AREA { DWORD ControlWord; DWORD StatusWord; DWORD TagWord; DWORD ErrorOffset; DWORD ErrorSelector; DWORD DataOffset; DWORD DataSelector; BYTE RegisterArea[80]; DWORD Cr0NpxState; } FLOATING_SAVE_AREA; typedef FLOATING_SAVE_AREA *PFLOATING_SAVE_AREA; // // Context Frame // // This frame has a several purposes: 1) it is used as an argument to // NtContinue, 2) is is used to constuct a call frame for APC delivery, // and 3) it is used in the user level thread creation routines. // // The layout of the record conforms to a standard call frame. // typedef struct _CONTEXT { // // The flags values within this flag control the contents of // a CONTEXT record. // // If the context record is used as an input parameter, then // for each portion of the context record controlled by a flag // whose value is set, it is assumed that that portion of the // context record contains valid context. If the context record // is being used to modify a threads context, then only that // portion of the threads context will be modified. // // If the context record is used as an IN OUT parameter to capture // the context of a thread, then only those portions of the thread's // context corresponding to set flags will be returned. // // The context record is never used as an OUT only parameter. // DWORD ContextFlags; // // This section is specified/returned if CONTEXT_DEBUG_REGISTERS is // set in ContextFlags. Note that CONTEXT_DEBUG_REGISTERS is NOT // included in CONTEXT_FULL. // DWORD Dr0; DWORD Dr1; DWORD Dr2; DWORD Dr3; DWORD Dr6; DWORD Dr7; // // This section is specified/returned if the // ContextFlags word contians the flag CONTEXT_FLOATING_POINT. // FLOATING_SAVE_AREA FloatSave; // // This section is specified/returned if the // ContextFlags word contians the flag CONTEXT_SEGMENTS. // DWORD SegGs; DWORD SegFs; DWORD SegEs; DWORD SegDs; // // This section is specified/returned if the // ContextFlags word contians the flag CONTEXT_INTEGER. // DWORD Edi; DWORD Esi; DWORD Ebx; DWORD Edx; DWORD Ecx; DWORD Eax; // // This section is specified/returned if the // ContextFlags word contians the flag CONTEXT_CONTROL. // DWORD Ebp; DWORD Eip; DWORD SegCs; // MUST BE SANITIZED DWORD EFlags; // MUST BE SANITIZED DWORD Esp; DWORD SegSs; // // This section is specified/returned if the ContextFlags word // contains the flag CONTEXT_EXTENDED_REGISTERS. // The format and contexts are processor specific // BYTE ExtendedRegisters[512]; } CONTEXT; typedef CONTEXT *PCONTEXT; // begin_ntminiport #line 3681 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" typedef struct _LDT_ENTRY { WORD LimitLow; WORD BaseLow; union { struct { BYTE BaseMid; BYTE Flags1; // Declare as bytes to avoid alignment BYTE Flags2; // Problems. BYTE BaseHi; } Bytes; struct { DWORD BaseMid : 8; DWORD Type : 5; DWORD Dpl : 2; DWORD Pres : 1; DWORD LimitHi : 4; DWORD Sys : 1; DWORD Reserved_0 : 1; DWORD Default_Big : 1; DWORD Granularity : 1; DWORD BaseHi : 8; } Bits; } HighWord; } LDT_ENTRY, *PLDT_ENTRY; #line 3712 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 4774 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 4930 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 5381 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // // Define the size of the 80387 save area, which is in the context frame. // typedef struct _WOW64_FLOATING_SAVE_AREA { DWORD ControlWord; DWORD StatusWord; DWORD TagWord; DWORD ErrorOffset; DWORD ErrorSelector; DWORD DataOffset; DWORD DataSelector; BYTE RegisterArea[80]; DWORD Cr0NpxState; } WOW64_FLOATING_SAVE_AREA; typedef WOW64_FLOATING_SAVE_AREA *PWOW64_FLOATING_SAVE_AREA; // // Context Frame // // This frame has a several purposes: 1) it is used as an argument to // NtContinue, 2) is is used to constuct a call frame for APC delivery, // and 3) it is used in the user level thread creation routines. // // The layout of the record conforms to a standard call frame. // typedef struct _WOW64_CONTEXT { // // The flags values within this flag control the contents of // a CONTEXT record. // // If the context record is used as an input parameter, then // for each portion of the context record controlled by a flag // whose value is set, it is assumed that that portion of the // context record contains valid context. If the context record // is being used to modify a threads context, then only that // portion of the threads context will be modified. // // If the context record is used as an IN OUT parameter to capture // the context of a thread, then only those portions of the thread's // context corresponding to set flags will be returned. // // The context record is never used as an OUT only parameter. // DWORD ContextFlags; // // This section is specified/returned if CONTEXT_DEBUG_REGISTERS is // set in ContextFlags. Note that CONTEXT_DEBUG_REGISTERS is NOT // included in CONTEXT_FULL. // DWORD Dr0; DWORD Dr1; DWORD Dr2; DWORD Dr3; DWORD Dr6; DWORD Dr7; // // This section is specified/returned if the // ContextFlags word contians the flag CONTEXT_FLOATING_POINT. // WOW64_FLOATING_SAVE_AREA FloatSave; // // This section is specified/returned if the // ContextFlags word contians the flag CONTEXT_SEGMENTS. // DWORD SegGs; DWORD SegFs; DWORD SegEs; DWORD SegDs; // // This section is specified/returned if the // ContextFlags word contians the flag CONTEXT_INTEGER. // DWORD Edi; DWORD Esi; DWORD Ebx; DWORD Edx; DWORD Ecx; DWORD Eax; // // This section is specified/returned if the // ContextFlags word contians the flag CONTEXT_CONTROL. // DWORD Ebp; DWORD Eip; DWORD SegCs; // MUST BE SANITIZED DWORD EFlags; // MUST BE SANITIZED DWORD Esp; DWORD SegSs; // // This section is specified/returned if the ContextFlags word // contains the flag CONTEXT_EXTENDED_REGISTERS. // The format and contexts are processor specific // BYTE ExtendedRegisters[512]; } WOW64_CONTEXT; typedef WOW64_CONTEXT *PWOW64_CONTEXT; // // Exception record definition. // typedef struct _EXCEPTION_RECORD { DWORD ExceptionCode; DWORD ExceptionFlags; struct _EXCEPTION_RECORD *ExceptionRecord; PVOID ExceptionAddress; DWORD NumberParameters; ULONG_PTR ExceptionInformation[15]; } EXCEPTION_RECORD; typedef EXCEPTION_RECORD *PEXCEPTION_RECORD; typedef struct _EXCEPTION_RECORD32 { DWORD ExceptionCode; DWORD ExceptionFlags; DWORD ExceptionRecord; DWORD ExceptionAddress; DWORD NumberParameters; DWORD ExceptionInformation[15]; } EXCEPTION_RECORD32, *PEXCEPTION_RECORD32; typedef struct _EXCEPTION_RECORD64 { DWORD ExceptionCode; DWORD ExceptionFlags; DWORD64 ExceptionRecord; DWORD64 ExceptionAddress; DWORD NumberParameters; DWORD __unusedAlignment; DWORD64 ExceptionInformation[15]; } EXCEPTION_RECORD64, *PEXCEPTION_RECORD64; // // Typedef for pointer returned by exception_info() // typedef struct _EXCEPTION_POINTERS { PEXCEPTION_RECORD ExceptionRecord; PCONTEXT ContextRecord; } EXCEPTION_POINTERS, *PEXCEPTION_POINTERS; typedef PVOID PACCESS_TOKEN; typedef PVOID PSECURITY_DESCRIPTOR; typedef PVOID PSID; //////////////////////////////////////////////////////////////////////// // // // ACCESS MASK // // // //////////////////////////////////////////////////////////////////////// // // Define the access mask as a longword sized structure divided up as // follows: // // 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 // 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 // +---------------+---------------+-------------------------------+ // |G|G|G|G|Res'd|A| StandardRights| SpecificRights | // |R|W|E|A| |S| | | // +-+-------------+---------------+-------------------------------+ // // typedef struct _ACCESS_MASK { // WORD SpecificRights; // BYTE StandardRights; // BYTE AccessSystemAcl : 1; // BYTE Reserved : 3; // BYTE GenericAll : 1; // BYTE GenericExecute : 1; // BYTE GenericWrite : 1; // BYTE GenericRead : 1; // } ACCESS_MASK; // typedef ACCESS_MASK *PACCESS_MASK; // // but to make life simple for programmer's we'll allow them to specify // a desired access mask by simply OR'ing together mulitple single rights // and treat an access mask as a DWORD. For example // // DesiredAccess = DELETE | READ_CONTROL // // So we'll declare ACCESS_MASK as DWORD // // begin_wdm typedef DWORD ACCESS_MASK; typedef ACCESS_MASK *PACCESS_MASK; //////////////////////////////////////////////////////////////////////// // // // ACCESS TYPES // // // //////////////////////////////////////////////////////////////////////// // begin_wdm // // The following are masks for the predefined standard access types // // // AccessSystemAcl access type // // // MaximumAllowed access type // // // These are the generic rights. // // // Define the generic mapping array. This is used to denote the // mapping of each generic access right to a specific access mask. // typedef struct _GENERIC_MAPPING { ACCESS_MASK GenericRead; ACCESS_MASK GenericWrite; ACCESS_MASK GenericExecute; ACCESS_MASK GenericAll; } GENERIC_MAPPING; typedef GENERIC_MAPPING *PGENERIC_MAPPING; //////////////////////////////////////////////////////////////////////// // // // LUID_AND_ATTRIBUTES // // // //////////////////////////////////////////////////////////////////////// // // #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\pshpack4.h" /*++ Copyright (c) Microsoft Corporation. All rights reserved. Module Name: pshpack4.h Abstract: This file turns 4 byte packing of structures on. (That is, it disables automatic alignment of structure fields.) An include file is needed because various compilers do this in different ways. For Microsoft compatible compilers, this files uses the push option to the pack pragma so that the poppack.h include file can restore the previous packing reliably. The file poppack.h is the complement to this file. --*/ #pragma warning(disable:4103) #pragma pack(push,4) #line 30 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\pshpack4.h" #line 33 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\pshpack4.h" #line 34 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\pshpack4.h" #line 5667 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" typedef struct _LUID_AND_ATTRIBUTES { LUID Luid; DWORD Attributes; } LUID_AND_ATTRIBUTES, * PLUID_AND_ATTRIBUTES; typedef LUID_AND_ATTRIBUTES LUID_AND_ATTRIBUTES_ARRAY[1]; typedef LUID_AND_ATTRIBUTES_ARRAY *PLUID_AND_ATTRIBUTES_ARRAY; #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\poppack.h" /*++ Copyright (c) Microsoft Corporation. All rights reserved. Module Name: poppack.h Abstract: This file turns packing of structures off. (That is, it enables automatic alignment of structure fields.) An include file is needed because various compilers do this in different ways. poppack.h is the complement to pshpack?.h. An inclusion of poppack.h MUST ALWAYS be preceded by an inclusion of one of pshpack?.h, in one-to-one correspondence. For Microsoft compatible compilers, this file uses the pop option to the pack pragma so that it can restore the previous saved by the pshpack?.h include file. --*/ #pragma warning(disable:4103) #pragma pack(pop) #line 33 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\poppack.h" #line 36 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\poppack.h" #line 37 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\poppack.h" #line 5676 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" //////////////////////////////////////////////////////////////////////// // // // Security Id (SID) // // // //////////////////////////////////////////////////////////////////////// // // // Pictorially the structure of an SID is as follows: // // 1 1 1 1 1 1 // 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 // +---------------------------------------------------------------+ // | SubAuthorityCount |Reserved1 (SBZ)| Revision | // +---------------------------------------------------------------+ // | IdentifierAuthority[0] | // +---------------------------------------------------------------+ // | IdentifierAuthority[1] | // +---------------------------------------------------------------+ // | IdentifierAuthority[2] | // +---------------------------------------------------------------+ // | | // +- - - - - - - - SubAuthority[] - - - - - - - - -+ // | | // +---------------------------------------------------------------+ // // // begin_ntifs typedef struct _SID_IDENTIFIER_AUTHORITY { BYTE Value[6]; } SID_IDENTIFIER_AUTHORITY, *PSID_IDENTIFIER_AUTHORITY; #line 5714 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" typedef struct _SID { BYTE Revision; BYTE SubAuthorityCount; SID_IDENTIFIER_AUTHORITY IdentifierAuthority; DWORD SubAuthority[1]; #line 5727 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" } SID, *PISID; #line 5729 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // in a future release. #line 5739 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" typedef enum _SID_NAME_USE { SidTypeUser = 1, SidTypeGroup, SidTypeDomain, SidTypeAlias, SidTypeWellKnownGroup, SidTypeDeletedAccount, SidTypeInvalid, SidTypeUnknown, SidTypeComputer, SidTypeLabel } SID_NAME_USE, *PSID_NAME_USE; typedef struct _SID_AND_ATTRIBUTES { PSID Sid; DWORD Attributes; } SID_AND_ATTRIBUTES, * PSID_AND_ATTRIBUTES; typedef SID_AND_ATTRIBUTES SID_AND_ATTRIBUTES_ARRAY[1]; typedef SID_AND_ATTRIBUTES_ARRAY *PSID_AND_ATTRIBUTES_ARRAY; typedef ULONG_PTR SID_HASH_ENTRY, *PSID_HASH_ENTRY; typedef struct _SID_AND_ATTRIBUTES_HASH { DWORD SidCount; PSID_AND_ATTRIBUTES SidAttr; SID_HASH_ENTRY Hash[32]; } SID_AND_ATTRIBUTES_HASH, *PSID_AND_ATTRIBUTES_HASH; ///////////////////////////////////////////////////////////////////////////// // // // Universal well-known SIDs // // // // Null SID S-1-0-0 // // World S-1-1-0 // // Local S-1-2-0 // // Creator Owner ID S-1-3-0 // // Creator Group ID S-1-3-1 // // Creator Owner Server ID S-1-3-2 // // Creator Group Server ID S-1-3-3 // // // // (Non-unique IDs) S-1-4 // // // ///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// // // // NT well-known SIDs // // // // NT Authority S-1-5 // // Dialup S-1-5-1 // // // // Network S-1-5-2 // // Batch S-1-5-3 // // Interactive S-1-5-4 // // (Logon IDs) S-1-5-5-X-Y // // Service S-1-5-6 // // AnonymousLogon S-1-5-7 (aka null logon session) // // Proxy S-1-5-8 // // Enterprise DC (EDC) S-1-5-9 (aka domain controller account) // // Self S-1-5-10 (self RID) // // Authenticated User S-1-5-11 (Authenticated user somewhere) // // Restricted Code S-1-5-12 (Running restricted code) // // Terminal Server S-1-5-13 (Running on Terminal Server) // // Remote Logon S-1-5-14 (Remote Interactive Logon) // // This Organization S-1-5-15 // // // // IUser S-1-5-17 // Local System S-1-5-18 // // Local Service S-1-5-19 // // Network Service S-1-5-20 // // // // (NT non-unique IDs) S-1-5-0x15-... (NT Domain Sids) // // // // (Built-in domain) S-1-5-0x20 // // // // (Security Package IDs) S-1-5-0x40 // // NTLM Authentication S-1-5-0x40-10 // // SChannel Authentication S-1-5-0x40-14 // // Digest Authentication S-1-5-0x40-21 // // // // Other Organization S-1-5-1000 (>=1000 can not be filtered) // // // // // // NOTE: the relative identifier values (RIDs) determine which security // // boundaries the SID is allowed to cross. Before adding new RIDs, // // a determination needs to be made regarding which range they should // // be added to in order to ensure proper "SID filtering" // // // /////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// // // // well-known domain relative sub-authority values (RIDs)... // // // ///////////////////////////////////////////////////////////////////////////// // Well-known users ... // well-known groups ... // well-known aliases ... // // SECURITY_MANDATORY_MAXIMUM_USER_RID is the highest RID that // can be set by a usermode caller. // // // Well known SID definitions for lookup. // typedef enum { WinNullSid = 0, WinWorldSid = 1, WinLocalSid = 2, WinCreatorOwnerSid = 3, WinCreatorGroupSid = 4, WinCreatorOwnerServerSid = 5, WinCreatorGroupServerSid = 6, WinNtAuthoritySid = 7, WinDialupSid = 8, WinNetworkSid = 9, WinBatchSid = 10, WinInteractiveSid = 11, WinServiceSid = 12, WinAnonymousSid = 13, WinProxySid = 14, WinEnterpriseControllersSid = 15, WinSelfSid = 16, WinAuthenticatedUserSid = 17, WinRestrictedCodeSid = 18, WinTerminalServerSid = 19, WinRemoteLogonIdSid = 20, WinLogonIdsSid = 21, WinLocalSystemSid = 22, WinLocalServiceSid = 23, WinNetworkServiceSid = 24, WinBuiltinDomainSid = 25, WinBuiltinAdministratorsSid = 26, WinBuiltinUsersSid = 27, WinBuiltinGuestsSid = 28, WinBuiltinPowerUsersSid = 29, WinBuiltinAccountOperatorsSid = 30, WinBuiltinSystemOperatorsSid = 31, WinBuiltinPrintOperatorsSid = 32, WinBuiltinBackupOperatorsSid = 33, WinBuiltinReplicatorSid = 34, WinBuiltinPreWindows2000CompatibleAccessSid = 35, WinBuiltinRemoteDesktopUsersSid = 36, WinBuiltinNetworkConfigurationOperatorsSid = 37, WinAccountAdministratorSid = 38, WinAccountGuestSid = 39, WinAccountKrbtgtSid = 40, WinAccountDomainAdminsSid = 41, WinAccountDomainUsersSid = 42, WinAccountDomainGuestsSid = 43, WinAccountComputersSid = 44, WinAccountControllersSid = 45, WinAccountCertAdminsSid = 46, WinAccountSchemaAdminsSid = 47, WinAccountEnterpriseAdminsSid = 48, WinAccountPolicyAdminsSid = 49, WinAccountRasAndIasServersSid = 50, WinNTLMAuthenticationSid = 51, WinDigestAuthenticationSid = 52, WinSChannelAuthenticationSid = 53, WinThisOrganizationSid = 54, WinOtherOrganizationSid = 55, WinBuiltinIncomingForestTrustBuildersSid = 56, WinBuiltinPerfMonitoringUsersSid = 57, WinBuiltinPerfLoggingUsersSid = 58, WinBuiltinAuthorizationAccessSid = 59, WinBuiltinTerminalServerLicenseServersSid = 60, WinBuiltinDCOMUsersSid = 61, WinBuiltinIUsersSid = 62, WinIUserSid = 63, WinBuiltinCryptoOperatorsSid = 64, WinUntrustedLabelSid = 65, WinLowLabelSid = 66, WinMediumLabelSid = 67, WinHighLabelSid = 68, WinSystemLabelSid = 69, WinWriteRestrictedCodeSid = 70, WinCreatorOwnerRightsSid = 71, WinCacheablePrincipalsGroupSid = 72, WinNonCacheablePrincipalsGroupSid = 73, WinEnterpriseReadonlyControllersSid = 74, WinAccountReadonlyControllersSid = 75, WinBuiltinEventLogReadersGroup = 76, } WELL_KNOWN_SID_TYPE; // // Allocate the System Luid. The first 1000 LUIDs are reserved. // Use #999 here (0x3e7 = 999) // // end_ntifs //////////////////////////////////////////////////////////////////////// // // // User and Group related SID attributes // // // //////////////////////////////////////////////////////////////////////// // // Group attributes // // // User attributes // // (None yet defined.) //////////////////////////////////////////////////////////////////////// // // // ACL and ACE // // // //////////////////////////////////////////////////////////////////////// // // Define an ACL and the ACE format. The structure of an ACL header // followed by one or more ACEs. Pictorally the structure of an ACL header // is as follows: // // 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 // 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 // +-------------------------------+---------------+---------------+ // | AclSize | Sbz1 | AclRevision | // +-------------------------------+---------------+---------------+ // | Sbz2 | AceCount | // +-------------------------------+-------------------------------+ // // The current AclRevision is defined to be ACL_REVISION. // // AclSize is the size, in bytes, allocated for the ACL. This includes // the ACL header, ACES, and remaining free space in the buffer. // // AceCount is the number of ACES in the ACL. // // begin_wdm // This is the *current* ACL revision // This is the history of ACL revisions. Add a new one whenever // ACL_REVISION is updated typedef struct _ACL { BYTE AclRevision; BYTE Sbz1; WORD AclSize; WORD AceCount; WORD Sbz2; } ACL; typedef ACL *PACL; // end_wdm // begin_ntifs // // The structure of an ACE is a common ace header followed by ace type // specific data. Pictorally the structure of the common ace header is // as follows: // // 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 // 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 // +---------------+-------+-------+---------------+---------------+ // | AceSize | AceFlags | AceType | // +---------------+-------+-------+---------------+---------------+ // // AceType denotes the type of the ace, there are some predefined ace // types // // AceSize is the size, in bytes, of ace. // // AceFlags are the Ace flags for audit and inheritance, defined shortly. typedef struct _ACE_HEADER { BYTE AceType; BYTE AceFlags; WORD AceSize; } ACE_HEADER; typedef ACE_HEADER *PACE_HEADER; // // The following are the predefined ace types that go into the AceType // field of an Ace header. // // // The following are the inherit flags that go into the AceFlags field // of an Ace header. // // The following are the currently defined ACE flags that go into the // AceFlags field of an ACE header. Each ACE type has its own set of // AceFlags. // // SUCCESSFUL_ACCESS_ACE_FLAG - used only with system audit and alarm ACE // types to indicate that a message is generated for successful accesses. // // FAILED_ACCESS_ACE_FLAG - used only with system audit and alarm ACE types // to indicate that a message is generated for failed accesses. // // // SYSTEM_AUDIT and SYSTEM_ALARM AceFlags // // These control the signaling of audit and alarms for success or failure. // // // We'll define the structure of the predefined ACE types. Pictorally // the structure of the predefined ACE's is as follows: // // 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 // 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 // +---------------+-------+-------+---------------+---------------+ // | AceFlags | Resd |Inherit| AceSize | AceType | // +---------------+-------+-------+---------------+---------------+ // | Mask | // +---------------------------------------------------------------+ // | | // + + // | | // + Sid + // | | // + + // | | // +---------------------------------------------------------------+ // // Mask is the access mask associated with the ACE. This is either the // access allowed, access denied, audit, or alarm mask. // // Sid is the Sid associated with the ACE. // // The following are the four predefined ACE types. // Examine the AceType field in the Header to determine // which structure is appropriate to use for casting. typedef struct _ACCESS_ALLOWED_ACE { ACE_HEADER Header; ACCESS_MASK Mask; DWORD SidStart; } ACCESS_ALLOWED_ACE; typedef ACCESS_ALLOWED_ACE *PACCESS_ALLOWED_ACE; typedef struct _ACCESS_DENIED_ACE { ACE_HEADER Header; ACCESS_MASK Mask; DWORD SidStart; } ACCESS_DENIED_ACE; typedef ACCESS_DENIED_ACE *PACCESS_DENIED_ACE; typedef struct _SYSTEM_AUDIT_ACE { ACE_HEADER Header; ACCESS_MASK Mask; DWORD SidStart; } SYSTEM_AUDIT_ACE; typedef SYSTEM_AUDIT_ACE *PSYSTEM_AUDIT_ACE; typedef struct _SYSTEM_ALARM_ACE { ACE_HEADER Header; ACCESS_MASK Mask; DWORD SidStart; } SYSTEM_ALARM_ACE; typedef SYSTEM_ALARM_ACE *PSYSTEM_ALARM_ACE; typedef struct _SYSTEM_MANDATORY_LABEL_ACE { ACE_HEADER Header; ACCESS_MASK Mask; DWORD SidStart; } SYSTEM_MANDATORY_LABEL_ACE, *PSYSTEM_MANDATORY_LABEL_ACE; // end_ntifs typedef struct _ACCESS_ALLOWED_OBJECT_ACE { ACE_HEADER Header; ACCESS_MASK Mask; DWORD Flags; GUID ObjectType; GUID InheritedObjectType; DWORD SidStart; } ACCESS_ALLOWED_OBJECT_ACE, *PACCESS_ALLOWED_OBJECT_ACE; typedef struct _ACCESS_DENIED_OBJECT_ACE { ACE_HEADER Header; ACCESS_MASK Mask; DWORD Flags; GUID ObjectType; GUID InheritedObjectType; DWORD SidStart; } ACCESS_DENIED_OBJECT_ACE, *PACCESS_DENIED_OBJECT_ACE; typedef struct _SYSTEM_AUDIT_OBJECT_ACE { ACE_HEADER Header; ACCESS_MASK Mask; DWORD Flags; GUID ObjectType; GUID InheritedObjectType; DWORD SidStart; } SYSTEM_AUDIT_OBJECT_ACE, *PSYSTEM_AUDIT_OBJECT_ACE; typedef struct _SYSTEM_ALARM_OBJECT_ACE { ACE_HEADER Header; ACCESS_MASK Mask; DWORD Flags; GUID ObjectType; GUID InheritedObjectType; DWORD SidStart; } SYSTEM_ALARM_OBJECT_ACE, *PSYSTEM_ALARM_OBJECT_ACE; // // Callback ace support in post Win2000. // Resource managers can put their own data after Sidstart + Length of the sid // typedef struct _ACCESS_ALLOWED_CALLBACK_ACE { ACE_HEADER Header; ACCESS_MASK Mask; DWORD SidStart; // Opaque resouce manager specific data } ACCESS_ALLOWED_CALLBACK_ACE, *PACCESS_ALLOWED_CALLBACK_ACE; typedef struct _ACCESS_DENIED_CALLBACK_ACE { ACE_HEADER Header; ACCESS_MASK Mask; DWORD SidStart; // Opaque resouce manager specific data } ACCESS_DENIED_CALLBACK_ACE, *PACCESS_DENIED_CALLBACK_ACE; typedef struct _SYSTEM_AUDIT_CALLBACK_ACE { ACE_HEADER Header; ACCESS_MASK Mask; DWORD SidStart; // Opaque resouce manager specific data } SYSTEM_AUDIT_CALLBACK_ACE, *PSYSTEM_AUDIT_CALLBACK_ACE; typedef struct _SYSTEM_ALARM_CALLBACK_ACE { ACE_HEADER Header; ACCESS_MASK Mask; DWORD SidStart; // Opaque resouce manager specific data } SYSTEM_ALARM_CALLBACK_ACE, *PSYSTEM_ALARM_CALLBACK_ACE; typedef struct _ACCESS_ALLOWED_CALLBACK_OBJECT_ACE { ACE_HEADER Header; ACCESS_MASK Mask; DWORD Flags; GUID ObjectType; GUID InheritedObjectType; DWORD SidStart; // Opaque resouce manager specific data } ACCESS_ALLOWED_CALLBACK_OBJECT_ACE, *PACCESS_ALLOWED_CALLBACK_OBJECT_ACE; typedef struct _ACCESS_DENIED_CALLBACK_OBJECT_ACE { ACE_HEADER Header; ACCESS_MASK Mask; DWORD Flags; GUID ObjectType; GUID InheritedObjectType; DWORD SidStart; // Opaque resouce manager specific data } ACCESS_DENIED_CALLBACK_OBJECT_ACE, *PACCESS_DENIED_CALLBACK_OBJECT_ACE; typedef struct _SYSTEM_AUDIT_CALLBACK_OBJECT_ACE { ACE_HEADER Header; ACCESS_MASK Mask; DWORD Flags; GUID ObjectType; GUID InheritedObjectType; DWORD SidStart; // Opaque resouce manager specific data } SYSTEM_AUDIT_CALLBACK_OBJECT_ACE, *PSYSTEM_AUDIT_CALLBACK_OBJECT_ACE; typedef struct _SYSTEM_ALARM_CALLBACK_OBJECT_ACE { ACE_HEADER Header; ACCESS_MASK Mask; DWORD Flags; GUID ObjectType; GUID InheritedObjectType; DWORD SidStart; // Opaque resouce manager specific data } SYSTEM_ALARM_CALLBACK_OBJECT_ACE, *PSYSTEM_ALARM_CALLBACK_OBJECT_ACE; // // Currently define Flags for "OBJECT" ACE types. // // // The following declarations are used for setting and querying information // about and ACL. First are the various information classes available to // the user. // typedef enum _ACL_INFORMATION_CLASS { AclRevisionInformation = 1, AclSizeInformation } ACL_INFORMATION_CLASS; // // This record is returned/sent if the user is requesting/setting the // AclRevisionInformation // typedef struct _ACL_REVISION_INFORMATION { DWORD AclRevision; } ACL_REVISION_INFORMATION; typedef ACL_REVISION_INFORMATION *PACL_REVISION_INFORMATION; // // This record is returned if the user is requesting AclSizeInformation // typedef struct _ACL_SIZE_INFORMATION { DWORD AceCount; DWORD AclBytesInUse; DWORD AclBytesFree; } ACL_SIZE_INFORMATION; typedef ACL_SIZE_INFORMATION *PACL_SIZE_INFORMATION; //////////////////////////////////////////////////////////////////////// // // // SECURITY_DESCRIPTOR // // // //////////////////////////////////////////////////////////////////////// // // Define the Security Descriptor and related data types. // This is an opaque data structure. // // begin_wdm // // Current security descriptor revision value // // end_wdm // begin_ntifs typedef WORD SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL; // // Where: // // SE_OWNER_DEFAULTED - This boolean flag, when set, indicates that the // SID pointed to by the Owner field was provided by a // defaulting mechanism rather than explicitly provided by the // original provider of the security descriptor. This may // affect the treatment of the SID with respect to inheritence // of an owner. // // SE_GROUP_DEFAULTED - This boolean flag, when set, indicates that the // SID in the Group field was provided by a defaulting mechanism // rather than explicitly provided by the original provider of // the security descriptor. This may affect the treatment of // the SID with respect to inheritence of a primary group. // // SE_DACL_PRESENT - This boolean flag, when set, indicates that the // security descriptor contains a discretionary ACL. If this // flag is set and the Dacl field of the SECURITY_DESCRIPTOR is // null, then a null ACL is explicitly being specified. // // SE_DACL_DEFAULTED - This boolean flag, when set, indicates that the // ACL pointed to by the Dacl field was provided by a defaulting // mechanism rather than explicitly provided by the original // provider of the security descriptor. This may affect the // treatment of the ACL with respect to inheritence of an ACL. // This flag is ignored if the DaclPresent flag is not set. // // SE_SACL_PRESENT - This boolean flag, when set, indicates that the // security descriptor contains a system ACL pointed to by the // Sacl field. If this flag is set and the Sacl field of the // SECURITY_DESCRIPTOR is null, then an empty (but present) // ACL is being specified. // // SE_SACL_DEFAULTED - This boolean flag, when set, indicates that the // ACL pointed to by the Sacl field was provided by a defaulting // mechanism rather than explicitly provided by the original // provider of the security descriptor. This may affect the // treatment of the ACL with respect to inheritence of an ACL. // This flag is ignored if the SaclPresent flag is not set. // // SE_SELF_RELATIVE - This boolean flag, when set, indicates that the // security descriptor is in self-relative form. In this form, // all fields of the security descriptor are contiguous in memory // and all pointer fields are expressed as offsets from the // beginning of the security descriptor. This form is useful // for treating security descriptors as opaque data structures // for transmission in communication protocol or for storage on // secondary media. // // // // Pictorially the structure of a security descriptor is as follows: // // 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 // 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 // +---------------------------------------------------------------+ // | Control |Reserved1 (SBZ)| Revision | // +---------------------------------------------------------------+ // | Owner | // +---------------------------------------------------------------+ // | Group | // +---------------------------------------------------------------+ // | Sacl | // +---------------------------------------------------------------+ // | Dacl | // +---------------------------------------------------------------+ // // In general, this data structure should be treated opaquely to ensure future // compatibility. // // typedef struct _SECURITY_DESCRIPTOR_RELATIVE { BYTE Revision; BYTE Sbz1; SECURITY_DESCRIPTOR_CONTROL Control; DWORD Owner; DWORD Group; DWORD Sacl; DWORD Dacl; } SECURITY_DESCRIPTOR_RELATIVE, *PISECURITY_DESCRIPTOR_RELATIVE; typedef struct _SECURITY_DESCRIPTOR { BYTE Revision; BYTE Sbz1; SECURITY_DESCRIPTOR_CONTROL Control; PSID Owner; PSID Group; PACL Sacl; PACL Dacl; } SECURITY_DESCRIPTOR, *PISECURITY_DESCRIPTOR; // end_ntifs // Where: // // Revision - Contains the revision level of the security // descriptor. This allows this structure to be passed between // systems or stored on disk even though it is expected to // change in the future. // // Control - A set of flags which qualify the meaning of the // security descriptor or individual fields of the security // descriptor. // // Owner - is a pointer to an SID representing an object's owner. // If this field is null, then no owner SID is present in the // security descriptor. If the security descriptor is in // self-relative form, then this field contains an offset to // the SID, rather than a pointer. // // Group - is a pointer to an SID representing an object's primary // group. If this field is null, then no primary group SID is // present in the security descriptor. If the security descriptor // is in self-relative form, then this field contains an offset to // the SID, rather than a pointer. // // Sacl - is a pointer to a system ACL. This field value is only // valid if the DaclPresent control flag is set. If the // SaclPresent flag is set and this field is null, then a null // ACL is specified. If the security descriptor is in // self-relative form, then this field contains an offset to // the ACL, rather than a pointer. // // Dacl - is a pointer to a discretionary ACL. This field value is // only valid if the DaclPresent control flag is set. If the // DaclPresent flag is set and this field is null, then a null // ACL (unconditionally granting access) is specified. If the // security descriptor is in self-relative form, then this field // contains an offset to the ACL, rather than a pointer. // //////////////////////////////////////////////////////////////////////// // // // Object Type list for AccessCheckByType // // // //////////////////////////////////////////////////////////////////////// typedef struct _OBJECT_TYPE_LIST { WORD Level; WORD Sbz; GUID *ObjectType; } OBJECT_TYPE_LIST, *POBJECT_TYPE_LIST; // // DS values for Level // // // Parameters to NtAccessCheckByTypeAndAditAlarm // typedef enum _AUDIT_EVENT_TYPE { AuditEventObjectAccess, AuditEventDirectoryServiceAccess } AUDIT_EVENT_TYPE, *PAUDIT_EVENT_TYPE; // // DS values for Source and ObjectTypeName // //////////////////////////////////////////////////////////////////////// // // // Privilege Related Data Structures // // // //////////////////////////////////////////////////////////////////////// // end_ntifs // begin_wdm // // Privilege attributes // // // Privilege Set Control flags // // // Privilege Set - This is defined for a privilege set of one. // If more than one privilege is needed, then this structure // will need to be allocated with more space. // // Note: don't change this structure without fixing the INITIAL_PRIVILEGE_SET // structure (defined in se.h) // typedef struct _PRIVILEGE_SET { DWORD PrivilegeCount; DWORD Control; LUID_AND_ATTRIBUTES Privilege[1]; } PRIVILEGE_SET, * PPRIVILEGE_SET; //////////////////////////////////////////////////////////////////////// // // // NT Defined Privileges // // // //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// // // // Security Quality Of Service // // // // // //////////////////////////////////////////////////////////////////// // begin_wdm // // Impersonation Level // // Impersonation level is represented by a pair of bits in Windows. // If a new impersonation level is added or lowest value is changed from // 0 to something else, fix the Windows CreateFile call. // typedef enum _SECURITY_IMPERSONATION_LEVEL { SecurityAnonymous, SecurityIdentification, SecurityImpersonation, SecurityDelegation } SECURITY_IMPERSONATION_LEVEL, * PSECURITY_IMPERSONATION_LEVEL; //////////////////////////////////////////////////////////////////// // // // Token Object Definitions // // // // // //////////////////////////////////////////////////////////////////// // // Token Specific Access Rights. // #line 6881 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // // // Token Types // typedef enum _TOKEN_TYPE { TokenPrimary = 1, TokenImpersonation } TOKEN_TYPE; typedef TOKEN_TYPE *PTOKEN_TYPE; // // Token elevation values describe the relative strength of a given token. // A full token is a token with all groups and privileges to which the principal // is authorized. A limited token is one with some groups or privileges removed. // typedef enum _TOKEN_ELEVATION_TYPE { TokenElevationTypeDefault = 1, TokenElevationTypeFull, TokenElevationTypeLimited, } TOKEN_ELEVATION_TYPE, *PTOKEN_ELEVATION_TYPE; // // Token Information Classes. // typedef enum _TOKEN_INFORMATION_CLASS { TokenUser = 1, TokenGroups, TokenPrivileges, TokenOwner, TokenPrimaryGroup, TokenDefaultDacl, TokenSource, TokenType, TokenImpersonationLevel, TokenStatistics, TokenRestrictedSids, TokenSessionId, TokenGroupsAndPrivileges, TokenSessionReference, TokenSandBoxInert, TokenAuditPolicy, TokenOrigin, TokenElevationType, TokenLinkedToken, TokenElevation, TokenHasRestrictions, TokenAccessInformation, TokenVirtualizationAllowed, TokenVirtualizationEnabled, TokenIntegrityLevel, TokenUIAccess, TokenMandatoryPolicy, TokenLogonSid, MaxTokenInfoClass // MaxTokenInfoClass should always be the last enum } TOKEN_INFORMATION_CLASS, *PTOKEN_INFORMATION_CLASS; // // Token information class structures // typedef struct _TOKEN_USER { SID_AND_ATTRIBUTES User; } TOKEN_USER, *PTOKEN_USER; typedef struct _TOKEN_GROUPS { DWORD GroupCount; SID_AND_ATTRIBUTES Groups[1]; } TOKEN_GROUPS, *PTOKEN_GROUPS; typedef struct _TOKEN_PRIVILEGES { DWORD PrivilegeCount; LUID_AND_ATTRIBUTES Privileges[1]; } TOKEN_PRIVILEGES, *PTOKEN_PRIVILEGES; typedef struct _TOKEN_OWNER { PSID Owner; } TOKEN_OWNER, *PTOKEN_OWNER; typedef struct _TOKEN_PRIMARY_GROUP { PSID PrimaryGroup; } TOKEN_PRIMARY_GROUP, *PTOKEN_PRIMARY_GROUP; typedef struct _TOKEN_DEFAULT_DACL { PACL DefaultDacl; } TOKEN_DEFAULT_DACL, *PTOKEN_DEFAULT_DACL; typedef struct _TOKEN_GROUPS_AND_PRIVILEGES { DWORD SidCount; DWORD SidLength; PSID_AND_ATTRIBUTES Sids; DWORD RestrictedSidCount; DWORD RestrictedSidLength; PSID_AND_ATTRIBUTES RestrictedSids; DWORD PrivilegeCount; DWORD PrivilegeLength; PLUID_AND_ATTRIBUTES Privileges; LUID AuthenticationId; } TOKEN_GROUPS_AND_PRIVILEGES, *PTOKEN_GROUPS_AND_PRIVILEGES; typedef struct _TOKEN_LINKED_TOKEN { HANDLE LinkedToken; } TOKEN_LINKED_TOKEN, *PTOKEN_LINKED_TOKEN; typedef struct _TOKEN_ELEVATION { DWORD TokenIsElevated; } TOKEN_ELEVATION, *PTOKEN_ELEVATION; typedef struct _TOKEN_MANDATORY_LABEL { SID_AND_ATTRIBUTES Label; } TOKEN_MANDATORY_LABEL, *PTOKEN_MANDATORY_LABEL; typedef struct _TOKEN_MANDATORY_POLICY { DWORD Policy; } TOKEN_MANDATORY_POLICY, *PTOKEN_MANDATORY_POLICY; typedef struct _TOKEN_ACCESS_INFORMATION { PSID_AND_ATTRIBUTES_HASH SidHash; PSID_AND_ATTRIBUTES_HASH RestrictedSidHash; PTOKEN_PRIVILEGES Privileges; LUID AuthenticationId; TOKEN_TYPE TokenType; SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; TOKEN_MANDATORY_POLICY MandatoryPolicy; DWORD Flags; } TOKEN_ACCESS_INFORMATION, *PTOKEN_ACCESS_INFORMATION; // // Valid bits for each TOKEN_AUDIT_POLICY policy mask field. // typedef struct _TOKEN_AUDIT_POLICY { BYTE PerUserPolicy[(((50)) >> 1) + 1]; } TOKEN_AUDIT_POLICY, *PTOKEN_AUDIT_POLICY; typedef struct _TOKEN_SOURCE { CHAR SourceName[8]; LUID SourceIdentifier; } TOKEN_SOURCE, *PTOKEN_SOURCE; typedef struct _TOKEN_STATISTICS { LUID TokenId; LUID AuthenticationId; LARGE_INTEGER ExpirationTime; TOKEN_TYPE TokenType; SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; DWORD DynamicCharged; DWORD DynamicAvailable; DWORD GroupCount; DWORD PrivilegeCount; LUID ModifiedId; } TOKEN_STATISTICS, *PTOKEN_STATISTICS; typedef struct _TOKEN_CONTROL { LUID TokenId; LUID AuthenticationId; LUID ModifiedId; TOKEN_SOURCE TokenSource; } TOKEN_CONTROL, *PTOKEN_CONTROL; typedef struct _TOKEN_ORIGIN { LUID OriginatingLogonSession ; } TOKEN_ORIGIN, * PTOKEN_ORIGIN ; typedef enum _MANDATORY_LEVEL { MandatoryLevelUntrusted = 0, MandatoryLevelLow, MandatoryLevelMedium, MandatoryLevelHigh, MandatoryLevelSystem, MandatoryLevelSecureProcess, MandatoryLevelCount } MANDATORY_LEVEL, *PMANDATORY_LEVEL; // // Security Tracking Mode // typedef BOOLEAN SECURITY_CONTEXT_TRACKING_MODE, * PSECURITY_CONTEXT_TRACKING_MODE; // // Quality Of Service // typedef struct _SECURITY_QUALITY_OF_SERVICE { DWORD Length; SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode; BOOLEAN EffectiveOnly; } SECURITY_QUALITY_OF_SERVICE, * PSECURITY_QUALITY_OF_SERVICE; // // Used to represent information related to a thread impersonation // typedef struct _SE_IMPERSONATION_STATE { PACCESS_TOKEN Token; BOOLEAN CopyOnOpen; BOOLEAN EffectiveOnly; SECURITY_IMPERSONATION_LEVEL Level; } SE_IMPERSONATION_STATE, *PSE_IMPERSONATION_STATE; typedef DWORD SECURITY_INFORMATION, *PSECURITY_INFORMATION; #line 7159 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 7162 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 7168 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 7172 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // begin_wdm #line 7189 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 7192 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" typedef struct _JOB_SET_ARRAY { HANDLE JobHandle; // Handle to job object to insert DWORD MemberLevel; // Level of this job in the set. Must be > 0. Can be sparse. DWORD Flags; // Unused. Must be zero } JOB_SET_ARRAY, *PJOB_SET_ARRAY; typedef struct _NT_TIB { struct _EXCEPTION_REGISTRATION_RECORD *ExceptionList; PVOID StackBase; PVOID StackLimit; PVOID SubSystemTib; union { PVOID FiberData; DWORD Version; }; PVOID ArbitraryUserPointer; struct _NT_TIB *Self; } NT_TIB; typedef NT_TIB *PNT_TIB; // // 32 and 64 bit specific version for wow64 and the debugger // typedef struct _NT_TIB32 { DWORD ExceptionList; DWORD StackBase; DWORD StackLimit; DWORD SubSystemTib; union { DWORD FiberData; DWORD Version; }; DWORD ArbitraryUserPointer; DWORD Self; } NT_TIB32, *PNT_TIB32; typedef struct _NT_TIB64 { DWORD64 ExceptionList; DWORD64 StackBase; DWORD64 StackLimit; DWORD64 SubSystemTib; union { DWORD64 FiberData; DWORD Version; }; DWORD64 ArbitraryUserPointer; DWORD64 Self; } NT_TIB64, *PNT_TIB64; typedef struct _QUOTA_LIMITS { SIZE_T PagedPoolLimit; SIZE_T NonPagedPoolLimit; SIZE_T MinimumWorkingSetSize; SIZE_T MaximumWorkingSetSize; SIZE_T PagefileLimit; LARGE_INTEGER TimeLimit; } QUOTA_LIMITS, *PQUOTA_LIMITS; typedef enum _PS_RATE_PHASE { PsRateOneSecond = 0, PsRateTwoSecond, PsRateThreeSecond, PsRateMaxPhase } PS_RATE_PHASE; typedef union _RATE_QUOTA_LIMIT { DWORD RateData; struct { DWORD RatePhase : 4; DWORD RatePercent : 28; }; } RATE_QUOTA_LIMIT, *PRATE_QUOTA_LIMIT; #line 7296 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" typedef struct _QUOTA_LIMITS_EX { SIZE_T PagedPoolLimit; SIZE_T NonPagedPoolLimit; SIZE_T MinimumWorkingSetSize; SIZE_T MaximumWorkingSetSize; SIZE_T PagefileLimit; // Limit expressed in pages LARGE_INTEGER TimeLimit; SIZE_T WorkingSetLimit; // Limit expressed in pages SIZE_T Reserved2; SIZE_T Reserved3; SIZE_T Reserved4; DWORD Flags; RATE_QUOTA_LIMIT CpuRateLimit; } QUOTA_LIMITS_EX, *PQUOTA_LIMITS_EX; typedef struct _IO_COUNTERS { ULONGLONG ReadOperationCount; ULONGLONG WriteOperationCount; ULONGLONG OtherOperationCount; ULONGLONG ReadTransferCount; ULONGLONG WriteTransferCount; ULONGLONG OtherTransferCount; } IO_COUNTERS; typedef IO_COUNTERS *PIO_COUNTERS; typedef struct _JOBOBJECT_BASIC_ACCOUNTING_INFORMATION { LARGE_INTEGER TotalUserTime; LARGE_INTEGER TotalKernelTime; LARGE_INTEGER ThisPeriodTotalUserTime; LARGE_INTEGER ThisPeriodTotalKernelTime; DWORD TotalPageFaultCount; DWORD TotalProcesses; DWORD ActiveProcesses; DWORD TotalTerminatedProcesses; } JOBOBJECT_BASIC_ACCOUNTING_INFORMATION, *PJOBOBJECT_BASIC_ACCOUNTING_INFORMATION; typedef struct _JOBOBJECT_BASIC_LIMIT_INFORMATION { LARGE_INTEGER PerProcessUserTimeLimit; LARGE_INTEGER PerJobUserTimeLimit; DWORD LimitFlags; SIZE_T MinimumWorkingSetSize; SIZE_T MaximumWorkingSetSize; DWORD ActiveProcessLimit; ULONG_PTR Affinity; DWORD PriorityClass; DWORD SchedulingClass; } JOBOBJECT_BASIC_LIMIT_INFORMATION, *PJOBOBJECT_BASIC_LIMIT_INFORMATION; typedef struct _JOBOBJECT_EXTENDED_LIMIT_INFORMATION { JOBOBJECT_BASIC_LIMIT_INFORMATION BasicLimitInformation; IO_COUNTERS IoInfo; SIZE_T ProcessMemoryLimit; SIZE_T JobMemoryLimit; SIZE_T PeakProcessMemoryUsed; SIZE_T PeakJobMemoryUsed; } JOBOBJECT_EXTENDED_LIMIT_INFORMATION, *PJOBOBJECT_EXTENDED_LIMIT_INFORMATION; typedef struct _JOBOBJECT_BASIC_PROCESS_ID_LIST { DWORD NumberOfAssignedProcesses; DWORD NumberOfProcessIdsInList; ULONG_PTR ProcessIdList[1]; } JOBOBJECT_BASIC_PROCESS_ID_LIST, *PJOBOBJECT_BASIC_PROCESS_ID_LIST; typedef struct _JOBOBJECT_BASIC_UI_RESTRICTIONS { DWORD UIRestrictionsClass; } JOBOBJECT_BASIC_UI_RESTRICTIONS, *PJOBOBJECT_BASIC_UI_RESTRICTIONS; typedef struct _JOBOBJECT_SECURITY_LIMIT_INFORMATION { DWORD SecurityLimitFlags ; HANDLE JobToken ; PTOKEN_GROUPS SidsToDisable ; PTOKEN_PRIVILEGES PrivilegesToDelete ; PTOKEN_GROUPS RestrictedSids ; } JOBOBJECT_SECURITY_LIMIT_INFORMATION, *PJOBOBJECT_SECURITY_LIMIT_INFORMATION ; typedef struct _JOBOBJECT_END_OF_JOB_TIME_INFORMATION { DWORD EndOfJobTimeAction; } JOBOBJECT_END_OF_JOB_TIME_INFORMATION, *PJOBOBJECT_END_OF_JOB_TIME_INFORMATION; typedef struct _JOBOBJECT_ASSOCIATE_COMPLETION_PORT { PVOID CompletionKey; HANDLE CompletionPort; } JOBOBJECT_ASSOCIATE_COMPLETION_PORT, *PJOBOBJECT_ASSOCIATE_COMPLETION_PORT; typedef struct _JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION { JOBOBJECT_BASIC_ACCOUNTING_INFORMATION BasicInfo; IO_COUNTERS IoInfo; } JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION, *PJOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION; typedef struct _JOBOBJECT_JOBSET_INFORMATION { DWORD MemberLevel; } JOBOBJECT_JOBSET_INFORMATION, *PJOBOBJECT_JOBSET_INFORMATION; // // Completion Port Messages for job objects // // These values are returned via the lpNumberOfBytesTransferred parameter // // // Basic Limits // // // Extended Limits // // // UI restrictions for jobs // typedef enum _JOBOBJECTINFOCLASS { JobObjectBasicAccountingInformation = 1, JobObjectBasicLimitInformation, JobObjectBasicProcessIdList, JobObjectBasicUIRestrictions, JobObjectSecurityLimitInformation, JobObjectEndOfJobTimeInformation, JobObjectAssociateCompletionPortInformation, JobObjectBasicAndIoAccountingInformation, JobObjectExtendedLimitInformation, JobObjectJobSetInformation, MaxJobObjectInfoClass } JOBOBJECTINFOCLASS; // // // Timer Specific Access Rights. // typedef enum _LOGICAL_PROCESSOR_RELATIONSHIP { RelationProcessorCore, RelationNumaNode, RelationCache, RelationProcessorPackage } LOGICAL_PROCESSOR_RELATIONSHIP; typedef enum _PROCESSOR_CACHE_TYPE { CacheUnified, CacheInstruction, CacheData, CacheTrace } PROCESSOR_CACHE_TYPE; typedef struct _CACHE_DESCRIPTOR { BYTE Level; BYTE Associativity; WORD LineSize; DWORD Size; PROCESSOR_CACHE_TYPE Type; } CACHE_DESCRIPTOR, *PCACHE_DESCRIPTOR; typedef struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION { ULONG_PTR ProcessorMask; LOGICAL_PROCESSOR_RELATIONSHIP Relationship; union { struct { BYTE Flags; } ProcessorCore; struct { DWORD NodeNumber; } NumaNode; CACHE_DESCRIPTOR Cache; ULONGLONG Reserved[2]; }; } SYSTEM_LOGICAL_PROCESSOR_INFORMATION, *PSYSTEM_LOGICAL_PROCESSOR_INFORMATION; typedef struct _MEMORY_BASIC_INFORMATION { PVOID BaseAddress; PVOID AllocationBase; DWORD AllocationProtect; SIZE_T RegionSize; DWORD State; DWORD Protect; DWORD Type; } MEMORY_BASIC_INFORMATION, *PMEMORY_BASIC_INFORMATION; typedef struct _MEMORY_BASIC_INFORMATION32 { DWORD BaseAddress; DWORD AllocationBase; DWORD AllocationProtect; DWORD RegionSize; DWORD State; DWORD Protect; DWORD Type; } MEMORY_BASIC_INFORMATION32, *PMEMORY_BASIC_INFORMATION32; typedef struct __declspec(align(16)) _MEMORY_BASIC_INFORMATION64 { ULONGLONG BaseAddress; ULONGLONG AllocationBase; DWORD AllocationProtect; DWORD __alignment1; ULONGLONG RegionSize; DWORD State; DWORD Protect; DWORD Type; DWORD __alignment2; } MEMORY_BASIC_INFORMATION64, *PMEMORY_BASIC_INFORMATION64; // // Define access rights to files and directories // // // The FILE_READ_DATA and FILE_WRITE_DATA constants are also defined in // devioctl.h as FILE_READ_ACCESS and FILE_WRITE_ACCESS. The values for these // constants *MUST* always be in sync. // The values are redefined in devioctl.h because they must be available to // both DOS and NT. // // // Define the file notification information structure // typedef struct _FILE_NOTIFY_INFORMATION { DWORD NextEntryOffset; DWORD Action; DWORD FileNameLength; WCHAR FileName[1]; } FILE_NOTIFY_INFORMATION, *PFILE_NOTIFY_INFORMATION; // // Define segement buffer structure for scatter/gather read/write. // typedef union _FILE_SEGMENT_ELEMENT { PVOID64 Buffer; ULONGLONG Alignment; }FILE_SEGMENT_ELEMENT, *PFILE_SEGMENT_ELEMENT; // // The reparse GUID structure is used by all 3rd party layered drivers to // store data in a reparse point. For non-Microsoft tags, The GUID field // cannot be GUID_NULL. // The constraints on reparse tags are defined below. // Microsoft tags can also be used with this format of the reparse point buffer. // typedef struct _REPARSE_GUID_DATA_BUFFER { DWORD ReparseTag; WORD ReparseDataLength; WORD Reserved; GUID ReparseGuid; struct { BYTE DataBuffer[1]; } GenericReparseBuffer; } REPARSE_GUID_DATA_BUFFER, *PREPARSE_GUID_DATA_BUFFER; // // Maximum allowed size of the reparse data. // // // Predefined reparse tags. // These tags need to avoid conflicting with IO_REMOUNT defined in ntos\inc\io.h // // // The value of the following constant needs to satisfy the following conditions: // (1) Be at least as large as the largest of the reserved tags. // (2) Be strictly smaller than all the tags in use. // // // The reparse tags are a DWORD. The 32 bits are laid out as follows: // // 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 // 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 // +-+-+-+-+-----------------------+-------------------------------+ // |M|R|N|R| Reserved bits | Reparse Tag Value | // +-+-+-+-+-----------------------+-------------------------------+ // // M is the Microsoft bit. When set to 1, it denotes a tag owned by Microsoft. // All ISVs must use a tag with a 0 in this position. // Note: If a Microsoft tag is used by non-Microsoft software, the // behavior is not defined. // // R is reserved. Must be zero for non-Microsoft tags. // // N is name surrogate. When set to 1, the file represents another named // entity in the system. // // The M and N bits are OR-able. // The following macros check for the M and N bit values: // // // Macro to determine whether a reparse point tag corresponds to a tag // owned by Microsoft. // // // Macro to determine whether a reparse point tag is a name surrogate // // // I/O Completion Specific Access Rights. // // // Object Manager Symbolic Link Specific Access Rights. // // // ========================================= // Define GUIDs which represent well-known power schemes // ========================================= // // // Maximum Power Savings - indicates that very aggressive power savings measures will be used to help // stretch battery life. // // {a1841308-3541-4fab-bc81-f71556f20b4a} // extern "C" const GUID GUID_MAX_POWER_SAVINGS; // // No Power Savings - indicates that almost no power savings measures will be used. // // {8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c} // extern "C" const GUID GUID_MIN_POWER_SAVINGS; // // Typical Power Savings - indicates that fairly aggressive power savings measures will be used. // // {381b4222-f694-41f0-9685-ff5bb260df2e} // extern "C" const GUID GUID_TYPICAL_POWER_SAVINGS; // // This is a special GUID that represents "no subgroup" of settings. That is, it indicates // that settings that are in the root of the power policy hierarchy as opposed to settings // that are buried under a subgroup of settings. This should be used when querying for // power settings that may not fall into a subgroup. // extern "C" const GUID NO_SUBGROUP_GUID; // // This is a special GUID that represents "every power scheme". That is, it indicates // that any write to this power scheme should be reflected to every scheme present. // This allows users to write a single setting once and have it apply to all schemes. They // can then apply custom settings to specific power schemes that they care about. // extern "C" const GUID ALL_POWERSCHEMES_GUID; // // This is a special GUID that represents a 'personality' that each power scheme will have. // In other words, each power scheme will have this key indicating "I'm most like *this* base // power scheme." This individual setting will have one of three settings: // GUID_MAX_POWER_SAVINGS // GUID_MIN_POWER_SAVINGS // GUID_TYPICAL_POWER_SAVINGS // // This allows several features: // 1. Drivers and applications can register for notification of this GUID. So when this power // scheme is activiated, this GUID's setting will be sent across the system and drivers/applications // can see "GUID_MAX_POWER_SAVINGS" which will tell them in a generic fashion "get real aggressive // about conserving power". // 2. UserB may install a driver or application which creates power settings, and UserB may modify // those power settings. Now UserA logs in. How does he see those settings? They simply don't // exist in his private power key. Well they do exist over in the system power key. When we // enumerate all the power settings in this system power key and don't find a corresponding entry // in the user's private power key, then we can go look at this "personality" key in the users // power scheme. We can then go get a default value for the power setting, depending on which // "personality" power scheme is being operated on. Here's an example: // A. UserB installs an application that creates a power setting Seetting1 // B. UserB changes Setting1 to have a value of 50 because that's one of the possible settings // available for setting1. // C. UserB logs out // D. UserA logs in and his active power scheme is some custom scheme that was derived from // the GUID_TYPICAL_POWER_SAVINGS. But remember that UserA has no setting1 in his // private power key. // E. When activating UserA's selected power scheme, all power settings in the system power key will // be enumerated (including Setting1). // F. The power manager will see that UserA has no Setting1 power setting in his private power scheme. // G. The power manager will query UserA's power scheme for its personality and retrieve // GUID_TYPICAL_POWER_SAVINGS. // H. The power manager then looks in Setting1 in the system power key and looks in its set of default // values for the corresponding value for GUID_TYPICAL_POWER_SAVINGS power schemes. // I. This derived power setting is applied. extern "C" const GUID GUID_POWERSCHEME_PERSONALITY; // // Define a special GUID which will be used to define the active power scheme. // User will register for this power setting GUID, and when the active power // scheme changes, they'll get a callback where the payload is the GUID // representing the active powerscheme. // ( 31F9F286-5084-42FE-B720-2B0264993763 } // extern "C" const GUID GUID_ACTIVE_POWERSCHEME; // // ========================================= // Define GUIDs which represent well-known power settings // ========================================= // // Video settings // -------------- // // Specifies the subgroup which will contain all of the video // settings for a single policy. // extern "C" const GUID GUID_VIDEO_SUBGROUP; // // Specifies (in seconds) how long we wait after the last user input has been // recieved before we power off the video. // extern "C" const GUID GUID_VIDEO_POWERDOWN_TIMEOUT; // // Specifies if the operating system should use adaptive timers (based on // previous behavior) to power down the video, // extern "C" const GUID GUID_VIDEO_ADAPTIVE_POWERDOWN; // // Specifies if the monitor is currently being powered or not. // 02731015-4510-4526-99E6-E5A17EBD1AEA // extern "C" const GUID GUID_MONITOR_POWER_ON; // Harddisk settings // ----------------- // // Specifies the subgroup which will contain all of the harddisk // settings for a single policy. // extern "C" const GUID GUID_DISK_SUBGROUP; // // Specifies (in seconds) how long we wait after the last disk access // before we power off the disk. // extern "C" const GUID GUID_DISK_POWERDOWN_TIMEOUT; // // Specifies if the operating system should use adaptive timers (based on // previous behavior) to power down the disk, // extern "C" const GUID GUID_DISK_ADAPTIVE_POWERDOWN; // System sleep settings // --------------------- // // Specifies the subgroup which will contain all of the sleep // settings for a single policy. // { 238C9FA8-0AAD-41ED-83F4-97BE242C8F20 } // extern "C" const GUID GUID_SLEEP_SUBGROUP; // // Specifies an idle treshold percentage (0-100). The system must be this idle // over a period of time in order to idle to sleep. // extern "C" const GUID GUID_SLEEP_IDLE_THRESHOLD; // // Specifies (in seconds) how long we wait after the system is deemed // "idle" before moving to standby (S1, S2 or S3). // extern "C" const GUID GUID_STANDBY_TIMEOUT; // // Specifies (in seconds) how long we wait after the system is deemed // "idle" before moving to hibernate (S4). // extern "C" const GUID GUID_HIBERNATE_TIMEOUT; // // Specifies whether or not Fast S4 should be enabled if the system supports it // 94AC6D29-73CE-41A6-809F-6363BA21B47E // extern "C" const GUID GUID_HIBERNATE_FASTS4_POLICY; // // Define a GUID for controlling the criticality of sleep state transitions. // Critical sleep transitions do not query applications, services or drivers // before transitioning the platform to a sleep state. // // {B7A27025-E569-46c2-A504-2B96CAD225A1} // extern "C" const GUID GUID_CRITICAL_POWER_TRANSITION; // // Specifies if the system is entering or exiting 'away mode'. // 98A7F580-01F7-48AA-9C0F-44352C29E5C0 // extern "C" const GUID GUID_SYSTEM_AWAYMODE; // Specify whether away mode is allowed // // {25DFA149-5DD1-4736-B5AB-E8A37B5B8187} // extern "C" const GUID GUID_ALLOW_AWAYMODE; // // Defines a guid for enabling/disabling standby (S1-S3) states. This does not // affect hibernation (S4). // // {abfc2519-3608-4c2a-94ea-171b0ed546ab} // extern "C" const GUID GUID_ALLOW_STANDBY_STATES; // // Defines a guid for enabling/disabling the ability to wake via RTC. // // {BD3B718A-0680-4D9D-8AB2-E1D2B4AC806D} // extern "C" const GUID GUID_ALLOW_RTC_WAKE; // System button actions // --------------------- // // // Specifies the subgroup which will contain all of the system button // settings for a single policy. // extern "C" const GUID GUID_SYSTEM_BUTTON_SUBGROUP; // Specifies (in a POWER_ACTION_POLICY structure) the appropriate action to // take when the system power button is pressed. // extern "C" const GUID GUID_POWERBUTTON_ACTION; extern "C" const GUID GUID_POWERBUTTON_ACTION_FLAGS; // // Specifies (in a POWER_ACTION_POLICY structure) the appropriate action to // take when the system sleep button is pressed. // extern "C" const GUID GUID_SLEEPBUTTON_ACTION; extern "C" const GUID GUID_SLEEPBUTTON_ACTION_FLAGS; // // Specifies (in a POWER_ACTION_POLICY structure) the appropriate action to // take when the system sleep button is pressed. // { A7066653-8D6C-40A8-910E-A1F54B84C7E5 } // extern "C" const GUID GUID_USERINTERFACEBUTTON_ACTION; // // Specifies (in a POWER_ACTION_POLICY structure) the appropriate action to // take when the system lid is closed. // extern "C" const GUID GUID_LIDCLOSE_ACTION; extern "C" const GUID GUID_LIDCLOSE_ACTION_FLAGS; extern "C" const GUID GUID_LIDOPEN_POWERSTATE; // Battery Discharge Settings // -------------------------- // // Specifies the subgroup which will contain all of the battery discharge // settings for a single policy. // extern "C" const GUID GUID_BATTERY_SUBGROUP; // // 4 battery discharge alarm settings. // // GUID_BATTERY_DISCHARGE_ACTION_x - This is the action to take. It is a value // of type POWER_ACTION // GUID_BATTERY_DISCHARGE_LEVEL_x - This is the battery level (%) // GUID_BATTERY_DISCHARGE_FLAGS_x - Flags defined below: // POWER_ACTION_POLICY->EventCode flags // BATTERY_DISCHARGE_FLAGS_EVENTCODE_MASK // BATTERY_DISCHARGE_FLAGS_ENABLE extern "C" const GUID GUID_BATTERY_DISCHARGE_ACTION_0; extern "C" const GUID GUID_BATTERY_DISCHARGE_LEVEL_0; extern "C" const GUID GUID_BATTERY_DISCHARGE_FLAGS_0; extern "C" const GUID GUID_BATTERY_DISCHARGE_ACTION_1; extern "C" const GUID GUID_BATTERY_DISCHARGE_LEVEL_1; extern "C" const GUID GUID_BATTERY_DISCHARGE_FLAGS_1; extern "C" const GUID GUID_BATTERY_DISCHARGE_ACTION_2; extern "C" const GUID GUID_BATTERY_DISCHARGE_LEVEL_2; extern "C" const GUID GUID_BATTERY_DISCHARGE_FLAGS_2; extern "C" const GUID GUID_BATTERY_DISCHARGE_ACTION_3; extern "C" const GUID GUID_BATTERY_DISCHARGE_LEVEL_3; extern "C" const GUID GUID_BATTERY_DISCHARGE_FLAGS_3; // Processor power settings // ------------------------ // // Specifies the subgroup which will contain all of the processor // settings for a single policy. // extern "C" const GUID GUID_PROCESSOR_SETTINGS_SUBGROUP; extern "C" const GUID GUID_PROCESSOR_THROTTLE_POLICY; // // Specifies a percentage (between 0 and 100) that the processor frequency // should never go above. For example, if this value is set to 80, then // the processor frequency will never be throttled above 80 percent of its // maximum frequency by the system. // extern "C" const GUID GUID_PROCESSOR_THROTTLE_MAXIMUM; // // Specifies a percentage (between 0 and 100) that the processor frequency // should not drop below. For example, if this value is set to 50, then the // processor frequency will never be throttled below 50 percent of its // maximum frequency by the system. // extern "C" const GUID GUID_PROCESSOR_THROTTLE_MINIMUM; // // Specifies processor power settings for CState policy data // {68F262A7-F621-4069-B9A5-4874169BE23C} // extern "C" const GUID GUID_PROCESSOR_IDLESTATE_POLICY; // // Specifies processor power settings for PerfState policy data // {BBDC3814-18E9-4463-8A55-D197327C45C0} // extern "C" const GUID GUID_PROCESSOR_PERFSTATE_POLICY; // // Specifies active vs passive cooling. Although not directly related to // processor settings, it is the processor that gets throttled if we're doing // passive cooling, so it is fairly strongly related. // {94D3A615-A899-4AC5-AE2B-E4D8F634367F} // extern "C" const GUID GUID_SYSTEM_COOLING_POLICY; // Lock Console on Wake // -------------------- // // Specifies the behavior of the system when we wake from standby or // hibernate. If this is set, then we will cause the console to lock // after we resume. // extern "C" const GUID GUID_LOCK_CONSOLE_ON_WAKE; // AC/DC power source // ------------------ // // Specifies the power source for the system. consumers may register for // notification when the power source changes and will be notified with // one of 3 values: // 0 - Indicates the system is being powered by an AC power source. // 1 - Indicates the system is being powered by a DC power source. // 2 - Indicates the system is being powered by a short-term DC power // source. For example, this would be the case if the system is // being powed by a short-term battery supply in a backing UPS // system. When this value is recieved, the consumer should make // preparations for either a system hibernate or system shutdown. // // { 5D3E9A59-E9D5-4B00-A6BD-FF34FF516548 } extern "C" const GUID GUID_ACDC_POWER_SOURCE; // Lid state changes // ----------------- // // Specifies the current state of the lid (open or closed). The callback won't // be called at all until a lid device is found and its current state is known. // // Values: // // 0 - closed // 1 - opened // // { BA3E0F4D-B817-4094-A2D1-D56379E6A0F3 } // extern "C" const GUID GUID_LIDSWITCH_STATE_CHANGE; // Battery life remaining // ---------------------- // // Specifies the percentage of battery life remaining. The consumer // may register for notification in order to track battery life in // a fine-grained manner. // // Once registered, the consumer can expect to be notified as the battery // life percentage changes. // // The consumer will recieve a value between 0 and 100 (inclusive) which // indicates percent battery life remaining. // // { A7AD8041-B45A-4CAE-87A3-EECBB468A9E1 } extern "C" const GUID GUID_BATTERY_PERCENTAGE_REMAINING; // Notification to listeners that the system is fairly busy and won't be moving // into an idle state any time soon. This can be used as a hint to listeners // that now might be a good time to do background tasks. // extern "C" const GUID GUID_IDLE_BACKGROUND_TASK; // Notification to listeners that the system is fairly busy and won't be moving // into an idle state any time soon. This can be used as a hint to listeners // that now might be a good time to do background tasks. // // { CF23F240-2A54-48D8-B114-DE1518FF052E } extern "C" const GUID GUID_BACKGROUND_TASK_NOTIFICATION; // Define a GUID that will represent the action of a direct experience button // on the platform. Users will register for this DPPE setting and recieve // notification when the h/w button is pressed. // // { 1A689231-7399-4E9A-8F99-B71F999DB3FA } // extern "C" const GUID GUID_APPLAUNCH_BUTTON; // PCI Express power settings // ------------------------ // // Specifies the subgroup which will contain all of the PCI Express // settings for a single policy. // // {501a4d13-42af-4429-9fd1-a8218c268e20} // extern "C" const GUID GUID_PCIEXPRESS_SETTINGS_SUBGROUP; // Specifies the PCI Express ASPM power policy. // // {ee12f906-d277-404b-b6da-e5fa1a576df5} // extern "C" const GUID GUID_PCIEXPRESS_ASPM_POLICY; typedef enum _SYSTEM_POWER_STATE { PowerSystemUnspecified = 0, PowerSystemWorking = 1, PowerSystemSleeping1 = 2, PowerSystemSleeping2 = 3, PowerSystemSleeping3 = 4, PowerSystemHibernate = 5, PowerSystemShutdown = 6, PowerSystemMaximum = 7 } SYSTEM_POWER_STATE, *PSYSTEM_POWER_STATE; typedef enum { PowerActionNone = 0, PowerActionReserved, PowerActionSleep, PowerActionHibernate, PowerActionShutdown, PowerActionShutdownReset, PowerActionShutdownOff, PowerActionWarmEject } POWER_ACTION, *PPOWER_ACTION; typedef enum _DEVICE_POWER_STATE { PowerDeviceUnspecified = 0, PowerDeviceD0, PowerDeviceD1, PowerDeviceD2, PowerDeviceD3, PowerDeviceMaximum } DEVICE_POWER_STATE, *PDEVICE_POWER_STATE; typedef DWORD EXECUTION_STATE; typedef enum { LT_DONT_CARE, LT_LOWEST_LATENCY } LATENCY_TIME; // end_ntminiport //----------------------------------------------------------------------------- // Device Power Information // Accessable via CM_Get_DevInst_Registry_Property_Ex(CM_DRP_DEVICE_POWER_DATA) //----------------------------------------------------------------------------- typedef struct CM_Power_Data_s { DWORD PD_Size; DEVICE_POWER_STATE PD_MostRecentPowerState; DWORD PD_Capabilities; DWORD PD_D1Latency; DWORD PD_D2Latency; DWORD PD_D3Latency; DEVICE_POWER_STATE PD_PowerStateMapping[7]; SYSTEM_POWER_STATE PD_DeepestSystemWake; } CM_POWER_DATA, *PCM_POWER_DATA; #line 8447 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // begin_wdm typedef enum { SystemPowerPolicyAc, SystemPowerPolicyDc, VerifySystemPolicyAc, VerifySystemPolicyDc, SystemPowerCapabilities, SystemBatteryState, SystemPowerStateHandler, ProcessorStateHandler, SystemPowerPolicyCurrent, AdministratorPowerPolicy, SystemReserveHiberFile, ProcessorInformation, SystemPowerInformation, ProcessorStateHandler2, LastWakeTime, // Compare with KeQueryInterruptTime() LastSleepTime, // Compare with KeQueryInterruptTime() SystemExecutionState, SystemPowerStateNotifyHandler, ProcessorPowerPolicyAc, ProcessorPowerPolicyDc, VerifyProcessorPowerPolicyAc, VerifyProcessorPowerPolicyDc, ProcessorPowerPolicyCurrent, SystemPowerStateLogging, SystemPowerLoggingEntry, SetPowerSettingValue, NotifyUserPowerSetting, GetPowerTransitionVetoes, SetPowerTransitionVeto, SystemVideoState, TraceApplicationPowerMessage, TraceApplicationPowerMessageEnd, ProcessorPerfStates, ProcessorIdleStates, ProcessorThrottleStates, SystemWakeSource, SystemHiberFileInformation, TraceServicePowerMessage, ProcessorLoad, PowerShutdownNotification } POWER_INFORMATION_LEVEL; // // Power Transition Vetos // //#define PO_TRANSITION_VETO_TYPE_DRIVER 0x00000004 typedef struct _PO_TRANSITION_VETO_REASON { DWORD ResourceId; DWORD ModuleNameOffset; } PO_TRANSITION_VETO_REASON, *PPO_TRANSITION_VETO_REASON; typedef struct _PO_TRANSITION_VETO_WINDOW { HANDLE Handle; } PO_TRANSITION_VETO_WINDOW, *PPO_TRANSITION_VETO_WINDOW; typedef struct _PO_TRANSITION_VETO_SERVICE { DWORD ServiceNameOffset; } PO_TRANSITION_VETO_SERVICE, *PPO_TRANSITION_VETO_SERVICE; /* typedef struct _PO_TRANSITION_VETO_DRIVER { DWORD InstancePathOffset; DWORD DriverNameOffset; } PO_TRANSITION_VETO_DRIVER, *PPO_TRANSITION_VETO_DRIVER; */ typedef struct _PO_TRANSITION_VETO { DWORD Type; PO_TRANSITION_VETO_REASON Reason; DWORD ProcessId; union { PO_TRANSITION_VETO_WINDOW Window; PO_TRANSITION_VETO_SERVICE Service; //PO_TRANSITION_VETO_DRIVER Driver; }; } PO_TRANSITION_VETO, *PPO_TRANSITION_VETO; typedef struct _PO_TRANSITION_VETOES { DWORD Count; PO_TRANSITION_VETO Vetoes[1]; } PO_TRANSITION_VETOES, *PPO_TRANSITION_VETOES; // // Power Setting definitions // typedef enum { PoAc, PoDc, PoHot, PoConditionMaximum } SYSTEM_POWER_CONDITION; typedef struct { // // Version of this structure. Currently should be set to // POWER_SETTING_VALUE_VERSION. // DWORD Version; // // GUID representing the power setting being applied. // GUID Guid; // // What power state should this setting be applied to? E.g. // AC, DC, thermal, ... // SYSTEM_POWER_CONDITION PowerCondition; // // Length (in bytes) of the 'Data' member. // DWORD DataLength; // // Data which contains the actual setting value. // BYTE Data[1]; } SET_POWER_SETTING_VALUE, *PSET_POWER_SETTING_VALUE; typedef struct { GUID Guid; } NOTIFY_USER_POWER_SETTING, *PNOTIFY_USER_POWER_SETTING; // // Package definition for an experience button device notification. When // someone registers for GUID_EXPERIENCE_BUTTON, this is the definition of // the setting data they'll get. // typedef struct _APPLICATIONLAUNCH_SETTING_VALUE { // // System time when the most recent button press ocurred. Note that this is // specified in 100ns internvals since January 1, 1601. // LARGE_INTEGER ActivationTime; // // Reserved for internal use. // DWORD Flags; // // which instance of this device was pressed? // DWORD ButtonInstanceID; } APPLICATIONLAUNCH_SETTING_VALUE, *PAPPLICATIONLAUNCH_SETTING_VALUE; // // define platform roles // typedef enum { PlatformRoleUnspecified = 0, PlatformRoleDesktop, PlatformRoleMobile, PlatformRoleWorkstation, PlatformRoleEnterpriseServer, PlatformRoleSOHOServer, PlatformRoleAppliancePC, PlatformRolePerformanceServer, PlatformRoleMaximum } POWER_PLATFORM_ROLE; // // Wake source tracking // typedef enum { DeviceWakeSourceType, FixedWakeSourceType } PO_WAKE_SOURCE_TYPE, *PPO_WAKE_SOURCE_TYPE; typedef enum { FixedWakeSourcePowerButton, FixedWakeSourceSleepButton, FixedWakeSourceRtc } PO_FIXED_WAKE_SOURCE_TYPE, *PPO_FIXED_WAKE_SOURCE_TYPE; typedef struct _PO_WAKE_SOURCE_HEADER { PO_WAKE_SOURCE_TYPE Type; DWORD Size; } PO_WAKE_SOURCE_HEADER, *PPO_WAKE_SOURCE_HEADER; typedef struct _PO_WAKE_SOURCE_DEVICE { PO_WAKE_SOURCE_HEADER Header; WCHAR InstancePath[1]; } PO_WAKE_SOURCE_DEVICE, *PPO_WAKE_SOURCE_DEVICE; typedef struct _PO_WAKE_SOURCE_FIXED { PO_WAKE_SOURCE_HEADER Header; PO_FIXED_WAKE_SOURCE_TYPE FixedWakeSourceType; } PO_WAKE_SOURCE_FIXED, *PPO_WAKE_SOURCE_FIXED; typedef struct _PO_WAKE_SOURCE_INFO { DWORD Count; DWORD Offsets[1]; } PO_WAKE_SOURCE_INFO, *PPO_WAKE_SOURCE_INFO; typedef struct _PO_WAKE_SOURCE_HISTORY { DWORD Count; DWORD Offsets[1]; } PO_WAKE_SOURCE_HISTORY, *PPO_WAKE_SOURCE_HISTORY; // // System power manager capabilities // typedef struct { DWORD Granularity; DWORD Capacity; } BATTERY_REPORTING_SCALE, *PBATTERY_REPORTING_SCALE; #line 8684 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // typedef struct { BOOLEAN Enabled; BYTE PercentBusy[32]; } PPM_SIMULATED_PROCESSOR_LOAD, *PPPM_SIMULATED_PROCESSOR_LOAD; typedef struct { DWORD Frequency; DWORD Flags; DWORD PercentFrequency; } PPM_WMI_LEGACY_PERFSTATE, *PPPM_WMI_LEGACY_PERFSTATE; typedef struct { DWORD Latency; DWORD Power; DWORD TimeCheck; BYTE PromotePercent; BYTE DemotePercent; BYTE StateType; BYTE Reserved; DWORD StateFlags; DWORD Context; DWORD IdleHandler; DWORD Reserved1; // reserved for future use } PPM_WMI_IDLE_STATE, *PPPM_WMI_IDLE_STATE; typedef struct { DWORD Type; DWORD Count; DWORD TargetState; // current idle state DWORD OldState; // previous idle state DWORD64 TargetProcessors; PPM_WMI_IDLE_STATE State[1]; } PPM_WMI_IDLE_STATES, *PPPM_WMI_IDLE_STATES; typedef struct { DWORD Frequency; // in Mhz DWORD Power; // in milliwatts BYTE PercentFrequency; BYTE IncreaseLevel; // goto higher state BYTE DecreaseLevel; // goto lower state BYTE Type; // performance or throttle DWORD IncreaseTime; // in tick counts DWORD DecreaseTime; // in tick counts DWORD64 Control; // control value DWORD64 Status; // control value DWORD HitCount; DWORD Reserved1; // reserved for future use DWORD64 Reserved2; DWORD64 Reserved3; } PPM_WMI_PERF_STATE, *PPPM_WMI_PERF_STATE; typedef struct { DWORD Count; DWORD MaxFrequency; DWORD CurrentState; // current state DWORD MaxPerfState; // fastest state considering policy restrictions DWORD MinPerfState; // slowest state considering policy restrictions DWORD LowestPerfState; // slowest perf state, fixed, aka the "knee" DWORD ThermalConstraint; BYTE BusyAdjThreshold; BYTE PolicyType; // domain coordination BYTE Type; BYTE Reserved; DWORD TimerInterval; DWORD64 TargetProcessors; // domain affinity DWORD PStateHandler; DWORD PStateContext; DWORD TStateHandler; DWORD TStateContext; DWORD FeedbackHandler; DWORD Reserved1; DWORD64 Reserved2; PPM_WMI_PERF_STATE State[1]; } PPM_WMI_PERF_STATES, *PPPM_WMI_PERF_STATES; // // Accounting info. // typedef struct { DWORD IdleTransitions; DWORD FailedTransitions; DWORD InvalidBucketIndex; DWORD64 TotalTime; DWORD IdleTimeBuckets[6]; } PPM_IDLE_STATE_ACCOUNTING, *PPPM_IDLE_STATE_ACCOUNTING; typedef struct { DWORD StateCount; DWORD TotalTransitions; DWORD ResetCount; DWORD64 StartTime; PPM_IDLE_STATE_ACCOUNTING State[1]; } PPM_IDLE_ACCOUNTING, *PPPM_IDLE_ACCOUNTING; // // Definitions of coordination types for _PSD, _TSD, and _CSD BIOS objects from // the Acpi 3.0 specification // // // Definition of Microsoft PPM coordination types. // // // Processor Power Management WMI interface. // // {A5B32DDD-7F39-4abc-B892-900E43B59EBB} extern "C" const GUID PPM_PERFSTATE_CHANGE_GUID; #line 8808 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // {995e6b7f-d653-497a-b978-36a30c29bf01} extern "C" const GUID PPM_PERFSTATE_DOMAIN_CHANGE_GUID; #line 8812 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // {4838fe4f-f71c-4e51-9ecc-8430a7ac4c6c} extern "C" const GUID PPM_IDLESTATE_CHANGE_GUID; #line 8816 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // {5708cc20-7d40-4bf4-b4aa-2b01338d0126} extern "C" const GUID PPM_PERFSTATES_DATA_GUID; #line 8820 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // {ba138e10-e250-4ad7-8616-cf1a7ad410e7} extern "C" const GUID PPM_IDLESTATES_DATA_GUID; #line 8824 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // {e2a26f78-ae07-4ee0-a30f-ce354f5a94cd} extern "C" const GUID PPM_IDLE_ACCOUNTING_GUID; #line 8828 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // {a852c2c8-1a4c-423b-8c2c-f30d82931a88} extern "C" const GUID PPM_THERMALCONSTRAINT_GUID; #line 8832 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // {7fd18652-0cfe-40d2-b0a1-0b066a87759e} extern "C" const GUID PPM_PERFMON_PERFSTATE_GUID; #line 8836 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // {48f377b8-6880-4c7b-8bdc-380176c6654d} extern "C" const GUID PPM_THERMAL_POLICY_CHANGE_GUID; #line 8840 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" typedef struct { DWORD State; DWORD Status; DWORD Latency; DWORD Speed; DWORD Processor; } PPM_PERFSTATE_EVENT, *PPPM_PERFSTATE_EVENT; typedef struct { DWORD State; DWORD Latency; DWORD Speed; DWORD64 Processors; } PPM_PERFSTATE_DOMAIN_EVENT, *PPPM_PERFSTATE_DOMAIN_EVENT; typedef struct { DWORD NewState; DWORD OldState; DWORD64 Processors; } PPM_IDLESTATE_EVENT, *PPPM_IDLESTATE_EVENT; typedef struct { DWORD ThermalConstraint; DWORD64 Processors; } PPM_THERMALCHANGE_EVENT, *PPPM_THERMALCHANGE_EVENT; #pragma warning(push) #pragma warning(disable:4121) typedef struct { BYTE Mode; DWORD64 Processors; } PPM_THERMAL_POLICY_EVENT, *PPPM_THERMAL_POLICY_EVENT; #pragma warning(pop) // Power Policy Management interfaces // typedef struct { POWER_ACTION Action; DWORD Flags; DWORD EventCode; } POWER_ACTION_POLICY, *PPOWER_ACTION_POLICY; // POWER_ACTION_POLICY->Flags: // POWER_ACTION_POLICY->EventCode flags // Note: for battery alarm EventCodes, the ID of the battery alarm << 16 is ORed // into the flags. For example: DISCHARGE_POLICY_LOW << 16 // // The GUID_BATTERY_DISCHARGE_FLAGS_x power settings use a subset of EventCode // flags. The POWER_FORCE_TRIGGER_RESET flag doesn't make sense for a battery // alarm so it is overloaded for other purposes (gerneral enable/disable). // system battery drain policies typedef struct { BOOLEAN Enable; BYTE Spare[3]; DWORD BatteryLevel; POWER_ACTION_POLICY PowerPolicy; SYSTEM_POWER_STATE MinSystemState; } SYSTEM_POWER_LEVEL, *PSYSTEM_POWER_LEVEL; // Discharge policy constants // system power policies typedef struct _SYSTEM_POWER_POLICY { DWORD Revision; // 1 // events POWER_ACTION_POLICY PowerButton; POWER_ACTION_POLICY SleepButton; POWER_ACTION_POLICY LidClose; SYSTEM_POWER_STATE LidOpenWake; DWORD Reserved; // "system idle" detection POWER_ACTION_POLICY Idle; DWORD IdleTimeout; BYTE IdleSensitivity; BYTE DynamicThrottle; BYTE Spare2[2]; // meaning of power action "sleep" SYSTEM_POWER_STATE MinSleep; SYSTEM_POWER_STATE MaxSleep; SYSTEM_POWER_STATE ReducedLatencySleep; DWORD WinLogonFlags; DWORD Spare3; // parameters for dozing // DWORD DozeS4Timeout; // battery policies DWORD BroadcastCapacityResolution; SYSTEM_POWER_LEVEL DischargePolicy[4]; // video policies DWORD VideoTimeout; BOOLEAN VideoDimDisplay; DWORD VideoReserved[3]; // hard disk policies DWORD SpindownTimeout; // processor policies BOOLEAN OptimizeForPower; BYTE FanThrottleTolerance; BYTE ForcedThrottle; BYTE MinThrottle; POWER_ACTION_POLICY OverThrottled; } SYSTEM_POWER_POLICY, *PSYSTEM_POWER_POLICY; // processor power policy state // // Processor Idle State Policy. // typedef struct { DWORD TimeCheck; BYTE DemotePercent; BYTE PromotePercent; BYTE Spare[2]; } PROCESSOR_IDLESTATE_INFO, *PPROCESSOR_IDLESTATE_INFO; typedef struct { WORD Revision; union { WORD AsWORD ; struct { WORD AllowScaling : 1; WORD Disabled : 1; WORD Reserved : 14; }; } Flags; DWORD PolicyCount; PROCESSOR_IDLESTATE_INFO Policy[0x3]; } PROCESSOR_IDLESTATE_POLICY, *PPROCESSOR_IDLESTATE_POLICY; // // Legacy Processor Policy. This is only provided to allow legacy // applications to compile. New applications must use // PROCESSOR_IDLESTATE_POLICY. // typedef struct _PROCESSOR_POWER_POLICY_INFO { // Time based information (will be converted to kernel units) DWORD TimeCheck; // in US DWORD DemoteLimit; // in US DWORD PromoteLimit; // in US // Percentage based information BYTE DemotePercent; BYTE PromotePercent; BYTE Spare[2]; // Flags DWORD AllowDemotion:1; DWORD AllowPromotion:1; DWORD Reserved:30; } PROCESSOR_POWER_POLICY_INFO, *PPROCESSOR_POWER_POLICY_INFO; // processor power policy typedef struct _PROCESSOR_POWER_POLICY { DWORD Revision; // 1 // Dynamic Throttling Policy BYTE DynamicThrottle; BYTE Spare[3]; // Flags DWORD DisableCStates:1; DWORD Reserved:31; // System policy information // The Array is last, in case it needs to be grown and the structure // revision incremented. DWORD PolicyCount; PROCESSOR_POWER_POLICY_INFO Policy[3]; } PROCESSOR_POWER_POLICY, *PPROCESSOR_POWER_POLICY; // // Processor Perf State Policy. // typedef struct { DWORD Revision; BYTE MaxThrottle; BYTE MinThrottle; BYTE BusyAdjThreshold; union { BYTE Spare; union { BYTE AsBYTE ; struct { BYTE NoDomainAccounting : 1; BYTE IncreasePolicy: 2; BYTE DecreasePolicy: 2; BYTE Reserved : 3; }; } Flags; }; DWORD TimeCheck; DWORD IncreaseTime; DWORD DecreaseTime; DWORD IncreasePercent; DWORD DecreasePercent; } PROCESSOR_PERFSTATE_POLICY, *PPROCESSOR_PERFSTATE_POLICY; // administrator power policy overrides typedef struct _ADMINISTRATOR_POWER_POLICY { // meaning of power action "sleep" SYSTEM_POWER_STATE MinSleep; SYSTEM_POWER_STATE MaxSleep; // video policies DWORD MinVideoTimeout; DWORD MaxVideoTimeout; // disk policies DWORD MinSpindownTimeout; DWORD MaxSpindownTimeout; } ADMINISTRATOR_POWER_POLICY, *PADMINISTRATOR_POWER_POLICY; typedef struct { // Misc supported system features BOOLEAN PowerButtonPresent; BOOLEAN SleepButtonPresent; BOOLEAN LidPresent; BOOLEAN SystemS1; BOOLEAN SystemS2; BOOLEAN SystemS3; BOOLEAN SystemS4; // hibernate BOOLEAN SystemS5; // off BOOLEAN HiberFilePresent; BOOLEAN FullWake; BOOLEAN VideoDimPresent; BOOLEAN ApmPresent; BOOLEAN UpsPresent; // Processors BOOLEAN ThermalControl; BOOLEAN ProcessorThrottle; BYTE ProcessorMinThrottle; #line 9142 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" BYTE ProcessorMaxThrottle; BOOLEAN FastSystemS4; BYTE spare2[3]; #line 9146 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // Disk BOOLEAN DiskSpinDown; BYTE spare3[8]; // System Battery BOOLEAN SystemBatteriesPresent; BOOLEAN BatteriesAreShortTerm; BATTERY_REPORTING_SCALE BatteryScale[3]; // Wake SYSTEM_POWER_STATE AcOnLineWake; SYSTEM_POWER_STATE SoftLidWake; SYSTEM_POWER_STATE RtcWake; SYSTEM_POWER_STATE MinDeviceWakeState; // note this may change on driver load SYSTEM_POWER_STATE DefaultLowLatencyWake; } SYSTEM_POWER_CAPABILITIES, *PSYSTEM_POWER_CAPABILITIES; typedef struct { BOOLEAN AcOnLine; BOOLEAN BatteryPresent; BOOLEAN Charging; BOOLEAN Discharging; BOOLEAN Spare1[4]; DWORD MaxCapacity; DWORD RemainingCapacity; DWORD Rate; DWORD EstimatedTime; DWORD DefaultAlert1; DWORD DefaultAlert2; } SYSTEM_BATTERY_STATE, *PSYSTEM_BATTERY_STATE; // // Image Format // #line 1 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\pshpack4.h" /*++ Copyright (c) Microsoft Corporation. All rights reserved. Module Name: pshpack4.h Abstract: This file turns 4 byte packing of structures on. (That is, it disables automatic alignment of structure fields.) An include file is needed because various compilers do this in different ways. For Microsoft compatible compilers, this files uses the push option to the pack pragma so that the poppack.h include file can restore the previous packing reliably. The file poppack.h is the complement to this file. --*/ #pragma warning(disable:4103) #pragma pack(push,4) #line 30 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\pshpack4.h" #line 33 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\pshpack4.h" #line 34 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\pshpack4.h" #line 9190 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 1 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\pshpack2.h" /*++ Copyright (c) Microsoft Corporation. All rights reserved. Module Name: pshpack2.h Abstract: This file turns 2 byte packing of structures on. (That is, it disables automatic alignment of structure fields.) An include file is needed because various compilers do this in different ways. For Microsoft compatible compilers, this files uses the push option to the pack pragma so that the poppack.h include file can restore the previous packing reliably. The file poppack.h is the complement to this file. --*/ #pragma warning(disable:4103) #pragma pack(push,2) #line 30 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\pshpack2.h" #line 33 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\pshpack2.h" #line 34 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\pshpack2.h" #line 9198 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 9208 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" typedef struct _IMAGE_DOS_HEADER { // DOS .EXE header WORD e_magic; // Magic number WORD e_cblp; // Bytes on last page of file WORD e_cp; // Pages in file WORD e_crlc; // Relocations WORD e_cparhdr; // Size of header in paragraphs WORD e_minalloc; // Minimum extra paragraphs needed WORD e_maxalloc; // Maximum extra paragraphs needed WORD e_ss; // Initial (relative) SS value WORD e_sp; // Initial SP value WORD e_csum; // Checksum WORD e_ip; // Initial IP value WORD e_cs; // Initial (relative) CS value WORD e_lfarlc; // File address of relocation table WORD e_ovno; // Overlay number WORD e_res[4]; // Reserved words WORD e_oemid; // OEM identifier (for e_oeminfo) WORD e_oeminfo; // OEM information; e_oemid specific WORD e_res2[10]; // Reserved words LONG e_lfanew; // File address of new exe header } IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER; typedef struct _IMAGE_OS2_HEADER { // OS/2 .EXE header WORD ne_magic; // Magic number CHAR ne_ver; // Version number CHAR ne_rev; // Revision number WORD ne_enttab; // Offset of Entry Table WORD ne_cbenttab; // Number of bytes in Entry Table LONG ne_crc; // Checksum of whole file WORD ne_flags; // Flag word WORD ne_autodata; // Automatic data segment number WORD ne_heap; // Initial heap allocation WORD ne_stack; // Initial stack allocation LONG ne_csip; // Initial CS:IP setting LONG ne_sssp; // Initial SS:SP setting WORD ne_cseg; // Count of file segments WORD ne_cmod; // Entries in Module Reference Table WORD ne_cbnrestab; // Size of non-resident name table WORD ne_segtab; // Offset of Segment Table WORD ne_rsrctab; // Offset of Resource Table WORD ne_restab; // Offset of resident name table WORD ne_modtab; // Offset of Module Reference Table WORD ne_imptab; // Offset of Imported Names Table LONG ne_nrestab; // Offset of Non-resident Names Table WORD ne_cmovent; // Count of movable entries WORD ne_align; // Segment alignment shift count WORD ne_cres; // Count of resource segments BYTE ne_exetyp; // Target Operating system BYTE ne_flagsothers; // Other .EXE flags WORD ne_pretthunks; // offset to return thunks WORD ne_psegrefbytes; // offset to segment ref. bytes WORD ne_swaparea; // Minimum code swap area size WORD ne_expver; // Expected Windows version number } IMAGE_OS2_HEADER, *PIMAGE_OS2_HEADER; typedef struct _IMAGE_VXD_HEADER { // Windows VXD header WORD e32_magic; // Magic number BYTE e32_border; // The byte ordering for the VXD BYTE e32_worder; // The word ordering for the VXD DWORD e32_level; // The EXE format level for now = 0 WORD e32_cpu; // The CPU type WORD e32_os; // The OS type DWORD e32_ver; // Module version DWORD e32_mflags; // Module flags DWORD e32_mpages; // Module # pages DWORD e32_startobj; // Object # for instruction pointer DWORD e32_eip; // Extended instruction pointer DWORD e32_stackobj; // Object # for stack pointer DWORD e32_esp; // Extended stack pointer DWORD e32_pagesize; // VXD page size DWORD e32_lastpagesize; // Last page size in VXD DWORD e32_fixupsize; // Fixup section size DWORD e32_fixupsum; // Fixup section checksum DWORD e32_ldrsize; // Loader section size DWORD e32_ldrsum; // Loader section checksum DWORD e32_objtab; // Object table offset DWORD e32_objcnt; // Number of objects in module DWORD e32_objmap; // Object page map offset DWORD e32_itermap; // Object iterated data map offset DWORD e32_rsrctab; // Offset of Resource Table DWORD e32_rsrccnt; // Number of resource entries DWORD e32_restab; // Offset of resident name table DWORD e32_enttab; // Offset of Entry Table DWORD e32_dirtab; // Offset of Module Directive Table DWORD e32_dircnt; // Number of module directives DWORD e32_fpagetab; // Offset of Fixup Page Table DWORD e32_frectab; // Offset of Fixup Record Table DWORD e32_impmod; // Offset of Import Module Name Table DWORD e32_impmodcnt; // Number of entries in Import Module Name Table DWORD e32_impproc; // Offset of Import Procedure Name Table DWORD e32_pagesum; // Offset of Per-Page Checksum Table DWORD e32_datapage; // Offset of Enumerated Data Pages DWORD e32_preload; // Number of preload pages DWORD e32_nrestab; // Offset of Non-resident Names Table DWORD e32_cbnrestab; // Size of Non-resident Name Table DWORD e32_nressum; // Non-resident Name Table Checksum DWORD e32_autodata; // Object # for automatic data object DWORD e32_debuginfo; // Offset of the debugging information DWORD e32_debuglen; // The length of the debugging info. in bytes DWORD e32_instpreload; // Number of instance pages in preload section of VXD file DWORD e32_instdemand; // Number of instance pages in demand load section of VXD file DWORD e32_heapsize; // Size of heap - for 16-bit apps BYTE e32_res3[12]; // Reserved words DWORD e32_winresoff; DWORD e32_winreslen; WORD e32_devid; // Device ID for VxD WORD e32_ddkver; // DDK version for VxD } IMAGE_VXD_HEADER, *PIMAGE_VXD_HEADER; #line 1 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\poppack.h" /*++ Copyright (c) Microsoft Corporation. All rights reserved. Module Name: poppack.h Abstract: This file turns packing of structures off. (That is, it enables automatic alignment of structure fields.) An include file is needed because various compilers do this in different ways. poppack.h is the complement to pshpack?.h. An inclusion of poppack.h MUST ALWAYS be preceded by an inclusion of one of pshpack?.h, in one-to-one correspondence. For Microsoft compatible compilers, this file uses the pop option to the pack pragma so that it can restore the previous saved by the pshpack?.h include file. --*/ #pragma warning(disable:4103) #pragma pack(pop) #line 33 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\poppack.h" #line 36 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\poppack.h" #line 37 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\poppack.h" #line 9320 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 9321 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // // File header format. // typedef struct _IMAGE_FILE_HEADER { WORD Machine; WORD NumberOfSections; DWORD TimeDateStamp; DWORD PointerToSymbolTable; DWORD NumberOfSymbols; WORD SizeOfOptionalHeader; WORD Characteristics; } IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER; // // Directory format. // typedef struct _IMAGE_DATA_DIRECTORY { DWORD VirtualAddress; DWORD Size; } IMAGE_DATA_DIRECTORY, *PIMAGE_DATA_DIRECTORY; // // Optional header format. // typedef struct _IMAGE_OPTIONAL_HEADER { // // Standard fields. // WORD Magic; BYTE MajorLinkerVersion; BYTE MinorLinkerVersion; DWORD SizeOfCode; DWORD SizeOfInitializedData; DWORD SizeOfUninitializedData; DWORD AddressOfEntryPoint; DWORD BaseOfCode; DWORD BaseOfData; // // NT additional fields. // DWORD ImageBase; DWORD SectionAlignment; DWORD FileAlignment; WORD MajorOperatingSystemVersion; WORD MinorOperatingSystemVersion; WORD MajorImageVersion; WORD MinorImageVersion; WORD MajorSubsystemVersion; WORD MinorSubsystemVersion; DWORD Win32VersionValue; DWORD SizeOfImage; DWORD SizeOfHeaders; DWORD CheckSum; WORD Subsystem; WORD DllCharacteristics; DWORD SizeOfStackReserve; DWORD SizeOfStackCommit; DWORD SizeOfHeapReserve; DWORD SizeOfHeapCommit; DWORD LoaderFlags; DWORD NumberOfRvaAndSizes; IMAGE_DATA_DIRECTORY DataDirectory[16]; } IMAGE_OPTIONAL_HEADER32, *PIMAGE_OPTIONAL_HEADER32; typedef struct _IMAGE_ROM_OPTIONAL_HEADER { WORD Magic; BYTE MajorLinkerVersion; BYTE MinorLinkerVersion; DWORD SizeOfCode; DWORD SizeOfInitializedData; DWORD SizeOfUninitializedData; DWORD AddressOfEntryPoint; DWORD BaseOfCode; DWORD BaseOfData; DWORD BaseOfBss; DWORD GprMask; DWORD CprMask[4]; DWORD GpValue; } IMAGE_ROM_OPTIONAL_HEADER, *PIMAGE_ROM_OPTIONAL_HEADER; typedef struct _IMAGE_OPTIONAL_HEADER64 { WORD Magic; BYTE MajorLinkerVersion; BYTE MinorLinkerVersion; DWORD SizeOfCode; DWORD SizeOfInitializedData; DWORD SizeOfUninitializedData; DWORD AddressOfEntryPoint; DWORD BaseOfCode; ULONGLONG ImageBase; DWORD SectionAlignment; DWORD FileAlignment; WORD MajorOperatingSystemVersion; WORD MinorOperatingSystemVersion; WORD MajorImageVersion; WORD MinorImageVersion; WORD MajorSubsystemVersion; WORD MinorSubsystemVersion; DWORD Win32VersionValue; DWORD SizeOfImage; DWORD SizeOfHeaders; DWORD CheckSum; WORD Subsystem; WORD DllCharacteristics; ULONGLONG SizeOfStackReserve; ULONGLONG SizeOfStackCommit; ULONGLONG SizeOfHeapReserve; ULONGLONG SizeOfHeapCommit; DWORD LoaderFlags; DWORD NumberOfRvaAndSizes; IMAGE_DATA_DIRECTORY DataDirectory[16]; } IMAGE_OPTIONAL_HEADER64, *PIMAGE_OPTIONAL_HEADER64; typedef IMAGE_OPTIONAL_HEADER32 IMAGE_OPTIONAL_HEADER; typedef PIMAGE_OPTIONAL_HEADER32 PIMAGE_OPTIONAL_HEADER; #line 9504 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" typedef struct _IMAGE_NT_HEADERS64 { DWORD Signature; IMAGE_FILE_HEADER FileHeader; IMAGE_OPTIONAL_HEADER64 OptionalHeader; } IMAGE_NT_HEADERS64, *PIMAGE_NT_HEADERS64; typedef struct _IMAGE_NT_HEADERS { DWORD Signature; IMAGE_FILE_HEADER FileHeader; IMAGE_OPTIONAL_HEADER32 OptionalHeader; } IMAGE_NT_HEADERS32, *PIMAGE_NT_HEADERS32; typedef struct _IMAGE_ROM_HEADERS { IMAGE_FILE_HEADER FileHeader; IMAGE_ROM_OPTIONAL_HEADER OptionalHeader; } IMAGE_ROM_HEADERS, *PIMAGE_ROM_HEADERS; typedef IMAGE_NT_HEADERS32 IMAGE_NT_HEADERS; typedef PIMAGE_NT_HEADERS32 PIMAGE_NT_HEADERS; #line 9529 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // IMAGE_FIRST_SECTION doesn't need 32/64 versions since the file header is the same either way. // Subsystem Values // DllCharacteristics Entries // IMAGE_LIBRARY_PROCESS_INIT 0x0001 // Reserved. // IMAGE_LIBRARY_PROCESS_TERM 0x0002 // Reserved. // IMAGE_LIBRARY_THREAD_INIT 0x0004 // Reserved. // IMAGE_LIBRARY_THREAD_TERM 0x0008 // Reserved. // 0x1000 // Reserved. // 0x4000 // Reserved. // Directory Entries // IMAGE_DIRECTORY_ENTRY_COPYRIGHT 7 // (X86 usage) // // Non-COFF Object file header // typedef struct ANON_OBJECT_HEADER { WORD Sig1; // Must be IMAGE_FILE_MACHINE_UNKNOWN WORD Sig2; // Must be 0xffff WORD Version; // >= 1 (implies the CLSID field is present) WORD Machine; DWORD TimeDateStamp; CLSID ClassID; // Used to invoke CoCreateInstance DWORD SizeOfData; // Size of data that follows the header } ANON_OBJECT_HEADER; typedef struct ANON_OBJECT_HEADER_V2 { WORD Sig1; // Must be IMAGE_FILE_MACHINE_UNKNOWN WORD Sig2; // Must be 0xffff WORD Version; // >= 2 (implies the Flags field is present - otherwise V1) WORD Machine; DWORD TimeDateStamp; CLSID ClassID; // Used to invoke CoCreateInstance DWORD SizeOfData; // Size of data that follows the header DWORD Flags; // 0x1 -> contains metadata DWORD MetaDataSize; // Size of CLR metadata DWORD MetaDataOffset; // Offset of CLR metadata } ANON_OBJECT_HEADER_V2; // // Section header format. // typedef struct _IMAGE_SECTION_HEADER { BYTE Name[8]; union { DWORD PhysicalAddress; DWORD VirtualSize; } Misc; DWORD VirtualAddress; DWORD SizeOfRawData; DWORD PointerToRawData; DWORD PointerToRelocations; DWORD PointerToLinenumbers; WORD NumberOfRelocations; WORD NumberOfLinenumbers; DWORD Characteristics; } IMAGE_SECTION_HEADER, *PIMAGE_SECTION_HEADER; // // Section characteristics. // // IMAGE_SCN_TYPE_REG 0x00000000 // Reserved. // IMAGE_SCN_TYPE_DSECT 0x00000001 // Reserved. // IMAGE_SCN_TYPE_NOLOAD 0x00000002 // Reserved. // IMAGE_SCN_TYPE_GROUP 0x00000004 // Reserved. // IMAGE_SCN_TYPE_COPY 0x00000010 // Reserved. // IMAGE_SCN_TYPE_OVER 0x00000400 // Reserved. // 0x00002000 // Reserved. // IMAGE_SCN_MEM_PROTECTED - Obsolete 0x00004000 // IMAGE_SCN_MEM_SYSHEAP - Obsolete 0x00010000 // Unused 0x00F00000 // // TLS Chaacteristic Flags // #line 1 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\pshpack2.h" /*++ Copyright (c) Microsoft Corporation. All rights reserved. Module Name: pshpack2.h Abstract: This file turns 2 byte packing of structures on. (That is, it disables automatic alignment of structure fields.) An include file is needed because various compilers do this in different ways. For Microsoft compatible compilers, this files uses the push option to the pack pragma so that the poppack.h include file can restore the previous packing reliably. The file poppack.h is the complement to this file. --*/ #pragma warning(disable:4103) #pragma pack(push,2) #line 30 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\pshpack2.h" #line 33 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\pshpack2.h" #line 34 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\pshpack2.h" #line 9704 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 9705 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // // Symbol format. // typedef struct _IMAGE_SYMBOL { union { BYTE ShortName[8]; struct { DWORD Short; // if 0, use LongName DWORD Long; // offset into string table } Name; DWORD LongName[2]; // PBYTE [2] } N; DWORD Value; SHORT SectionNumber; WORD Type; BYTE StorageClass; BYTE NumberOfAuxSymbols; } IMAGE_SYMBOL; typedef IMAGE_SYMBOL *PIMAGE_SYMBOL; // // Section values. // // Symbols have a section number of the section in which they are // defined. Otherwise, section numbers have the following meanings: // // // Type (fundamental) values. // // // Type (derived) values. // // // Storage classes. // // new // type packing constants // MACROS // Basic Type of x // Is x a pointer? #line 9825 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // Is x a function? #line 9830 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // Is x an array? #line 9836 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // Is x a structure, union, or enumeration TAG? #line 9841 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 9845 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 9848 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // // Auxiliary entry format. // typedef union _IMAGE_AUX_SYMBOL { struct { DWORD TagIndex; // struct, union, or enum tag index union { struct { WORD Linenumber; // declaration line number WORD Size; // size of struct, union, or enum } LnSz; DWORD TotalSize; } Misc; union { struct { // if ISFCN, tag, or .bb DWORD PointerToLinenumber; DWORD PointerToNextFunction; } Function; struct { // if ISARY, up to 4 dimen. WORD Dimension[4]; } Array; } FcnAry; WORD TvIndex; // tv index } Sym; struct { BYTE Name[18]; } File; struct { DWORD Length; // section length WORD NumberOfRelocations; // number of relocation entries WORD NumberOfLinenumbers; // number of line numbers DWORD CheckSum; // checksum for communal SHORT Number; // section number to associate with BYTE Selection; // communal selection type } Section; } IMAGE_AUX_SYMBOL; typedef IMAGE_AUX_SYMBOL *PIMAGE_AUX_SYMBOL; typedef enum IMAGE_AUX_SYMBOL_TYPE { IMAGE_AUX_SYMBOL_TYPE_TOKEN_DEF = 1, } IMAGE_AUX_SYMBOL_TYPE; #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\pshpack2.h" /*++ Copyright (c) Microsoft Corporation. All rights reserved. Module Name: pshpack2.h Abstract: This file turns 2 byte packing of structures on. (That is, it disables automatic alignment of structure fields.) An include file is needed because various compilers do this in different ways. For Microsoft compatible compilers, this files uses the push option to the pack pragma so that the poppack.h include file can restore the previous packing reliably. The file poppack.h is the complement to this file. --*/ #pragma warning(disable:4103) #pragma pack(push,2) #line 30 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\pshpack2.h" #line 33 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\pshpack2.h" #line 34 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\pshpack2.h" #line 9893 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" typedef struct IMAGE_AUX_SYMBOL_TOKEN_DEF { BYTE bAuxType; // IMAGE_AUX_SYMBOL_TYPE BYTE bReserved; // Must be 0 DWORD SymbolTableIndex; BYTE rgbReserved[12]; // Must be 0 } IMAGE_AUX_SYMBOL_TOKEN_DEF; typedef IMAGE_AUX_SYMBOL_TOKEN_DEF *PIMAGE_AUX_SYMBOL_TOKEN_DEF; #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\poppack.h" /*++ Copyright (c) Microsoft Corporation. All rights reserved. Module Name: poppack.h Abstract: This file turns packing of structures off. (That is, it enables automatic alignment of structure fields.) An include file is needed because various compilers do this in different ways. poppack.h is the complement to pshpack?.h. An inclusion of poppack.h MUST ALWAYS be preceded by an inclusion of one of pshpack?.h, in one-to-one correspondence. For Microsoft compatible compilers, this file uses the pop option to the pack pragma so that it can restore the previous saved by the pshpack?.h include file. --*/ #pragma warning(disable:4103) #pragma pack(pop) #line 33 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\poppack.h" #line 36 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\poppack.h" #line 37 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\poppack.h" #line 9904 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // // Communal selection types. // // // Relocation format. // typedef struct _IMAGE_RELOCATION { union { DWORD VirtualAddress; DWORD RelocCount; // Set to the real count when IMAGE_SCN_LNK_NRELOC_OVFL is set }; DWORD SymbolTableIndex; WORD Type; } IMAGE_RELOCATION; typedef IMAGE_RELOCATION *PIMAGE_RELOCATION; // // I386 relocation types. // // // MIPS relocation types. // // // Alpha Relocation types. // // // IBM PowerPC relocation types. // // Flag bits in IMAGE_RELOCATION.TYPE // // Hitachi SH3 relocation types. // // instruction in longwords // if not NOMODE, insert the // inverse of the low bit at // bit 32 to select PTA/PTB // // x64 relocations // // // IA64 relocation types. // // // // CEF relocation types. // // // clr relocation types. // // // Line number format. // typedef struct _IMAGE_LINENUMBER { union { DWORD SymbolTableIndex; // Symbol table index of function name if Linenumber is 0. DWORD VirtualAddress; // Virtual address of line number. } Type; WORD Linenumber; // Line number. } IMAGE_LINENUMBER; typedef IMAGE_LINENUMBER *PIMAGE_LINENUMBER; #line 1 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\poppack.h" /*++ Copyright (c) Microsoft Corporation. All rights reserved. Module Name: poppack.h Abstract: This file turns packing of structures off. (That is, it enables automatic alignment of structure fields.) An include file is needed because various compilers do this in different ways. poppack.h is the complement to pshpack?.h. An inclusion of poppack.h MUST ALWAYS be preceded by an inclusion of one of pshpack?.h, in one-to-one correspondence. For Microsoft compatible compilers, this file uses the pop option to the pack pragma so that it can restore the previous saved by the pshpack?.h include file. --*/ #pragma warning(disable:4103) #pragma pack(pop) #line 33 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\poppack.h" #line 36 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\poppack.h" #line 37 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\poppack.h" #line 10307 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 10308 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // // Based relocation format. // typedef struct _IMAGE_BASE_RELOCATION { DWORD VirtualAddress; DWORD SizeOfBlock; // WORD TypeOffset[1]; } IMAGE_BASE_RELOCATION; typedef IMAGE_BASE_RELOCATION * PIMAGE_BASE_RELOCATION; // // Based relocation types. // // // Archive format. // typedef struct _IMAGE_ARCHIVE_MEMBER_HEADER { BYTE Name[16]; // File member name - `/' terminated. BYTE Date[12]; // File member date - decimal. BYTE UserID[6]; // File member user id - decimal. BYTE GroupID[6]; // File member group id - decimal. BYTE Mode[8]; // File member mode - octal. BYTE Size[10]; // File member size - decimal. BYTE EndHeader[2]; // String to end header. } IMAGE_ARCHIVE_MEMBER_HEADER, *PIMAGE_ARCHIVE_MEMBER_HEADER; // // DLL support. // // // Export Format // typedef struct _IMAGE_EXPORT_DIRECTORY { DWORD Characteristics; DWORD TimeDateStamp; WORD MajorVersion; WORD MinorVersion; DWORD Name; DWORD Base; DWORD NumberOfFunctions; DWORD NumberOfNames; DWORD AddressOfFunctions; // RVA from base of image DWORD AddressOfNames; // RVA from base of image DWORD AddressOfNameOrdinals; // RVA from base of image } IMAGE_EXPORT_DIRECTORY, *PIMAGE_EXPORT_DIRECTORY; // // Import Format // typedef struct _IMAGE_IMPORT_BY_NAME { WORD Hint; BYTE Name[1]; } IMAGE_IMPORT_BY_NAME, *PIMAGE_IMPORT_BY_NAME; #line 1 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\pshpack8.h" /*++ Copyright (c) Microsoft Corporation. All rights reserved. Module Name: pshpack8.h Abstract: This file turns 8 byte packing of structures on. (That is, it disables automatic alignment of structure fields.) An include file is needed because various compilers do this in different ways. For Microsoft compatible compilers, this files uses the push option to the pack pragma so that the poppack.h include file can restore the previous packing reliably. The file poppack.h is the complement to this file. --*/ #pragma warning(disable:4103) #pragma pack(push,8) #line 30 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\pshpack8.h" #line 33 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\pshpack8.h" #line 34 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\pshpack8.h" #line 10390 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" typedef struct _IMAGE_THUNK_DATA64 { union { ULONGLONG ForwarderString; // PBYTE ULONGLONG Function; // PDWORD ULONGLONG Ordinal; ULONGLONG AddressOfData; // PIMAGE_IMPORT_BY_NAME } u1; } IMAGE_THUNK_DATA64; typedef IMAGE_THUNK_DATA64 * PIMAGE_THUNK_DATA64; #line 1 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\poppack.h" /*++ Copyright (c) Microsoft Corporation. All rights reserved. Module Name: poppack.h Abstract: This file turns packing of structures off. (That is, it enables automatic alignment of structure fields.) An include file is needed because various compilers do this in different ways. poppack.h is the complement to pshpack?.h. An inclusion of poppack.h MUST ALWAYS be preceded by an inclusion of one of pshpack?.h, in one-to-one correspondence. For Microsoft compatible compilers, this file uses the pop option to the pack pragma so that it can restore the previous saved by the pshpack?.h include file. --*/ #pragma warning(disable:4103) #pragma pack(pop) #line 33 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\poppack.h" #line 36 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\poppack.h" #line 37 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\poppack.h" #line 10402 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" typedef struct _IMAGE_THUNK_DATA32 { union { DWORD ForwarderString; // PBYTE DWORD Function; // PDWORD DWORD Ordinal; DWORD AddressOfData; // PIMAGE_IMPORT_BY_NAME } u1; } IMAGE_THUNK_DATA32; typedef IMAGE_THUNK_DATA32 * PIMAGE_THUNK_DATA32; // // Thread Local Storage // typedef void (__stdcall *PIMAGE_TLS_CALLBACK) ( PVOID DllHandle, DWORD Reason, PVOID Reserved ); typedef struct _IMAGE_TLS_DIRECTORY64 { ULONGLONG StartAddressOfRawData; ULONGLONG EndAddressOfRawData; ULONGLONG AddressOfIndex; // PDWORD ULONGLONG AddressOfCallBacks; // PIMAGE_TLS_CALLBACK *; DWORD SizeOfZeroFill; DWORD Characteristics; } IMAGE_TLS_DIRECTORY64; typedef IMAGE_TLS_DIRECTORY64 * PIMAGE_TLS_DIRECTORY64; typedef struct _IMAGE_TLS_DIRECTORY32 { DWORD StartAddressOfRawData; DWORD EndAddressOfRawData; DWORD AddressOfIndex; // PDWORD DWORD AddressOfCallBacks; // PIMAGE_TLS_CALLBACK * DWORD SizeOfZeroFill; DWORD Characteristics; } IMAGE_TLS_DIRECTORY32; typedef IMAGE_TLS_DIRECTORY32 * PIMAGE_TLS_DIRECTORY32; typedef IMAGE_THUNK_DATA32 IMAGE_THUNK_DATA; typedef PIMAGE_THUNK_DATA32 PIMAGE_THUNK_DATA; typedef IMAGE_TLS_DIRECTORY32 IMAGE_TLS_DIRECTORY; typedef PIMAGE_TLS_DIRECTORY32 PIMAGE_TLS_DIRECTORY; #line 10468 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" typedef struct _IMAGE_IMPORT_DESCRIPTOR { union { DWORD Characteristics; // 0 for terminating null import descriptor DWORD OriginalFirstThunk; // RVA to original unbound IAT (PIMAGE_THUNK_DATA) }; DWORD TimeDateStamp; // 0 if not bound, // -1 if bound, and real date\time stamp // in IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT (new BIND) // O.W. date/time stamp of DLL bound to (Old BIND) DWORD ForwarderChain; // -1 if no forwarders DWORD Name; DWORD FirstThunk; // RVA to IAT (if bound this IAT has actual addresses) } IMAGE_IMPORT_DESCRIPTOR; typedef IMAGE_IMPORT_DESCRIPTOR *PIMAGE_IMPORT_DESCRIPTOR; // // New format import descriptors pointed to by DataDirectory[ IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT ] // typedef struct _IMAGE_BOUND_IMPORT_DESCRIPTOR { DWORD TimeDateStamp; WORD OffsetModuleName; WORD NumberOfModuleForwarderRefs; // Array of zero or more IMAGE_BOUND_FORWARDER_REF follows } IMAGE_BOUND_IMPORT_DESCRIPTOR, *PIMAGE_BOUND_IMPORT_DESCRIPTOR; typedef struct _IMAGE_BOUND_FORWARDER_REF { DWORD TimeDateStamp; WORD OffsetModuleName; WORD Reserved; } IMAGE_BOUND_FORWARDER_REF, *PIMAGE_BOUND_FORWARDER_REF; // // Resource Format. // // // Resource directory consists of two counts, following by a variable length // array of directory entries. The first count is the number of entries at // beginning of the array that have actual names associated with each entry. // The entries are in ascending order, case insensitive strings. The second // count is the number of entries that immediately follow the named entries. // This second count identifies the number of entries that have 16-bit integer // Ids as their name. These entries are also sorted in ascending order. // // This structure allows fast lookup by either name or number, but for any // given resource entry only one form of lookup is supported, not both. // This is consistant with the syntax of the .RC file and the .RES file. // typedef struct _IMAGE_RESOURCE_DIRECTORY { DWORD Characteristics; DWORD TimeDateStamp; WORD MajorVersion; WORD MinorVersion; WORD NumberOfNamedEntries; WORD NumberOfIdEntries; // IMAGE_RESOURCE_DIRECTORY_ENTRY DirectoryEntries[]; } IMAGE_RESOURCE_DIRECTORY, *PIMAGE_RESOURCE_DIRECTORY; // // Each directory contains the 32-bit Name of the entry and an offset, // relative to the beginning of the resource directory of the data associated // with this directory entry. If the name of the entry is an actual text // string instead of an integer Id, then the high order bit of the name field // is set to one and the low order 31-bits are an offset, relative to the // beginning of the resource directory of the string, which is of type // IMAGE_RESOURCE_DIRECTORY_STRING. Otherwise the high bit is clear and the // low-order 16-bits are the integer Id that identify this resource directory // entry. If the directory entry is yet another resource directory (i.e. a // subdirectory), then the high order bit of the offset field will be // set to indicate this. Otherwise the high bit is clear and the offset // field points to a resource data entry. // typedef struct _IMAGE_RESOURCE_DIRECTORY_ENTRY { union { struct { DWORD NameOffset:31; DWORD NameIsString:1; }; DWORD Name; WORD Id; }; union { DWORD OffsetToData; struct { DWORD OffsetToDirectory:31; DWORD DataIsDirectory:1; }; }; } IMAGE_RESOURCE_DIRECTORY_ENTRY, *PIMAGE_RESOURCE_DIRECTORY_ENTRY; // // For resource directory entries that have actual string names, the Name // field of the directory entry points to an object of the following type. // All of these string objects are stored together after the last resource // directory entry and before the first resource data object. This minimizes // the impact of these variable length objects on the alignment of the fixed // size directory entry objects. // typedef struct _IMAGE_RESOURCE_DIRECTORY_STRING { WORD Length; CHAR NameString[ 1 ]; } IMAGE_RESOURCE_DIRECTORY_STRING, *PIMAGE_RESOURCE_DIRECTORY_STRING; typedef struct _IMAGE_RESOURCE_DIR_STRING_U { WORD Length; WCHAR NameString[ 1 ]; } IMAGE_RESOURCE_DIR_STRING_U, *PIMAGE_RESOURCE_DIR_STRING_U; // // Each resource data entry describes a leaf node in the resource directory // tree. It contains an offset, relative to the beginning of the resource // directory of the data for the resource, a size field that gives the number // of bytes of data at that offset, a CodePage that should be used when // decoding code point values within the resource data. Typically for new // applications the code page would be the unicode code page. // typedef struct _IMAGE_RESOURCE_DATA_ENTRY { DWORD OffsetToData; DWORD Size; DWORD CodePage; DWORD Reserved; } IMAGE_RESOURCE_DATA_ENTRY, *PIMAGE_RESOURCE_DATA_ENTRY; // // Load Configuration Directory Entry // typedef struct { DWORD Size; DWORD TimeDateStamp; WORD MajorVersion; WORD MinorVersion; DWORD GlobalFlagsClear; DWORD GlobalFlagsSet; DWORD CriticalSectionDefaultTimeout; DWORD DeCommitFreeBlockThreshold; DWORD DeCommitTotalFreeThreshold; DWORD LockPrefixTable; // VA DWORD MaximumAllocationSize; DWORD VirtualMemoryThreshold; DWORD ProcessHeapFlags; DWORD ProcessAffinityMask; WORD CSDVersion; WORD Reserved1; DWORD EditList; // VA DWORD SecurityCookie; // VA DWORD SEHandlerTable; // VA DWORD SEHandlerCount; } IMAGE_LOAD_CONFIG_DIRECTORY32, *PIMAGE_LOAD_CONFIG_DIRECTORY32; typedef struct { DWORD Size; DWORD TimeDateStamp; WORD MajorVersion; WORD MinorVersion; DWORD GlobalFlagsClear; DWORD GlobalFlagsSet; DWORD CriticalSectionDefaultTimeout; ULONGLONG DeCommitFreeBlockThreshold; ULONGLONG DeCommitTotalFreeThreshold; ULONGLONG LockPrefixTable; // VA ULONGLONG MaximumAllocationSize; ULONGLONG VirtualMemoryThreshold; ULONGLONG ProcessAffinityMask; DWORD ProcessHeapFlags; WORD CSDVersion; WORD Reserved1; ULONGLONG EditList; // VA ULONGLONG SecurityCookie; // VA ULONGLONG SEHandlerTable; // VA ULONGLONG SEHandlerCount; } IMAGE_LOAD_CONFIG_DIRECTORY64, *PIMAGE_LOAD_CONFIG_DIRECTORY64; typedef IMAGE_LOAD_CONFIG_DIRECTORY32 IMAGE_LOAD_CONFIG_DIRECTORY; typedef PIMAGE_LOAD_CONFIG_DIRECTORY32 PIMAGE_LOAD_CONFIG_DIRECTORY; #line 10659 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // // WIN CE Exception table format // // // Function table entry format. Function table is pointed to by the // IMAGE_DIRECTORY_ENTRY_EXCEPTION directory entry. // typedef struct _IMAGE_CE_RUNTIME_FUNCTION_ENTRY { DWORD FuncStart; DWORD PrologLen : 8; DWORD FuncLen : 22; DWORD ThirtyTwoBit : 1; DWORD ExceptionFlag : 1; } IMAGE_CE_RUNTIME_FUNCTION_ENTRY, * PIMAGE_CE_RUNTIME_FUNCTION_ENTRY; typedef struct _IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY { ULONGLONG BeginAddress; ULONGLONG EndAddress; ULONGLONG ExceptionHandler; ULONGLONG HandlerData; ULONGLONG PrologEndAddress; } IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY, *PIMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY; typedef struct _IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY { DWORD BeginAddress; DWORD EndAddress; DWORD ExceptionHandler; DWORD HandlerData; DWORD PrologEndAddress; } IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY, *PIMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY; typedef struct _IMAGE_RUNTIME_FUNCTION_ENTRY { DWORD BeginAddress; DWORD EndAddress; DWORD UnwindInfoAddress; } _IMAGE_RUNTIME_FUNCTION_ENTRY, *_PIMAGE_RUNTIME_FUNCTION_ENTRY; typedef _IMAGE_RUNTIME_FUNCTION_ENTRY IMAGE_IA64_RUNTIME_FUNCTION_ENTRY; typedef _PIMAGE_RUNTIME_FUNCTION_ENTRY PIMAGE_IA64_RUNTIME_FUNCTION_ENTRY; #line 10710 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 10715 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" typedef _IMAGE_RUNTIME_FUNCTION_ENTRY IMAGE_RUNTIME_FUNCTION_ENTRY; typedef _PIMAGE_RUNTIME_FUNCTION_ENTRY PIMAGE_RUNTIME_FUNCTION_ENTRY; #line 10720 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // // Debug Format // typedef struct _IMAGE_DEBUG_DIRECTORY { DWORD Characteristics; DWORD TimeDateStamp; WORD MajorVersion; WORD MinorVersion; DWORD Type; DWORD SizeOfData; DWORD AddressOfRawData; DWORD PointerToRawData; } IMAGE_DEBUG_DIRECTORY, *PIMAGE_DEBUG_DIRECTORY; typedef struct _IMAGE_COFF_SYMBOLS_HEADER { DWORD NumberOfSymbols; DWORD LvaToFirstSymbol; DWORD NumberOfLinenumbers; DWORD LvaToFirstLinenumber; DWORD RvaToFirstByteOfCode; DWORD RvaToLastByteOfCode; DWORD RvaToFirstByteOfData; DWORD RvaToLastByteOfData; } IMAGE_COFF_SYMBOLS_HEADER, *PIMAGE_COFF_SYMBOLS_HEADER; typedef struct _FPO_DATA { DWORD ulOffStart; // offset 1st byte of function code DWORD cbProcSize; // # bytes in function DWORD cdwLocals; // # bytes in locals/4 WORD cdwParams; // # bytes in params/4 WORD cbProlog : 8; // # bytes in prolog WORD cbRegs : 3; // # regs saved WORD fHasSEH : 1; // TRUE if SEH in func WORD fUseBP : 1; // TRUE if EBP has been allocated WORD reserved : 1; // reserved for future use WORD cbFrame : 2; // frame type } FPO_DATA, *PFPO_DATA; typedef struct _IMAGE_DEBUG_MISC { DWORD DataType; // type of misc data, see defines DWORD Length; // total length of record, rounded to four // byte multiple. BOOLEAN Unicode; // TRUE if data is unicode string BYTE Reserved[ 3 ]; BYTE Data[ 1 ]; // Actual data } IMAGE_DEBUG_MISC, *PIMAGE_DEBUG_MISC; // // Function table extracted from MIPS/ALPHA/IA64 images. Does not contain // information needed only for runtime support. Just those fields for // each entry needed by a debugger. // typedef struct _IMAGE_FUNCTION_ENTRY { DWORD StartingAddress; DWORD EndingAddress; DWORD EndOfPrologue; } IMAGE_FUNCTION_ENTRY, *PIMAGE_FUNCTION_ENTRY; typedef struct _IMAGE_FUNCTION_ENTRY64 { ULONGLONG StartingAddress; ULONGLONG EndingAddress; union { ULONGLONG EndOfPrologue; ULONGLONG UnwindInfoAddress; }; } IMAGE_FUNCTION_ENTRY64, *PIMAGE_FUNCTION_ENTRY64; // // Debugging information can be stripped from an image file and placed // in a separate .DBG file, whose file name part is the same as the // image file name part (e.g. symbols for CMD.EXE could be stripped // and placed in CMD.DBG). This is indicated by the IMAGE_FILE_DEBUG_STRIPPED // flag in the Characteristics field of the file header. The beginning of // the .DBG file contains the following structure which captures certain // information from the image file. This allows a debug to proceed even if // the original image file is not accessable. This header is followed by // zero of more IMAGE_SECTION_HEADER structures, followed by zero or more // IMAGE_DEBUG_DIRECTORY structures. The latter structures and those in // the image file contain file offsets relative to the beginning of the // .DBG file. // // If symbols have been stripped from an image, the IMAGE_DEBUG_MISC structure // is left in the image file, but not mapped. This allows a debugger to // compute the name of the .DBG file, from the name of the image in the // IMAGE_DEBUG_MISC structure. // typedef struct _IMAGE_SEPARATE_DEBUG_HEADER { WORD Signature; WORD Flags; WORD Machine; WORD Characteristics; DWORD TimeDateStamp; DWORD CheckSum; DWORD ImageBase; DWORD SizeOfImage; DWORD NumberOfSections; DWORD ExportedNamesSize; DWORD DebugDirectorySize; DWORD SectionAlignment; DWORD Reserved[2]; } IMAGE_SEPARATE_DEBUG_HEADER, *PIMAGE_SEPARATE_DEBUG_HEADER; typedef struct _NON_PAGED_DEBUG_INFO { WORD Signature; WORD Flags; DWORD Size; WORD Machine; WORD Characteristics; DWORD TimeDateStamp; DWORD CheckSum; DWORD SizeOfImage; ULONGLONG ImageBase; //DebugDirectorySize //IMAGE_DEBUG_DIRECTORY } NON_PAGED_DEBUG_INFO, *PNON_PAGED_DEBUG_INFO; #line 10871 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // old checksum didn't match. // // The .arch section is made up of headers, each describing an amask position/value // pointing to an array of IMAGE_ARCHITECTURE_ENTRY's. Each "array" (both the header // and entry arrays) are terminiated by a quadword of 0xffffffffL. // // NOTE: There may be quadwords of 0 sprinkled around and must be skipped. // typedef struct _ImageArchitectureHeader { unsigned int AmaskValue: 1; // 1 -> code section depends on mask bit // 0 -> new instruction depends on mask bit int :7; // MBZ unsigned int AmaskShift: 8; // Amask bit in question for this fixup int :16; // MBZ DWORD FirstEntryRVA; // RVA into .arch section to array of ARCHITECTURE_ENTRY's } IMAGE_ARCHITECTURE_HEADER, *PIMAGE_ARCHITECTURE_HEADER; typedef struct _ImageArchitectureEntry { DWORD FixupInstRVA; // RVA of instruction to fixup DWORD NewInst; // fixup instruction (see alphaops.h) } IMAGE_ARCHITECTURE_ENTRY, *PIMAGE_ARCHITECTURE_ENTRY; #line 1 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\poppack.h" /*++ Copyright (c) Microsoft Corporation. All rights reserved. Module Name: poppack.h Abstract: This file turns packing of structures off. (That is, it enables automatic alignment of structure fields.) An include file is needed because various compilers do this in different ways. poppack.h is the complement to pshpack?.h. An inclusion of poppack.h MUST ALWAYS be preceded by an inclusion of one of pshpack?.h, in one-to-one correspondence. For Microsoft compatible compilers, this file uses the pop option to the pack pragma so that it can restore the previous saved by the pshpack?.h include file. --*/ #pragma warning(disable:4103) #pragma pack(pop) #line 33 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\poppack.h" #line 36 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\poppack.h" #line 37 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\poppack.h" #line 10899 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // The following structure defines the new import object. Note the values of the first two fields, // which must be set as stated in order to differentiate old and new import members. // Following this structure, the linker emits two null-terminated strings used to recreate the // import at the time of use. The first string is the import's name, the second is the dll's name. typedef struct IMPORT_OBJECT_HEADER { WORD Sig1; // Must be IMAGE_FILE_MACHINE_UNKNOWN WORD Sig2; // Must be IMPORT_OBJECT_HDR_SIG2. WORD Version; WORD Machine; DWORD TimeDateStamp; // Time/date stamp DWORD SizeOfData; // particularly useful for incremental links union { WORD Ordinal; // if grf & IMPORT_OBJECT_ORDINAL WORD Hint; }; WORD Type : 2; // IMPORT_TYPE WORD NameType : 3; // IMPORT_NAME_TYPE WORD Reserved : 11; // Reserved. Must be zero. } IMPORT_OBJECT_HEADER; typedef enum IMPORT_OBJECT_TYPE { IMPORT_OBJECT_CODE = 0, IMPORT_OBJECT_DATA = 1, IMPORT_OBJECT_CONST = 2, } IMPORT_OBJECT_TYPE; typedef enum IMPORT_OBJECT_NAME_TYPE { IMPORT_OBJECT_ORDINAL = 0, // Import by ordinal IMPORT_OBJECT_NAME = 1, // Import name == public symbol name. IMPORT_OBJECT_NAME_NO_PREFIX = 2, // Import name == public symbol name skipping leading ?, @, or optionally _. IMPORT_OBJECT_NAME_UNDECORATE = 3, // Import name == public symbol name skipping leading ?, @, or optionally _ // and truncating at first @ } IMPORT_OBJECT_NAME_TYPE; typedef enum ReplacesCorHdrNumericDefines { // COM+ Header entry point flags. COMIMAGE_FLAGS_ILONLY =0x00000001, COMIMAGE_FLAGS_32BITREQUIRED =0x00000002, COMIMAGE_FLAGS_IL_LIBRARY =0x00000004, COMIMAGE_FLAGS_STRONGNAMESIGNED =0x00000008, COMIMAGE_FLAGS_TRACKDEBUGDATA =0x00010000, // Version flags for image. COR_VERSION_MAJOR_V2 =2, COR_VERSION_MAJOR =COR_VERSION_MAJOR_V2, COR_VERSION_MINOR =0, COR_DELETED_NAME_LENGTH =8, COR_VTABLEGAP_NAME_LENGTH =8, // Maximum size of a NativeType descriptor. NATIVE_TYPE_MAX_CB =1, COR_ILMETHOD_SECT_SMALL_MAX_DATASIZE=0xFF, // #defines for the MIH FLAGS IMAGE_COR_MIH_METHODRVA =0x01, IMAGE_COR_MIH_EHRVA =0x02, IMAGE_COR_MIH_BASICBLOCK =0x08, // V-table constants COR_VTABLE_32BIT =0x01, // V-table slots are 32-bits in size. COR_VTABLE_64BIT =0x02, // V-table slots are 64-bits in size. COR_VTABLE_FROM_UNMANAGED =0x04, // If set, transition from unmanaged. COR_VTABLE_FROM_UNMANAGED_RETAIN_APPDOMAIN =0x08, // If set, transition from unmanaged with keeping the current appdomain. COR_VTABLE_CALL_MOST_DERIVED =0x10, // Call most derived method described by // EATJ constants IMAGE_COR_EATJ_THUNK_SIZE =32, // Size of a jump thunk reserved range. // Max name lengths //@todo: Change to unlimited name lengths. MAX_CLASS_NAME =1024, MAX_PACKAGE_NAME =1024, } ReplacesCorHdrNumericDefines; // CLR 2.0 header structure. typedef struct IMAGE_COR20_HEADER { // Header versioning DWORD cb; WORD MajorRuntimeVersion; WORD MinorRuntimeVersion; // Symbol table and startup information IMAGE_DATA_DIRECTORY MetaData; DWORD Flags; DWORD EntryPointToken; // Binding information IMAGE_DATA_DIRECTORY Resources; IMAGE_DATA_DIRECTORY StrongNameSignature; // Regular fixup and binding information IMAGE_DATA_DIRECTORY CodeManagerTable; IMAGE_DATA_DIRECTORY VTableFixups; IMAGE_DATA_DIRECTORY ExportAddressTableJumps; // Precompiled image info (internal use only - set to zero) IMAGE_DATA_DIRECTORY ManagedNativeHeader; } IMAGE_COR20_HEADER, *PIMAGE_COR20_HEADER; #line 11014 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // // End Image Format // // // for move macros // #line 11029 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 11054 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 11060 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 11088 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" typedef union _SLIST_HEADER { ULONGLONG Alignment; struct { SINGLE_LIST_ENTRY Next; WORD Depth; WORD Sequence; }; } SLIST_HEADER, *PSLIST_HEADER; #line 11099 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 11101 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" __declspec(dllimport) void __stdcall RtlInitializeSListHead ( PSLIST_HEADER ListHead ); __declspec(dllimport) PSINGLE_LIST_ENTRY __stdcall RtlFirstEntrySList ( const SLIST_HEADER *ListHead ); __declspec(dllimport) PSINGLE_LIST_ENTRY __stdcall RtlInterlockedPopEntrySList ( PSLIST_HEADER ListHead ); __declspec(dllimport) PSINGLE_LIST_ENTRY __stdcall RtlInterlockedPushEntrySList ( PSLIST_HEADER ListHead, PSINGLE_LIST_ENTRY ListEntry ); __declspec(dllimport) PSINGLE_LIST_ENTRY __stdcall RtlInterlockedFlushSList ( PSLIST_HEADER ListHead ); __declspec(dllimport) WORD __stdcall RtlQueryDepthSList ( PSLIST_HEADER ListHead ); // begin_ntddk // // Run once // // // Run once flags // // // The context stored in the run once structure must leave the following number // of low order bits unused. // typedef union _RTL_RUN_ONCE { PVOID Ptr; } RTL_RUN_ONCE, *PRTL_RUN_ONCE; typedef DWORD /* LOGICAL */ (__stdcall *PRTL_RUN_ONCE_INIT_FN) ( PRTL_RUN_ONCE RunOnce, PVOID Parameter, PVOID *Context ); #line 11185 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" void //FORCEINLINE RtlRunOnceInitialize ( PRTL_RUN_ONCE RunOnce ); #line 11195 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" DWORD RtlRunOnceExecuteOnce ( PRTL_RUN_ONCE RunOnce, PRTL_RUN_ONCE_INIT_FN InitFn, PVOID Parameter, PVOID *Context ); DWORD RtlRunOnceBeginInitialize ( PRTL_RUN_ONCE RunOnce, DWORD Flags, PVOID *Context ); DWORD RtlRunOnceComplete ( PRTL_RUN_ONCE RunOnce, DWORD Flags, PVOID Context ); __forceinline DWORD HEAP_MAKE_TAG_FLAGS ( DWORD TagBase, DWORD Tag ) { __pragma(warning(push)) __pragma(warning(disable : 4548)) do {__noop(TagBase);} while((0,0) __pragma(warning(pop)) ); return ((DWORD)((TagBase) + ((Tag) << 18))); } #line 11245 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" __declspec(dllimport) WORD __stdcall RtlCaptureStackBackTrace( DWORD FramesToSkip, DWORD FramesToCapture, PVOID *BackTrace, PDWORD BackTraceHash ); #line 11257 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" __declspec(dllimport) void __stdcall RtlCaptureContext ( PCONTEXT ContextRecord ); #line 11266 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 11320 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" __declspec(dllimport) SIZE_T __stdcall RtlCompareMemory ( const void *Source1, const void *Source2, SIZE_T Length ); #line 11332 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" __forceinline PVOID RtlSecureZeroMemory( PVOID ptr, SIZE_T cnt ) { volatile char *vptr = (volatile char *)ptr; #line 11356 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" while (cnt) { *vptr = 0; vptr++; cnt--; } #line 11364 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" return ptr; } #line 11369 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" typedef struct _MESSAGE_RESOURCE_ENTRY { WORD Length; WORD Flags; BYTE Text[ 1 ]; } MESSAGE_RESOURCE_ENTRY, *PMESSAGE_RESOURCE_ENTRY; typedef struct _MESSAGE_RESOURCE_BLOCK { DWORD LowId; DWORD HighId; DWORD OffsetToEntries; } MESSAGE_RESOURCE_BLOCK, *PMESSAGE_RESOURCE_BLOCK; typedef struct _MESSAGE_RESOURCE_DATA { DWORD NumberOfBlocks; MESSAGE_RESOURCE_BLOCK Blocks[ 1 ]; } MESSAGE_RESOURCE_DATA, *PMESSAGE_RESOURCE_DATA; typedef struct _OSVERSIONINFOA { DWORD dwOSVersionInfoSize; DWORD dwMajorVersion; DWORD dwMinorVersion; DWORD dwBuildNumber; DWORD dwPlatformId; CHAR szCSDVersion[ 128 ]; // Maintenance string for PSS usage } OSVERSIONINFOA, *POSVERSIONINFOA, *LPOSVERSIONINFOA; typedef struct _OSVERSIONINFOW { DWORD dwOSVersionInfoSize; DWORD dwMajorVersion; DWORD dwMinorVersion; DWORD dwBuildNumber; DWORD dwPlatformId; WCHAR szCSDVersion[ 128 ]; // Maintenance string for PSS usage } OSVERSIONINFOW, *POSVERSIONINFOW, *LPOSVERSIONINFOW, RTL_OSVERSIONINFOW, *PRTL_OSVERSIONINFOW; typedef OSVERSIONINFOW OSVERSIONINFO; typedef POSVERSIONINFOW POSVERSIONINFO; typedef LPOSVERSIONINFOW LPOSVERSIONINFO; #line 11433 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" typedef struct _OSVERSIONINFOEXA { DWORD dwOSVersionInfoSize; DWORD dwMajorVersion; DWORD dwMinorVersion; DWORD dwBuildNumber; DWORD dwPlatformId; CHAR szCSDVersion[ 128 ]; // Maintenance string for PSS usage WORD wServicePackMajor; WORD wServicePackMinor; WORD wSuiteMask; BYTE wProductType; BYTE wReserved; } OSVERSIONINFOEXA, *POSVERSIONINFOEXA, *LPOSVERSIONINFOEXA; typedef struct _OSVERSIONINFOEXW { DWORD dwOSVersionInfoSize; DWORD dwMajorVersion; DWORD dwMinorVersion; DWORD dwBuildNumber; DWORD dwPlatformId; WCHAR szCSDVersion[ 128 ]; // Maintenance string for PSS usage WORD wServicePackMajor; WORD wServicePackMinor; WORD wSuiteMask; BYTE wProductType; BYTE wReserved; } OSVERSIONINFOEXW, *POSVERSIONINFOEXW, *LPOSVERSIONINFOEXW, RTL_OSVERSIONINFOEXW, *PRTL_OSVERSIONINFOEXW; typedef OSVERSIONINFOEXW OSVERSIONINFOEX; typedef POSVERSIONINFOEXW POSVERSIONINFOEX; typedef LPOSVERSIONINFOEXW LPOSVERSIONINFOEX; #line 11469 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // // RtlVerifyVersionInfo() conditions // // // RtlVerifyVersionInfo() type mask bits // // // RtlVerifyVersionInfo() os product type values // // // dwPlatformId defines: // // // // VerifyVersionInfo() macro to set the condition mask // // For documentation sakes here's the old version of the macro that got // changed to call an API // #define VER_SET_CONDITION(_m_,_t_,_c_) _m_=(_m_|(_c_<<(1<<_t_))) // __declspec(dllimport) ULONGLONG __stdcall VerSetConditionMask( ULONGLONG ConditionMask, DWORD TypeMask, BYTE Condition ); #line 11537 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // #line 11554 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" typedef struct _RTL_CRITICAL_SECTION_DEBUG { WORD Type; WORD CreatorBackTraceIndex; struct _RTL_CRITICAL_SECTION *CriticalSection; LIST_ENTRY ProcessLocksList; DWORD EntryCount; DWORD ContentionCount; DWORD Flags; WORD CreatorBackTraceIndexHigh; WORD SpareWORD ; } RTL_CRITICAL_SECTION_DEBUG, *PRTL_CRITICAL_SECTION_DEBUG, RTL_RESOURCE_DEBUG, *PRTL_RESOURCE_DEBUG; // // These flags define the upper byte of the critical section SpinCount field // // // These flags define possible values stored in the Flags field of a critsec debuginfo. // #pragma pack(push, 8) typedef struct _RTL_CRITICAL_SECTION { PRTL_CRITICAL_SECTION_DEBUG DebugInfo; // // The following three fields control entering and exiting the critical // section for the resource // LONG LockCount; LONG RecursionCount; HANDLE OwningThread; // from the thread's ClientId->UniqueThread HANDLE LockSemaphore; ULONG_PTR SpinCount; // force size on 64-bit systems when packed } RTL_CRITICAL_SECTION, *PRTL_CRITICAL_SECTION; #pragma pack(pop) typedef struct _RTL_SRWLOCK { PVOID Ptr; } RTL_SRWLOCK, *PRTL_SRWLOCK; typedef struct _RTL_CONDITION_VARIABLE { PVOID Ptr; } RTL_CONDITION_VARIABLE, *PRTL_CONDITION_VARIABLE; typedef LONG (__stdcall *PVECTORED_EXCEPTION_HANDLER)( struct _EXCEPTION_POINTERS *ExceptionInfo ); typedef enum _HEAP_INFORMATION_CLASS { HeapCompatibilityInformation, HeapEnableTerminationOnCorruption } HEAP_INFORMATION_CLASS; typedef void (__stdcall * WAITORTIMERCALLBACKFUNC) (PVOID, BOOLEAN ); typedef void (__stdcall * WORKERCALLBACKFUNC) (PVOID ); typedef void (__stdcall * APC_CALLBACK_FUNCTION) (DWORD , PVOID, PVOID); typedef void (__stdcall *PFLS_CALLBACK_FUNCTION) ( PVOID lpFlsData ); typedef enum _ACTIVATION_CONTEXT_INFO_CLASS { ActivationContextBasicInformation = 1, ActivationContextDetailedInformation = 2, AssemblyDetailedInformationInActivationContext = 3, FileInformationInAssemblyOfAssemblyInActivationContext = 4, RunlevelInformationInActivationContext = 5, MaxActivationContextInfoClass, // // compatibility with old names // AssemblyDetailedInformationInActivationContxt = 3, FileInformationInAssemblyOfAssemblyInActivationContxt = 4 } ACTIVATION_CONTEXT_INFO_CLASS; typedef struct _ACTIVATION_CONTEXT_QUERY_INDEX { DWORD ulAssemblyIndex; DWORD ulFileIndexInAssembly; } ACTIVATION_CONTEXT_QUERY_INDEX, * PACTIVATION_CONTEXT_QUERY_INDEX; typedef const struct _ACTIVATION_CONTEXT_QUERY_INDEX * PCACTIVATION_CONTEXT_QUERY_INDEX; typedef struct _ASSEMBLY_FILE_DETAILED_INFORMATION { DWORD ulFlags; DWORD ulFilenameLength; DWORD ulPathLength; PCWSTR lpFileName; PCWSTR lpFilePath; } ASSEMBLY_FILE_DETAILED_INFORMATION, *PASSEMBLY_FILE_DETAILED_INFORMATION; typedef const ASSEMBLY_FILE_DETAILED_INFORMATION *PCASSEMBLY_FILE_DETAILED_INFORMATION; // // compatibility with old names // The new names use "file" consistently. // typedef struct _ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION { DWORD ulFlags; DWORD ulEncodedAssemblyIdentityLength; // in bytes DWORD ulManifestPathType; // ACTIVATION_CONTEXT_PATH_TYPE_* DWORD ulManifestPathLength; // in bytes LARGE_INTEGER liManifestLastWriteTime; // FILETIME DWORD ulPolicyPathType; // ACTIVATION_CONTEXT_PATH_TYPE_* DWORD ulPolicyPathLength; // in bytes LARGE_INTEGER liPolicyLastWriteTime; // FILETIME DWORD ulMetadataSatelliteRosterIndex; DWORD ulManifestVersionMajor; // 1 DWORD ulManifestVersionMinor; // 0 DWORD ulPolicyVersionMajor; // 0 DWORD ulPolicyVersionMinor; // 0 DWORD ulAssemblyDirectoryNameLength; // in bytes PCWSTR lpAssemblyEncodedAssemblyIdentity; PCWSTR lpAssemblyManifestPath; PCWSTR lpAssemblyPolicyPath; PCWSTR lpAssemblyDirectoryName; DWORD ulFileCount; } ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION, * PACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION; typedef const struct _ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION * PCACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION ; typedef enum { ACTCTX_RUN_LEVEL_UNSPECIFIED = 0, ACTCTX_RUN_LEVEL_AS_INVOKER, ACTCTX_RUN_LEVEL_HIGHEST_AVAILABLE, ACTCTX_RUN_LEVEL_REQUIRE_ADMIN, ACTCTX_RUN_LEVEL_NUMBERS } ACTCTX_REQUESTED_RUN_LEVEL; typedef struct _ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION { DWORD ulFlags; ACTCTX_REQUESTED_RUN_LEVEL RunLevel; DWORD UiAccess; } ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION, * PACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION; typedef const struct _ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION * PCACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION ; typedef struct _ACTIVATION_CONTEXT_DETAILED_INFORMATION { DWORD dwFlags; DWORD ulFormatVersion; DWORD ulAssemblyCount; DWORD ulRootManifestPathType; DWORD ulRootManifestPathChars; DWORD ulRootConfigurationPathType; DWORD ulRootConfigurationPathChars; DWORD ulAppDirPathType; DWORD ulAppDirPathChars; PCWSTR lpRootManifestPath; PCWSTR lpRootConfigurationPath; PCWSTR lpAppDirPath; } ACTIVATION_CONTEXT_DETAILED_INFORMATION, *PACTIVATION_CONTEXT_DETAILED_INFORMATION; typedef const struct _ACTIVATION_CONTEXT_DETAILED_INFORMATION *PCACTIVATION_CONTEXT_DETAILED_INFORMATION; // // Defines for the READ flags for Eventlogging // // // The types of events that can be logged. // // // Defines for the WRITE flags used by Auditing for paired events // These are not implemented in Product 1 // // // Structure that defines the header of the Eventlog record. This is the // fixed-sized portion before all the variable-length strings, binary // data and pad bytes. // // TimeGenerated is the time it was generated at the client. // TimeWritten is the time it was put into the log at the server end. // typedef struct _EVENTLOGRECORD { DWORD Length; // Length of full record DWORD Reserved; // Used by the service DWORD RecordNumber; // Absolute record number DWORD TimeGenerated; // Seconds since 1-1-1970 DWORD TimeWritten; // Seconds since 1-1-1970 DWORD EventID; WORD EventType; WORD NumStrings; WORD EventCategory; WORD ReservedFlags; // For use with paired events (auditing) DWORD ClosingRecordNumber; // For use with paired events (auditing) DWORD StringOffset; // Offset from beginning of record DWORD UserSidLength; DWORD UserSidOffset; DWORD DataLength; DWORD DataOffset; // Offset from beginning of record // // Then follow: // // WCHAR SourceName[] // WCHAR Computername[] // SID UserSid // WCHAR Strings[] // BYTE Data[] // CHAR Pad[] // DWORD Length; // } EVENTLOGRECORD, *PEVENTLOGRECORD; //SS: start of changes to support clustering //SS: ideally the #pragma warning(push) #line 11839 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #pragma warning(disable : 4200) typedef struct _EVENTSFORLOGFILE{ DWORD ulSize; WCHAR szLogicalLogFile[256]; //name of the logical file-security/application/system DWORD ulNumRecords; EVENTLOGRECORD pEventLogRecords[]; }EVENTSFORLOGFILE, *PEVENTSFORLOGFILE; typedef struct _PACKEDEVENTINFO{ DWORD ulSize; //total size of the structure DWORD ulNumEventsForLogFile; //number of EventsForLogFile structure that follow DWORD ulOffsets[]; //the offsets from the start of this structure to the EVENTSFORLOGFILE structure }PACKEDEVENTINFO, *PPACKEDEVENTINFO; #pragma warning(pop) #line 11858 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" //SS: end of changes to support clustering // // begin_wdm // // Registry Specific Access Rights. // // // Open/Create Options // // when system is rebooted // when system is rebooted // symbolic link // special access rules // privilege required // // Key creation/open disposition // // // hive format to be used by Reg(Nt)SaveKeyEx // // // Key restore & hive load flags // // // Unload Flags // // // Notify filter values // // end_wdm // // // Predefined Value Types. // // (with environment variable references) // end_wdm // begin_wdm // // Service Types (Bit Mask) // // // Start Type // // // Error control type // // // // Define the registry driver node enumerations // typedef enum _CM_SERVICE_NODE_TYPE { DriverType = 0x00000001, FileSystemType = 0x00000002, Win32ServiceOwnProcess = 0x00000010, Win32ServiceShareProcess = 0x00000020, AdapterType = 0x00000004, RecognizerType = 0x00000008 } SERVICE_NODE_TYPE; typedef enum _CM_SERVICE_LOAD_TYPE { BootLoad = 0x00000000, SystemLoad = 0x00000001, AutoLoad = 0x00000002, DemandLoad = 0x00000003, DisableLoad = 0x00000004 } SERVICE_LOAD_TYPE; typedef enum _CM_ERROR_CONTROL_TYPE { IgnoreError = 0x00000000, NormalError = 0x00000001, SevereError = 0x00000002, CriticalError = 0x00000003 } SERVICE_ERROR_TYPE; // // IOCTL_TAPE_ERASE definitions // typedef struct _TAPE_ERASE { DWORD Type; BOOLEAN Immediate; } TAPE_ERASE, *PTAPE_ERASE; // // IOCTL_TAPE_PREPARE definitions // typedef struct _TAPE_PREPARE { DWORD Operation; BOOLEAN Immediate; } TAPE_PREPARE, *PTAPE_PREPARE; // // IOCTL_TAPE_WRITE_MARKS definitions // typedef struct _TAPE_WRITE_MARKS { DWORD Type; DWORD Count; BOOLEAN Immediate; } TAPE_WRITE_MARKS, *PTAPE_WRITE_MARKS; // // IOCTL_TAPE_GET_POSITION definitions // typedef struct _TAPE_GET_POSITION { DWORD Type; DWORD Partition; LARGE_INTEGER Offset; } TAPE_GET_POSITION, *PTAPE_GET_POSITION; // // IOCTL_TAPE_SET_POSITION definitions // typedef struct _TAPE_SET_POSITION { DWORD Method; DWORD Partition; LARGE_INTEGER Offset; BOOLEAN Immediate; } TAPE_SET_POSITION, *PTAPE_SET_POSITION; // // IOCTL_TAPE_GET_DRIVE_PARAMS definitions // // // Definitions for FeaturesLow parameter // // //can't be a low features bit! // //reserved; high features only // // Definitions for FeaturesHigh parameter // typedef struct _TAPE_GET_DRIVE_PARAMETERS { BOOLEAN ECC; BOOLEAN Compression; BOOLEAN DataPadding; BOOLEAN ReportSetmarks; DWORD DefaultBlockSize; DWORD MaximumBlockSize; DWORD MinimumBlockSize; DWORD MaximumPartitionCount; DWORD FeaturesLow; DWORD FeaturesHigh; DWORD EOTWarningZoneSize; } TAPE_GET_DRIVE_PARAMETERS, *PTAPE_GET_DRIVE_PARAMETERS; // // IOCTL_TAPE_SET_DRIVE_PARAMETERS definitions // typedef struct _TAPE_SET_DRIVE_PARAMETERS { BOOLEAN ECC; BOOLEAN Compression; BOOLEAN DataPadding; BOOLEAN ReportSetmarks; DWORD EOTWarningZoneSize; } TAPE_SET_DRIVE_PARAMETERS, *PTAPE_SET_DRIVE_PARAMETERS; // // IOCTL_TAPE_GET_MEDIA_PARAMETERS definitions // typedef struct _TAPE_GET_MEDIA_PARAMETERS { LARGE_INTEGER Capacity; LARGE_INTEGER Remaining; DWORD BlockSize; DWORD PartitionCount; BOOLEAN WriteProtected; } TAPE_GET_MEDIA_PARAMETERS, *PTAPE_GET_MEDIA_PARAMETERS; // // IOCTL_TAPE_SET_MEDIA_PARAMETERS definitions // typedef struct _TAPE_SET_MEDIA_PARAMETERS { DWORD BlockSize; } TAPE_SET_MEDIA_PARAMETERS, *PTAPE_SET_MEDIA_PARAMETERS; // // IOCTL_TAPE_CREATE_PARTITION definitions // typedef struct _TAPE_CREATE_PARTITION { DWORD Method; DWORD Count; DWORD Size; } TAPE_CREATE_PARTITION, *PTAPE_CREATE_PARTITION; // // WMI Methods // typedef struct _TAPE_WMI_OPERATIONS { DWORD Method; DWORD DataBufferSize; PVOID DataBuffer; } TAPE_WMI_OPERATIONS, *PTAPE_WMI_OPERATIONS; // // Type of drive errors // typedef enum _TAPE_DRIVE_PROBLEM_TYPE { TapeDriveProblemNone, TapeDriveReadWriteWarning, TapeDriveReadWriteError, TapeDriveReadWarning, TapeDriveWriteWarning, TapeDriveReadError, TapeDriveWriteError, TapeDriveHardwareError, TapeDriveUnsupportedMedia, TapeDriveScsiConnectionError, TapeDriveTimetoClean, TapeDriveCleanDriveNow, TapeDriveMediaLifeExpired, TapeDriveSnappedTape } TAPE_DRIVE_PROBLEM_TYPE; extern "C" { #line 12342 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\ktmtypes.h" /*++ Copyright (c) 2000 Microsoft Corporation Module Name: ktmtypes.h Abstract: Common types for KTM exposed at both the Nt- and Win32-layer. Revision History: --*/ // begin_wdm begin_winnt extern "C" { #line 25 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\ktmtypes.h" typedef GUID UOW, *PUOW; typedef GUID CRM_PROTOCOL_ID, *PCRM_PROTOCOL_ID; // // Define the TransactionManager option values // // // Define the Transaction option values // // // Define the ResourceManager option values // // // Define the RegisterProtocol option values // // // Define the Enlistment option values // typedef ULONG NOTIFICATION_MASK; // // Path to the transaction manager objects in the NT // object namespace. // // // The following three defines are here to ease the allocation // of string buffers which are to contain a fully qualified // transaction manager object name, e.g., \Transaction\{GUID} // // TODO: warning, duplicated def in tm.h. typedef struct _TRANSACTION_NOTIFICATION { PVOID TransactionKey; ULONG TransactionNotification; LARGE_INTEGER TmVirtualClock; ULONG ArgumentLength; } TRANSACTION_NOTIFICATION, *PTRANSACTION_NOTIFICATION; typedef struct _TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT { GUID EnlistmentId; UOW UOW; } TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT, *PTRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT; typedef ULONG SAVEPOINT_ID, *PSAVEPOINT_ID; typedef struct _TRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT { SAVEPOINT_ID SavepointId; } TRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT, *PTRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT; typedef struct _TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT { ULONG PropagationCookie; GUID UOW; GUID TmIdentity; ULONG BufferLength; // Bufferlength bytes of Buffer follow } TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT, *PTRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT; typedef struct _TRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT { ULONG MarshalCookie; GUID UOW; } TRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT, *PTRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT; typedef TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT TRANSACTION_NOTIFICATION_PROMOTE_ARGUMENT, *PTRANSACTION_NOTIFICATION_PROMOTE_ARGUMENT; typedef struct _KCRM_MARSHAL_HEADER { ULONG VersionMajor; ULONG VersionMinor; ULONG NumProtocols; ULONG Unused; // for alignment purposes } KCRM_MARSHAL_HEADER, *PKCRM_MARSHAL_HEADER, * PRKCRM_MARSHAL_HEADER; typedef struct _KCRM_TRANSACTION_BLOB { UOW UOW; GUID TmIdentity; ULONG IsolationLevel; ULONG IsolationFlags; ULONG Timeout; WCHAR Description[64]; } KCRM_TRANSACTION_BLOB, *PKCRM_TRANSACTION_BLOB, * PRKCRM_TRANSACTION_BLOB; typedef struct _KCRM_PROTOCOL_BLOB { CRM_PROTOCOL_ID ProtocolId; ULONG StaticInfoLength; ULONG TransactionIdInfoLength; //??? ProtocolDynamicInfoLength; ULONG Unused1; // for alignment purposes ULONG Unused2; // for alignment purposes } KCRM_PROTOCOL_BLOB, *PKCRM_PROTOCOL_BLOB, * PRKCRM_PROTOCOL_BLOB; } #line 198 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\ktmtypes.h" #line 200 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\ktmtypes.h" #line 12345 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" // // Types for Nt level TM calls // // // KTM Tm object rights // // The following right is intended for DTC's use only; it will be // deprecated, and no one else should take a dependency on it. // // Generic mappings for transaction manager rights. // // // KTM transaction object rights. // // // Generic mappings for transaction rights. // Resource managers, when enlisting, should generally use the macro // TRANSACTION_RESOURCE_MANAGER_RIGHTS when opening a transaction. // It's the same as generic read and write except that it does not allow // a commit decision to be made. // // // KTM resource manager object rights. // // // Generic mappings for resource manager rights. // // // KTM enlistment object rights. // // // Generic mappings for enlistment rights. // // // Transaction outcomes. // // TODO: warning, must match values in KTRANSACTION_OUTCOME duplicated def // in tm.h. // typedef enum _TRANSACTION_OUTCOME { TransactionOutcomeUndetermined = 1, TransactionOutcomeCommitted, TransactionOutcomeAborted, } TRANSACTION_OUTCOME; typedef enum _TRANSACTION_STATE { TransactionStateNormal = 1, TransactionStateIndoubt, TransactionStateCommittedNotify, } TRANSACTION_STATE; typedef struct _TRANSACTION_BASIC_INFORMATION { GUID TransactionId; DWORD State; DWORD Outcome; } TRANSACTION_BASIC_INFORMATION, *PTRANSACTION_BASIC_INFORMATION; typedef struct _TRANSACTIONMANAGER_BASIC_INFORMATION { GUID TmIdentity; LARGE_INTEGER VirtualClock; } TRANSACTIONMANAGER_BASIC_INFORMATION, *PTRANSACTIONMANAGER_BASIC_INFORMATION; typedef struct _TRANSACTIONMANAGER_LOG_INFORMATION { GUID LogIdentity; } TRANSACTIONMANAGER_LOG_INFORMATION, *PTRANSACTIONMANAGER_LOG_INFORMATION; typedef struct _TRANSACTIONMANAGER_LOGPATH_INFORMATION { DWORD LogPathLength; WCHAR LogPath[1]; // Variable size // Data[1]; // Variable size data not declared } TRANSACTIONMANAGER_LOGPATH_INFORMATION, *PTRANSACTIONMANAGER_LOGPATH_INFORMATION; typedef struct _TRANSACTION_PROPERTIES_INFORMATION { DWORD IsolationLevel; DWORD IsolationFlags; LARGE_INTEGER Timeout; DWORD Outcome; DWORD DescriptionLength; WCHAR Description[1]; // Variable size // Data[1]; // Variable size data not declared } TRANSACTION_PROPERTIES_INFORMATION, *PTRANSACTION_PROPERTIES_INFORMATION; // The following info-class is intended for DTC's use only; it will be // deprecated, and no one else should take a dependency on it. typedef struct _TRANSACTION_BIND_INFORMATION { HANDLE TmHandle; } TRANSACTION_BIND_INFORMATION, *PTRANSACTION_BIND_INFORMATION; typedef struct _TRANSACTION_ENLISTMENT_PAIR { GUID EnlistmentId; GUID ResourceManagerId; } TRANSACTION_ENLISTMENT_PAIR, *PTRANSACTION_ENLISTMENT_PAIR; typedef struct _TRANSACTION_ENLISTMENTS_INFORMATION { DWORD NumberOfEnlistments; TRANSACTION_ENLISTMENT_PAIR EnlistmentPair[1]; // Variable size } TRANSACTION_ENLISTMENTS_INFORMATION, *PTRANSACTION_ENLISTMENTS_INFORMATION; typedef struct _TRANSACTION_FULL_INFORMATION { // Not currently defined DWORD NameLength; } TRANSACTION_FULL_INFORMATION, *PTRANSACTION_FULL_INFORMATION; typedef struct _RESOURCEMANAGER_BASIC_INFORMATION { GUID ResourceManagerId; DWORD DescriptionLength; WCHAR Description[1]; // Variable size } RESOURCEMANAGER_BASIC_INFORMATION, *PRESOURCEMANAGER_BASIC_INFORMATION; typedef struct _RESOURCEMANAGER_COMPLETION_INFORMATION { HANDLE IoCompletionPortHandle; ULONG_PTR CompletionKey; } RESOURCEMANAGER_COMPLETION_INFORMATION, *PRESOURCEMANAGER_COMPLETION_INFORMATION; // end_wdm typedef struct _TRANSACTION_NAME_INFORMATION { DWORD NameLength; WCHAR Name[1]; // Variable length string } TRANSACTION_NAME_INFORMATION, *PTRANSACTION_NAME_INFORMATION; // begin_wdm typedef enum _TRANSACTION_INFORMATION_CLASS { TransactionBasicInformation, TransactionPropertiesInformation, TransactionEnlistmentInformation, TransactionFullInformation // end_wdm , // The following info-class is intended for DTC's use only; it will be // deprecated, and no one else should take a dependency on it. TransactionBindInformation // private and deprecated , // TransactionNameInformation // begin_wdm } TRANSACTION_INFORMATION_CLASS; // begin_wdm typedef enum _TRANSACTIONMANAGER_INFORMATION_CLASS { TransactionManagerBasicInformation, TransactionManagerLogInformation, TransactionManagerLogPathInformation, TransactionManagerOnlineProbeInformation // end_wdm // begin_wdm } TRANSACTIONMANAGER_INFORMATION_CLASS; // begin_wdm typedef enum _RESOURCEMANAGER_INFORMATION_CLASS { ResourceManagerBasicInformation, ResourceManagerCompletionInformation, ResourceManagerFullInformation // end_wdm , ResourceManagerNameInformation // begin_wdm } RESOURCEMANAGER_INFORMATION_CLASS; typedef struct _ENLISTMENT_BASIC_INFORMATION { GUID EnlistmentId; GUID TransactionId; GUID ResourceManagerId; } ENLISTMENT_BASIC_INFORMATION, *PENLISTMENT_BASIC_INFORMATION; // begin_wdm typedef enum _ENLISTMENT_INFORMATION_CLASS { EnlistmentBasicInformation, EnlistmentRecoveryInformation, EnlistmentFullInformation // end_wdm , EnlistmentNameInformation // begin_wdm } ENLISTMENT_INFORMATION_CLASS; typedef struct _TRANSACTION_LIST_ENTRY { UOW UOW; } TRANSACTION_LIST_ENTRY, *PTRANSACTION_LIST_ENTRY; typedef struct _TRANSACTION_LIST_INFORMATION { DWORD NumberOfTransactions; TRANSACTION_LIST_ENTRY TransactionInformation[1]; // Var size } TRANSACTION_LIST_INFORMATION, *PTRANSACTION_LIST_INFORMATION; // // Types of objects known to the kernel transaction manager. // typedef enum _KTMOBJECT_TYPE { KTMOBJECT_TRANSACTION, KTMOBJECT_TRANSACTION_MANAGER, KTMOBJECT_RESOURCE_MANAGER, KTMOBJECT_ENLISTMENT, KTMOBJECT_INVALID } KTMOBJECT_TYPE, *PKTMOBJECT_TYPE; // // KTMOBJECT_CURSOR // // Used by NtEnumerateTransactionObject to enumerate a transaction // object namespace (e.g. enlistments in a resource manager). // typedef struct _KTMOBJECT_CURSOR { // // The last GUID enumerated; zero if beginning enumeration. // GUID LastQuery; // // A count of GUIDs filled in by this last enumeration. // DWORD ObjectIdCount; // // ObjectIdCount GUIDs from the namespace specified. // GUID ObjectIds[1]; } KTMOBJECT_CURSOR, *PKTMOBJECT_CURSOR; // begin_wdm } #line 12716 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 12718 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" typedef DWORD TP_VERSION, *PTP_VERSION; typedef struct _TP_CALLBACK_INSTANCE TP_CALLBACK_INSTANCE, *PTP_CALLBACK_INSTANCE; typedef void (__stdcall *PTP_SIMPLE_CALLBACK)( PTP_CALLBACK_INSTANCE Instance, PVOID Context ); typedef struct _TP_POOL TP_POOL, *PTP_POOL; typedef struct _TP_CLEANUP_GROUP TP_CLEANUP_GROUP, *PTP_CLEANUP_GROUP; typedef void (__stdcall *PTP_CLEANUP_GROUP_CANCEL_CALLBACK)( PVOID ObjectContext, PVOID CleanupContext ); // // Do not manipulate this structure directly! Allocate space for it // and use the inline interfaces below. // typedef struct _TP_CALLBACK_ENVIRON { TP_VERSION Version; PTP_POOL Pool; PTP_CLEANUP_GROUP CleanupGroup; PTP_CLEANUP_GROUP_CANCEL_CALLBACK CleanupGroupCancelCallback; PVOID RaceDll; struct _ACTIVATION_CONTEXT *ActivationContext; PTP_SIMPLE_CALLBACK FinalizationCallback; union { DWORD Flags; struct { DWORD LongFunction : 1; DWORD Private : 31; } s; } u; } TP_CALLBACK_ENVIRON, *PTP_CALLBACK_ENVIRON; __forceinline void TpInitializeCallbackEnviron( PTP_CALLBACK_ENVIRON CallbackEnviron ) { CallbackEnviron->Version = 1; CallbackEnviron->Pool = 0; CallbackEnviron->CleanupGroup = 0; CallbackEnviron->CleanupGroupCancelCallback = 0; CallbackEnviron->RaceDll = 0; CallbackEnviron->ActivationContext = 0; CallbackEnviron->FinalizationCallback = 0; CallbackEnviron->u.Flags = 0; } __forceinline void TpSetCallbackThreadpool( PTP_CALLBACK_ENVIRON CallbackEnviron, PTP_POOL Pool ) { CallbackEnviron->Pool = Pool; } __forceinline void TpSetCallbackCleanupGroup( PTP_CALLBACK_ENVIRON CallbackEnviron, PTP_CLEANUP_GROUP CleanupGroup, PTP_CLEANUP_GROUP_CANCEL_CALLBACK CleanupGroupCancelCallback ) { CallbackEnviron->CleanupGroup = CleanupGroup; CallbackEnviron->CleanupGroupCancelCallback = CleanupGroupCancelCallback; } __forceinline void TpSetCallbackActivationContext( PTP_CALLBACK_ENVIRON CallbackEnviron, struct _ACTIVATION_CONTEXT *ActivationContext ) { CallbackEnviron->ActivationContext = ActivationContext; } __forceinline void TpSetCallbackNoActivationContext( PTP_CALLBACK_ENVIRON CallbackEnviron ) { CallbackEnviron->ActivationContext = (struct _ACTIVATION_CONTEXT *)(LONG_PTR) -1; // INVALID_ACTIVATION_CONTEXT } __forceinline void TpSetCallbackLongFunction( PTP_CALLBACK_ENVIRON CallbackEnviron ) { CallbackEnviron->u.s.LongFunction = 1; } __forceinline void TpSetCallbackRaceWithDll( PTP_CALLBACK_ENVIRON CallbackEnviron, PVOID DllHandle ) { CallbackEnviron->RaceDll = DllHandle; } __forceinline void TpSetCallbackFinalizationCallback( PTP_CALLBACK_ENVIRON CallbackEnviron, PTP_SIMPLE_CALLBACK FinalizationCallback ) { CallbackEnviron->FinalizationCallback = FinalizationCallback; } __forceinline void TpDestroyCallbackEnviron( PTP_CALLBACK_ENVIRON CallbackEnviron ) { // // For the current version of the callback environment, no actions // need to be taken to tear down an initialized structure. This // may change in a future release. // (CallbackEnviron); } #line 12861 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" typedef struct _TP_WORK TP_WORK, *PTP_WORK; typedef void (__stdcall *PTP_WORK_CALLBACK)( PTP_CALLBACK_INSTANCE Instance, PVOID Context, PTP_WORK Work ); typedef struct _TP_TIMER TP_TIMER, *PTP_TIMER; typedef void (__stdcall *PTP_TIMER_CALLBACK)( PTP_CALLBACK_INSTANCE Instance, PVOID Context, PTP_TIMER Timer ); typedef DWORD TP_WAIT_RESULT; typedef struct _TP_WAIT TP_WAIT, *PTP_WAIT; typedef void (__stdcall *PTP_WAIT_CALLBACK)( PTP_CALLBACK_INSTANCE Instance, PVOID Context, PTP_WAIT Wait, TP_WAIT_RESULT WaitResult ); typedef struct _TP_IO TP_IO, *PTP_IO; #line 12927 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" __inline struct _TEB * NtCurrentTeb( void ) { return (struct _TEB *) (ULONG_PTR) __readfsdword (0x18); } #line 12954 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 12956 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 12969 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" } #line 12973 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 12975 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnt.h" #line 178 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windef.h" #line 179 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windef.h" /* Types use for passing & returning polymorphic values */ typedef UINT_PTR WPARAM; typedef LONG_PTR LPARAM; typedef LONG_PTR LRESULT; struct HWND__ { int unused; }; typedef struct HWND__ *HWND; struct HHOOK__ { int unused; }; typedef struct HHOOK__ *HHOOK; #line 214 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windef.h" typedef WORD ATOM; typedef HANDLE *SPHANDLE; typedef HANDLE *LPHANDLE; typedef HANDLE HGLOBAL; typedef HANDLE HLOCAL; typedef HANDLE GLOBALHANDLE; typedef HANDLE LOCALHANDLE; typedef int ( __stdcall *FARPROC)(); typedef int ( __stdcall *NEARPROC)(); typedef int (__stdcall *PROC)(); #line 234 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windef.h" #line 239 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windef.h" #line 244 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windef.h" typedef void * HGDIOBJ; #line 251 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windef.h" #line 252 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windef.h" struct HKEY__ { int unused; }; typedef struct HKEY__ *HKEY; typedef HKEY *PHKEY; struct HACCEL__ { int unused; }; typedef struct HACCEL__ *HACCEL; #line 259 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windef.h" struct HBITMAP__ { int unused; }; typedef struct HBITMAP__ *HBITMAP; struct HBRUSH__ { int unused; }; typedef struct HBRUSH__ *HBRUSH; #line 263 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windef.h" struct HCOLORSPACE__ { int unused; }; typedef struct HCOLORSPACE__ *HCOLORSPACE; #line 266 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windef.h" struct HDC__ { int unused; }; typedef struct HDC__ *HDC; #line 269 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windef.h" struct HGLRC__ { int unused; }; typedef struct HGLRC__ *HGLRC; // OpenGL struct HDESK__ { int unused; }; typedef struct HDESK__ *HDESK; struct HENHMETAFILE__ { int unused; }; typedef struct HENHMETAFILE__ *HENHMETAFILE; struct HFONT__ { int unused; }; typedef struct HFONT__ *HFONT; #line 275 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windef.h" struct HICON__ { int unused; }; typedef struct HICON__ *HICON; struct HMENU__ { int unused; }; typedef struct HMENU__ *HMENU; #line 279 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windef.h" struct HMETAFILE__ { int unused; }; typedef struct HMETAFILE__ *HMETAFILE; struct HINSTANCE__ { int unused; }; typedef struct HINSTANCE__ *HINSTANCE; typedef HINSTANCE HMODULE; /* HMODULEs can be used in place of HINSTANCEs */ struct HPALETTE__ { int unused; }; typedef struct HPALETTE__ *HPALETTE; struct HPEN__ { int unused; }; typedef struct HPEN__ *HPEN; #line 286 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windef.h" struct HRGN__ { int unused; }; typedef struct HRGN__ *HRGN; struct HRSRC__ { int unused; }; typedef struct HRSRC__ *HRSRC; struct HSPRITE__ { int unused; }; typedef struct HSPRITE__ *HSPRITE; struct HSTR__ { int unused; }; typedef struct HSTR__ *HSTR; struct HTASK__ { int unused; }; typedef struct HTASK__ *HTASK; struct HWINSTA__ { int unused; }; typedef struct HWINSTA__ *HWINSTA; struct HKL__ { int unused; }; typedef struct HKL__ *HKL; struct HWINEVENTHOOK__ { int unused; }; typedef struct HWINEVENTHOOK__ *HWINEVENTHOOK; #line 297 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windef.h" struct HMONITOR__ { int unused; }; typedef struct HMONITOR__ *HMONITOR; #line 302 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windef.h" struct HUMPD__ { int unused; }; typedef struct HUMPD__ *HUMPD; #line 304 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windef.h" typedef int HFILE; typedef HICON HCURSOR; /* HICONs & HCURSORs are polymorphic */ #line 312 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windef.h" typedef DWORD COLORREF; typedef DWORD *LPCOLORREF; typedef struct tagRECT { LONG left; LONG top; LONG right; LONG bottom; } RECT, *PRECT, *NPRECT, *LPRECT; typedef const RECT * LPCRECT; typedef struct _RECTL /* rcl */ { LONG left; LONG top; LONG right; LONG bottom; } RECTL, *PRECTL, *LPRECTL; typedef const RECTL * LPCRECTL; typedef struct tagPOINT { LONG x; LONG y; } POINT, *PPOINT, *NPPOINT, *LPPOINT; typedef struct _POINTL /* ptl */ { LONG x; LONG y; } POINTL, *PPOINTL; typedef struct tagSIZE { LONG cx; LONG cy; } SIZE, *PSIZE, *LPSIZE; typedef SIZE SIZEL; typedef SIZE *PSIZEL, *LPSIZEL; typedef struct tagPOINTS { SHORT x; SHORT y; #line 368 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windef.h" } POINTS, *PPOINTS, *LPPOINTS; // // File System time stamps are represented with the following structure: // typedef struct _FILETIME { DWORD dwLowDateTime; DWORD dwHighDateTime; } FILETIME, *PFILETIME, *LPFILETIME; /* mode selections for the device mode function */ /* device capabilities indices */ } #line 415 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windef.h" #line 417 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windef.h" #line 156 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windows.h" #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" /************************************************************************ * * * winbase.h -- This module defines the 32-Bit Windows Base APIs * * * * Copyright (c) Microsoft Corp. All rights reserved. * * * ************************************************************************/ #pragma once #line 15 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" // // Define API decoration for direct importing of DLL references. // #line 29 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 35 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 41 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" extern "C" { #line 45 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" /* * Compatibility macros */ // // File creation flags must start at the high end since they // are combined with the attributes // // // Define possible return codes from the CopyFileEx callback routine // // // Define CopyFileEx callback routine state change values // // // Define CopyFileEx option flags // // // Gap for private copyfile flags // #line 166 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 167 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" // // Define ReplaceFile option flags // #line 177 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" // // Define the NamedPipe definitions // // // Define the dwOpenMode values for CreateNamedPipe // // // Define the Named Pipe End flags for GetNamedPipeInfo // // // Define the dwPipeMode values for CreateNamedPipe // // // Define the well known values for CreateNamedPipe nMaxInstances // // // Define the Security Quality of Service bits to be passed // into CreateFile // // // File structures // typedef struct _OVERLAPPED { ULONG_PTR Internal; ULONG_PTR InternalHigh; union { struct { DWORD Offset; DWORD OffsetHigh; }; PVOID Pointer; }; HANDLE hEvent; } OVERLAPPED, *LPOVERLAPPED; typedef struct _OVERLAPPED_ENTRY { ULONG_PTR lpCompletionKey; LPOVERLAPPED lpOverlapped; ULONG_PTR Internal; DWORD dwNumberOfBytesTransferred; } OVERLAPPED_ENTRY, *LPOVERLAPPED_ENTRY; typedef struct _SECURITY_ATTRIBUTES { DWORD nLength; LPVOID lpSecurityDescriptor; BOOL bInheritHandle; } SECURITY_ATTRIBUTES, *PSECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES; typedef struct _PROCESS_INFORMATION { HANDLE hProcess; HANDLE hThread; DWORD dwProcessId; DWORD dwThreadId; } PROCESS_INFORMATION, *PPROCESS_INFORMATION, *LPPROCESS_INFORMATION; // // File System time stamps are represented with the following structure: // // // System time is represented with the following structure: // typedef struct _SYSTEMTIME { WORD wYear; WORD wMonth; WORD wDayOfWeek; WORD wDay; WORD wHour; WORD wMinute; WORD wSecond; WORD wMilliseconds; } SYSTEMTIME, *PSYSTEMTIME, *LPSYSTEMTIME; typedef DWORD (__stdcall *PTHREAD_START_ROUTINE)( LPVOID lpThreadParameter ); typedef PTHREAD_START_ROUTINE LPTHREAD_START_ROUTINE; typedef void (__stdcall *PFIBER_START_ROUTINE)( LPVOID lpFiberParameter ); typedef PFIBER_START_ROUTINE LPFIBER_START_ROUTINE; #line 313 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" typedef RTL_CRITICAL_SECTION CRITICAL_SECTION; typedef PRTL_CRITICAL_SECTION PCRITICAL_SECTION; typedef PRTL_CRITICAL_SECTION LPCRITICAL_SECTION; typedef RTL_CRITICAL_SECTION_DEBUG CRITICAL_SECTION_DEBUG; typedef PRTL_CRITICAL_SECTION_DEBUG PCRITICAL_SECTION_DEBUG; typedef PRTL_CRITICAL_SECTION_DEBUG LPCRITICAL_SECTION_DEBUG; #line 394 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" // // Define the slim r/w lock // typedef RTL_SRWLOCK SRWLOCK, *PSRWLOCK; __declspec(dllimport) void __stdcall InitializeSRWLock ( PSRWLOCK SRWLock ); __declspec(dllimport) void __stdcall ReleaseSRWLockExclusive ( PSRWLOCK SRWLock ); __declspec(dllimport) void __stdcall ReleaseSRWLockShared ( PSRWLOCK SRWLock ); __declspec(dllimport) void __stdcall AcquireSRWLockExclusive ( PSRWLOCK SRWLock ); __declspec(dllimport) void __stdcall AcquireSRWLockShared ( PSRWLOCK SRWLock ); // // Define condition variable // typedef RTL_CONDITION_VARIABLE CONDITION_VARIABLE, *PCONDITION_VARIABLE; __declspec(dllimport) void __stdcall InitializeConditionVariable ( PCONDITION_VARIABLE ConditionVariable ); __declspec(dllimport) void __stdcall WakeConditionVariable ( PCONDITION_VARIABLE ConditionVariable ); __declspec(dllimport) void __stdcall WakeAllConditionVariable ( PCONDITION_VARIABLE ConditionVariable ); __declspec(dllimport) BOOL __stdcall SleepConditionVariableCS ( PCONDITION_VARIABLE ConditionVariable, PCRITICAL_SECTION CriticalSection, DWORD dwMilliseconds ); __declspec(dllimport) BOOL __stdcall SleepConditionVariableSRW ( PCONDITION_VARIABLE ConditionVariable, PSRWLOCK SRWLock, DWORD dwMilliseconds, ULONG Flags ); // // Static initializer for the condition variable // // // Flags for condition variables // __declspec(dllimport) PVOID __stdcall EncodePointer ( PVOID Ptr ); __declspec(dllimport) PVOID __stdcall DecodePointer ( PVOID Ptr ); __declspec(dllimport) PVOID __stdcall EncodeSystemPointer ( PVOID Ptr ); __declspec(dllimport) PVOID __stdcall DecodeSystemPointer ( PVOID Ptr ); typedef PLDT_ENTRY LPLDT_ENTRY; #line 533 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" // // Serial provider type. // // // Provider SubTypes // // // Provider capabilities flags. // // // Comm provider settable parameters. // // // Settable baud rates in the provider. // // // Settable Data Bits // // // Settable Stop and Parity bits. // typedef struct _COMMPROP { WORD wPacketLength; WORD wPacketVersion; DWORD dwServiceMask; DWORD dwReserved1; DWORD dwMaxTxQueue; DWORD dwMaxRxQueue; DWORD dwMaxBaud; DWORD dwProvSubType; DWORD dwProvCapabilities; DWORD dwSettableParams; DWORD dwSettableBaud; WORD wSettableData; WORD wSettableStopParity; DWORD dwCurrentTxQueue; DWORD dwCurrentRxQueue; DWORD dwProvSpec1; DWORD dwProvSpec2; WCHAR wcProvChar[1]; } COMMPROP,*LPCOMMPROP; // // Set dwProvSpec1 to COMMPROP_INITIALIZED to indicate that wPacketLength // is valid before a call to GetCommProperties(). // typedef struct _COMSTAT { DWORD fCtsHold : 1; DWORD fDsrHold : 1; DWORD fRlsdHold : 1; DWORD fXoffHold : 1; DWORD fXoffSent : 1; DWORD fEof : 1; DWORD fTxim : 1; DWORD fReserved : 25; DWORD cbInQue; DWORD cbOutQue; } COMSTAT, *LPCOMSTAT; // // DTR Control Flow Values. // // // RTS Control Flow Values // typedef struct _DCB { DWORD DCBlength; /* sizeof(DCB) */ DWORD BaudRate; /* Baudrate at which running */ DWORD fBinary: 1; /* Binary Mode (skip EOF check) */ DWORD fParity: 1; /* Enable parity checking */ DWORD fOutxCtsFlow:1; /* CTS handshaking on output */ DWORD fOutxDsrFlow:1; /* DSR handshaking on output */ DWORD fDtrControl:2; /* DTR Flow control */ DWORD fDsrSensitivity:1; /* DSR Sensitivity */ DWORD fTXContinueOnXoff: 1; /* Continue TX when Xoff sent */ DWORD fOutX: 1; /* Enable output X-ON/X-OFF */ DWORD fInX: 1; /* Enable input X-ON/X-OFF */ DWORD fErrorChar: 1; /* Enable Err Replacement */ DWORD fNull: 1; /* Enable Null stripping */ DWORD fRtsControl:2; /* Rts Flow control */ DWORD fAbortOnError:1; /* Abort all reads and writes on Error */ DWORD fDummy2:17; /* Reserved */ WORD wReserved; /* Not currently used */ WORD XonLim; /* Transmit X-ON threshold */ WORD XoffLim; /* Transmit X-OFF threshold */ BYTE ByteSize; /* Number of bits/byte, 4-8 */ BYTE Parity; /* 0-4=None,Odd,Even,Mark,Space */ BYTE StopBits; /* 0,1,2 = 1, 1.5, 2 */ char XonChar; /* Tx and Rx X-ON character */ char XoffChar; /* Tx and Rx X-OFF character */ char ErrorChar; /* Error replacement char */ char EofChar; /* End of Input character */ char EvtChar; /* Received Event character */ WORD wReserved1; /* Fill for now. */ } DCB, *LPDCB; typedef struct _COMMTIMEOUTS { DWORD ReadIntervalTimeout; /* Maximum time between read chars. */ DWORD ReadTotalTimeoutMultiplier; /* Multiplier of characters. */ DWORD ReadTotalTimeoutConstant; /* Constant in milliseconds. */ DWORD WriteTotalTimeoutMultiplier; /* Multiplier of characters. */ DWORD WriteTotalTimeoutConstant; /* Constant in milliseconds. */ } COMMTIMEOUTS,*LPCOMMTIMEOUTS; typedef struct _COMMCONFIG { DWORD dwSize; /* Size of the entire struct */ WORD wVersion; /* version of the structure */ WORD wReserved; /* alignment */ DCB dcb; /* device control block */ DWORD dwProviderSubType; /* ordinal value for identifying provider-defined data structure format*/ DWORD dwProviderOffset; /* Specifies the offset of provider specific data field in bytes from the start */ DWORD dwProviderSize; /* size of the provider-specific data field */ WCHAR wcProviderData[1]; /* provider-specific data */ } COMMCONFIG,*LPCOMMCONFIG; typedef struct _SYSTEM_INFO { union { DWORD dwOemId; // Obsolete field...do not use struct { WORD wProcessorArchitecture; WORD wReserved; }; }; DWORD dwPageSize; LPVOID lpMinimumApplicationAddress; LPVOID lpMaximumApplicationAddress; DWORD_PTR dwActiveProcessorMask; DWORD dwNumberOfProcessors; DWORD dwProcessorType; DWORD dwAllocationGranularity; WORD wProcessorLevel; WORD wProcessorRevision; } SYSTEM_INFO, *LPSYSTEM_INFO; // // /* Global Memory Flags */ /* Flags returned by GlobalFlags (in addition to GMEM_DISCARDABLE) */ typedef struct _MEMORYSTATUS { DWORD dwLength; DWORD dwMemoryLoad; SIZE_T dwTotalPhys; SIZE_T dwAvailPhys; SIZE_T dwTotalPageFile; SIZE_T dwAvailPageFile; SIZE_T dwTotalVirtual; SIZE_T dwAvailVirtual; } MEMORYSTATUS, *LPMEMORYSTATUS; /* Local Memory Flags */ /* Flags returned by LocalFlags (in addition to LMEM_DISCARDABLE) */ // // NUMA values // // // dwCreationFlag values // // // GetFinalPathNameByHandle // // // Debug APIs // typedef struct _EXCEPTION_DEBUG_INFO { EXCEPTION_RECORD ExceptionRecord; DWORD dwFirstChance; } EXCEPTION_DEBUG_INFO, *LPEXCEPTION_DEBUG_INFO; typedef struct _CREATE_THREAD_DEBUG_INFO { HANDLE hThread; LPVOID lpThreadLocalBase; LPTHREAD_START_ROUTINE lpStartAddress; } CREATE_THREAD_DEBUG_INFO, *LPCREATE_THREAD_DEBUG_INFO; typedef struct _CREATE_PROCESS_DEBUG_INFO { HANDLE hFile; HANDLE hProcess; HANDLE hThread; LPVOID lpBaseOfImage; DWORD dwDebugInfoFileOffset; DWORD nDebugInfoSize; LPVOID lpThreadLocalBase; LPTHREAD_START_ROUTINE lpStartAddress; LPVOID lpImageName; WORD fUnicode; } CREATE_PROCESS_DEBUG_INFO, *LPCREATE_PROCESS_DEBUG_INFO; typedef struct _EXIT_THREAD_DEBUG_INFO { DWORD dwExitCode; } EXIT_THREAD_DEBUG_INFO, *LPEXIT_THREAD_DEBUG_INFO; typedef struct _EXIT_PROCESS_DEBUG_INFO { DWORD dwExitCode; } EXIT_PROCESS_DEBUG_INFO, *LPEXIT_PROCESS_DEBUG_INFO; typedef struct _LOAD_DLL_DEBUG_INFO { HANDLE hFile; LPVOID lpBaseOfDll; DWORD dwDebugInfoFileOffset; DWORD nDebugInfoSize; LPVOID lpImageName; WORD fUnicode; } LOAD_DLL_DEBUG_INFO, *LPLOAD_DLL_DEBUG_INFO; typedef struct _UNLOAD_DLL_DEBUG_INFO { LPVOID lpBaseOfDll; } UNLOAD_DLL_DEBUG_INFO, *LPUNLOAD_DLL_DEBUG_INFO; typedef struct _OUTPUT_DEBUG_STRING_INFO { LPSTR lpDebugStringData; WORD fUnicode; WORD nDebugStringLength; } OUTPUT_DEBUG_STRING_INFO, *LPOUTPUT_DEBUG_STRING_INFO; typedef struct _RIP_INFO { DWORD dwError; DWORD dwType; } RIP_INFO, *LPRIP_INFO; typedef struct _DEBUG_EVENT { DWORD dwDebugEventCode; DWORD dwProcessId; DWORD dwThreadId; union { EXCEPTION_DEBUG_INFO Exception; CREATE_THREAD_DEBUG_INFO CreateThread; CREATE_PROCESS_DEBUG_INFO CreateProcessInfo; EXIT_THREAD_DEBUG_INFO ExitThread; EXIT_PROCESS_DEBUG_INFO ExitProcess; LOAD_DLL_DEBUG_INFO LoadDll; UNLOAD_DLL_DEBUG_INFO UnloadDll; OUTPUT_DEBUG_STRING_INFO DebugString; RIP_INFO RipInfo; } u; } DEBUG_EVENT, *LPDEBUG_EVENT; // // JIT Debugging Info. This structure is defined to have constant size in // both the emulated and native environment. // typedef struct _JIT_DEBUG_INFO { DWORD dwSize; DWORD dwProcessorArchitecture; DWORD dwThreadID; DWORD dwReserved0; ULONG64 lpExceptionAddress; ULONG64 lpExceptionRecord; ULONG64 lpContextRecord; } JIT_DEBUG_INFO, *LPJIT_DEBUG_INFO; typedef JIT_DEBUG_INFO JIT_DEBUG_INFO32, *LPJIT_DEBUG_INFO32; typedef JIT_DEBUG_INFO JIT_DEBUG_INFO64, *LPJIT_DEBUG_INFO64; typedef PCONTEXT LPCONTEXT; typedef PEXCEPTION_RECORD LPEXCEPTION_RECORD; typedef PEXCEPTION_POINTERS LPEXCEPTION_POINTERS; #line 1024 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 1039 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" // // Baud rates at which the communication device operates // // // Error Flags // // // Events // // // Escape Functions // // // PURGE function flags. // // // Modem Status Flags // // // WaitSoundState() Constants // // // Accent Modes // // // SetSoundNoise() Sources // typedef struct _OFSTRUCT { BYTE cBytes; BYTE fFixedDisk; WORD nErrCode; WORD Reserved1; WORD Reserved2; CHAR szPathName[128]; } OFSTRUCT, *LPOFSTRUCT, *POFSTRUCT; #line 2041 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 2254 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) LONG __stdcall InterlockedIncrement ( LONG volatile *lpAddend ); __declspec(dllimport) LONG __stdcall InterlockedDecrement ( LONG volatile *lpAddend ); __declspec(dllimport) LONG __stdcall InterlockedExchange ( LONG volatile *Target, LONG Value ); __declspec(dllimport) LONG __stdcall InterlockedExchangeAdd ( LONG volatile *Addend, LONG Value ); __declspec(dllimport) LONG __stdcall InterlockedCompareExchange ( LONG volatile *Destination, LONG Exchange, LONG Comperand ); __declspec(dllimport) LONGLONG __stdcall InterlockedCompareExchange64 ( LONGLONG volatile *Destination, LONGLONG Exchange, LONGLONG Comperand ); #line 2309 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __forceinline LONGLONG InterlockedAnd64 ( LONGLONG volatile *Destination, LONGLONG Value ) { LONGLONG Old; do { Old = *Destination; } while (InterlockedCompareExchange64(Destination, Old & Value, Old) != Old); return Old; } __forceinline LONGLONG InterlockedOr64 ( LONGLONG volatile *Destination, LONGLONG Value ) { LONGLONG Old; do { Old = *Destination; } while (InterlockedCompareExchange64(Destination, Old | Value, Old) != Old); return Old; } __forceinline LONGLONG InterlockedXor64 ( LONGLONG volatile *Destination, LONGLONG Value ) { LONGLONG Old; do { Old = *Destination; } while (InterlockedCompareExchange64(Destination, Old ^ Value, Old) != Old); return Old; } __forceinline LONGLONG InterlockedIncrement64 ( LONGLONG volatile *Addend ) { LONGLONG Old; do { Old = *Addend; } while (InterlockedCompareExchange64(Addend, Old + 1, Old) != Old); return Old + 1; } __forceinline LONGLONG InterlockedDecrement64 ( LONGLONG volatile *Addend ) { LONGLONG Old; do { Old = *Addend; } while (InterlockedCompareExchange64(Addend, Old - 1, Old) != Old); return Old - 1; } __forceinline LONGLONG InterlockedExchange64 ( LONGLONG volatile *Target, LONGLONG Value ) { LONGLONG Old; do { Old = *Target; } while (InterlockedCompareExchange64(Target, Value, Old) != Old); return Old; } __forceinline LONGLONG InterlockedExchangeAdd64( LONGLONG volatile *Addend, LONGLONG Value ) { LONGLONG Old; do { Old = *Addend; } while (InterlockedCompareExchange64(Addend, Old + Value, Old) != Old); return Old; } #line 2439 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 2442 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" // // Use a function for C++ so X86 will generate the same errors as RISC. // __forceinline PVOID __cdecl #line 2454 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __InlineInterlockedCompareExchangePointer ( PVOID volatile *Destination, PVOID ExChange, PVOID Comperand ) { return((PVOID)(LONG_PTR)InterlockedCompareExchange((LONG volatile *)Destination, (LONG)(LONG_PTR)ExChange, (LONG)(LONG_PTR)Comperand)); } #line 2471 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 2486 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) void __stdcall InitializeSListHead ( PSLIST_HEADER ListHead ); __declspec(dllimport) PSINGLE_LIST_ENTRY __stdcall InterlockedPopEntrySList ( PSLIST_HEADER ListHead ); __declspec(dllimport) PSINGLE_LIST_ENTRY __stdcall InterlockedPushEntrySList ( PSLIST_HEADER ListHead, PSINGLE_LIST_ENTRY ListEntry ); __declspec(dllimport) PSINGLE_LIST_ENTRY __stdcall InterlockedFlushSList ( PSLIST_HEADER ListHead ); __declspec(dllimport) USHORT __stdcall QueryDepthSList ( PSLIST_HEADER ListHead ); #line 2526 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 2528 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 2530 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall FreeResource( HGLOBAL hResData ); __declspec(dllimport) LPVOID __stdcall LockResource( HGLOBAL hResData ); int #line 2555 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __stdcall #line 2557 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 2560 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" WinMain ( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd ); int #line 2571 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __stdcall #line 2573 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" wWinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nShowCmd ); __declspec(dllimport) BOOL __stdcall FreeLibrary ( HMODULE hLibModule ); __declspec(dllimport) __declspec(noreturn) void __stdcall FreeLibraryAndExitThread ( HMODULE hLibModule, DWORD dwExitCode ); __declspec(dllimport) BOOL __stdcall DisableThreadLibraryCalls ( HMODULE hLibModule ); __declspec(dllimport) FARPROC __stdcall GetProcAddress ( HMODULE hModule, LPCSTR lpProcName ); __declspec(dllimport) DWORD __stdcall GetVersion ( void ); __declspec(dllimport) HGLOBAL __stdcall GlobalAlloc ( UINT uFlags, SIZE_T dwBytes ); __declspec(dllimport) HGLOBAL __stdcall GlobalReAlloc ( HGLOBAL hMem, SIZE_T dwBytes, UINT uFlags ); __declspec(dllimport) SIZE_T __stdcall GlobalSize ( HGLOBAL hMem ); __declspec(dllimport) UINT __stdcall GlobalFlags ( HGLOBAL hMem ); __declspec(dllimport) LPVOID __stdcall GlobalLock ( HGLOBAL hMem ); __declspec(dllimport) HGLOBAL __stdcall GlobalHandle ( LPCVOID pMem ); __declspec(dllimport) BOOL __stdcall GlobalUnlock( HGLOBAL hMem ); __declspec(dllimport) HGLOBAL __stdcall GlobalFree( HGLOBAL hMem ); __declspec(dllimport) SIZE_T __stdcall GlobalCompact( DWORD dwMinFree ); __declspec(dllimport) void __stdcall GlobalFix( HGLOBAL hMem ); __declspec(dllimport) void __stdcall GlobalUnfix( HGLOBAL hMem ); __declspec(dllimport) LPVOID __stdcall GlobalWire( HGLOBAL hMem ); __declspec(dllimport) BOOL __stdcall GlobalUnWire( HGLOBAL hMem ); __declspec(dllimport) void __stdcall GlobalMemoryStatus( LPMEMORYSTATUS lpBuffer ); typedef struct _MEMORYSTATUSEX { DWORD dwLength; DWORD dwMemoryLoad; DWORDLONG ullTotalPhys; DWORDLONG ullAvailPhys; DWORDLONG ullTotalPageFile; DWORDLONG ullAvailPageFile; DWORDLONG ullTotalVirtual; DWORDLONG ullAvailVirtual; DWORDLONG ullAvailExtendedVirtual; } MEMORYSTATUSEX, *LPMEMORYSTATUSEX; __declspec(dllimport) BOOL __stdcall GlobalMemoryStatusEx( LPMEMORYSTATUSEX lpBuffer ); __declspec(dllimport) HLOCAL __stdcall LocalAlloc( UINT uFlags, SIZE_T uBytes ); __declspec(dllimport) HLOCAL __stdcall LocalReAlloc( HLOCAL hMem, SIZE_T uBytes, UINT uFlags ); __declspec(dllimport) LPVOID __stdcall LocalLock( HLOCAL hMem ); __declspec(dllimport) HLOCAL __stdcall LocalHandle( LPCVOID pMem ); __declspec(dllimport) BOOL __stdcall LocalUnlock( HLOCAL hMem ); __declspec(dllimport) SIZE_T __stdcall LocalSize( HLOCAL hMem ); __declspec(dllimport) UINT __stdcall LocalFlags( HLOCAL hMem ); __declspec(dllimport) HLOCAL __stdcall LocalFree( HLOCAL hMem ); __declspec(dllimport) SIZE_T __stdcall LocalShrink( HLOCAL hMem, UINT cbNewSize ); __declspec(dllimport) SIZE_T __stdcall LocalCompact( UINT uMinFree ); __declspec(dllimport) BOOL __stdcall FlushInstructionCache( HANDLE hProcess, LPCVOID lpBaseAddress, SIZE_T dwSize ); #line 2866 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) LPVOID __stdcall VirtualAlloc( LPVOID lpAddress, SIZE_T dwSize, DWORD flAllocationType, DWORD flProtect ); __declspec(dllimport) BOOL __stdcall VirtualFree( LPVOID lpAddress, SIZE_T dwSize, DWORD dwFreeType ); __declspec(dllimport) BOOL __stdcall VirtualProtect( LPVOID lpAddress, SIZE_T dwSize, DWORD flNewProtect, PDWORD lpflOldProtect ); __declspec(dllimport) SIZE_T __stdcall VirtualQuery( LPCVOID lpAddress, PMEMORY_BASIC_INFORMATION lpBuffer, SIZE_T dwLength ); __declspec(dllimport) LPVOID __stdcall VirtualAllocEx( HANDLE hProcess, LPVOID lpAddress, SIZE_T dwSize, DWORD flAllocationType, DWORD flProtect ); #line 2934 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) UINT __stdcall GetWriteWatch( DWORD dwFlags, PVOID lpBaseAddress, SIZE_T dwRegionSize, PVOID *lpAddresses, ULONG_PTR *lpdwCount, PULONG lpdwGranularity ); __declspec(dllimport) UINT __stdcall ResetWriteWatch( LPVOID lpBaseAddress, SIZE_T dwRegionSize ); __declspec(dllimport) SIZE_T __stdcall GetLargePageMinimum( void ); __declspec(dllimport) UINT __stdcall EnumSystemFirmwareTables( DWORD FirmwareTableProviderSignature, PVOID pFirmwareTableEnumBuffer, DWORD BufferSize ); __declspec(dllimport) UINT __stdcall GetSystemFirmwareTable( DWORD FirmwareTableProviderSignature, DWORD FirmwareTableID, PVOID pFirmwareTableBuffer, DWORD BufferSize ); __declspec(dllimport) BOOL __stdcall VirtualFreeEx( HANDLE hProcess, LPVOID lpAddress, SIZE_T dwSize, DWORD dwFreeType ); __declspec(dllimport) BOOL __stdcall VirtualProtectEx( HANDLE hProcess, LPVOID lpAddress, SIZE_T dwSize, DWORD flNewProtect, PDWORD lpflOldProtect ); __declspec(dllimport) SIZE_T __stdcall VirtualQueryEx( HANDLE hProcess, LPCVOID lpAddress, PMEMORY_BASIC_INFORMATION lpBuffer, SIZE_T dwLength ); __declspec(dllimport) HANDLE __stdcall HeapCreate( DWORD flOptions, SIZE_T dwInitialSize, SIZE_T dwMaximumSize ); __declspec(dllimport) BOOL __stdcall HeapDestroy( HANDLE hHeap ); __declspec(dllimport) LPVOID __stdcall HeapAlloc( HANDLE hHeap, DWORD dwFlags, SIZE_T dwBytes ); __declspec(dllimport) LPVOID __stdcall HeapReAlloc( HANDLE hHeap, DWORD dwFlags, LPVOID lpMem, SIZE_T dwBytes ); __declspec(dllimport) BOOL __stdcall HeapFree( HANDLE hHeap, DWORD dwFlags, LPVOID lpMem ); __declspec(dllimport) SIZE_T __stdcall HeapSize( HANDLE hHeap, DWORD dwFlags, LPCVOID lpMem ); __declspec(dllimport) BOOL __stdcall HeapValidate( HANDLE hHeap, DWORD dwFlags, LPCVOID lpMem ); __declspec(dllimport) SIZE_T __stdcall HeapCompact( HANDLE hHeap, DWORD dwFlags ); __declspec(dllimport) HANDLE __stdcall GetProcessHeap( void ); __declspec(dllimport) DWORD __stdcall GetProcessHeaps( DWORD NumberOfHeaps, PHANDLE ProcessHeaps ); typedef struct _PROCESS_HEAP_ENTRY { PVOID lpData; DWORD cbData; BYTE cbOverhead; BYTE iRegionIndex; WORD wFlags; union { struct { HANDLE hMem; DWORD dwReserved[ 3 ]; } Block; struct { DWORD dwCommittedSize; DWORD dwUnCommittedSize; LPVOID lpFirstBlock; LPVOID lpLastBlock; } Region; }; } PROCESS_HEAP_ENTRY, *LPPROCESS_HEAP_ENTRY, *PPROCESS_HEAP_ENTRY; __declspec(dllimport) BOOL __stdcall HeapLock( HANDLE hHeap ); __declspec(dllimport) BOOL __stdcall HeapUnlock( HANDLE hHeap ); __declspec(dllimport) BOOL __stdcall HeapWalk( HANDLE hHeap, LPPROCESS_HEAP_ENTRY lpEntry ); __declspec(dllimport) BOOL __stdcall HeapSetInformation ( HANDLE HeapHandle, HEAP_INFORMATION_CLASS HeapInformationClass, PVOID HeapInformation, SIZE_T HeapInformationLength ); __declspec(dllimport) BOOL __stdcall HeapQueryInformation ( HANDLE HeapHandle, HEAP_INFORMATION_CLASS HeapInformationClass, PVOID HeapInformation, SIZE_T HeapInformationLength, PSIZE_T ReturnLength ); // GetBinaryType return values. #line 3182 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 3184 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall GetBinaryTypeA( LPCSTR lpApplicationName, LPDWORD lpBinaryType ); __declspec(dllimport) BOOL __stdcall GetBinaryTypeW( LPCWSTR lpApplicationName, LPDWORD lpBinaryType ); #line 3204 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) DWORD __stdcall GetShortPathNameA( LPCSTR lpszLongPath, LPSTR lpszShortPath, DWORD cchBuffer ); __declspec(dllimport) DWORD __stdcall GetShortPathNameW( LPCWSTR lpszLongPath, LPWSTR lpszShortPath, DWORD cchBuffer ); #line 3226 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) DWORD __stdcall GetLongPathNameA( LPCSTR lpszShortPath, LPSTR lpszLongPath, DWORD cchBuffer ); __declspec(dllimport) DWORD __stdcall GetLongPathNameW( LPCWSTR lpszShortPath, LPWSTR lpszLongPath, DWORD cchBuffer ); #line 3248 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 3276 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall GetProcessAffinityMask( HANDLE hProcess, PDWORD_PTR lpProcessAffinityMask, PDWORD_PTR lpSystemAffinityMask ); __declspec(dllimport) BOOL __stdcall SetProcessAffinityMask( HANDLE hProcess, DWORD_PTR dwProcessAffinityMask ); __declspec(dllimport) BOOL __stdcall GetProcessHandleCount( HANDLE hProcess, PDWORD pdwHandleCount ); #line 3305 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall GetProcessTimes( HANDLE hProcess, LPFILETIME lpCreationTime, LPFILETIME lpExitTime, LPFILETIME lpKernelTime, LPFILETIME lpUserTime ); __declspec(dllimport) BOOL __stdcall GetProcessIoCounters( HANDLE hProcess, PIO_COUNTERS lpIoCounters ); __declspec(dllimport) BOOL __stdcall GetProcessWorkingSetSize( HANDLE hProcess, PSIZE_T lpMinimumWorkingSetSize, PSIZE_T lpMaximumWorkingSetSize ); __declspec(dllimport) BOOL __stdcall GetProcessWorkingSetSizeEx( HANDLE hProcess, PSIZE_T lpMinimumWorkingSetSize, PSIZE_T lpMaximumWorkingSetSize, PDWORD Flags ); __declspec(dllimport) BOOL __stdcall SetProcessWorkingSetSize( HANDLE hProcess, SIZE_T dwMinimumWorkingSetSize, SIZE_T dwMaximumWorkingSetSize ); __declspec(dllimport) BOOL __stdcall SetProcessWorkingSetSizeEx( HANDLE hProcess, SIZE_T dwMinimumWorkingSetSize, SIZE_T dwMaximumWorkingSetSize, DWORD Flags ); __declspec(dllimport) HANDLE __stdcall OpenProcess( DWORD dwDesiredAccess, BOOL bInheritHandle, DWORD dwProcessId ); __declspec(dllimport) HANDLE __stdcall GetCurrentProcess( void ); __declspec(dllimport) DWORD __stdcall GetCurrentProcessId( void ); __declspec(dllimport) __declspec(noreturn) void __stdcall ExitProcess( UINT uExitCode ); __declspec(dllimport) BOOL __stdcall TerminateProcess( HANDLE hProcess, UINT uExitCode ); __declspec(dllimport) BOOL __stdcall GetExitCodeProcess( HANDLE hProcess, LPDWORD lpExitCode ); __declspec(dllimport) void __stdcall FatalExit( int ExitCode ); __declspec(dllimport) LPCH __stdcall GetEnvironmentStrings( void ); __declspec(dllimport) LPWCH __stdcall GetEnvironmentStringsW( void ); #line 3441 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall SetEnvironmentStringsA( LPCH NewEnvironment ); __declspec(dllimport) BOOL __stdcall SetEnvironmentStringsW( LPWCH NewEnvironment ); #line 3459 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall FreeEnvironmentStringsA( LPCH ); __declspec(dllimport) BOOL __stdcall FreeEnvironmentStringsW( LPWCH ); #line 3477 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) void __stdcall RaiseException( DWORD dwExceptionCode, DWORD dwExceptionFlags, DWORD nNumberOfArguments, const ULONG_PTR *lpArguments ); __declspec(dllimport) LONG __stdcall UnhandledExceptionFilter( struct _EXCEPTION_POINTERS *ExceptionInfo ); typedef LONG (__stdcall *PTOP_LEVEL_EXCEPTION_FILTER)( struct _EXCEPTION_POINTERS *ExceptionInfo ); typedef PTOP_LEVEL_EXCEPTION_FILTER LPTOP_LEVEL_EXCEPTION_FILTER; __declspec(dllimport) LPTOP_LEVEL_EXCEPTION_FILTER __stdcall SetUnhandledExceptionFilter( LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter ); // // Fiber creation flags // __declspec(dllimport) LPVOID __stdcall CreateFiber( SIZE_T dwStackSize, LPFIBER_START_ROUTINE lpStartAddress, LPVOID lpParameter ); __declspec(dllimport) LPVOID __stdcall CreateFiberEx( SIZE_T dwStackCommitSize, SIZE_T dwStackReserveSize, DWORD dwFlags, LPFIBER_START_ROUTINE lpStartAddress, LPVOID lpParameter ); __declspec(dllimport) void __stdcall DeleteFiber( LPVOID lpFiber ); __declspec(dllimport) LPVOID __stdcall ConvertThreadToFiber( LPVOID lpParameter ); __declspec(dllimport) LPVOID __stdcall ConvertThreadToFiberEx( LPVOID lpParameter, DWORD dwFlags ); __declspec(dllimport) BOOL __stdcall ConvertFiberToThread( void ); #line 3572 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 3583 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) void __stdcall SwitchToFiber( LPVOID lpFiber ); __declspec(dllimport) BOOL __stdcall SwitchToThread( void ); #line 3599 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) HANDLE __stdcall CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes, SIZE_T dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress, LPVOID lpParameter, DWORD dwCreationFlags, LPDWORD lpThreadId ); __declspec(dllimport) HANDLE __stdcall CreateRemoteThread( HANDLE hProcess, LPSECURITY_ATTRIBUTES lpThreadAttributes, SIZE_T dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress, LPVOID lpParameter, DWORD dwCreationFlags, LPDWORD lpThreadId ); __declspec(dllimport) HANDLE __stdcall GetCurrentThread( void ); __declspec(dllimport) DWORD __stdcall GetCurrentThreadId( void ); __declspec(dllimport) BOOL __stdcall SetThreadStackGuarantee ( PULONG StackSizeInBytes ); __declspec(dllimport) DWORD __stdcall GetProcessIdOfThread( HANDLE Thread ); __declspec(dllimport) DWORD __stdcall GetThreadId( HANDLE Thread ); #line 3666 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) DWORD __stdcall GetProcessId( HANDLE Process ); __declspec(dllimport) DWORD __stdcall GetCurrentProcessorNumber( void ); __declspec(dllimport) DWORD_PTR __stdcall SetThreadAffinityMask( HANDLE hThread, DWORD_PTR dwThreadAffinityMask ); __declspec(dllimport) DWORD __stdcall SetThreadIdealProcessor( HANDLE hThread, DWORD dwIdealProcessor ); #line 3698 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall SetProcessPriorityBoost( HANDLE hProcess, BOOL bDisablePriorityBoost ); __declspec(dllimport) BOOL __stdcall GetProcessPriorityBoost( HANDLE hProcess, PBOOL pDisablePriorityBoost ); __declspec(dllimport) BOOL __stdcall RequestWakeupLatency( LATENCY_TIME latency ); __declspec(dllimport) BOOL __stdcall IsSystemResumeAutomatic( void ); __declspec(dllimport) HANDLE __stdcall OpenThread( DWORD dwDesiredAccess, BOOL bInheritHandle, DWORD dwThreadId ); __declspec(dllimport) BOOL __stdcall SetThreadPriority( HANDLE hThread, int nPriority ); __declspec(dllimport) BOOL __stdcall SetThreadPriorityBoost( HANDLE hThread, BOOL bDisablePriorityBoost ); __declspec(dllimport) BOOL __stdcall GetThreadPriorityBoost( HANDLE hThread, PBOOL pDisablePriorityBoost ); __declspec(dllimport) int __stdcall GetThreadPriority( HANDLE hThread ); __declspec(dllimport) BOOL __stdcall GetThreadTimes( HANDLE hThread, LPFILETIME lpCreationTime, LPFILETIME lpExitTime, LPFILETIME lpKernelTime, LPFILETIME lpUserTime ); __declspec(dllimport) BOOL __stdcall GetThreadIOPendingFlag( HANDLE hThread, PBOOL lpIOIsPending ); #line 3792 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) __declspec(noreturn) void __stdcall ExitThread( DWORD dwExitCode ); __declspec(dllimport) BOOL __stdcall TerminateThread( HANDLE hThread, DWORD dwExitCode ); __declspec(dllimport) BOOL __stdcall GetExitCodeThread( HANDLE hThread, LPDWORD lpExitCode ); __declspec(dllimport) BOOL __stdcall GetThreadSelectorEntry( HANDLE hThread, DWORD dwSelector, LPLDT_ENTRY lpSelectorEntry ); __declspec(dllimport) EXECUTION_STATE __stdcall SetThreadExecutionState( EXECUTION_STATE esFlags ); __declspec(dllimport) DWORD __stdcall GetLastError( void ); #line 3844 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) void __stdcall SetLastError( DWORD dwErrCode ); //#if _WIN32_WINNT >= 0x0501 || defined(WINBASE_DECLARE_RESTORE_LAST_ERROR) #line 3869 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 3870 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall GetOverlappedResult( HANDLE hFile, LPOVERLAPPED lpOverlapped, LPDWORD lpNumberOfBytesTransferred, BOOL bWait ); __declspec(dllimport) HANDLE __stdcall CreateIoCompletionPort( HANDLE FileHandle, HANDLE ExistingCompletionPort, ULONG_PTR CompletionKey, DWORD NumberOfConcurrentThreads ); __declspec(dllimport) BOOL __stdcall GetQueuedCompletionStatus( HANDLE CompletionPort, LPDWORD lpNumberOfBytesTransferred, PULONG_PTR lpCompletionKey, LPOVERLAPPED *lpOverlapped, DWORD dwMilliseconds ); #line 3920 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall PostQueuedCompletionStatus( HANDLE CompletionPort, DWORD dwNumberOfBytesTransferred, ULONG_PTR dwCompletionKey, LPOVERLAPPED lpOverlapped ); #line 3967 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) UINT __stdcall GetErrorMode( void ); __declspec(dllimport) UINT __stdcall SetErrorMode( UINT uMode ); __declspec(dllimport) BOOL __stdcall ReadProcessMemory( HANDLE hProcess, LPCVOID lpBaseAddress, LPVOID lpBuffer, SIZE_T nSize, SIZE_T * lpNumberOfBytesRead ); __declspec(dllimport) BOOL __stdcall WriteProcessMemory( HANDLE hProcess, LPVOID lpBaseAddress, LPCVOID lpBuffer, SIZE_T nSize, SIZE_T * lpNumberOfBytesWritten ); __declspec(dllimport) BOOL __stdcall GetThreadContext( HANDLE hThread, LPCONTEXT lpContext ); __declspec(dllimport) BOOL __stdcall SetThreadContext( HANDLE hThread, const CONTEXT *lpContext ); __declspec(dllimport) BOOL __stdcall Wow64GetThreadContext( HANDLE hThread, PWOW64_CONTEXT lpContext ); __declspec(dllimport) BOOL __stdcall Wow64SetThreadContext( HANDLE hThread, const WOW64_CONTEXT *lpContext ); #line 4043 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) DWORD __stdcall SuspendThread( HANDLE hThread ); __declspec(dllimport) DWORD __stdcall Wow64SuspendThread( HANDLE hThread ); __declspec(dllimport) DWORD __stdcall ResumeThread( HANDLE hThread ); typedef void (__stdcall *PAPCFUNC)( ULONG_PTR dwParam ); __declspec(dllimport) DWORD __stdcall QueueUserAPC( PAPCFUNC pfnAPC, HANDLE hThread, ULONG_PTR dwData ); #line 4084 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall IsDebuggerPresent( void ); #line 4093 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall CheckRemoteDebuggerPresent( HANDLE hProcess, PBOOL pbDebuggerPresent ); #line 4105 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) void __stdcall DebugBreak( void ); __declspec(dllimport) BOOL __stdcall WaitForDebugEvent( LPDEBUG_EVENT lpDebugEvent, DWORD dwMilliseconds ); __declspec(dllimport) BOOL __stdcall ContinueDebugEvent( DWORD dwProcessId, DWORD dwThreadId, DWORD dwContinueStatus ); __declspec(dllimport) BOOL __stdcall DebugActiveProcess( DWORD dwProcessId ); __declspec(dllimport) BOOL __stdcall DebugActiveProcessStop( DWORD dwProcessId ); __declspec(dllimport) BOOL __stdcall DebugSetProcessKillOnExit( BOOL KillOnExit ); __declspec(dllimport) BOOL __stdcall DebugBreakProcess ( HANDLE Process ); __declspec(dllimport) void __stdcall InitializeCriticalSection( LPCRITICAL_SECTION lpCriticalSection ); __declspec(dllimport) void __stdcall EnterCriticalSection( LPCRITICAL_SECTION lpCriticalSection ); __declspec(dllimport) void __stdcall LeaveCriticalSection( LPCRITICAL_SECTION lpCriticalSection ); __declspec(dllimport) BOOL __stdcall InitializeCriticalSectionAndSpinCount( LPCRITICAL_SECTION lpCriticalSection, DWORD dwSpinCount ); __declspec(dllimport) BOOL __stdcall InitializeCriticalSectionEx( LPCRITICAL_SECTION lpCriticalSection, DWORD dwSpinCount, DWORD Flags ); __declspec(dllimport) DWORD __stdcall SetCriticalSectionSpinCount( LPCRITICAL_SECTION lpCriticalSection, DWORD dwSpinCount ); #line 4207 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall TryEnterCriticalSection( LPCRITICAL_SECTION lpCriticalSection ); #line 4216 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) void __stdcall DeleteCriticalSection( LPCRITICAL_SECTION lpCriticalSection ); __declspec(dllimport) BOOL __stdcall SetEvent( HANDLE hEvent ); __declspec(dllimport) BOOL __stdcall ResetEvent( HANDLE hEvent ); __declspec(dllimport) BOOL __stdcall PulseEvent( HANDLE hEvent ); __declspec(dllimport) BOOL __stdcall ReleaseSemaphore( HANDLE hSemaphore, LONG lReleaseCount, LPLONG lpPreviousCount ); __declspec(dllimport) BOOL __stdcall ReleaseMutex( HANDLE hMutex ); __declspec(dllimport) DWORD __stdcall WaitForSingleObject( HANDLE hHandle, DWORD dwMilliseconds ); __declspec(dllimport) DWORD __stdcall WaitForMultipleObjects( DWORD nCount, const HANDLE *lpHandles, BOOL bWaitAll, DWORD dwMilliseconds ); __declspec(dllimport) void __stdcall Sleep( DWORD dwMilliseconds ); __declspec(dllimport) HGLOBAL __stdcall LoadResource( HMODULE hModule, HRSRC hResInfo ); __declspec(dllimport) DWORD __stdcall SizeofResource( HMODULE hModule, HRSRC hResInfo ); __declspec(dllimport) ATOM __stdcall GlobalDeleteAtom( ATOM nAtom ); __declspec(dllimport) BOOL __stdcall InitAtomTable( DWORD nSize ); __declspec(dllimport) ATOM __stdcall DeleteAtom( ATOM nAtom ); __declspec(dllimport) UINT __stdcall SetHandleCount( UINT uNumber ); __declspec(dllimport) DWORD __stdcall GetLogicalDrives( void ); __declspec(dllimport) BOOL __stdcall LockFile( HANDLE hFile, DWORD dwFileOffsetLow, DWORD dwFileOffsetHigh, DWORD nNumberOfBytesToLockLow, DWORD nNumberOfBytesToLockHigh ); __declspec(dllimport) BOOL __stdcall UnlockFile( HANDLE hFile, DWORD dwFileOffsetLow, DWORD dwFileOffsetHigh, DWORD nNumberOfBytesToUnlockLow, DWORD nNumberOfBytesToUnlockHigh ); __declspec(dllimport) BOOL __stdcall LockFileEx( HANDLE hFile, DWORD dwFlags, DWORD dwReserved, DWORD nNumberOfBytesToLockLow, DWORD nNumberOfBytesToLockHigh, LPOVERLAPPED lpOverlapped ); __declspec(dllimport) BOOL __stdcall UnlockFileEx( HANDLE hFile, DWORD dwReserved, DWORD nNumberOfBytesToUnlockLow, DWORD nNumberOfBytesToUnlockHigh, LPOVERLAPPED lpOverlapped ); typedef struct _BY_HANDLE_FILE_INFORMATION { DWORD dwFileAttributes; FILETIME ftCreationTime; FILETIME ftLastAccessTime; FILETIME ftLastWriteTime; DWORD dwVolumeSerialNumber; DWORD nFileSizeHigh; DWORD nFileSizeLow; DWORD nNumberOfLinks; DWORD nFileIndexHigh; DWORD nFileIndexLow; } BY_HANDLE_FILE_INFORMATION, *PBY_HANDLE_FILE_INFORMATION, *LPBY_HANDLE_FILE_INFORMATION; __declspec(dllimport) BOOL __stdcall GetFileInformationByHandle( HANDLE hFile, LPBY_HANDLE_FILE_INFORMATION lpFileInformation ); __declspec(dllimport) DWORD __stdcall GetFileType( HANDLE hFile ); __declspec(dllimport) DWORD __stdcall GetFileSize( HANDLE hFile, LPDWORD lpFileSizeHigh ); __declspec(dllimport) BOOL __stdcall GetFileSizeEx( HANDLE hFile, PLARGE_INTEGER lpFileSize ); __declspec(dllimport) HANDLE __stdcall GetStdHandle( DWORD nStdHandle ); __declspec(dllimport) BOOL __stdcall SetStdHandle( DWORD nStdHandle, HANDLE hHandle ); #line 4459 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall WriteFile( HANDLE hFile, LPCVOID lpBuffer, DWORD nNumberOfBytesToWrite, LPDWORD lpNumberOfBytesWritten, LPOVERLAPPED lpOverlapped ); __declspec(dllimport) BOOL __stdcall ReadFile( HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead, LPOVERLAPPED lpOverlapped ); __declspec(dllimport) BOOL __stdcall FlushFileBuffers( HANDLE hFile ); __declspec(dllimport) BOOL __stdcall DeviceIoControl( HANDLE hDevice, DWORD dwIoControlCode, LPVOID lpInBuffer, DWORD nInBufferSize, LPVOID lpOutBuffer, DWORD nOutBufferSize, LPDWORD lpBytesReturned, LPOVERLAPPED lpOverlapped ); __declspec(dllimport) BOOL __stdcall RequestDeviceWakeup( HANDLE hDevice ); __declspec(dllimport) BOOL __stdcall CancelDeviceWakeupRequest( HANDLE hDevice ); __declspec(dllimport) BOOL __stdcall GetDevicePowerState( HANDLE hDevice, BOOL *pfOn ); __declspec(dllimport) BOOL __stdcall SetMessageWaitingIndicator( HANDLE hMsgIndicator, ULONG ulMsgCount ); __declspec(dllimport) BOOL __stdcall SetEndOfFile( HANDLE hFile ); __declspec(dllimport) DWORD __stdcall SetFilePointer( HANDLE hFile, LONG lDistanceToMove, PLONG lpDistanceToMoveHigh, DWORD dwMoveMethod ); __declspec(dllimport) BOOL __stdcall SetFilePointerEx( HANDLE hFile, LARGE_INTEGER liDistanceToMove, PLARGE_INTEGER lpNewFilePointer, DWORD dwMoveMethod ); __declspec(dllimport) BOOL __stdcall FindClose( HANDLE hFindFile ); __declspec(dllimport) BOOL __stdcall GetFileTime( HANDLE hFile, LPFILETIME lpCreationTime, LPFILETIME lpLastAccessTime, LPFILETIME lpLastWriteTime ); __declspec(dllimport) BOOL __stdcall SetFileTime( HANDLE hFile, const FILETIME *lpCreationTime, const FILETIME *lpLastAccessTime, const FILETIME *lpLastWriteTime ); __declspec(dllimport) BOOL __stdcall SetFileValidData( HANDLE hFile, LONGLONG ValidDataLength ); #line 4599 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall SetFileShortNameA( HANDLE hFile, LPCSTR lpShortName ); __declspec(dllimport) BOOL __stdcall SetFileShortNameW( HANDLE hFile, LPCWSTR lpShortName ); #line 4620 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall CloseHandle( HANDLE hObject ); __declspec(dllimport) BOOL __stdcall DuplicateHandle( HANDLE hSourceProcessHandle, HANDLE hSourceHandle, HANDLE hTargetProcessHandle, LPHANDLE lpTargetHandle, DWORD dwDesiredAccess, BOOL bInheritHandle, DWORD dwOptions ); __declspec(dllimport) BOOL __stdcall GetHandleInformation( HANDLE hObject, LPDWORD lpdwFlags ); __declspec(dllimport) BOOL __stdcall SetHandleInformation( HANDLE hObject, DWORD dwMask, DWORD dwFlags ); __declspec(dllimport) DWORD __stdcall LoadModule( LPCSTR lpModuleName, LPVOID lpParameterBlock ); __declspec(dllimport) UINT __stdcall WinExec( LPCSTR lpCmdLine, UINT uCmdShow ); __declspec(dllimport) BOOL __stdcall ClearCommBreak( HANDLE hFile ); __declspec(dllimport) BOOL __stdcall ClearCommError( HANDLE hFile, LPDWORD lpErrors, LPCOMSTAT lpStat ); __declspec(dllimport) BOOL __stdcall SetupComm( HANDLE hFile, DWORD dwInQueue, DWORD dwOutQueue ); __declspec(dllimport) BOOL __stdcall EscapeCommFunction( HANDLE hFile, DWORD dwFunc ); __declspec(dllimport) BOOL __stdcall GetCommConfig( HANDLE hCommDev, LPCOMMCONFIG lpCC, LPDWORD lpdwSize ); __declspec(dllimport) BOOL __stdcall GetCommMask( HANDLE hFile, LPDWORD lpEvtMask ); __declspec(dllimport) BOOL __stdcall GetCommProperties( HANDLE hFile, LPCOMMPROP lpCommProp ); __declspec(dllimport) BOOL __stdcall GetCommModemStatus( HANDLE hFile, LPDWORD lpModemStat ); __declspec(dllimport) BOOL __stdcall GetCommState( HANDLE hFile, LPDCB lpDCB ); __declspec(dllimport) BOOL __stdcall GetCommTimeouts( HANDLE hFile, LPCOMMTIMEOUTS lpCommTimeouts ); __declspec(dllimport) BOOL __stdcall PurgeComm( HANDLE hFile, DWORD dwFlags ); __declspec(dllimport) BOOL __stdcall SetCommBreak( HANDLE hFile ); __declspec(dllimport) BOOL __stdcall SetCommConfig( HANDLE hCommDev, LPCOMMCONFIG lpCC, DWORD dwSize ); __declspec(dllimport) BOOL __stdcall SetCommMask( HANDLE hFile, DWORD dwEvtMask ); __declspec(dllimport) BOOL __stdcall SetCommState( HANDLE hFile, LPDCB lpDCB ); __declspec(dllimport) BOOL __stdcall SetCommTimeouts( HANDLE hFile, LPCOMMTIMEOUTS lpCommTimeouts ); __declspec(dllimport) BOOL __stdcall TransmitCommChar( HANDLE hFile, char cChar ); __declspec(dllimport) BOOL __stdcall WaitCommEvent( HANDLE hFile, LPDWORD lpEvtMask, LPOVERLAPPED lpOverlapped ); __declspec(dllimport) DWORD __stdcall SetTapePosition( HANDLE hDevice, DWORD dwPositionMethod, DWORD dwPartition, DWORD dwOffsetLow, DWORD dwOffsetHigh, BOOL bImmediate ); __declspec(dllimport) DWORD __stdcall GetTapePosition( HANDLE hDevice, DWORD dwPositionType, LPDWORD lpdwPartition, LPDWORD lpdwOffsetLow, LPDWORD lpdwOffsetHigh ); __declspec(dllimport) DWORD __stdcall PrepareTape( HANDLE hDevice, DWORD dwOperation, BOOL bImmediate ); __declspec(dllimport) DWORD __stdcall EraseTape( HANDLE hDevice, DWORD dwEraseType, BOOL bImmediate ); __declspec(dllimport) DWORD __stdcall CreateTapePartition( HANDLE hDevice, DWORD dwPartitionMethod, DWORD dwCount, DWORD dwSize ); __declspec(dllimport) DWORD __stdcall WriteTapemark( HANDLE hDevice, DWORD dwTapemarkType, DWORD dwTapemarkCount, BOOL bImmediate ); __declspec(dllimport) DWORD __stdcall GetTapeStatus( HANDLE hDevice ); __declspec(dllimport) DWORD __stdcall GetTapeParameters( HANDLE hDevice, DWORD dwOperation, LPDWORD lpdwSize, LPVOID lpTapeInformation ); __declspec(dllimport) DWORD __stdcall SetTapeParameters( HANDLE hDevice, DWORD dwOperation, LPVOID lpTapeInformation ); __declspec(dllimport) BOOL __stdcall Beep( DWORD dwFreq, DWORD dwDuration ); __declspec(dllimport) int __stdcall MulDiv( int nNumber, int nNumerator, int nDenominator ); __declspec(dllimport) void __stdcall GetSystemTime( LPSYSTEMTIME lpSystemTime ); __declspec(dllimport) void __stdcall GetSystemTimeAsFileTime( LPFILETIME lpSystemTimeAsFileTime ); __declspec(dllimport) BOOL __stdcall SetSystemTime( const SYSTEMTIME *lpSystemTime ); __declspec(dllimport) void __stdcall GetLocalTime( LPSYSTEMTIME lpSystemTime ); __declspec(dllimport) BOOL __stdcall SetLocalTime( const SYSTEMTIME *lpSystemTime ); __declspec(dllimport) void __stdcall GetSystemInfo( LPSYSTEM_INFO lpSystemInfo ); __declspec(dllimport) BOOL __stdcall SetSystemFileCacheSize ( SIZE_T MinimumFileCacheSize, SIZE_T MaximumFileCacheSize, DWORD Flags ); __declspec(dllimport) BOOL __stdcall GetSystemFileCacheSize ( PSIZE_T lpMinimumFileCacheSize, PSIZE_T lpMaximumFileCacheSize, PDWORD lpFlags ); #line 5002 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall GetSystemRegistryQuota( PDWORD pdwQuotaAllowed, PDWORD pdwQuotaUsed ); BOOL __stdcall GetSystemTimes( LPFILETIME lpIdleTime, LPFILETIME lpKernelTime, LPFILETIME lpUserTime ); #line 5022 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) void __stdcall GetNativeSystemInfo( LPSYSTEM_INFO lpSystemInfo ); #line 5031 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall IsProcessorFeaturePresent( DWORD ProcessorFeature ); typedef struct _TIME_ZONE_INFORMATION { LONG Bias; WCHAR StandardName[ 32 ]; SYSTEMTIME StandardDate; LONG StandardBias; WCHAR DaylightName[ 32 ]; SYSTEMTIME DaylightDate; LONG DaylightBias; } TIME_ZONE_INFORMATION, *PTIME_ZONE_INFORMATION, *LPTIME_ZONE_INFORMATION; typedef struct _TIME_DYNAMIC_ZONE_INFORMATION { LONG Bias; WCHAR StandardName[ 32 ]; SYSTEMTIME StandardDate; LONG StandardBias; WCHAR DaylightName[ 32 ]; SYSTEMTIME DaylightDate; LONG DaylightBias; WCHAR TimeZoneKeyName[ 128 ]; BOOLEAN DynamicDaylightTimeDisabled; } DYNAMIC_TIME_ZONE_INFORMATION, *PDYNAMIC_TIME_ZONE_INFORMATION; __declspec(dllimport) BOOL __stdcall SystemTimeToTzSpecificLocalTime( const TIME_ZONE_INFORMATION *lpTimeZoneInformation, const SYSTEMTIME *lpUniversalTime, LPSYSTEMTIME lpLocalTime ); __declspec(dllimport) BOOL __stdcall TzSpecificLocalTimeToSystemTime( const TIME_ZONE_INFORMATION *lpTimeZoneInformation, const SYSTEMTIME *lpLocalTime, LPSYSTEMTIME lpUniversalTime ); __declspec(dllimport) DWORD __stdcall GetTimeZoneInformation( LPTIME_ZONE_INFORMATION lpTimeZoneInformation ); __declspec(dllimport) BOOL __stdcall SetTimeZoneInformation( const TIME_ZONE_INFORMATION *lpTimeZoneInformation ); __declspec(dllimport) DWORD __stdcall GetDynamicTimeZoneInformation( PDYNAMIC_TIME_ZONE_INFORMATION pTimeZoneInformation ); __declspec(dllimport) BOOL __stdcall SetDynamicTimeZoneInformation( const DYNAMIC_TIME_ZONE_INFORMATION *lpTimeZoneInformation ); // // Routines to convert back and forth between system time and file time // __declspec(dllimport) BOOL __stdcall SystemTimeToFileTime( const SYSTEMTIME *lpSystemTime, LPFILETIME lpFileTime ); __declspec(dllimport) BOOL __stdcall FileTimeToLocalFileTime( const FILETIME *lpFileTime, LPFILETIME lpLocalFileTime ); __declspec(dllimport) BOOL __stdcall LocalFileTimeToFileTime( const FILETIME *lpLocalFileTime, LPFILETIME lpFileTime ); __declspec(dllimport) BOOL __stdcall FileTimeToSystemTime( const FILETIME *lpFileTime, LPSYSTEMTIME lpSystemTime ); __declspec(dllimport) LONG __stdcall CompareFileTime( const FILETIME *lpFileTime1, const FILETIME *lpFileTime2 ); __declspec(dllimport) BOOL __stdcall FileTimeToDosDateTime( const FILETIME *lpFileTime, LPWORD lpFatDate, LPWORD lpFatTime ); __declspec(dllimport) BOOL __stdcall DosDateTimeToFileTime( WORD wFatDate, WORD wFatTime, LPFILETIME lpFileTime ); __declspec(dllimport) DWORD __stdcall GetTickCount( void ); __declspec(dllimport) ULONGLONG __stdcall GetTickCount64( void ); __declspec(dllimport) BOOL __stdcall SetSystemTimeAdjustment( DWORD dwTimeAdjustment, BOOL bTimeAdjustmentDisabled ); __declspec(dllimport) BOOL __stdcall GetSystemTimeAdjustment( PDWORD lpTimeAdjustment, PDWORD lpTimeIncrement, PBOOL lpTimeAdjustmentDisabled ); __declspec(dllimport) DWORD __stdcall FormatMessageA( DWORD dwFlags, LPCVOID lpSource, DWORD dwMessageId, DWORD dwLanguageId, LPSTR lpBuffer, DWORD nSize, va_list *Arguments ); __declspec(dllimport) DWORD __stdcall FormatMessageW( DWORD dwFlags, LPCVOID lpSource, DWORD dwMessageId, DWORD dwLanguageId, LPWSTR lpBuffer, DWORD nSize, va_list *Arguments ); #line 5233 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 5263 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 5264 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall CreatePipe( PHANDLE hReadPipe, PHANDLE hWritePipe, LPSECURITY_ATTRIBUTES lpPipeAttributes, DWORD nSize ); __declspec(dllimport) BOOL __stdcall ConnectNamedPipe( HANDLE hNamedPipe, LPOVERLAPPED lpOverlapped ); __declspec(dllimport) BOOL __stdcall DisconnectNamedPipe( HANDLE hNamedPipe ); __declspec(dllimport) BOOL __stdcall SetNamedPipeHandleState( HANDLE hNamedPipe, LPDWORD lpMode, LPDWORD lpMaxCollectionCount, LPDWORD lpCollectDataTimeout ); __declspec(dllimport) BOOL __stdcall GetNamedPipeInfo( HANDLE hNamedPipe, LPDWORD lpFlags, LPDWORD lpOutBufferSize, LPDWORD lpInBufferSize, LPDWORD lpMaxInstances ); __declspec(dllimport) BOOL __stdcall PeekNamedPipe( HANDLE hNamedPipe, LPVOID lpBuffer, DWORD nBufferSize, LPDWORD lpBytesRead, LPDWORD lpTotalBytesAvail, LPDWORD lpBytesLeftThisMessage ); __declspec(dllimport) BOOL __stdcall TransactNamedPipe( HANDLE hNamedPipe, LPVOID lpInBuffer, DWORD nInBufferSize, LPVOID lpOutBuffer, DWORD nOutBufferSize, LPDWORD lpBytesRead, LPOVERLAPPED lpOverlapped ); __declspec(dllimport) HANDLE __stdcall CreateMailslotA( LPCSTR lpName, DWORD nMaxMessageSize, DWORD lReadTimeout, LPSECURITY_ATTRIBUTES lpSecurityAttributes ); __declspec(dllimport) HANDLE __stdcall CreateMailslotW( LPCWSTR lpName, DWORD nMaxMessageSize, DWORD lReadTimeout, LPSECURITY_ATTRIBUTES lpSecurityAttributes ); #line 5371 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall GetMailslotInfo( HANDLE hMailslot, LPDWORD lpMaxMessageSize, LPDWORD lpNextSize, LPDWORD lpMessageCount, LPDWORD lpReadTimeout ); __declspec(dllimport) BOOL __stdcall SetMailslotInfo( HANDLE hMailslot, DWORD lReadTimeout ); __declspec(dllimport) LPVOID __stdcall MapViewOfFile( HANDLE hFileMappingObject, DWORD dwDesiredAccess, DWORD dwFileOffsetHigh, DWORD dwFileOffsetLow, SIZE_T dwNumberOfBytesToMap ); __declspec(dllimport) BOOL __stdcall FlushViewOfFile( LPCVOID lpBaseAddress, SIZE_T dwNumberOfBytesToFlush ); __declspec(dllimport) BOOL __stdcall UnmapViewOfFile( LPCVOID lpBaseAddress ); // // File Encryption API // __declspec(dllimport) BOOL __stdcall EncryptFileA( LPCSTR lpFileName ); __declspec(dllimport) BOOL __stdcall EncryptFileW( LPCWSTR lpFileName ); #line 5439 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall DecryptFileA( LPCSTR lpFileName, DWORD dwReserved ); __declspec(dllimport) BOOL __stdcall DecryptFileW( LPCWSTR lpFileName, DWORD dwReserved ); #line 5459 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" // // Encryption Status Value // __declspec(dllimport) BOOL __stdcall FileEncryptionStatusA( LPCSTR lpFileName, LPDWORD lpStatus ); __declspec(dllimport) BOOL __stdcall FileEncryptionStatusW( LPCWSTR lpFileName, LPDWORD lpStatus ); #line 5494 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" // // Currently defined recovery flags // typedef DWORD (__stdcall *PFE_EXPORT_FUNC)( PBYTE pbData, PVOID pvCallbackContext, ULONG ulLength ); typedef DWORD (__stdcall *PFE_IMPORT_FUNC)( PBYTE pbData, PVOID pvCallbackContext, PULONG ulLength ); // // OpenRaw flag values // __declspec(dllimport) DWORD __stdcall OpenEncryptedFileRawA( LPCSTR lpFileName, ULONG ulFlags, PVOID *pvContext ); __declspec(dllimport) DWORD __stdcall OpenEncryptedFileRawW( LPCWSTR lpFileName, ULONG ulFlags, PVOID *pvContext ); #line 5549 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) DWORD __stdcall ReadEncryptedFileRaw( PFE_EXPORT_FUNC pfExportCallback, PVOID pvCallbackContext, PVOID pvContext ); __declspec(dllimport) DWORD __stdcall WriteEncryptedFileRaw( PFE_IMPORT_FUNC pfImportCallback, PVOID pvCallbackContext, PVOID pvContext ); __declspec(dllimport) void __stdcall CloseEncryptedFileRaw( PVOID pvContext ); // // _l Compat Functions // __declspec(dllimport) int __stdcall lstrcmpA( LPCSTR lpString1, LPCSTR lpString2 ); __declspec(dllimport) int __stdcall lstrcmpW( LPCWSTR lpString1, LPCWSTR lpString2 ); #line 5598 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) int __stdcall lstrcmpiA( LPCSTR lpString1, LPCSTR lpString2 ); __declspec(dllimport) int __stdcall lstrcmpiW( LPCWSTR lpString1, LPCWSTR lpString2 ); #line 5618 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) LPSTR __stdcall lstrcpynA( LPSTR lpString1, LPCSTR lpString2, int iMaxLength ); __declspec(dllimport) LPWSTR __stdcall lstrcpynW( LPWSTR lpString1, LPCWSTR lpString2, int iMaxLength ); #line 5642 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #pragma warning(push) #pragma warning(disable:4995) #line 5647 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) LPSTR __stdcall lstrcpyA( LPSTR lpString1, LPCSTR lpString2 ); __declspec(dllimport) LPWSTR __stdcall lstrcpyW( LPWSTR lpString1, LPCWSTR lpString2 ); #line 5669 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) LPSTR __stdcall lstrcatA( LPSTR lpString1, LPCSTR lpString2 ); __declspec(dllimport) LPWSTR __stdcall lstrcatW( LPWSTR lpString1, LPCWSTR lpString2 ); #line 5691 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #pragma warning(pop) #line 5695 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) int __stdcall lstrlenA( LPCSTR lpString ); __declspec(dllimport) int __stdcall lstrlenW( LPCWSTR lpString ); #line 5713 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) HFILE __stdcall OpenFile( LPCSTR lpFileName, LPOFSTRUCT lpReOpenBuff, UINT uStyle ); __declspec(dllimport) HFILE __stdcall _lopen( LPCSTR lpPathName, int iReadWrite ); __declspec(dllimport) HFILE __stdcall _lcreat( LPCSTR lpPathName, int iAttribute ); __declspec(dllimport) UINT __stdcall _lread( HFILE hFile, LPVOID lpBuffer, UINT uBytes ); __declspec(dllimport) UINT __stdcall _lwrite( HFILE hFile, LPCCH lpBuffer, UINT uBytes ); __declspec(dllimport) long __stdcall _hread( HFILE hFile, LPVOID lpBuffer, long lBytes ); __declspec(dllimport) long __stdcall _hwrite( HFILE hFile, LPCCH lpBuffer, long lBytes ); __declspec(dllimport) HFILE __stdcall _lclose( HFILE hFile ); __declspec(dllimport) LONG __stdcall _llseek( HFILE hFile, LONG lOffset, int iOrigin ); __declspec(dllimport) BOOL __stdcall IsTextUnicode( const void* lpv, int iSize, LPINT lpiResult ); __declspec(dllimport) DWORD __stdcall FlsAlloc( PFLS_CALLBACK_FUNCTION lpCallback ); __declspec(dllimport) PVOID __stdcall FlsGetValue( DWORD dwFlsIndex ); __declspec(dllimport) BOOL __stdcall FlsSetValue( DWORD dwFlsIndex, PVOID lpFlsData ); __declspec(dllimport) BOOL __stdcall FlsFree( DWORD dwFlsIndex ); __declspec(dllimport) DWORD __stdcall TlsAlloc( void ); __declspec(dllimport) LPVOID __stdcall TlsGetValue( DWORD dwTlsIndex ); __declspec(dllimport) BOOL __stdcall TlsSetValue( DWORD dwTlsIndex, LPVOID lpTlsValue ); __declspec(dllimport) BOOL __stdcall TlsFree( DWORD dwTlsIndex ); typedef void (__stdcall *LPOVERLAPPED_COMPLETION_ROUTINE)( DWORD dwErrorCode, DWORD dwNumberOfBytesTransfered, LPOVERLAPPED lpOverlapped ); __declspec(dllimport) DWORD __stdcall SleepEx( DWORD dwMilliseconds, BOOL bAlertable ); __declspec(dllimport) DWORD __stdcall WaitForSingleObjectEx( HANDLE hHandle, DWORD dwMilliseconds, BOOL bAlertable ); __declspec(dllimport) DWORD __stdcall WaitForMultipleObjectsEx( DWORD nCount, const HANDLE *lpHandles, BOOL bWaitAll, DWORD dwMilliseconds, BOOL bAlertable ); __declspec(dllimport) DWORD __stdcall SignalObjectAndWait( HANDLE hObjectToSignal, HANDLE hObjectToWaitOn, DWORD dwMilliseconds, BOOL bAlertable ); #line 5909 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall ReadFileEx( HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPOVERLAPPED lpOverlapped, LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine ); __declspec(dllimport) BOOL __stdcall WriteFileEx( HANDLE hFile, LPCVOID lpBuffer, DWORD nNumberOfBytesToWrite, LPOVERLAPPED lpOverlapped, LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine ); __declspec(dllimport) BOOL __stdcall BackupRead( HANDLE hFile, LPBYTE lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead, BOOL bAbort, BOOL bProcessSecurity, LPVOID *lpContext ); __declspec(dllimport) BOOL __stdcall BackupSeek( HANDLE hFile, DWORD dwLowBytesToSeek, DWORD dwHighBytesToSeek, LPDWORD lpdwLowByteSeeked, LPDWORD lpdwHighByteSeeked, LPVOID *lpContext ); __declspec(dllimport) BOOL __stdcall BackupWrite( HANDLE hFile, LPBYTE lpBuffer, DWORD nNumberOfBytesToWrite, LPDWORD lpNumberOfBytesWritten, BOOL bAbort, BOOL bProcessSecurity, LPVOID *lpContext ); // // Stream id structure // typedef struct _WIN32_STREAM_ID { DWORD dwStreamId ; DWORD dwStreamAttributes ; LARGE_INTEGER Size ; DWORD dwStreamNameSize ; WCHAR cStreamName[ 1 ] ; } WIN32_STREAM_ID, *LPWIN32_STREAM_ID ; // // Stream Ids // // // Stream Attributes // __declspec(dllimport) BOOL __stdcall ReadFileScatter( HANDLE hFile, FILE_SEGMENT_ELEMENT aSegmentArray[], DWORD nNumberOfBytesToRead, LPDWORD lpReserved, LPOVERLAPPED lpOverlapped ); __declspec(dllimport) BOOL __stdcall WriteFileGather( HANDLE hFile, FILE_SEGMENT_ELEMENT aSegmentArray[], DWORD nNumberOfBytesToWrite, LPDWORD lpReserved, LPOVERLAPPED lpOverlapped ); // // Dual Mode API below this line. Dual Mode Structures also included. // #line 6048 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" typedef struct _STARTUPINFOA { DWORD cb; LPSTR lpReserved; LPSTR lpDesktop; LPSTR lpTitle; DWORD dwX; DWORD dwY; DWORD dwXSize; DWORD dwYSize; DWORD dwXCountChars; DWORD dwYCountChars; DWORD dwFillAttribute; DWORD dwFlags; WORD wShowWindow; WORD cbReserved2; LPBYTE lpReserved2; HANDLE hStdInput; HANDLE hStdOutput; HANDLE hStdError; } STARTUPINFOA, *LPSTARTUPINFOA; typedef struct _STARTUPINFOW { DWORD cb; LPWSTR lpReserved; LPWSTR lpDesktop; LPWSTR lpTitle; DWORD dwX; DWORD dwY; DWORD dwXSize; DWORD dwYSize; DWORD dwXCountChars; DWORD dwYCountChars; DWORD dwFillAttribute; DWORD dwFlags; WORD wShowWindow; WORD cbReserved2; LPBYTE lpReserved2; HANDLE hStdInput; HANDLE hStdOutput; HANDLE hStdError; } STARTUPINFOW, *LPSTARTUPINFOW; typedef STARTUPINFOW STARTUPINFO; typedef LPSTARTUPINFOW LPSTARTUPINFO; #line 6096 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" typedef struct _STARTUPINFOEXA { STARTUPINFOA StartupInfo; struct _PROC_THREAD_ATTRIBUTE_LIST *lpAttributeList; } STARTUPINFOEXA, *LPSTARTUPINFOEXA; typedef struct _STARTUPINFOEXW { STARTUPINFOW StartupInfo; struct _PROC_THREAD_ATTRIBUTE_LIST *lpAttributeList; } STARTUPINFOEXW, *LPSTARTUPINFOEXW; typedef STARTUPINFOEXW STARTUPINFOEX; typedef LPSTARTUPINFOEXW LPSTARTUPINFOEX; #line 6112 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" typedef struct _WIN32_FIND_DATAA { DWORD dwFileAttributes; FILETIME ftCreationTime; FILETIME ftLastAccessTime; FILETIME ftLastWriteTime; DWORD nFileSizeHigh; DWORD nFileSizeLow; DWORD dwReserved0; DWORD dwReserved1; CHAR cFileName[ 260 ]; CHAR cAlternateFileName[ 14 ]; } WIN32_FIND_DATAA, *PWIN32_FIND_DATAA, *LPWIN32_FIND_DATAA; typedef struct _WIN32_FIND_DATAW { DWORD dwFileAttributes; FILETIME ftCreationTime; FILETIME ftLastAccessTime; FILETIME ftLastWriteTime; DWORD nFileSizeHigh; DWORD nFileSizeLow; DWORD dwReserved0; DWORD dwReserved1; WCHAR cFileName[ 260 ]; WCHAR cAlternateFileName[ 14 ]; } WIN32_FIND_DATAW, *PWIN32_FIND_DATAW, *LPWIN32_FIND_DATAW; typedef WIN32_FIND_DATAW WIN32_FIND_DATA; typedef PWIN32_FIND_DATAW PWIN32_FIND_DATA; typedef LPWIN32_FIND_DATAW LPWIN32_FIND_DATA; #line 6158 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" typedef struct _WIN32_FILE_ATTRIBUTE_DATA { DWORD dwFileAttributes; FILETIME ftCreationTime; FILETIME ftLastAccessTime; FILETIME ftLastWriteTime; DWORD nFileSizeHigh; DWORD nFileSizeLow; } WIN32_FILE_ATTRIBUTE_DATA, *LPWIN32_FILE_ATTRIBUTE_DATA; // // Synchronization APIs // __declspec(dllimport) HANDLE __stdcall CreateMutexA( LPSECURITY_ATTRIBUTES lpMutexAttributes, BOOL bInitialOwner, LPCSTR lpName ); __declspec(dllimport) HANDLE __stdcall CreateMutexW( LPSECURITY_ATTRIBUTES lpMutexAttributes, BOOL bInitialOwner, LPCWSTR lpName ); #line 6195 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) HANDLE __stdcall OpenMutexA( DWORD dwDesiredAccess, BOOL bInheritHandle, LPCSTR lpName ); __declspec(dllimport) HANDLE __stdcall OpenMutexW( DWORD dwDesiredAccess, BOOL bInheritHandle, LPCWSTR lpName ); #line 6219 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) HANDLE __stdcall CreateEventA( LPSECURITY_ATTRIBUTES lpEventAttributes, BOOL bManualReset, BOOL bInitialState, LPCSTR lpName ); __declspec(dllimport) HANDLE __stdcall CreateEventW( LPSECURITY_ATTRIBUTES lpEventAttributes, BOOL bManualReset, BOOL bInitialState, LPCWSTR lpName ); #line 6245 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) HANDLE __stdcall OpenEventA( DWORD dwDesiredAccess, BOOL bInheritHandle, LPCSTR lpName ); __declspec(dllimport) HANDLE __stdcall OpenEventW( DWORD dwDesiredAccess, BOOL bInheritHandle, LPCWSTR lpName ); #line 6269 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) HANDLE __stdcall CreateSemaphoreA( LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, LONG lInitialCount, LONG lMaximumCount, LPCSTR lpName ); __declspec(dllimport) HANDLE __stdcall CreateSemaphoreW( LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, LONG lInitialCount, LONG lMaximumCount, LPCWSTR lpName ); #line 6295 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) HANDLE __stdcall OpenSemaphoreA( DWORD dwDesiredAccess, BOOL bInheritHandle, LPCSTR lpName ); __declspec(dllimport) HANDLE __stdcall OpenSemaphoreW( DWORD dwDesiredAccess, BOOL bInheritHandle, LPCWSTR lpName ); #line 6319 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" typedef void (__stdcall *PTIMERAPCROUTINE)( LPVOID lpArgToCompletionRoutine, DWORD dwTimerLowValue, DWORD dwTimerHighValue ); __declspec(dllimport) HANDLE __stdcall CreateWaitableTimerA( LPSECURITY_ATTRIBUTES lpTimerAttributes, BOOL bManualReset, LPCSTR lpTimerName ); __declspec(dllimport) HANDLE __stdcall CreateWaitableTimerW( LPSECURITY_ATTRIBUTES lpTimerAttributes, BOOL bManualReset, LPCWSTR lpTimerName ); #line 6352 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) HANDLE __stdcall OpenWaitableTimerA( DWORD dwDesiredAccess, BOOL bInheritHandle, LPCSTR lpTimerName ); __declspec(dllimport) HANDLE __stdcall OpenWaitableTimerW( DWORD dwDesiredAccess, BOOL bInheritHandle, LPCWSTR lpTimerName ); #line 6376 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall SetWaitableTimer( HANDLE hTimer, const LARGE_INTEGER *lpDueTime, LONG lPeriod, PTIMERAPCROUTINE pfnCompletionRoutine, LPVOID lpArgToCompletionRoutine, BOOL fResume ); __declspec(dllimport) BOOL __stdcall CancelWaitableTimer( HANDLE hTimer ); #line 6514 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 6516 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) HANDLE __stdcall CreateFileMappingA( HANDLE hFile, LPSECURITY_ATTRIBUTES lpFileMappingAttributes, DWORD flProtect, DWORD dwMaximumSizeHigh, DWORD dwMaximumSizeLow, LPCSTR lpName ); __declspec(dllimport) HANDLE __stdcall CreateFileMappingW( HANDLE hFile, LPSECURITY_ATTRIBUTES lpFileMappingAttributes, DWORD flProtect, DWORD dwMaximumSizeHigh, DWORD dwMaximumSizeLow, LPCWSTR lpName ); #line 6546 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 6582 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) HANDLE __stdcall OpenFileMappingA( DWORD dwDesiredAccess, BOOL bInheritHandle, LPCSTR lpName ); __declspec(dllimport) HANDLE __stdcall OpenFileMappingW( DWORD dwDesiredAccess, BOOL bInheritHandle, LPCWSTR lpName ); #line 6606 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) DWORD __stdcall GetLogicalDriveStringsA( DWORD nBufferLength, LPSTR lpBuffer ); __declspec(dllimport) DWORD __stdcall GetLogicalDriveStringsW( DWORD nBufferLength, LPWSTR lpBuffer ); #line 6626 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" typedef enum _MEMORY_RESOURCE_NOTIFICATION_TYPE { LowMemoryResourceNotification, HighMemoryResourceNotification } MEMORY_RESOURCE_NOTIFICATION_TYPE; __declspec(dllimport) HANDLE __stdcall CreateMemoryResourceNotification( MEMORY_RESOURCE_NOTIFICATION_TYPE NotificationType ); __declspec(dllimport) BOOL __stdcall QueryMemoryResourceNotification( HANDLE ResourceNotificationHandle, PBOOL ResourceState ); #line 6651 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) HMODULE __stdcall LoadLibraryA( LPCSTR lpLibFileName ); __declspec(dllimport) HMODULE __stdcall LoadLibraryW( LPCWSTR lpLibFileName ); #line 6672 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) HMODULE __stdcall LoadLibraryExA( LPCSTR lpLibFileName, HANDLE hFile, DWORD dwFlags ); __declspec(dllimport) HMODULE __stdcall LoadLibraryExW( LPCWSTR lpLibFileName, HANDLE hFile, DWORD dwFlags ); #line 6696 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) DWORD __stdcall GetModuleFileNameA( HMODULE hModule, LPCH lpFilename, DWORD nSize ); __declspec(dllimport) DWORD __stdcall GetModuleFileNameW( HMODULE hModule, LPWCH lpFilename, DWORD nSize ); #line 6726 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) HMODULE __stdcall GetModuleHandleA( LPCSTR lpModuleName ); __declspec(dllimport) HMODULE __stdcall GetModuleHandleW( LPCWSTR lpModuleName ); #line 6746 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" typedef BOOL (__stdcall* PGET_MODULE_HANDLE_EXA)( DWORD dwFlags, LPCSTR lpModuleName, HMODULE* phModule ); typedef BOOL (__stdcall* PGET_MODULE_HANDLE_EXW)( DWORD dwFlags, LPCWSTR lpModuleName, HMODULE* phModule ); #line 6775 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall GetModuleHandleExA( DWORD dwFlags, LPCSTR lpModuleName, HMODULE* phModule ); __declspec(dllimport) BOOL __stdcall GetModuleHandleExW( DWORD dwFlags, LPCWSTR lpModuleName, HMODULE* phModule ); #line 6797 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 6799 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 6800 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall NeedCurrentDirectoryForExePathA( LPCSTR ExeName ); __declspec(dllimport) BOOL __stdcall NeedCurrentDirectoryForExePathW( LPCWSTR ExeName ); #line 6820 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 6822 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 6852 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" // // Extended process and thread attribute support // typedef enum _PROC_THREAD_ATTRIBUTE_NUM { ProcThreadAttributeParentProcess = 0, ProcThreadAttributeExtendedFlags, ProcThreadAttributeHandleList, ProcThreadAttributeMax } PROC_THREAD_ATTRIBUTE_NUM; typedef struct _PROC_THREAD_ATTRIBUTE_LIST *PPROC_THREAD_ATTRIBUTE_LIST, *LPPROC_THREAD_ATTRIBUTE_LIST; __declspec(dllimport) BOOL __stdcall InitializeProcThreadAttributeList( LPPROC_THREAD_ATTRIBUTE_LIST lpAttributeList, DWORD dwAttributeCount, DWORD dwFlags, PSIZE_T lpSize ); __declspec(dllimport) void __stdcall DeleteProcThreadAttributeList( LPPROC_THREAD_ATTRIBUTE_LIST lpAttributeList ); __declspec(dllimport) BOOL __stdcall UpdateProcThreadAttribute( LPPROC_THREAD_ATTRIBUTE_LIST lpAttributeList, DWORD dwFlags, DWORD_PTR Attribute, PVOID lpValue, SIZE_T cbSize, PVOID lpPreviousValue, PSIZE_T lpReturnSize ); __declspec(dllimport) BOOL __stdcall CreateProcessA( LPCSTR lpApplicationName, LPSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCSTR lpCurrentDirectory, LPSTARTUPINFOA lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation ); __declspec(dllimport) BOOL __stdcall CreateProcessW( LPCWSTR lpApplicationName, LPWSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCWSTR lpCurrentDirectory, LPSTARTUPINFOW lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation ); #line 6953 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall SetProcessShutdownParameters( DWORD dwLevel, DWORD dwFlags ); __declspec(dllimport) BOOL __stdcall GetProcessShutdownParameters( LPDWORD lpdwLevel, LPDWORD lpdwFlags ); __declspec(dllimport) DWORD __stdcall GetProcessVersion( DWORD ProcessId ); __declspec(dllimport) void __stdcall FatalAppExitA( UINT uAction, LPCSTR lpMessageText ); __declspec(dllimport) void __stdcall FatalAppExitW( UINT uAction, LPCWSTR lpMessageText ); #line 6998 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) void __stdcall GetStartupInfoA( LPSTARTUPINFOA lpStartupInfo ); __declspec(dllimport) void __stdcall GetStartupInfoW( LPSTARTUPINFOW lpStartupInfo ); #line 7016 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) LPSTR __stdcall GetCommandLineA( void ); __declspec(dllimport) LPWSTR __stdcall GetCommandLineW( void ); #line 7036 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) DWORD __stdcall GetEnvironmentVariableA( LPCSTR lpName, LPSTR lpBuffer, DWORD nSize ); __declspec(dllimport) DWORD __stdcall GetEnvironmentVariableW( LPCWSTR lpName, LPWSTR lpBuffer, DWORD nSize ); #line 7062 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall SetEnvironmentVariableA( LPCSTR lpName, LPCSTR lpValue ); __declspec(dllimport) BOOL __stdcall SetEnvironmentVariableW( LPCWSTR lpName, LPCWSTR lpValue ); #line 7082 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 7102 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) DWORD __stdcall ExpandEnvironmentStringsA( LPCSTR lpSrc, LPSTR lpDst, DWORD nSize ); __declspec(dllimport) DWORD __stdcall ExpandEnvironmentStringsW( LPCWSTR lpSrc, LPWSTR lpDst, DWORD nSize ); #line 7128 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) DWORD __stdcall GetFirmwareEnvironmentVariableA( LPCSTR lpName, LPCSTR lpGuid, PVOID pBuffer, DWORD nSize ); __declspec(dllimport) DWORD __stdcall GetFirmwareEnvironmentVariableW( LPCWSTR lpName, LPCWSTR lpGuid, PVOID pBuffer, DWORD nSize ); #line 7152 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall SetFirmwareEnvironmentVariableA( LPCSTR lpName, LPCSTR lpGuid, PVOID pValue, DWORD nSize ); __declspec(dllimport) BOOL __stdcall SetFirmwareEnvironmentVariableW( LPCWSTR lpName, LPCWSTR lpGuid, PVOID pValue, DWORD nSize ); #line 7176 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) void __stdcall OutputDebugStringA( LPCSTR lpOutputString ); __declspec(dllimport) void __stdcall OutputDebugStringW( LPCWSTR lpOutputString ); #line 7195 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) HRSRC __stdcall FindResourceA( HMODULE hModule, LPCSTR lpName, LPCSTR lpType ); __declspec(dllimport) HRSRC __stdcall FindResourceW( HMODULE hModule, LPCWSTR lpName, LPCWSTR lpType ); #line 7219 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) HRSRC __stdcall FindResourceExA( HMODULE hModule, LPCSTR lpType, LPCSTR lpName, WORD wLanguage ); __declspec(dllimport) HRSRC __stdcall FindResourceExW( HMODULE hModule, LPCWSTR lpType, LPCWSTR lpName, WORD wLanguage ); #line 7245 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" typedef BOOL (__stdcall* ENUMRESTYPEPROCA)( HMODULE hModule, LPSTR lpType, LONG_PTR lParam); typedef BOOL (__stdcall* ENUMRESTYPEPROCW)( HMODULE hModule, LPWSTR lpType, LONG_PTR lParam); #line 7256 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" typedef BOOL (__stdcall* ENUMRESNAMEPROCA)( HMODULE hModule, LPCSTR lpType, LPSTR lpName, LONG_PTR lParam); typedef BOOL (__stdcall* ENUMRESNAMEPROCW)( HMODULE hModule, LPCWSTR lpType, LPWSTR lpName, LONG_PTR lParam); #line 7265 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" typedef BOOL (__stdcall* ENUMRESLANGPROCA)( HMODULE hModule, LPCSTR lpType, LPCSTR lpName, WORD wLanguage, LONG_PTR lParam); typedef BOOL (__stdcall* ENUMRESLANGPROCW)( HMODULE hModule, LPCWSTR lpType, LPCWSTR lpName, WORD wLanguage, LONG_PTR lParam); #line 7274 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 7297 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall EnumResourceTypesA( HMODULE hModule, ENUMRESTYPEPROCA lpEnumFunc, LONG_PTR lParam ); __declspec(dllimport) BOOL __stdcall EnumResourceTypesW( HMODULE hModule, ENUMRESTYPEPROCW lpEnumFunc, LONG_PTR lParam ); #line 7319 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall EnumResourceNamesA( HMODULE hModule, LPCSTR lpType, ENUMRESNAMEPROCA lpEnumFunc, LONG_PTR lParam ); __declspec(dllimport) BOOL __stdcall EnumResourceNamesW( HMODULE hModule, LPCWSTR lpType, ENUMRESNAMEPROCW lpEnumFunc, LONG_PTR lParam ); #line 7343 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall EnumResourceLanguagesA( HMODULE hModule, LPCSTR lpType, LPCSTR lpName, ENUMRESLANGPROCA lpEnumFunc, LONG_PTR lParam ); __declspec(dllimport) BOOL __stdcall EnumResourceLanguagesW( HMODULE hModule, LPCWSTR lpType, LPCWSTR lpName, ENUMRESLANGPROCW lpEnumFunc, LONG_PTR lParam ); #line 7369 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall EnumResourceTypesExA( HMODULE hModule, ENUMRESTYPEPROCA lpEnumFunc, LONG_PTR lParam, DWORD dwFlags, LANGID LangId ); __declspec(dllimport) BOOL __stdcall EnumResourceTypesExW( HMODULE hModule, ENUMRESTYPEPROCW lpEnumFunc, LONG_PTR lParam, DWORD dwFlags, LANGID LangId ); #line 7401 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall EnumResourceNamesExA( HMODULE hModule, LPCSTR lpType, ENUMRESNAMEPROCA lpEnumFunc, LONG_PTR lParam, DWORD dwFlags, LANGID LangId ); __declspec(dllimport) BOOL __stdcall EnumResourceNamesExW( HMODULE hModule, LPCWSTR lpType, ENUMRESNAMEPROCW lpEnumFunc, LONG_PTR lParam, DWORD dwFlags, LANGID LangId ); #line 7430 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall EnumResourceLanguagesExA( HMODULE hModule, LPCSTR lpType, LPCSTR lpName, ENUMRESLANGPROCA lpEnumFunc, LONG_PTR lParam, DWORD dwFlags, LANGID LangId ); __declspec(dllimport) BOOL __stdcall EnumResourceLanguagesExW( HMODULE hModule, LPCWSTR lpType, LPCWSTR lpName, ENUMRESLANGPROCW lpEnumFunc, LONG_PTR lParam, DWORD dwFlags, LANGID LangId ); #line 7460 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) HANDLE __stdcall BeginUpdateResourceA( LPCSTR pFileName, BOOL bDeleteExistingResources ); __declspec(dllimport) HANDLE __stdcall BeginUpdateResourceW( LPCWSTR pFileName, BOOL bDeleteExistingResources ); #line 7480 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall UpdateResourceA( HANDLE hUpdate, LPCSTR lpType, LPCSTR lpName, WORD wLanguage, LPVOID lpData, DWORD cb ); __declspec(dllimport) BOOL __stdcall UpdateResourceW( HANDLE hUpdate, LPCWSTR lpType, LPCWSTR lpName, WORD wLanguage, LPVOID lpData, DWORD cb ); #line 7508 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall EndUpdateResourceA( HANDLE hUpdate, BOOL fDiscard ); __declspec(dllimport) BOOL __stdcall EndUpdateResourceW( HANDLE hUpdate, BOOL fDiscard ); #line 7528 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) ATOM __stdcall GlobalAddAtomA( LPCSTR lpString ); __declspec(dllimport) ATOM __stdcall GlobalAddAtomW( LPCWSTR lpString ); #line 7547 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) ATOM __stdcall GlobalFindAtomA( LPCSTR lpString ); __declspec(dllimport) ATOM __stdcall GlobalFindAtomW( LPCWSTR lpString ); #line 7565 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) UINT __stdcall GlobalGetAtomNameA( ATOM nAtom, LPSTR lpBuffer, int nSize ); __declspec(dllimport) UINT __stdcall GlobalGetAtomNameW( ATOM nAtom, LPWSTR lpBuffer, int nSize ); #line 7587 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) ATOM __stdcall AddAtomA( LPCSTR lpString ); __declspec(dllimport) ATOM __stdcall AddAtomW( LPCWSTR lpString ); #line 7605 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) ATOM __stdcall FindAtomA( LPCSTR lpString ); __declspec(dllimport) ATOM __stdcall FindAtomW( LPCWSTR lpString ); #line 7623 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) UINT __stdcall GetAtomNameA( ATOM nAtom, LPSTR lpBuffer, int nSize ); __declspec(dllimport) UINT __stdcall GetAtomNameW( ATOM nAtom, LPWSTR lpBuffer, int nSize ); #line 7645 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) UINT __stdcall GetProfileIntA( LPCSTR lpAppName, LPCSTR lpKeyName, INT nDefault ); __declspec(dllimport) UINT __stdcall GetProfileIntW( LPCWSTR lpAppName, LPCWSTR lpKeyName, INT nDefault ); #line 7667 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) DWORD __stdcall GetProfileStringA( LPCSTR lpAppName, LPCSTR lpKeyName, LPCSTR lpDefault, LPSTR lpReturnedString, DWORD nSize ); __declspec(dllimport) DWORD __stdcall GetProfileStringW( LPCWSTR lpAppName, LPCWSTR lpKeyName, LPCWSTR lpDefault, LPWSTR lpReturnedString, DWORD nSize ); #line 7693 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall WriteProfileStringA( LPCSTR lpAppName, LPCSTR lpKeyName, LPCSTR lpString ); __declspec(dllimport) BOOL __stdcall WriteProfileStringW( LPCWSTR lpAppName, LPCWSTR lpKeyName, LPCWSTR lpString ); #line 7715 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) DWORD __stdcall GetProfileSectionA( LPCSTR lpAppName, LPSTR lpReturnedString, DWORD nSize ); __declspec(dllimport) DWORD __stdcall GetProfileSectionW( LPCWSTR lpAppName, LPWSTR lpReturnedString, DWORD nSize ); #line 7737 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall WriteProfileSectionA( LPCSTR lpAppName, LPCSTR lpString ); __declspec(dllimport) BOOL __stdcall WriteProfileSectionW( LPCWSTR lpAppName, LPCWSTR lpString ); #line 7757 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) UINT __stdcall GetPrivateProfileIntA( LPCSTR lpAppName, LPCSTR lpKeyName, INT nDefault, LPCSTR lpFileName ); __declspec(dllimport) UINT __stdcall GetPrivateProfileIntW( LPCWSTR lpAppName, LPCWSTR lpKeyName, INT nDefault, LPCWSTR lpFileName ); #line 7781 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) DWORD __stdcall GetPrivateProfileStringA( LPCSTR lpAppName, LPCSTR lpKeyName, LPCSTR lpDefault, LPSTR lpReturnedString, DWORD nSize, LPCSTR lpFileName ); __declspec(dllimport) DWORD __stdcall GetPrivateProfileStringW( LPCWSTR lpAppName, LPCWSTR lpKeyName, LPCWSTR lpDefault, LPWSTR lpReturnedString, DWORD nSize, LPCWSTR lpFileName ); #line 7809 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall WritePrivateProfileStringA( LPCSTR lpAppName, LPCSTR lpKeyName, LPCSTR lpString, LPCSTR lpFileName ); __declspec(dllimport) BOOL __stdcall WritePrivateProfileStringW( LPCWSTR lpAppName, LPCWSTR lpKeyName, LPCWSTR lpString, LPCWSTR lpFileName ); #line 7833 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) DWORD __stdcall GetPrivateProfileSectionA( LPCSTR lpAppName, LPSTR lpReturnedString, DWORD nSize, LPCSTR lpFileName ); __declspec(dllimport) DWORD __stdcall GetPrivateProfileSectionW( LPCWSTR lpAppName, LPWSTR lpReturnedString, DWORD nSize, LPCWSTR lpFileName ); #line 7857 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall WritePrivateProfileSectionA( LPCSTR lpAppName, LPCSTR lpString, LPCSTR lpFileName ); __declspec(dllimport) BOOL __stdcall WritePrivateProfileSectionW( LPCWSTR lpAppName, LPCWSTR lpString, LPCWSTR lpFileName ); #line 7879 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) DWORD __stdcall GetPrivateProfileSectionNamesA( LPSTR lpszReturnBuffer, DWORD nSize, LPCSTR lpFileName ); __declspec(dllimport) DWORD __stdcall GetPrivateProfileSectionNamesW( LPWSTR lpszReturnBuffer, DWORD nSize, LPCWSTR lpFileName ); #line 7902 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall GetPrivateProfileStructA( LPCSTR lpszSection, LPCSTR lpszKey, LPVOID lpStruct, UINT uSizeStruct, LPCSTR szFile ); __declspec(dllimport) BOOL __stdcall GetPrivateProfileStructW( LPCWSTR lpszSection, LPCWSTR lpszKey, LPVOID lpStruct, UINT uSizeStruct, LPCWSTR szFile ); #line 7928 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall WritePrivateProfileStructA( LPCSTR lpszSection, LPCSTR lpszKey, LPVOID lpStruct, UINT uSizeStruct, LPCSTR szFile ); __declspec(dllimport) BOOL __stdcall WritePrivateProfileStructW( LPCWSTR lpszSection, LPCWSTR lpszKey, LPVOID lpStruct, UINT uSizeStruct, LPCWSTR szFile ); #line 7954 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) UINT __stdcall GetDriveTypeA( LPCSTR lpRootPathName ); __declspec(dllimport) UINT __stdcall GetDriveTypeW( LPCWSTR lpRootPathName ); #line 7973 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) UINT __stdcall GetSystemDirectoryA( LPSTR lpBuffer, UINT uSize ); __declspec(dllimport) UINT __stdcall GetSystemDirectoryW( LPWSTR lpBuffer, UINT uSize ); #line 7993 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) DWORD __stdcall GetTempPathA( DWORD nBufferLength, LPSTR lpBuffer ); __declspec(dllimport) DWORD __stdcall GetTempPathW( DWORD nBufferLength, LPWSTR lpBuffer ); #line 8013 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) UINT __stdcall GetTempFileNameA( LPCSTR lpPathName, LPCSTR lpPrefixString, UINT uUnique, LPSTR lpTempFileName ); __declspec(dllimport) UINT __stdcall GetTempFileNameW( LPCWSTR lpPathName, LPCWSTR lpPrefixString, UINT uUnique, LPWSTR lpTempFileName ); #line 8037 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 8061 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) UINT __stdcall GetWindowsDirectoryA( LPSTR lpBuffer, UINT uSize ); __declspec(dllimport) UINT __stdcall GetWindowsDirectoryW( LPWSTR lpBuffer, UINT uSize ); #line 8081 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) UINT __stdcall GetSystemWindowsDirectoryA( LPSTR lpBuffer, UINT uSize ); __declspec(dllimport) UINT __stdcall GetSystemWindowsDirectoryW( LPWSTR lpBuffer, UINT uSize ); #line 8101 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) UINT __stdcall GetSystemWow64DirectoryA( LPSTR lpBuffer, UINT uSize ); __declspec(dllimport) UINT __stdcall GetSystemWow64DirectoryW( LPWSTR lpBuffer, UINT uSize ); #line 8124 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOLEAN __stdcall Wow64EnableWow64FsRedirection ( BOOLEAN Wow64FsEnableRedirection ); __declspec(dllimport) BOOL __stdcall Wow64DisableWow64FsRedirection ( PVOID *OldValue ); __declspec(dllimport) BOOL __stdcall Wow64RevertWow64FsRedirection ( PVOID OlValue ); // // for GetProcAddress // typedef UINT (__stdcall* PGET_SYSTEM_WOW64_DIRECTORY_A)( LPSTR lpBuffer, UINT uSize); typedef UINT (__stdcall* PGET_SYSTEM_WOW64_DIRECTORY_W)( LPWSTR lpBuffer, UINT uSize); // // GetProcAddress only accepts GET_SYSTEM_WOW64_DIRECTORY_NAME_A_A, // GET_SYSTEM_WOW64_DIRECTORY_NAME_W_A, GET_SYSTEM_WOW64_DIRECTORY_NAME_T_A. // The others are if you want to use the strings in some other way. // #line 8174 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 8176 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 8177 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall SetCurrentDirectoryA( LPCSTR lpPathName ); __declspec(dllimport) BOOL __stdcall SetCurrentDirectoryW( LPCWSTR lpPathName ); #line 8195 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 8213 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) DWORD __stdcall GetCurrentDirectoryA( DWORD nBufferLength, LPSTR lpBuffer ); __declspec(dllimport) DWORD __stdcall GetCurrentDirectoryW( DWORD nBufferLength, LPWSTR lpBuffer ); #line 8233 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall SetDllDirectoryA( LPCSTR lpPathName ); __declspec(dllimport) BOOL __stdcall SetDllDirectoryW( LPCWSTR lpPathName ); #line 8253 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) DWORD __stdcall GetDllDirectoryA( DWORD nBufferLength, LPSTR lpBuffer ); __declspec(dllimport) DWORD __stdcall GetDllDirectoryW( DWORD nBufferLength, LPWSTR lpBuffer ); #line 8273 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 8275 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall GetDiskFreeSpaceA( LPCSTR lpRootPathName, LPDWORD lpSectorsPerCluster, LPDWORD lpBytesPerSector, LPDWORD lpNumberOfFreeClusters, LPDWORD lpTotalNumberOfClusters ); __declspec(dllimport) BOOL __stdcall GetDiskFreeSpaceW( LPCWSTR lpRootPathName, LPDWORD lpSectorsPerCluster, LPDWORD lpBytesPerSector, LPDWORD lpNumberOfFreeClusters, LPDWORD lpTotalNumberOfClusters ); #line 8301 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall GetDiskFreeSpaceExA( LPCSTR lpDirectoryName, PULARGE_INTEGER lpFreeBytesAvailableToCaller, PULARGE_INTEGER lpTotalNumberOfBytes, PULARGE_INTEGER lpTotalNumberOfFreeBytes ); __declspec(dllimport) BOOL __stdcall GetDiskFreeSpaceExW( LPCWSTR lpDirectoryName, PULARGE_INTEGER lpFreeBytesAvailableToCaller, PULARGE_INTEGER lpTotalNumberOfBytes, PULARGE_INTEGER lpTotalNumberOfFreeBytes ); #line 8325 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall CreateDirectoryA( LPCSTR lpPathName, LPSECURITY_ATTRIBUTES lpSecurityAttributes ); __declspec(dllimport) BOOL __stdcall CreateDirectoryW( LPCWSTR lpPathName, LPSECURITY_ATTRIBUTES lpSecurityAttributes ); #line 8345 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 8365 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall CreateDirectoryExA( LPCSTR lpTemplateDirectory, LPCSTR lpNewDirectory, LPSECURITY_ATTRIBUTES lpSecurityAttributes ); __declspec(dllimport) BOOL __stdcall CreateDirectoryExW( LPCWSTR lpTemplateDirectory, LPCWSTR lpNewDirectory, LPSECURITY_ATTRIBUTES lpSecurityAttributes ); #line 8387 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 8415 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall RemoveDirectoryA( LPCSTR lpPathName ); __declspec(dllimport) BOOL __stdcall RemoveDirectoryW( LPCWSTR lpPathName ); #line 8433 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 8457 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) DWORD __stdcall GetFullPathNameA( LPCSTR lpFileName, DWORD nBufferLength, LPSTR lpBuffer, LPSTR *lpFilePart ); __declspec(dllimport) DWORD __stdcall GetFullPathNameW( LPCWSTR lpFileName, DWORD nBufferLength, LPWSTR lpBuffer, LPWSTR *lpFilePart ); #line 8481 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 8510 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall DefineDosDeviceA( DWORD dwFlags, LPCSTR lpDeviceName, LPCSTR lpTargetPath ); __declspec(dllimport) BOOL __stdcall DefineDosDeviceW( DWORD dwFlags, LPCWSTR lpDeviceName, LPCWSTR lpTargetPath ); #line 8538 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) DWORD __stdcall QueryDosDeviceA( LPCSTR lpDeviceName, LPSTR lpTargetPath, DWORD ucchMax ); __declspec(dllimport) DWORD __stdcall QueryDosDeviceW( LPCWSTR lpDeviceName, LPWSTR lpTargetPath, DWORD ucchMax ); #line 8560 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) HANDLE __stdcall CreateFileA( LPCSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile ); __declspec(dllimport) HANDLE __stdcall CreateFileW( LPCWSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile ); #line 8594 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 8636 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) HANDLE __stdcall ReOpenFile( HANDLE hOriginalFile, DWORD dwDesiredAccess, DWORD dwShareMode, DWORD dwFlagsAndAttributes ); #line 8652 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall SetFileAttributesA( LPCSTR lpFileName, DWORD dwFileAttributes ); __declspec(dllimport) BOOL __stdcall SetFileAttributesW( LPCWSTR lpFileName, DWORD dwFileAttributes ); #line 8672 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) DWORD __stdcall GetFileAttributesA( LPCSTR lpFileName ); __declspec(dllimport) DWORD __stdcall GetFileAttributesW( LPCWSTR lpFileName ); #line 8690 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 8716 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" typedef enum _GET_FILEEX_INFO_LEVELS { GetFileExInfoStandard, GetFileExMaxInfoLevel } GET_FILEEX_INFO_LEVELS; #line 8749 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall GetFileAttributesExA( LPCSTR lpFileName, GET_FILEEX_INFO_LEVELS fInfoLevelId, LPVOID lpFileInformation ); __declspec(dllimport) BOOL __stdcall GetFileAttributesExW( LPCWSTR lpFileName, GET_FILEEX_INFO_LEVELS fInfoLevelId, LPVOID lpFileInformation ); #line 8771 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) DWORD __stdcall GetCompressedFileSizeA( LPCSTR lpFileName, LPDWORD lpFileSizeHigh ); __declspec(dllimport) DWORD __stdcall GetCompressedFileSizeW( LPCWSTR lpFileName, LPDWORD lpFileSizeHigh ); #line 8791 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 8817 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall DeleteFileA( LPCSTR lpFileName ); __declspec(dllimport) BOOL __stdcall DeleteFileW( LPCWSTR lpFileName ); #line 8835 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 8859 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 8877 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall CheckNameLegalDOS8Dot3A( LPCSTR lpName, LPSTR lpOemName, DWORD OemNameSize, PBOOL pbNameContainsSpaces , PBOOL pbNameLegal ); __declspec(dllimport) BOOL __stdcall CheckNameLegalDOS8Dot3W( LPCWSTR lpName, LPSTR lpOemName, DWORD OemNameSize, PBOOL pbNameContainsSpaces , PBOOL pbNameLegal ); #line 8906 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 8908 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" typedef enum _FINDEX_INFO_LEVELS { FindExInfoStandard, FindExInfoMaxInfoLevel } FINDEX_INFO_LEVELS; typedef enum _FINDEX_SEARCH_OPS { FindExSearchNameMatch, FindExSearchLimitToDirectories, FindExSearchLimitToDevices, FindExSearchMaxSearchOp } FINDEX_SEARCH_OPS; __declspec(dllimport) HANDLE __stdcall FindFirstFileExA( LPCSTR lpFileName, FINDEX_INFO_LEVELS fInfoLevelId, LPVOID lpFindFileData, FINDEX_SEARCH_OPS fSearchOp, LPVOID lpSearchFilter, DWORD dwAdditionalFlags ); __declspec(dllimport) HANDLE __stdcall FindFirstFileExW( LPCWSTR lpFileName, FINDEX_INFO_LEVELS fInfoLevelId, LPVOID lpFindFileData, FINDEX_SEARCH_OPS fSearchOp, LPVOID lpSearchFilter, DWORD dwAdditionalFlags ); #line 8953 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 8989 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 8991 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) HANDLE __stdcall FindFirstFileA( LPCSTR lpFileName, LPWIN32_FIND_DATAA lpFindFileData ); __declspec(dllimport) HANDLE __stdcall FindFirstFileW( LPCWSTR lpFileName, LPWIN32_FIND_DATAW lpFindFileData ); #line 9013 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall FindNextFileA( HANDLE hFindFile, LPWIN32_FIND_DATAA lpFindFileData ); __declspec(dllimport) BOOL __stdcall FindNextFileW( HANDLE hFindFile, LPWIN32_FIND_DATAW lpFindFileData ); #line 9033 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) DWORD __stdcall SearchPathA( LPCSTR lpPath, LPCSTR lpFileName, LPCSTR lpExtension, DWORD nBufferLength, LPSTR lpBuffer, LPSTR *lpFilePart ); __declspec(dllimport) DWORD __stdcall SearchPathW( LPCWSTR lpPath, LPCWSTR lpFileName, LPCWSTR lpExtension, DWORD nBufferLength, LPWSTR lpBuffer, LPWSTR *lpFilePart ); #line 9062 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall CopyFileA( LPCSTR lpExistingFileName, LPCSTR lpNewFileName, BOOL bFailIfExists ); __declspec(dllimport) BOOL __stdcall CopyFileW( LPCWSTR lpExistingFileName, LPCWSTR lpNewFileName, BOOL bFailIfExists ); #line 9084 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 9106 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" typedef DWORD (__stdcall *LPPROGRESS_ROUTINE)( LARGE_INTEGER TotalFileSize, LARGE_INTEGER TotalBytesTransferred, LARGE_INTEGER StreamSize, LARGE_INTEGER StreamBytesTransferred, DWORD dwStreamNumber, DWORD dwCallbackReason, HANDLE hSourceFile, HANDLE hDestinationFile, LPVOID lpData ); __declspec(dllimport) BOOL __stdcall CopyFileExA( LPCSTR lpExistingFileName, LPCSTR lpNewFileName, LPPROGRESS_ROUTINE lpProgressRoutine, LPVOID lpData, LPBOOL pbCancel, DWORD dwCopyFlags ); __declspec(dllimport) BOOL __stdcall CopyFileExW( LPCWSTR lpExistingFileName, LPCWSTR lpNewFileName, LPPROGRESS_ROUTINE lpProgressRoutine, LPVOID lpData, LPBOOL pbCancel, DWORD dwCopyFlags ); #line 9149 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 9183 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 9184 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall MoveFileA( LPCSTR lpExistingFileName, LPCSTR lpNewFileName ); __declspec(dllimport) BOOL __stdcall MoveFileW( LPCWSTR lpExistingFileName, LPCWSTR lpNewFileName ); #line 9204 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 9224 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall MoveFileExA( LPCSTR lpExistingFileName, LPCSTR lpNewFileName, DWORD dwFlags ); __declspec(dllimport) BOOL __stdcall MoveFileExW( LPCWSTR lpExistingFileName, LPCWSTR lpNewFileName, DWORD dwFlags ); #line 9246 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall MoveFileWithProgressA( LPCSTR lpExistingFileName, LPCSTR lpNewFileName, LPPROGRESS_ROUTINE lpProgressRoutine, LPVOID lpData, DWORD dwFlags ); __declspec(dllimport) BOOL __stdcall MoveFileWithProgressW( LPCWSTR lpExistingFileName, LPCWSTR lpNewFileName, LPPROGRESS_ROUTINE lpProgressRoutine, LPVOID lpData, DWORD dwFlags ); #line 9273 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 9274 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 9304 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 9313 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall ReplaceFileA( LPCSTR lpReplacedFileName, LPCSTR lpReplacementFileName, LPCSTR lpBackupFileName, DWORD dwReplaceFlags, LPVOID lpExclude, LPVOID lpReserved ); __declspec(dllimport) BOOL __stdcall ReplaceFileW( LPCWSTR lpReplacedFileName, LPCWSTR lpReplacementFileName, LPCWSTR lpBackupFileName, DWORD dwReplaceFlags, LPVOID lpExclude, LPVOID lpReserved ); #line 9344 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 9345 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" // // API call to create hard links. // __declspec(dllimport) BOOL __stdcall CreateHardLinkA( LPCSTR lpFileName, LPCSTR lpExistingFileName, LPSECURITY_ATTRIBUTES lpSecurityAttributes ); __declspec(dllimport) BOOL __stdcall CreateHardLinkW( LPCWSTR lpFileName, LPCWSTR lpExistingFileName, LPSECURITY_ATTRIBUTES lpSecurityAttributes ); #line 9373 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 9375 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 9406 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" // // API call to enumerate for streams within a file // typedef enum _STREAM_INFO_LEVELS { FindStreamInfoStandard, FindStreamInfoMaxInfoLevel } STREAM_INFO_LEVELS; typedef struct _WIN32_FIND_STREAM_DATA { LARGE_INTEGER StreamSize; WCHAR cStreamName[ 260 + 36 ]; } WIN32_FIND_STREAM_DATA, *PWIN32_FIND_STREAM_DATA; HANDLE __stdcall FindFirstStreamW( LPCWSTR lpFileName, STREAM_INFO_LEVELS InfoLevel, LPVOID lpFindStreamData, DWORD dwFlags ); BOOL __stdcall FindNextStreamW( HANDLE hFindStream, LPVOID lpFindStreamData ); #line 9445 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 9476 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) HANDLE __stdcall CreateNamedPipeA( LPCSTR lpName, DWORD dwOpenMode, DWORD dwPipeMode, DWORD nMaxInstances, DWORD nOutBufferSize, DWORD nInBufferSize, DWORD nDefaultTimeOut, LPSECURITY_ATTRIBUTES lpSecurityAttributes ); __declspec(dllimport) HANDLE __stdcall CreateNamedPipeW( LPCWSTR lpName, DWORD dwOpenMode, DWORD dwPipeMode, DWORD nMaxInstances, DWORD nOutBufferSize, DWORD nInBufferSize, DWORD nDefaultTimeOut, LPSECURITY_ATTRIBUTES lpSecurityAttributes ); #line 9511 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall GetNamedPipeHandleStateA( HANDLE hNamedPipe, LPDWORD lpState, LPDWORD lpCurInstances, LPDWORD lpMaxCollectionCount, LPDWORD lpCollectDataTimeout, LPSTR lpUserName, DWORD nMaxUserNameSize ); __declspec(dllimport) BOOL __stdcall GetNamedPipeHandleStateW( HANDLE hNamedPipe, LPDWORD lpState, LPDWORD lpCurInstances, LPDWORD lpMaxCollectionCount, LPDWORD lpCollectDataTimeout, LPWSTR lpUserName, DWORD nMaxUserNameSize ); #line 9541 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall CallNamedPipeA( LPCSTR lpNamedPipeName, LPVOID lpInBuffer, DWORD nInBufferSize, LPVOID lpOutBuffer, DWORD nOutBufferSize, LPDWORD lpBytesRead, DWORD nTimeOut ); __declspec(dllimport) BOOL __stdcall CallNamedPipeW( LPCWSTR lpNamedPipeName, LPVOID lpInBuffer, DWORD nInBufferSize, LPVOID lpOutBuffer, DWORD nOutBufferSize, LPDWORD lpBytesRead, DWORD nTimeOut ); #line 9571 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall WaitNamedPipeA( LPCSTR lpNamedPipeName, DWORD nTimeOut ); __declspec(dllimport) BOOL __stdcall WaitNamedPipeW( LPCWSTR lpNamedPipeName, DWORD nTimeOut ); #line 9591 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" typedef enum { PipeAttribute, PipeConnectionAttribute, PipeHandleAttribute } PIPE_ATTRIBUTE_TYPE; __declspec(dllimport) BOOL __stdcall GetNamedPipeAttribute( HANDLE Pipe, PIPE_ATTRIBUTE_TYPE AttributeType, PSTR AttributeName, PVOID AttributeValue, PSIZE_T AttributeValueLength ); __declspec(dllimport) BOOL __stdcall SetNamedPipeAttribute( HANDLE Pipe, PIPE_ATTRIBUTE_TYPE AttributeType, PSTR AttributeName, PVOID AttributeValue, SIZE_T AttributeValueLength ); __declspec(dllimport) BOOL __stdcall GetNamedPipeClientComputerNameA( HANDLE Pipe, LPSTR ClientComputerName, ULONG ClientComputerNameLength ); __declspec(dllimport) BOOL __stdcall GetNamedPipeClientComputerNameW( HANDLE Pipe, LPWSTR ClientComputerName, ULONG ClientComputerNameLength ); #line 9641 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall GetNamedPipeClientProcessId( HANDLE Pipe, PULONG ClientProcessId ); __declspec(dllimport) BOOL __stdcall GetNamedPipeClientSessionId( HANDLE Pipe, PULONG ClientSessionId ); __declspec(dllimport) BOOL __stdcall GetNamedPipeServerProcessId( HANDLE Pipe, PULONG ServerProcessId ); __declspec(dllimport) BOOL __stdcall GetNamedPipeServerSessionId( HANDLE Pipe, PULONG ServerSessionId ); __declspec(dllimport) BOOL __stdcall SetVolumeLabelA( LPCSTR lpRootPathName, LPCSTR lpVolumeName ); __declspec(dllimport) BOOL __stdcall SetVolumeLabelW( LPCWSTR lpRootPathName, LPCWSTR lpVolumeName ); #line 9693 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) void __stdcall SetFileApisToOEM( void ); __declspec(dllimport) void __stdcall SetFileApisToANSI( void ); __declspec(dllimport) BOOL __stdcall AreFileApisANSI( void ); __declspec(dllimport) BOOL __stdcall GetVolumeInformationA( LPCSTR lpRootPathName, LPSTR lpVolumeNameBuffer, DWORD nVolumeNameSize, LPDWORD lpVolumeSerialNumber, LPDWORD lpMaximumComponentLength, LPDWORD lpFileSystemFlags, LPSTR lpFileSystemNameBuffer, DWORD nFileSystemNameSize ); __declspec(dllimport) BOOL __stdcall GetVolumeInformationW( LPCWSTR lpRootPathName, LPWSTR lpVolumeNameBuffer, DWORD nVolumeNameSize, LPDWORD lpVolumeSerialNumber, LPDWORD lpMaximumComponentLength, LPDWORD lpFileSystemFlags, LPWSTR lpFileSystemNameBuffer, DWORD nFileSystemNameSize ); #line 9740 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 9756 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall CancelSynchronousIo( HANDLE hThread ); __declspec(dllimport) BOOL __stdcall CancelIoEx( HANDLE hFile, LPOVERLAPPED lpOverlapped ); __declspec(dllimport) BOOL __stdcall CancelIo( HANDLE hFile ); __declspec(dllimport) BOOL __stdcall SetFileBandwidthReservation( HANDLE hFile, DWORD nPeriodMilliseconds, DWORD nBytesPerPeriod, BOOL bDiscardable, LPDWORD lpTransferSize, LPDWORD lpNumOutstandingRequests ); __declspec(dllimport) BOOL __stdcall GetFileBandwidthReservation( HANDLE hFile, LPDWORD lpPeriodMilliseconds, LPDWORD lpBytesPerPeriod, LPBOOL pDiscardable, LPDWORD lpTransferSize, LPDWORD lpNumOutstandingRequests ); // // Event logging APIs // __declspec(dllimport) BOOL __stdcall ClearEventLogA ( HANDLE hEventLog, LPCSTR lpBackupFileName ); __declspec(dllimport) BOOL __stdcall ClearEventLogW ( HANDLE hEventLog, LPCWSTR lpBackupFileName ); #line 9826 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall BackupEventLogA ( HANDLE hEventLog, LPCSTR lpBackupFileName ); __declspec(dllimport) BOOL __stdcall BackupEventLogW ( HANDLE hEventLog, LPCWSTR lpBackupFileName ); #line 9846 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall CloseEventLog ( HANDLE hEventLog ); __declspec(dllimport) BOOL __stdcall DeregisterEventSource ( HANDLE hEventLog ); __declspec(dllimport) BOOL __stdcall NotifyChangeEventLog( HANDLE hEventLog, HANDLE hEvent ); __declspec(dllimport) BOOL __stdcall GetNumberOfEventLogRecords ( HANDLE hEventLog, PDWORD NumberOfRecords ); __declspec(dllimport) BOOL __stdcall GetOldestEventLogRecord ( HANDLE hEventLog, PDWORD OldestRecord ); __declspec(dllimport) HANDLE __stdcall OpenEventLogA ( LPCSTR lpUNCServerName, LPCSTR lpSourceName ); __declspec(dllimport) HANDLE __stdcall OpenEventLogW ( LPCWSTR lpUNCServerName, LPCWSTR lpSourceName ); #line 9906 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) HANDLE __stdcall RegisterEventSourceA ( LPCSTR lpUNCServerName, LPCSTR lpSourceName ); __declspec(dllimport) HANDLE __stdcall RegisterEventSourceW ( LPCWSTR lpUNCServerName, LPCWSTR lpSourceName ); #line 9928 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) HANDLE __stdcall OpenBackupEventLogA ( LPCSTR lpUNCServerName, LPCSTR lpFileName ); __declspec(dllimport) HANDLE __stdcall OpenBackupEventLogW ( LPCWSTR lpUNCServerName, LPCWSTR lpFileName ); #line 9950 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall ReadEventLogA ( HANDLE hEventLog, DWORD dwReadFlags, DWORD dwRecordOffset, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, DWORD *pnBytesRead, DWORD *pnMinNumberOfBytesNeeded ); __declspec(dllimport) BOOL __stdcall ReadEventLogW ( HANDLE hEventLog, DWORD dwReadFlags, DWORD dwRecordOffset, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, DWORD *pnBytesRead, DWORD *pnMinNumberOfBytesNeeded ); #line 9980 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall ReportEventA ( HANDLE hEventLog, WORD wType, WORD wCategory, DWORD dwEventID, PSID lpUserSid, WORD wNumStrings, DWORD dwDataSize, LPCSTR *lpStrings, LPVOID lpRawData ); __declspec(dllimport) BOOL __stdcall ReportEventW ( HANDLE hEventLog, WORD wType, WORD wCategory, DWORD dwEventID, PSID lpUserSid, WORD wNumStrings, DWORD dwDataSize, LPCWSTR *lpStrings, LPVOID lpRawData ); #line 10014 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" typedef struct _EVENTLOG_FULL_INFORMATION { DWORD dwFull; } EVENTLOG_FULL_INFORMATION, *LPEVENTLOG_FULL_INFORMATION; __declspec(dllimport) BOOL __stdcall GetEventLogInformation ( HANDLE hEventLog, DWORD dwInfoLevel, LPVOID lpBuffer, DWORD cbBufSize, LPDWORD pcbBytesNeeded ); // // // Security APIs // __declspec(dllimport) BOOL __stdcall DuplicateToken( HANDLE ExistingTokenHandle, SECURITY_IMPERSONATION_LEVEL ImpersonationLevel, PHANDLE DuplicateTokenHandle ); __declspec(dllimport) BOOL __stdcall GetKernelObjectSecurity ( HANDLE Handle, SECURITY_INFORMATION RequestedInformation, PSECURITY_DESCRIPTOR pSecurityDescriptor, DWORD nLength, LPDWORD lpnLengthNeeded ); __declspec(dllimport) BOOL __stdcall ImpersonateNamedPipeClient( HANDLE hNamedPipe ); __declspec(dllimport) BOOL __stdcall ImpersonateSelf( SECURITY_IMPERSONATION_LEVEL ImpersonationLevel ); __declspec(dllimport) BOOL __stdcall RevertToSelf ( void ); __declspec(dllimport) BOOL __stdcall SetThreadToken ( PHANDLE Thread, HANDLE Token ); __declspec(dllimport) BOOL __stdcall AccessCheck ( PSECURITY_DESCRIPTOR pSecurityDescriptor, HANDLE ClientToken, DWORD DesiredAccess, PGENERIC_MAPPING GenericMapping, PPRIVILEGE_SET PrivilegeSet, LPDWORD PrivilegeSetLength, LPDWORD GrantedAccess, LPBOOL AccessStatus ); __declspec(dllimport) BOOL __stdcall AccessCheckByType ( PSECURITY_DESCRIPTOR pSecurityDescriptor, PSID PrincipalSelfSid, HANDLE ClientToken, DWORD DesiredAccess, POBJECT_TYPE_LIST ObjectTypeList, DWORD ObjectTypeListLength, PGENERIC_MAPPING GenericMapping, PPRIVILEGE_SET PrivilegeSet, LPDWORD PrivilegeSetLength, LPDWORD GrantedAccess, LPBOOL AccessStatus ); __declspec(dllimport) BOOL __stdcall AccessCheckByTypeResultList ( PSECURITY_DESCRIPTOR pSecurityDescriptor, PSID PrincipalSelfSid, HANDLE ClientToken, DWORD DesiredAccess, POBJECT_TYPE_LIST ObjectTypeList, DWORD ObjectTypeListLength, PGENERIC_MAPPING GenericMapping, PPRIVILEGE_SET PrivilegeSet, LPDWORD PrivilegeSetLength, LPDWORD GrantedAccessList, LPDWORD AccessStatusList ); #line 10140 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall OpenProcessToken ( HANDLE ProcessHandle, DWORD DesiredAccess, PHANDLE TokenHandle ); __declspec(dllimport) BOOL __stdcall OpenThreadToken ( HANDLE ThreadHandle, DWORD DesiredAccess, BOOL OpenAsSelf, PHANDLE TokenHandle ); __declspec(dllimport) BOOL __stdcall GetTokenInformation ( HANDLE TokenHandle, TOKEN_INFORMATION_CLASS TokenInformationClass, LPVOID TokenInformation, DWORD TokenInformationLength, PDWORD ReturnLength ); __declspec(dllimport) BOOL __stdcall SetTokenInformation ( HANDLE TokenHandle, TOKEN_INFORMATION_CLASS TokenInformationClass, LPVOID TokenInformation, DWORD TokenInformationLength ); __declspec(dllimport) BOOL __stdcall AdjustTokenPrivileges ( HANDLE TokenHandle, BOOL DisableAllPrivileges, PTOKEN_PRIVILEGES NewState, DWORD BufferLength, PTOKEN_PRIVILEGES PreviousState, PDWORD ReturnLength ); __declspec(dllimport) BOOL __stdcall AdjustTokenGroups ( HANDLE TokenHandle, BOOL ResetToDefault, PTOKEN_GROUPS NewState, DWORD BufferLength, PTOKEN_GROUPS PreviousState, PDWORD ReturnLength ); __declspec(dllimport) BOOL __stdcall PrivilegeCheck ( HANDLE ClientToken, PPRIVILEGE_SET RequiredPrivileges, LPBOOL pfResult ); __declspec(dllimport) BOOL __stdcall AccessCheckAndAuditAlarmA ( LPCSTR SubsystemName, LPVOID HandleId, LPSTR ObjectTypeName, LPSTR ObjectName, PSECURITY_DESCRIPTOR SecurityDescriptor, DWORD DesiredAccess, PGENERIC_MAPPING GenericMapping, BOOL ObjectCreation, LPDWORD GrantedAccess, LPBOOL AccessStatus, LPBOOL pfGenerateOnClose ); __declspec(dllimport) BOOL __stdcall AccessCheckAndAuditAlarmW ( LPCWSTR SubsystemName, LPVOID HandleId, LPWSTR ObjectTypeName, LPWSTR ObjectName, PSECURITY_DESCRIPTOR SecurityDescriptor, DWORD DesiredAccess, PGENERIC_MAPPING GenericMapping, BOOL ObjectCreation, LPDWORD GrantedAccess, LPBOOL AccessStatus, LPBOOL pfGenerateOnClose ); #line 10259 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall AccessCheckByTypeAndAuditAlarmA ( LPCSTR SubsystemName, LPVOID HandleId, LPCSTR ObjectTypeName, LPCSTR ObjectName, PSECURITY_DESCRIPTOR SecurityDescriptor, PSID PrincipalSelfSid, DWORD DesiredAccess, AUDIT_EVENT_TYPE AuditType, DWORD Flags, POBJECT_TYPE_LIST ObjectTypeList, DWORD ObjectTypeListLength, PGENERIC_MAPPING GenericMapping, BOOL ObjectCreation, LPDWORD GrantedAccess, LPBOOL AccessStatus, LPBOOL pfGenerateOnClose ); __declspec(dllimport) BOOL __stdcall AccessCheckByTypeAndAuditAlarmW ( LPCWSTR SubsystemName, LPVOID HandleId, LPCWSTR ObjectTypeName, LPCWSTR ObjectName, PSECURITY_DESCRIPTOR SecurityDescriptor, PSID PrincipalSelfSid, DWORD DesiredAccess, AUDIT_EVENT_TYPE AuditType, DWORD Flags, POBJECT_TYPE_LIST ObjectTypeList, DWORD ObjectTypeListLength, PGENERIC_MAPPING GenericMapping, BOOL ObjectCreation, LPDWORD GrantedAccess, LPBOOL AccessStatus, LPBOOL pfGenerateOnClose ); #line 10309 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall AccessCheckByTypeResultListAndAuditAlarmA ( LPCSTR SubsystemName, LPVOID HandleId, LPCSTR ObjectTypeName, LPCSTR ObjectName, PSECURITY_DESCRIPTOR SecurityDescriptor, PSID PrincipalSelfSid, DWORD DesiredAccess, AUDIT_EVENT_TYPE AuditType, DWORD Flags, POBJECT_TYPE_LIST ObjectTypeList, DWORD ObjectTypeListLength, PGENERIC_MAPPING GenericMapping, BOOL ObjectCreation, LPDWORD GrantedAccess, LPDWORD AccessStatusList, LPBOOL pfGenerateOnClose ); __declspec(dllimport) BOOL __stdcall AccessCheckByTypeResultListAndAuditAlarmW ( LPCWSTR SubsystemName, LPVOID HandleId, LPCWSTR ObjectTypeName, LPCWSTR ObjectName, PSECURITY_DESCRIPTOR SecurityDescriptor, PSID PrincipalSelfSid, DWORD DesiredAccess, AUDIT_EVENT_TYPE AuditType, DWORD Flags, POBJECT_TYPE_LIST ObjectTypeList, DWORD ObjectTypeListLength, PGENERIC_MAPPING GenericMapping, BOOL ObjectCreation, LPDWORD GrantedAccess, LPDWORD AccessStatusList, LPBOOL pfGenerateOnClose ); #line 10357 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall AccessCheckByTypeResultListAndAuditAlarmByHandleA ( LPCSTR SubsystemName, LPVOID HandleId, HANDLE ClientToken, LPCSTR ObjectTypeName, LPCSTR ObjectName, PSECURITY_DESCRIPTOR SecurityDescriptor, PSID PrincipalSelfSid, DWORD DesiredAccess, AUDIT_EVENT_TYPE AuditType, DWORD Flags, POBJECT_TYPE_LIST ObjectTypeList, DWORD ObjectTypeListLength, PGENERIC_MAPPING GenericMapping, BOOL ObjectCreation, LPDWORD GrantedAccess, LPDWORD AccessStatusList, LPBOOL pfGenerateOnClose ); __declspec(dllimport) BOOL __stdcall AccessCheckByTypeResultListAndAuditAlarmByHandleW ( LPCWSTR SubsystemName, LPVOID HandleId, HANDLE ClientToken, LPCWSTR ObjectTypeName, LPCWSTR ObjectName, PSECURITY_DESCRIPTOR SecurityDescriptor, PSID PrincipalSelfSid, DWORD DesiredAccess, AUDIT_EVENT_TYPE AuditType, DWORD Flags, POBJECT_TYPE_LIST ObjectTypeList, DWORD ObjectTypeListLength, PGENERIC_MAPPING GenericMapping, BOOL ObjectCreation, LPDWORD GrantedAccess, LPDWORD AccessStatusList, LPBOOL pfGenerateOnClose ); #line 10407 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 10409 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall ObjectOpenAuditAlarmA ( LPCSTR SubsystemName, LPVOID HandleId, LPSTR ObjectTypeName, LPSTR ObjectName, PSECURITY_DESCRIPTOR pSecurityDescriptor, HANDLE ClientToken, DWORD DesiredAccess, DWORD GrantedAccess, PPRIVILEGE_SET Privileges, BOOL ObjectCreation, BOOL AccessGranted, LPBOOL GenerateOnClose ); __declspec(dllimport) BOOL __stdcall ObjectOpenAuditAlarmW ( LPCWSTR SubsystemName, LPVOID HandleId, LPWSTR ObjectTypeName, LPWSTR ObjectName, PSECURITY_DESCRIPTOR pSecurityDescriptor, HANDLE ClientToken, DWORD DesiredAccess, DWORD GrantedAccess, PPRIVILEGE_SET Privileges, BOOL ObjectCreation, BOOL AccessGranted, LPBOOL GenerateOnClose ); #line 10449 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall ObjectPrivilegeAuditAlarmA ( LPCSTR SubsystemName, LPVOID HandleId, HANDLE ClientToken, DWORD DesiredAccess, PPRIVILEGE_SET Privileges, BOOL AccessGranted ); __declspec(dllimport) BOOL __stdcall ObjectPrivilegeAuditAlarmW ( LPCWSTR SubsystemName, LPVOID HandleId, HANDLE ClientToken, DWORD DesiredAccess, PPRIVILEGE_SET Privileges, BOOL AccessGranted ); #line 10478 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall ObjectCloseAuditAlarmA ( LPCSTR SubsystemName, LPVOID HandleId, BOOL GenerateOnClose ); __declspec(dllimport) BOOL __stdcall ObjectCloseAuditAlarmW ( LPCWSTR SubsystemName, LPVOID HandleId, BOOL GenerateOnClose ); #line 10501 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall ObjectDeleteAuditAlarmA ( LPCSTR SubsystemName, LPVOID HandleId, BOOL GenerateOnClose ); __declspec(dllimport) BOOL __stdcall ObjectDeleteAuditAlarmW ( LPCWSTR SubsystemName, LPVOID HandleId, BOOL GenerateOnClose ); #line 10524 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall PrivilegedServiceAuditAlarmA ( LPCSTR SubsystemName, LPCSTR ServiceName, HANDLE ClientToken, PPRIVILEGE_SET Privileges, BOOL AccessGranted ); __declspec(dllimport) BOOL __stdcall PrivilegedServiceAuditAlarmW ( LPCWSTR SubsystemName, LPCWSTR ServiceName, HANDLE ClientToken, PPRIVILEGE_SET Privileges, BOOL AccessGranted ); #line 10551 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall IsWellKnownSid ( PSID pSid, WELL_KNOWN_SID_TYPE WellKnownSidType ); __declspec(dllimport) BOOL __stdcall CreateWellKnownSid( WELL_KNOWN_SID_TYPE WellKnownSidType, PSID DomainSid, PSID pSid, DWORD *cbSid ); __declspec(dllimport) BOOL __stdcall EqualDomainSid( PSID pSid1, PSID pSid2, BOOL *pfEqual ); __declspec(dllimport) BOOL __stdcall GetWindowsAccountDomainSid( PSID pSid, PSID pDomainSid, DWORD* cbDomainSid ); #line 10594 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall IsValidSid ( PSID pSid ); __declspec(dllimport) BOOL __stdcall EqualSid ( PSID pSid1, PSID pSid2 ); __declspec(dllimport) BOOL __stdcall EqualPrefixSid ( PSID pSid1, PSID pSid2 ); __declspec(dllimport) DWORD __stdcall GetSidLengthRequired ( UCHAR nSubAuthorityCount ); __declspec(dllimport) BOOL __stdcall AllocateAndInitializeSid ( PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority, BYTE nSubAuthorityCount, DWORD nSubAuthority0, DWORD nSubAuthority1, DWORD nSubAuthority2, DWORD nSubAuthority3, DWORD nSubAuthority4, DWORD nSubAuthority5, DWORD nSubAuthority6, DWORD nSubAuthority7, PSID *pSid ); __declspec(dllimport) PVOID __stdcall FreeSid( PSID pSid ); __declspec(dllimport) BOOL __stdcall InitializeSid ( PSID Sid, PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority, BYTE nSubAuthorityCount ); __declspec(dllimport) PSID_IDENTIFIER_AUTHORITY __stdcall GetSidIdentifierAuthority ( PSID pSid ); __declspec(dllimport) PDWORD __stdcall GetSidSubAuthority ( PSID pSid, DWORD nSubAuthority ); __declspec(dllimport) PUCHAR __stdcall GetSidSubAuthorityCount ( PSID pSid ); __declspec(dllimport) DWORD __stdcall GetLengthSid ( PSID pSid ); __declspec(dllimport) BOOL __stdcall CopySid ( DWORD nDestinationSidLength, PSID pDestinationSid, PSID pSourceSid ); __declspec(dllimport) BOOL __stdcall AreAllAccessesGranted ( DWORD GrantedAccess, DWORD DesiredAccess ); __declspec(dllimport) BOOL __stdcall AreAnyAccessesGranted ( DWORD GrantedAccess, DWORD DesiredAccess ); __declspec(dllimport) void __stdcall MapGenericMask ( PDWORD AccessMask, PGENERIC_MAPPING GenericMapping ); __declspec(dllimport) BOOL __stdcall IsValidAcl ( PACL pAcl ); __declspec(dllimport) BOOL __stdcall InitializeAcl ( PACL pAcl, DWORD nAclLength, DWORD dwAclRevision ); __declspec(dllimport) BOOL __stdcall GetAclInformation ( PACL pAcl, LPVOID pAclInformation, DWORD nAclInformationLength, ACL_INFORMATION_CLASS dwAclInformationClass ); __declspec(dllimport) BOOL __stdcall SetAclInformation ( PACL pAcl, LPVOID pAclInformation, DWORD nAclInformationLength, ACL_INFORMATION_CLASS dwAclInformationClass ); __declspec(dllimport) BOOL __stdcall AddAce ( PACL pAcl, DWORD dwAceRevision, DWORD dwStartingAceIndex, LPVOID pAceList, DWORD nAceListLength ); __declspec(dllimport) BOOL __stdcall DeleteAce ( PACL pAcl, DWORD dwAceIndex ); __declspec(dllimport) BOOL __stdcall GetAce ( PACL pAcl, DWORD dwAceIndex, LPVOID *pAce ); __declspec(dllimport) BOOL __stdcall AddAccessAllowedAce ( PACL pAcl, DWORD dwAceRevision, DWORD AccessMask, PSID pSid ); __declspec(dllimport) BOOL __stdcall AddAccessAllowedAceEx ( PACL pAcl, DWORD dwAceRevision, DWORD AceFlags, DWORD AccessMask, PSID pSid ); #line 10829 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 10842 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall AddAccessDeniedAce ( PACL pAcl, DWORD dwAceRevision, DWORD AccessMask, PSID pSid ); __declspec(dllimport) BOOL __stdcall AddAccessDeniedAceEx ( PACL pAcl, DWORD dwAceRevision, DWORD AceFlags, DWORD AccessMask, PSID pSid ); #line 10865 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall AddAuditAccessAce( PACL pAcl, DWORD dwAceRevision, DWORD dwAccessMask, PSID pSid, BOOL bAuditSuccess, BOOL bAuditFailure ); __declspec(dllimport) BOOL __stdcall AddAuditAccessAceEx( PACL pAcl, DWORD dwAceRevision, DWORD AceFlags, DWORD dwAccessMask, PSID pSid, BOOL bAuditSuccess, BOOL bAuditFailure ); __declspec(dllimport) BOOL __stdcall AddAccessAllowedObjectAce ( PACL pAcl, DWORD dwAceRevision, DWORD AceFlags, DWORD AccessMask, GUID *ObjectTypeGuid, GUID *InheritedObjectTypeGuid, PSID pSid ); __declspec(dllimport) BOOL __stdcall AddAccessDeniedObjectAce ( PACL pAcl, DWORD dwAceRevision, DWORD AceFlags, DWORD AccessMask, GUID *ObjectTypeGuid, GUID *InheritedObjectTypeGuid, PSID pSid ); __declspec(dllimport) BOOL __stdcall AddAuditAccessObjectAce ( PACL pAcl, DWORD dwAceRevision, DWORD AceFlags, DWORD AccessMask, GUID *ObjectTypeGuid, GUID *InheritedObjectTypeGuid, PSID pSid, BOOL bAuditSuccess, BOOL bAuditFailure ); #line 10933 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall FindFirstFreeAce ( PACL pAcl, LPVOID *pAce ); __declspec(dllimport) BOOL __stdcall InitializeSecurityDescriptor ( PSECURITY_DESCRIPTOR pSecurityDescriptor, DWORD dwRevision ); __declspec(dllimport) BOOL __stdcall IsValidSecurityDescriptor ( PSECURITY_DESCRIPTOR pSecurityDescriptor ); __declspec(dllimport) BOOL __stdcall IsValidRelativeSecurityDescriptor ( PSECURITY_DESCRIPTOR pSecurityDescriptor, ULONG SecurityDescriptorLength, SECURITY_INFORMATION RequiredInformation ); __declspec(dllimport) DWORD __stdcall GetSecurityDescriptorLength ( PSECURITY_DESCRIPTOR pSecurityDescriptor ); __declspec(dllimport) BOOL __stdcall GetSecurityDescriptorControl ( PSECURITY_DESCRIPTOR pSecurityDescriptor, PSECURITY_DESCRIPTOR_CONTROL pControl, LPDWORD lpdwRevision ); __declspec(dllimport) BOOL __stdcall SetSecurityDescriptorControl ( PSECURITY_DESCRIPTOR pSecurityDescriptor, SECURITY_DESCRIPTOR_CONTROL ControlBitsOfInterest, SECURITY_DESCRIPTOR_CONTROL ControlBitsToSet ); #line 10995 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall SetSecurityDescriptorDacl ( PSECURITY_DESCRIPTOR pSecurityDescriptor, BOOL bDaclPresent, PACL pDacl, BOOL bDaclDefaulted ); __declspec(dllimport) BOOL __stdcall GetSecurityDescriptorDacl ( PSECURITY_DESCRIPTOR pSecurityDescriptor, LPBOOL lpbDaclPresent, PACL *pDacl, LPBOOL lpbDaclDefaulted ); __declspec(dllimport) BOOL __stdcall SetSecurityDescriptorSacl ( PSECURITY_DESCRIPTOR pSecurityDescriptor, BOOL bSaclPresent, PACL pSacl, BOOL bSaclDefaulted ); __declspec(dllimport) BOOL __stdcall GetSecurityDescriptorSacl ( PSECURITY_DESCRIPTOR pSecurityDescriptor, LPBOOL lpbSaclPresent, PACL *pSacl, LPBOOL lpbSaclDefaulted ); __declspec(dllimport) BOOL __stdcall SetSecurityDescriptorOwner ( PSECURITY_DESCRIPTOR pSecurityDescriptor, PSID pOwner, BOOL bOwnerDefaulted ); __declspec(dllimport) BOOL __stdcall GetSecurityDescriptorOwner ( PSECURITY_DESCRIPTOR pSecurityDescriptor, PSID *pOwner, LPBOOL lpbOwnerDefaulted ); __declspec(dllimport) BOOL __stdcall SetSecurityDescriptorGroup ( PSECURITY_DESCRIPTOR pSecurityDescriptor, PSID pGroup, BOOL bGroupDefaulted ); __declspec(dllimport) BOOL __stdcall GetSecurityDescriptorGroup ( PSECURITY_DESCRIPTOR pSecurityDescriptor, PSID *pGroup, LPBOOL lpbGroupDefaulted ); __declspec(dllimport) DWORD __stdcall SetSecurityDescriptorRMControl( PSECURITY_DESCRIPTOR SecurityDescriptor, PUCHAR RMControl ); __declspec(dllimport) DWORD __stdcall GetSecurityDescriptorRMControl( PSECURITY_DESCRIPTOR SecurityDescriptor, PUCHAR RMControl ); __declspec(dllimport) BOOL __stdcall CreatePrivateObjectSecurity ( PSECURITY_DESCRIPTOR ParentDescriptor, PSECURITY_DESCRIPTOR CreatorDescriptor, PSECURITY_DESCRIPTOR * NewDescriptor, BOOL IsDirectoryObject, HANDLE Token, PGENERIC_MAPPING GenericMapping ); __declspec(dllimport) BOOL __stdcall ConvertToAutoInheritPrivateObjectSecurity( PSECURITY_DESCRIPTOR ParentDescriptor, PSECURITY_DESCRIPTOR CurrentSecurityDescriptor, PSECURITY_DESCRIPTOR *NewSecurityDescriptor, GUID *ObjectType, BOOLEAN IsDirectoryObject, PGENERIC_MAPPING GenericMapping ); __declspec(dllimport) BOOL __stdcall CreatePrivateObjectSecurityEx ( PSECURITY_DESCRIPTOR ParentDescriptor, PSECURITY_DESCRIPTOR CreatorDescriptor, PSECURITY_DESCRIPTOR * NewDescriptor, GUID *ObjectType, BOOL IsContainerObject, ULONG AutoInheritFlags, HANDLE Token, PGENERIC_MAPPING GenericMapping ); __declspec(dllimport) BOOL __stdcall CreatePrivateObjectSecurityWithMultipleInheritance ( PSECURITY_DESCRIPTOR ParentDescriptor, PSECURITY_DESCRIPTOR CreatorDescriptor, PSECURITY_DESCRIPTOR * NewDescriptor, GUID **ObjectTypes, ULONG GuidCount, BOOL IsContainerObject, ULONG AutoInheritFlags, HANDLE Token, PGENERIC_MAPPING GenericMapping ); #line 11150 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall SetPrivateObjectSecurity ( SECURITY_INFORMATION SecurityInformation, PSECURITY_DESCRIPTOR ModificationDescriptor, PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor, PGENERIC_MAPPING GenericMapping, HANDLE Token ); __declspec(dllimport) BOOL __stdcall SetPrivateObjectSecurityEx ( SECURITY_INFORMATION SecurityInformation, PSECURITY_DESCRIPTOR ModificationDescriptor, PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor, ULONG AutoInheritFlags, PGENERIC_MAPPING GenericMapping, HANDLE Token ); #line 11175 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall GetPrivateObjectSecurity ( PSECURITY_DESCRIPTOR ObjectDescriptor, SECURITY_INFORMATION SecurityInformation, PSECURITY_DESCRIPTOR ResultantDescriptor, DWORD DescriptorLength, PDWORD ReturnLength ); __declspec(dllimport) BOOL __stdcall DestroyPrivateObjectSecurity ( PSECURITY_DESCRIPTOR * ObjectDescriptor ); __declspec(dllimport) BOOL __stdcall MakeSelfRelativeSD ( PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor, PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor, LPDWORD lpdwBufferLength ); __declspec(dllimport) BOOL __stdcall MakeAbsoluteSD ( PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor, PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor, LPDWORD lpdwAbsoluteSecurityDescriptorSize, PACL pDacl, LPDWORD lpdwDaclSize, PACL pSacl, LPDWORD lpdwSaclSize, PSID pOwner, LPDWORD lpdwOwnerSize, PSID pPrimaryGroup, LPDWORD lpdwPrimaryGroupSize ); __declspec(dllimport) BOOL __stdcall MakeAbsoluteSD2 ( PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor, LPDWORD lpdwBufferSize ); __declspec(dllimport) void __stdcall QuerySecurityAccessMask( SECURITY_INFORMATION SecurityInformation, LPDWORD DesiredAccess ); __declspec(dllimport) void __stdcall SetSecurityAccessMask( SECURITY_INFORMATION SecurityInformation, LPDWORD DesiredAccess ); __declspec(dllimport) BOOL __stdcall SetFileSecurityA ( LPCSTR lpFileName, SECURITY_INFORMATION SecurityInformation, PSECURITY_DESCRIPTOR pSecurityDescriptor ); __declspec(dllimport) BOOL __stdcall SetFileSecurityW ( LPCWSTR lpFileName, SECURITY_INFORMATION SecurityInformation, PSECURITY_DESCRIPTOR pSecurityDescriptor ); #line 11269 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall GetFileSecurityA ( LPCSTR lpFileName, SECURITY_INFORMATION RequestedInformation, PSECURITY_DESCRIPTOR pSecurityDescriptor, DWORD nLength, LPDWORD lpnLengthNeeded ); __declspec(dllimport) BOOL __stdcall GetFileSecurityW ( LPCWSTR lpFileName, SECURITY_INFORMATION RequestedInformation, PSECURITY_DESCRIPTOR pSecurityDescriptor, DWORD nLength, LPDWORD lpnLengthNeeded ); #line 11296 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall SetKernelObjectSecurity ( HANDLE Handle, SECURITY_INFORMATION SecurityInformation, PSECURITY_DESCRIPTOR SecurityDescriptor ); __declspec(dllimport) HANDLE __stdcall FindFirstChangeNotificationA( LPCSTR lpPathName, BOOL bWatchSubtree, DWORD dwNotifyFilter ); __declspec(dllimport) HANDLE __stdcall FindFirstChangeNotificationW( LPCWSTR lpPathName, BOOL bWatchSubtree, DWORD dwNotifyFilter ); #line 11330 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall FindNextChangeNotification( HANDLE hChangeHandle ); __declspec(dllimport) BOOL __stdcall FindCloseChangeNotification( HANDLE hChangeHandle ); __declspec(dllimport) BOOL __stdcall ReadDirectoryChangesW( HANDLE hDirectory, LPVOID lpBuffer, DWORD nBufferLength, BOOL bWatchSubtree, DWORD dwNotifyFilter, LPDWORD lpBytesReturned, LPOVERLAPPED lpOverlapped, LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine ); #line 11360 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall VirtualLock( LPVOID lpAddress, SIZE_T dwSize ); __declspec(dllimport) BOOL __stdcall VirtualUnlock( LPVOID lpAddress, SIZE_T dwSize ); __declspec(dllimport) LPVOID __stdcall MapViewOfFileEx( HANDLE hFileMappingObject, DWORD dwDesiredAccess, DWORD dwFileOffsetHigh, DWORD dwFileOffsetLow, SIZE_T dwNumberOfBytesToMap, LPVOID lpBaseAddress ); #line 11407 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall SetPriorityClass( HANDLE hProcess, DWORD dwPriorityClass ); __declspec(dllimport) DWORD __stdcall GetPriorityClass( HANDLE hProcess ); __declspec(dllimport) BOOL __stdcall IsBadReadPtr( const void *lp, UINT_PTR ucb ); __declspec(dllimport) BOOL __stdcall IsBadWritePtr( LPVOID lp, UINT_PTR ucb ); __declspec(dllimport) BOOL __stdcall IsBadHugeReadPtr( const void *lp, UINT_PTR ucb ); __declspec(dllimport) BOOL __stdcall IsBadHugeWritePtr( LPVOID lp, UINT_PTR ucb ); __declspec(dllimport) BOOL __stdcall IsBadCodePtr( FARPROC lpfn ); __declspec(dllimport) BOOL __stdcall IsBadStringPtrA( LPCSTR lpsz, UINT_PTR ucchMax ); __declspec(dllimport) BOOL __stdcall IsBadStringPtrW( LPCWSTR lpsz, UINT_PTR ucchMax ); #line 11481 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall LookupAccountSidA( LPCSTR lpSystemName, PSID Sid, LPSTR Name, LPDWORD cchName, LPSTR ReferencedDomainName, LPDWORD cchReferencedDomainName, PSID_NAME_USE peUse ); __declspec(dllimport) BOOL __stdcall LookupAccountSidW( LPCWSTR lpSystemName, PSID Sid, LPWSTR Name, LPDWORD cchName, LPWSTR ReferencedDomainName, LPDWORD cchReferencedDomainName, PSID_NAME_USE peUse ); #line 11511 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall LookupAccountNameA( LPCSTR lpSystemName, LPCSTR lpAccountName, PSID Sid, LPDWORD cbSid, LPSTR ReferencedDomainName, LPDWORD cchReferencedDomainName, PSID_NAME_USE peUse ); __declspec(dllimport) BOOL __stdcall LookupAccountNameW( LPCWSTR lpSystemName, LPCWSTR lpAccountName, PSID Sid, LPDWORD cbSid, LPWSTR ReferencedDomainName, LPDWORD cchReferencedDomainName, PSID_NAME_USE peUse ); #line 11541 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall LookupPrivilegeValueA( LPCSTR lpSystemName, LPCSTR lpName, PLUID lpLuid ); __declspec(dllimport) BOOL __stdcall LookupPrivilegeValueW( LPCWSTR lpSystemName, LPCWSTR lpName, PLUID lpLuid ); #line 11563 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall LookupPrivilegeNameA( LPCSTR lpSystemName, PLUID lpLuid, LPSTR lpName, LPDWORD cchName ); __declspec(dllimport) BOOL __stdcall LookupPrivilegeNameW( LPCWSTR lpSystemName, PLUID lpLuid, LPWSTR lpName, LPDWORD cchName ); #line 11587 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall LookupPrivilegeDisplayNameA( LPCSTR lpSystemName, LPCSTR lpName, LPSTR lpDisplayName, LPDWORD cchDisplayName, LPDWORD lpLanguageId ); __declspec(dllimport) BOOL __stdcall LookupPrivilegeDisplayNameW( LPCWSTR lpSystemName, LPCWSTR lpName, LPWSTR lpDisplayName, LPDWORD cchDisplayName, LPDWORD lpLanguageId ); #line 11613 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall AllocateLocallyUniqueId( PLUID Luid ); __declspec(dllimport) BOOL __stdcall BuildCommDCBA( LPCSTR lpDef, LPDCB lpDCB ); __declspec(dllimport) BOOL __stdcall BuildCommDCBW( LPCWSTR lpDef, LPDCB lpDCB ); #line 11640 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall BuildCommDCBAndTimeoutsA( LPCSTR lpDef, LPDCB lpDCB, LPCOMMTIMEOUTS lpCommTimeouts ); __declspec(dllimport) BOOL __stdcall BuildCommDCBAndTimeoutsW( LPCWSTR lpDef, LPDCB lpDCB, LPCOMMTIMEOUTS lpCommTimeouts ); #line 11662 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall CommConfigDialogA( LPCSTR lpszName, HWND hWnd, LPCOMMCONFIG lpCC ); __declspec(dllimport) BOOL __stdcall CommConfigDialogW( LPCWSTR lpszName, HWND hWnd, LPCOMMCONFIG lpCC ); #line 11684 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall GetDefaultCommConfigA( LPCSTR lpszName, LPCOMMCONFIG lpCC, LPDWORD lpdwSize ); __declspec(dllimport) BOOL __stdcall GetDefaultCommConfigW( LPCWSTR lpszName, LPCOMMCONFIG lpCC, LPDWORD lpdwSize ); #line 11706 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall SetDefaultCommConfigA( LPCSTR lpszName, LPCOMMCONFIG lpCC, DWORD dwSize ); __declspec(dllimport) BOOL __stdcall SetDefaultCommConfigW( LPCWSTR lpszName, LPCOMMCONFIG lpCC, DWORD dwSize ); #line 11728 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 11734 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall GetComputerNameA ( LPSTR lpBuffer, LPDWORD nSize ); __declspec(dllimport) BOOL __stdcall GetComputerNameW ( LPWSTR lpBuffer, LPDWORD nSize ); #line 11756 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall SetComputerNameA ( LPCSTR lpComputerName ); __declspec(dllimport) BOOL __stdcall SetComputerNameW ( LPCWSTR lpComputerName ); #line 11774 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" typedef enum _COMPUTER_NAME_FORMAT { ComputerNameNetBIOS, ComputerNameDnsHostname, ComputerNameDnsDomain, ComputerNameDnsFullyQualified, ComputerNamePhysicalNetBIOS, ComputerNamePhysicalDnsHostname, ComputerNamePhysicalDnsDomain, ComputerNamePhysicalDnsFullyQualified, ComputerNameMax } COMPUTER_NAME_FORMAT ; __declspec(dllimport) BOOL __stdcall GetComputerNameExA ( COMPUTER_NAME_FORMAT NameType, LPSTR lpBuffer, LPDWORD nSize ); __declspec(dllimport) BOOL __stdcall GetComputerNameExW ( COMPUTER_NAME_FORMAT NameType, LPWSTR lpBuffer, LPDWORD nSize ); #line 11813 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall SetComputerNameExA ( COMPUTER_NAME_FORMAT NameType, LPCSTR lpBuffer ); __declspec(dllimport) BOOL __stdcall SetComputerNameExW ( COMPUTER_NAME_FORMAT NameType, LPCWSTR lpBuffer ); #line 11833 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall DnsHostnameToComputerNameA ( LPCSTR Hostname, LPSTR ComputerName, LPDWORD nSize ); __declspec(dllimport) BOOL __stdcall DnsHostnameToComputerNameW ( LPCWSTR Hostname, LPWSTR ComputerName, LPDWORD nSize ); #line 11858 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 11860 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall GetUserNameA ( LPSTR lpBuffer, LPDWORD pcbBuffer ); __declspec(dllimport) BOOL __stdcall GetUserNameW ( LPWSTR lpBuffer, LPDWORD pcbBuffer ); #line 11880 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" // // Logon Support APIs // #line 11894 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 11900 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 11903 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall LogonUserA ( LPCSTR lpszUsername, LPCSTR lpszDomain, LPCSTR lpszPassword, DWORD dwLogonType, DWORD dwLogonProvider, PHANDLE phToken ); __declspec(dllimport) BOOL __stdcall LogonUserW ( LPCWSTR lpszUsername, LPCWSTR lpszDomain, LPCWSTR lpszPassword, DWORD dwLogonType, DWORD dwLogonProvider, PHANDLE phToken ); #line 11933 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall LogonUserExA ( LPCSTR lpszUsername, LPCSTR lpszDomain, LPCSTR lpszPassword, DWORD dwLogonType, DWORD dwLogonProvider, PHANDLE phToken, PSID *ppLogonSid, PVOID *ppProfileBuffer, LPDWORD pdwProfileLength, PQUOTA_LIMITS pQuotaLimits ); __declspec(dllimport) BOOL __stdcall LogonUserExW ( LPCWSTR lpszUsername, LPCWSTR lpszDomain, LPCWSTR lpszPassword, DWORD dwLogonType, DWORD dwLogonProvider, PHANDLE phToken, PSID *ppLogonSid, PVOID *ppProfileBuffer, LPDWORD pdwProfileLength, PQUOTA_LIMITS pQuotaLimits ); #line 11969 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 11975 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall ImpersonateLoggedOnUser( HANDLE hToken ); __declspec(dllimport) BOOL __stdcall CreateProcessAsUserA ( HANDLE hToken, LPCSTR lpApplicationName, LPSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCSTR lpCurrentDirectory, LPSTARTUPINFOA lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation ); __declspec(dllimport) BOOL __stdcall CreateProcessAsUserW ( HANDLE hToken, LPCWSTR lpApplicationName, LPWSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCWSTR lpCurrentDirectory, LPSTARTUPINFOW lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation ); #line 12020 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" // // LogonFlags // __declspec(dllimport) BOOL __stdcall CreateProcessWithLogonW( LPCWSTR lpUsername, LPCWSTR lpDomain, LPCWSTR lpPassword, DWORD dwLogonFlags, LPCWSTR lpApplicationName, LPWSTR lpCommandLine, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCWSTR lpCurrentDirectory, LPSTARTUPINFOW lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation ); __declspec(dllimport) BOOL __stdcall CreateProcessWithTokenW( HANDLE hToken, DWORD dwLogonFlags, LPCWSTR lpApplicationName, LPWSTR lpCommandLine, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCWSTR lpCurrentDirectory, LPSTARTUPINFOW lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation ); #line 12064 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall ImpersonateAnonymousToken( HANDLE ThreadHandle ); __declspec(dllimport) BOOL __stdcall DuplicateTokenEx( HANDLE hExistingToken, DWORD dwDesiredAccess, LPSECURITY_ATTRIBUTES lpTokenAttributes, SECURITY_IMPERSONATION_LEVEL ImpersonationLevel, TOKEN_TYPE TokenType, PHANDLE phNewToken); __declspec(dllimport) BOOL __stdcall CreateRestrictedToken( HANDLE ExistingTokenHandle, DWORD Flags, DWORD DisableSidCount, PSID_AND_ATTRIBUTES SidsToDisable, DWORD DeletePrivilegeCount, PLUID_AND_ATTRIBUTES PrivilegesToDelete, DWORD RestrictedSidCount, PSID_AND_ATTRIBUTES SidsToRestrict, PHANDLE NewTokenHandle ); __declspec(dllimport) BOOL __stdcall IsTokenRestricted( HANDLE TokenHandle ); __declspec(dllimport) BOOL __stdcall IsTokenUntrusted( HANDLE TokenHandle ); __declspec(dllimport) BOOL __stdcall CheckTokenMembership( HANDLE TokenHandle, PSID SidToCheck, PBOOL IsMember ); // // Thread pool API's // typedef WAITORTIMERCALLBACKFUNC WAITORTIMERCALLBACK ; __declspec(dllimport) BOOL __stdcall RegisterWaitForSingleObject( PHANDLE phNewWaitObject, HANDLE hObject, WAITORTIMERCALLBACK Callback, PVOID Context, ULONG dwMilliseconds, ULONG dwFlags ); __declspec(dllimport) HANDLE __stdcall RegisterWaitForSingleObjectEx( HANDLE hObject, WAITORTIMERCALLBACK Callback, PVOID Context, ULONG dwMilliseconds, ULONG dwFlags ); __declspec(dllimport) BOOL __stdcall UnregisterWait( HANDLE WaitHandle ); __declspec(dllimport) BOOL __stdcall UnregisterWaitEx( HANDLE WaitHandle, HANDLE CompletionEvent ); __declspec(dllimport) BOOL __stdcall QueueUserWorkItem( LPTHREAD_START_ROUTINE Function, PVOID Context, ULONG Flags ); __declspec(dllimport) BOOL __stdcall BindIoCompletionCallback ( HANDLE FileHandle, LPOVERLAPPED_COMPLETION_ROUTINE Function, ULONG Flags ); __declspec(dllimport) HANDLE __stdcall CreateTimerQueue( void ); __declspec(dllimport) BOOL __stdcall CreateTimerQueueTimer( PHANDLE phNewTimer, HANDLE TimerQueue, WAITORTIMERCALLBACK Callback, PVOID Parameter, DWORD DueTime, DWORD Period, ULONG Flags ) ; __declspec(dllimport) BOOL __stdcall ChangeTimerQueueTimer( HANDLE TimerQueue, HANDLE Timer, ULONG DueTime, ULONG Period ); __declspec(dllimport) BOOL __stdcall DeleteTimerQueueTimer( HANDLE TimerQueue, HANDLE Timer, HANDLE CompletionEvent ); __declspec(dllimport) BOOL __stdcall DeleteTimerQueueEx( HANDLE TimerQueue, HANDLE CompletionEvent ); __declspec(dllimport) HANDLE __stdcall SetTimerQueueTimer( HANDLE TimerQueue, WAITORTIMERCALLBACK Callback, PVOID Parameter, DWORD DueTime, DWORD Period, BOOL PreferIo ); __declspec(dllimport) BOOL __stdcall CancelTimerQueueTimer( HANDLE TimerQueue, HANDLE Timer ); __declspec(dllimport) BOOL __stdcall DeleteTimerQueue( HANDLE TimerQueue ); #line 12719 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 12721 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" // // Plug-and-Play API's // typedef struct tagHW_PROFILE_INFOA { DWORD dwDockInfo; CHAR szHwProfileGuid[39]; CHAR szHwProfileName[80]; } HW_PROFILE_INFOA, *LPHW_PROFILE_INFOA; typedef struct tagHW_PROFILE_INFOW { DWORD dwDockInfo; WCHAR szHwProfileGuid[39]; WCHAR szHwProfileName[80]; } HW_PROFILE_INFOW, *LPHW_PROFILE_INFOW; typedef HW_PROFILE_INFOW HW_PROFILE_INFO; typedef LPHW_PROFILE_INFOW LPHW_PROFILE_INFO; #line 12754 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall GetCurrentHwProfileA ( LPHW_PROFILE_INFOA lpHwProfileInfo ); __declspec(dllimport) BOOL __stdcall GetCurrentHwProfileW ( LPHW_PROFILE_INFOW lpHwProfileInfo ); #line 12773 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 12774 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" // // Performance counter API's // __declspec(dllimport) BOOL __stdcall QueryPerformanceCounter( LARGE_INTEGER *lpPerformanceCount ); __declspec(dllimport) BOOL __stdcall QueryPerformanceFrequency( LARGE_INTEGER *lpFrequency ); __declspec(dllimport) BOOL __stdcall GetVersionExA( LPOSVERSIONINFOA lpVersionInformation ); __declspec(dllimport) BOOL __stdcall GetVersionExW( LPOSVERSIONINFOW lpVersionInformation ); #line 12812 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall VerifyVersionInfoA( LPOSVERSIONINFOEXA lpVersionInformation, DWORD dwTypeMask, DWORDLONG dwlConditionMask ); __declspec(dllimport) BOOL __stdcall VerifyVersionInfoW( LPOSVERSIONINFOEXW lpVersionInformation, DWORD dwTypeMask, DWORDLONG dwlConditionMask ); #line 12836 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 12851 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" // DOS and OS/2 Compatible Error Code definitions returned by the Win32 Base // API functions. // #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winerror.h" /************************************************************************ * * * winerror.h -- error code definitions for the Win32 API functions * * * * Copyright (c) Microsoft Corp. All rights reserved. * * * ************************************************************************/ #pragma once #line 15 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winerror.h" // // Values are 32 bit values laid out as follows: // // 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 // 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 // +---+-+-+-----------------------+-------------------------------+ // |Sev|C|R| Facility | Code | // +---+-+-+-----------------------+-------------------------------+ // // where // // Sev - is the severity code // // 00 - Success // 01 - Informational // 10 - Warning // 11 - Error // // C - is the Customer code flag // // R - is a reserved bit // // Facility - is the facility code // // Code - is the facility's status code // // // Define the facility codes // // // Define the severity codes // // // MessageId: ERROR_SUCCESS // // MessageText: // // The operation completed successfully. // // // MessageId: ERROR_INVALID_FUNCTION // // MessageText: // // Incorrect function. // // // MessageId: ERROR_FILE_NOT_FOUND // // MessageText: // // The system cannot find the file specified. // // // MessageId: ERROR_PATH_NOT_FOUND // // MessageText: // // The system cannot find the path specified. // // // MessageId: ERROR_TOO_MANY_OPEN_FILES // // MessageText: // // The system cannot open the file. // // // MessageId: ERROR_ACCESS_DENIED // // MessageText: // // Access is denied. // // // MessageId: ERROR_INVALID_HANDLE // // MessageText: // // The handle is invalid. // // // MessageId: ERROR_ARENA_TRASHED // // MessageText: // // The storage control blocks were destroyed. // // // MessageId: ERROR_NOT_ENOUGH_MEMORY // // MessageText: // // Not enough storage is available to process this command. // // // MessageId: ERROR_INVALID_BLOCK // // MessageText: // // The storage control block address is invalid. // // // MessageId: ERROR_BAD_ENVIRONMENT // // MessageText: // // The environment is incorrect. // // // MessageId: ERROR_BAD_FORMAT // // MessageText: // // An attempt was made to load a program with an incorrect format. // // // MessageId: ERROR_INVALID_ACCESS // // MessageText: // // The access code is invalid. // // // MessageId: ERROR_INVALID_DATA // // MessageText: // // The data is invalid. // // // MessageId: ERROR_OUTOFMEMORY // // MessageText: // // Not enough storage is available to complete this operation. // // // MessageId: ERROR_INVALID_DRIVE // // MessageText: // // The system cannot find the drive specified. // // // MessageId: ERROR_CURRENT_DIRECTORY // // MessageText: // // The directory cannot be removed. // // // MessageId: ERROR_NOT_SAME_DEVICE // // MessageText: // // The system cannot move the file to a different disk drive. // // // MessageId: ERROR_NO_MORE_FILES // // MessageText: // // There are no more files. // // // MessageId: ERROR_WRITE_PROTECT // // MessageText: // // The media is write protected. // // // MessageId: ERROR_BAD_UNIT // // MessageText: // // The system cannot find the device specified. // // // MessageId: ERROR_NOT_READY // // MessageText: // // The device is not ready. // // // MessageId: ERROR_BAD_COMMAND // // MessageText: // // The device does not recognize the command. // // // MessageId: ERROR_CRC // // MessageText: // // Data error (cyclic redundancy check). // // // MessageId: ERROR_BAD_LENGTH // // MessageText: // // The program issued a command but the command length is incorrect. // // // MessageId: ERROR_SEEK // // MessageText: // // The drive cannot locate a specific area or track on the disk. // // // MessageId: ERROR_NOT_DOS_DISK // // MessageText: // // The specified disk or diskette cannot be accessed. // // // MessageId: ERROR_SECTOR_NOT_FOUND // // MessageText: // // The drive cannot find the sector requested. // // // MessageId: ERROR_OUT_OF_PAPER // // MessageText: // // The printer is out of paper. // // // MessageId: ERROR_WRITE_FAULT // // MessageText: // // The system cannot write to the specified device. // // // MessageId: ERROR_READ_FAULT // // MessageText: // // The system cannot read from the specified device. // // // MessageId: ERROR_GEN_FAILURE // // MessageText: // // A device attached to the system is not functioning. // // // MessageId: ERROR_SHARING_VIOLATION // // MessageText: // // The process cannot access the file because it is being used by another process. // // // MessageId: ERROR_LOCK_VIOLATION // // MessageText: // // The process cannot access the file because another process has locked a portion of the file. // // // MessageId: ERROR_WRONG_DISK // // MessageText: // // The wrong diskette is in the drive. // Insert %2 (Volume Serial Number: %3) into drive %1. // // // MessageId: ERROR_SHARING_BUFFER_EXCEEDED // // MessageText: // // Too many files opened for sharing. // // // MessageId: ERROR_HANDLE_EOF // // MessageText: // // Reached the end of the file. // // // MessageId: ERROR_HANDLE_DISK_FULL // // MessageText: // // The disk is full. // // // MessageId: ERROR_NOT_SUPPORTED // // MessageText: // // The request is not supported. // // // MessageId: ERROR_REM_NOT_LIST // // MessageText: // // Windows cannot find the network path. Verify that the network path is correct and the destination computer is not busy or turned off. If Windows still cannot find the network path, contact your network administrator. // // // MessageId: ERROR_DUP_NAME // // MessageText: // // You were not connected because a duplicate name exists on the network. If joining a domain, go to System in Control Panel to change the computer name and try again. If joining a workgroup, choose another workgroup name. // // // MessageId: ERROR_BAD_NETPATH // // MessageText: // // The network path was not found. // // // MessageId: ERROR_NETWORK_BUSY // // MessageText: // // The network is busy. // // // MessageId: ERROR_DEV_NOT_EXIST // // MessageText: // // The specified network resource or device is no longer available. // // // MessageId: ERROR_TOO_MANY_CMDS // // MessageText: // // The network BIOS command limit has been reached. // // // MessageId: ERROR_ADAP_HDW_ERR // // MessageText: // // A network adapter hardware error occurred. // // // MessageId: ERROR_BAD_NET_RESP // // MessageText: // // The specified server cannot perform the requested operation. // // // MessageId: ERROR_UNEXP_NET_ERR // // MessageText: // // An unexpected network error occurred. // // // MessageId: ERROR_BAD_REM_ADAP // // MessageText: // // The remote adapter is not compatible. // // // MessageId: ERROR_PRINTQ_FULL // // MessageText: // // The printer queue is full. // // // MessageId: ERROR_NO_SPOOL_SPACE // // MessageText: // // Space to store the file waiting to be printed is not available on the server. // // // MessageId: ERROR_PRINT_CANCELLED // // MessageText: // // Your file waiting to be printed was deleted. // // // MessageId: ERROR_NETNAME_DELETED // // MessageText: // // The specified network name is no longer available. // // // MessageId: ERROR_NETWORK_ACCESS_DENIED // // MessageText: // // Network access is denied. // // // MessageId: ERROR_BAD_DEV_TYPE // // MessageText: // // The network resource type is not correct. // // // MessageId: ERROR_BAD_NET_NAME // // MessageText: // // The network name cannot be found. // // // MessageId: ERROR_TOO_MANY_NAMES // // MessageText: // // The name limit for the local computer network adapter card was exceeded. // // // MessageId: ERROR_TOO_MANY_SESS // // MessageText: // // The network BIOS session limit was exceeded. // // // MessageId: ERROR_SHARING_PAUSED // // MessageText: // // The remote server has been paused or is in the process of being started. // // // MessageId: ERROR_REQ_NOT_ACCEP // // MessageText: // // No more connections can be made to this remote computer at this time because there are already as many connections as the computer can accept. // // // MessageId: ERROR_REDIR_PAUSED // // MessageText: // // The specified printer or disk device has been paused. // // // MessageId: ERROR_FILE_EXISTS // // MessageText: // // The file exists. // // // MessageId: ERROR_CANNOT_MAKE // // MessageText: // // The directory or file cannot be created. // // // MessageId: ERROR_FAIL_I24 // // MessageText: // // Fail on INT 24. // // // MessageId: ERROR_OUT_OF_STRUCTURES // // MessageText: // // Storage to process this request is not available. // // // MessageId: ERROR_ALREADY_ASSIGNED // // MessageText: // // The local device name is already in use. // // // MessageId: ERROR_INVALID_PASSWORD // // MessageText: // // The specified network password is not correct. // // // MessageId: ERROR_INVALID_PARAMETER // // MessageText: // // The parameter is incorrect. // // // MessageId: ERROR_NET_WRITE_FAULT // // MessageText: // // A write fault occurred on the network. // // // MessageId: ERROR_NO_PROC_SLOTS // // MessageText: // // The system cannot start another process at this time. // // // MessageId: ERROR_TOO_MANY_SEMAPHORES // // MessageText: // // Cannot create another system semaphore. // // // MessageId: ERROR_EXCL_SEM_ALREADY_OWNED // // MessageText: // // The exclusive semaphore is owned by another process. // // // MessageId: ERROR_SEM_IS_SET // // MessageText: // // The semaphore is set and cannot be closed. // // // MessageId: ERROR_TOO_MANY_SEM_REQUESTS // // MessageText: // // The semaphore cannot be set again. // // // MessageId: ERROR_INVALID_AT_INTERRUPT_TIME // // MessageText: // // Cannot request exclusive semaphores at interrupt time. // // // MessageId: ERROR_SEM_OWNER_DIED // // MessageText: // // The previous ownership of this semaphore has ended. // // // MessageId: ERROR_SEM_USER_LIMIT // // MessageText: // // Insert the diskette for drive %1. // // // MessageId: ERROR_DISK_CHANGE // // MessageText: // // The program stopped because an alternate diskette was not inserted. // // // MessageId: ERROR_DRIVE_LOCKED // // MessageText: // // The disk is in use or locked by another process. // // // MessageId: ERROR_BROKEN_PIPE // // MessageText: // // The pipe has been ended. // // // MessageId: ERROR_OPEN_FAILED // // MessageText: // // The system cannot open the device or file specified. // // // MessageId: ERROR_BUFFER_OVERFLOW // // MessageText: // // The file name is too long. // // // MessageId: ERROR_DISK_FULL // // MessageText: // // There is not enough space on the disk. // // // MessageId: ERROR_NO_MORE_SEARCH_HANDLES // // MessageText: // // No more internal file identifiers available. // // // MessageId: ERROR_INVALID_TARGET_HANDLE // // MessageText: // // The target internal file identifier is incorrect. // // // MessageId: ERROR_INVALID_CATEGORY // // MessageText: // // The IOCTL call made by the application program is not correct. // // // MessageId: ERROR_INVALID_VERIFY_SWITCH // // MessageText: // // The verify-on-write switch parameter value is not correct. // // // MessageId: ERROR_BAD_DRIVER_LEVEL // // MessageText: // // The system does not support the command requested. // // // MessageId: ERROR_CALL_NOT_IMPLEMENTED // // MessageText: // // This function is not supported on this system. // // // MessageId: ERROR_SEM_TIMEOUT // // MessageText: // // The semaphore timeout period has expired. // // // MessageId: ERROR_INSUFFICIENT_BUFFER // // MessageText: // // The data area passed to a system call is too small. // // // MessageId: ERROR_INVALID_NAME // // MessageText: // // The filename, directory name, or volume label syntax is incorrect. // // // MessageId: ERROR_INVALID_LEVEL // // MessageText: // // The system call level is not correct. // // // MessageId: ERROR_NO_VOLUME_LABEL // // MessageText: // // The disk has no volume label. // // // MessageId: ERROR_MOD_NOT_FOUND // // MessageText: // // The specified module could not be found. // // // MessageId: ERROR_PROC_NOT_FOUND // // MessageText: // // The specified procedure could not be found. // // // MessageId: ERROR_WAIT_NO_CHILDREN // // MessageText: // // There are no child processes to wait for. // // // MessageId: ERROR_CHILD_NOT_COMPLETE // // MessageText: // // The %1 application cannot be run in Win32 mode. // // // MessageId: ERROR_DIRECT_ACCESS_HANDLE // // MessageText: // // Attempt to use a file handle to an open disk partition for an operation other than raw disk I/O. // // // MessageId: ERROR_NEGATIVE_SEEK // // MessageText: // // An attempt was made to move the file pointer before the beginning of the file. // // // MessageId: ERROR_SEEK_ON_DEVICE // // MessageText: // // The file pointer cannot be set on the specified device or file. // // // MessageId: ERROR_IS_JOIN_TARGET // // MessageText: // // A JOIN or SUBST command cannot be used for a drive that contains previously joined drives. // // // MessageId: ERROR_IS_JOINED // // MessageText: // // An attempt was made to use a JOIN or SUBST command on a drive that has already been joined. // // // MessageId: ERROR_IS_SUBSTED // // MessageText: // // An attempt was made to use a JOIN or SUBST command on a drive that has already been substituted. // // // MessageId: ERROR_NOT_JOINED // // MessageText: // // The system tried to delete the JOIN of a drive that is not joined. // // // MessageId: ERROR_NOT_SUBSTED // // MessageText: // // The system tried to delete the substitution of a drive that is not substituted. // // // MessageId: ERROR_JOIN_TO_JOIN // // MessageText: // // The system tried to join a drive to a directory on a joined drive. // // // MessageId: ERROR_SUBST_TO_SUBST // // MessageText: // // The system tried to substitute a drive to a directory on a substituted drive. // // // MessageId: ERROR_JOIN_TO_SUBST // // MessageText: // // The system tried to join a drive to a directory on a substituted drive. // // // MessageId: ERROR_SUBST_TO_JOIN // // MessageText: // // The system tried to SUBST a drive to a directory on a joined drive. // // // MessageId: ERROR_BUSY_DRIVE // // MessageText: // // The system cannot perform a JOIN or SUBST at this time. // // // MessageId: ERROR_SAME_DRIVE // // MessageText: // // The system cannot join or substitute a drive to or for a directory on the same drive. // // // MessageId: ERROR_DIR_NOT_ROOT // // MessageText: // // The directory is not a subdirectory of the root directory. // // // MessageId: ERROR_DIR_NOT_EMPTY // // MessageText: // // The directory is not empty. // // // MessageId: ERROR_IS_SUBST_PATH // // MessageText: // // The path specified is being used in a substitute. // // // MessageId: ERROR_IS_JOIN_PATH // // MessageText: // // Not enough resources are available to process this command. // // // MessageId: ERROR_PATH_BUSY // // MessageText: // // The path specified cannot be used at this time. // // // MessageId: ERROR_IS_SUBST_TARGET // // MessageText: // // An attempt was made to join or substitute a drive for which a directory on the drive is the target of a previous substitute. // // // MessageId: ERROR_SYSTEM_TRACE // // MessageText: // // System trace information was not specified in your CONFIG.SYS file, or tracing is disallowed. // // // MessageId: ERROR_INVALID_EVENT_COUNT // // MessageText: // // The number of specified semaphore events for DosMuxSemWait is not correct. // // // MessageId: ERROR_TOO_MANY_MUXWAITERS // // MessageText: // // DosMuxSemWait did not execute; too many semaphores are already set. // // // MessageId: ERROR_INVALID_LIST_FORMAT // // MessageText: // // The DosMuxSemWait list is not correct. // // // MessageId: ERROR_LABEL_TOO_LONG // // MessageText: // // The volume label you entered exceeds the label character limit of the target file system. // // // MessageId: ERROR_TOO_MANY_TCBS // // MessageText: // // Cannot create another thread. // // // MessageId: ERROR_SIGNAL_REFUSED // // MessageText: // // The recipient process has refused the signal. // // // MessageId: ERROR_DISCARDED // // MessageText: // // The segment is already discarded and cannot be locked. // // // MessageId: ERROR_NOT_LOCKED // // MessageText: // // The segment is already unlocked. // // // MessageId: ERROR_BAD_THREADID_ADDR // // MessageText: // // The address for the thread ID is not correct. // // // MessageId: ERROR_BAD_ARGUMENTS // // MessageText: // // One or more arguments are not correct. // // // MessageId: ERROR_BAD_PATHNAME // // MessageText: // // The specified path is invalid. // // // MessageId: ERROR_SIGNAL_PENDING // // MessageText: // // A signal is already pending. // // // MessageId: ERROR_MAX_THRDS_REACHED // // MessageText: // // No more threads can be created in the system. // // // MessageId: ERROR_LOCK_FAILED // // MessageText: // // Unable to lock a region of a file. // // // MessageId: ERROR_BUSY // // MessageText: // // The requested resource is in use. // // // MessageId: ERROR_CANCEL_VIOLATION // // MessageText: // // A lock request was not outstanding for the supplied cancel region. // // // MessageId: ERROR_ATOMIC_LOCKS_NOT_SUPPORTED // // MessageText: // // The file system does not support atomic changes to the lock type. // // // MessageId: ERROR_INVALID_SEGMENT_NUMBER // // MessageText: // // The system detected a segment number that was not correct. // // // MessageId: ERROR_INVALID_ORDINAL // // MessageText: // // The operating system cannot run %1. // // // MessageId: ERROR_ALREADY_EXISTS // // MessageText: // // Cannot create a file when that file already exists. // // // MessageId: ERROR_INVALID_FLAG_NUMBER // // MessageText: // // The flag passed is not correct. // // // MessageId: ERROR_SEM_NOT_FOUND // // MessageText: // // The specified system semaphore name was not found. // // // MessageId: ERROR_INVALID_STARTING_CODESEG // // MessageText: // // The operating system cannot run %1. // // // MessageId: ERROR_INVALID_STACKSEG // // MessageText: // // The operating system cannot run %1. // // // MessageId: ERROR_INVALID_MODULETYPE // // MessageText: // // The operating system cannot run %1. // // // MessageId: ERROR_INVALID_EXE_SIGNATURE // // MessageText: // // Cannot run %1 in Win32 mode. // // // MessageId: ERROR_EXE_MARKED_INVALID // // MessageText: // // The operating system cannot run %1. // // // MessageId: ERROR_BAD_EXE_FORMAT // // MessageText: // // %1 is not a valid Win32 application. // // // MessageId: ERROR_ITERATED_DATA_EXCEEDS_64k // // MessageText: // // The operating system cannot run %1. // // // MessageId: ERROR_INVALID_MINALLOCSIZE // // MessageText: // // The operating system cannot run %1. // // // MessageId: ERROR_DYNLINK_FROM_INVALID_RING // // MessageText: // // The operating system cannot run this application program. // // // MessageId: ERROR_IOPL_NOT_ENABLED // // MessageText: // // The operating system is not presently configured to run this application. // // // MessageId: ERROR_INVALID_SEGDPL // // MessageText: // // The operating system cannot run %1. // // // MessageId: ERROR_AUTODATASEG_EXCEEDS_64k // // MessageText: // // The operating system cannot run this application program. // // // MessageId: ERROR_RING2SEG_MUST_BE_MOVABLE // // MessageText: // // The code segment cannot be greater than or equal to 64K. // // // MessageId: ERROR_RELOC_CHAIN_XEEDS_SEGLIM // // MessageText: // // The operating system cannot run %1. // // // MessageId: ERROR_INFLOOP_IN_RELOC_CHAIN // // MessageText: // // The operating system cannot run %1. // // // MessageId: ERROR_ENVVAR_NOT_FOUND // // MessageText: // // The system could not find the environment option that was entered. // // // MessageId: ERROR_NO_SIGNAL_SENT // // MessageText: // // No process in the command subtree has a signal handler. // // // MessageId: ERROR_FILENAME_EXCED_RANGE // // MessageText: // // The filename or extension is too long. // // // MessageId: ERROR_RING2_STACK_IN_USE // // MessageText: // // The ring 2 stack is in use. // // // MessageId: ERROR_META_EXPANSION_TOO_LONG // // MessageText: // // The global filename characters, * or ?, are entered incorrectly or too many global filename characters are specified. // // // MessageId: ERROR_INVALID_SIGNAL_NUMBER // // MessageText: // // The signal being posted is not correct. // // // MessageId: ERROR_THREAD_1_INACTIVE // // MessageText: // // The signal handler cannot be set. // // // MessageId: ERROR_LOCKED // // MessageText: // // The segment is locked and cannot be reallocated. // // // MessageId: ERROR_TOO_MANY_MODULES // // MessageText: // // Too many dynamic-link modules are attached to this program or dynamic-link module. // // // MessageId: ERROR_NESTING_NOT_ALLOWED // // MessageText: // // Cannot nest calls to LoadModule. // // // MessageId: ERROR_EXE_MACHINE_TYPE_MISMATCH // // MessageText: // // This version of %1 is not compatible with the version of Windows you're running. Check your computer's system information to see whether you need a x86 (32-bit) or x64 (64-bit) version of the program, and then contact the software publisher. // // // MessageId: ERROR_EXE_CANNOT_MODIFY_SIGNED_BINARY // // MessageText: // // The image file %1 is signed, unable to modify. // // // MessageId: ERROR_EXE_CANNOT_MODIFY_STRONG_SIGNED_BINARY // // MessageText: // // The image file %1 is strong signed, unable to modify. // // // MessageId: ERROR_FILE_CHECKED_OUT // // MessageText: // // This file is checked out or locked for editing by another user. // // // MessageId: ERROR_CHECKOUT_REQUIRED // // MessageText: // // The file must be checked out before saving changes. // // // MessageId: ERROR_BAD_FILE_TYPE // // MessageText: // // The file type being saved or retrieved has been blocked. // // // MessageId: ERROR_FILE_TOO_LARGE // // MessageText: // // The file size exceeds the limit allowed and cannot be saved. // // // MessageId: ERROR_FORMS_AUTH_REQUIRED // // MessageText: // // Access Denied. Before opening files in this location, you must first browse to the web site and select the option to login automatically. // // // MessageId: ERROR_VIRUS_INFECTED // // MessageText: // // Operation did not complete successfully because the file contains a virus. // // // MessageId: ERROR_VIRUS_DELETED // // MessageText: // // This file contains a virus and cannot be opened. Due to the nature of this virus, the file has been removed from this location. // // // MessageId: ERROR_PIPE_LOCAL // // MessageText: // // The pipe is local. // // // MessageId: ERROR_BAD_PIPE // // MessageText: // // The pipe state is invalid. // // // MessageId: ERROR_PIPE_BUSY // // MessageText: // // All pipe instances are busy. // // // MessageId: ERROR_NO_DATA // // MessageText: // // The pipe is being closed. // // // MessageId: ERROR_PIPE_NOT_CONNECTED // // MessageText: // // No process is on the other end of the pipe. // // // MessageId: ERROR_MORE_DATA // // MessageText: // // More data is available. // // // MessageId: ERROR_VC_DISCONNECTED // // MessageText: // // The session was canceled. // // // MessageId: ERROR_INVALID_EA_NAME // // MessageText: // // The specified extended attribute name was invalid. // // // MessageId: ERROR_EA_LIST_INCONSISTENT // // MessageText: // // The extended attributes are inconsistent. // // // MessageId: WAIT_TIMEOUT // // MessageText: // // The wait operation timed out. // // // MessageId: ERROR_NO_MORE_ITEMS // // MessageText: // // No more data is available. // // // MessageId: ERROR_CANNOT_COPY // // MessageText: // // The copy functions cannot be used. // // // MessageId: ERROR_DIRECTORY // // MessageText: // // The directory name is invalid. // // // MessageId: ERROR_EAS_DIDNT_FIT // // MessageText: // // The extended attributes did not fit in the buffer. // // // MessageId: ERROR_EA_FILE_CORRUPT // // MessageText: // // The extended attribute file on the mounted file system is corrupt. // // // MessageId: ERROR_EA_TABLE_FULL // // MessageText: // // The extended attribute table file is full. // // // MessageId: ERROR_INVALID_EA_HANDLE // // MessageText: // // The specified extended attribute handle is invalid. // // // MessageId: ERROR_EAS_NOT_SUPPORTED // // MessageText: // // The mounted file system does not support extended attributes. // // // MessageId: ERROR_NOT_OWNER // // MessageText: // // Attempt to release mutex not owned by caller. // // // MessageId: ERROR_TOO_MANY_POSTS // // MessageText: // // Too many posts were made to a semaphore. // // // MessageId: ERROR_PARTIAL_COPY // // MessageText: // // Only part of a ReadProcessMemory or WriteProcessMemory request was completed. // // // MessageId: ERROR_OPLOCK_NOT_GRANTED // // MessageText: // // The oplock request is denied. // // // MessageId: ERROR_INVALID_OPLOCK_PROTOCOL // // MessageText: // // An invalid oplock acknowledgment was received by the system. // // // MessageId: ERROR_DISK_TOO_FRAGMENTED // // MessageText: // // The volume is too fragmented to complete this operation. // // // MessageId: ERROR_DELETE_PENDING // // MessageText: // // The file cannot be opened because it is in the process of being deleted. // // // MessageId: ERROR_MR_MID_NOT_FOUND // // MessageText: // // The system cannot find message text for message number 0x%1 in the message file for %2. // // // MessageId: ERROR_SCOPE_NOT_FOUND // // MessageText: // // The scope specified was not found. // // // MessageId: ERROR_FAIL_NOACTION_REBOOT // // MessageText: // // No action was taken as a system reboot is required. // // // MessageId: ERROR_FAIL_SHUTDOWN // // MessageText: // // The shutdown operation failed. // // // MessageId: ERROR_FAIL_RESTART // // MessageText: // // The restart operation failed. // // // MessageId: ERROR_MAX_SESSIONS_REACHED // // MessageText: // // The maximum number of sessions has been reached. // // // MessageId: ERROR_THREAD_MODE_ALREADY_BACKGROUND // // MessageText: // // The thread is already in background processing mode. // // // MessageId: ERROR_THREAD_MODE_NOT_BACKGROUND // // MessageText: // // The thread is not in background processing mode. // // // MessageId: ERROR_PROCESS_MODE_ALREADY_BACKGROUND // // MessageText: // // The process is already in background processing mode. // // // MessageId: ERROR_PROCESS_MODE_NOT_BACKGROUND // // MessageText: // // The process is not in background processing mode. // // // MessageId: ERROR_INVALID_ADDRESS // // MessageText: // // Attempt to access invalid address. // // // MessageId: ERROR_USER_PROFILE_LOAD // // MessageText: // // User profile cannot be loaded. // // // MessageId: ERROR_ARITHMETIC_OVERFLOW // // MessageText: // // Arithmetic result exceeded 32 bits. // // // MessageId: ERROR_PIPE_CONNECTED // // MessageText: // // There is a process on other end of the pipe. // // // MessageId: ERROR_PIPE_LISTENING // // MessageText: // // Waiting for a process to open the other end of the pipe. // // // MessageId: ERROR_VERIFIER_STOP // // MessageText: // // Application verifier has found an error in the current process. // // // MessageId: ERROR_ABIOS_ERROR // // MessageText: // // An error occurred in the ABIOS subsystem. // // // MessageId: ERROR_WX86_WARNING // // MessageText: // // A warning occurred in the WX86 subsystem. // // // MessageId: ERROR_WX86_ERROR // // MessageText: // // An error occurred in the WX86 subsystem. // // // MessageId: ERROR_TIMER_NOT_CANCELED // // MessageText: // // An attempt was made to cancel or set a timer that has an associated APC and the subject thread is not the thread that originally set the timer with an associated APC routine. // // // MessageId: ERROR_UNWIND // // MessageText: // // Unwind exception code. // // // MessageId: ERROR_BAD_STACK // // MessageText: // // An invalid or unaligned stack was encountered during an unwind operation. // // // MessageId: ERROR_INVALID_UNWIND_TARGET // // MessageText: // // An invalid unwind target was encountered during an unwind operation. // // // MessageId: ERROR_INVALID_PORT_ATTRIBUTES // // MessageText: // // Invalid Object Attributes specified to NtCreatePort or invalid Port Attributes specified to NtConnectPort // // // MessageId: ERROR_PORT_MESSAGE_TOO_LONG // // MessageText: // // Length of message passed to NtRequestPort or NtRequestWaitReplyPort was longer than the maximum message allowed by the port. // // // MessageId: ERROR_INVALID_QUOTA_LOWER // // MessageText: // // An attempt was made to lower a quota limit below the current usage. // // // MessageId: ERROR_DEVICE_ALREADY_ATTACHED // // MessageText: // // An attempt was made to attach to a device that was already attached to another device. // // // MessageId: ERROR_INSTRUCTION_MISALIGNMENT // // MessageText: // // An attempt was made to execute an instruction at an unaligned address and the host system does not support unaligned instruction references. // // // MessageId: ERROR_PROFILING_NOT_STARTED // // MessageText: // // Profiling not started. // // // MessageId: ERROR_PROFILING_NOT_STOPPED // // MessageText: // // Profiling not stopped. // // // MessageId: ERROR_COULD_NOT_INTERPRET // // MessageText: // // The passed ACL did not contain the minimum required information. // // // MessageId: ERROR_PROFILING_AT_LIMIT // // MessageText: // // The number of active profiling objects is at the maximum and no more may be started. // // // MessageId: ERROR_CANT_WAIT // // MessageText: // // Used to indicate that an operation cannot continue without blocking for I/O. // // // MessageId: ERROR_CANT_TERMINATE_SELF // // MessageText: // // Indicates that a thread attempted to terminate itself by default (called NtTerminateThread with NULL) and it was the last thread in the current process. // // // MessageId: ERROR_UNEXPECTED_MM_CREATE_ERR // // MessageText: // // If an MM error is returned which is not defined in the standard FsRtl filter, it is converted to one of the following errors which is guaranteed to be in the filter. // In this case information is lost, however, the filter correctly handles the exception. // // // MessageId: ERROR_UNEXPECTED_MM_MAP_ERROR // // MessageText: // // If an MM error is returned which is not defined in the standard FsRtl filter, it is converted to one of the following errors which is guaranteed to be in the filter. // In this case information is lost, however, the filter correctly handles the exception. // // // MessageId: ERROR_UNEXPECTED_MM_EXTEND_ERR // // MessageText: // // If an MM error is returned which is not defined in the standard FsRtl filter, it is converted to one of the following errors which is guaranteed to be in the filter. // In this case information is lost, however, the filter correctly handles the exception. // // // MessageId: ERROR_BAD_FUNCTION_TABLE // // MessageText: // // A malformed function table was encountered during an unwind operation. // // // MessageId: ERROR_NO_GUID_TRANSLATION // // MessageText: // // Indicates that an attempt was made to assign protection to a file system file or directory and one of the SIDs in the security descriptor could not be translated into a GUID that could be stored by the file system. // This causes the protection attempt to fail, which may cause a file creation attempt to fail. // // // MessageId: ERROR_INVALID_LDT_SIZE // // MessageText: // // Indicates that an attempt was made to grow an LDT by setting its size, or that the size was not an even number of selectors. // // // MessageId: ERROR_INVALID_LDT_OFFSET // // MessageText: // // Indicates that the starting value for the LDT information was not an integral multiple of the selector size. // // // MessageId: ERROR_INVALID_LDT_DESCRIPTOR // // MessageText: // // Indicates that the user supplied an invalid descriptor when trying to set up Ldt descriptors. // // // MessageId: ERROR_TOO_MANY_THREADS // // MessageText: // // Indicates a process has too many threads to perform the requested action. For example, assignment of a primary token may only be performed when a process has zero or one threads. // // // MessageId: ERROR_THREAD_NOT_IN_PROCESS // // MessageText: // // An attempt was made to operate on a thread within a specific process, but the thread specified is not in the process specified. // // // MessageId: ERROR_PAGEFILE_QUOTA_EXCEEDED // // MessageText: // // Page file quota was exceeded. // // // MessageId: ERROR_LOGON_SERVER_CONFLICT // // MessageText: // // The Netlogon service cannot start because another Netlogon service running in the domain conflicts with the specified role. // // // MessageId: ERROR_SYNCHRONIZATION_REQUIRED // // MessageText: // // The SAM database on a Windows Server is significantly out of synchronization with the copy on the Domain Controller. A complete synchronization is required. // // // MessageId: ERROR_NET_OPEN_FAILED // // MessageText: // // The NtCreateFile API failed. This error should never be returned to an application, it is a place holder for the Windows Lan Manager Redirector to use in its internal error mapping routines. // // // MessageId: ERROR_IO_PRIVILEGE_FAILED // // MessageText: // // {Privilege Failed} // The I/O permissions for the process could not be changed. // // // MessageId: ERROR_CONTROL_C_EXIT // // MessageText: // // {Application Exit by CTRL+C} // The application terminated as a result of a CTRL+C. // // // MessageId: ERROR_MISSING_SYSTEMFILE // // MessageText: // // {Missing System File} // The required system file %hs is bad or missing. // // // MessageId: ERROR_UNHANDLED_EXCEPTION // // MessageText: // // {Application Error} // The exception %s (0x%08lx) occurred in the application at location 0x%08lx. // // // MessageId: ERROR_APP_INIT_FAILURE // // MessageText: // // {Application Error} // The application failed to initialize properly (0x%lx). Click OK to terminate the application. // // // MessageId: ERROR_PAGEFILE_CREATE_FAILED // // MessageText: // // {Unable to Create Paging File} // The creation of the paging file %hs failed (%lx). The requested size was %ld. // // // MessageId: ERROR_INVALID_IMAGE_HASH // // MessageText: // // Windows cannot verify the digital signature for this file. A recent hardware or software change might have installed a file that is signed incorrectly or damaged, or that might be malicious software from an unknown source. // // // MessageId: ERROR_NO_PAGEFILE // // MessageText: // // {No Paging File Specified} // No paging file was specified in the system configuration. // // // MessageId: ERROR_ILLEGAL_FLOAT_CONTEXT // // MessageText: // // {EXCEPTION} // A real-mode application issued a floating-point instruction and floating-point hardware is not present. // // // MessageId: ERROR_NO_EVENT_PAIR // // MessageText: // // An event pair synchronization operation was performed using the thread specific client/server event pair object, but no event pair object was associated with the thread. // // // MessageId: ERROR_DOMAIN_CTRLR_CONFIG_ERROR // // MessageText: // // A Windows Server has an incorrect configuration. // // // MessageId: ERROR_ILLEGAL_CHARACTER // // MessageText: // // An illegal character was encountered. For a multi-byte character set this includes a lead byte without a succeeding trail byte. For the Unicode character set this includes the characters 0xFFFF and 0xFFFE. // // // MessageId: ERROR_UNDEFINED_CHARACTER // // MessageText: // // The Unicode character is not defined in the Unicode character set installed on the system. // // // MessageId: ERROR_FLOPPY_VOLUME // // MessageText: // // The paging file cannot be created on a floppy diskette. // // // MessageId: ERROR_BIOS_FAILED_TO_CONNECT_INTERRUPT // // MessageText: // // The system BIOS failed to connect a system interrupt to the device or bus for which the device is connected. // // // MessageId: ERROR_BACKUP_CONTROLLER // // MessageText: // // This operation is only allowed for the Primary Domain Controller of the domain. // // // MessageId: ERROR_MUTANT_LIMIT_EXCEEDED // // MessageText: // // An attempt was made to acquire a mutant such that its maximum count would have been exceeded. // // // MessageId: ERROR_FS_DRIVER_REQUIRED // // MessageText: // // A volume has been accessed for which a file system driver is required that has not yet been loaded. // // // MessageId: ERROR_CANNOT_LOAD_REGISTRY_FILE // // MessageText: // // {Registry File Failure} // The registry cannot load the hive (file): // %hs // or its log or alternate. // It is corrupt, absent, or not writable. // // // MessageId: ERROR_DEBUG_ATTACH_FAILED // // MessageText: // // {Unexpected Failure in DebugActiveProcess} // An unexpected failure occurred while processing a DebugActiveProcess API request. You may choose OK to terminate the process, or Cancel to ignore the error. // // // MessageId: ERROR_SYSTEM_PROCESS_TERMINATED // // MessageText: // // {Fatal System Error} // The %hs system process terminated unexpectedly with a status of 0x%08x (0x%08x 0x%08x). // The system has been shut down. // // // MessageId: ERROR_DATA_NOT_ACCEPTED // // MessageText: // // {Data Not Accepted} // The TDI client could not handle the data received during an indication. // // // MessageId: ERROR_VDM_HARD_ERROR // // MessageText: // // NTVDM encountered a hard error. // // // MessageId: ERROR_DRIVER_CANCEL_TIMEOUT // // MessageText: // // {Cancel Timeout} // The driver %hs failed to complete a cancelled I/O request in the allotted time. // // // MessageId: ERROR_REPLY_MESSAGE_MISMATCH // // MessageText: // // {Reply Message Mismatch} // An attempt was made to reply to an LPC message, but the thread specified by the client ID in the message was not waiting on that message. // // // MessageId: ERROR_LOST_WRITEBEHIND_DATA // // MessageText: // // {Delayed Write Failed} // Windows was unable to save all the data for the file %hs. The data has been lost. // This error may be caused by a failure of your computer hardware or network connection. Please try to save this file elsewhere. // // // MessageId: ERROR_CLIENT_SERVER_PARAMETERS_INVALID // // MessageText: // // The parameter(s) passed to the server in the client/server shared memory window were invalid. Too much data may have been put in the shared memory window. // // // MessageId: ERROR_NOT_TINY_STREAM // // MessageText: // // The stream is not a tiny stream. // // // MessageId: ERROR_STACK_OVERFLOW_READ // // MessageText: // // The request must be handled by the stack overflow code. // // // MessageId: ERROR_CONVERT_TO_LARGE // // MessageText: // // Internal OFS status codes indicating how an allocation operation is handled. Either it is retried after the containing onode is moved or the extent stream is converted to a large stream. // // // MessageId: ERROR_FOUND_OUT_OF_SCOPE // // MessageText: // // The attempt to find the object found an object matching by ID on the volume but it is out of the scope of the handle used for the operation. // // // MessageId: ERROR_ALLOCATE_BUCKET // // MessageText: // // The bucket array must be grown. Retry transaction after doing so. // // // MessageId: ERROR_MARSHALL_OVERFLOW // // MessageText: // // The user/kernel marshalling buffer has overflowed. // // // MessageId: ERROR_INVALID_VARIANT // // MessageText: // // The supplied variant structure contains invalid data. // // // MessageId: ERROR_BAD_COMPRESSION_BUFFER // // MessageText: // // The specified buffer contains ill-formed data. // // // MessageId: ERROR_AUDIT_FAILED // // MessageText: // // {Audit Failed} // An attempt to generate a security audit failed. // // // MessageId: ERROR_TIMER_RESOLUTION_NOT_SET // // MessageText: // // The timer resolution was not previously set by the current process. // // // MessageId: ERROR_INSUFFICIENT_LOGON_INFO // // MessageText: // // There is insufficient account information to log you on. // // // MessageId: ERROR_BAD_DLL_ENTRYPOINT // // MessageText: // // {Invalid DLL Entrypoint} // The dynamic link library %hs is not written correctly. The stack pointer has been left in an inconsistent state. // The entrypoint should be declared as WINAPI or STDCALL. Select YES to fail the DLL load. Select NO to continue execution. Selecting NO may cause the application to operate incorrectly. // // // MessageId: ERROR_BAD_SERVICE_ENTRYPOINT // // MessageText: // // {Invalid Service Callback Entrypoint} // The %hs service is not written correctly. The stack pointer has been left in an inconsistent state. // The callback entrypoint should be declared as WINAPI or STDCALL. Selecting OK will cause the service to continue operation. However, the service process may operate incorrectly. // // // MessageId: ERROR_IP_ADDRESS_CONFLICT1 // // MessageText: // // There is an IP address conflict with another system on the network // // // MessageId: ERROR_IP_ADDRESS_CONFLICT2 // // MessageText: // // There is an IP address conflict with another system on the network // // // MessageId: ERROR_REGISTRY_QUOTA_LIMIT // // MessageText: // // {Low On Registry Space} // The system has reached the maximum size allowed for the system part of the registry. Additional storage requests will be ignored. // // // MessageId: ERROR_NO_CALLBACK_ACTIVE // // MessageText: // // A callback return system service cannot be executed when no callback is active. // // // MessageId: ERROR_PWD_TOO_SHORT // // MessageText: // // The password provided is too short to meet the policy of your user account. // Please choose a longer password. // // // MessageId: ERROR_PWD_TOO_RECENT // // MessageText: // // The policy of your user account does not allow you to change passwords too frequently. // This is done to prevent users from changing back to a familiar, but potentially discovered, password. // If you feel your password has been compromised then please contact your administrator immediately to have a new one assigned. // // // MessageId: ERROR_PWD_HISTORY_CONFLICT // // MessageText: // // You have attempted to change your password to one that you have used in the past. // The policy of your user account does not allow this. Please select a password that you have not previously used. // // // MessageId: ERROR_UNSUPPORTED_COMPRESSION // // MessageText: // // The specified compression format is unsupported. // // // MessageId: ERROR_INVALID_HW_PROFILE // // MessageText: // // The specified hardware profile configuration is invalid. // // // MessageId: ERROR_INVALID_PLUGPLAY_DEVICE_PATH // // MessageText: // // The specified Plug and Play registry device path is invalid. // // // MessageId: ERROR_QUOTA_LIST_INCONSISTENT // // MessageText: // // The specified quota list is internally inconsistent with its descriptor. // // // MessageId: ERROR_EVALUATION_EXPIRATION // // MessageText: // // {Windows Evaluation Notification} // The evaluation period for this installation of Windows has expired. This system will shutdown in 1 hour. To restore access to this installation of Windows, please upgrade this installation using a licensed distribution of this product. // // // MessageId: ERROR_ILLEGAL_DLL_RELOCATION // // MessageText: // // {Illegal System DLL Relocation} // The system DLL %hs was relocated in memory. The application will not run properly. // The relocation occurred because the DLL %hs occupied an address range reserved for Windows system DLLs. The vendor supplying the DLL should be contacted for a new DLL. // // // MessageId: ERROR_DLL_INIT_FAILED_LOGOFF // // MessageText: // // {DLL Initialization Failed} // The application failed to initialize because the window station is shutting down. // // // MessageId: ERROR_VALIDATE_CONTINUE // // MessageText: // // The validation process needs to continue on to the next step. // // // MessageId: ERROR_NO_MORE_MATCHES // // MessageText: // // There are no more matches for the current index enumeration. // // // MessageId: ERROR_RANGE_LIST_CONFLICT // // MessageText: // // The range could not be added to the range list because of a conflict. // // // MessageId: ERROR_SERVER_SID_MISMATCH // // MessageText: // // The server process is running under a SID different than that required by client. // // // MessageId: ERROR_CANT_ENABLE_DENY_ONLY // // MessageText: // // A group marked use for deny only cannot be enabled. // // // MessageId: ERROR_FLOAT_MULTIPLE_FAULTS // // MessageText: // // {EXCEPTION} // Multiple floating point faults. // // // MessageId: ERROR_FLOAT_MULTIPLE_TRAPS // // MessageText: // // {EXCEPTION} // Multiple floating point traps. // // // MessageId: ERROR_NOINTERFACE // // MessageText: // // The requested interface is not supported. // // // MessageId: ERROR_DRIVER_FAILED_SLEEP // // MessageText: // // {System Standby Failed} // The driver %hs does not support standby mode. Updating this driver may allow the system to go to standby mode. // // // MessageId: ERROR_CORRUPT_SYSTEM_FILE // // MessageText: // // The system file %1 has become corrupt and has been replaced. // // // MessageId: ERROR_COMMITMENT_MINIMUM // // MessageText: // // {Virtual Memory Minimum Too Low} // Your system is low on virtual memory. Windows is increasing the size of your virtual memory paging file. // During this process, memory requests for some applications may be denied. For more information, see Help. // // // MessageId: ERROR_PNP_RESTART_ENUMERATION // // MessageText: // // A device was removed so enumeration must be restarted. // // // MessageId: ERROR_SYSTEM_IMAGE_BAD_SIGNATURE // // MessageText: // // {Fatal System Error} // The system image %s is not properly signed. // The file has been replaced with the signed file. // The system has been shut down. // // // MessageId: ERROR_PNP_REBOOT_REQUIRED // // MessageText: // // Device will not start without a reboot. // // // MessageId: ERROR_INSUFFICIENT_POWER // // MessageText: // // There is not enough power to complete the requested operation. // // // MessageId: ERROR_MULTIPLE_FAULT_VIOLATION // // MessageText: // // ERROR_MULTIPLE_FAULT_VIOLATION // // // MessageId: ERROR_SYSTEM_SHUTDOWN // // MessageText: // // The system is in the process of shutting down. // // // MessageId: ERROR_PORT_NOT_SET // // MessageText: // // An attempt to remove a processes DebugPort was made, but a port was not already associated with the process. // // // MessageId: ERROR_DS_VERSION_CHECK_FAILURE // // MessageText: // // This version of Windows is not compatible with the behavior version of directory forest, domain or domain controller. // // // MessageId: ERROR_RANGE_NOT_FOUND // // MessageText: // // The specified range could not be found in the range list. // // // MessageId: ERROR_NOT_SAFE_MODE_DRIVER // // MessageText: // // The driver was not loaded because the system is booting into safe mode. // // // MessageId: ERROR_FAILED_DRIVER_ENTRY // // MessageText: // // The driver was not loaded because it failed it's initialization call. // // // MessageId: ERROR_DEVICE_ENUMERATION_ERROR // // MessageText: // // The "%hs" encountered an error while applying power or reading the device configuration. // This may be caused by a failure of your hardware or by a poor connection. // // // MessageId: ERROR_MOUNT_POINT_NOT_RESOLVED // // MessageText: // // The create operation failed because the name contained at least one mount point which resolves to a volume to which the specified device object is not attached. // // // MessageId: ERROR_INVALID_DEVICE_OBJECT_PARAMETER // // MessageText: // // The device object parameter is either not a valid device object or is not attached to the volume specified by the file name. // // // MessageId: ERROR_MCA_OCCURED // // MessageText: // // A Machine Check Error has occurred. Please check the system eventlog for additional information. // // // MessageId: ERROR_DRIVER_DATABASE_ERROR // // MessageText: // // There was error [%2] processing the driver database. // // // MessageId: ERROR_SYSTEM_HIVE_TOO_LARGE // // MessageText: // // System hive size has exceeded its limit. // // // MessageId: ERROR_DRIVER_FAILED_PRIOR_UNLOAD // // MessageText: // // The driver could not be loaded because a previous version of the driver is still in memory. // // // MessageId: ERROR_VOLSNAP_PREPARE_HIBERNATE // // MessageText: // // {Volume Shadow Copy Service} // Please wait while the Volume Shadow Copy Service prepares volume %hs for hibernation. // // // MessageId: ERROR_HIBERNATION_FAILURE // // MessageText: // // The system has failed to hibernate (The error code is %hs). Hibernation will be disabled until the system is restarted. // // // MessageId: ERROR_FILE_SYSTEM_LIMITATION // // MessageText: // // The requested operation could not be completed due to a file system limitation // // // MessageId: ERROR_ASSERTION_FAILURE // // MessageText: // // An assertion failure has occurred. // // // MessageId: ERROR_ACPI_ERROR // // MessageText: // // An error occurred in the ACPI subsystem. // // // MessageId: ERROR_WOW_ASSERTION // // MessageText: // // WOW Assertion Error. // // // MessageId: ERROR_PNP_BAD_MPS_TABLE // // MessageText: // // A device is missing in the system BIOS MPS table. This device will not be used. // Please contact your system vendor for system BIOS update. // // // MessageId: ERROR_PNP_TRANSLATION_FAILED // // MessageText: // // A translator failed to translate resources. // // // MessageId: ERROR_PNP_IRQ_TRANSLATION_FAILED // // MessageText: // // A IRQ translator failed to translate resources. // // // MessageId: ERROR_PNP_INVALID_ID // // MessageText: // // Driver %2 returned invalid ID for a child device (%3). // // // MessageId: ERROR_WAKE_SYSTEM_DEBUGGER // // MessageText: // // {Kernel Debugger Awakened} // the system debugger was awakened by an interrupt. // // // MessageId: ERROR_HANDLES_CLOSED // // MessageText: // // {Handles Closed} // Handles to objects have been automatically closed as a result of the requested operation. // // // MessageId: ERROR_EXTRANEOUS_INFORMATION // // MessageText: // // {Too Much Information} // The specified access control list (ACL) contained more information than was expected. // // // MessageId: ERROR_RXACT_COMMIT_NECESSARY // // MessageText: // // This warning level status indicates that the transaction state already exists for the registry sub-tree, but that a transaction commit was previously aborted. // The commit has NOT been completed, but has not been rolled back either (so it may still be committed if desired). // // // MessageId: ERROR_MEDIA_CHECK // // MessageText: // // {Media Changed} // The media may have changed. // // // MessageId: ERROR_GUID_SUBSTITUTION_MADE // // MessageText: // // {GUID Substitution} // During the translation of a global identifier (GUID) to a Windows security ID (SID), no administratively-defined GUID prefix was found. // A substitute prefix was used, which will not compromise system security. // However, this may provide a more restrictive access than intended. // // // MessageId: ERROR_STOPPED_ON_SYMLINK // // MessageText: // // The create operation stopped after reaching a symbolic link // // // MessageId: ERROR_LONGJUMP // // MessageText: // // A long jump has been executed. // // // MessageId: ERROR_PLUGPLAY_QUERY_VETOED // // MessageText: // // The Plug and Play query operation was not successful. // // // MessageId: ERROR_UNWIND_CONSOLIDATE // // MessageText: // // A frame consolidation has been executed. // // // MessageId: ERROR_REGISTRY_HIVE_RECOVERED // // MessageText: // // {Registry Hive Recovered} // Registry hive (file): // %hs // was corrupted and it has been recovered. Some data might have been lost. // // // MessageId: ERROR_DLL_MIGHT_BE_INSECURE // // MessageText: // // The application is attempting to run executable code from the module %hs. This may be insecure. An alternative, %hs, is available. Should the application use the secure module %hs? // // // MessageId: ERROR_DLL_MIGHT_BE_INCOMPATIBLE // // MessageText: // // The application is loading executable code from the module %hs. This is secure, but may be incompatible with previous releases of the operating system. An alternative, %hs, is available. Should the application use the secure module %hs? // // // MessageId: ERROR_DBG_EXCEPTION_NOT_HANDLED // // MessageText: // // Debugger did not handle the exception. // // // MessageId: ERROR_DBG_REPLY_LATER // // MessageText: // // Debugger will reply later. // // // MessageId: ERROR_DBG_UNABLE_TO_PROVIDE_HANDLE // // MessageText: // // Debugger cannot provide handle. // // // MessageId: ERROR_DBG_TERMINATE_THREAD // // MessageText: // // Debugger terminated thread. // // // MessageId: ERROR_DBG_TERMINATE_PROCESS // // MessageText: // // Debugger terminated process. // // // MessageId: ERROR_DBG_CONTROL_C // // MessageText: // // Debugger got control C. // // // MessageId: ERROR_DBG_PRINTEXCEPTION_C // // MessageText: // // Debugger printed exception on control C. // // // MessageId: ERROR_DBG_RIPEXCEPTION // // MessageText: // // Debugger received RIP exception. // // // MessageId: ERROR_DBG_CONTROL_BREAK // // MessageText: // // Debugger received control break. // // // MessageId: ERROR_DBG_COMMAND_EXCEPTION // // MessageText: // // Debugger command communication exception. // // // MessageId: ERROR_OBJECT_NAME_EXISTS // // MessageText: // // {Object Exists} // An attempt was made to create an object and the object name already existed. // // // MessageId: ERROR_THREAD_WAS_SUSPENDED // // MessageText: // // {Thread Suspended} // A thread termination occurred while the thread was suspended. The thread was resumed, and termination proceeded. // // // MessageId: ERROR_IMAGE_NOT_AT_BASE // // MessageText: // // {Image Relocated} // An image file could not be mapped at the address specified in the image file. Local fixups must be performed on this image. // // // MessageId: ERROR_RXACT_STATE_CREATED // // MessageText: // // This informational level status indicates that a specified registry sub-tree transaction state did not yet exist and had to be created. // // // MessageId: ERROR_SEGMENT_NOTIFICATION // // MessageText: // // {Segment Load} // A virtual DOS machine (VDM) is loading, unloading, or moving an MS-DOS or Win16 program segment image. // An exception is raised so a debugger can load, unload or track symbols and breakpoints within these 16-bit segments. // // // MessageId: ERROR_BAD_CURRENT_DIRECTORY // // MessageText: // // {Invalid Current Directory} // The process cannot switch to the startup current directory %hs. // Select OK to set current directory to %hs, or select CANCEL to exit. // // // MessageId: ERROR_FT_READ_RECOVERY_FROM_BACKUP // // MessageText: // // {Redundant Read} // To satisfy a read request, the NT fault-tolerant file system successfully read the requested data from a redundant copy. // This was done because the file system encountered a failure on a member of the fault-tolerant volume, but was unable to reassign the failing area of the device. // // // MessageId: ERROR_FT_WRITE_RECOVERY // // MessageText: // // {Redundant Write} // To satisfy a write request, the NT fault-tolerant file system successfully wrote a redundant copy of the information. // This was done because the file system encountered a failure on a member of the fault-tolerant volume, but was not able to reassign the failing area of the device. // // // MessageId: ERROR_IMAGE_MACHINE_TYPE_MISMATCH // // MessageText: // // {Machine Type Mismatch} // The image file %hs is valid, but is for a machine type other than the current machine. Select OK to continue, or CANCEL to fail the DLL load. // // // MessageId: ERROR_RECEIVE_PARTIAL // // MessageText: // // {Partial Data Received} // The network transport returned partial data to its client. The remaining data will be sent later. // // // MessageId: ERROR_RECEIVE_EXPEDITED // // MessageText: // // {Expedited Data Received} // The network transport returned data to its client that was marked as expedited by the remote system. // // // MessageId: ERROR_RECEIVE_PARTIAL_EXPEDITED // // MessageText: // // {Partial Expedited Data Received} // The network transport returned partial data to its client and this data was marked as expedited by the remote system. The remaining data will be sent later. // // // MessageId: ERROR_EVENT_DONE // // MessageText: // // {TDI Event Done} // The TDI indication has completed successfully. // // // MessageId: ERROR_EVENT_PENDING // // MessageText: // // {TDI Event Pending} // The TDI indication has entered the pending state. // // // MessageId: ERROR_CHECKING_FILE_SYSTEM // // MessageText: // // Checking file system on %wZ // // // MessageId: ERROR_FATAL_APP_EXIT // // MessageText: // // {Fatal Application Exit} // %hs // // // MessageId: ERROR_PREDEFINED_HANDLE // // MessageText: // // The specified registry key is referenced by a predefined handle. // // // MessageId: ERROR_WAS_UNLOCKED // // MessageText: // // {Page Unlocked} // The page protection of a locked page was changed to 'No Access' and the page was unlocked from memory and from the process. // // // MessageId: ERROR_SERVICE_NOTIFICATION // // MessageText: // // %hs // // // MessageId: ERROR_WAS_LOCKED // // MessageText: // // {Page Locked} // One of the pages to lock was already locked. // // // MessageId: ERROR_LOG_HARD_ERROR // // MessageText: // // Application popup: %1 : %2 // // // MessageId: ERROR_ALREADY_WIN32 // // MessageText: // // ERROR_ALREADY_WIN32 // // // MessageId: ERROR_IMAGE_MACHINE_TYPE_MISMATCH_EXE // // MessageText: // // {Machine Type Mismatch} // The image file %hs is valid, but is for a machine type other than the current machine. // // // MessageId: ERROR_NO_YIELD_PERFORMED // // MessageText: // // A yield execution was performed and no thread was available to run. // // // MessageId: ERROR_TIMER_RESUME_IGNORED // // MessageText: // // The resumable flag to a timer API was ignored. // // // MessageId: ERROR_ARBITRATION_UNHANDLED // // MessageText: // // The arbiter has deferred arbitration of these resources to its parent // // // MessageId: ERROR_CARDBUS_NOT_SUPPORTED // // MessageText: // // The inserted CardBus device cannot be started because of a configuration error on "%hs". // // // MessageId: ERROR_MP_PROCESSOR_MISMATCH // // MessageText: // // The CPUs in this multiprocessor system are not all the same revision level. To use all processors the operating system restricts itself to the features of the least capable processor in the system. Should problems occur with this system, contact the CPU manufacturer to see if this mix of processors is supported. // // // MessageId: ERROR_HIBERNATED // // MessageText: // // The system was put into hibernation. // // // MessageId: ERROR_RESUME_HIBERNATION // // MessageText: // // The system was resumed from hibernation. // // // MessageId: ERROR_FIRMWARE_UPDATED // // MessageText: // // Windows has detected that the system firmware (BIOS) was updated [previous firmware date = %2, current firmware date %3]. // // // MessageId: ERROR_DRIVERS_LEAKING_LOCKED_PAGES // // MessageText: // // A device driver is leaking locked I/O pages causing system degradation. The system has automatically enabled tracking code in order to try and catch the culprit. // // // MessageId: ERROR_WAKE_SYSTEM // // MessageText: // // The system has awoken // // // MessageId: ERROR_WAIT_1 // // MessageText: // // ERROR_WAIT_1 // // // MessageId: ERROR_WAIT_2 // // MessageText: // // ERROR_WAIT_2 // // // MessageId: ERROR_WAIT_3 // // MessageText: // // ERROR_WAIT_3 // // // MessageId: ERROR_WAIT_63 // // MessageText: // // ERROR_WAIT_63 // // // MessageId: ERROR_ABANDONED_WAIT_0 // // MessageText: // // ERROR_ABANDONED_WAIT_0 // // // MessageId: ERROR_ABANDONED_WAIT_63 // // MessageText: // // ERROR_ABANDONED_WAIT_63 // // // MessageId: ERROR_USER_APC // // MessageText: // // ERROR_USER_APC // // // MessageId: ERROR_KERNEL_APC // // MessageText: // // ERROR_KERNEL_APC // // // MessageId: ERROR_ALERTED // // MessageText: // // ERROR_ALERTED // // // MessageId: ERROR_ELEVATION_REQUIRED // // MessageText: // // The requested operation requires elevation. // // // MessageId: ERROR_REPARSE // // MessageText: // // A reparse should be performed by the Object Manager since the name of the file resulted in a symbolic link. // // // MessageId: ERROR_OPLOCK_BREAK_IN_PROGRESS // // MessageText: // // An open/create operation completed while an oplock break is underway. // // // MessageId: ERROR_VOLUME_MOUNTED // // MessageText: // // A new volume has been mounted by a file system. // // // MessageId: ERROR_RXACT_COMMITTED // // MessageText: // // This success level status indicates that the transaction state already exists for the registry sub-tree, but that a transaction commit was previously aborted. // The commit has now been completed. // // // MessageId: ERROR_NOTIFY_CLEANUP // // MessageText: // // This indicates that a notify change request has been completed due to closing the handle which made the notify change request. // // // MessageId: ERROR_PRIMARY_TRANSPORT_CONNECT_FAILED // // MessageText: // // {Connect Failure on Primary Transport} // An attempt was made to connect to the remote server %hs on the primary transport, but the connection failed. // The computer WAS able to connect on a secondary transport. // // // MessageId: ERROR_PAGE_FAULT_TRANSITION // // MessageText: // // Page fault was a transition fault. // // // MessageId: ERROR_PAGE_FAULT_DEMAND_ZERO // // MessageText: // // Page fault was a demand zero fault. // // // MessageId: ERROR_PAGE_FAULT_COPY_ON_WRITE // // MessageText: // // Page fault was a demand zero fault. // // // MessageId: ERROR_PAGE_FAULT_GUARD_PAGE // // MessageText: // // Page fault was a demand zero fault. // // // MessageId: ERROR_PAGE_FAULT_PAGING_FILE // // MessageText: // // Page fault was satisfied by reading from a secondary storage device. // // // MessageId: ERROR_CACHE_PAGE_LOCKED // // MessageText: // // Cached page was locked during operation. // // // MessageId: ERROR_CRASH_DUMP // // MessageText: // // Crash dump exists in paging file. // // // MessageId: ERROR_BUFFER_ALL_ZEROS // // MessageText: // // Specified buffer contains all zeros. // // // MessageId: ERROR_REPARSE_OBJECT // // MessageText: // // A reparse should be performed by the Object Manager since the name of the file resulted in a symbolic link. // // // MessageId: ERROR_RESOURCE_REQUIREMENTS_CHANGED // // MessageText: // // The device has succeeded a query-stop and its resource requirements have changed. // // // MessageId: ERROR_TRANSLATION_COMPLETE // // MessageText: // // The translator has translated these resources into the global space and no further translations should be performed. // // // MessageId: ERROR_NOTHING_TO_TERMINATE // // MessageText: // // A process being terminated has no threads to terminate. // // // MessageId: ERROR_PROCESS_NOT_IN_JOB // // MessageText: // // The specified process is not part of a job. // // // MessageId: ERROR_PROCESS_IN_JOB // // MessageText: // // The specified process is part of a job. // // // MessageId: ERROR_VOLSNAP_HIBERNATE_READY // // MessageText: // // {Volume Shadow Copy Service} // The system is now ready for hibernation. // // // MessageId: ERROR_FSFILTER_OP_COMPLETED_SUCCESSFULLY // // MessageText: // // A file system or file system filter driver has successfully completed an FsFilter operation. // // // MessageId: ERROR_INTERRUPT_VECTOR_ALREADY_CONNECTED // // MessageText: // // The specified interrupt vector was already connected. // // // MessageId: ERROR_INTERRUPT_STILL_CONNECTED // // MessageText: // // The specified interrupt vector is still connected. // // // MessageId: ERROR_WAIT_FOR_OPLOCK // // MessageText: // // An operation is blocked waiting for an oplock. // // // MessageId: ERROR_DBG_EXCEPTION_HANDLED // // MessageText: // // Debugger handled exception // // // MessageId: ERROR_DBG_CONTINUE // // MessageText: // // Debugger continued // // // MessageId: ERROR_CALLBACK_POP_STACK // // MessageText: // // An exception occurred in a user mode callback and the kernel callback frame should be removed. // // // MessageId: ERROR_COMPRESSION_DISABLED // // MessageText: // // Compression is disabled for this volume. // // // MessageId: ERROR_CANTFETCHBACKWARDS // // MessageText: // // The data provider cannot fetch backwards through a result set. // // // MessageId: ERROR_CANTSCROLLBACKWARDS // // MessageText: // // The data provider cannot scroll backwards through a result set. // // // MessageId: ERROR_ROWSNOTRELEASED // // MessageText: // // The data provider requires that previously fetched data is released before asking for more data. // // // MessageId: ERROR_BAD_ACCESSOR_FLAGS // // MessageText: // // The data provider was not able to intrepret the flags set for a column binding in an accessor. // // // MessageId: ERROR_ERRORS_ENCOUNTERED // // MessageText: // // One or more errors occurred while processing the request. // // // MessageId: ERROR_NOT_CAPABLE // // MessageText: // // The implementation is not capable of performing the request. // // // MessageId: ERROR_REQUEST_OUT_OF_SEQUENCE // // MessageText: // // The client of a component requested an operation which is not valid given the state of the component instance. // // // MessageId: ERROR_VERSION_PARSE_ERROR // // MessageText: // // A version number could not be parsed. // // // MessageId: ERROR_BADSTARTPOSITION // // MessageText: // // The iterator's start position is invalid. // // // MessageId: ERROR_MEMORY_HARDWARE // // MessageText: // // The hardware has reported an uncorrectable memory error. // // // MessageId: ERROR_DISK_REPAIR_DISABLED // // MessageText: // // The attempted operation required self healing to be enabled. // // // MessageId: ERROR_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE // // MessageText: // // The Desktop heap encountered an error while allocating session memory. // There is more information in the system event log. // // // MessageId: ERROR_SYSTEM_POWERSTATE_TRANSITION // // MessageText: // // The system powerstate is transitioning from %2 to %3. // // // MessageId: ERROR_SYSTEM_POWERSTATE_COMPLEX_TRANSITION // // MessageText: // // The system powerstate is transitioning from %2 to %3 but could enter %4. // // // MessageId: ERROR_MCA_EXCEPTION // // MessageText: // // A thread is getting dispatched with MCA EXCEPTION because of MCA. // // // MessageId: ERROR_ACCESS_AUDIT_BY_POLICY // // MessageText: // // Access to %1 is monitored by policy rule %2. // // // MessageId: ERROR_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY // // MessageText: // // Access to %1 has been restricted by your Administrator by policy rule %2. // // // MessageId: ERROR_ABANDON_HIBERFILE // // MessageText: // // A valid hibernation file has been invalidated and should be abandoned. // // // MessageId: ERROR_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED // // MessageText: // // {Delayed Write Failed} // Windows was unable to save all the data for the file %hs; the data has been lost. // This error may be caused by network connectivity issues. Please try to save this file elsewhere. // // // MessageId: ERROR_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR // // MessageText: // // {Delayed Write Failed} // Windows was unable to save all the data for the file %hs; the data has been lost. // This error was returned by the server on which the file exists. Please try to save this file elsewhere. // // // MessageId: ERROR_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR // // MessageText: // // {Delayed Write Failed} // Windows was unable to save all the data for the file %hs; the data has been lost. // This error may be caused if the device has been removed or the media is write-protected. // // // MessageId: ERROR_BAD_MCFG_TABLE // // MessageText: // // The resources required for this device conflict with the MCFG table. // // // MessageId: ERROR_EA_ACCESS_DENIED // // MessageText: // // Access to the extended attribute was denied. // // // MessageId: ERROR_OPERATION_ABORTED // // MessageText: // // The I/O operation has been aborted because of either a thread exit or an application request. // // // MessageId: ERROR_IO_INCOMPLETE // // MessageText: // // Overlapped I/O event is not in a signaled state. // // // MessageId: ERROR_IO_PENDING // // MessageText: // // Overlapped I/O operation is in progress. // // // MessageId: ERROR_NOACCESS // // MessageText: // // Invalid access to memory location. // // // MessageId: ERROR_SWAPERROR // // MessageText: // // Error performing inpage operation. // // // MessageId: ERROR_STACK_OVERFLOW // // MessageText: // // Recursion too deep; the stack overflowed. // // // MessageId: ERROR_INVALID_MESSAGE // // MessageText: // // The window cannot act on the sent message. // // // MessageId: ERROR_CAN_NOT_COMPLETE // // MessageText: // // Cannot complete this function. // // // MessageId: ERROR_INVALID_FLAGS // // MessageText: // // Invalid flags. // // // MessageId: ERROR_UNRECOGNIZED_VOLUME // // MessageText: // // The volume does not contain a recognized file system. // Please make sure that all required file system drivers are loaded and that the volume is not corrupted. // // // MessageId: ERROR_FILE_INVALID // // MessageText: // // The volume for a file has been externally altered so that the opened file is no longer valid. // // // MessageId: ERROR_FULLSCREEN_MODE // // MessageText: // // The requested operation cannot be performed in full-screen mode. // // // MessageId: ERROR_NO_TOKEN // // MessageText: // // An attempt was made to reference a token that does not exist. // // // MessageId: ERROR_BADDB // // MessageText: // // The configuration registry database is corrupt. // // // MessageId: ERROR_BADKEY // // MessageText: // // The configuration registry key is invalid. // // // MessageId: ERROR_CANTOPEN // // MessageText: // // The configuration registry key could not be opened. // // // MessageId: ERROR_CANTREAD // // MessageText: // // The configuration registry key could not be read. // // // MessageId: ERROR_CANTWRITE // // MessageText: // // The configuration registry key could not be written. // // // MessageId: ERROR_REGISTRY_RECOVERED // // MessageText: // // One of the files in the registry database had to be recovered by use of a log or alternate copy. The recovery was successful. // // // MessageId: ERROR_REGISTRY_CORRUPT // // MessageText: // // The registry is corrupted. The structure of one of the files containing registry data is corrupted, or the system's memory image of the file is corrupted, or the file could not be recovered because the alternate copy or log was absent or corrupted. // // // MessageId: ERROR_REGISTRY_IO_FAILED // // MessageText: // // An I/O operation initiated by the registry failed unrecoverably. The registry could not read in, or write out, or flush, one of the files that contain the system's image of the registry. // // // MessageId: ERROR_NOT_REGISTRY_FILE // // MessageText: // // The system has attempted to load or restore a file into the registry, but the specified file is not in a registry file format. // // // MessageId: ERROR_KEY_DELETED // // MessageText: // // Illegal operation attempted on a registry key that has been marked for deletion. // // // MessageId: ERROR_NO_LOG_SPACE // // MessageText: // // System could not allocate the required space in a registry log. // // // MessageId: ERROR_KEY_HAS_CHILDREN // // MessageText: // // Cannot create a symbolic link in a registry key that already has subkeys or values. // // // MessageId: ERROR_CHILD_MUST_BE_VOLATILE // // MessageText: // // Cannot create a stable subkey under a volatile parent key. // // // MessageId: ERROR_NOTIFY_ENUM_DIR // // MessageText: // // A notify change request is being completed and the information is not being returned in the caller's buffer. The caller now needs to enumerate the files to find the changes. // // // MessageId: ERROR_DEPENDENT_SERVICES_RUNNING // // MessageText: // // A stop control has been sent to a service that other running services are dependent on. // // // MessageId: ERROR_INVALID_SERVICE_CONTROL // // MessageText: // // The requested control is not valid for this service. // // // MessageId: ERROR_SERVICE_REQUEST_TIMEOUT // // MessageText: // // The service did not respond to the start or control request in a timely fashion. // // // MessageId: ERROR_SERVICE_NO_THREAD // // MessageText: // // A thread could not be created for the service. // // // MessageId: ERROR_SERVICE_DATABASE_LOCKED // // MessageText: // // The service database is locked. // // // MessageId: ERROR_SERVICE_ALREADY_RUNNING // // MessageText: // // An instance of the service is already running. // // // MessageId: ERROR_INVALID_SERVICE_ACCOUNT // // MessageText: // // The account name is invalid or does not exist, or the password is invalid for the account name specified. // // // MessageId: ERROR_SERVICE_DISABLED // // MessageText: // // The service cannot be started, either because it is disabled or because it has no enabled devices associated with it. // // // MessageId: ERROR_CIRCULAR_DEPENDENCY // // MessageText: // // Circular service dependency was specified. // // // MessageId: ERROR_SERVICE_DOES_NOT_EXIST // // MessageText: // // The specified service does not exist as an installed service. // // // MessageId: ERROR_SERVICE_CANNOT_ACCEPT_CTRL // // MessageText: // // The service cannot accept control messages at this time. // // // MessageId: ERROR_SERVICE_NOT_ACTIVE // // MessageText: // // The service has not been started. // // // MessageId: ERROR_FAILED_SERVICE_CONTROLLER_CONNECT // // MessageText: // // The service process could not connect to the service controller. // // // MessageId: ERROR_EXCEPTION_IN_SERVICE // // MessageText: // // An exception occurred in the service when handling the control request. // // // MessageId: ERROR_DATABASE_DOES_NOT_EXIST // // MessageText: // // The database specified does not exist. // // // MessageId: ERROR_SERVICE_SPECIFIC_ERROR // // MessageText: // // The service has returned a service-specific error code. // // // MessageId: ERROR_PROCESS_ABORTED // // MessageText: // // The process terminated unexpectedly. // // // MessageId: ERROR_SERVICE_DEPENDENCY_FAIL // // MessageText: // // The dependency service or group failed to start. // // // MessageId: ERROR_SERVICE_LOGON_FAILED // // MessageText: // // The service did not start due to a logon failure. // // // MessageId: ERROR_SERVICE_START_HANG // // MessageText: // // After starting, the service hung in a start-pending state. // // // MessageId: ERROR_INVALID_SERVICE_LOCK // // MessageText: // // The specified service database lock is invalid. // // // MessageId: ERROR_SERVICE_MARKED_FOR_DELETE // // MessageText: // // The specified service has been marked for deletion. // // // MessageId: ERROR_SERVICE_EXISTS // // MessageText: // // The specified service already exists. // // // MessageId: ERROR_ALREADY_RUNNING_LKG // // MessageText: // // The system is currently running with the last-known-good configuration. // // // MessageId: ERROR_SERVICE_DEPENDENCY_DELETED // // MessageText: // // The dependency service does not exist or has been marked for deletion. // // // MessageId: ERROR_BOOT_ALREADY_ACCEPTED // // MessageText: // // The current boot has already been accepted for use as the last-known-good control set. // // // MessageId: ERROR_SERVICE_NEVER_STARTED // // MessageText: // // No attempts to start the service have been made since the last boot. // // // MessageId: ERROR_DUPLICATE_SERVICE_NAME // // MessageText: // // The name is already in use as either a service name or a service display name. // // // MessageId: ERROR_DIFFERENT_SERVICE_ACCOUNT // // MessageText: // // The account specified for this service is different from the account specified for other services running in the same process. // // // MessageId: ERROR_CANNOT_DETECT_DRIVER_FAILURE // // MessageText: // // Failure actions can only be set for Win32 services, not for drivers. // // // MessageId: ERROR_CANNOT_DETECT_PROCESS_ABORT // // MessageText: // // This service runs in the same process as the service control manager. // Therefore, the service control manager cannot take action if this service's process terminates unexpectedly. // // // MessageId: ERROR_NO_RECOVERY_PROGRAM // // MessageText: // // No recovery program has been configured for this service. // // // MessageId: ERROR_SERVICE_NOT_IN_EXE // // MessageText: // // The executable program that this service is configured to run in does not implement the service. // // // MessageId: ERROR_NOT_SAFEBOOT_SERVICE // // MessageText: // // This service cannot be started in Safe Mode // // // MessageId: ERROR_END_OF_MEDIA // // MessageText: // // The physical end of the tape has been reached. // // // MessageId: ERROR_FILEMARK_DETECTED // // MessageText: // // A tape access reached a filemark. // // // MessageId: ERROR_BEGINNING_OF_MEDIA // // MessageText: // // The beginning of the tape or a partition was encountered. // // // MessageId: ERROR_SETMARK_DETECTED // // MessageText: // // A tape access reached the end of a set of files. // // // MessageId: ERROR_NO_DATA_DETECTED // // MessageText: // // No more data is on the tape. // // // MessageId: ERROR_PARTITION_FAILURE // // MessageText: // // Tape could not be partitioned. // // // MessageId: ERROR_INVALID_BLOCK_LENGTH // // MessageText: // // When accessing a new tape of a multivolume partition, the current block size is incorrect. // // // MessageId: ERROR_DEVICE_NOT_PARTITIONED // // MessageText: // // Tape partition information could not be found when loading a tape. // // // MessageId: ERROR_UNABLE_TO_LOCK_MEDIA // // MessageText: // // Unable to lock the media eject mechanism. // // // MessageId: ERROR_UNABLE_TO_UNLOAD_MEDIA // // MessageText: // // Unable to unload the media. // // // MessageId: ERROR_MEDIA_CHANGED // // MessageText: // // The media in the drive may have changed. // // // MessageId: ERROR_BUS_RESET // // MessageText: // // The I/O bus was reset. // // // MessageId: ERROR_NO_MEDIA_IN_DRIVE // // MessageText: // // No media in drive. // // // MessageId: ERROR_NO_UNICODE_TRANSLATION // // MessageText: // // No mapping for the Unicode character exists in the target multi-byte code page. // // // MessageId: ERROR_DLL_INIT_FAILED // // MessageText: // // A dynamic link library (DLL) initialization routine failed. // // // MessageId: ERROR_SHUTDOWN_IN_PROGRESS // // MessageText: // // A system shutdown is in progress. // // // MessageId: ERROR_NO_SHUTDOWN_IN_PROGRESS // // MessageText: // // Unable to abort the system shutdown because no shutdown was in progress. // // // MessageId: ERROR_IO_DEVICE // // MessageText: // // The request could not be performed because of an I/O device error. // // // MessageId: ERROR_SERIAL_NO_DEVICE // // MessageText: // // No serial device was successfully initialized. The serial driver will unload. // // // MessageId: ERROR_IRQ_BUSY // // MessageText: // // Unable to open a device that was sharing an interrupt request (IRQ) with other devices. At least one other device that uses that IRQ was already opened. // // // MessageId: ERROR_MORE_WRITES // // MessageText: // // A serial I/O operation was completed by another write to the serial port. // (The IOCTL_SERIAL_XOFF_COUNTER reached zero.) // // // MessageId: ERROR_COUNTER_TIMEOUT // // MessageText: // // A serial I/O operation completed because the timeout period expired. // (The IOCTL_SERIAL_XOFF_COUNTER did not reach zero.) // // // MessageId: ERROR_FLOPPY_ID_MARK_NOT_FOUND // // MessageText: // // No ID address mark was found on the floppy disk. // // // MessageId: ERROR_FLOPPY_WRONG_CYLINDER // // MessageText: // // Mismatch between the floppy disk sector ID field and the floppy disk controller track address. // // // MessageId: ERROR_FLOPPY_UNKNOWN_ERROR // // MessageText: // // The floppy disk controller reported an error that is not recognized by the floppy disk driver. // // // MessageId: ERROR_FLOPPY_BAD_REGISTERS // // MessageText: // // The floppy disk controller returned inconsistent results in its registers. // // // MessageId: ERROR_DISK_RECALIBRATE_FAILED // // MessageText: // // While accessing the hard disk, a recalibrate operation failed, even after retries. // // // MessageId: ERROR_DISK_OPERATION_FAILED // // MessageText: // // While accessing the hard disk, a disk operation failed even after retries. // // // MessageId: ERROR_DISK_RESET_FAILED // // MessageText: // // While accessing the hard disk, a disk controller reset was needed, but even that failed. // // // MessageId: ERROR_EOM_OVERFLOW // // MessageText: // // Physical end of tape encountered. // // // MessageId: ERROR_NOT_ENOUGH_SERVER_MEMORY // // MessageText: // // Not enough server storage is available to process this command. // // // MessageId: ERROR_POSSIBLE_DEADLOCK // // MessageText: // // A potential deadlock condition has been detected. // // // MessageId: ERROR_MAPPED_ALIGNMENT // // MessageText: // // The base address or the file offset specified does not have the proper alignment. // // // MessageId: ERROR_SET_POWER_STATE_VETOED // // MessageText: // // An attempt to change the system power state was vetoed by another application or driver. // // // MessageId: ERROR_SET_POWER_STATE_FAILED // // MessageText: // // The system BIOS failed an attempt to change the system power state. // // // MessageId: ERROR_TOO_MANY_LINKS // // MessageText: // // An attempt was made to create more links on a file than the file system supports. // // // MessageId: ERROR_OLD_WIN_VERSION // // MessageText: // // The specified program requires a newer version of Windows. // // // MessageId: ERROR_APP_WRONG_OS // // MessageText: // // The specified program is not a Windows or MS-DOS program. // // // MessageId: ERROR_SINGLE_INSTANCE_APP // // MessageText: // // Cannot start more than one instance of the specified program. // // // MessageId: ERROR_RMODE_APP // // MessageText: // // The specified program was written for an earlier version of Windows. // // // MessageId: ERROR_INVALID_DLL // // MessageText: // // One of the library files needed to run this application is damaged. // // // MessageId: ERROR_NO_ASSOCIATION // // MessageText: // // No application is associated with the specified file for this operation. // // // MessageId: ERROR_DDE_FAIL // // MessageText: // // An error occurred in sending the command to the application. // // // MessageId: ERROR_DLL_NOT_FOUND // // MessageText: // // One of the library files needed to run this application cannot be found. // // // MessageId: ERROR_NO_MORE_USER_HANDLES // // MessageText: // // The current process has used all of its system allowance of handles for Window Manager objects. // // // MessageId: ERROR_MESSAGE_SYNC_ONLY // // MessageText: // // The message can be used only with synchronous operations. // // // MessageId: ERROR_SOURCE_ELEMENT_EMPTY // // MessageText: // // The indicated source element has no media. // // // MessageId: ERROR_DESTINATION_ELEMENT_FULL // // MessageText: // // The indicated destination element already contains media. // // // MessageId: ERROR_ILLEGAL_ELEMENT_ADDRESS // // MessageText: // // The indicated element does not exist. // // // MessageId: ERROR_MAGAZINE_NOT_PRESENT // // MessageText: // // The indicated element is part of a magazine that is not present. // // // MessageId: ERROR_DEVICE_REINITIALIZATION_NEEDED // // MessageText: // // The indicated device requires reinitialization due to hardware errors. // // // MessageId: ERROR_DEVICE_REQUIRES_CLEANING // // MessageText: // // The device has indicated that cleaning is required before further operations are attempted. // // // MessageId: ERROR_DEVICE_DOOR_OPEN // // MessageText: // // The device has indicated that its door is open. // // // MessageId: ERROR_DEVICE_NOT_CONNECTED // // MessageText: // // The device is not connected. // // // MessageId: ERROR_NOT_FOUND // // MessageText: // // Element not found. // // // MessageId: ERROR_NO_MATCH // // MessageText: // // There was no match for the specified key in the index. // // // MessageId: ERROR_SET_NOT_FOUND // // MessageText: // // The property set specified does not exist on the object. // // // MessageId: ERROR_POINT_NOT_FOUND // // MessageText: // // The point passed to GetMouseMovePoints is not in the buffer. // // // MessageId: ERROR_NO_TRACKING_SERVICE // // MessageText: // // The tracking (workstation) service is not running. // // // MessageId: ERROR_NO_VOLUME_ID // // MessageText: // // The Volume ID could not be found. // // // MessageId: ERROR_UNABLE_TO_REMOVE_REPLACED // // MessageText: // // Unable to remove the file to be replaced. // // // MessageId: ERROR_UNABLE_TO_MOVE_REPLACEMENT // // MessageText: // // Unable to move the replacement file to the file to be replaced. The file to be replaced has retained its original name. // // // MessageId: ERROR_UNABLE_TO_MOVE_REPLACEMENT_2 // // MessageText: // // Unable to move the replacement file to the file to be replaced. The file to be replaced has been renamed using the backup name. // // // MessageId: ERROR_JOURNAL_DELETE_IN_PROGRESS // // MessageText: // // The volume change journal is being deleted. // // // MessageId: ERROR_JOURNAL_NOT_ACTIVE // // MessageText: // // The volume change journal is not active. // // // MessageId: ERROR_POTENTIAL_FILE_FOUND // // MessageText: // // A file was found, but it may not be the correct file. // // // MessageId: ERROR_JOURNAL_ENTRY_DELETED // // MessageText: // // The journal entry has been deleted from the journal. // // // MessageId: ERROR_SHUTDOWN_IS_SCHEDULED // // MessageText: // // A system shutdown has already been scheduled. // // // MessageId: ERROR_SHUTDOWN_USERS_LOGGED_ON // // MessageText: // // The system shutdown cannot be initiated because there are other users logged on to the computer. // // // MessageId: ERROR_BAD_DEVICE // // MessageText: // // The specified device name is invalid. // // // MessageId: ERROR_CONNECTION_UNAVAIL // // MessageText: // // The device is not currently connected but it is a remembered connection. // // // MessageId: ERROR_DEVICE_ALREADY_REMEMBERED // // MessageText: // // The local device name has a remembered connection to another network resource. // // // MessageId: ERROR_NO_NET_OR_BAD_PATH // // MessageText: // // The network path was either typed incorrectly, does not exist, or the network provider is not currently available. Please try retyping the path or contact your network administrator. // // // MessageId: ERROR_BAD_PROVIDER // // MessageText: // // The specified network provider name is invalid. // // // MessageId: ERROR_CANNOT_OPEN_PROFILE // // MessageText: // // Unable to open the network connection profile. // // // MessageId: ERROR_BAD_PROFILE // // MessageText: // // The network connection profile is corrupted. // // // MessageId: ERROR_NOT_CONTAINER // // MessageText: // // Cannot enumerate a noncontainer. // // // MessageId: ERROR_EXTENDED_ERROR // // MessageText: // // An extended error has occurred. // // // MessageId: ERROR_INVALID_GROUPNAME // // MessageText: // // The format of the specified group name is invalid. // // // MessageId: ERROR_INVALID_COMPUTERNAME // // MessageText: // // The format of the specified computer name is invalid. // // // MessageId: ERROR_INVALID_EVENTNAME // // MessageText: // // The format of the specified event name is invalid. // // // MessageId: ERROR_INVALID_DOMAINNAME // // MessageText: // // The format of the specified domain name is invalid. // // // MessageId: ERROR_INVALID_SERVICENAME // // MessageText: // // The format of the specified service name is invalid. // // // MessageId: ERROR_INVALID_NETNAME // // MessageText: // // The format of the specified network name is invalid. // // // MessageId: ERROR_INVALID_SHARENAME // // MessageText: // // The format of the specified share name is invalid. // // // MessageId: ERROR_INVALID_PASSWORDNAME // // MessageText: // // The format of the specified password is invalid. // // // MessageId: ERROR_INVALID_MESSAGENAME // // MessageText: // // The format of the specified message name is invalid. // // // MessageId: ERROR_INVALID_MESSAGEDEST // // MessageText: // // The format of the specified message destination is invalid. // // // MessageId: ERROR_SESSION_CREDENTIAL_CONFLICT // // MessageText: // // Multiple connections to a server or shared resource by the same user, using more than one user name, are not allowed. Disconnect all previous connections to the server or shared resource and try again. // // // MessageId: ERROR_REMOTE_SESSION_LIMIT_EXCEEDED // // MessageText: // // An attempt was made to establish a session to a network server, but there are already too many sessions established to that server. // // // MessageId: ERROR_DUP_DOMAINNAME // // MessageText: // // The workgroup or domain name is already in use by another computer on the network. // // // MessageId: ERROR_NO_NETWORK // // MessageText: // // The network is not present or not started. // // // MessageId: ERROR_CANCELLED // // MessageText: // // The operation was canceled by the user. // // // MessageId: ERROR_USER_MAPPED_FILE // // MessageText: // // The requested operation cannot be performed on a file with a user-mapped section open. // // // MessageId: ERROR_CONNECTION_REFUSED // // MessageText: // // The remote computer refused the network connection. // // // MessageId: ERROR_GRACEFUL_DISCONNECT // // MessageText: // // The network connection was gracefully closed. // // // MessageId: ERROR_ADDRESS_ALREADY_ASSOCIATED // // MessageText: // // The network transport endpoint already has an address associated with it. // // // MessageId: ERROR_ADDRESS_NOT_ASSOCIATED // // MessageText: // // An address has not yet been associated with the network endpoint. // // // MessageId: ERROR_CONNECTION_INVALID // // MessageText: // // An operation was attempted on a nonexistent network connection. // // // MessageId: ERROR_CONNECTION_ACTIVE // // MessageText: // // An invalid operation was attempted on an active network connection. // // // MessageId: ERROR_NETWORK_UNREACHABLE // // MessageText: // // The network location cannot be reached. For information about network troubleshooting, see Windows Help. // // // MessageId: ERROR_HOST_UNREACHABLE // // MessageText: // // The network location cannot be reached. For information about network troubleshooting, see Windows Help. // // // MessageId: ERROR_PROTOCOL_UNREACHABLE // // MessageText: // // The network location cannot be reached. For information about network troubleshooting, see Windows Help. // // // MessageId: ERROR_PORT_UNREACHABLE // // MessageText: // // No service is operating at the destination network endpoint on the remote system. // // // MessageId: ERROR_REQUEST_ABORTED // // MessageText: // // The request was aborted. // // // MessageId: ERROR_CONNECTION_ABORTED // // MessageText: // // The network connection was aborted by the local system. // // // MessageId: ERROR_RETRY // // MessageText: // // The operation could not be completed. A retry should be performed. // // // MessageId: ERROR_CONNECTION_COUNT_LIMIT // // MessageText: // // A connection to the server could not be made because the limit on the number of concurrent connections for this account has been reached. // // // MessageId: ERROR_LOGIN_TIME_RESTRICTION // // MessageText: // // Attempting to log in during an unauthorized time of day for this account. // // // MessageId: ERROR_LOGIN_WKSTA_RESTRICTION // // MessageText: // // The account is not authorized to log in from this station. // // // MessageId: ERROR_INCORRECT_ADDRESS // // MessageText: // // The network address could not be used for the operation requested. // // // MessageId: ERROR_ALREADY_REGISTERED // // MessageText: // // The service is already registered. // // // MessageId: ERROR_SERVICE_NOT_FOUND // // MessageText: // // The specified service does not exist. // // // MessageId: ERROR_NOT_AUTHENTICATED // // MessageText: // // The operation being requested was not performed because the user has not been authenticated. // // // MessageId: ERROR_NOT_LOGGED_ON // // MessageText: // // The operation being requested was not performed because the user has not logged on to the network. // The specified service does not exist. // // // MessageId: ERROR_CONTINUE // // MessageText: // // Continue with work in progress. // // // MessageId: ERROR_ALREADY_INITIALIZED // // MessageText: // // An attempt was made to perform an initialization operation when initialization has already been completed. // // // MessageId: ERROR_NO_MORE_DEVICES // // MessageText: // // No more local devices. // // // MessageId: ERROR_NO_SUCH_SITE // // MessageText: // // The specified site does not exist. // // // MessageId: ERROR_DOMAIN_CONTROLLER_EXISTS // // MessageText: // // A domain controller with the specified name already exists. // // // MessageId: ERROR_ONLY_IF_CONNECTED // // MessageText: // // This operation is supported only when you are connected to the server. // // // MessageId: ERROR_OVERRIDE_NOCHANGES // // MessageText: // // The group policy framework should call the extension even if there are no changes. // // // MessageId: ERROR_BAD_USER_PROFILE // // MessageText: // // The specified user does not have a valid profile. // // // MessageId: ERROR_NOT_SUPPORTED_ON_SBS // // MessageText: // // This operation is not supported on a computer running Windows Server 2003 for Small Business Server // // // MessageId: ERROR_SERVER_SHUTDOWN_IN_PROGRESS // // MessageText: // // The server machine is shutting down. // // // MessageId: ERROR_HOST_DOWN // // MessageText: // // The remote system is not available. For information about network troubleshooting, see Windows Help. // // // MessageId: ERROR_NON_ACCOUNT_SID // // MessageText: // // The security identifier provided is not from an account domain. // // // MessageId: ERROR_NON_DOMAIN_SID // // MessageText: // // The security identifier provided does not have a domain component. // // // MessageId: ERROR_APPHELP_BLOCK // // MessageText: // // AppHelp dialog canceled thus preventing the application from starting. // // // MessageId: ERROR_ACCESS_DISABLED_BY_POLICY // // MessageText: // // This program is blocked by group policy. For more information, contact your system administrator. // // // MessageId: ERROR_REG_NAT_CONSUMPTION // // MessageText: // // A program attempt to use an invalid register value. Normally caused by an uninitialized register. This error is Itanium specific. // // // MessageId: ERROR_CSCSHARE_OFFLINE // // MessageText: // // The share is currently offline or does not exist. // // // MessageId: ERROR_PKINIT_FAILURE // // MessageText: // // The kerberos protocol encountered an error while validating the KDC certificate during smartcard logon. There is more information in the system event log. // // // MessageId: ERROR_SMARTCARD_SUBSYSTEM_FAILURE // // MessageText: // // The kerberos protocol encountered an error while attempting to utilize the smartcard subsystem. // // // MessageId: ERROR_DOWNGRADE_DETECTED // // MessageText: // // The system detected a possible attempt to compromise security. Please ensure that you can contact the server that authenticated you. // // // Do not use ID's 1266 - 1270 as the symbolicNames have been moved to SEC_E_* // // // MessageId: ERROR_MACHINE_LOCKED // // MessageText: // // The machine is locked and cannot be shut down without the force option. // // // MessageId: ERROR_CALLBACK_SUPPLIED_INVALID_DATA // // MessageText: // // An application-defined callback gave invalid data when called. // // // MessageId: ERROR_SYNC_FOREGROUND_REFRESH_REQUIRED // // MessageText: // // The group policy framework should call the extension in the synchronous foreground policy refresh. // // // MessageId: ERROR_DRIVER_BLOCKED // // MessageText: // // This driver has been blocked from loading // // // MessageId: ERROR_INVALID_IMPORT_OF_NON_DLL // // MessageText: // // A dynamic link library (DLL) referenced a module that was neither a DLL nor the process's executable image. // // // MessageId: ERROR_ACCESS_DISABLED_WEBBLADE // // MessageText: // // Windows cannot open this program since it has been disabled. // // // MessageId: ERROR_ACCESS_DISABLED_WEBBLADE_TAMPER // // MessageText: // // Windows cannot open this program because the license enforcement system has been tampered with or become corrupted. // // // MessageId: ERROR_RECOVERY_FAILURE // // MessageText: // // A transaction recover failed. // // // MessageId: ERROR_ALREADY_FIBER // // MessageText: // // The current thread has already been converted to a fiber. // // // MessageId: ERROR_ALREADY_THREAD // // MessageText: // // The current thread has already been converted from a fiber. // // // MessageId: ERROR_STACK_BUFFER_OVERRUN // // MessageText: // // The system detected an overrun of a stack-based buffer in this application. This overrun could potentially allow a malicious user to gain control of this application. // // // MessageId: ERROR_PARAMETER_QUOTA_EXCEEDED // // MessageText: // // Data present in one of the parameters is more than the function can operate on. // // // MessageId: ERROR_DEBUGGER_INACTIVE // // MessageText: // // An attempt to do an operation on a debug object failed because the object is in the process of being deleted. // // // MessageId: ERROR_DELAY_LOAD_FAILED // // MessageText: // // An attempt to delay-load a .dll or get a function address in a delay-loaded .dll failed. // // // MessageId: ERROR_VDM_DISALLOWED // // MessageText: // // %1 is a 16-bit application. You do not have permissions to execute 16-bit applications. Check your permissions with your system administrator. // // // MessageId: ERROR_UNIDENTIFIED_ERROR // // MessageText: // // Insufficient information exists to identify the cause of failure. // // // MessageId: ERROR_INVALID_CRUNTIME_PARAMETER // // MessageText: // // The parameter passed to a C runtime function is incorrect. // // // MessageId: ERROR_BEYOND_VDL // // MessageText: // // The operation occurred beyond the valid data length of the file. // // // MessageId: ERROR_INCOMPATIBLE_SERVICE_SID_TYPE // // MessageText: // // The service start failed since one or more services in the same process have an incompatible service SID type setting. A service with restricted service SID type can only coexist in the same process with other services with a restricted SID type. If the service SID type for this service was just configured, the hosting process must be restarted in order to start this service. // // // MessageId: ERROR_DRIVER_PROCESS_TERMINATED // // MessageText: // // The process hosting the driver for this device has been terminated. // // // MessageId: ERROR_IMPLEMENTATION_LIMIT // // MessageText: // // An operation attempted to exceed an implementation-defined limit. // // // MessageId: ERROR_PROCESS_IS_PROTECTED // // MessageText: // // Either the target process, or the target thread's containing process, is a protected process. // // // MessageId: ERROR_SERVICE_NOTIFY_CLIENT_LAGGING // // MessageText: // // The service notification client is lagging too far behind the current state of services in the machine. // // // MessageId: ERROR_DISK_QUOTA_EXCEEDED // // MessageText: // // The requested file operation failed because the storage quota was exceeded. // To free up disk space, move files to a different location or delete unnecessary files. For more information, contact your system administrator. // // // MessageId: ERROR_CONTENT_BLOCKED // // MessageText: // // The requested file operation failed because the storage policy blocks that type of file. For more information, contact your system administrator. // // // MessageId: ERROR_INCOMPATIBLE_SERVICE_PRIVILEGE // // MessageText: // // A privilege that the service requires to function properly does not exist in the service account configuration. // You may use the Services Microsoft Management Console (MMC) snap-in (services.msc) and the Local Security Settings MMC snap-in (secpol.msc) to view the service configuration and the account configuration. // /////////////////////////////////////////////////// // // // SECURITY Error codes // // // // 1299 to 1399 // /////////////////////////////////////////////////// // // MessageId: ERROR_INVALID_LABEL // // MessageText: // // Indicates a particular Security ID may not be assigned as the label of an object. // // // MessageId: ERROR_NOT_ALL_ASSIGNED // // MessageText: // // Not all privileges or groups referenced are assigned to the caller. // // // MessageId: ERROR_SOME_NOT_MAPPED // // MessageText: // // Some mapping between account names and security IDs was not done. // // // MessageId: ERROR_NO_QUOTAS_FOR_ACCOUNT // // MessageText: // // No system quota limits are specifically set for this account. // // // MessageId: ERROR_LOCAL_USER_SESSION_KEY // // MessageText: // // No encryption key is available. A well-known encryption key was returned. // // // MessageId: ERROR_NULL_LM_PASSWORD // // MessageText: // // The password is too complex to be converted to a LAN Manager password. The LAN Manager password returned is a NULL string. // // // MessageId: ERROR_UNKNOWN_REVISION // // MessageText: // // The revision level is unknown. // // // MessageId: ERROR_REVISION_MISMATCH // // MessageText: // // Indicates two revision levels are incompatible. // // // MessageId: ERROR_INVALID_OWNER // // MessageText: // // This security ID may not be assigned as the owner of this object. // // // MessageId: ERROR_INVALID_PRIMARY_GROUP // // MessageText: // // This security ID may not be assigned as the primary group of an object. // // // MessageId: ERROR_NO_IMPERSONATION_TOKEN // // MessageText: // // An attempt has been made to operate on an impersonation token by a thread that is not currently impersonating a client. // // // MessageId: ERROR_CANT_DISABLE_MANDATORY // // MessageText: // // The group may not be disabled. // // // MessageId: ERROR_NO_LOGON_SERVERS // // MessageText: // // There are currently no logon servers available to service the logon request. // // // MessageId: ERROR_NO_SUCH_LOGON_SESSION // // MessageText: // // A specified logon session does not exist. It may already have been terminated. // // // MessageId: ERROR_NO_SUCH_PRIVILEGE // // MessageText: // // A specified privilege does not exist. // // // MessageId: ERROR_PRIVILEGE_NOT_HELD // // MessageText: // // A required privilege is not held by the client. // // // MessageId: ERROR_INVALID_ACCOUNT_NAME // // MessageText: // // The name provided is not a properly formed account name. // // // MessageId: ERROR_USER_EXISTS // // MessageText: // // The specified account already exists. // // // MessageId: ERROR_NO_SUCH_USER // // MessageText: // // The specified account does not exist. // // // MessageId: ERROR_GROUP_EXISTS // // MessageText: // // The specified group already exists. // // // MessageId: ERROR_NO_SUCH_GROUP // // MessageText: // // The specified group does not exist. // // // MessageId: ERROR_MEMBER_IN_GROUP // // MessageText: // // Either the specified user account is already a member of the specified group, or the specified group cannot be deleted because it contains a member. // // // MessageId: ERROR_MEMBER_NOT_IN_GROUP // // MessageText: // // The specified user account is not a member of the specified group account. // // // MessageId: ERROR_LAST_ADMIN // // MessageText: // // The last remaining administration account cannot be disabled or deleted. // // // MessageId: ERROR_WRONG_PASSWORD // // MessageText: // // Unable to update the password. The value provided as the current password is incorrect. // // // MessageId: ERROR_ILL_FORMED_PASSWORD // // MessageText: // // Unable to update the password. The value provided for the new password contains values that are not allowed in passwords. // // // MessageId: ERROR_PASSWORD_RESTRICTION // // MessageText: // // Unable to update the password. The value provided for the new password does not meet the length, complexity, or history requirements of the domain. // // // MessageId: ERROR_LOGON_FAILURE // // MessageText: // // Logon failure: unknown user name or bad password. // // // MessageId: ERROR_ACCOUNT_RESTRICTION // // MessageText: // // Logon failure: user account restriction. Possible reasons are blank passwords not allowed, logon hour restrictions, or a policy restriction has been enforced. // // // MessageId: ERROR_INVALID_LOGON_HOURS // // MessageText: // // Logon failure: account logon time restriction violation. // // // MessageId: ERROR_INVALID_WORKSTATION // // MessageText: // // Logon failure: user not allowed to log on to this computer. // // // MessageId: ERROR_PASSWORD_EXPIRED // // MessageText: // // Logon failure: the specified account password has expired. // // // MessageId: ERROR_ACCOUNT_DISABLED // // MessageText: // // Logon failure: account currently disabled. // // // MessageId: ERROR_NONE_MAPPED // // MessageText: // // No mapping between account names and security IDs was done. // // // MessageId: ERROR_TOO_MANY_LUIDS_REQUESTED // // MessageText: // // Too many local user identifiers (LUIDs) were requested at one time. // // // MessageId: ERROR_LUIDS_EXHAUSTED // // MessageText: // // No more local user identifiers (LUIDs) are available. // // // MessageId: ERROR_INVALID_SUB_AUTHORITY // // MessageText: // // The subauthority part of a security ID is invalid for this particular use. // // // MessageId: ERROR_INVALID_ACL // // MessageText: // // The access control list (ACL) structure is invalid. // // // MessageId: ERROR_INVALID_SID // // MessageText: // // The security ID structure is invalid. // // // MessageId: ERROR_INVALID_SECURITY_DESCR // // MessageText: // // The security descriptor structure is invalid. // // // MessageId: ERROR_BAD_INHERITANCE_ACL // // MessageText: // // The inherited access control list (ACL) or access control entry (ACE) could not be built. // // // MessageId: ERROR_SERVER_DISABLED // // MessageText: // // The server is currently disabled. // // // MessageId: ERROR_SERVER_NOT_DISABLED // // MessageText: // // The server is currently enabled. // // // MessageId: ERROR_INVALID_ID_AUTHORITY // // MessageText: // // The value provided was an invalid value for an identifier authority. // // // MessageId: ERROR_ALLOTTED_SPACE_EXCEEDED // // MessageText: // // No more memory is available for security information updates. // // // MessageId: ERROR_INVALID_GROUP_ATTRIBUTES // // MessageText: // // The specified attributes are invalid, or incompatible with the attributes for the group as a whole. // // // MessageId: ERROR_BAD_IMPERSONATION_LEVEL // // MessageText: // // Either a required impersonation level was not provided, or the provided impersonation level is invalid. // // // MessageId: ERROR_CANT_OPEN_ANONYMOUS // // MessageText: // // Cannot open an anonymous level security token. // // // MessageId: ERROR_BAD_VALIDATION_CLASS // // MessageText: // // The validation information class requested was invalid. // // // MessageId: ERROR_BAD_TOKEN_TYPE // // MessageText: // // The type of the token is inappropriate for its attempted use. // // // MessageId: ERROR_NO_SECURITY_ON_OBJECT // // MessageText: // // Unable to perform a security operation on an object that has no associated security. // // // MessageId: ERROR_CANT_ACCESS_DOMAIN_INFO // // MessageText: // // Configuration information could not be read from the domain controller, either because the machine is unavailable, or access has been denied. // // // MessageId: ERROR_INVALID_SERVER_STATE // // MessageText: // // The security account manager (SAM) or local security authority (LSA) server was in the wrong state to perform the security operation. // // // MessageId: ERROR_INVALID_DOMAIN_STATE // // MessageText: // // The domain was in the wrong state to perform the security operation. // // // MessageId: ERROR_INVALID_DOMAIN_ROLE // // MessageText: // // This operation is only allowed for the Primary Domain Controller of the domain. // // // MessageId: ERROR_NO_SUCH_DOMAIN // // MessageText: // // The specified domain either does not exist or could not be contacted. // // // MessageId: ERROR_DOMAIN_EXISTS // // MessageText: // // The specified domain already exists. // // // MessageId: ERROR_DOMAIN_LIMIT_EXCEEDED // // MessageText: // // An attempt was made to exceed the limit on the number of domains per server. // // // MessageId: ERROR_INTERNAL_DB_CORRUPTION // // MessageText: // // Unable to complete the requested operation because of either a catastrophic media failure or a data structure corruption on the disk. // // // MessageId: ERROR_INTERNAL_ERROR // // MessageText: // // An internal error occurred. // // // MessageId: ERROR_GENERIC_NOT_MAPPED // // MessageText: // // Generic access types were contained in an access mask which should already be mapped to nongeneric types. // // // MessageId: ERROR_BAD_DESCRIPTOR_FORMAT // // MessageText: // // A security descriptor is not in the right format (absolute or self-relative). // // // MessageId: ERROR_NOT_LOGON_PROCESS // // MessageText: // // The requested action is restricted for use by logon processes only. The calling process has not registered as a logon process. // // // MessageId: ERROR_LOGON_SESSION_EXISTS // // MessageText: // // Cannot start a new logon session with an ID that is already in use. // // // MessageId: ERROR_NO_SUCH_PACKAGE // // MessageText: // // A specified authentication package is unknown. // // // MessageId: ERROR_BAD_LOGON_SESSION_STATE // // MessageText: // // The logon session is not in a state that is consistent with the requested operation. // // // MessageId: ERROR_LOGON_SESSION_COLLISION // // MessageText: // // The logon session ID is already in use. // // // MessageId: ERROR_INVALID_LOGON_TYPE // // MessageText: // // A logon request contained an invalid logon type value. // // // MessageId: ERROR_CANNOT_IMPERSONATE // // MessageText: // // Unable to impersonate using a named pipe until data has been read from that pipe. // // // MessageId: ERROR_RXACT_INVALID_STATE // // MessageText: // // The transaction state of a registry subtree is incompatible with the requested operation. // // // MessageId: ERROR_RXACT_COMMIT_FAILURE // // MessageText: // // An internal security database corruption has been encountered. // // // MessageId: ERROR_SPECIAL_ACCOUNT // // MessageText: // // Cannot perform this operation on built-in accounts. // // // MessageId: ERROR_SPECIAL_GROUP // // MessageText: // // Cannot perform this operation on this built-in special group. // // // MessageId: ERROR_SPECIAL_USER // // MessageText: // // Cannot perform this operation on this built-in special user. // // // MessageId: ERROR_MEMBERS_PRIMARY_GROUP // // MessageText: // // The user cannot be removed from a group because the group is currently the user's primary group. // // // MessageId: ERROR_TOKEN_ALREADY_IN_USE // // MessageText: // // The token is already in use as a primary token. // // // MessageId: ERROR_NO_SUCH_ALIAS // // MessageText: // // The specified local group does not exist. // // // MessageId: ERROR_MEMBER_NOT_IN_ALIAS // // MessageText: // // The specified account name is not a member of the group. // // // MessageId: ERROR_MEMBER_IN_ALIAS // // MessageText: // // The specified account name is already a member of the group. // // // MessageId: ERROR_ALIAS_EXISTS // // MessageText: // // The specified local group already exists. // // // MessageId: ERROR_LOGON_NOT_GRANTED // // MessageText: // // Logon failure: the user has not been granted the requested logon type at this computer. // // // MessageId: ERROR_TOO_MANY_SECRETS // // MessageText: // // The maximum number of secrets that may be stored in a single system has been exceeded. // // // MessageId: ERROR_SECRET_TOO_LONG // // MessageText: // // The length of a secret exceeds the maximum length allowed. // // // MessageId: ERROR_INTERNAL_DB_ERROR // // MessageText: // // The local security authority database contains an internal inconsistency. // // // MessageId: ERROR_TOO_MANY_CONTEXT_IDS // // MessageText: // // During a logon attempt, the user's security context accumulated too many security IDs. // // // MessageId: ERROR_LOGON_TYPE_NOT_GRANTED // // MessageText: // // Logon failure: the user has not been granted the requested logon type at this computer. // // // MessageId: ERROR_NT_CROSS_ENCRYPTION_REQUIRED // // MessageText: // // A cross-encrypted password is necessary to change a user password. // // // MessageId: ERROR_NO_SUCH_MEMBER // // MessageText: // // A member could not be added to or removed from the local group because the member does not exist. // // // MessageId: ERROR_INVALID_MEMBER // // MessageText: // // A new member could not be added to a local group because the member has the wrong account type. // // // MessageId: ERROR_TOO_MANY_SIDS // // MessageText: // // Too many security IDs have been specified. // // // MessageId: ERROR_LM_CROSS_ENCRYPTION_REQUIRED // // MessageText: // // A cross-encrypted password is necessary to change this user password. // // // MessageId: ERROR_NO_INHERITANCE // // MessageText: // // Indicates an ACL contains no inheritable components. // // // MessageId: ERROR_FILE_CORRUPT // // MessageText: // // The file or directory is corrupted and unreadable. // // // MessageId: ERROR_DISK_CORRUPT // // MessageText: // // The disk structure is corrupted and unreadable. // // // MessageId: ERROR_NO_USER_SESSION_KEY // // MessageText: // // There is no user session key for the specified logon session. // // // MessageId: ERROR_LICENSE_QUOTA_EXCEEDED // // MessageText: // // The service being accessed is licensed for a particular number of connections. // No more connections can be made to the service at this time because there are already as many connections as the service can accept. // // // MessageId: ERROR_WRONG_TARGET_NAME // // MessageText: // // Logon Failure: The target account name is incorrect. // // // MessageId: ERROR_MUTUAL_AUTH_FAILED // // MessageText: // // Mutual Authentication failed. The server's password is out of date at the domain controller. // // // MessageId: ERROR_TIME_SKEW // // MessageText: // // There is a time and/or date difference between the client and server. // // // MessageId: ERROR_CURRENT_DOMAIN_NOT_ALLOWED // // MessageText: // // This operation cannot be performed on the current domain. // /////////////////////////////////////////////////// // // // WinUser Error codes // // // // 1400 to 1499 // /////////////////////////////////////////////////// // // MessageId: ERROR_INVALID_WINDOW_HANDLE // // MessageText: // // Invalid window handle. // // // MessageId: ERROR_INVALID_MENU_HANDLE // // MessageText: // // Invalid menu handle. // // // MessageId: ERROR_INVALID_CURSOR_HANDLE // // MessageText: // // Invalid cursor handle. // // // MessageId: ERROR_INVALID_ACCEL_HANDLE // // MessageText: // // Invalid accelerator table handle. // // // MessageId: ERROR_INVALID_HOOK_HANDLE // // MessageText: // // Invalid hook handle. // // // MessageId: ERROR_INVALID_DWP_HANDLE // // MessageText: // // Invalid handle to a multiple-window position structure. // // // MessageId: ERROR_TLW_WITH_WSCHILD // // MessageText: // // Cannot create a top-level child window. // // // MessageId: ERROR_CANNOT_FIND_WND_CLASS // // MessageText: // // Cannot find window class. // // // MessageId: ERROR_WINDOW_OF_OTHER_THREAD // // MessageText: // // Invalid window; it belongs to other thread. // // // MessageId: ERROR_HOTKEY_ALREADY_REGISTERED // // MessageText: // // Hot key is already registered. // // // MessageId: ERROR_CLASS_ALREADY_EXISTS // // MessageText: // // Class already exists. // // // MessageId: ERROR_CLASS_DOES_NOT_EXIST // // MessageText: // // Class does not exist. // // // MessageId: ERROR_CLASS_HAS_WINDOWS // // MessageText: // // Class still has open windows. // // // MessageId: ERROR_INVALID_INDEX // // MessageText: // // Invalid index. // // // MessageId: ERROR_INVALID_ICON_HANDLE // // MessageText: // // Invalid icon handle. // // // MessageId: ERROR_PRIVATE_DIALOG_INDEX // // MessageText: // // Using private DIALOG window words. // // // MessageId: ERROR_LISTBOX_ID_NOT_FOUND // // MessageText: // // The list box identifier was not found. // // // MessageId: ERROR_NO_WILDCARD_CHARACTERS // // MessageText: // // No wildcards were found. // // // MessageId: ERROR_CLIPBOARD_NOT_OPEN // // MessageText: // // Thread does not have a clipboard open. // // // MessageId: ERROR_HOTKEY_NOT_REGISTERED // // MessageText: // // Hot key is not registered. // // // MessageId: ERROR_WINDOW_NOT_DIALOG // // MessageText: // // The window is not a valid dialog window. // // // MessageId: ERROR_CONTROL_ID_NOT_FOUND // // MessageText: // // Control ID not found. // // // MessageId: ERROR_INVALID_COMBOBOX_MESSAGE // // MessageText: // // Invalid message for a combo box because it does not have an edit control. // // // MessageId: ERROR_WINDOW_NOT_COMBOBOX // // MessageText: // // The window is not a combo box. // // // MessageId: ERROR_INVALID_EDIT_HEIGHT // // MessageText: // // Height must be less than 256. // // // MessageId: ERROR_DC_NOT_FOUND // // MessageText: // // Invalid device context (DC) handle. // // // MessageId: ERROR_INVALID_HOOK_FILTER // // MessageText: // // Invalid hook procedure type. // // // MessageId: ERROR_INVALID_FILTER_PROC // // MessageText: // // Invalid hook procedure. // // // MessageId: ERROR_HOOK_NEEDS_HMOD // // MessageText: // // Cannot set nonlocal hook without a module handle. // // // MessageId: ERROR_GLOBAL_ONLY_HOOK // // MessageText: // // This hook procedure can only be set globally. // // // MessageId: ERROR_JOURNAL_HOOK_SET // // MessageText: // // The journal hook procedure is already installed. // // // MessageId: ERROR_HOOK_NOT_INSTALLED // // MessageText: // // The hook procedure is not installed. // // // MessageId: ERROR_INVALID_LB_MESSAGE // // MessageText: // // Invalid message for single-selection list box. // // // MessageId: ERROR_SETCOUNT_ON_BAD_LB // // MessageText: // // LB_SETCOUNT sent to non-lazy list box. // // // MessageId: ERROR_LB_WITHOUT_TABSTOPS // // MessageText: // // This list box does not support tab stops. // // // MessageId: ERROR_DESTROY_OBJECT_OF_OTHER_THREAD // // MessageText: // // Cannot destroy object created by another thread. // // // MessageId: ERROR_CHILD_WINDOW_MENU // // MessageText: // // Child windows cannot have menus. // // // MessageId: ERROR_NO_SYSTEM_MENU // // MessageText: // // The window does not have a system menu. // // // MessageId: ERROR_INVALID_MSGBOX_STYLE // // MessageText: // // Invalid message box style. // // // MessageId: ERROR_INVALID_SPI_VALUE // // MessageText: // // Invalid system-wide (SPI_*) parameter. // // // MessageId: ERROR_SCREEN_ALREADY_LOCKED // // MessageText: // // Screen already locked. // // // MessageId: ERROR_HWNDS_HAVE_DIFF_PARENT // // MessageText: // // All handles to windows in a multiple-window position structure must have the same parent. // // // MessageId: ERROR_NOT_CHILD_WINDOW // // MessageText: // // The window is not a child window. // // // MessageId: ERROR_INVALID_GW_COMMAND // // MessageText: // // Invalid GW_* command. // // // MessageId: ERROR_INVALID_THREAD_ID // // MessageText: // // Invalid thread identifier. // // // MessageId: ERROR_NON_MDICHILD_WINDOW // // MessageText: // // Cannot process a message from a window that is not a multiple document interface (MDI) window. // // // MessageId: ERROR_POPUP_ALREADY_ACTIVE // // MessageText: // // Popup menu already active. // // // MessageId: ERROR_NO_SCROLLBARS // // MessageText: // // The window does not have scroll bars. // // // MessageId: ERROR_INVALID_SCROLLBAR_RANGE // // MessageText: // // Scroll bar range cannot be greater than MAXLONG. // // // MessageId: ERROR_INVALID_SHOWWIN_COMMAND // // MessageText: // // Cannot show or remove the window in the way specified. // // // MessageId: ERROR_NO_SYSTEM_RESOURCES // // MessageText: // // Insufficient system resources exist to complete the requested service. // // // MessageId: ERROR_NONPAGED_SYSTEM_RESOURCES // // MessageText: // // Insufficient system resources exist to complete the requested service. // // // MessageId: ERROR_PAGED_SYSTEM_RESOURCES // // MessageText: // // Insufficient system resources exist to complete the requested service. // // // MessageId: ERROR_WORKING_SET_QUOTA // // MessageText: // // Insufficient quota to complete the requested service. // // // MessageId: ERROR_PAGEFILE_QUOTA // // MessageText: // // Insufficient quota to complete the requested service. // // // MessageId: ERROR_COMMITMENT_LIMIT // // MessageText: // // The paging file is too small for this operation to complete. // // // MessageId: ERROR_MENU_ITEM_NOT_FOUND // // MessageText: // // A menu item was not found. // // // MessageId: ERROR_INVALID_KEYBOARD_HANDLE // // MessageText: // // Invalid keyboard layout handle. // // // MessageId: ERROR_HOOK_TYPE_NOT_ALLOWED // // MessageText: // // Hook type not allowed. // // // MessageId: ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION // // MessageText: // // This operation requires an interactive window station. // // // MessageId: ERROR_TIMEOUT // // MessageText: // // This operation returned because the timeout period expired. // // // MessageId: ERROR_INVALID_MONITOR_HANDLE // // MessageText: // // Invalid monitor handle. // // // MessageId: ERROR_INCORRECT_SIZE // // MessageText: // // Incorrect size argument. // // // MessageId: ERROR_SYMLINK_CLASS_DISABLED // // MessageText: // // The symbolic link cannot be followed because its type is disabled. // // // MessageId: ERROR_SYMLINK_NOT_SUPPORTED // // MessageText: // // This application does not support the current operation on symbolic links. // // // MessageId: ERROR_XML_PARSE_ERROR // // MessageText: // // Windows was unable to parse the requested XML data. // // // MessageId: ERROR_XMLDSIG_ERROR // // MessageText: // // An error was encountered while processing an XML digital signature. // // // MessageId: ERROR_RESTART_APPLICATION // // MessageText: // // This application must be restarted. // // // MessageId: ERROR_WRONG_COMPARTMENT // // MessageText: // // The caller made the connection request in the wrong routing compartment. // // // MessageId: ERROR_AUTHIP_FAILURE // // MessageText: // // There was an AuthIP failure when attempting to connect to the remote host. // /////////////////////////////////////////////////// // // // EventLog Error codes // // // // 1500 to 1549 // /////////////////////////////////////////////////// // // MessageId: ERROR_EVENTLOG_FILE_CORRUPT // // MessageText: // // The event log file is corrupted. // // // MessageId: ERROR_EVENTLOG_CANT_START // // MessageText: // // No event log file could be opened, so the event logging service did not start. // // // MessageId: ERROR_LOG_FILE_FULL // // MessageText: // // The event log file is full. // // // MessageId: ERROR_EVENTLOG_FILE_CHANGED // // MessageText: // // The event log file has changed between read operations. // /////////////////////////////////////////////////// // // // Class Scheduler Error codes // // // // 1550 to 1599 // /////////////////////////////////////////////////// // // MessageId: ERROR_INVALID_TASK_NAME // // MessageText: // // The specified task name is invalid. // // // MessageId: ERROR_INVALID_TASK_INDEX // // MessageText: // // The specified task index is invalid. // // // MessageId: ERROR_THREAD_ALREADY_IN_TASK // // MessageText: // // The specified thread is already joining a task. // /////////////////////////////////////////////////// // // // MSI Error codes // // // // 1600 to 1699 // /////////////////////////////////////////////////// // // MessageId: ERROR_INSTALL_SERVICE_FAILURE // // MessageText: // // The Windows Installer Service could not be accessed. This can occur if the Windows Installer is not correctly installed. Contact your support personnel for assistance. // // // MessageId: ERROR_INSTALL_USEREXIT // // MessageText: // // User cancelled installation. // // // MessageId: ERROR_INSTALL_FAILURE // // MessageText: // // Fatal error during installation. // // // MessageId: ERROR_INSTALL_SUSPEND // // MessageText: // // Installation suspended, incomplete. // // // MessageId: ERROR_UNKNOWN_PRODUCT // // MessageText: // // This action is only valid for products that are currently installed. // // // MessageId: ERROR_UNKNOWN_FEATURE // // MessageText: // // Feature ID not registered. // // // MessageId: ERROR_UNKNOWN_COMPONENT // // MessageText: // // Component ID not registered. // // // MessageId: ERROR_UNKNOWN_PROPERTY // // MessageText: // // Unknown property. // // // MessageId: ERROR_INVALID_HANDLE_STATE // // MessageText: // // Handle is in an invalid state. // // // MessageId: ERROR_BAD_CONFIGURATION // // MessageText: // // The configuration data for this product is corrupt. Contact your support personnel. // // // MessageId: ERROR_INDEX_ABSENT // // MessageText: // // Component qualifier not present. // // // MessageId: ERROR_INSTALL_SOURCE_ABSENT // // MessageText: // // The installation source for this product is not available. Verify that the source exists and that you can access it. // // // MessageId: ERROR_INSTALL_PACKAGE_VERSION // // MessageText: // // This installation package cannot be installed by the Windows Installer service. You must install a Windows service pack that contains a newer version of the Windows Installer service. // // // MessageId: ERROR_PRODUCT_UNINSTALLED // // MessageText: // // Product is uninstalled. // // // MessageId: ERROR_BAD_QUERY_SYNTAX // // MessageText: // // SQL query syntax invalid or unsupported. // // // MessageId: ERROR_INVALID_FIELD // // MessageText: // // Record field does not exist. // // // MessageId: ERROR_DEVICE_REMOVED // // MessageText: // // The device has been removed. // // // MessageId: ERROR_INSTALL_ALREADY_RUNNING // // MessageText: // // Another installation is already in progress. Complete that installation before proceeding with this install. // // // MessageId: ERROR_INSTALL_PACKAGE_OPEN_FAILED // // MessageText: // // This installation package could not be opened. Verify that the package exists and that you can access it, or contact the application vendor to verify that this is a valid Windows Installer package. // // // MessageId: ERROR_INSTALL_PACKAGE_INVALID // // MessageText: // // This installation package could not be opened. Contact the application vendor to verify that this is a valid Windows Installer package. // // // MessageId: ERROR_INSTALL_UI_FAILURE // // MessageText: // // There was an error starting the Windows Installer service user interface. Contact your support personnel. // // // MessageId: ERROR_INSTALL_LOG_FAILURE // // MessageText: // // Error opening installation log file. Verify that the specified log file location exists and that you can write to it. // // // MessageId: ERROR_INSTALL_LANGUAGE_UNSUPPORTED // // MessageText: // // The language of this installation package is not supported by your system. // // // MessageId: ERROR_INSTALL_TRANSFORM_FAILURE // // MessageText: // // Error applying transforms. Verify that the specified transform paths are valid. // // // MessageId: ERROR_INSTALL_PACKAGE_REJECTED // // MessageText: // // This installation is forbidden by system policy. Contact your system administrator. // // // MessageId: ERROR_FUNCTION_NOT_CALLED // // MessageText: // // Function could not be executed. // // // MessageId: ERROR_FUNCTION_FAILED // // MessageText: // // Function failed during execution. // // // MessageId: ERROR_INVALID_TABLE // // MessageText: // // Invalid or unknown table specified. // // // MessageId: ERROR_DATATYPE_MISMATCH // // MessageText: // // Data supplied is of wrong type. // // // MessageId: ERROR_UNSUPPORTED_TYPE // // MessageText: // // Data of this type is not supported. // // // MessageId: ERROR_CREATE_FAILED // // MessageText: // // The Windows Installer service failed to start. Contact your support personnel. // // // MessageId: ERROR_INSTALL_TEMP_UNWRITABLE // // MessageText: // // The Temp folder is on a drive that is full or is inaccessible. Free up space on the drive or verify that you have write permission on the Temp folder. // // // MessageId: ERROR_INSTALL_PLATFORM_UNSUPPORTED // // MessageText: // // This installation package is not supported by this processor type. Contact your product vendor. // // // MessageId: ERROR_INSTALL_NOTUSED // // MessageText: // // Component not used on this computer. // // // MessageId: ERROR_PATCH_PACKAGE_OPEN_FAILED // // MessageText: // // This update package could not be opened. Verify that the update package exists and that you can access it, or contact the application vendor to verify that this is a valid Windows Installer update package. // // // MessageId: ERROR_PATCH_PACKAGE_INVALID // // MessageText: // // This update package could not be opened. Contact the application vendor to verify that this is a valid Windows Installer update package. // // // MessageId: ERROR_PATCH_PACKAGE_UNSUPPORTED // // MessageText: // // This update package cannot be processed by the Windows Installer service. You must install a Windows service pack that contains a newer version of the Windows Installer service. // // // MessageId: ERROR_PRODUCT_VERSION // // MessageText: // // Another version of this product is already installed. Installation of this version cannot continue. To configure or remove the existing version of this product, use Add/Remove Programs on the Control Panel. // // // MessageId: ERROR_INVALID_COMMAND_LINE // // MessageText: // // Invalid command line argument. Consult the Windows Installer SDK for detailed command line help. // // // MessageId: ERROR_INSTALL_REMOTE_DISALLOWED // // MessageText: // // Only administrators have permission to add, remove, or configure server software during a Terminal services remote session. If you want to install or configure software on the server, contact your network administrator. // // // MessageId: ERROR_SUCCESS_REBOOT_INITIATED // // MessageText: // // The requested operation completed successfully. The system will be restarted so the changes can take effect. // // // MessageId: ERROR_PATCH_TARGET_NOT_FOUND // // MessageText: // // The upgrade cannot be installed by the Windows Installer service because the program to be upgraded may be missing, or the upgrade may update a different version of the program. Verify that the program to be upgraded exists on your computer and that you have the correct upgrade. // // // MessageId: ERROR_PATCH_PACKAGE_REJECTED // // MessageText: // // The update package is not permitted by software restriction policy. // // // MessageId: ERROR_INSTALL_TRANSFORM_REJECTED // // MessageText: // // One or more customizations are not permitted by software restriction policy. // // // MessageId: ERROR_INSTALL_REMOTE_PROHIBITED // // MessageText: // // The Windows Installer does not permit installation from a Remote Desktop Connection. // // // MessageId: ERROR_PATCH_REMOVAL_UNSUPPORTED // // MessageText: // // Uninstallation of the update package is not supported. // // // MessageId: ERROR_UNKNOWN_PATCH // // MessageText: // // The update is not applied to this product. // // // MessageId: ERROR_PATCH_NO_SEQUENCE // // MessageText: // // No valid sequence could be found for the set of updates. // // // MessageId: ERROR_PATCH_REMOVAL_DISALLOWED // // MessageText: // // Update removal was disallowed by policy. // // // MessageId: ERROR_INVALID_PATCH_XML // // MessageText: // // The XML update data is invalid. // // // MessageId: ERROR_PATCH_MANAGED_ADVERTISED_PRODUCT // // MessageText: // // Windows Installer does not permit updating of managed advertised products. At least one feature of the product must be installed before applying the update. // // // MessageId: ERROR_INSTALL_SERVICE_SAFEBOOT // // MessageText: // // The Windows Installer service is not accessible in Safe Mode. Please try again when your computer is not in Safe Mode or you can use System Restore to return your machine to a previous good state. // /////////////////////////////////////////////////// // // // RPC Error codes // // // // 1700 to 1999 // /////////////////////////////////////////////////// // // MessageId: RPC_S_INVALID_STRING_BINDING // // MessageText: // // The string binding is invalid. // // // MessageId: RPC_S_WRONG_KIND_OF_BINDING // // MessageText: // // The binding handle is not the correct type. // // // MessageId: RPC_S_INVALID_BINDING // // MessageText: // // The binding handle is invalid. // // // MessageId: RPC_S_PROTSEQ_NOT_SUPPORTED // // MessageText: // // The RPC protocol sequence is not supported. // // // MessageId: RPC_S_INVALID_RPC_PROTSEQ // // MessageText: // // The RPC protocol sequence is invalid. // // // MessageId: RPC_S_INVALID_STRING_UUID // // MessageText: // // The string universal unique identifier (UUID) is invalid. // // // MessageId: RPC_S_INVALID_ENDPOINT_FORMAT // // MessageText: // // The endpoint format is invalid. // // // MessageId: RPC_S_INVALID_NET_ADDR // // MessageText: // // The network address is invalid. // // // MessageId: RPC_S_NO_ENDPOINT_FOUND // // MessageText: // // No endpoint was found. // // // MessageId: RPC_S_INVALID_TIMEOUT // // MessageText: // // The timeout value is invalid. // // // MessageId: RPC_S_OBJECT_NOT_FOUND // // MessageText: // // The object universal unique identifier (UUID) was not found. // // // MessageId: RPC_S_ALREADY_REGISTERED // // MessageText: // // The object universal unique identifier (UUID) has already been registered. // // // MessageId: RPC_S_TYPE_ALREADY_REGISTERED // // MessageText: // // The type universal unique identifier (UUID) has already been registered. // // // MessageId: RPC_S_ALREADY_LISTENING // // MessageText: // // The RPC server is already listening. // // // MessageId: RPC_S_NO_PROTSEQS_REGISTERED // // MessageText: // // No protocol sequences have been registered. // // // MessageId: RPC_S_NOT_LISTENING // // MessageText: // // The RPC server is not listening. // // // MessageId: RPC_S_UNKNOWN_MGR_TYPE // // MessageText: // // The manager type is unknown. // // // MessageId: RPC_S_UNKNOWN_IF // // MessageText: // // The interface is unknown. // // // MessageId: RPC_S_NO_BINDINGS // // MessageText: // // There are no bindings. // // // MessageId: RPC_S_NO_PROTSEQS // // MessageText: // // There are no protocol sequences. // // // MessageId: RPC_S_CANT_CREATE_ENDPOINT // // MessageText: // // The endpoint cannot be created. // // // MessageId: RPC_S_OUT_OF_RESOURCES // // MessageText: // // Not enough resources are available to complete this operation. // // // MessageId: RPC_S_SERVER_UNAVAILABLE // // MessageText: // // The RPC server is unavailable. // // // MessageId: RPC_S_SERVER_TOO_BUSY // // MessageText: // // The RPC server is too busy to complete this operation. // // // MessageId: RPC_S_INVALID_NETWORK_OPTIONS // // MessageText: // // The network options are invalid. // // // MessageId: RPC_S_NO_CALL_ACTIVE // // MessageText: // // There are no remote procedure calls active on this thread. // // // MessageId: RPC_S_CALL_FAILED // // MessageText: // // The remote procedure call failed. // // // MessageId: RPC_S_CALL_FAILED_DNE // // MessageText: // // The remote procedure call failed and did not execute. // // // MessageId: RPC_S_PROTOCOL_ERROR // // MessageText: // // A remote procedure call (RPC) protocol error occurred. // // // MessageId: RPC_S_PROXY_ACCESS_DENIED // // MessageText: // // Access to the HTTP proxy is denied. // // // MessageId: RPC_S_UNSUPPORTED_TRANS_SYN // // MessageText: // // The transfer syntax is not supported by the RPC server. // // // MessageId: RPC_S_UNSUPPORTED_TYPE // // MessageText: // // The universal unique identifier (UUID) type is not supported. // // // MessageId: RPC_S_INVALID_TAG // // MessageText: // // The tag is invalid. // // // MessageId: RPC_S_INVALID_BOUND // // MessageText: // // The array bounds are invalid. // // // MessageId: RPC_S_NO_ENTRY_NAME // // MessageText: // // The binding does not contain an entry name. // // // MessageId: RPC_S_INVALID_NAME_SYNTAX // // MessageText: // // The name syntax is invalid. // // // MessageId: RPC_S_UNSUPPORTED_NAME_SYNTAX // // MessageText: // // The name syntax is not supported. // // // MessageId: RPC_S_UUID_NO_ADDRESS // // MessageText: // // No network address is available to use to construct a universal unique identifier (UUID). // // // MessageId: RPC_S_DUPLICATE_ENDPOINT // // MessageText: // // The endpoint is a duplicate. // // // MessageId: RPC_S_UNKNOWN_AUTHN_TYPE // // MessageText: // // The authentication type is unknown. // // // MessageId: RPC_S_MAX_CALLS_TOO_SMALL // // MessageText: // // The maximum number of calls is too small. // // // MessageId: RPC_S_STRING_TOO_LONG // // MessageText: // // The string is too long. // // // MessageId: RPC_S_PROTSEQ_NOT_FOUND // // MessageText: // // The RPC protocol sequence was not found. // // // MessageId: RPC_S_PROCNUM_OUT_OF_RANGE // // MessageText: // // The procedure number is out of range. // // // MessageId: RPC_S_BINDING_HAS_NO_AUTH // // MessageText: // // The binding does not contain any authentication information. // // // MessageId: RPC_S_UNKNOWN_AUTHN_SERVICE // // MessageText: // // The authentication service is unknown. // // // MessageId: RPC_S_UNKNOWN_AUTHN_LEVEL // // MessageText: // // The authentication level is unknown. // // // MessageId: RPC_S_INVALID_AUTH_IDENTITY // // MessageText: // // The security context is invalid. // // // MessageId: RPC_S_UNKNOWN_AUTHZ_SERVICE // // MessageText: // // The authorization service is unknown. // // // MessageId: EPT_S_INVALID_ENTRY // // MessageText: // // The entry is invalid. // // // MessageId: EPT_S_CANT_PERFORM_OP // // MessageText: // // The server endpoint cannot perform the operation. // // // MessageId: EPT_S_NOT_REGISTERED // // MessageText: // // There are no more endpoints available from the endpoint mapper. // // // MessageId: RPC_S_NOTHING_TO_EXPORT // // MessageText: // // No interfaces have been exported. // // // MessageId: RPC_S_INCOMPLETE_NAME // // MessageText: // // The entry name is incomplete. // // // MessageId: RPC_S_INVALID_VERS_OPTION // // MessageText: // // The version option is invalid. // // // MessageId: RPC_S_NO_MORE_MEMBERS // // MessageText: // // There are no more members. // // // MessageId: RPC_S_NOT_ALL_OBJS_UNEXPORTED // // MessageText: // // There is nothing to unexport. // // // MessageId: RPC_S_INTERFACE_NOT_FOUND // // MessageText: // // The interface was not found. // // // MessageId: RPC_S_ENTRY_ALREADY_EXISTS // // MessageText: // // The entry already exists. // // // MessageId: RPC_S_ENTRY_NOT_FOUND // // MessageText: // // The entry is not found. // // // MessageId: RPC_S_NAME_SERVICE_UNAVAILABLE // // MessageText: // // The name service is unavailable. // // // MessageId: RPC_S_INVALID_NAF_ID // // MessageText: // // The network address family is invalid. // // // MessageId: RPC_S_CANNOT_SUPPORT // // MessageText: // // The requested operation is not supported. // // // MessageId: RPC_S_NO_CONTEXT_AVAILABLE // // MessageText: // // No security context is available to allow impersonation. // // // MessageId: RPC_S_INTERNAL_ERROR // // MessageText: // // An internal error occurred in a remote procedure call (RPC). // // // MessageId: RPC_S_ZERO_DIVIDE // // MessageText: // // The RPC server attempted an integer division by zero. // // // MessageId: RPC_S_ADDRESS_ERROR // // MessageText: // // An addressing error occurred in the RPC server. // // // MessageId: RPC_S_FP_DIV_ZERO // // MessageText: // // A floating-point operation at the RPC server caused a division by zero. // // // MessageId: RPC_S_FP_UNDERFLOW // // MessageText: // // A floating-point underflow occurred at the RPC server. // // // MessageId: RPC_S_FP_OVERFLOW // // MessageText: // // A floating-point overflow occurred at the RPC server. // // // MessageId: RPC_X_NO_MORE_ENTRIES // // MessageText: // // The list of RPC servers available for the binding of auto handles has been exhausted. // // // MessageId: RPC_X_SS_CHAR_TRANS_OPEN_FAIL // // MessageText: // // Unable to open the character translation table file. // // // MessageId: RPC_X_SS_CHAR_TRANS_SHORT_FILE // // MessageText: // // The file containing the character translation table has fewer than 512 bytes. // // // MessageId: RPC_X_SS_IN_NULL_CONTEXT // // MessageText: // // A null context handle was passed from the client to the host during a remote procedure call. // // // MessageId: RPC_X_SS_CONTEXT_DAMAGED // // MessageText: // // The context handle changed during a remote procedure call. // // // MessageId: RPC_X_SS_HANDLES_MISMATCH // // MessageText: // // The binding handles passed to a remote procedure call do not match. // // // MessageId: RPC_X_SS_CANNOT_GET_CALL_HANDLE // // MessageText: // // The stub is unable to get the remote procedure call handle. // // // MessageId: RPC_X_NULL_REF_POINTER // // MessageText: // // A null reference pointer was passed to the stub. // // // MessageId: RPC_X_ENUM_VALUE_OUT_OF_RANGE // // MessageText: // // The enumeration value is out of range. // // // MessageId: RPC_X_BYTE_COUNT_TOO_SMALL // // MessageText: // // The byte count is too small. // // // MessageId: RPC_X_BAD_STUB_DATA // // MessageText: // // The stub received bad data. // // // MessageId: ERROR_INVALID_USER_BUFFER // // MessageText: // // The supplied user buffer is not valid for the requested operation. // // // MessageId: ERROR_UNRECOGNIZED_MEDIA // // MessageText: // // The disk media is not recognized. It may not be formatted. // // // MessageId: ERROR_NO_TRUST_LSA_SECRET // // MessageText: // // The workstation does not have a trust secret. // // // MessageId: ERROR_NO_TRUST_SAM_ACCOUNT // // MessageText: // // The security database on the server does not have a computer account for this workstation trust relationship. // // // MessageId: ERROR_TRUSTED_DOMAIN_FAILURE // // MessageText: // // The trust relationship between the primary domain and the trusted domain failed. // // // MessageId: ERROR_TRUSTED_RELATIONSHIP_FAILURE // // MessageText: // // The trust relationship between this workstation and the primary domain failed. // // // MessageId: ERROR_TRUST_FAILURE // // MessageText: // // The network logon failed. // // // MessageId: RPC_S_CALL_IN_PROGRESS // // MessageText: // // A remote procedure call is already in progress for this thread. // // // MessageId: ERROR_NETLOGON_NOT_STARTED // // MessageText: // // An attempt was made to logon, but the network logon service was not started. // // // MessageId: ERROR_ACCOUNT_EXPIRED // // MessageText: // // The user's account has expired. // // // MessageId: ERROR_REDIRECTOR_HAS_OPEN_HANDLES // // MessageText: // // The redirector is in use and cannot be unloaded. // // // MessageId: ERROR_PRINTER_DRIVER_ALREADY_INSTALLED // // MessageText: // // The specified printer driver is already installed. // // // MessageId: ERROR_UNKNOWN_PORT // // MessageText: // // The specified port is unknown. // // // MessageId: ERROR_UNKNOWN_PRINTER_DRIVER // // MessageText: // // The printer driver is unknown. // // // MessageId: ERROR_UNKNOWN_PRINTPROCESSOR // // MessageText: // // The print processor is unknown. // // // MessageId: ERROR_INVALID_SEPARATOR_FILE // // MessageText: // // The specified separator file is invalid. // // // MessageId: ERROR_INVALID_PRIORITY // // MessageText: // // The specified priority is invalid. // // // MessageId: ERROR_INVALID_PRINTER_NAME // // MessageText: // // The printer name is invalid. // // // MessageId: ERROR_PRINTER_ALREADY_EXISTS // // MessageText: // // The printer already exists. // // // MessageId: ERROR_INVALID_PRINTER_COMMAND // // MessageText: // // The printer command is invalid. // // // MessageId: ERROR_INVALID_DATATYPE // // MessageText: // // The specified datatype is invalid. // // // MessageId: ERROR_INVALID_ENVIRONMENT // // MessageText: // // The environment specified is invalid. // // // MessageId: RPC_S_NO_MORE_BINDINGS // // MessageText: // // There are no more bindings. // // // MessageId: ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT // // MessageText: // // The account used is an interdomain trust account. Use your global user account or local user account to access this server. // // // MessageId: ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT // // MessageText: // // The account used is a computer account. Use your global user account or local user account to access this server. // // // MessageId: ERROR_NOLOGON_SERVER_TRUST_ACCOUNT // // MessageText: // // The account used is a server trust account. Use your global user account or local user account to access this server. // // // MessageId: ERROR_DOMAIN_TRUST_INCONSISTENT // // MessageText: // // The name or security ID (SID) of the domain specified is inconsistent with the trust information for that domain. // // // MessageId: ERROR_SERVER_HAS_OPEN_HANDLES // // MessageText: // // The server is in use and cannot be unloaded. // // // MessageId: ERROR_RESOURCE_DATA_NOT_FOUND // // MessageText: // // The specified image file did not contain a resource section. // // // MessageId: ERROR_RESOURCE_TYPE_NOT_FOUND // // MessageText: // // The specified resource type cannot be found in the image file. // // // MessageId: ERROR_RESOURCE_NAME_NOT_FOUND // // MessageText: // // The specified resource name cannot be found in the image file. // // // MessageId: ERROR_RESOURCE_LANG_NOT_FOUND // // MessageText: // // The specified resource language ID cannot be found in the image file. // // // MessageId: ERROR_NOT_ENOUGH_QUOTA // // MessageText: // // Not enough quota is available to process this command. // // // MessageId: RPC_S_NO_INTERFACES // // MessageText: // // No interfaces have been registered. // // // MessageId: RPC_S_CALL_CANCELLED // // MessageText: // // The remote procedure call was cancelled. // // // MessageId: RPC_S_BINDING_INCOMPLETE // // MessageText: // // The binding handle does not contain all required information. // // // MessageId: RPC_S_COMM_FAILURE // // MessageText: // // A communications failure occurred during a remote procedure call. // // // MessageId: RPC_S_UNSUPPORTED_AUTHN_LEVEL // // MessageText: // // The requested authentication level is not supported. // // // MessageId: RPC_S_NO_PRINC_NAME // // MessageText: // // No principal name registered. // // // MessageId: RPC_S_NOT_RPC_ERROR // // MessageText: // // The error specified is not a valid Windows RPC error code. // // // MessageId: RPC_S_UUID_LOCAL_ONLY // // MessageText: // // A UUID that is valid only on this computer has been allocated. // // // MessageId: RPC_S_SEC_PKG_ERROR // // MessageText: // // A security package specific error occurred. // // // MessageId: RPC_S_NOT_CANCELLED // // MessageText: // // Thread is not canceled. // // // MessageId: RPC_X_INVALID_ES_ACTION // // MessageText: // // Invalid operation on the encoding/decoding handle. // // // MessageId: RPC_X_WRONG_ES_VERSION // // MessageText: // // Incompatible version of the serializing package. // // // MessageId: RPC_X_WRONG_STUB_VERSION // // MessageText: // // Incompatible version of the RPC stub. // // // MessageId: RPC_X_INVALID_PIPE_OBJECT // // MessageText: // // The RPC pipe object is invalid or corrupted. // // // MessageId: RPC_X_WRONG_PIPE_ORDER // // MessageText: // // An invalid operation was attempted on an RPC pipe object. // // // MessageId: RPC_X_WRONG_PIPE_VERSION // // MessageText: // // Unsupported RPC pipe version. // // // MessageId: RPC_S_GROUP_MEMBER_NOT_FOUND // // MessageText: // // The group member was not found. // // // MessageId: EPT_S_CANT_CREATE // // MessageText: // // The endpoint mapper database entry could not be created. // // // MessageId: RPC_S_INVALID_OBJECT // // MessageText: // // The object universal unique identifier (UUID) is the nil UUID. // // // MessageId: ERROR_INVALID_TIME // // MessageText: // // The specified time is invalid. // // // MessageId: ERROR_INVALID_FORM_NAME // // MessageText: // // The specified form name is invalid. // // // MessageId: ERROR_INVALID_FORM_SIZE // // MessageText: // // The specified form size is invalid. // // // MessageId: ERROR_ALREADY_WAITING // // MessageText: // // The specified printer handle is already being waited on // // // MessageId: ERROR_PRINTER_DELETED // // MessageText: // // The specified printer has been deleted. // // // MessageId: ERROR_INVALID_PRINTER_STATE // // MessageText: // // The state of the printer is invalid. // // // MessageId: ERROR_PASSWORD_MUST_CHANGE // // MessageText: // // The user's password must be changed before logging on the first time. // // // MessageId: ERROR_DOMAIN_CONTROLLER_NOT_FOUND // // MessageText: // // Could not find the domain controller for this domain. // // // MessageId: ERROR_ACCOUNT_LOCKED_OUT // // MessageText: // // The referenced account is currently locked out and may not be logged on to. // // // MessageId: OR_INVALID_OXID // // MessageText: // // The object exporter specified was not found. // // // MessageId: OR_INVALID_OID // // MessageText: // // The object specified was not found. // // // MessageId: OR_INVALID_SET // // MessageText: // // The object resolver set specified was not found. // // // MessageId: RPC_S_SEND_INCOMPLETE // // MessageText: // // Some data remains to be sent in the request buffer. // // // MessageId: RPC_S_INVALID_ASYNC_HANDLE // // MessageText: // // Invalid asynchronous remote procedure call handle. // // // MessageId: RPC_S_INVALID_ASYNC_CALL // // MessageText: // // Invalid asynchronous RPC call handle for this operation. // // // MessageId: RPC_X_PIPE_CLOSED // // MessageText: // // The RPC pipe object has already been closed. // // // MessageId: RPC_X_PIPE_DISCIPLINE_ERROR // // MessageText: // // The RPC call completed before all pipes were processed. // // // MessageId: RPC_X_PIPE_EMPTY // // MessageText: // // No more data is available from the RPC pipe. // // // MessageId: ERROR_NO_SITENAME // // MessageText: // // No site name is available for this machine. // // // MessageId: ERROR_CANT_ACCESS_FILE // // MessageText: // // The file cannot be accessed by the system. // // // MessageId: ERROR_CANT_RESOLVE_FILENAME // // MessageText: // // The name of the file cannot be resolved by the system. // // // MessageId: RPC_S_ENTRY_TYPE_MISMATCH // // MessageText: // // The entry is not of the expected type. // // // MessageId: RPC_S_NOT_ALL_OBJS_EXPORTED // // MessageText: // // Not all object UUIDs could be exported to the specified entry. // // // MessageId: RPC_S_INTERFACE_NOT_EXPORTED // // MessageText: // // Interface could not be exported to the specified entry. // // // MessageId: RPC_S_PROFILE_NOT_ADDED // // MessageText: // // The specified profile entry could not be added. // // // MessageId: RPC_S_PRF_ELT_NOT_ADDED // // MessageText: // // The specified profile element could not be added. // // // MessageId: RPC_S_PRF_ELT_NOT_REMOVED // // MessageText: // // The specified profile element could not be removed. // // // MessageId: RPC_S_GRP_ELT_NOT_ADDED // // MessageText: // // The group element could not be added. // // // MessageId: RPC_S_GRP_ELT_NOT_REMOVED // // MessageText: // // The group element could not be removed. // // // MessageId: ERROR_KM_DRIVER_BLOCKED // // MessageText: // // The printer driver is not compatible with a policy enabled on your computer that blocks NT 4.0 drivers. // // // MessageId: ERROR_CONTEXT_EXPIRED // // MessageText: // // The context has expired and can no longer be used. // // // MessageId: ERROR_PER_USER_TRUST_QUOTA_EXCEEDED // // MessageText: // // The current user's delegated trust creation quota has been exceeded. // // // MessageId: ERROR_ALL_USER_TRUST_QUOTA_EXCEEDED // // MessageText: // // The total delegated trust creation quota has been exceeded. // // // MessageId: ERROR_USER_DELETE_TRUST_QUOTA_EXCEEDED // // MessageText: // // The current user's delegated trust deletion quota has been exceeded. // // // MessageId: ERROR_AUTHENTICATION_FIREWALL_FAILED // // MessageText: // // Logon Failure: The machine you are logging onto is protected by an authentication firewall. The specified account is not allowed to authenticate to the machine. // // // MessageId: ERROR_REMOTE_PRINT_CONNECTIONS_BLOCKED // // MessageText: // // Remote connections to the Print Spooler are blocked by a policy set on your machine. // // // MessageId: ERROR_NTLM_BLOCKED // // MessageText: // // Logon Failure: Authentication failed because NTLM authentication has been disabled. // /////////////////////////////////////////////////// // // // OpenGL Error codes // // // // 2000 to 2009 // /////////////////////////////////////////////////// // // MessageId: ERROR_INVALID_PIXEL_FORMAT // // MessageText: // // The pixel format is invalid. // // // MessageId: ERROR_BAD_DRIVER // // MessageText: // // The specified driver is invalid. // // // MessageId: ERROR_INVALID_WINDOW_STYLE // // MessageText: // // The window style or class attribute is invalid for this operation. // // // MessageId: ERROR_METAFILE_NOT_SUPPORTED // // MessageText: // // The requested metafile operation is not supported. // // // MessageId: ERROR_TRANSFORM_NOT_SUPPORTED // // MessageText: // // The requested transformation operation is not supported. // // // MessageId: ERROR_CLIPPING_NOT_SUPPORTED // // MessageText: // // The requested clipping operation is not supported. // /////////////////////////////////////////////////// // // // Image Color Management Error codes // // // // 2010 to 2049 // /////////////////////////////////////////////////// // // MessageId: ERROR_INVALID_CMM // // MessageText: // // The specified color management module is invalid. // // // MessageId: ERROR_INVALID_PROFILE // // MessageText: // // The specified color profile is invalid. // // // MessageId: ERROR_TAG_NOT_FOUND // // MessageText: // // The specified tag was not found. // // // MessageId: ERROR_TAG_NOT_PRESENT // // MessageText: // // A required tag is not present. // // // MessageId: ERROR_DUPLICATE_TAG // // MessageText: // // The specified tag is already present. // // // MessageId: ERROR_PROFILE_NOT_ASSOCIATED_WITH_DEVICE // // MessageText: // // The specified color profile is not associated with the specified device. // // // MessageId: ERROR_PROFILE_NOT_FOUND // // MessageText: // // The specified color profile was not found. // // // MessageId: ERROR_INVALID_COLORSPACE // // MessageText: // // The specified color space is invalid. // // // MessageId: ERROR_ICM_NOT_ENABLED // // MessageText: // // Image Color Management is not enabled. // // // MessageId: ERROR_DELETING_ICM_XFORM // // MessageText: // // There was an error while deleting the color transform. // // // MessageId: ERROR_INVALID_TRANSFORM // // MessageText: // // The specified color transform is invalid. // // // MessageId: ERROR_COLORSPACE_MISMATCH // // MessageText: // // The specified transform does not match the bitmap's color space. // // // MessageId: ERROR_INVALID_COLORINDEX // // MessageText: // // The specified named color index is not present in the profile. // // // MessageId: ERROR_PROFILE_DOES_NOT_MATCH_DEVICE // // MessageText: // // The specified profile is intended for a device of a different type than the specified device. // /////////////////////////////////////////////////// // // // Winnet32 Error codes // // // // 2100 to 2999 // // // // The range 2100 through 2999 is reserved for // // network status codes. See lmerr.h for a // // complete listing // /////////////////////////////////////////////////// // // MessageId: ERROR_CONNECTED_OTHER_PASSWORD // // MessageText: // // The network connection was made successfully, but the user had to be prompted for a password other than the one originally specified. // // // MessageId: ERROR_CONNECTED_OTHER_PASSWORD_DEFAULT // // MessageText: // // The network connection was made successfully using default credentials. // // // MessageId: ERROR_BAD_USERNAME // // MessageText: // // The specified username is invalid. // // // MessageId: ERROR_NOT_CONNECTED // // MessageText: // // This network connection does not exist. // // // MessageId: ERROR_OPEN_FILES // // MessageText: // // This network connection has files open or requests pending. // // // MessageId: ERROR_ACTIVE_CONNECTIONS // // MessageText: // // Active connections still exist. // // // MessageId: ERROR_DEVICE_IN_USE // // MessageText: // // The device is in use by an active process and cannot be disconnected. // /////////////////////////////////////////////////// // // // Win32 Spooler Error codes // // // // 3000 to 3049 // /////////////////////////////////////////////////// // // MessageId: ERROR_UNKNOWN_PRINT_MONITOR // // MessageText: // // The specified print monitor is unknown. // // // MessageId: ERROR_PRINTER_DRIVER_IN_USE // // MessageText: // // The specified printer driver is currently in use. // // // MessageId: ERROR_SPOOL_FILE_NOT_FOUND // // MessageText: // // The spool file was not found. // // // MessageId: ERROR_SPL_NO_STARTDOC // // MessageText: // // A StartDocPrinter call was not issued. // // // MessageId: ERROR_SPL_NO_ADDJOB // // MessageText: // // An AddJob call was not issued. // // // MessageId: ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED // // MessageText: // // The specified print processor has already been installed. // // // MessageId: ERROR_PRINT_MONITOR_ALREADY_INSTALLED // // MessageText: // // The specified print monitor has already been installed. // // // MessageId: ERROR_INVALID_PRINT_MONITOR // // MessageText: // // The specified print monitor does not have the required functions. // // // MessageId: ERROR_PRINT_MONITOR_IN_USE // // MessageText: // // The specified print monitor is currently in use. // // // MessageId: ERROR_PRINTER_HAS_JOBS_QUEUED // // MessageText: // // The requested operation is not allowed when there are jobs queued to the printer. // // // MessageId: ERROR_SUCCESS_REBOOT_REQUIRED // // MessageText: // // The requested operation is successful. Changes will not be effective until the system is rebooted. // // // MessageId: ERROR_SUCCESS_RESTART_REQUIRED // // MessageText: // // The requested operation is successful. Changes will not be effective until the service is restarted. // // // MessageId: ERROR_PRINTER_NOT_FOUND // // MessageText: // // No printers were found. // // // MessageId: ERROR_PRINTER_DRIVER_WARNED // // MessageText: // // The printer driver is known to be unreliable. // // // MessageId: ERROR_PRINTER_DRIVER_BLOCKED // // MessageText: // // The printer driver is known to harm the system. // // // MessageId: ERROR_PRINTER_DRIVER_PACKAGE_IN_USE // // MessageText: // // The specified printer driver package is currently in use. // // // MessageId: ERROR_CORE_DRIVER_PACKAGE_NOT_FOUND // // MessageText: // // Unable to find a core driver package that is required by the printer driver package. // // // MessageId: ERROR_FAIL_REBOOT_REQUIRED // // MessageText: // // The requested operation failed. A system reboot is required to roll back changes made. // // // MessageId: ERROR_FAIL_REBOOT_INITIATED // // MessageText: // // The requested operation failed. A system reboot has been initiated to roll back changes made. // // // MessageId: ERROR_PRINTER_DRIVER_DOWNLOAD_NEEDED // // MessageText: // // The specified printer driver was not found on the system and needs to be downloaded. // // // MessageId: ERROR_PRINT_JOB_RESTART_REQUIRED // // MessageText: // // The requested print job has failed to print. A print system update requires the job to be resubmitted. // /////////////////////////////////////////////////// // // // Available // // // // 3050 to 3899 // /////////////////////////////////////////////////// /////////////////////////////////////////////////// // // // IO Error Codes // // // // 3900 to 3999 // /////////////////////////////////////////////////// // // MessageId: ERROR_IO_REISSUE_AS_CACHED // // MessageText: // // Reissue the given operation as a cached IO operation // /////////////////////////////////////////////////// // // // Wins Error codes // // // // 4000 to 4049 // /////////////////////////////////////////////////// // // MessageId: ERROR_WINS_INTERNAL // // MessageText: // // WINS encountered an error while processing the command. // // // MessageId: ERROR_CAN_NOT_DEL_LOCAL_WINS // // MessageText: // // The local WINS cannot be deleted. // // // MessageId: ERROR_STATIC_INIT // // MessageText: // // The importation from the file failed. // // // MessageId: ERROR_INC_BACKUP // // MessageText: // // The backup failed. Was a full backup done before? // // // MessageId: ERROR_FULL_BACKUP // // MessageText: // // The backup failed. Check the directory to which you are backing the database. // // // MessageId: ERROR_REC_NON_EXISTENT // // MessageText: // // The name does not exist in the WINS database. // // // MessageId: ERROR_RPL_NOT_ALLOWED // // MessageText: // // Replication with a nonconfigured partner is not allowed. // /////////////////////////////////////////////////// // // // Available // // // // 4050 to 4099 // /////////////////////////////////////////////////// /////////////////////////////////////////////////// // // // DHCP Error codes // // // // 4100 to 4149 // /////////////////////////////////////////////////// // // MessageId: ERROR_DHCP_ADDRESS_CONFLICT // // MessageText: // // The DHCP client has obtained an IP address that is already in use on the network. The local interface will be disabled until the DHCP client can obtain a new address. // /////////////////////////////////////////////////// // // // Available // // // // 4150 to 4199 // /////////////////////////////////////////////////// /////////////////////////////////////////////////// // // // WMI Error codes // // // // 4200 to 4249 // /////////////////////////////////////////////////// // // MessageId: ERROR_WMI_GUID_NOT_FOUND // // MessageText: // // The GUID passed was not recognized as valid by a WMI data provider. // // // MessageId: ERROR_WMI_INSTANCE_NOT_FOUND // // MessageText: // // The instance name passed was not recognized as valid by a WMI data provider. // // // MessageId: ERROR_WMI_ITEMID_NOT_FOUND // // MessageText: // // The data item ID passed was not recognized as valid by a WMI data provider. // // // MessageId: ERROR_WMI_TRY_AGAIN // // MessageText: // // The WMI request could not be completed and should be retried. // // // MessageId: ERROR_WMI_DP_NOT_FOUND // // MessageText: // // The WMI data provider could not be located. // // // MessageId: ERROR_WMI_UNRESOLVED_INSTANCE_REF // // MessageText: // // The WMI data provider references an instance set that has not been registered. // // // MessageId: ERROR_WMI_ALREADY_ENABLED // // MessageText: // // The WMI data block or event notification has already been enabled. // // // MessageId: ERROR_WMI_GUID_DISCONNECTED // // MessageText: // // The WMI data block is no longer available. // // // MessageId: ERROR_WMI_SERVER_UNAVAILABLE // // MessageText: // // The WMI data service is not available. // // // MessageId: ERROR_WMI_DP_FAILED // // MessageText: // // The WMI data provider failed to carry out the request. // // // MessageId: ERROR_WMI_INVALID_MOF // // MessageText: // // The WMI MOF information is not valid. // // // MessageId: ERROR_WMI_INVALID_REGINFO // // MessageText: // // The WMI registration information is not valid. // // // MessageId: ERROR_WMI_ALREADY_DISABLED // // MessageText: // // The WMI data block or event notification has already been disabled. // // // MessageId: ERROR_WMI_READ_ONLY // // MessageText: // // The WMI data item or data block is read only. // // // MessageId: ERROR_WMI_SET_FAILURE // // MessageText: // // The WMI data item or data block could not be changed. // /////////////////////////////////////////////////// // // // Available // // // // 4250 to 4299 // /////////////////////////////////////////////////// /////////////////////////////////////////////////// // // // RSM (Media Services) Error codes // // // // 4300 to 4349 // /////////////////////////////////////////////////// // // MessageId: ERROR_INVALID_MEDIA // // MessageText: // // The media identifier does not represent a valid medium. // // // MessageId: ERROR_INVALID_LIBRARY // // MessageText: // // The library identifier does not represent a valid library. // // // MessageId: ERROR_INVALID_MEDIA_POOL // // MessageText: // // The media pool identifier does not represent a valid media pool. // // // MessageId: ERROR_DRIVE_MEDIA_MISMATCH // // MessageText: // // The drive and medium are not compatible or exist in different libraries. // // // MessageId: ERROR_MEDIA_OFFLINE // // MessageText: // // The medium currently exists in an offline library and must be online to perform this operation. // // // MessageId: ERROR_LIBRARY_OFFLINE // // MessageText: // // The operation cannot be performed on an offline library. // // // MessageId: ERROR_EMPTY // // MessageText: // // The library, drive, or media pool is empty. // // // MessageId: ERROR_NOT_EMPTY // // MessageText: // // The library, drive, or media pool must be empty to perform this operation. // // // MessageId: ERROR_MEDIA_UNAVAILABLE // // MessageText: // // No media is currently available in this media pool or library. // // // MessageId: ERROR_RESOURCE_DISABLED // // MessageText: // // A resource required for this operation is disabled. // // // MessageId: ERROR_INVALID_CLEANER // // MessageText: // // The media identifier does not represent a valid cleaner. // // // MessageId: ERROR_UNABLE_TO_CLEAN // // MessageText: // // The drive cannot be cleaned or does not support cleaning. // // // MessageId: ERROR_OBJECT_NOT_FOUND // // MessageText: // // The object identifier does not represent a valid object. // // // MessageId: ERROR_DATABASE_FAILURE // // MessageText: // // Unable to read from or write to the database. // // // MessageId: ERROR_DATABASE_FULL // // MessageText: // // The database is full. // // // MessageId: ERROR_MEDIA_INCOMPATIBLE // // MessageText: // // The medium is not compatible with the device or media pool. // // // MessageId: ERROR_RESOURCE_NOT_PRESENT // // MessageText: // // The resource required for this operation does not exist. // // // MessageId: ERROR_INVALID_OPERATION // // MessageText: // // The operation identifier is not valid. // // // MessageId: ERROR_MEDIA_NOT_AVAILABLE // // MessageText: // // The media is not mounted or ready for use. // // // MessageId: ERROR_DEVICE_NOT_AVAILABLE // // MessageText: // // The device is not ready for use. // // // MessageId: ERROR_REQUEST_REFUSED // // MessageText: // // The operator or administrator has refused the request. // // // MessageId: ERROR_INVALID_DRIVE_OBJECT // // MessageText: // // The drive identifier does not represent a valid drive. // // // MessageId: ERROR_LIBRARY_FULL // // MessageText: // // Library is full. No slot is available for use. // // // MessageId: ERROR_MEDIUM_NOT_ACCESSIBLE // // MessageText: // // The transport cannot access the medium. // // // MessageId: ERROR_UNABLE_TO_LOAD_MEDIUM // // MessageText: // // Unable to load the medium into the drive. // // // MessageId: ERROR_UNABLE_TO_INVENTORY_DRIVE // // MessageText: // // Unable to retrieve the drive status. // // // MessageId: ERROR_UNABLE_TO_INVENTORY_SLOT // // MessageText: // // Unable to retrieve the slot status. // // // MessageId: ERROR_UNABLE_TO_INVENTORY_TRANSPORT // // MessageText: // // Unable to retrieve status about the transport. // // // MessageId: ERROR_TRANSPORT_FULL // // MessageText: // // Cannot use the transport because it is already in use. // // // MessageId: ERROR_CONTROLLING_IEPORT // // MessageText: // // Unable to open or close the inject/eject port. // // // MessageId: ERROR_UNABLE_TO_EJECT_MOUNTED_MEDIA // // MessageText: // // Unable to eject the medium because it is in a drive. // // // MessageId: ERROR_CLEANER_SLOT_SET // // MessageText: // // A cleaner slot is already reserved. // // // MessageId: ERROR_CLEANER_SLOT_NOT_SET // // MessageText: // // A cleaner slot is not reserved. // // // MessageId: ERROR_CLEANER_CARTRIDGE_SPENT // // MessageText: // // The cleaner cartridge has performed the maximum number of drive cleanings. // // // MessageId: ERROR_UNEXPECTED_OMID // // MessageText: // // Unexpected on-medium identifier. // // // MessageId: ERROR_CANT_DELETE_LAST_ITEM // // MessageText: // // The last remaining item in this group or resource cannot be deleted. // // // MessageId: ERROR_MESSAGE_EXCEEDS_MAX_SIZE // // MessageText: // // The message provided exceeds the maximum size allowed for this parameter. // // // MessageId: ERROR_VOLUME_CONTAINS_SYS_FILES // // MessageText: // // The volume contains system or paging files. // // // MessageId: ERROR_INDIGENOUS_TYPE // // MessageText: // // The media type cannot be removed from this library since at least one drive in the library reports it can support this media type. // // // MessageId: ERROR_NO_SUPPORTING_DRIVES // // MessageText: // // This offline media cannot be mounted on this system since no enabled drives are present which can be used. // // // MessageId: ERROR_CLEANER_CARTRIDGE_INSTALLED // // MessageText: // // A cleaner cartridge is present in the tape library. // // // MessageId: ERROR_IEPORT_FULL // // MessageText: // // Cannot use the ieport because it is not empty. // /////////////////////////////////////////////////// // // // Remote Storage Service Error codes // // // // 4350 to 4389 // /////////////////////////////////////////////////// // // MessageId: ERROR_FILE_OFFLINE // // MessageText: // // This file is currently not available for use on this computer. // // // MessageId: ERROR_REMOTE_STORAGE_NOT_ACTIVE // // MessageText: // // The remote storage service is not operational at this time. // // // MessageId: ERROR_REMOTE_STORAGE_MEDIA_ERROR // // MessageText: // // The remote storage service encountered a media error. // /////////////////////////////////////////////////// // // // Reparse Point Error codes // // // // 4390 to 4399 // /////////////////////////////////////////////////// // // MessageId: ERROR_NOT_A_REPARSE_POINT // // MessageText: // // The file or directory is not a reparse point. // // // MessageId: ERROR_REPARSE_ATTRIBUTE_CONFLICT // // MessageText: // // The reparse point attribute cannot be set because it conflicts with an existing attribute. // // // MessageId: ERROR_INVALID_REPARSE_DATA // // MessageText: // // The data present in the reparse point buffer is invalid. // // // MessageId: ERROR_REPARSE_TAG_INVALID // // MessageText: // // The tag present in the reparse point buffer is invalid. // // // MessageId: ERROR_REPARSE_TAG_MISMATCH // // MessageText: // // There is a mismatch between the tag specified in the request and the tag present in the reparse point. // // /////////////////////////////////////////////////// // // // Available // // // // 4400 to 4499 // /////////////////////////////////////////////////// /////////////////////////////////////////////////// // // // Single Instance Store (SIS) Error codes // // // // 4500 to 4549 // /////////////////////////////////////////////////// // // MessageId: ERROR_VOLUME_NOT_SIS_ENABLED // // MessageText: // // Single Instance Storage is not available on this volume. // /////////////////////////////////////////////////// // // // Available // // // // 4550 to 4599 // /////////////////////////////////////////////////// /////////////////////////////////////////////////// // // // Cluster Error codes // // // // 5000 to 5999 // /////////////////////////////////////////////////// // // MessageId: ERROR_DEPENDENT_RESOURCE_EXISTS // // MessageText: // // The operation cannot be completed because other resources are dependent on this resource. // // // MessageId: ERROR_DEPENDENCY_NOT_FOUND // // MessageText: // // The cluster resource dependency cannot be found. // // // MessageId: ERROR_DEPENDENCY_ALREADY_EXISTS // // MessageText: // // The cluster resource cannot be made dependent on the specified resource because it is already dependent. // // // MessageId: ERROR_RESOURCE_NOT_ONLINE // // MessageText: // // The cluster resource is not online. // // // MessageId: ERROR_HOST_NODE_NOT_AVAILABLE // // MessageText: // // A cluster node is not available for this operation. // // // MessageId: ERROR_RESOURCE_NOT_AVAILABLE // // MessageText: // // The cluster resource is not available. // // // MessageId: ERROR_RESOURCE_NOT_FOUND // // MessageText: // // The cluster resource could not be found. // // // MessageId: ERROR_SHUTDOWN_CLUSTER // // MessageText: // // The cluster is being shut down. // // // MessageId: ERROR_CANT_EVICT_ACTIVE_NODE // // MessageText: // // A cluster node cannot be evicted from the cluster unless the node is down or it is the last node. // // // MessageId: ERROR_OBJECT_ALREADY_EXISTS // // MessageText: // // The object already exists. // // // MessageId: ERROR_OBJECT_IN_LIST // // MessageText: // // The object is already in the list. // // // MessageId: ERROR_GROUP_NOT_AVAILABLE // // MessageText: // // The cluster group is not available for any new requests. // // // MessageId: ERROR_GROUP_NOT_FOUND // // MessageText: // // The cluster group could not be found. // // // MessageId: ERROR_GROUP_NOT_ONLINE // // MessageText: // // The operation could not be completed because the cluster group is not online. // // // MessageId: ERROR_HOST_NODE_NOT_RESOURCE_OWNER // // MessageText: // // The operation failed because either the specified cluster node is not the owner of the resource, or the node // is not a possible owner of the resource. // // // MessageId: ERROR_HOST_NODE_NOT_GROUP_OWNER // // MessageText: // // The operation failed because either the specified cluster node is not the owner of the group, or the node // is not a possible owner of the group. // // // MessageId: ERROR_RESMON_CREATE_FAILED // // MessageText: // // The cluster resource could not be created in the specified resource monitor. // // // MessageId: ERROR_RESMON_ONLINE_FAILED // // MessageText: // // The cluster resource could not be brought online by the resource monitor. // // // MessageId: ERROR_RESOURCE_ONLINE // // MessageText: // // The operation could not be completed because the cluster resource is online. // // // MessageId: ERROR_QUORUM_RESOURCE // // MessageText: // // The cluster resource could not be deleted or brought offline because it is the quorum resource. // // // MessageId: ERROR_NOT_QUORUM_CAPABLE // // MessageText: // // The cluster could not make the specified resource a quorum resource because it is not capable of being a quorum resource. // // // MessageId: ERROR_CLUSTER_SHUTTING_DOWN // // MessageText: // // The cluster software is shutting down. // // // MessageId: ERROR_INVALID_STATE // // MessageText: // // The group or resource is not in the correct state to perform the requested operation. // // // MessageId: ERROR_RESOURCE_PROPERTIES_STORED // // MessageText: // // The properties were stored but not all changes will take effect until the next time the resource is brought online. // // // MessageId: ERROR_NOT_QUORUM_CLASS // // MessageText: // // The cluster could not make the specified resource a quorum resource because it does not belong to a shared storage class. // // // MessageId: ERROR_CORE_RESOURCE // // MessageText: // // The cluster resource could not be deleted since it is a core resource. // // // MessageId: ERROR_QUORUM_RESOURCE_ONLINE_FAILED // // MessageText: // // The quorum resource failed to come online. // // // MessageId: ERROR_QUORUMLOG_OPEN_FAILED // // MessageText: // // The quorum log could not be created or mounted successfully. // // // MessageId: ERROR_CLUSTERLOG_CORRUPT // // MessageText: // // The cluster log is corrupt. // // // MessageId: ERROR_CLUSTERLOG_RECORD_EXCEEDS_MAXSIZE // // MessageText: // // The record could not be written to the cluster log since it exceeds the maximum size. // // // MessageId: ERROR_CLUSTERLOG_EXCEEDS_MAXSIZE // // MessageText: // // The cluster log exceeds its maximum size. // // // MessageId: ERROR_CLUSTERLOG_CHKPOINT_NOT_FOUND // // MessageText: // // No checkpoint record was found in the cluster log. // // // MessageId: ERROR_CLUSTERLOG_NOT_ENOUGH_SPACE // // MessageText: // // The minimum required disk space needed for logging is not available. // // // MessageId: ERROR_QUORUM_OWNER_ALIVE // // MessageText: // // The cluster node failed to take control of the quorum resource because the resource is owned by another active node. // // // MessageId: ERROR_NETWORK_NOT_AVAILABLE // // MessageText: // // A cluster network is not available for this operation. // // // MessageId: ERROR_NODE_NOT_AVAILABLE // // MessageText: // // A cluster node is not available for this operation. // // // MessageId: ERROR_ALL_NODES_NOT_AVAILABLE // // MessageText: // // All cluster nodes must be running to perform this operation. // // // MessageId: ERROR_RESOURCE_FAILED // // MessageText: // // A cluster resource failed. // // // MessageId: ERROR_CLUSTER_INVALID_NODE // // MessageText: // // The cluster node is not valid. // // // MessageId: ERROR_CLUSTER_NODE_EXISTS // // MessageText: // // The cluster node already exists. // // // MessageId: ERROR_CLUSTER_JOIN_IN_PROGRESS // // MessageText: // // A node is in the process of joining the cluster. // // // MessageId: ERROR_CLUSTER_NODE_NOT_FOUND // // MessageText: // // The cluster node was not found. // // // MessageId: ERROR_CLUSTER_LOCAL_NODE_NOT_FOUND // // MessageText: // // The cluster local node information was not found. // // // MessageId: ERROR_CLUSTER_NETWORK_EXISTS // // MessageText: // // The cluster network already exists. // // // MessageId: ERROR_CLUSTER_NETWORK_NOT_FOUND // // MessageText: // // The cluster network was not found. // // // MessageId: ERROR_CLUSTER_NETINTERFACE_EXISTS // // MessageText: // // The cluster network interface already exists. // // // MessageId: ERROR_CLUSTER_NETINTERFACE_NOT_FOUND // // MessageText: // // The cluster network interface was not found. // // // MessageId: ERROR_CLUSTER_INVALID_REQUEST // // MessageText: // // The cluster request is not valid for this object. // // // MessageId: ERROR_CLUSTER_INVALID_NETWORK_PROVIDER // // MessageText: // // The cluster network provider is not valid. // // // MessageId: ERROR_CLUSTER_NODE_DOWN // // MessageText: // // The cluster node is down. // // // MessageId: ERROR_CLUSTER_NODE_UNREACHABLE // // MessageText: // // The cluster node is not reachable. // // // MessageId: ERROR_CLUSTER_NODE_NOT_MEMBER // // MessageText: // // The cluster node is not a member of the cluster. // // // MessageId: ERROR_CLUSTER_JOIN_NOT_IN_PROGRESS // // MessageText: // // A cluster join operation is not in progress. // // // MessageId: ERROR_CLUSTER_INVALID_NETWORK // // MessageText: // // The cluster network is not valid. // // // MessageId: ERROR_CLUSTER_NODE_UP // // MessageText: // // The cluster node is up. // // // MessageId: ERROR_CLUSTER_IPADDR_IN_USE // // MessageText: // // The cluster IP address is already in use. // // // MessageId: ERROR_CLUSTER_NODE_NOT_PAUSED // // MessageText: // // The cluster node is not paused. // // // MessageId: ERROR_CLUSTER_NO_SECURITY_CONTEXT // // MessageText: // // No cluster security context is available. // // // MessageId: ERROR_CLUSTER_NETWORK_NOT_INTERNAL // // MessageText: // // The cluster network is not configured for internal cluster communication. // // // MessageId: ERROR_CLUSTER_NODE_ALREADY_UP // // MessageText: // // The cluster node is already up. // // // MessageId: ERROR_CLUSTER_NODE_ALREADY_DOWN // // MessageText: // // The cluster node is already down. // // // MessageId: ERROR_CLUSTER_NETWORK_ALREADY_ONLINE // // MessageText: // // The cluster network is already online. // // // MessageId: ERROR_CLUSTER_NETWORK_ALREADY_OFFLINE // // MessageText: // // The cluster network is already offline. // // // MessageId: ERROR_CLUSTER_NODE_ALREADY_MEMBER // // MessageText: // // The cluster node is already a member of the cluster. // // // MessageId: ERROR_CLUSTER_LAST_INTERNAL_NETWORK // // MessageText: // // The cluster network is the only one configured for internal cluster communication between two or more active cluster nodes. The internal communication capability cannot be removed from the network. // // // MessageId: ERROR_CLUSTER_NETWORK_HAS_DEPENDENTS // // MessageText: // // One or more cluster resources depend on the network to provide service to clients. The client access capability cannot be removed from the network. // // // MessageId: ERROR_INVALID_OPERATION_ON_QUORUM // // MessageText: // // This operation cannot be performed on the cluster resource as it the quorum resource. You may not bring the quorum resource offline or modify its possible owners list. // // // MessageId: ERROR_DEPENDENCY_NOT_ALLOWED // // MessageText: // // The cluster quorum resource is not allowed to have any dependencies. // // // MessageId: ERROR_CLUSTER_NODE_PAUSED // // MessageText: // // The cluster node is paused. // // // MessageId: ERROR_NODE_CANT_HOST_RESOURCE // // MessageText: // // The cluster resource cannot be brought online. The owner node cannot run this resource. // // // MessageId: ERROR_CLUSTER_NODE_NOT_READY // // MessageText: // // The cluster node is not ready to perform the requested operation. // // // MessageId: ERROR_CLUSTER_NODE_SHUTTING_DOWN // // MessageText: // // The cluster node is shutting down. // // // MessageId: ERROR_CLUSTER_JOIN_ABORTED // // MessageText: // // The cluster join operation was aborted. // // // MessageId: ERROR_CLUSTER_INCOMPATIBLE_VERSIONS // // MessageText: // // The cluster join operation failed due to incompatible software versions between the joining node and its sponsor. // // // MessageId: ERROR_CLUSTER_MAXNUM_OF_RESOURCES_EXCEEDED // // MessageText: // // This resource cannot be created because the cluster has reached the limit on the number of resources it can monitor. // // // MessageId: ERROR_CLUSTER_SYSTEM_CONFIG_CHANGED // // MessageText: // // The system configuration changed during the cluster join or form operation. The join or form operation was aborted. // // // MessageId: ERROR_CLUSTER_RESOURCE_TYPE_NOT_FOUND // // MessageText: // // The specified resource type was not found. // // // MessageId: ERROR_CLUSTER_RESTYPE_NOT_SUPPORTED // // MessageText: // // The specified node does not support a resource of this type. This may be due to version inconsistencies or due to the absence of the resource DLL on this node. // // // MessageId: ERROR_CLUSTER_RESNAME_NOT_FOUND // // MessageText: // // The specified resource name is not supported by this resource DLL. This may be due to a bad (or changed) name supplied to the resource DLL. // // // MessageId: ERROR_CLUSTER_NO_RPC_PACKAGES_REGISTERED // // MessageText: // // No authentication package could be registered with the RPC server. // // // MessageId: ERROR_CLUSTER_OWNER_NOT_IN_PREFLIST // // MessageText: // // You cannot bring the group online because the owner of the group is not in the preferred list for the group. To change the owner node for the group, move the group. // // // MessageId: ERROR_CLUSTER_DATABASE_SEQMISMATCH // // MessageText: // // The join operation failed because the cluster database sequence number has changed or is incompatible with the locker node. This may happen during a join operation if the cluster database was changing during the join. // // // MessageId: ERROR_RESMON_INVALID_STATE // // MessageText: // // The resource monitor will not allow the fail operation to be performed while the resource is in its current state. This may happen if the resource is in a pending state. // // // MessageId: ERROR_CLUSTER_GUM_NOT_LOCKER // // MessageText: // // A non locker code got a request to reserve the lock for making global updates. // // // MessageId: ERROR_QUORUM_DISK_NOT_FOUND // // MessageText: // // The quorum disk could not be located by the cluster service. // // // MessageId: ERROR_DATABASE_BACKUP_CORRUPT // // MessageText: // // The backed up cluster database is possibly corrupt. // // // MessageId: ERROR_CLUSTER_NODE_ALREADY_HAS_DFS_ROOT // // MessageText: // // A DFS root already exists in this cluster node. // // // MessageId: ERROR_RESOURCE_PROPERTY_UNCHANGEABLE // // MessageText: // // An attempt to modify a resource property failed because it conflicts with another existing property. // /* Codes from 4300 through 5889 overlap with codes in ds\published\inc\apperr2.w. Do not add any more error codes in that range. */ // // MessageId: ERROR_CLUSTER_MEMBERSHIP_INVALID_STATE // // MessageText: // // An operation was attempted that is incompatible with the current membership state of the node. // // // MessageId: ERROR_CLUSTER_QUORUMLOG_NOT_FOUND // // MessageText: // // The quorum resource does not contain the quorum log. // // // MessageId: ERROR_CLUSTER_MEMBERSHIP_HALT // // MessageText: // // The membership engine requested shutdown of the cluster service on this node. // // // MessageId: ERROR_CLUSTER_INSTANCE_ID_MISMATCH // // MessageText: // // The join operation failed because the cluster instance ID of the joining node does not match the cluster instance ID of the sponsor node. // // // MessageId: ERROR_CLUSTER_NETWORK_NOT_FOUND_FOR_IP // // MessageText: // // A matching cluster network for the specified IP address could not be found. // // // MessageId: ERROR_CLUSTER_PROPERTY_DATA_TYPE_MISMATCH // // MessageText: // // The actual data type of the property did not match the expected data type of the property. // // // MessageId: ERROR_CLUSTER_EVICT_WITHOUT_CLEANUP // // MessageText: // // The cluster node was evicted from the cluster successfully, but the node was not cleaned up. To determine what cleanup steps failed and how to recover, see the Failover Clustering application event log using Event Viewer. // // // MessageId: ERROR_CLUSTER_PARAMETER_MISMATCH // // MessageText: // // Two or more parameter values specified for a resource's properties are in conflict. // // // MessageId: ERROR_NODE_CANNOT_BE_CLUSTERED // // MessageText: // // This computer cannot be made a member of a cluster. // // // MessageId: ERROR_CLUSTER_WRONG_OS_VERSION // // MessageText: // // This computer cannot be made a member of a cluster because it does not have the correct version of Windows installed. // // // MessageId: ERROR_CLUSTER_CANT_CREATE_DUP_CLUSTER_NAME // // MessageText: // // A cluster cannot be created with the specified cluster name because that cluster name is already in use. Specify a different name for the cluster. // // // MessageId: ERROR_CLUSCFG_ALREADY_COMMITTED // // MessageText: // // The cluster configuration action has already been committed. // // // MessageId: ERROR_CLUSCFG_ROLLBACK_FAILED // // MessageText: // // The cluster configuration action could not be rolled back. // // // MessageId: ERROR_CLUSCFG_SYSTEM_DISK_DRIVE_LETTER_CONFLICT // // MessageText: // // The drive letter assigned to a system disk on one node conflicted with the drive letter assigned to a disk on another node. // // // MessageId: ERROR_CLUSTER_OLD_VERSION // // MessageText: // // One or more nodes in the cluster are running a version of Windows that does not support this operation. // // // MessageId: ERROR_CLUSTER_MISMATCHED_COMPUTER_ACCT_NAME // // MessageText: // // The name of the corresponding computer account doesn't match the Network Name for this resource. // // // MessageId: ERROR_CLUSTER_NO_NET_ADAPTERS // // MessageText: // // No network adapters are available. // // // MessageId: ERROR_CLUSTER_POISONED // // MessageText: // // The cluster node has been poisoned. // // // MessageId: ERROR_CLUSTER_GROUP_MOVING // // MessageText: // // The group is unable to accept the request since it is moving to another node. // // // MessageId: ERROR_CLUSTER_RESOURCE_TYPE_BUSY // // MessageText: // // The resource type cannot accept the request since is too busy performing another operation. // // // MessageId: ERROR_RESOURCE_CALL_TIMED_OUT // // MessageText: // // The call to the cluster resource DLL timed out. // // // MessageId: ERROR_INVALID_CLUSTER_IPV6_ADDRESS // // MessageText: // // The address is not valid for an IPv6 Address resource. A global IPv6 address is required, and it must match a cluster network. Compatibility addresses are not permitted. // // // MessageId: ERROR_CLUSTER_INTERNAL_INVALID_FUNCTION // // MessageText: // // An internal cluster error occurred. A call to an invalid function was attempted. // // // MessageId: ERROR_CLUSTER_PARAMETER_OUT_OF_BOUNDS // // MessageText: // // A parameter value is out of acceptable range. // // // MessageId: ERROR_CLUSTER_PARTIAL_SEND // // MessageText: // // A network error occurred while sending data to another node in the cluster. The number of bytes transmitted was less than required. // // // MessageId: ERROR_CLUSTER_REGISTRY_INVALID_FUNCTION // // MessageText: // // An invalid cluster registry operation was attempted. // // // MessageId: ERROR_CLUSTER_INVALID_STRING_TERMINATION // // MessageText: // // An input string of characters is not properly terminated. // // // MessageId: ERROR_CLUSTER_INVALID_STRING_FORMAT // // MessageText: // // An input string of characters is not in a valid format for the data it represents. // // // MessageId: ERROR_CLUSTER_DATABASE_TRANSACTION_IN_PROGRESS // // MessageText: // // An internal cluster error occurred. A cluster database transaction was attempted while a transaction was already in progress. // // // MessageId: ERROR_CLUSTER_DATABASE_TRANSACTION_NOT_IN_PROGRESS // // MessageText: // // An internal cluster error occurred. There was an attempt to commit a cluster database transaction while no transaction was in progress. // // // MessageId: ERROR_CLUSTER_NULL_DATA // // MessageText: // // An internal cluster error occurred. Data was not properly initialized. // // // MessageId: ERROR_CLUSTER_PARTIAL_READ // // MessageText: // // An error occurred while reading from a stream of data. An unexpected number of bytes was returned. // // // MessageId: ERROR_CLUSTER_PARTIAL_WRITE // // MessageText: // // An error occurred while writing to a stream of data. The required number of bytes could not be written. // // // MessageId: ERROR_CLUSTER_CANT_DESERIALIZE_DATA // // MessageText: // // An error occurred while deserializing a stream of cluster data. // // // MessageId: ERROR_DEPENDENT_RESOURCE_PROPERTY_CONFLICT // // MessageText: // // One or more property values for this resource are in conflict with one or more property values associated with its dependent resource(s). // // // MessageId: ERROR_CLUSTER_NO_QUORUM // // MessageText: // // A quorum of cluster nodes was not present to form a cluster. // // // MessageId: ERROR_CLUSTER_INVALID_IPV6_NETWORK // // MessageText: // // The cluster network is not valid for an IPv6 Address resource, or it does not match the configured address. // // // MessageId: ERROR_CLUSTER_INVALID_IPV6_TUNNEL_NETWORK // // MessageText: // // The cluster network is not valid for an IPv6 Tunnel resource. Check the configuration of the IP Address resource on which the IPv6 Tunnel resource depends. // // // MessageId: ERROR_QUORUM_NOT_ALLOWED_IN_THIS_GROUP // // MessageText: // // Quorum resource cannot reside in the Available Storage group. // // // MessageId: ERROR_DEPENDENCY_TREE_TOO_COMPLEX // // MessageText: // // The dependencies for this resource are nested too deeply. // // // MessageId: ERROR_EXCEPTION_IN_RESOURCE_CALL // // MessageText: // // The call into the resource DLL raised an unhandled exception. // // // MessageId: ERROR_CLUSTER_RHS_FAILED_INITIALIZATION // // MessageText: // // The RHS process failed to initialize. // // // MessageId: ERROR_CLUSTER_NOT_INSTALLED // // MessageText: // // The Failover Clustering feature is not installed on this node. // // // MessageId: ERROR_CLUSTER_RESOURCES_MUST_BE_ONLINE_ON_THE_SAME_NODE // // MessageText: // // The resources must be online on the same node for this operation // /////////////////////////////////////////////////// // // // EFS Error codes // // // // 6000 to 6099 // /////////////////////////////////////////////////// // // MessageId: ERROR_ENCRYPTION_FAILED // // MessageText: // // The specified file could not be encrypted. // // // MessageId: ERROR_DECRYPTION_FAILED // // MessageText: // // The specified file could not be decrypted. // // // MessageId: ERROR_FILE_ENCRYPTED // // MessageText: // // The specified file is encrypted and the user does not have the ability to decrypt it. // // // MessageId: ERROR_NO_RECOVERY_POLICY // // MessageText: // // There is no valid encryption recovery policy configured for this system. // // // MessageId: ERROR_NO_EFS // // MessageText: // // The required encryption driver is not loaded for this system. // // // MessageId: ERROR_WRONG_EFS // // MessageText: // // The file was encrypted with a different encryption driver than is currently loaded. // // // MessageId: ERROR_NO_USER_KEYS // // MessageText: // // There are no EFS keys defined for the user. // // // MessageId: ERROR_FILE_NOT_ENCRYPTED // // MessageText: // // The specified file is not encrypted. // // // MessageId: ERROR_NOT_EXPORT_FORMAT // // MessageText: // // The specified file is not in the defined EFS export format. // // // MessageId: ERROR_FILE_READ_ONLY // // MessageText: // // The specified file is read only. // // // MessageId: ERROR_DIR_EFS_DISALLOWED // // MessageText: // // The directory has been disabled for encryption. // // // MessageId: ERROR_EFS_SERVER_NOT_TRUSTED // // MessageText: // // The server is not trusted for remote encryption operation. // // // MessageId: ERROR_BAD_RECOVERY_POLICY // // MessageText: // // Recovery policy configured for this system contains invalid recovery certificate. // // // MessageId: ERROR_EFS_ALG_BLOB_TOO_BIG // // MessageText: // // The encryption algorithm used on the source file needs a bigger key buffer than the one on the destination file. // // // MessageId: ERROR_VOLUME_NOT_SUPPORT_EFS // // MessageText: // // The disk partition does not support file encryption. // // // MessageId: ERROR_EFS_DISABLED // // MessageText: // // This machine is disabled for file encryption. // // // MessageId: ERROR_EFS_VERSION_NOT_SUPPORT // // MessageText: // // A newer system is required to decrypt this encrypted file. // // // MessageId: ERROR_CS_ENCRYPTION_INVALID_SERVER_RESPONSE // // MessageText: // // The remote server sent an invalid response for a file being opened with Client Side Encryption. // // // MessageId: ERROR_CS_ENCRYPTION_UNSUPPORTED_SERVER // // MessageText: // // Client Side Encryption is not supported by the remote server even though it claims to support it. // // // MessageId: ERROR_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE // // MessageText: // // File is encrypted and should be opened in Client Side Encryption mode. // // // MessageId: ERROR_CS_ENCRYPTION_NEW_ENCRYPTED_FILE // // MessageText: // // A new encrypted file is being created and a $EFS needs to be provided. // // // MessageId: ERROR_CS_ENCRYPTION_FILE_NOT_CSE // // MessageText: // // The SMB client requested a CSE FSCTL on a non-CSE file. // /////////////////////////////////////////////////// // // // BROWSER Error codes // // // // 6100 to 6199 // /////////////////////////////////////////////////// // This message number is for historical purposes and cannot be changed or re-used. // // MessageId: ERROR_NO_BROWSER_SERVERS_FOUND // // MessageText: // // The list of servers for this workgroup is not currently available // /////////////////////////////////////////////////// // // // Task Scheduler Error codes // // NET START must understand // // // // 6200 to 6249 // /////////////////////////////////////////////////// // // MessageId: SCHED_E_SERVICE_NOT_LOCALSYSTEM // // MessageText: // // The Task Scheduler service must be configured to run in the System account to function properly. Individual tasks may be configured to run in other accounts. // /////////////////////////////////////////////////// // // // Available // // // // 6250 to 6599 // /////////////////////////////////////////////////// /////////////////////////////////////////////////// // // // Common Log (CLFS) Error codes // // // // 6600 to 6699 // /////////////////////////////////////////////////// // // MessageId: ERROR_LOG_SECTOR_INVALID // // MessageText: // // Log service encountered an invalid log sector. // // // MessageId: ERROR_LOG_SECTOR_PARITY_INVALID // // MessageText: // // Log service encountered a log sector with invalid block parity. // // // MessageId: ERROR_LOG_SECTOR_REMAPPED // // MessageText: // // Log service encountered a remapped log sector. // // // MessageId: ERROR_LOG_BLOCK_INCOMPLETE // // MessageText: // // Log service encountered a partial or incomplete log block. // // // MessageId: ERROR_LOG_INVALID_RANGE // // MessageText: // // Log service encountered an attempt access data outside the active log range. // // // MessageId: ERROR_LOG_BLOCKS_EXHAUSTED // // MessageText: // // Log service user marshalling buffers are exhausted. // // // MessageId: ERROR_LOG_READ_CONTEXT_INVALID // // MessageText: // // Log service encountered an attempt read from a marshalling area with an invalid read context. // // // MessageId: ERROR_LOG_RESTART_INVALID // // MessageText: // // Log service encountered an invalid log restart area. // // // MessageId: ERROR_LOG_BLOCK_VERSION // // MessageText: // // Log service encountered an invalid log block version. // // // MessageId: ERROR_LOG_BLOCK_INVALID // // MessageText: // // Log service encountered an invalid log block. // // // MessageId: ERROR_LOG_READ_MODE_INVALID // // MessageText: // // Log service encountered an attempt to read the log with an invalid read mode. // // // MessageId: ERROR_LOG_NO_RESTART // // MessageText: // // Log service encountered a log stream with no restart area. // // // MessageId: ERROR_LOG_METADATA_CORRUPT // // MessageText: // // Log service encountered a corrupted metadata file. // // // MessageId: ERROR_LOG_METADATA_INVALID // // MessageText: // // Log service encountered a metadata file that could not be created by the log file system. // // // MessageId: ERROR_LOG_METADATA_INCONSISTENT // // MessageText: // // Log service encountered a metadata file with inconsistent data. // // // MessageId: ERROR_LOG_RESERVATION_INVALID // // MessageText: // // Log service encountered an attempt to erroneous allocate or dispose reservation space. // // // MessageId: ERROR_LOG_CANT_DELETE // // MessageText: // // Log service cannot delete log file or file system container. // // // MessageId: ERROR_LOG_CONTAINER_LIMIT_EXCEEDED // // MessageText: // // Log service has reached the maximum allowable containers allocated to a log file. // // // MessageId: ERROR_LOG_START_OF_LOG // // MessageText: // // Log service has attempted to read or write backward past the start of the log. // // // MessageId: ERROR_LOG_POLICY_ALREADY_INSTALLED // // MessageText: // // Log policy could not be installed because a policy of the same type is already present. // // // MessageId: ERROR_LOG_POLICY_NOT_INSTALLED // // MessageText: // // Log policy in question was not installed at the time of the request. // // // MessageId: ERROR_LOG_POLICY_INVALID // // MessageText: // // The installed set of policies on the log is invalid. // // // MessageId: ERROR_LOG_POLICY_CONFLICT // // MessageText: // // A policy on the log in question prevented the operation from completing. // // // MessageId: ERROR_LOG_PINNED_ARCHIVE_TAIL // // MessageText: // // Log space cannot be reclaimed because the log is pinned by the archive tail. // // // MessageId: ERROR_LOG_RECORD_NONEXISTENT // // MessageText: // // Log record is not a record in the log file. // // // MessageId: ERROR_LOG_RECORDS_RESERVED_INVALID // // MessageText: // // Number of reserved log records or the adjustment of the number of reserved log records is invalid. // // // MessageId: ERROR_LOG_SPACE_RESERVED_INVALID // // MessageText: // // Reserved log space or the adjustment of the log space is invalid. // // // MessageId: ERROR_LOG_TAIL_INVALID // // MessageText: // // An new or existing archive tail or base of the active log is invalid. // // // MessageId: ERROR_LOG_FULL // // MessageText: // // Log space is exhausted. // // // MessageId: ERROR_COULD_NOT_RESIZE_LOG // // MessageText: // // The log could not be set to the requested size. // // // MessageId: ERROR_LOG_MULTIPLEXED // // MessageText: // // Log is multiplexed, no direct writes to the physical log is allowed. // // // MessageId: ERROR_LOG_DEDICATED // // MessageText: // // The operation failed because the log is a dedicated log. // // // MessageId: ERROR_LOG_ARCHIVE_NOT_IN_PROGRESS // // MessageText: // // The operation requires an archive context. // // // MessageId: ERROR_LOG_ARCHIVE_IN_PROGRESS // // MessageText: // // Log archival is in progress. // // // MessageId: ERROR_LOG_EPHEMERAL // // MessageText: // // The operation requires a non-ephemeral log, but the log is ephemeral. // // // MessageId: ERROR_LOG_NOT_ENOUGH_CONTAINERS // // MessageText: // // The log must have at least two containers before it can be read from or written to. // // // MessageId: ERROR_LOG_CLIENT_ALREADY_REGISTERED // // MessageText: // // A log client has already registered on the stream. // // // MessageId: ERROR_LOG_CLIENT_NOT_REGISTERED // // MessageText: // // A log client has not been registered on the stream. // // // MessageId: ERROR_LOG_FULL_HANDLER_IN_PROGRESS // // MessageText: // // A request has already been made to handle the log full condition. // // // MessageId: ERROR_LOG_CONTAINER_READ_FAILED // // MessageText: // // Log service enountered an error when attempting to read from a log container. // // // MessageId: ERROR_LOG_CONTAINER_WRITE_FAILED // // MessageText: // // Log service enountered an error when attempting to write to a log container. // // // MessageId: ERROR_LOG_CONTAINER_OPEN_FAILED // // MessageText: // // Log service enountered an error when attempting open a log container. // // // MessageId: ERROR_LOG_CONTAINER_STATE_INVALID // // MessageText: // // Log service enountered an invalid container state when attempting a requested action. // // // MessageId: ERROR_LOG_STATE_INVALID // // MessageText: // // Log service is not in the correct state to perform a requested action. // // // MessageId: ERROR_LOG_PINNED // // MessageText: // // Log space cannot be reclaimed because the log is pinned. // // // MessageId: ERROR_LOG_METADATA_FLUSH_FAILED // // MessageText: // // Log metadata flush failed. // // // MessageId: ERROR_LOG_INCONSISTENT_SECURITY // // MessageText: // // Security on the log and its containers is inconsistent. // // // MessageId: ERROR_LOG_APPENDED_FLUSH_FAILED // // MessageText: // // Records were appended to the log or reservation changes were made, but the log could not be flushed. // // // MessageId: ERROR_LOG_PINNED_RESERVATION // // MessageText: // // The log is pinned due to reservation consuming most of the log space. Free some reserved records to make space available. // /////////////////////////////////////////////////// // // // Transaction (KTM) Error codes // // // // 6700 to 6799 // /////////////////////////////////////////////////// // // MessageId: ERROR_INVALID_TRANSACTION // // MessageText: // // The transaction handle associated with this operation is not valid. // // // MessageId: ERROR_TRANSACTION_NOT_ACTIVE // // MessageText: // // The requested operation was made in the context of a transaction that is no longer active. // // // MessageId: ERROR_TRANSACTION_REQUEST_NOT_VALID // // MessageText: // // The requested operation is not valid on the Transaction object in its current state. // // // MessageId: ERROR_TRANSACTION_NOT_REQUESTED // // MessageText: // // The caller has called a response API, but the response is not expected because the TM did not issue the corresponding request to the caller. // // // MessageId: ERROR_TRANSACTION_ALREADY_ABORTED // // MessageText: // // It is too late to perform the requested operation, since the Transaction has already been aborted. // // // MessageId: ERROR_TRANSACTION_ALREADY_COMMITTED // // MessageText: // // It is too late to perform the requested operation, since the Transaction has already been committed. // // // MessageId: ERROR_TM_INITIALIZATION_FAILED // // MessageText: // // The Transaction Manager was unable to be successfully initialized. Transacted operations are not supported. // // // MessageId: ERROR_RESOURCEMANAGER_READ_ONLY // // MessageText: // // The specified ResourceManager made no changes or updates to the resource under this transaction. // // // MessageId: ERROR_TRANSACTION_NOT_JOINED // // MessageText: // // The resource manager has attempted to prepare a transaction that it has not successfully joined. // // // MessageId: ERROR_TRANSACTION_SUPERIOR_EXISTS // // MessageText: // // The Transaction object already has a superior enlistment, and the caller attempted an operation that would have created a new superior. Only a single superior enlistment is allow. // // // MessageId: ERROR_CRM_PROTOCOL_ALREADY_EXISTS // // MessageText: // // The RM tried to register a protocol that already exists. // // // MessageId: ERROR_TRANSACTION_PROPAGATION_FAILED // // MessageText: // // The attempt to propagate the Transaction failed. // // // MessageId: ERROR_CRM_PROTOCOL_NOT_FOUND // // MessageText: // // The requested propagation protocol was not registered as a CRM. // // // MessageId: ERROR_TRANSACTION_INVALID_MARSHALL_BUFFER // // MessageText: // // The buffer passed in to PushTransaction or PullTransaction is not in a valid format. // // // MessageId: ERROR_CURRENT_TRANSACTION_NOT_VALID // // MessageText: // // The current transaction context associated with the thread is not a valid handle to a transaction object. // // // MessageId: ERROR_TRANSACTION_NOT_FOUND // // MessageText: // // The specified Transaction object could not be opened, because it was not found. // // // MessageId: ERROR_RESOURCEMANAGER_NOT_FOUND // // MessageText: // // The specified ResourceManager object could not be opened, because it was not found. // // // MessageId: ERROR_ENLISTMENT_NOT_FOUND // // MessageText: // // The specified Enlistment object could not be opened, because it was not found. // // // MessageId: ERROR_TRANSACTIONMANAGER_NOT_FOUND // // MessageText: // // The specified TransactionManager object could not be opened, because it was not found. // // // MessageId: ERROR_TRANSACTIONMANAGER_NOT_ONLINE // // MessageText: // // The specified ResourceManager was unable to create an enlistment, because its associated TransactionManager is not online. // // // MessageId: ERROR_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION // // MessageText: // // The specified TransactionManager was unable to create the objects contained in its logfile in the Ob namespace. Therefore, the TransactionManager was unable to recover. // // // MessageId: ERROR_TRANSACTION_NOT_ROOT // // MessageText: // // The call to create a superior Enlistment on this Transaction object could not be completed, because the Transaction object specified for the enlistment is a subordinate branch of the Transaction. Only the root of the Transactoin can be enlisted on as a superior. // // // MessageId: ERROR_TRANSACTION_OBJECT_EXPIRED // // MessageText: // // Because the associated transaction manager or resource manager has been closed, the handle is no longer valid. // // // MessageId: ERROR_TRANSACTION_RESPONSE_NOT_ENLISTED // // MessageText: // // The specified operation could not be performed on this Superior enlistment, because the enlistment was not created with the corresponding completion response in the NotificationMask. // // // MessageId: ERROR_TRANSACTION_RECORD_TOO_LONG // // MessageText: // // The specified operation could not be performed, because the record that would be logged was too long. This can occur because of two conditions: either there are too many Enlistments on this Transaction, or the combined RecoveryInformation being logged on behalf of those Enlistments is too long. // // // MessageId: ERROR_IMPLICIT_TRANSACTION_NOT_SUPPORTED // // MessageText: // // Implicit transaction are not supported. // // // MessageId: ERROR_TRANSACTION_INTEGRITY_VIOLATED // // MessageText: // // The kernel transaction manager had to abort or forget the transaction because it blocked forward progress. // /////////////////////////////////////////////////// // // // Transactional File Services (TxF) // // Error codes // // // // 6800 to 6899 // /////////////////////////////////////////////////// // // MessageId: ERROR_TRANSACTIONAL_CONFLICT // // MessageText: // // The function attempted to use a name that is reserved for use by another transaction. // // // MessageId: ERROR_RM_NOT_ACTIVE // // MessageText: // // Transaction support within the specified file system resource manager is not started or was shutdown due to an error. // // // MessageId: ERROR_RM_METADATA_CORRUPT // // MessageText: // // The metadata of the RM has been corrupted. The RM will not function. // // // MessageId: ERROR_DIRECTORY_NOT_RM // // MessageText: // // The specified directory does not contain a resource manager. // // // MessageId: ERROR_TRANSACTIONS_UNSUPPORTED_REMOTE // // MessageText: // // The remote server or share does not support transacted file operations. // // // MessageId: ERROR_LOG_RESIZE_INVALID_SIZE // // MessageText: // // The requested log size is invalid. // // // MessageId: ERROR_OBJECT_NO_LONGER_EXISTS // // MessageText: // // The object (file, stream, link) corresponding to the handle has been deleted by a Transaction Savepoint Rollback. // // // MessageId: ERROR_STREAM_MINIVERSION_NOT_FOUND // // MessageText: // // The specified file miniversion was not found for this transacted file open. // // // MessageId: ERROR_STREAM_MINIVERSION_NOT_VALID // // MessageText: // // The specified file miniversion was found but has been invalidated. Most likely cause is a transaction savepoint rollback. // // // MessageId: ERROR_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION // // MessageText: // // A miniversion may only be opened in the context of the transaction that created it. // // // MessageId: ERROR_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT // // MessageText: // // It is not possible to open a miniversion with modify access. // // // MessageId: ERROR_CANT_CREATE_MORE_STREAM_MINIVERSIONS // // MessageText: // // It is not possible to create any more miniversions for this stream. // // // MessageId: ERROR_REMOTE_FILE_VERSION_MISMATCH // // MessageText: // // The remote server sent mismatching version number or Fid for a file opened with transactions. // // // MessageId: ERROR_HANDLE_NO_LONGER_VALID // // MessageText: // // The handle has been invalidated by a transaction. The most likely cause is the presence of memory mapping on a file or an open handle when the transaction ended or rolled back to savepoint. // // // MessageId: ERROR_NO_TXF_METADATA // // MessageText: // // There is no transaction metadata on the file. // // // MessageId: ERROR_LOG_CORRUPTION_DETECTED // // MessageText: // // The log data is corrupt. // // // MessageId: ERROR_CANT_RECOVER_WITH_HANDLE_OPEN // // MessageText: // // The file can't be recovered because there is a handle still open on it. // // // MessageId: ERROR_RM_DISCONNECTED // // MessageText: // // The transaction outcome is unavailable because the resource manager responsible for it has disconnected. // // // MessageId: ERROR_ENLISTMENT_NOT_SUPERIOR // // MessageText: // // The request was rejected because the enlistment in question is not a superior enlistment. // // // MessageId: ERROR_RECOVERY_NOT_NEEDED // // MessageText: // // The transactional resource manager is already consistent. Recovery is not needed. // // // MessageId: ERROR_RM_ALREADY_STARTED // // MessageText: // // The transactional resource manager has already been started. // // // MessageId: ERROR_FILE_IDENTITY_NOT_PERSISTENT // // MessageText: // // The file cannot be opened transactionally, because its identity depends on the outcome of an unresolved transaction. // // // MessageId: ERROR_CANT_BREAK_TRANSACTIONAL_DEPENDENCY // // MessageText: // // The operation cannot be performed because another transaction is depending on the fact that this property will not change. // // // MessageId: ERROR_CANT_CROSS_RM_BOUNDARY // // MessageText: // // The operation would involve a single file with two transactional resource managers and is therefore not allowed. // // // MessageId: ERROR_TXF_DIR_NOT_EMPTY // // MessageText: // // The $Txf directory must be empty for this operation to succeed. // // // MessageId: ERROR_INDOUBT_TRANSACTIONS_EXIST // // MessageText: // // The operation would leave a transactional resource manager in an inconsistent state and is therefore not allowed. // // // MessageId: ERROR_TM_VOLATILE // // MessageText: // // The operation could not be completed because the transaction manager does not have a log. // // // MessageId: ERROR_ROLLBACK_TIMER_EXPIRED // // MessageText: // // A rollback could not be scheduled because a previously scheduled rollback has already executed or been queued for execution. // // // MessageId: ERROR_TXF_ATTRIBUTE_CORRUPT // // MessageText: // // The transactional metadata attribute on the file or directory is corrupt and unreadable. // // // MessageId: ERROR_EFS_NOT_ALLOWED_IN_TRANSACTION // // MessageText: // // The encryption operation could not be completed because a transaction is active. // // // MessageId: ERROR_TRANSACTIONAL_OPEN_NOT_ALLOWED // // MessageText: // // This object is not allowed to be opened in a transaction. // // // MessageId: ERROR_LOG_GROWTH_FAILED // // MessageText: // // An attempt to create space in the transactional resource manager's log failed. The failure status has been recorded in the event log. // // // MessageId: ERROR_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE // // MessageText: // // Memory mapping (creating a mapped section) a remote file under a transaction is not supported. // // // MessageId: ERROR_TXF_METADATA_ALREADY_PRESENT // // MessageText: // // Transaction metadata is already present on this file and cannot be superseded. // // // MessageId: ERROR_TRANSACTION_SCOPE_CALLBACKS_NOT_SET // // MessageText: // // A transaction scope could not be entered because the scope handler has not been initialized. // // // MessageId: ERROR_TRANSACTION_REQUIRED_PROMOTION // // MessageText: // // Promotion was required in order to allow the resource manager to enlist, but the transaction was set to disallow it. // // // MessageId: ERROR_CANNOT_EXECUTE_FILE_IN_TRANSACTION // // MessageText: // // This file is open for modification in an unresolved transaction and may be opened for execute only by a transacted reader. // // // MessageId: ERROR_TRANSACTIONS_NOT_FROZEN // // MessageText: // // The request to thaw frozen transactions was ignored because transactions had not previously been frozen. // // // MessageId: ERROR_TRANSACTION_FREEZE_IN_PROGRESS // // MessageText: // // Transactions cannot be frozen because a freeze is already in progress. // // // MessageId: ERROR_NOT_SNAPSHOT_VOLUME // // MessageText: // // The target volume is not a snapshot volume. This operation is only valid on a volume mounted as a snapshot. // // // MessageId: ERROR_NO_SAVEPOINT_WITH_OPEN_FILES // // MessageText: // // The savepoint operation failed because files are open on the transaction. This is not permitted. // // // MessageId: ERROR_DATA_LOST_REPAIR // // MessageText: // // Windows has discovered corruption in a file, and that file has since been repaired. Data loss may have occurred. // // // MessageId: ERROR_SPARSE_NOT_ALLOWED_IN_TRANSACTION // // MessageText: // // The sparse operation could not be completed because a transaction is active on the file. // // // MessageId: ERROR_TM_IDENTITY_MISMATCH // // MessageText: // // The call to create a TransactionManager object failed because the Tm Identity stored in the logfile does not match the Tm Identity that was passed in as an argument. // // // MessageId: ERROR_FLOATED_SECTION // // MessageText: // // I/O was attempted on a section object that has been floated as a result of a transaction ending. There is no valid data. // // // MessageId: ERROR_CANNOT_ACCEPT_TRANSACTED_WORK // // MessageText: // // The transactional resource manager cannot currently accept transacted work due to a transient condition such as low resources. // // // MessageId: ERROR_CANNOT_ABORT_TRANSACTIONS // // MessageText: // // The transactional resource manager had too many tranactions outstanding that could not be aborted. The transactional resource manger has been shut down. // // // MessageId: ERROR_BAD_CLUSTERS // // MessageText: // // The operation could not be completed due to bad clusters on disk. // // // MessageId: ERROR_COMPRESSION_NOT_ALLOWED_IN_TRANSACTION // // MessageText: // // The compression operation could not be completed because a transaction is active on the file. // // // MessageId: ERROR_VOLUME_DIRTY // // MessageText: // // The operation could not be completed because the volume is dirty. Please run chkdsk and try again. // // // MessageId: ERROR_NO_LINK_TRACKING_IN_TRANSACTION // // MessageText: // // The link tracking operation could not be completed because a transaction is active. // // // MessageId: ERROR_OPERATION_NOT_SUPPORTED_IN_TRANSACTION // // MessageText: // // This operation cannot be performed in a transaction. // /////////////////////////////////////////////////// // // // Available // // // // 6900 to 6999 // /////////////////////////////////////////////////// /////////////////////////////////////////////////// // // // Terminal Server Error codes // // // // 7000 to 7099 // /////////////////////////////////////////////////// // // MessageId: ERROR_CTX_WINSTATION_NAME_INVALID // // MessageText: // // The specified session name is invalid. // // // MessageId: ERROR_CTX_INVALID_PD // // MessageText: // // The specified protocol driver is invalid. // // // MessageId: ERROR_CTX_PD_NOT_FOUND // // MessageText: // // The specified protocol driver was not found in the system path. // // // MessageId: ERROR_CTX_WD_NOT_FOUND // // MessageText: // // The specified terminal connection driver was not found in the system path. // // // MessageId: ERROR_CTX_CANNOT_MAKE_EVENTLOG_ENTRY // // MessageText: // // A registry key for event logging could not be created for this session. // // // MessageId: ERROR_CTX_SERVICE_NAME_COLLISION // // MessageText: // // A service with the same name already exists on the system. // // // MessageId: ERROR_CTX_CLOSE_PENDING // // MessageText: // // A close operation is pending on the session. // // // MessageId: ERROR_CTX_NO_OUTBUF // // MessageText: // // There are no free output buffers available. // // // MessageId: ERROR_CTX_MODEM_INF_NOT_FOUND // // MessageText: // // The MODEM.INF file was not found. // // // MessageId: ERROR_CTX_INVALID_MODEMNAME // // MessageText: // // The modem name was not found in MODEM.INF. // // // MessageId: ERROR_CTX_MODEM_RESPONSE_ERROR // // MessageText: // // The modem did not accept the command sent to it. Verify that the configured modem name matches the attached modem. // // // MessageId: ERROR_CTX_MODEM_RESPONSE_TIMEOUT // // MessageText: // // The modem did not respond to the command sent to it. Verify that the modem is properly cabled and powered on. // // // MessageId: ERROR_CTX_MODEM_RESPONSE_NO_CARRIER // // MessageText: // // Carrier detect has failed or carrier has been dropped due to disconnect. // // // MessageId: ERROR_CTX_MODEM_RESPONSE_NO_DIALTONE // // MessageText: // // Dial tone not detected within the required time. Verify that the phone cable is properly attached and functional. // // // MessageId: ERROR_CTX_MODEM_RESPONSE_BUSY // // MessageText: // // Busy signal detected at remote site on callback. // // // MessageId: ERROR_CTX_MODEM_RESPONSE_VOICE // // MessageText: // // Voice detected at remote site on callback. // // // MessageId: ERROR_CTX_TD_ERROR // // MessageText: // // Transport driver error // // // MessageId: ERROR_CTX_WINSTATION_NOT_FOUND // // MessageText: // // The specified session cannot be found. // // // MessageId: ERROR_CTX_WINSTATION_ALREADY_EXISTS // // MessageText: // // The specified session name is already in use. // // // MessageId: ERROR_CTX_WINSTATION_BUSY // // MessageText: // // The requested operation cannot be completed because the terminal connection is currently busy processing a connect, disconnect, reset, or delete operation. // // // MessageId: ERROR_CTX_BAD_VIDEO_MODE // // MessageText: // // An attempt has been made to connect to a session whose video mode is not supported by the current client. // // // MessageId: ERROR_CTX_GRAPHICS_INVALID // // MessageText: // // The application attempted to enable DOS graphics mode. // DOS graphics mode is not supported. // // // MessageId: ERROR_CTX_LOGON_DISABLED // // MessageText: // // Your interactive logon privilege has been disabled. // Please contact your administrator. // // // MessageId: ERROR_CTX_NOT_CONSOLE // // MessageText: // // The requested operation can be performed only on the system console. // This is most often the result of a driver or system DLL requiring direct console access. // // // MessageId: ERROR_CTX_CLIENT_QUERY_TIMEOUT // // MessageText: // // The client failed to respond to the server connect message. // // // MessageId: ERROR_CTX_CONSOLE_DISCONNECT // // MessageText: // // Disconnecting the console session is not supported. // // // MessageId: ERROR_CTX_CONSOLE_CONNECT // // MessageText: // // Reconnecting a disconnected session to the console is not supported. // // // MessageId: ERROR_CTX_SHADOW_DENIED // // MessageText: // // The request to control another session remotely was denied. // // // MessageId: ERROR_CTX_WINSTATION_ACCESS_DENIED // // MessageText: // // The requested session access is denied. // // // MessageId: ERROR_CTX_INVALID_WD // // MessageText: // // The specified terminal connection driver is invalid. // // // MessageId: ERROR_CTX_SHADOW_INVALID // // MessageText: // // The requested session cannot be controlled remotely. // This may be because the session is disconnected or does not currently have a user logged on. // // // MessageId: ERROR_CTX_SHADOW_DISABLED // // MessageText: // // The requested session is not configured to allow remote control. // // // MessageId: ERROR_CTX_CLIENT_LICENSE_IN_USE // // MessageText: // // Your request to connect to this Terminal Server has been rejected. Your Terminal Server client license number is currently being used by another user. // Please call your system administrator to obtain a unique license number. // // // MessageId: ERROR_CTX_CLIENT_LICENSE_NOT_SET // // MessageText: // // Your request to connect to this Terminal Server has been rejected. Your Terminal Server client license number has not been entered for this copy of the Terminal Server client. // Please contact your system administrator. // // // MessageId: ERROR_CTX_LICENSE_NOT_AVAILABLE // // MessageText: // // The number of connections to this computer is limited and all connections are in use right now. // Try connecting later or contact your system administrator. // // // MessageId: ERROR_CTX_LICENSE_CLIENT_INVALID // // MessageText: // // The client you are using is not licensed to use this system. Your logon request is denied. // // // MessageId: ERROR_CTX_LICENSE_EXPIRED // // MessageText: // // The system license has expired. Your logon request is denied. // // // MessageId: ERROR_CTX_SHADOW_NOT_RUNNING // // MessageText: // // Remote control could not be terminated because the specified session is not currently being remotely controlled. // // // MessageId: ERROR_CTX_SHADOW_ENDED_BY_MODE_CHANGE // // MessageText: // // The remote control of the console was terminated because the display mode was changed. Changing the display mode in a remote control session is not supported. // // // MessageId: ERROR_ACTIVATION_COUNT_EXCEEDED // // MessageText: // // Activation has already been reset the maximum number of times for this installation. Your activation timer will not be cleared. // // // MessageId: ERROR_CTX_WINSTATIONS_DISABLED // // MessageText: // // Remote logins are currently disabled. // // // MessageId: ERROR_CTX_ENCRYPTION_LEVEL_REQUIRED // // MessageText: // // You do not have the proper encryption level to access this Session. // // // MessageId: ERROR_CTX_SESSION_IN_USE // // MessageText: // // The user %s\\%s is currently logged on to this computer. Only the current user or an administrator can log on to this computer. // // // MessageId: ERROR_CTX_NO_FORCE_LOGOFF // // MessageText: // // The user %s\\%s is already logged on to the console of this computer. You do not have permission to log in at this time. To resolve this issue, contact %s\\%s and have them log off. // // // MessageId: ERROR_CTX_ACCOUNT_RESTRICTION // // MessageText: // // Unable to log you on because of an account restriction. // // // MessageId: ERROR_RDP_PROTOCOL_ERROR // // MessageText: // // The RDP protocol component %2 detected an error in the protocol stream and has disconnected the client. // // // MessageId: ERROR_CTX_CDM_CONNECT // // MessageText: // // The Client Drive Mapping Service Has Connected on Terminal Connection. // // // MessageId: ERROR_CTX_CDM_DISCONNECT // // MessageText: // // The Client Drive Mapping Service Has Disconnected on Terminal Connection. // // // MessageId: ERROR_CTX_SECURITY_LAYER_ERROR // // MessageText: // // The Terminal Server security layer detected an error in the protocol stream and has disconnected the client. // // // MessageId: ERROR_TS_INCOMPATIBLE_SESSIONS // // MessageText: // // The target session is incompatible with the current session. // /////////////////////////////////////////////////// // // // Available // // // // 7100 to 7499 // /////////////////////////////////////////////////// /////////////////////////////////////////////////// // / // Traffic Control Error Codes / // / // 7500 to 7999 / // / // defined in: tcerror.h / /////////////////////////////////////////////////// /////////////////////////////////////////////////// // // // Active Directory Error codes // // // // 8000 to 8999 // /////////////////////////////////////////////////// // ***************** // FACILITY_FILE_REPLICATION_SERVICE // ***************** // // MessageId: FRS_ERR_INVALID_API_SEQUENCE // // MessageText: // // The file replication service API was called incorrectly. // // // MessageId: FRS_ERR_STARTING_SERVICE // // MessageText: // // The file replication service cannot be started. // // // MessageId: FRS_ERR_STOPPING_SERVICE // // MessageText: // // The file replication service cannot be stopped. // // // MessageId: FRS_ERR_INTERNAL_API // // MessageText: // // The file replication service API terminated the request. // The event log may have more information. // // // MessageId: FRS_ERR_INTERNAL // // MessageText: // // The file replication service terminated the request. // The event log may have more information. // // // MessageId: FRS_ERR_SERVICE_COMM // // MessageText: // // The file replication service cannot be contacted. // The event log may have more information. // // // MessageId: FRS_ERR_INSUFFICIENT_PRIV // // MessageText: // // The file replication service cannot satisfy the request because the user has insufficient privileges. // The event log may have more information. // // // MessageId: FRS_ERR_AUTHENTICATION // // MessageText: // // The file replication service cannot satisfy the request because authenticated RPC is not available. // The event log may have more information. // // // MessageId: FRS_ERR_PARENT_INSUFFICIENT_PRIV // // MessageText: // // The file replication service cannot satisfy the request because the user has insufficient privileges on the domain controller. // The event log may have more information. // // // MessageId: FRS_ERR_PARENT_AUTHENTICATION // // MessageText: // // The file replication service cannot satisfy the request because authenticated RPC is not available on the domain controller. // The event log may have more information. // // // MessageId: FRS_ERR_CHILD_TO_PARENT_COMM // // MessageText: // // The file replication service cannot communicate with the file replication service on the domain controller. // The event log may have more information. // // // MessageId: FRS_ERR_PARENT_TO_CHILD_COMM // // MessageText: // // The file replication service on the domain controller cannot communicate with the file replication service on this computer. // The event log may have more information. // // // MessageId: FRS_ERR_SYSVOL_POPULATE // // MessageText: // // The file replication service cannot populate the system volume because of an internal error. // The event log may have more information. // // // MessageId: FRS_ERR_SYSVOL_POPULATE_TIMEOUT // // MessageText: // // The file replication service cannot populate the system volume because of an internal timeout. // The event log may have more information. // // // MessageId: FRS_ERR_SYSVOL_IS_BUSY // // MessageText: // // The file replication service cannot process the request. The system volume is busy with a previous request. // // // MessageId: FRS_ERR_SYSVOL_DEMOTE // // MessageText: // // The file replication service cannot stop replicating the system volume because of an internal error. // The event log may have more information. // // // MessageId: FRS_ERR_INVALID_SERVICE_PARAMETER // // MessageText: // // The file replication service detected an invalid parameter. // // ***************** // FACILITY DIRECTORY SERVICE // ***************** // // MessageId: ERROR_DS_NOT_INSTALLED // // MessageText: // // An error occurred while installing the directory service. For more information, see the event log. // // // MessageId: ERROR_DS_MEMBERSHIP_EVALUATED_LOCALLY // // MessageText: // // The directory service evaluated group memberships locally. // // // MessageId: ERROR_DS_NO_ATTRIBUTE_OR_VALUE // // MessageText: // // The specified directory service attribute or value does not exist. // // // MessageId: ERROR_DS_INVALID_ATTRIBUTE_SYNTAX // // MessageText: // // The attribute syntax specified to the directory service is invalid. // // // MessageId: ERROR_DS_ATTRIBUTE_TYPE_UNDEFINED // // MessageText: // // The attribute type specified to the directory service is not defined. // // // MessageId: ERROR_DS_ATTRIBUTE_OR_VALUE_EXISTS // // MessageText: // // The specified directory service attribute or value already exists. // // // MessageId: ERROR_DS_BUSY // // MessageText: // // The directory service is busy. // // // MessageId: ERROR_DS_UNAVAILABLE // // MessageText: // // The directory service is unavailable. // // // MessageId: ERROR_DS_NO_RIDS_ALLOCATED // // MessageText: // // The directory service was unable to allocate a relative identifier. // // // MessageId: ERROR_DS_NO_MORE_RIDS // // MessageText: // // The directory service has exhausted the pool of relative identifiers. // // // MessageId: ERROR_DS_INCORRECT_ROLE_OWNER // // MessageText: // // The requested operation could not be performed because the directory service is not the master for that type of operation. // // // MessageId: ERROR_DS_RIDMGR_INIT_ERROR // // MessageText: // // The directory service was unable to initialize the subsystem that allocates relative identifiers. // // // MessageId: ERROR_DS_OBJ_CLASS_VIOLATION // // MessageText: // // The requested operation did not satisfy one or more constraints associated with the class of the object. // // // MessageId: ERROR_DS_CANT_ON_NON_LEAF // // MessageText: // // The directory service can perform the requested operation only on a leaf object. // // // MessageId: ERROR_DS_CANT_ON_RDN // // MessageText: // // The directory service cannot perform the requested operation on the RDN attribute of an object. // // // MessageId: ERROR_DS_CANT_MOD_OBJ_CLASS // // MessageText: // // The directory service detected an attempt to modify the object class of an object. // // // MessageId: ERROR_DS_CROSS_DOM_MOVE_ERROR // // MessageText: // // The requested cross-domain move operation could not be performed. // // // MessageId: ERROR_DS_GC_NOT_AVAILABLE // // MessageText: // // Unable to contact the global catalog server. // // // MessageId: ERROR_SHARED_POLICY // // MessageText: // // The policy object is shared and can only be modified at the root. // // // MessageId: ERROR_POLICY_OBJECT_NOT_FOUND // // MessageText: // // The policy object does not exist. // // // MessageId: ERROR_POLICY_ONLY_IN_DS // // MessageText: // // The requested policy information is only in the directory service. // // // MessageId: ERROR_PROMOTION_ACTIVE // // MessageText: // // A domain controller promotion is currently active. // // // MessageId: ERROR_NO_PROMOTION_ACTIVE // // MessageText: // // A domain controller promotion is not currently active // // 8223 unused // // MessageId: ERROR_DS_OPERATIONS_ERROR // // MessageText: // // An operations error occurred. // // // MessageId: ERROR_DS_PROTOCOL_ERROR // // MessageText: // // A protocol error occurred. // // // MessageId: ERROR_DS_TIMELIMIT_EXCEEDED // // MessageText: // // The time limit for this request was exceeded. // // // MessageId: ERROR_DS_SIZELIMIT_EXCEEDED // // MessageText: // // The size limit for this request was exceeded. // // // MessageId: ERROR_DS_ADMIN_LIMIT_EXCEEDED // // MessageText: // // The administrative limit for this request was exceeded. // // // MessageId: ERROR_DS_COMPARE_FALSE // // MessageText: // // The compare response was false. // // // MessageId: ERROR_DS_COMPARE_TRUE // // MessageText: // // The compare response was true. // // // MessageId: ERROR_DS_AUTH_METHOD_NOT_SUPPORTED // // MessageText: // // The requested authentication method is not supported by the server. // // // MessageId: ERROR_DS_STRONG_AUTH_REQUIRED // // MessageText: // // A more secure authentication method is required for this server. // // // MessageId: ERROR_DS_INAPPROPRIATE_AUTH // // MessageText: // // Inappropriate authentication. // // // MessageId: ERROR_DS_AUTH_UNKNOWN // // MessageText: // // The authentication mechanism is unknown. // // // MessageId: ERROR_DS_REFERRAL // // MessageText: // // A referral was returned from the server. // // // MessageId: ERROR_DS_UNAVAILABLE_CRIT_EXTENSION // // MessageText: // // The server does not support the requested critical extension. // // // MessageId: ERROR_DS_CONFIDENTIALITY_REQUIRED // // MessageText: // // This request requires a secure connection. // // // MessageId: ERROR_DS_INAPPROPRIATE_MATCHING // // MessageText: // // Inappropriate matching. // // // MessageId: ERROR_DS_CONSTRAINT_VIOLATION // // MessageText: // // A constraint violation occurred. // // // MessageId: ERROR_DS_NO_SUCH_OBJECT // // MessageText: // // There is no such object on the server. // // // MessageId: ERROR_DS_ALIAS_PROBLEM // // MessageText: // // There is an alias problem. // // // MessageId: ERROR_DS_INVALID_DN_SYNTAX // // MessageText: // // An invalid dn syntax has been specified. // // // MessageId: ERROR_DS_IS_LEAF // // MessageText: // // The object is a leaf object. // // // MessageId: ERROR_DS_ALIAS_DEREF_PROBLEM // // MessageText: // // There is an alias dereferencing problem. // // // MessageId: ERROR_DS_UNWILLING_TO_PERFORM // // MessageText: // // The server is unwilling to process the request. // // // MessageId: ERROR_DS_LOOP_DETECT // // MessageText: // // A loop has been detected. // // // MessageId: ERROR_DS_NAMING_VIOLATION // // MessageText: // // There is a naming violation. // // // MessageId: ERROR_DS_OBJECT_RESULTS_TOO_LARGE // // MessageText: // // The result set is too large. // // // MessageId: ERROR_DS_AFFECTS_MULTIPLE_DSAS // // MessageText: // // The operation affects multiple DSAs // // // MessageId: ERROR_DS_SERVER_DOWN // // MessageText: // // The server is not operational. // // // MessageId: ERROR_DS_LOCAL_ERROR // // MessageText: // // A local error has occurred. // // // MessageId: ERROR_DS_ENCODING_ERROR // // MessageText: // // An encoding error has occurred. // // // MessageId: ERROR_DS_DECODING_ERROR // // MessageText: // // A decoding error has occurred. // // // MessageId: ERROR_DS_FILTER_UNKNOWN // // MessageText: // // The search filter cannot be recognized. // // // MessageId: ERROR_DS_PARAM_ERROR // // MessageText: // // One or more parameters are illegal. // // // MessageId: ERROR_DS_NOT_SUPPORTED // // MessageText: // // The specified method is not supported. // // // MessageId: ERROR_DS_NO_RESULTS_RETURNED // // MessageText: // // No results were returned. // // // MessageId: ERROR_DS_CONTROL_NOT_FOUND // // MessageText: // // The specified control is not supported by the server. // // // MessageId: ERROR_DS_CLIENT_LOOP // // MessageText: // // A referral loop was detected by the client. // // // MessageId: ERROR_DS_REFERRAL_LIMIT_EXCEEDED // // MessageText: // // The preset referral limit was exceeded. // // // MessageId: ERROR_DS_SORT_CONTROL_MISSING // // MessageText: // // The search requires a SORT control. // // // MessageId: ERROR_DS_OFFSET_RANGE_ERROR // // MessageText: // // The search results exceed the offset range specified. // // // MessageId: ERROR_DS_ROOT_MUST_BE_NC // // MessageText: // // The root object must be the head of a naming context. The root object cannot have an instantiated parent. // // // MessageId: ERROR_DS_ADD_REPLICA_INHIBITED // // MessageText: // // The add replica operation cannot be performed. The naming context must be writeable in order to create the replica. // // // MessageId: ERROR_DS_ATT_NOT_DEF_IN_SCHEMA // // MessageText: // // A reference to an attribute that is not defined in the schema occurred. // // // MessageId: ERROR_DS_MAX_OBJ_SIZE_EXCEEDED // // MessageText: // // The maximum size of an object has been exceeded. // // // MessageId: ERROR_DS_OBJ_STRING_NAME_EXISTS // // MessageText: // // An attempt was made to add an object to the directory with a name that is already in use. // // // MessageId: ERROR_DS_NO_RDN_DEFINED_IN_SCHEMA // // MessageText: // // An attempt was made to add an object of a class that does not have an RDN defined in the schema. // // // MessageId: ERROR_DS_RDN_DOESNT_MATCH_SCHEMA // // MessageText: // // An attempt was made to add an object using an RDN that is not the RDN defined in the schema. // // // MessageId: ERROR_DS_NO_REQUESTED_ATTS_FOUND // // MessageText: // // None of the requested attributes were found on the objects. // // // MessageId: ERROR_DS_USER_BUFFER_TO_SMALL // // MessageText: // // The user buffer is too small. // // // MessageId: ERROR_DS_ATT_IS_NOT_ON_OBJ // // MessageText: // // The attribute specified in the operation is not present on the object. // // // MessageId: ERROR_DS_ILLEGAL_MOD_OPERATION // // MessageText: // // Illegal modify operation. Some aspect of the modification is not permitted. // // // MessageId: ERROR_DS_OBJ_TOO_LARGE // // MessageText: // // The specified object is too large. // // // MessageId: ERROR_DS_BAD_INSTANCE_TYPE // // MessageText: // // The specified instance type is not valid. // // // MessageId: ERROR_DS_MASTERDSA_REQUIRED // // MessageText: // // The operation must be performed at a master DSA. // // // MessageId: ERROR_DS_OBJECT_CLASS_REQUIRED // // MessageText: // // The object class attribute must be specified. // // // MessageId: ERROR_DS_MISSING_REQUIRED_ATT // // MessageText: // // A required attribute is missing. // // // MessageId: ERROR_DS_ATT_NOT_DEF_FOR_CLASS // // MessageText: // // An attempt was made to modify an object to include an attribute that is not legal for its class. // // // MessageId: ERROR_DS_ATT_ALREADY_EXISTS // // MessageText: // // The specified attribute is already present on the object. // // 8319 unused // // MessageId: ERROR_DS_CANT_ADD_ATT_VALUES // // MessageText: // // The specified attribute is not present, or has no values. // // // MessageId: ERROR_DS_SINGLE_VALUE_CONSTRAINT // // MessageText: // // Multiple values were specified for an attribute that can have only one value. // // // MessageId: ERROR_DS_RANGE_CONSTRAINT // // MessageText: // // A value for the attribute was not in the acceptable range of values. // // // MessageId: ERROR_DS_ATT_VAL_ALREADY_EXISTS // // MessageText: // // The specified value already exists. // // // MessageId: ERROR_DS_CANT_REM_MISSING_ATT // // MessageText: // // The attribute cannot be removed because it is not present on the object. // // // MessageId: ERROR_DS_CANT_REM_MISSING_ATT_VAL // // MessageText: // // The attribute value cannot be removed because it is not present on the object. // // // MessageId: ERROR_DS_ROOT_CANT_BE_SUBREF // // MessageText: // // The specified root object cannot be a subref. // // // MessageId: ERROR_DS_NO_CHAINING // // MessageText: // // Chaining is not permitted. // // // MessageId: ERROR_DS_NO_CHAINED_EVAL // // MessageText: // // Chained evaluation is not permitted. // // // MessageId: ERROR_DS_NO_PARENT_OBJECT // // MessageText: // // The operation could not be performed because the object's parent is either uninstantiated or deleted. // // // MessageId: ERROR_DS_PARENT_IS_AN_ALIAS // // MessageText: // // Having a parent that is an alias is not permitted. Aliases are leaf objects. // // // MessageId: ERROR_DS_CANT_MIX_MASTER_AND_REPS // // MessageText: // // The object and parent must be of the same type, either both masters or both replicas. // // // MessageId: ERROR_DS_CHILDREN_EXIST // // MessageText: // // The operation cannot be performed because child objects exist. This operation can only be performed on a leaf object. // // // MessageId: ERROR_DS_OBJ_NOT_FOUND // // MessageText: // // Directory object not found. // // // MessageId: ERROR_DS_ALIASED_OBJ_MISSING // // MessageText: // // The aliased object is missing. // // // MessageId: ERROR_DS_BAD_NAME_SYNTAX // // MessageText: // // The object name has bad syntax. // // // MessageId: ERROR_DS_ALIAS_POINTS_TO_ALIAS // // MessageText: // // It is not permitted for an alias to refer to another alias. // // // MessageId: ERROR_DS_CANT_DEREF_ALIAS // // MessageText: // // The alias cannot be dereferenced. // // // MessageId: ERROR_DS_OUT_OF_SCOPE // // MessageText: // // The operation is out of scope. // // // MessageId: ERROR_DS_OBJECT_BEING_REMOVED // // MessageText: // // The operation cannot continue because the object is in the process of being removed. // // // MessageId: ERROR_DS_CANT_DELETE_DSA_OBJ // // MessageText: // // The DSA object cannot be deleted. // // // MessageId: ERROR_DS_GENERIC_ERROR // // MessageText: // // A directory service error has occurred. // // // MessageId: ERROR_DS_DSA_MUST_BE_INT_MASTER // // MessageText: // // The operation can only be performed on an internal master DSA object. // // // MessageId: ERROR_DS_CLASS_NOT_DSA // // MessageText: // // The object must be of class DSA. // // // MessageId: ERROR_DS_INSUFF_ACCESS_RIGHTS // // MessageText: // // Insufficient access rights to perform the operation. // // // MessageId: ERROR_DS_ILLEGAL_SUPERIOR // // MessageText: // // The object cannot be added because the parent is not on the list of possible superiors. // // // MessageId: ERROR_DS_ATTRIBUTE_OWNED_BY_SAM // // MessageText: // // Access to the attribute is not permitted because the attribute is owned by the Security Accounts Manager (SAM). // // // MessageId: ERROR_DS_NAME_TOO_MANY_PARTS // // MessageText: // // The name has too many parts. // // // MessageId: ERROR_DS_NAME_TOO_LONG // // MessageText: // // The name is too long. // // // MessageId: ERROR_DS_NAME_VALUE_TOO_LONG // // MessageText: // // The name value is too long. // // // MessageId: ERROR_DS_NAME_UNPARSEABLE // // MessageText: // // The directory service encountered an error parsing a name. // // // MessageId: ERROR_DS_NAME_TYPE_UNKNOWN // // MessageText: // // The directory service cannot get the attribute type for a name. // // // MessageId: ERROR_DS_NOT_AN_OBJECT // // MessageText: // // The name does not identify an object; the name identifies a phantom. // // // MessageId: ERROR_DS_SEC_DESC_TOO_SHORT // // MessageText: // // The security descriptor is too short. // // // MessageId: ERROR_DS_SEC_DESC_INVALID // // MessageText: // // The security descriptor is invalid. // // // MessageId: ERROR_DS_NO_DELETED_NAME // // MessageText: // // Failed to create name for deleted object. // // // MessageId: ERROR_DS_SUBREF_MUST_HAVE_PARENT // // MessageText: // // The parent of a new subref must exist. // // // MessageId: ERROR_DS_NCNAME_MUST_BE_NC // // MessageText: // // The object must be a naming context. // // // MessageId: ERROR_DS_CANT_ADD_SYSTEM_ONLY // // MessageText: // // It is not permitted to add an attribute which is owned by the system. // // // MessageId: ERROR_DS_CLASS_MUST_BE_CONCRETE // // MessageText: // // The class of the object must be structural; you cannot instantiate an abstract class. // // // MessageId: ERROR_DS_INVALID_DMD // // MessageText: // // The schema object could not be found. // // // MessageId: ERROR_DS_OBJ_GUID_EXISTS // // MessageText: // // A local object with this GUID (dead or alive) already exists. // // // MessageId: ERROR_DS_NOT_ON_BACKLINK // // MessageText: // // The operation cannot be performed on a back link. // // // MessageId: ERROR_DS_NO_CROSSREF_FOR_NC // // MessageText: // // The cross reference for the specified naming context could not be found. // // // MessageId: ERROR_DS_SHUTTING_DOWN // // MessageText: // // The operation could not be performed because the directory service is shutting down. // // // MessageId: ERROR_DS_UNKNOWN_OPERATION // // MessageText: // // The directory service request is invalid. // // // MessageId: ERROR_DS_INVALID_ROLE_OWNER // // MessageText: // // The role owner attribute could not be read. // // // MessageId: ERROR_DS_COULDNT_CONTACT_FSMO // // MessageText: // // The requested FSMO operation failed. The current FSMO holder could not be contacted. // // // MessageId: ERROR_DS_CROSS_NC_DN_RENAME // // MessageText: // // Modification of a DN across a naming context is not permitted. // // // MessageId: ERROR_DS_CANT_MOD_SYSTEM_ONLY // // MessageText: // // The attribute cannot be modified because it is owned by the system. // // // MessageId: ERROR_DS_REPLICATOR_ONLY // // MessageText: // // Only the replicator can perform this function. // // // MessageId: ERROR_DS_OBJ_CLASS_NOT_DEFINED // // MessageText: // // The specified class is not defined. // // // MessageId: ERROR_DS_OBJ_CLASS_NOT_SUBCLASS // // MessageText: // // The specified class is not a subclass. // // // MessageId: ERROR_DS_NAME_REFERENCE_INVALID // // MessageText: // // The name reference is invalid. // // // MessageId: ERROR_DS_CROSS_REF_EXISTS // // MessageText: // // A cross reference already exists. // // // MessageId: ERROR_DS_CANT_DEL_MASTER_CROSSREF // // MessageText: // // It is not permitted to delete a master cross reference. // // // MessageId: ERROR_DS_SUBTREE_NOTIFY_NOT_NC_HEAD // // MessageText: // // Subtree notifications are only supported on NC heads. // // // MessageId: ERROR_DS_NOTIFY_FILTER_TOO_COMPLEX // // MessageText: // // Notification filter is too complex. // // // MessageId: ERROR_DS_DUP_RDN // // MessageText: // // Schema update failed: duplicate RDN. // // // MessageId: ERROR_DS_DUP_OID // // MessageText: // // Schema update failed: duplicate OID. // // // MessageId: ERROR_DS_DUP_MAPI_ID // // MessageText: // // Schema update failed: duplicate MAPI identifier. // // // MessageId: ERROR_DS_DUP_SCHEMA_ID_GUID // // MessageText: // // Schema update failed: duplicate schema-id GUID. // // // MessageId: ERROR_DS_DUP_LDAP_DISPLAY_NAME // // MessageText: // // Schema update failed: duplicate LDAP display name. // // // MessageId: ERROR_DS_SEMANTIC_ATT_TEST // // MessageText: // // Schema update failed: range-lower less than range upper. // // // MessageId: ERROR_DS_SYNTAX_MISMATCH // // MessageText: // // Schema update failed: syntax mismatch. // // // MessageId: ERROR_DS_EXISTS_IN_MUST_HAVE // // MessageText: // // Schema deletion failed: attribute is used in must-contain. // // // MessageId: ERROR_DS_EXISTS_IN_MAY_HAVE // // MessageText: // // Schema deletion failed: attribute is used in may-contain. // // // MessageId: ERROR_DS_NONEXISTENT_MAY_HAVE // // MessageText: // // Schema update failed: attribute in may-contain does not exist. // // // MessageId: ERROR_DS_NONEXISTENT_MUST_HAVE // // MessageText: // // Schema update failed: attribute in must-contain does not exist. // // // MessageId: ERROR_DS_AUX_CLS_TEST_FAIL // // MessageText: // // Schema update failed: class in aux-class list does not exist or is not an auxiliary class. // // // MessageId: ERROR_DS_NONEXISTENT_POSS_SUP // // MessageText: // // Schema update failed: class in poss-superiors does not exist. // // // MessageId: ERROR_DS_SUB_CLS_TEST_FAIL // // MessageText: // // Schema update failed: class in subclassof list does not exist or does not satisfy hierarchy rules. // // // MessageId: ERROR_DS_BAD_RDN_ATT_ID_SYNTAX // // MessageText: // // Schema update failed: Rdn-Att-Id has wrong syntax. // // // MessageId: ERROR_DS_EXISTS_IN_AUX_CLS // // MessageText: // // Schema deletion failed: class is used as auxiliary class. // // // MessageId: ERROR_DS_EXISTS_IN_SUB_CLS // // MessageText: // // Schema deletion failed: class is used as sub class. // // // MessageId: ERROR_DS_EXISTS_IN_POSS_SUP // // MessageText: // // Schema deletion failed: class is used as poss superior. // // // MessageId: ERROR_DS_RECALCSCHEMA_FAILED // // MessageText: // // Schema update failed in recalculating validation cache. // // // MessageId: ERROR_DS_TREE_DELETE_NOT_FINISHED // // MessageText: // // The tree deletion is not finished. The request must be made again to continue deleting the tree. // // // MessageId: ERROR_DS_CANT_DELETE // // MessageText: // // The requested delete operation could not be performed. // // // MessageId: ERROR_DS_ATT_SCHEMA_REQ_ID // // MessageText: // // Cannot read the governs class identifier for the schema record. // // // MessageId: ERROR_DS_BAD_ATT_SCHEMA_SYNTAX // // MessageText: // // The attribute schema has bad syntax. // // // MessageId: ERROR_DS_CANT_CACHE_ATT // // MessageText: // // The attribute could not be cached. // // // MessageId: ERROR_DS_CANT_CACHE_CLASS // // MessageText: // // The class could not be cached. // // // MessageId: ERROR_DS_CANT_REMOVE_ATT_CACHE // // MessageText: // // The attribute could not be removed from the cache. // // // MessageId: ERROR_DS_CANT_REMOVE_CLASS_CACHE // // MessageText: // // The class could not be removed from the cache. // // // MessageId: ERROR_DS_CANT_RETRIEVE_DN // // MessageText: // // The distinguished name attribute could not be read. // // // MessageId: ERROR_DS_MISSING_SUPREF // // MessageText: // // No superior reference has been configured for the directory service. The directory service is therefore unable to issue referrals to objects outside this forest. // // // MessageId: ERROR_DS_CANT_RETRIEVE_INSTANCE // // MessageText: // // The instance type attribute could not be retrieved. // // // MessageId: ERROR_DS_CODE_INCONSISTENCY // // MessageText: // // An internal error has occurred. // // // MessageId: ERROR_DS_DATABASE_ERROR // // MessageText: // // A database error has occurred. // // // MessageId: ERROR_DS_GOVERNSID_MISSING // // MessageText: // // The attribute GOVERNSID is missing. // // // MessageId: ERROR_DS_MISSING_EXPECTED_ATT // // MessageText: // // An expected attribute is missing. // // // MessageId: ERROR_DS_NCNAME_MISSING_CR_REF // // MessageText: // // The specified naming context is missing a cross reference. // // // MessageId: ERROR_DS_SECURITY_CHECKING_ERROR // // MessageText: // // A security checking error has occurred. // // // MessageId: ERROR_DS_SCHEMA_NOT_LOADED // // MessageText: // // The schema is not loaded. // // // MessageId: ERROR_DS_SCHEMA_ALLOC_FAILED // // MessageText: // // Schema allocation failed. Please check if the machine is running low on memory. // // // MessageId: ERROR_DS_ATT_SCHEMA_REQ_SYNTAX // // MessageText: // // Failed to obtain the required syntax for the attribute schema. // // // MessageId: ERROR_DS_GCVERIFY_ERROR // // MessageText: // // The global catalog verification failed. The global catalog is not available or does not support the operation. Some part of the directory is currently not available. // // // MessageId: ERROR_DS_DRA_SCHEMA_MISMATCH // // MessageText: // // The replication operation failed because of a schema mismatch between the servers involved. // // // MessageId: ERROR_DS_CANT_FIND_DSA_OBJ // // MessageText: // // The DSA object could not be found. // // // MessageId: ERROR_DS_CANT_FIND_EXPECTED_NC // // MessageText: // // The naming context could not be found. // // // MessageId: ERROR_DS_CANT_FIND_NC_IN_CACHE // // MessageText: // // The naming context could not be found in the cache. // // // MessageId: ERROR_DS_CANT_RETRIEVE_CHILD // // MessageText: // // The child object could not be retrieved. // // // MessageId: ERROR_DS_SECURITY_ILLEGAL_MODIFY // // MessageText: // // The modification was not permitted for security reasons. // // // MessageId: ERROR_DS_CANT_REPLACE_HIDDEN_REC // // MessageText: // // The operation cannot replace the hidden record. // // // MessageId: ERROR_DS_BAD_HIERARCHY_FILE // // MessageText: // // The hierarchy file is invalid. // // // MessageId: ERROR_DS_BUILD_HIERARCHY_TABLE_FAILED // // MessageText: // // The attempt to build the hierarchy table failed. // // // MessageId: ERROR_DS_CONFIG_PARAM_MISSING // // MessageText: // // The directory configuration parameter is missing from the registry. // // // MessageId: ERROR_DS_COUNTING_AB_INDICES_FAILED // // MessageText: // // The attempt to count the address book indices failed. // // // MessageId: ERROR_DS_HIERARCHY_TABLE_MALLOC_FAILED // // MessageText: // // The allocation of the hierarchy table failed. // // // MessageId: ERROR_DS_INTERNAL_FAILURE // // MessageText: // // The directory service encountered an internal failure. // // // MessageId: ERROR_DS_UNKNOWN_ERROR // // MessageText: // // The directory service encountered an unknown failure. // // // MessageId: ERROR_DS_ROOT_REQUIRES_CLASS_TOP // // MessageText: // // A root object requires a class of 'top'. // // // MessageId: ERROR_DS_REFUSING_FSMO_ROLES // // MessageText: // // This directory server is shutting down, and cannot take ownership of new floating single-master operation roles. // // // MessageId: ERROR_DS_MISSING_FSMO_SETTINGS // // MessageText: // // The directory service is missing mandatory configuration information, and is unable to determine the ownership of floating single-master operation roles. // // // MessageId: ERROR_DS_UNABLE_TO_SURRENDER_ROLES // // MessageText: // // The directory service was unable to transfer ownership of one or more floating single-master operation roles to other servers. // // // MessageId: ERROR_DS_DRA_GENERIC // // MessageText: // // The replication operation failed. // // // MessageId: ERROR_DS_DRA_INVALID_PARAMETER // // MessageText: // // An invalid parameter was specified for this replication operation. // // // MessageId: ERROR_DS_DRA_BUSY // // MessageText: // // The directory service is too busy to complete the replication operation at this time. // // // MessageId: ERROR_DS_DRA_BAD_DN // // MessageText: // // The distinguished name specified for this replication operation is invalid. // // // MessageId: ERROR_DS_DRA_BAD_NC // // MessageText: // // The naming context specified for this replication operation is invalid. // // // MessageId: ERROR_DS_DRA_DN_EXISTS // // MessageText: // // The distinguished name specified for this replication operation already exists. // // // MessageId: ERROR_DS_DRA_INTERNAL_ERROR // // MessageText: // // The replication system encountered an internal error. // // // MessageId: ERROR_DS_DRA_INCONSISTENT_DIT // // MessageText: // // The replication operation encountered a database inconsistency. // // // MessageId: ERROR_DS_DRA_CONNECTION_FAILED // // MessageText: // // The server specified for this replication operation could not be contacted. // // // MessageId: ERROR_DS_DRA_BAD_INSTANCE_TYPE // // MessageText: // // The replication operation encountered an object with an invalid instance type. // // // MessageId: ERROR_DS_DRA_OUT_OF_MEM // // MessageText: // // The replication operation failed to allocate memory. // // // MessageId: ERROR_DS_DRA_MAIL_PROBLEM // // MessageText: // // The replication operation encountered an error with the mail system. // // // MessageId: ERROR_DS_DRA_REF_ALREADY_EXISTS // // MessageText: // // The replication reference information for the target server already exists. // // // MessageId: ERROR_DS_DRA_REF_NOT_FOUND // // MessageText: // // The replication reference information for the target server does not exist. // // // MessageId: ERROR_DS_DRA_OBJ_IS_REP_SOURCE // // MessageText: // // The naming context cannot be removed because it is replicated to another server. // // // MessageId: ERROR_DS_DRA_DB_ERROR // // MessageText: // // The replication operation encountered a database error. // // // MessageId: ERROR_DS_DRA_NO_REPLICA // // MessageText: // // The naming context is in the process of being removed or is not replicated from the specified server. // // // MessageId: ERROR_DS_DRA_ACCESS_DENIED // // MessageText: // // Replication access was denied. // // // MessageId: ERROR_DS_DRA_NOT_SUPPORTED // // MessageText: // // The requested operation is not supported by this version of the directory service. // // // MessageId: ERROR_DS_DRA_RPC_CANCELLED // // MessageText: // // The replication remote procedure call was cancelled. // // // MessageId: ERROR_DS_DRA_SOURCE_DISABLED // // MessageText: // // The source server is currently rejecting replication requests. // // // MessageId: ERROR_DS_DRA_SINK_DISABLED // // MessageText: // // The destination server is currently rejecting replication requests. // // // MessageId: ERROR_DS_DRA_NAME_COLLISION // // MessageText: // // The replication operation failed due to a collision of object names. // // // MessageId: ERROR_DS_DRA_SOURCE_REINSTALLED // // MessageText: // // The replication source has been reinstalled. // // // MessageId: ERROR_DS_DRA_MISSING_PARENT // // MessageText: // // The replication operation failed because a required parent object is missing. // // // MessageId: ERROR_DS_DRA_PREEMPTED // // MessageText: // // The replication operation was preempted. // // // MessageId: ERROR_DS_DRA_ABANDON_SYNC // // MessageText: // // The replication synchronization attempt was abandoned because of a lack of updates. // // // MessageId: ERROR_DS_DRA_SHUTDOWN // // MessageText: // // The replication operation was terminated because the system is shutting down. // // // MessageId: ERROR_DS_DRA_INCOMPATIBLE_PARTIAL_SET // // MessageText: // // Synchronization attempt failed because the destination DC is currently waiting to synchronize new partial attributes from source. This condition is normal if a recent schema change modified the partial attribute set. The destination partial attribute set is not a subset of source partial attribute set. // // // MessageId: ERROR_DS_DRA_SOURCE_IS_PARTIAL_REPLICA // // MessageText: // // The replication synchronization attempt failed because a master replica attempted to sync from a partial replica. // // // MessageId: ERROR_DS_DRA_EXTN_CONNECTION_FAILED // // MessageText: // // The server specified for this replication operation was contacted, but that server was unable to contact an additional server needed to complete the operation. // // // MessageId: ERROR_DS_INSTALL_SCHEMA_MISMATCH // // MessageText: // // The version of the directory service schema of the source forest is not compatible with the version of directory service on this computer. // // // MessageId: ERROR_DS_DUP_LINK_ID // // MessageText: // // Schema update failed: An attribute with the same link identifier already exists. // // // MessageId: ERROR_DS_NAME_ERROR_RESOLVING // // MessageText: // // Name translation: Generic processing error. // // // MessageId: ERROR_DS_NAME_ERROR_NOT_FOUND // // MessageText: // // Name translation: Could not find the name or insufficient right to see name. // // // MessageId: ERROR_DS_NAME_ERROR_NOT_UNIQUE // // MessageText: // // Name translation: Input name mapped to more than one output name. // // // MessageId: ERROR_DS_NAME_ERROR_NO_MAPPING // // MessageText: // // Name translation: Input name found, but not the associated output format. // // // MessageId: ERROR_DS_NAME_ERROR_DOMAIN_ONLY // // MessageText: // // Name translation: Unable to resolve completely, only the domain was found. // // // MessageId: ERROR_DS_NAME_ERROR_NO_SYNTACTICAL_MAPPING // // MessageText: // // Name translation: Unable to perform purely syntactical mapping at the client without going out to the wire. // // // MessageId: ERROR_DS_CONSTRUCTED_ATT_MOD // // MessageText: // // Modification of a constructed attribute is not allowed. // // // MessageId: ERROR_DS_WRONG_OM_OBJ_CLASS // // MessageText: // // The OM-Object-Class specified is incorrect for an attribute with the specified syntax. // // // MessageId: ERROR_DS_DRA_REPL_PENDING // // MessageText: // // The replication request has been posted; waiting for reply. // // // MessageId: ERROR_DS_DS_REQUIRED // // MessageText: // // The requested operation requires a directory service, and none was available. // // // MessageId: ERROR_DS_INVALID_LDAP_DISPLAY_NAME // // MessageText: // // The LDAP display name of the class or attribute contains non-ASCII characters. // // // MessageId: ERROR_DS_NON_BASE_SEARCH // // MessageText: // // The requested search operation is only supported for base searches. // // // MessageId: ERROR_DS_CANT_RETRIEVE_ATTS // // MessageText: // // The search failed to retrieve attributes from the database. // // // MessageId: ERROR_DS_BACKLINK_WITHOUT_LINK // // MessageText: // // The schema update operation tried to add a backward link attribute that has no corresponding forward link. // // // MessageId: ERROR_DS_EPOCH_MISMATCH // // MessageText: // // Source and destination of a cross-domain move do not agree on the object's epoch number. Either source or destination does not have the latest version of the object. // // // MessageId: ERROR_DS_SRC_NAME_MISMATCH // // MessageText: // // Source and destination of a cross-domain move do not agree on the object's current name. Either source or destination does not have the latest version of the object. // // // MessageId: ERROR_DS_SRC_AND_DST_NC_IDENTICAL // // MessageText: // // Source and destination for the cross-domain move operation are identical. Caller should use local move operation instead of cross-domain move operation. // // // MessageId: ERROR_DS_DST_NC_MISMATCH // // MessageText: // // Source and destination for a cross-domain move are not in agreement on the naming contexts in the forest. Either source or destination does not have the latest version of the Partitions container. // // // MessageId: ERROR_DS_NOT_AUTHORITIVE_FOR_DST_NC // // MessageText: // // Destination of a cross-domain move is not authoritative for the destination naming context. // // // MessageId: ERROR_DS_SRC_GUID_MISMATCH // // MessageText: // // Source and destination of a cross-domain move do not agree on the identity of the source object. Either source or destination does not have the latest version of the source object. // // // MessageId: ERROR_DS_CANT_MOVE_DELETED_OBJECT // // MessageText: // // Object being moved across-domains is already known to be deleted by the destination server. The source server does not have the latest version of the source object. // // // MessageId: ERROR_DS_PDC_OPERATION_IN_PROGRESS // // MessageText: // // Another operation which requires exclusive access to the PDC FSMO is already in progress. // // // MessageId: ERROR_DS_CROSS_DOMAIN_CLEANUP_REQD // // MessageText: // // A cross-domain move operation failed such that two versions of the moved object exist - one each in the source and destination domains. The destination object needs to be removed to restore the system to a consistent state. // // // MessageId: ERROR_DS_ILLEGAL_XDOM_MOVE_OPERATION // // MessageText: // // This object may not be moved across domain boundaries either because cross-domain moves for this class are disallowed, or the object has some special characteristics, e.g.: trust account or restricted RID, which prevent its move. // // // MessageId: ERROR_DS_CANT_WITH_ACCT_GROUP_MEMBERSHPS // // MessageText: // // Can't move objects with memberships across domain boundaries as once moved, this would violate the membership conditions of the account group. Remove the object from any account group memberships and retry. // // // MessageId: ERROR_DS_NC_MUST_HAVE_NC_PARENT // // MessageText: // // A naming context head must be the immediate child of another naming context head, not of an interior node. // // // MessageId: ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE // // MessageText: // // The directory cannot validate the proposed naming context name because it does not hold a replica of the naming context above the proposed naming context. Please ensure that the domain naming master role is held by a server that is configured as a global catalog server, and that the server is up to date with its replication partners. (Applies only to Windows 2000 Domain Naming masters) // // // MessageId: ERROR_DS_DST_DOMAIN_NOT_NATIVE // // MessageText: // // Destination domain must be in native mode. // // // MessageId: ERROR_DS_MISSING_INFRASTRUCTURE_CONTAINER // // MessageText: // // The operation cannot be performed because the server does not have an infrastructure container in the domain of interest. // // // MessageId: ERROR_DS_CANT_MOVE_ACCOUNT_GROUP // // MessageText: // // Cross-domain move of non-empty account groups is not allowed. // // // MessageId: ERROR_DS_CANT_MOVE_RESOURCE_GROUP // // MessageText: // // Cross-domain move of non-empty resource groups is not allowed. // // // MessageId: ERROR_DS_INVALID_SEARCH_FLAG // // MessageText: // // The search flags for the attribute are invalid. The ANR bit is valid only on attributes of Unicode or Teletex strings. // // // MessageId: ERROR_DS_NO_TREE_DELETE_ABOVE_NC // // MessageText: // // Tree deletions starting at an object which has an NC head as a descendant are not allowed. // // // MessageId: ERROR_DS_COULDNT_LOCK_TREE_FOR_DELETE // // MessageText: // // The directory service failed to lock a tree in preparation for a tree deletion because the tree was in use. // // // MessageId: ERROR_DS_COULDNT_IDENTIFY_OBJECTS_FOR_TREE_DELETE // // MessageText: // // The directory service failed to identify the list of objects to delete while attempting a tree deletion. // // // MessageId: ERROR_DS_SAM_INIT_FAILURE // // MessageText: // // Security Accounts Manager initialization failed because of the following error: %1. // Error Status: 0x%2. Click OK to shut down the system and reboot into Directory Services Restore Mode. Check the event log for detailed information. // // // MessageId: ERROR_DS_SENSITIVE_GROUP_VIOLATION // // MessageText: // // Only an administrator can modify the membership list of an administrative group. // // // MessageId: ERROR_DS_CANT_MOD_PRIMARYGROUPID // // MessageText: // // Cannot change the primary group ID of a domain controller account. // // // MessageId: ERROR_DS_ILLEGAL_BASE_SCHEMA_MOD // // MessageText: // // An attempt is made to modify the base schema. // // // MessageId: ERROR_DS_NONSAFE_SCHEMA_CHANGE // // MessageText: // // Adding a new mandatory attribute to an existing class, deleting a mandatory attribute from an existing class, or adding an optional attribute to the special class Top that is not a backlink attribute (directly or through inheritance, for example, by adding or deleting an auxiliary class) is not allowed. // // // MessageId: ERROR_DS_SCHEMA_UPDATE_DISALLOWED // // MessageText: // // Schema update is not allowed on this DC because the DC is not the schema FSMO Role Owner. // // // MessageId: ERROR_DS_CANT_CREATE_UNDER_SCHEMA // // MessageText: // // An object of this class cannot be created under the schema container. You can only create attribute-schema and class-schema objects under the schema container. // // // MessageId: ERROR_DS_INSTALL_NO_SRC_SCH_VERSION // // MessageText: // // The replica/child install failed to get the objectVersion attribute on the schema container on the source DC. Either the attribute is missing on the schema container or the credentials supplied do not have permission to read it. // // // MessageId: ERROR_DS_INSTALL_NO_SCH_VERSION_IN_INIFILE // // MessageText: // // The replica/child install failed to read the objectVersion attribute in the SCHEMA section of the file schema.ini in the system32 directory. // // // MessageId: ERROR_DS_INVALID_GROUP_TYPE // // MessageText: // // The specified group type is invalid. // // // MessageId: ERROR_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN // // MessageText: // // You cannot nest global groups in a mixed domain if the group is security-enabled. // // // MessageId: ERROR_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN // // MessageText: // // You cannot nest local groups in a mixed domain if the group is security-enabled. // // // MessageId: ERROR_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER // // MessageText: // // A global group cannot have a local group as a member. // // // MessageId: ERROR_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER // // MessageText: // // A global group cannot have a universal group as a member. // // // MessageId: ERROR_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER // // MessageText: // // A universal group cannot have a local group as a member. // // // MessageId: ERROR_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER // // MessageText: // // A global group cannot have a cross-domain member. // // // MessageId: ERROR_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER // // MessageText: // // A local group cannot have another cross domain local group as a member. // // // MessageId: ERROR_DS_HAVE_PRIMARY_MEMBERS // // MessageText: // // A group with primary members cannot change to a security-disabled group. // // // MessageId: ERROR_DS_STRING_SD_CONVERSION_FAILED // // MessageText: // // The schema cache load failed to convert the string default SD on a class-schema object. // // // MessageId: ERROR_DS_NAMING_MASTER_GC // // MessageText: // // Only DSAs configured to be Global Catalog servers should be allowed to hold the Domain Naming Master FSMO role. (Applies only to Windows 2000 servers) // // // MessageId: ERROR_DS_DNS_LOOKUP_FAILURE // // MessageText: // // The DSA operation is unable to proceed because of a DNS lookup failure. // // // MessageId: ERROR_DS_COULDNT_UPDATE_SPNS // // MessageText: // // While processing a change to the DNS Host Name for an object, the Service Principal Name values could not be kept in sync. // // // MessageId: ERROR_DS_CANT_RETRIEVE_SD // // MessageText: // // The Security Descriptor attribute could not be read. // // // MessageId: ERROR_DS_KEY_NOT_UNIQUE // // MessageText: // // The object requested was not found, but an object with that key was found. // // // MessageId: ERROR_DS_WRONG_LINKED_ATT_SYNTAX // // MessageText: // // The syntax of the linked attribute being added is incorrect. Forward links can only have syntax 2.5.5.1, 2.5.5.7, and 2.5.5.14, and backlinks can only have syntax 2.5.5.1 // // // MessageId: ERROR_DS_SAM_NEED_BOOTKEY_PASSWORD // // MessageText: // // Security Account Manager needs to get the boot password. // // // MessageId: ERROR_DS_SAM_NEED_BOOTKEY_FLOPPY // // MessageText: // // Security Account Manager needs to get the boot key from floppy disk. // // // MessageId: ERROR_DS_CANT_START // // MessageText: // // Directory Service cannot start. // // // MessageId: ERROR_DS_INIT_FAILURE // // MessageText: // // Directory Services could not start. // // // MessageId: ERROR_DS_NO_PKT_PRIVACY_ON_CONNECTION // // MessageText: // // The connection between client and server requires packet privacy or better. // // // MessageId: ERROR_DS_SOURCE_DOMAIN_IN_FOREST // // MessageText: // // The source domain may not be in the same forest as destination. // // // MessageId: ERROR_DS_DESTINATION_DOMAIN_NOT_IN_FOREST // // MessageText: // // The destination domain must be in the forest. // // // MessageId: ERROR_DS_DESTINATION_AUDITING_NOT_ENABLED // // MessageText: // // The operation requires that destination domain auditing be enabled. // // // MessageId: ERROR_DS_CANT_FIND_DC_FOR_SRC_DOMAIN // // MessageText: // // The operation couldn't locate a DC for the source domain. // // // MessageId: ERROR_DS_SRC_OBJ_NOT_GROUP_OR_USER // // MessageText: // // The source object must be a group or user. // // // MessageId: ERROR_DS_SRC_SID_EXISTS_IN_FOREST // // MessageText: // // The source object's SID already exists in destination forest. // // // MessageId: ERROR_DS_SRC_AND_DST_OBJECT_CLASS_MISMATCH // // MessageText: // // The source and destination object must be of the same type. // // // MessageId: ERROR_SAM_INIT_FAILURE // // MessageText: // // Security Accounts Manager initialization failed because of the following error: %1. // Error Status: 0x%2. Click OK to shut down the system and reboot into Safe Mode. Check the event log for detailed information. // // // MessageId: ERROR_DS_DRA_SCHEMA_INFO_SHIP // // MessageText: // // Schema information could not be included in the replication request. // // // MessageId: ERROR_DS_DRA_SCHEMA_CONFLICT // // MessageText: // // The replication operation could not be completed due to a schema incompatibility. // // // MessageId: ERROR_DS_DRA_EARLIER_SCHEMA_CONFLICT // // MessageText: // // The replication operation could not be completed due to a previous schema incompatibility. // // // MessageId: ERROR_DS_DRA_OBJ_NC_MISMATCH // // MessageText: // // The replication update could not be applied because either the source or the destination has not yet received information regarding a recent cross-domain move operation. // // // MessageId: ERROR_DS_NC_STILL_HAS_DSAS // // MessageText: // // The requested domain could not be deleted because there exist domain controllers that still host this domain. // // // MessageId: ERROR_DS_GC_REQUIRED // // MessageText: // // The requested operation can be performed only on a global catalog server. // // // MessageId: ERROR_DS_LOCAL_MEMBER_OF_LOCAL_ONLY // // MessageText: // // A local group can only be a member of other local groups in the same domain. // // // MessageId: ERROR_DS_NO_FPO_IN_UNIVERSAL_GROUPS // // MessageText: // // Foreign security principals cannot be members of universal groups. // // // MessageId: ERROR_DS_CANT_ADD_TO_GC // // MessageText: // // The attribute is not allowed to be replicated to the GC because of security reasons. // // // MessageId: ERROR_DS_NO_CHECKPOINT_WITH_PDC // // MessageText: // // The checkpoint with the PDC could not be taken because there too many modifications being processed currently. // // // MessageId: ERROR_DS_SOURCE_AUDITING_NOT_ENABLED // // MessageText: // // The operation requires that source domain auditing be enabled. // // // MessageId: ERROR_DS_CANT_CREATE_IN_NONDOMAIN_NC // // MessageText: // // Security principal objects can only be created inside domain naming contexts. // // // MessageId: ERROR_DS_INVALID_NAME_FOR_SPN // // MessageText: // // A Service Principal Name (SPN) could not be constructed because the provided hostname is not in the necessary format. // // // MessageId: ERROR_DS_FILTER_USES_CONTRUCTED_ATTRS // // MessageText: // // A Filter was passed that uses constructed attributes. // // // MessageId: ERROR_DS_UNICODEPWD_NOT_IN_QUOTES // // MessageText: // // The unicodePwd attribute value must be enclosed in double quotes. // // // MessageId: ERROR_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED // // MessageText: // // Your computer could not be joined to the domain. You have exceeded the maximum number of computer accounts you are allowed to create in this domain. Contact your system administrator to have this limit reset or increased. // // // MessageId: ERROR_DS_MUST_BE_RUN_ON_DST_DC // // MessageText: // // For security reasons, the operation must be run on the destination DC. // // // MessageId: ERROR_DS_SRC_DC_MUST_BE_SP4_OR_GREATER // // MessageText: // // For security reasons, the source DC must be NT4SP4 or greater. // // // MessageId: ERROR_DS_CANT_TREE_DELETE_CRITICAL_OBJ // // MessageText: // // Critical Directory Service System objects cannot be deleted during tree delete operations. The tree delete may have been partially performed. // // // MessageId: ERROR_DS_INIT_FAILURE_CONSOLE // // MessageText: // // Directory Services could not start because of the following error: %1. // Error Status: 0x%2. Please click OK to shutdown the system. You can use the recovery console to diagnose the system further. // // // MessageId: ERROR_DS_SAM_INIT_FAILURE_CONSOLE // // MessageText: // // Security Accounts Manager initialization failed because of the following error: %1. // Error Status: 0x%2. Please click OK to shutdown the system. You can use the recovery console to diagnose the system further. // // // MessageId: ERROR_DS_FOREST_VERSION_TOO_HIGH // // MessageText: // // The version of the operating system installed is incompatible with the current forest functional level. You must upgrade to a new version of the operating system before this server can become a domain controller in this forest. // // // MessageId: ERROR_DS_DOMAIN_VERSION_TOO_HIGH // // MessageText: // // The version of the operating system installed is incompatible with the current domain functional level. You must upgrade to a new version of the operating system before this server can become a domain controller in this domain. // // // MessageId: ERROR_DS_FOREST_VERSION_TOO_LOW // // MessageText: // // The version of the operating system installed on this server no longer supports the current forest functional level. You must raise the forest functional level before this server can become a domain controller in this forest. // // // MessageId: ERROR_DS_DOMAIN_VERSION_TOO_LOW // // MessageText: // // The version of the operating system installed on this server no longer supports the current domain functional level. You must raise the domain functional level before this server can become a domain controller in this domain. // // // MessageId: ERROR_DS_INCOMPATIBLE_VERSION // // MessageText: // // The version of the operating system installed on this server is incompatible with the functional level of the domain or forest. // // // MessageId: ERROR_DS_LOW_DSA_VERSION // // MessageText: // // The functional level of the domain (or forest) cannot be raised to the requested value, because there exist one or more domain controllers in the domain (or forest) that are at a lower incompatible functional level. // // // MessageId: ERROR_DS_NO_BEHAVIOR_VERSION_IN_MIXEDDOMAIN // // MessageText: // // The forest functional level cannot be raised to the requested value since one or more domains are still in mixed domain mode. All domains in the forest must be in native mode, for you to raise the forest functional level. // // // MessageId: ERROR_DS_NOT_SUPPORTED_SORT_ORDER // // MessageText: // // The sort order requested is not supported. // // // MessageId: ERROR_DS_NAME_NOT_UNIQUE // // MessageText: // // The requested name already exists as a unique identifier. // // // MessageId: ERROR_DS_MACHINE_ACCOUNT_CREATED_PRENT4 // // MessageText: // // The machine account was created pre-NT4. The account needs to be recreated. // // // MessageId: ERROR_DS_OUT_OF_VERSION_STORE // // MessageText: // // The database is out of version store. // // // MessageId: ERROR_DS_INCOMPATIBLE_CONTROLS_USED // // MessageText: // // Unable to continue operation because multiple conflicting controls were used. // // // MessageId: ERROR_DS_NO_REF_DOMAIN // // MessageText: // // Unable to find a valid security descriptor reference domain for this partition. // // // MessageId: ERROR_DS_RESERVED_LINK_ID // // MessageText: // // Schema update failed: The link identifier is reserved. // // // MessageId: ERROR_DS_LINK_ID_NOT_AVAILABLE // // MessageText: // // Schema update failed: There are no link identifiers available. // // // MessageId: ERROR_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER // // MessageText: // // An account group cannot have a universal group as a member. // // // MessageId: ERROR_DS_MODIFYDN_DISALLOWED_BY_INSTANCE_TYPE // // MessageText: // // Rename or move operations on naming context heads or read-only objects are not allowed. // // // MessageId: ERROR_DS_NO_OBJECT_MOVE_IN_SCHEMA_NC // // MessageText: // // Move operations on objects in the schema naming context are not allowed. // // // MessageId: ERROR_DS_MODIFYDN_DISALLOWED_BY_FLAG // // MessageText: // // A system flag has been set on the object and does not allow the object to be moved or renamed. // // // MessageId: ERROR_DS_MODIFYDN_WRONG_GRANDPARENT // // MessageText: // // This object is not allowed to change its grandparent container. Moves are not forbidden on this object, but are restricted to sibling containers. // // // MessageId: ERROR_DS_NAME_ERROR_TRUST_REFERRAL // // MessageText: // // Unable to resolve completely, a referral to another forest is generated. // // // MessageId: ERROR_NOT_SUPPORTED_ON_STANDARD_SERVER // // MessageText: // // The requested action is not supported on standard server. // // // MessageId: ERROR_DS_CANT_ACCESS_REMOTE_PART_OF_AD // // MessageText: // // Could not access a partition of the directory service located on a remote server. Make sure at least one server is running for the partition in question. // // // MessageId: ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE_V2 // // MessageText: // // The directory cannot validate the proposed naming context (or partition) name because it does not hold a replica nor can it contact a replica of the naming context above the proposed naming context. Please ensure that the parent naming context is properly registered in DNS, and at least one replica of this naming context is reachable by the Domain Naming master. // // // MessageId: ERROR_DS_THREAD_LIMIT_EXCEEDED // // MessageText: // // The thread limit for this request was exceeded. // // // MessageId: ERROR_DS_NOT_CLOSEST // // MessageText: // // The Global catalog server is not in the closest site. // // // MessageId: ERROR_DS_CANT_DERIVE_SPN_WITHOUT_SERVER_REF // // MessageText: // // The DS cannot derive a service principal name (SPN) with which to mutually authenticate the target server because the corresponding server object in the local DS database has no serverReference attribute. // // // MessageId: ERROR_DS_SINGLE_USER_MODE_FAILED // // MessageText: // // The Directory Service failed to enter single user mode. // // // MessageId: ERROR_DS_NTDSCRIPT_SYNTAX_ERROR // // MessageText: // // The Directory Service cannot parse the script because of a syntax error. // // // MessageId: ERROR_DS_NTDSCRIPT_PROCESS_ERROR // // MessageText: // // The Directory Service cannot process the script because of an error. // // // MessageId: ERROR_DS_DIFFERENT_REPL_EPOCHS // // MessageText: // // The directory service cannot perform the requested operation because the servers // involved are of different replication epochs (which is usually related to a // domain rename that is in progress). // // // MessageId: ERROR_DS_DRS_EXTENSIONS_CHANGED // // MessageText: // // The directory service binding must be renegotiated due to a change in the server // extensions information. // // // MessageId: ERROR_DS_REPLICA_SET_CHANGE_NOT_ALLOWED_ON_DISABLED_CR // // MessageText: // // Operation not allowed on a disabled cross ref. // // // MessageId: ERROR_DS_NO_MSDS_INTID // // MessageText: // // Schema update failed: No values for msDS-IntId are available. // // // MessageId: ERROR_DS_DUP_MSDS_INTID // // MessageText: // // Schema update failed: Duplicate msDS-INtId. Retry the operation. // // // MessageId: ERROR_DS_EXISTS_IN_RDNATTID // // MessageText: // // Schema deletion failed: attribute is used in rDNAttID. // // // MessageId: ERROR_DS_AUTHORIZATION_FAILED // // MessageText: // // The directory service failed to authorize the request. // // // MessageId: ERROR_DS_INVALID_SCRIPT // // MessageText: // // The Directory Service cannot process the script because it is invalid. // // // MessageId: ERROR_DS_REMOTE_CROSSREF_OP_FAILED // // MessageText: // // The remote create cross reference operation failed on the Domain Naming Master FSMO. The operation's error is in the extended data. // // // MessageId: ERROR_DS_CROSS_REF_BUSY // // MessageText: // // A cross reference is in use locally with the same name. // // // MessageId: ERROR_DS_CANT_DERIVE_SPN_FOR_DELETED_DOMAIN // // MessageText: // // The DS cannot derive a service principal name (SPN) with which to mutually authenticate the target server because the server's domain has been deleted from the forest. // // // MessageId: ERROR_DS_CANT_DEMOTE_WITH_WRITEABLE_NC // // MessageText: // // Writeable NCs prevent this DC from demoting. // // // MessageId: ERROR_DS_DUPLICATE_ID_FOUND // // MessageText: // // The requested object has a non-unique identifier and cannot be retrieved. // // // MessageId: ERROR_DS_INSUFFICIENT_ATTR_TO_CREATE_OBJECT // // MessageText: // // Insufficient attributes were given to create an object. This object may not exist because it may have been deleted and already garbage collected. // // // MessageId: ERROR_DS_GROUP_CONVERSION_ERROR // // MessageText: // // The group cannot be converted due to attribute restrictions on the requested group type. // // // MessageId: ERROR_DS_CANT_MOVE_APP_BASIC_GROUP // // MessageText: // // Cross-domain move of non-empty basic application groups is not allowed. // // // MessageId: ERROR_DS_CANT_MOVE_APP_QUERY_GROUP // // MessageText: // // Cross-domain move of non-empty query based application groups is not allowed. // // // MessageId: ERROR_DS_ROLE_NOT_VERIFIED // // MessageText: // // The FSMO role ownership could not be verified because its directory partition has not replicated successfully with atleast one replication partner. // // // MessageId: ERROR_DS_WKO_CONTAINER_CANNOT_BE_SPECIAL // // MessageText: // // The target container for a redirection of a well known object container cannot already be a special container. // // // MessageId: ERROR_DS_DOMAIN_RENAME_IN_PROGRESS // // MessageText: // // The Directory Service cannot perform the requested operation because a domain rename operation is in progress. // // // MessageId: ERROR_DS_EXISTING_AD_CHILD_NC // // MessageText: // // The directory service detected a child partition below the requested partition name. The partition hierarchy must be created in a top down method. // // // MessageId: ERROR_DS_REPL_LIFETIME_EXCEEDED // // MessageText: // // The directory service cannot replicate with this server because the time since the last replication with this server has exceeded the tombstone lifetime. // // // MessageId: ERROR_DS_DISALLOWED_IN_SYSTEM_CONTAINER // // MessageText: // // The requested operation is not allowed on an object under the system container. // // // MessageId: ERROR_DS_LDAP_SEND_QUEUE_FULL // // MessageText: // // The LDAP servers network send queue has filled up because the client is not processing the results of it's requests fast enough. No more requests will be processed until the client catches up. If the client does not catch up then it will be disconnected. // // // MessageId: ERROR_DS_DRA_OUT_SCHEDULE_WINDOW // // MessageText: // // The scheduled replication did not take place because the system was too busy to execute the request within the schedule window. The replication queue is overloaded. Consider reducing the number of partners or decreasing the scheduled replication frequency. // // // MessageId: ERROR_DS_POLICY_NOT_KNOWN // // MessageText: // // At this time, it cannot be determined if the branch replication policy is available on the hub domain controller. Please retry at a later time to account for replication latencies. // // // MessageId: ERROR_NO_SITE_SETTINGS_OBJECT // // MessageText: // // The site settings object for the specified site does not exist. // // // MessageId: ERROR_NO_SECRETS // // MessageText: // // The local account store does not contain secret material for the specified account. // // // MessageId: ERROR_NO_WRITABLE_DC_FOUND // // MessageText: // // Could not find a writable domain controller in the domain. // // // MessageId: ERROR_DS_NO_SERVER_OBJECT // // MessageText: // // The server object for the domain controller does not exist. // // // MessageId: ERROR_DS_NO_NTDSA_OBJECT // // MessageText: // // The NTDS Settings object for the domain controller does not exist. // // // MessageId: ERROR_DS_NON_ASQ_SEARCH // // MessageText: // // The requested search operation is not supported for ASQ searches. // // // MessageId: ERROR_DS_AUDIT_FAILURE // // MessageText: // // A required audit event could not be generated for the operation. // // // MessageId: ERROR_DS_INVALID_SEARCH_FLAG_SUBTREE // // MessageText: // // The search flags for the attribute are invalid. The subtree index bit is valid only on single valued attributes. // // // MessageId: ERROR_DS_INVALID_SEARCH_FLAG_TUPLE // // MessageText: // // The search flags for the attribute are invalid. The tuple index bit is valid only on attributes of Unicode strings. // // // MessageId: ERROR_DS_HIERARCHY_TABLE_TOO_DEEP // // MessageText: // // The address books are nested too deeply. Failed to build the hierarchy table. // /////////////////////////////////////////////////// // / // End of Active Directory Error Codes / // / // 8000 to 8999 / /////////////////////////////////////////////////// /////////////////////////////////////////////////// // // // DNS Error codes // // // // 9000 to 9999 // /////////////////////////////////////////////////// // ============================= // Facility DNS Error Messages // ============================= // // DNS response codes. // // DNS_ERROR_RCODE_FORMAT_ERROR 0x00002329 // // MessageId: DNS_ERROR_RCODE_FORMAT_ERROR // // MessageText: // // DNS server unable to interpret format. // // DNS_ERROR_RCODE_SERVER_FAILURE 0x0000232a // // MessageId: DNS_ERROR_RCODE_SERVER_FAILURE // // MessageText: // // DNS server failure. // // DNS_ERROR_RCODE_NAME_ERROR 0x0000232b // // MessageId: DNS_ERROR_RCODE_NAME_ERROR // // MessageText: // // DNS name does not exist. // // DNS_ERROR_RCODE_NOT_IMPLEMENTED 0x0000232c // // MessageId: DNS_ERROR_RCODE_NOT_IMPLEMENTED // // MessageText: // // DNS request not supported by name server. // // DNS_ERROR_RCODE_REFUSED 0x0000232d // // MessageId: DNS_ERROR_RCODE_REFUSED // // MessageText: // // DNS operation refused. // // DNS_ERROR_RCODE_YXDOMAIN 0x0000232e // // MessageId: DNS_ERROR_RCODE_YXDOMAIN // // MessageText: // // DNS name that ought not exist, does exist. // // DNS_ERROR_RCODE_YXRRSET 0x0000232f // // MessageId: DNS_ERROR_RCODE_YXRRSET // // MessageText: // // DNS RR set that ought not exist, does exist. // // DNS_ERROR_RCODE_NXRRSET 0x00002330 // // MessageId: DNS_ERROR_RCODE_NXRRSET // // MessageText: // // DNS RR set that ought to exist, does not exist. // // DNS_ERROR_RCODE_NOTAUTH 0x00002331 // // MessageId: DNS_ERROR_RCODE_NOTAUTH // // MessageText: // // DNS server not authoritative for zone. // // DNS_ERROR_RCODE_NOTZONE 0x00002332 // // MessageId: DNS_ERROR_RCODE_NOTZONE // // MessageText: // // DNS name in update or prereq is not in zone. // // DNS_ERROR_RCODE_BADSIG 0x00002338 // // MessageId: DNS_ERROR_RCODE_BADSIG // // MessageText: // // DNS signature failed to verify. // // DNS_ERROR_RCODE_BADKEY 0x00002339 // // MessageId: DNS_ERROR_RCODE_BADKEY // // MessageText: // // DNS bad key. // // DNS_ERROR_RCODE_BADTIME 0x0000233a // // MessageId: DNS_ERROR_RCODE_BADTIME // // MessageText: // // DNS signature validity expired. // // // Packet format // // DNS_INFO_NO_RECORDS 0x0000251d // // MessageId: DNS_INFO_NO_RECORDS // // MessageText: // // No records found for given DNS query. // // DNS_ERROR_BAD_PACKET 0x0000251e // // MessageId: DNS_ERROR_BAD_PACKET // // MessageText: // // Bad DNS packet. // // DNS_ERROR_NO_PACKET 0x0000251f // // MessageId: DNS_ERROR_NO_PACKET // // MessageText: // // No DNS packet. // // DNS_ERROR_RCODE 0x00002520 // // MessageId: DNS_ERROR_RCODE // // MessageText: // // DNS error, check rcode. // // DNS_ERROR_UNSECURE_PACKET 0x00002521 // // MessageId: DNS_ERROR_UNSECURE_PACKET // // MessageText: // // Unsecured DNS packet. // // // General API errors // // DNS_ERROR_INVALID_TYPE 0x0000254f // // MessageId: DNS_ERROR_INVALID_TYPE // // MessageText: // // Invalid DNS type. // // DNS_ERROR_INVALID_IP_ADDRESS 0x00002550 // // MessageId: DNS_ERROR_INVALID_IP_ADDRESS // // MessageText: // // Invalid IP address. // // DNS_ERROR_INVALID_PROPERTY 0x00002551 // // MessageId: DNS_ERROR_INVALID_PROPERTY // // MessageText: // // Invalid property. // // DNS_ERROR_TRY_AGAIN_LATER 0x00002552 // // MessageId: DNS_ERROR_TRY_AGAIN_LATER // // MessageText: // // Try DNS operation again later. // // DNS_ERROR_NOT_UNIQUE 0x00002553 // // MessageId: DNS_ERROR_NOT_UNIQUE // // MessageText: // // Record for given name and type is not unique. // // DNS_ERROR_NON_RFC_NAME 0x00002554 // // MessageId: DNS_ERROR_NON_RFC_NAME // // MessageText: // // DNS name does not comply with RFC specifications. // // DNS_STATUS_FQDN 0x00002555 // // MessageId: DNS_STATUS_FQDN // // MessageText: // // DNS name is a fully-qualified DNS name. // // DNS_STATUS_DOTTED_NAME 0x00002556 // // MessageId: DNS_STATUS_DOTTED_NAME // // MessageText: // // DNS name is dotted (multi-label). // // DNS_STATUS_SINGLE_PART_NAME 0x00002557 // // MessageId: DNS_STATUS_SINGLE_PART_NAME // // MessageText: // // DNS name is a single-part name. // // DNS_ERROR_INVALID_NAME_CHAR 0x00002558 // // MessageId: DNS_ERROR_INVALID_NAME_CHAR // // MessageText: // // DNS name contains an invalid character. // // DNS_ERROR_NUMERIC_NAME 0x00002559 // // MessageId: DNS_ERROR_NUMERIC_NAME // // MessageText: // // DNS name is entirely numeric. // // DNS_ERROR_NOT_ALLOWED_ON_ROOT_SERVER 0x0000255A // // MessageId: DNS_ERROR_NOT_ALLOWED_ON_ROOT_SERVER // // MessageText: // // The operation requested is not permitted on a DNS root server. // // DNS_ERROR_NOT_ALLOWED_UNDER_DELEGATION 0x0000255B // // MessageId: DNS_ERROR_NOT_ALLOWED_UNDER_DELEGATION // // MessageText: // // The record could not be created because this part of the DNS namespace has been delegated to another server. // // DNS_ERROR_CANNOT_FIND_ROOT_HINTS 0x0000255C // // MessageId: DNS_ERROR_CANNOT_FIND_ROOT_HINTS // // MessageText: // // The DNS server could not find a set of root hints. // // DNS_ERROR_INCONSISTENT_ROOT_HINTS 0x0000255D // // MessageId: DNS_ERROR_INCONSISTENT_ROOT_HINTS // // MessageText: // // The DNS server found root hints but they were not consistent across all adapters. // // DNS_ERROR_DWORD_VALUE_TOO_SMALL 0x0000255E // // MessageId: DNS_ERROR_DWORD_VALUE_TOO_SMALL // // MessageText: // // The specified value is too small for this parameter. // // DNS_ERROR_DWORD_VALUE_TOO_LARGE 0x0000255F // // MessageId: DNS_ERROR_DWORD_VALUE_TOO_LARGE // // MessageText: // // The specified value is too large for this parameter. // // DNS_ERROR_BACKGROUND_LOADING 0x00002560 // // MessageId: DNS_ERROR_BACKGROUND_LOADING // // MessageText: // // This operation is not allowed while the DNS server is loading zones in the background. Please try again later. // // DNS_ERROR_NOT_ALLOWED_ON_RODC 0x00002561 // // MessageId: DNS_ERROR_NOT_ALLOWED_ON_RODC // // MessageText: // // The operation requested is not permitted on against a DNS server running on a read-only DC. // // DNS_ERROR_NOT_ALLOWED_UNDER_DNAME 0x00002562 // // MessageId: DNS_ERROR_NOT_ALLOWED_UNDER_DNAME // // MessageText: // // No data is allowed to exist underneath a DNAME record. // // // Zone errors // // DNS_ERROR_ZONE_DOES_NOT_EXIST 0x00002581 // // MessageId: DNS_ERROR_ZONE_DOES_NOT_EXIST // // MessageText: // // DNS zone does not exist. // // DNS_ERROR_NO_ZONE_INFO 0x00002582 // // MessageId: DNS_ERROR_NO_ZONE_INFO // // MessageText: // // DNS zone information not available. // // DNS_ERROR_INVALID_ZONE_OPERATION 0x00002583 // // MessageId: DNS_ERROR_INVALID_ZONE_OPERATION // // MessageText: // // Invalid operation for DNS zone. // // DNS_ERROR_ZONE_CONFIGURATION_ERROR 0x00002584 // // MessageId: DNS_ERROR_ZONE_CONFIGURATION_ERROR // // MessageText: // // Invalid DNS zone configuration. // // DNS_ERROR_ZONE_HAS_NO_SOA_RECORD 0x00002585 // // MessageId: DNS_ERROR_ZONE_HAS_NO_SOA_RECORD // // MessageText: // // DNS zone has no start of authority (SOA) record. // // DNS_ERROR_ZONE_HAS_NO_NS_RECORDS 0x00002586 // // MessageId: DNS_ERROR_ZONE_HAS_NO_NS_RECORDS // // MessageText: // // DNS zone has no Name Server (NS) record. // // DNS_ERROR_ZONE_LOCKED 0x00002587 // // MessageId: DNS_ERROR_ZONE_LOCKED // // MessageText: // // DNS zone is locked. // // DNS_ERROR_ZONE_CREATION_FAILED 0x00002588 // // MessageId: DNS_ERROR_ZONE_CREATION_FAILED // // MessageText: // // DNS zone creation failed. // // DNS_ERROR_ZONE_ALREADY_EXISTS 0x00002589 // // MessageId: DNS_ERROR_ZONE_ALREADY_EXISTS // // MessageText: // // DNS zone already exists. // // DNS_ERROR_AUTOZONE_ALREADY_EXISTS 0x0000258a // // MessageId: DNS_ERROR_AUTOZONE_ALREADY_EXISTS // // MessageText: // // DNS automatic zone already exists. // // DNS_ERROR_INVALID_ZONE_TYPE 0x0000258b // // MessageId: DNS_ERROR_INVALID_ZONE_TYPE // // MessageText: // // Invalid DNS zone type. // // DNS_ERROR_SECONDARY_REQUIRES_MASTER_IP 0x0000258c // // MessageId: DNS_ERROR_SECONDARY_REQUIRES_MASTER_IP // // MessageText: // // Secondary DNS zone requires master IP address. // // DNS_ERROR_ZONE_NOT_SECONDARY 0x0000258d // // MessageId: DNS_ERROR_ZONE_NOT_SECONDARY // // MessageText: // // DNS zone not secondary. // // DNS_ERROR_NEED_SECONDARY_ADDRESSES 0x0000258e // // MessageId: DNS_ERROR_NEED_SECONDARY_ADDRESSES // // MessageText: // // Need secondary IP address. // // DNS_ERROR_WINS_INIT_FAILED 0x0000258f // // MessageId: DNS_ERROR_WINS_INIT_FAILED // // MessageText: // // WINS initialization failed. // // DNS_ERROR_NEED_WINS_SERVERS 0x00002590 // // MessageId: DNS_ERROR_NEED_WINS_SERVERS // // MessageText: // // Need WINS servers. // // DNS_ERROR_NBSTAT_INIT_FAILED 0x00002591 // // MessageId: DNS_ERROR_NBSTAT_INIT_FAILED // // MessageText: // // NBTSTAT initialization call failed. // // DNS_ERROR_SOA_DELETE_INVALID 0x00002592 // // MessageId: DNS_ERROR_SOA_DELETE_INVALID // // MessageText: // // Invalid delete of start of authority (SOA) // // DNS_ERROR_FORWARDER_ALREADY_EXISTS 0x00002593 // // MessageId: DNS_ERROR_FORWARDER_ALREADY_EXISTS // // MessageText: // // A conditional forwarding zone already exists for that name. // // DNS_ERROR_ZONE_REQUIRES_MASTER_IP 0x00002594 // // MessageId: DNS_ERROR_ZONE_REQUIRES_MASTER_IP // // MessageText: // // This zone must be configured with one or more master DNS server IP addresses. // // DNS_ERROR_ZONE_IS_SHUTDOWN 0x00002595 // // MessageId: DNS_ERROR_ZONE_IS_SHUTDOWN // // MessageText: // // The operation cannot be performed because this zone is shutdown. // // // Datafile errors // // DNS 0x000025b3 // // MessageId: DNS_ERROR_PRIMARY_REQUIRES_DATAFILE // // MessageText: // // Primary DNS zone requires datafile. // // DNS 0x000025b4 // // MessageId: DNS_ERROR_INVALID_DATAFILE_NAME // // MessageText: // // Invalid datafile name for DNS zone. // // DNS 0x000025b5 // // MessageId: DNS_ERROR_DATAFILE_OPEN_FAILURE // // MessageText: // // Failed to open datafile for DNS zone. // // DNS 0x000025b6 // // MessageId: DNS_ERROR_FILE_WRITEBACK_FAILED // // MessageText: // // Failed to write datafile for DNS zone. // // DNS 0x000025b7 // // MessageId: DNS_ERROR_DATAFILE_PARSING // // MessageText: // // Failure while reading datafile for DNS zone. // // // Database errors // // DNS_ERROR_RECORD_DOES_NOT_EXIST 0x000025e5 // // MessageId: DNS_ERROR_RECORD_DOES_NOT_EXIST // // MessageText: // // DNS record does not exist. // // DNS_ERROR_RECORD_FORMAT 0x000025e6 // // MessageId: DNS_ERROR_RECORD_FORMAT // // MessageText: // // DNS record format error. // // DNS_ERROR_NODE_CREATION_FAILED 0x000025e7 // // MessageId: DNS_ERROR_NODE_CREATION_FAILED // // MessageText: // // Node creation failure in DNS. // // DNS_ERROR_UNKNOWN_RECORD_TYPE 0x000025e8 // // MessageId: DNS_ERROR_UNKNOWN_RECORD_TYPE // // MessageText: // // Unknown DNS record type. // // DNS_ERROR_RECORD_TIMED_OUT 0x000025e9 // // MessageId: DNS_ERROR_RECORD_TIMED_OUT // // MessageText: // // DNS record timed out. // // DNS_ERROR_NAME_NOT_IN_ZONE 0x000025ea // // MessageId: DNS_ERROR_NAME_NOT_IN_ZONE // // MessageText: // // Name not in DNS zone. // // DNS_ERROR_CNAME_LOOP 0x000025eb // // MessageId: DNS_ERROR_CNAME_LOOP // // MessageText: // // CNAME loop detected. // // DNS_ERROR_NODE_IS_CNAME 0x000025ec // // MessageId: DNS_ERROR_NODE_IS_CNAME // // MessageText: // // Node is a CNAME DNS record. // // DNS_ERROR_CNAME_COLLISION 0x000025ed // // MessageId: DNS_ERROR_CNAME_COLLISION // // MessageText: // // A CNAME record already exists for given name. // // DNS_ERROR_RECORD_ONLY_AT_ZONE_ROOT 0x000025ee // // MessageId: DNS_ERROR_RECORD_ONLY_AT_ZONE_ROOT // // MessageText: // // Record only at DNS zone root. // // DNS_ERROR_RECORD_ALREADY_EXISTS 0x000025ef // // MessageId: DNS_ERROR_RECORD_ALREADY_EXISTS // // MessageText: // // DNS record already exists. // // DNS_ERROR_SECONDARY_DATA 0x000025f0 // // MessageId: DNS_ERROR_SECONDARY_DATA // // MessageText: // // Secondary DNS zone data error. // // DNS_ERROR_NO_CREATE_CACHE_DATA 0x000025f1 // // MessageId: DNS_ERROR_NO_CREATE_CACHE_DATA // // MessageText: // // Could not create DNS cache data. // // DNS_ERROR_NAME_DOES_NOT_EXIST 0x000025f2 // // MessageId: DNS_ERROR_NAME_DOES_NOT_EXIST // // MessageText: // // DNS name does not exist. // // DNS_WARNING_PTR_CREATE_FAILED 0x000025f3 // // MessageId: DNS_WARNING_PTR_CREATE_FAILED // // MessageText: // // Could not create pointer (PTR) record. // // DNS_WARNING_DOMAIN_UNDELETED 0x000025f4 // // MessageId: DNS_WARNING_DOMAIN_UNDELETED // // MessageText: // // DNS domain was undeleted. // // DNS_ERROR_DS_UNAVAILABLE 0x000025f5 // // MessageId: DNS_ERROR_DS_UNAVAILABLE // // MessageText: // // The directory service is unavailable. // // DNS_ERROR_DS_ZONE_ALREADY_EXISTS 0x000025f6 // // MessageId: DNS_ERROR_DS_ZONE_ALREADY_EXISTS // // MessageText: // // DNS zone already exists in the directory service. // // DNS_ERROR_NO_BOOTFILE_IF_DS_ZONE 0x000025f7 // // MessageId: DNS_ERROR_NO_BOOTFILE_IF_DS_ZONE // // MessageText: // // DNS server not creating or reading the boot file for the directory service integrated DNS zone. // // DNS_ERROR_NODE_IS_DNAME 0x000025f8 // // MessageId: DNS_ERROR_NODE_IS_DNAME // // MessageText: // // Node is a DNAME DNS record. // // DNS_ERROR_DNAME_COLLISION 0x000025f9 // // MessageId: DNS_ERROR_DNAME_COLLISION // // MessageText: // // A DNAME record already exists for given name. // // DNS_ERROR_ALIAS_LOOP 0x000025fa // // MessageId: DNS_ERROR_ALIAS_LOOP // // MessageText: // // An alias loop has been detected with either CNAME or DNAME records. // // // Operation errors // // DNS_INFO_AXFR_COMPLETE 0x00002617 // // MessageId: DNS_INFO_AXFR_COMPLETE // // MessageText: // // DNS AXFR (zone transfer) complete. // // DNS_ERROR_AXFR 0x00002618 // // MessageId: DNS_ERROR_AXFR // // MessageText: // // DNS zone transfer failed. // // DNS_INFO_ADDED_LOCAL_WINS 0x00002619 // // MessageId: DNS_INFO_ADDED_LOCAL_WINS // // MessageText: // // Added local WINS server. // // // Secure update // // DNS_STATUS_CONTINUE_NEEDED 0x00002649 // // MessageId: DNS_STATUS_CONTINUE_NEEDED // // MessageText: // // Secure update call needs to continue update request. // // // Setup errors // // DNS_ERROR_NO_TCPIP 0x0000267b // // MessageId: DNS_ERROR_NO_TCPIP // // MessageText: // // TCP/IP network protocol not installed. // // DNS_ERROR_NO_DNS_SERVERS 0x0000267c // // MessageId: DNS_ERROR_NO_DNS_SERVERS // // MessageText: // // No DNS servers configured for local system. // // // Directory partition (DP) errors // // DNS_ERROR_DP_DOES_NOT_EXIST 0x000026ad // // MessageId: DNS_ERROR_DP_DOES_NOT_EXIST // // MessageText: // // The specified directory partition does not exist. // // DNS_ERROR_DP_ALREADY_EXISTS 0x000026ae // // MessageId: DNS_ERROR_DP_ALREADY_EXISTS // // MessageText: // // The specified directory partition already exists. // // DNS_ERROR_DP_NOT_ENLISTED 0x000026af // // MessageId: DNS_ERROR_DP_NOT_ENLISTED // // MessageText: // // This DNS server is not enlisted in the specified directory partition. // // DNS_ERROR_DP_ALREADY_ENLISTED 0x000026b0 // // MessageId: DNS_ERROR_DP_ALREADY_ENLISTED // // MessageText: // // This DNS server is already enlisted in the specified directory partition. // // DNS_ERROR_DP_NOT_AVAILABLE 0x000026b1 // // MessageId: DNS_ERROR_DP_NOT_AVAILABLE // // MessageText: // // The directory partition is not available at this time. Please wait a few minutes and try again. // // DNS_ERROR_DP_FSMO_ERROR 0x000026b2 // // MessageId: DNS_ERROR_DP_FSMO_ERROR // // MessageText: // // The application directory partition operation failed. The domain controller holding the domain naming master role is down or unable to service the request or is not running Windows Server 2003. // /////////////////////////////////////////////////// // // // End of DNS Error Codes // // // // 9000 to 9999 // /////////////////////////////////////////////////// /////////////////////////////////////////////////// // // // WinSock Error Codes // // // // 10000 to 11999 // /////////////////////////////////////////////////// // // WinSock error codes are also defined in WinSock.h // and WinSock2.h, hence the IFDEF // // // MessageId: WSAEINTR // // MessageText: // // A blocking operation was interrupted by a call to WSACancelBlockingCall. // // // MessageId: WSAEBADF // // MessageText: // // The file handle supplied is not valid. // // // MessageId: WSAEACCES // // MessageText: // // An attempt was made to access a socket in a way forbidden by its access permissions. // // // MessageId: WSAEFAULT // // MessageText: // // The system detected an invalid pointer address in attempting to use a pointer argument in a call. // // // MessageId: WSAEINVAL // // MessageText: // // An invalid argument was supplied. // // // MessageId: WSAEMFILE // // MessageText: // // Too many open sockets. // // // MessageId: WSAEWOULDBLOCK // // MessageText: // // A non-blocking socket operation could not be completed immediately. // // // MessageId: WSAEINPROGRESS // // MessageText: // // A blocking operation is currently executing. // // // MessageId: WSAEALREADY // // MessageText: // // An operation was attempted on a non-blocking socket that already had an operation in progress. // // // MessageId: WSAENOTSOCK // // MessageText: // // An operation was attempted on something that is not a socket. // // // MessageId: WSAEDESTADDRREQ // // MessageText: // // A required address was omitted from an operation on a socket. // // // MessageId: WSAEMSGSIZE // // MessageText: // // A message sent on a datagram socket was larger than the internal message buffer or some other network limit, or the buffer used to receive a datagram into was smaller than the datagram itself. // // // MessageId: WSAEPROTOTYPE // // MessageText: // // A protocol was specified in the socket function call that does not support the semantics of the socket type requested. // // // MessageId: WSAENOPROTOOPT // // MessageText: // // An unknown, invalid, or unsupported option or level was specified in a getsockopt or setsockopt call. // // // MessageId: WSAEPROTONOSUPPORT // // MessageText: // // The requested protocol has not been configured into the system, or no implementation for it exists. // // // MessageId: WSAESOCKTNOSUPPORT // // MessageText: // // The support for the specified socket type does not exist in this address family. // // // MessageId: WSAEOPNOTSUPP // // MessageText: // // The attempted operation is not supported for the type of object referenced. // // // MessageId: WSAEPFNOSUPPORT // // MessageText: // // The protocol family has not been configured into the system or no implementation for it exists. // // // MessageId: WSAEAFNOSUPPORT // // MessageText: // // An address incompatible with the requested protocol was used. // // // MessageId: WSAEADDRINUSE // // MessageText: // // Only one usage of each socket address (protocol/network address/port) is normally permitted. // // // MessageId: WSAEADDRNOTAVAIL // // MessageText: // // The requested address is not valid in its context. // // // MessageId: WSAENETDOWN // // MessageText: // // A socket operation encountered a dead network. // // // MessageId: WSAENETUNREACH // // MessageText: // // A socket operation was attempted to an unreachable network. // // // MessageId: WSAENETRESET // // MessageText: // // The connection has been broken due to keep-alive activity detecting a failure while the operation was in progress. // // // MessageId: WSAECONNABORTED // // MessageText: // // An established connection was aborted by the software in your host machine. // // // MessageId: WSAECONNRESET // // MessageText: // // An existing connection was forcibly closed by the remote host. // // // MessageId: WSAENOBUFS // // MessageText: // // An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full. // // // MessageId: WSAEISCONN // // MessageText: // // A connect request was made on an already connected socket. // // // MessageId: WSAENOTCONN // // MessageText: // // A request to send or receive data was disallowed because the socket is not connected and (when sending on a datagram socket using a sendto call) no address was supplied. // // // MessageId: WSAESHUTDOWN // // MessageText: // // A request to send or receive data was disallowed because the socket had already been shut down in that direction with a previous shutdown call. // // // MessageId: WSAETOOMANYREFS // // MessageText: // // Too many references to some kernel object. // // // MessageId: WSAETIMEDOUT // // MessageText: // // A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. // // // MessageId: WSAECONNREFUSED // // MessageText: // // No connection could be made because the target machine actively refused it. // // // MessageId: WSAELOOP // // MessageText: // // Cannot translate name. // // // MessageId: WSAENAMETOOLONG // // MessageText: // // Name component or name was too long. // // // MessageId: WSAEHOSTDOWN // // MessageText: // // A socket operation failed because the destination host was down. // // // MessageId: WSAEHOSTUNREACH // // MessageText: // // A socket operation was attempted to an unreachable host. // // // MessageId: WSAENOTEMPTY // // MessageText: // // Cannot remove a directory that is not empty. // // // MessageId: WSAEPROCLIM // // MessageText: // // A Windows Sockets implementation may have a limit on the number of applications that may use it simultaneously. // // // MessageId: WSAEUSERS // // MessageText: // // Ran out of quota. // // // MessageId: WSAEDQUOT // // MessageText: // // Ran out of disk quota. // // // MessageId: WSAESTALE // // MessageText: // // File handle reference is no longer available. // // // MessageId: WSAEREMOTE // // MessageText: // // Item is not available locally. // // // MessageId: WSASYSNOTREADY // // MessageText: // // WSAStartup cannot function at this time because the underlying system it uses to provide network services is currently unavailable. // // // MessageId: WSAVERNOTSUPPORTED // // MessageText: // // The Windows Sockets version requested is not supported. // // // MessageId: WSANOTINITIALISED // // MessageText: // // Either the application has not called WSAStartup, or WSAStartup failed. // // // MessageId: WSAEDISCON // // MessageText: // // Returned by WSARecv or WSARecvFrom to indicate the remote party has initiated a graceful shutdown sequence. // // // MessageId: WSAENOMORE // // MessageText: // // No more results can be returned by WSALookupServiceNext. // // // MessageId: WSAECANCELLED // // MessageText: // // A call to WSALookupServiceEnd was made while this call was still processing. The call has been canceled. // // // MessageId: WSAEINVALIDPROCTABLE // // MessageText: // // The procedure call table is invalid. // // // MessageId: WSAEINVALIDPROVIDER // // MessageText: // // The requested service provider is invalid. // // // MessageId: WSAEPROVIDERFAILEDINIT // // MessageText: // // The requested service provider could not be loaded or initialized. // // // MessageId: WSASYSCALLFAILURE // // MessageText: // // A system call that should never fail has failed. // // // MessageId: WSASERVICE_NOT_FOUND // // MessageText: // // No such service is known. The service cannot be found in the specified name space. // // // MessageId: WSATYPE_NOT_FOUND // // MessageText: // // The specified class was not found. // // // MessageId: WSA_E_NO_MORE // // MessageText: // // No more results can be returned by WSALookupServiceNext. // // // MessageId: WSA_E_CANCELLED // // MessageText: // // A call to WSALookupServiceEnd was made while this call was still processing. The call has been canceled. // // // MessageId: WSAEREFUSED // // MessageText: // // A database query failed because it was actively refused. // // // MessageId: WSAHOST_NOT_FOUND // // MessageText: // // No such host is known. // // // MessageId: WSATRY_AGAIN // // MessageText: // // This is usually a temporary error during hostname resolution and means that the local server did not receive a response from an authoritative server. // // // MessageId: WSANO_RECOVERY // // MessageText: // // A non-recoverable error occurred during a database lookup. // // // MessageId: WSANO_DATA // // MessageText: // // The requested name is valid, but no data of the requested type was found. // // // MessageId: WSA_QOS_RECEIVERS // // MessageText: // // At least one reserve has arrived. // // // MessageId: WSA_QOS_SENDERS // // MessageText: // // At least one path has arrived. // // // MessageId: WSA_QOS_NO_SENDERS // // MessageText: // // There are no senders. // // // MessageId: WSA_QOS_NO_RECEIVERS // // MessageText: // // There are no receivers. // // // MessageId: WSA_QOS_REQUEST_CONFIRMED // // MessageText: // // Reserve has been confirmed. // // // MessageId: WSA_QOS_ADMISSION_FAILURE // // MessageText: // // Error due to lack of resources. // // // MessageId: WSA_QOS_POLICY_FAILURE // // MessageText: // // Rejected for administrative reasons - bad credentials. // // // MessageId: WSA_QOS_BAD_STYLE // // MessageText: // // Unknown or conflicting style. // // // MessageId: WSA_QOS_BAD_OBJECT // // MessageText: // // Problem with some part of the filterspec or providerspecific buffer in general. // // // MessageId: WSA_QOS_TRAFFIC_CTRL_ERROR // // MessageText: // // Problem with some part of the flowspec. // // // MessageId: WSA_QOS_GENERIC_ERROR // // MessageText: // // General QOS error. // // // MessageId: WSA_QOS_ESERVICETYPE // // MessageText: // // An invalid or unrecognized service type was found in the flowspec. // // // MessageId: WSA_QOS_EFLOWSPEC // // MessageText: // // An invalid or inconsistent flowspec was found in the QOS structure. // // // MessageId: WSA_QOS_EPROVSPECBUF // // MessageText: // // Invalid QOS provider-specific buffer. // // // MessageId: WSA_QOS_EFILTERSTYLE // // MessageText: // // An invalid QOS filter style was used. // // // MessageId: WSA_QOS_EFILTERTYPE // // MessageText: // // An invalid QOS filter type was used. // // // MessageId: WSA_QOS_EFILTERCOUNT // // MessageText: // // An incorrect number of QOS FILTERSPECs were specified in the FLOWDESCRIPTOR. // // // MessageId: WSA_QOS_EOBJLENGTH // // MessageText: // // An object with an invalid ObjectLength field was specified in the QOS provider-specific buffer. // // // MessageId: WSA_QOS_EFLOWCOUNT // // MessageText: // // An incorrect number of flow descriptors was specified in the QOS structure. // // // MessageId: WSA_QOS_EUNKOWNPSOBJ // // MessageText: // // An unrecognized object was found in the QOS provider-specific buffer. // // // MessageId: WSA_QOS_EPOLICYOBJ // // MessageText: // // An invalid policy object was found in the QOS provider-specific buffer. // // // MessageId: WSA_QOS_EFLOWDESC // // MessageText: // // An invalid QOS flow descriptor was found in the flow descriptor list. // // // MessageId: WSA_QOS_EPSFLOWSPEC // // MessageText: // // An invalid or inconsistent flowspec was found in the QOS provider specific buffer. // // // MessageId: WSA_QOS_EPSFILTERSPEC // // MessageText: // // An invalid FILTERSPEC was found in the QOS provider-specific buffer. // // // MessageId: WSA_QOS_ESDMODEOBJ // // MessageText: // // An invalid shape discard mode object was found in the QOS provider specific buffer. // // // MessageId: WSA_QOS_ESHAPERATEOBJ // // MessageText: // // An invalid shaping rate object was found in the QOS provider-specific buffer. // // // MessageId: WSA_QOS_RESERVED_PETYPE // // MessageText: // // A reserved policy element was found in the QOS provider-specific buffer. // #line 19954 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winerror.h" /////////////////////////////////////////////////// // // // End of WinSock Error Codes // // // // 10000 to 11999 // /////////////////////////////////////////////////// /////////////////////////////////////////////////// // // // Available // // // // 12000 to 129999 // /////////////////////////////////////////////////// /////////////////////////////////////////////////// // // // Start of IPSec Error codes // // // // 13000 to 13999 // /////////////////////////////////////////////////// // // MessageId: ERROR_IPSEC_QM_POLICY_EXISTS // // MessageText: // // The specified quick mode policy already exists. // // // MessageId: ERROR_IPSEC_QM_POLICY_NOT_FOUND // // MessageText: // // The specified quick mode policy was not found. // // // MessageId: ERROR_IPSEC_QM_POLICY_IN_USE // // MessageText: // // The specified quick mode policy is being used. // // // MessageId: ERROR_IPSEC_MM_POLICY_EXISTS // // MessageText: // // The specified main mode policy already exists. // // // MessageId: ERROR_IPSEC_MM_POLICY_NOT_FOUND // // MessageText: // // The specified main mode policy was not found // // // MessageId: ERROR_IPSEC_MM_POLICY_IN_USE // // MessageText: // // The specified main mode policy is being used. // // // MessageId: ERROR_IPSEC_MM_FILTER_EXISTS // // MessageText: // // The specified main mode filter already exists. // // // MessageId: ERROR_IPSEC_MM_FILTER_NOT_FOUND // // MessageText: // // The specified main mode filter was not found. // // // MessageId: ERROR_IPSEC_TRANSPORT_FILTER_EXISTS // // MessageText: // // The specified transport mode filter already exists. // // // MessageId: ERROR_IPSEC_TRANSPORT_FILTER_NOT_FOUND // // MessageText: // // The specified transport mode filter does not exist. // // // MessageId: ERROR_IPSEC_MM_AUTH_EXISTS // // MessageText: // // The specified main mode authentication list exists. // // // MessageId: ERROR_IPSEC_MM_AUTH_NOT_FOUND // // MessageText: // // The specified main mode authentication list was not found. // // // MessageId: ERROR_IPSEC_MM_AUTH_IN_USE // // MessageText: // // The specified main mode authentication list is being used. // // // MessageId: ERROR_IPSEC_DEFAULT_MM_POLICY_NOT_FOUND // // MessageText: // // The specified default main mode policy was not found. // // // MessageId: ERROR_IPSEC_DEFAULT_MM_AUTH_NOT_FOUND // // MessageText: // // The specified default main mode authentication list was not found. // // // MessageId: ERROR_IPSEC_DEFAULT_QM_POLICY_NOT_FOUND // // MessageText: // // The specified default quick mode policy was not found. // // // MessageId: ERROR_IPSEC_TUNNEL_FILTER_EXISTS // // MessageText: // // The specified tunnel mode filter exists. // // // MessageId: ERROR_IPSEC_TUNNEL_FILTER_NOT_FOUND // // MessageText: // // The specified tunnel mode filter was not found. // // // MessageId: ERROR_IPSEC_MM_FILTER_PENDING_DELETION // // MessageText: // // The Main Mode filter is pending deletion. // // // MessageId: ERROR_IPSEC_TRANSPORT_FILTER_PENDING_DELETION // // MessageText: // // The transport filter is pending deletion. // // // MessageId: ERROR_IPSEC_TUNNEL_FILTER_PENDING_DELETION // // MessageText: // // The tunnel filter is pending deletion. // // // MessageId: ERROR_IPSEC_MM_POLICY_PENDING_DELETION // // MessageText: // // The Main Mode policy is pending deletion. // // // MessageId: ERROR_IPSEC_MM_AUTH_PENDING_DELETION // // MessageText: // // The Main Mode authentication bundle is pending deletion. // // // MessageId: ERROR_IPSEC_QM_POLICY_PENDING_DELETION // // MessageText: // // The Quick Mode policy is pending deletion. // // // MessageId: WARNING_IPSEC_MM_POLICY_PRUNED // // MessageText: // // The Main Mode policy was successfully added, but some of the requested offers are not supported. // // // MessageId: WARNING_IPSEC_QM_POLICY_PRUNED // // MessageText: // // The Quick Mode policy was successfully added, but some of the requested offers are not supported. // // // MessageId: ERROR_IPSEC_IKE_NEG_STATUS_BEGIN // // MessageText: // // ERROR_IPSEC_IKE_NEG_STATUS_BEGIN // // // MessageId: ERROR_IPSEC_IKE_AUTH_FAIL // // MessageText: // // IKE authentication credentials are unacceptable // // // MessageId: ERROR_IPSEC_IKE_ATTRIB_FAIL // // MessageText: // // IKE security attributes are unacceptable // // // MessageId: ERROR_IPSEC_IKE_NEGOTIATION_PENDING // // MessageText: // // IKE Negotiation in progress // // // MessageId: ERROR_IPSEC_IKE_GENERAL_PROCESSING_ERROR // // MessageText: // // General processing error // // // MessageId: ERROR_IPSEC_IKE_TIMED_OUT // // MessageText: // // Negotiation timed out // // // MessageId: ERROR_IPSEC_IKE_NO_CERT // // MessageText: // // IKE failed to find valid machine certificate. Contact your Network Security Administrator about installing a valid certificate in the appropriate Certificate Store. // // // MessageId: ERROR_IPSEC_IKE_SA_DELETED // // MessageText: // // IKE SA deleted by peer before establishment completed // // // MessageId: ERROR_IPSEC_IKE_SA_REAPED // // MessageText: // // IKE SA deleted before establishment completed // // // MessageId: ERROR_IPSEC_IKE_MM_ACQUIRE_DROP // // MessageText: // // Negotiation request sat in Queue too long // // // MessageId: ERROR_IPSEC_IKE_QM_ACQUIRE_DROP // // MessageText: // // Negotiation request sat in Queue too long // // // MessageId: ERROR_IPSEC_IKE_QUEUE_DROP_MM // // MessageText: // // Negotiation request sat in Queue too long // // // MessageId: ERROR_IPSEC_IKE_QUEUE_DROP_NO_MM // // MessageText: // // Negotiation request sat in Queue too long // // // MessageId: ERROR_IPSEC_IKE_DROP_NO_RESPONSE // // MessageText: // // No response from peer // // // MessageId: ERROR_IPSEC_IKE_MM_DELAY_DROP // // MessageText: // // Negotiation took too long // // // MessageId: ERROR_IPSEC_IKE_QM_DELAY_DROP // // MessageText: // // Negotiation took too long // // // MessageId: ERROR_IPSEC_IKE_ERROR // // MessageText: // // Unknown error occurred // // // MessageId: ERROR_IPSEC_IKE_CRL_FAILED // // MessageText: // // Certificate Revocation Check failed // // // MessageId: ERROR_IPSEC_IKE_INVALID_KEY_USAGE // // MessageText: // // Invalid certificate key usage // // // MessageId: ERROR_IPSEC_IKE_INVALID_CERT_TYPE // // MessageText: // // Invalid certificate type // // // MessageId: ERROR_IPSEC_IKE_NO_PRIVATE_KEY // // MessageText: // // IKE negotiation failed because the machine certificate used does not have a private key. IPsec certificates require a private key. Contact your Network Security administrator about replacing with a certificate that has a private key. // // // MessageId: ERROR_IPSEC_IKE_DH_FAIL // // MessageText: // // Failure in Diffie-Helman computation // // // MessageId: ERROR_IPSEC_IKE_INVALID_HEADER // // MessageText: // // Invalid header // // // MessageId: ERROR_IPSEC_IKE_NO_POLICY // // MessageText: // // No policy configured // // // MessageId: ERROR_IPSEC_IKE_INVALID_SIGNATURE // // MessageText: // // Failed to verify signature // // // MessageId: ERROR_IPSEC_IKE_KERBEROS_ERROR // // MessageText: // // Failed to authenticate using kerberos // // // MessageId: ERROR_IPSEC_IKE_NO_PUBLIC_KEY // // MessageText: // // Peer's certificate did not have a public key // // These must stay as a unit. // // MessageId: ERROR_IPSEC_IKE_PROCESS_ERR // // MessageText: // // Error processing error payload // // // MessageId: ERROR_IPSEC_IKE_PROCESS_ERR_SA // // MessageText: // // Error processing SA payload // // // MessageId: ERROR_IPSEC_IKE_PROCESS_ERR_PROP // // MessageText: // // Error processing Proposal payload // // // MessageId: ERROR_IPSEC_IKE_PROCESS_ERR_TRANS // // MessageText: // // Error processing Transform payload // // // MessageId: ERROR_IPSEC_IKE_PROCESS_ERR_KE // // MessageText: // // Error processing KE payload // // // MessageId: ERROR_IPSEC_IKE_PROCESS_ERR_ID // // MessageText: // // Error processing ID payload // // // MessageId: ERROR_IPSEC_IKE_PROCESS_ERR_CERT // // MessageText: // // Error processing Cert payload // // // MessageId: ERROR_IPSEC_IKE_PROCESS_ERR_CERT_REQ // // MessageText: // // Error processing Certificate Request payload // // // MessageId: ERROR_IPSEC_IKE_PROCESS_ERR_HASH // // MessageText: // // Error processing Hash payload // // // MessageId: ERROR_IPSEC_IKE_PROCESS_ERR_SIG // // MessageText: // // Error processing Signature payload // // // MessageId: ERROR_IPSEC_IKE_PROCESS_ERR_NONCE // // MessageText: // // Error processing Nonce payload // // // MessageId: ERROR_IPSEC_IKE_PROCESS_ERR_NOTIFY // // MessageText: // // Error processing Notify payload // // // MessageId: ERROR_IPSEC_IKE_PROCESS_ERR_DELETE // // MessageText: // // Error processing Delete Payload // // // MessageId: ERROR_IPSEC_IKE_PROCESS_ERR_VENDOR // // MessageText: // // Error processing VendorId payload // // // MessageId: ERROR_IPSEC_IKE_INVALID_PAYLOAD // // MessageText: // // Invalid payload received // // // MessageId: ERROR_IPSEC_IKE_LOAD_SOFT_SA // // MessageText: // // Soft SA loaded // // // MessageId: ERROR_IPSEC_IKE_SOFT_SA_TORN_DOWN // // MessageText: // // Soft SA torn down // // // MessageId: ERROR_IPSEC_IKE_INVALID_COOKIE // // MessageText: // // Invalid cookie received. // // // MessageId: ERROR_IPSEC_IKE_NO_PEER_CERT // // MessageText: // // Peer failed to send valid machine certificate // // // MessageId: ERROR_IPSEC_IKE_PEER_CRL_FAILED // // MessageText: // // Certification Revocation check of peer's certificate failed // // // MessageId: ERROR_IPSEC_IKE_POLICY_CHANGE // // MessageText: // // New policy invalidated SAs formed with old policy // // // MessageId: ERROR_IPSEC_IKE_NO_MM_POLICY // // MessageText: // // There is no available Main Mode IKE policy. // // // MessageId: ERROR_IPSEC_IKE_NOTCBPRIV // // MessageText: // // Failed to enabled TCB privilege. // // // MessageId: ERROR_IPSEC_IKE_SECLOADFAIL // // MessageText: // // Failed to load SECURITY.DLL. // // // MessageId: ERROR_IPSEC_IKE_FAILSSPINIT // // MessageText: // // Failed to obtain security function table dispatch address from SSPI. // // // MessageId: ERROR_IPSEC_IKE_FAILQUERYSSP // // MessageText: // // Failed to query Kerberos package to obtain max token size. // // // MessageId: ERROR_IPSEC_IKE_SRVACQFAIL // // MessageText: // // Failed to obtain Kerberos server credentials for ISAKMP/ERROR_IPSEC_IKE service. Kerberos authentication will not function. The most likely reason for this is lack of domain membership. This is normal if your computer is a member of a workgroup. // // // MessageId: ERROR_IPSEC_IKE_SRVQUERYCRED // // MessageText: // // Failed to determine SSPI principal name for ISAKMP/ERROR_IPSEC_IKE service (QueryCredentialsAttributes). // // // MessageId: ERROR_IPSEC_IKE_GETSPIFAIL // // MessageText: // // Failed to obtain new SPI for the inbound SA from Ipsec driver. The most common cause for this is that the driver does not have the correct filter. Check your policy to verify the filters. // // // MessageId: ERROR_IPSEC_IKE_INVALID_FILTER // // MessageText: // // Given filter is invalid // // // MessageId: ERROR_IPSEC_IKE_OUT_OF_MEMORY // // MessageText: // // Memory allocation failed. // // // MessageId: ERROR_IPSEC_IKE_ADD_UPDATE_KEY_FAILED // // MessageText: // // Failed to add Security Association to IPSec Driver. The most common cause for this is if the IKE negotiation took too long to complete. If the problem persists, reduce the load on the faulting machine. // // // MessageId: ERROR_IPSEC_IKE_INVALID_POLICY // // MessageText: // // Invalid policy // // // MessageId: ERROR_IPSEC_IKE_UNKNOWN_DOI // // MessageText: // // Invalid DOI // // // MessageId: ERROR_IPSEC_IKE_INVALID_SITUATION // // MessageText: // // Invalid situation // // // MessageId: ERROR_IPSEC_IKE_DH_FAILURE // // MessageText: // // Diffie-Hellman failure // // // MessageId: ERROR_IPSEC_IKE_INVALID_GROUP // // MessageText: // // Invalid Diffie-Hellman group // // // MessageId: ERROR_IPSEC_IKE_ENCRYPT // // MessageText: // // Error encrypting payload // // // MessageId: ERROR_IPSEC_IKE_DECRYPT // // MessageText: // // Error decrypting payload // // // MessageId: ERROR_IPSEC_IKE_POLICY_MATCH // // MessageText: // // Policy match error // // // MessageId: ERROR_IPSEC_IKE_UNSUPPORTED_ID // // MessageText: // // Unsupported ID // // // MessageId: ERROR_IPSEC_IKE_INVALID_HASH // // MessageText: // // Hash verification failed // // // MessageId: ERROR_IPSEC_IKE_INVALID_HASH_ALG // // MessageText: // // Invalid hash algorithm // // // MessageId: ERROR_IPSEC_IKE_INVALID_HASH_SIZE // // MessageText: // // Invalid hash size // // // MessageId: ERROR_IPSEC_IKE_INVALID_ENCRYPT_ALG // // MessageText: // // Invalid encryption algorithm // // // MessageId: ERROR_IPSEC_IKE_INVALID_AUTH_ALG // // MessageText: // // Invalid authentication algorithm // // // MessageId: ERROR_IPSEC_IKE_INVALID_SIG // // MessageText: // // Invalid certificate signature // // // MessageId: ERROR_IPSEC_IKE_LOAD_FAILED // // MessageText: // // Load failed // // // MessageId: ERROR_IPSEC_IKE_RPC_DELETE // // MessageText: // // Deleted via RPC call // // // MessageId: ERROR_IPSEC_IKE_BENIGN_REINIT // // MessageText: // // Temporary state created to perform reinit. This is not a real failure. // // // MessageId: ERROR_IPSEC_IKE_INVALID_RESPONDER_LIFETIME_NOTIFY // // MessageText: // // The lifetime value received in the Responder Lifetime Notify is below the Windows 2000 configured minimum value. Please fix the policy on the peer machine. // // // MessageId: ERROR_IPSEC_IKE_INVALID_CERT_KEYLEN // // MessageText: // // Key length in certificate is too small for configured security requirements. // // // MessageId: ERROR_IPSEC_IKE_MM_LIMIT // // MessageText: // // Max number of established MM SAs to peer exceeded. // // // MessageId: ERROR_IPSEC_IKE_NEGOTIATION_DISABLED // // MessageText: // // IKE received a policy that disables negotiation. // // // MessageId: ERROR_IPSEC_IKE_QM_LIMIT // // MessageText: // // Reached maximum quick mode limit for the main mode. New main mode will be started. // // // MessageId: ERROR_IPSEC_IKE_MM_EXPIRED // // MessageText: // // Main mode SA lifetime expired or peer sent a main mode delete. // // // MessageId: ERROR_IPSEC_IKE_PEER_MM_ASSUMED_INVALID // // MessageText: // // Main mode SA assumed to be invalid because peer stopped responding. // // // MessageId: ERROR_IPSEC_IKE_CERT_CHAIN_POLICY_MISMATCH // // MessageText: // // Certificate doesn't chain to a trusted root in IPsec policy. // // // MessageId: ERROR_IPSEC_IKE_UNEXPECTED_MESSAGE_ID // // MessageText: // // Received unexpected message ID. // // // MessageId: ERROR_IPSEC_IKE_INVALID_AUTH_PAYLOAD // // MessageText: // // Received invalid authentication offers. // // // MessageId: ERROR_IPSEC_IKE_DOS_COOKIE_SENT // // MessageText: // // Sent DOS cookie notify to intiator. // // // MessageId: ERROR_IPSEC_IKE_SHUTTING_DOWN // // MessageText: // // IKE service is shutting down. // // // MessageId: ERROR_IPSEC_IKE_CGA_AUTH_FAILED // // MessageText: // // Could not verify binding between CGA address and certificate. // // // MessageId: ERROR_IPSEC_IKE_PROCESS_ERR_NATOA // // MessageText: // // Error processing NatOA payload. // // // MessageId: ERROR_IPSEC_IKE_INVALID_MM_FOR_QM // // MessageText: // // Parameters of the main mode are invalid for this quick mode. // // // MessageId: ERROR_IPSEC_IKE_QM_EXPIRED // // MessageText: // // Quick mode SA was expired by IPsec driver. // // // MessageId: ERROR_IPSEC_IKE_TOO_MANY_FILTERS // // MessageText: // // Too many dynamically added IKEEXT filters were detected. // // // MessageId: ERROR_IPSEC_IKE_NEG_STATUS_END // // MessageText: // // ERROR_IPSEC_IKE_NEG_STATUS_END // // // Following error codes are returned by IPsec kernel. // // // MessageId: ERROR_IPSEC_BAD_SPI // // MessageText: // // The SPI in the packet does not match a valid IPsec SA. // // // MessageId: ERROR_IPSEC_SA_LIFETIME_EXPIRED // // MessageText: // // Packet was received on an IPsec SA whose lifetime has expired. // // // MessageId: ERROR_IPSEC_WRONG_SA // // MessageText: // // Packet was received on an IPsec SA that doesn't match the packet characteristics. // // // MessageId: ERROR_IPSEC_REPLAY_CHECK_FAILED // // MessageText: // // Packet sequence number replay check failed. // // // MessageId: ERROR_IPSEC_INVALID_PACKET // // MessageText: // // IPsec header and/or trailer in the packet is invalid. // // // MessageId: ERROR_IPSEC_INTEGRITY_CHECK_FAILED // // MessageText: // // IPsec integrity check failed. // // // MessageId: ERROR_IPSEC_CLEAR_TEXT_DROP // // MessageText: // // IPsec dropped a clear text packet. // /////////////////////////////////////////////////// // // // End of IPSec Error codes // // // // 13000 to 13999 // /////////////////////////////////////////////////// /////////////////////////////////////////////////// // // // Start of Side By Side Error Codes // // // // 14000 to 14999 // /////////////////////////////////////////////////// // // MessageId: ERROR_SXS_SECTION_NOT_FOUND // // MessageText: // // The requested section was not present in the activation context. // // // MessageId: ERROR_SXS_CANT_GEN_ACTCTX // // MessageText: // // The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log for more detail. // // // MessageId: ERROR_SXS_INVALID_ACTCTXDATA_FORMAT // // MessageText: // // The application binding data format is invalid. // // // MessageId: ERROR_SXS_ASSEMBLY_NOT_FOUND // // MessageText: // // The referenced assembly is not installed on your system. // // // MessageId: ERROR_SXS_MANIFEST_FORMAT_ERROR // // MessageText: // // The manifest file does not begin with the required tag and format information. // // // MessageId: ERROR_SXS_MANIFEST_PARSE_ERROR // // MessageText: // // The manifest file contains one or more syntax errors. // // // MessageId: ERROR_SXS_ACTIVATION_CONTEXT_DISABLED // // MessageText: // // The application attempted to activate a disabled activation context. // // // MessageId: ERROR_SXS_KEY_NOT_FOUND // // MessageText: // // The requested lookup key was not found in any active activation context. // // // MessageId: ERROR_SXS_VERSION_CONFLICT // // MessageText: // // A component version required by the application conflicts with another component version already active. // // // MessageId: ERROR_SXS_WRONG_SECTION_TYPE // // MessageText: // // The type requested activation context section does not match the query API used. // // // MessageId: ERROR_SXS_THREAD_QUERIES_DISABLED // // MessageText: // // Lack of system resources has required isolated activation to be disabled for the current thread of execution. // // // MessageId: ERROR_SXS_PROCESS_DEFAULT_ALREADY_SET // // MessageText: // // An attempt to set the process default activation context failed because the process default activation context was already set. // // // MessageId: ERROR_SXS_UNKNOWN_ENCODING_GROUP // // MessageText: // // The encoding group identifier specified is not recognized. // // // MessageId: ERROR_SXS_UNKNOWN_ENCODING // // MessageText: // // The encoding requested is not recognized. // // // MessageId: ERROR_SXS_INVALID_XML_NAMESPACE_URI // // MessageText: // // The manifest contains a reference to an invalid URI. // // // MessageId: ERROR_SXS_ROOT_MANIFEST_DEPENDENCY_NOT_INSTALLED // // MessageText: // // The application manifest contains a reference to a dependent assembly which is not installed // // // MessageId: ERROR_SXS_LEAF_MANIFEST_DEPENDENCY_NOT_INSTALLED // // MessageText: // // The manifest for an assembly used by the application has a reference to a dependent assembly which is not installed // // // MessageId: ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE // // MessageText: // // The manifest contains an attribute for the assembly identity which is not valid. // // // MessageId: ERROR_SXS_MANIFEST_MISSING_REQUIRED_DEFAULT_NAMESPACE // // MessageText: // // The manifest is missing the required default namespace specification on the assembly element. // // // MessageId: ERROR_SXS_MANIFEST_INVALID_REQUIRED_DEFAULT_NAMESPACE // // MessageText: // // The manifest has a default namespace specified on the assembly element but its value is not "urn:schemas-microsoft-com:asm.v1". // // // MessageId: ERROR_SXS_PRIVATE_MANIFEST_CROSS_PATH_WITH_REPARSE_POINT // // MessageText: // // The private manifest probed has crossed reparse-point-associated path // // // MessageId: ERROR_SXS_DUPLICATE_DLL_NAME // // MessageText: // // Two or more components referenced directly or indirectly by the application manifest have files by the same name. // // // MessageId: ERROR_SXS_DUPLICATE_WINDOWCLASS_NAME // // MessageText: // // Two or more components referenced directly or indirectly by the application manifest have window classes with the same name. // // // MessageId: ERROR_SXS_DUPLICATE_CLSID // // MessageText: // // Two or more components referenced directly or indirectly by the application manifest have the same COM server CLSIDs. // // // MessageId: ERROR_SXS_DUPLICATE_IID // // MessageText: // // Two or more components referenced directly or indirectly by the application manifest have proxies for the same COM interface IIDs. // // // MessageId: ERROR_SXS_DUPLICATE_TLBID // // MessageText: // // Two or more components referenced directly or indirectly by the application manifest have the same COM type library TLBIDs. // // // MessageId: ERROR_SXS_DUPLICATE_PROGID // // MessageText: // // Two or more components referenced directly or indirectly by the application manifest have the same COM ProgIDs. // // // MessageId: ERROR_SXS_DUPLICATE_ASSEMBLY_NAME // // MessageText: // // Two or more components referenced directly or indirectly by the application manifest are different versions of the same component which is not permitted. // // // MessageId: ERROR_SXS_FILE_HASH_MISMATCH // // MessageText: // // A component's file does not match the verification information present in the component manifest. // // // MessageId: ERROR_SXS_POLICY_PARSE_ERROR // // MessageText: // // The policy manifest contains one or more syntax errors. // // // MessageId: ERROR_SXS_XML_E_MISSINGQUOTE // // MessageText: // // Manifest Parse Error : A string literal was expected, but no opening quote character was found. // // // MessageId: ERROR_SXS_XML_E_COMMENTSYNTAX // // MessageText: // // Manifest Parse Error : Incorrect syntax was used in a comment. // // // MessageId: ERROR_SXS_XML_E_BADSTARTNAMECHAR // // MessageText: // // Manifest Parse Error : A name was started with an invalid character. // // // MessageId: ERROR_SXS_XML_E_BADNAMECHAR // // MessageText: // // Manifest Parse Error : A name contained an invalid character. // // // MessageId: ERROR_SXS_XML_E_BADCHARINSTRING // // MessageText: // // Manifest Parse Error : A string literal contained an invalid character. // // // MessageId: ERROR_SXS_XML_E_XMLDECLSYNTAX // // MessageText: // // Manifest Parse Error : Invalid syntax for an xml declaration. // // // MessageId: ERROR_SXS_XML_E_BADCHARDATA // // MessageText: // // Manifest Parse Error : An Invalid character was found in text content. // // // MessageId: ERROR_SXS_XML_E_MISSINGWHITESPACE // // MessageText: // // Manifest Parse Error : Required white space was missing. // // // MessageId: ERROR_SXS_XML_E_EXPECTINGTAGEND // // MessageText: // // Manifest Parse Error : The character '>' was expected. // // // MessageId: ERROR_SXS_XML_E_MISSINGSEMICOLON // // MessageText: // // Manifest Parse Error : A semi colon character was expected. // // // MessageId: ERROR_SXS_XML_E_UNBALANCEDPAREN // // MessageText: // // Manifest Parse Error : Unbalanced parentheses. // // // MessageId: ERROR_SXS_XML_E_INTERNALERROR // // MessageText: // // Manifest Parse Error : Internal error. // // // MessageId: ERROR_SXS_XML_E_UNEXPECTED_WHITESPACE // // MessageText: // // Manifest Parse Error : Whitespace is not allowed at this location. // // // MessageId: ERROR_SXS_XML_E_INCOMPLETE_ENCODING // // MessageText: // // Manifest Parse Error : End of file reached in invalid state for current encoding. // // // MessageId: ERROR_SXS_XML_E_MISSING_PAREN // // MessageText: // // Manifest Parse Error : Missing parenthesis. // // // MessageId: ERROR_SXS_XML_E_EXPECTINGCLOSEQUOTE // // MessageText: // // Manifest Parse Error : A single or double closing quote character (\' or \") is missing. // // // MessageId: ERROR_SXS_XML_E_MULTIPLE_COLONS // // MessageText: // // Manifest Parse Error : Multiple colons are not allowed in a name. // // // MessageId: ERROR_SXS_XML_E_INVALID_DECIMAL // // MessageText: // // Manifest Parse Error : Invalid character for decimal digit. // // // MessageId: ERROR_SXS_XML_E_INVALID_HEXIDECIMAL // // MessageText: // // Manifest Parse Error : Invalid character for hexidecimal digit. // // // MessageId: ERROR_SXS_XML_E_INVALID_UNICODE // // MessageText: // // Manifest Parse Error : Invalid unicode character value for this platform. // // // MessageId: ERROR_SXS_XML_E_WHITESPACEORQUESTIONMARK // // MessageText: // // Manifest Parse Error : Expecting whitespace or '?'. // // // MessageId: ERROR_SXS_XML_E_UNEXPECTEDENDTAG // // MessageText: // // Manifest Parse Error : End tag was not expected at this location. // // // MessageId: ERROR_SXS_XML_E_UNCLOSEDTAG // // MessageText: // // Manifest Parse Error : The following tags were not closed: %1. // // // MessageId: ERROR_SXS_XML_E_DUPLICATEATTRIBUTE // // MessageText: // // Manifest Parse Error : Duplicate attribute. // // // MessageId: ERROR_SXS_XML_E_MULTIPLEROOTS // // MessageText: // // Manifest Parse Error : Only one top level element is allowed in an XML document. // // // MessageId: ERROR_SXS_XML_E_INVALIDATROOTLEVEL // // MessageText: // // Manifest Parse Error : Invalid at the top level of the document. // // // MessageId: ERROR_SXS_XML_E_BADXMLDECL // // MessageText: // // Manifest Parse Error : Invalid xml declaration. // // // MessageId: ERROR_SXS_XML_E_MISSINGROOT // // MessageText: // // Manifest Parse Error : XML document must have a top level element. // // // MessageId: ERROR_SXS_XML_E_UNEXPECTEDEOF // // MessageText: // // Manifest Parse Error : Unexpected end of file. // // // MessageId: ERROR_SXS_XML_E_BADPEREFINSUBSET // // MessageText: // // Manifest Parse Error : Parameter entities cannot be used inside markup declarations in an internal subset. // // // MessageId: ERROR_SXS_XML_E_UNCLOSEDSTARTTAG // // MessageText: // // Manifest Parse Error : Element was not closed. // // // MessageId: ERROR_SXS_XML_E_UNCLOSEDENDTAG // // MessageText: // // Manifest Parse Error : End element was missing the character '>'. // // // MessageId: ERROR_SXS_XML_E_UNCLOSEDSTRING // // MessageText: // // Manifest Parse Error : A string literal was not closed. // // // MessageId: ERROR_SXS_XML_E_UNCLOSEDCOMMENT // // MessageText: // // Manifest Parse Error : A comment was not closed. // // // MessageId: ERROR_SXS_XML_E_UNCLOSEDDECL // // MessageText: // // Manifest Parse Error : A declaration was not closed. // // // MessageId: ERROR_SXS_XML_E_UNCLOSEDCDATA // // MessageText: // // Manifest Parse Error : A CDATA section was not closed. // // // MessageId: ERROR_SXS_XML_E_RESERVEDNAMESPACE // // MessageText: // // Manifest Parse Error : The namespace prefix is not allowed to start with the reserved string "xml". // // // MessageId: ERROR_SXS_XML_E_INVALIDENCODING // // MessageText: // // Manifest Parse Error : System does not support the specified encoding. // // // MessageId: ERROR_SXS_XML_E_INVALIDSWITCH // // MessageText: // // Manifest Parse Error : Switch from current encoding to specified encoding not supported. // // // MessageId: ERROR_SXS_XML_E_BADXMLCASE // // MessageText: // // Manifest Parse Error : The name 'xml' is reserved and must be lower case. // // // MessageId: ERROR_SXS_XML_E_INVALID_STANDALONE // // MessageText: // // Manifest Parse Error : The standalone attribute must have the value 'yes' or 'no'. // // // MessageId: ERROR_SXS_XML_E_UNEXPECTED_STANDALONE // // MessageText: // // Manifest Parse Error : The standalone attribute cannot be used in external entities. // // // MessageId: ERROR_SXS_XML_E_INVALID_VERSION // // MessageText: // // Manifest Parse Error : Invalid version number. // // // MessageId: ERROR_SXS_XML_E_MISSINGEQUALS // // MessageText: // // Manifest Parse Error : Missing equals sign between attribute and attribute value. // // // MessageId: ERROR_SXS_PROTECTION_RECOVERY_FAILED // // MessageText: // // Assembly Protection Error : Unable to recover the specified assembly. // // // MessageId: ERROR_SXS_PROTECTION_PUBLIC_KEY_TOO_SHORT // // MessageText: // // Assembly Protection Error : The public key for an assembly was too short to be allowed. // // // MessageId: ERROR_SXS_PROTECTION_CATALOG_NOT_VALID // // MessageText: // // Assembly Protection Error : The catalog for an assembly is not valid, or does not match the assembly's manifest. // // // MessageId: ERROR_SXS_UNTRANSLATABLE_HRESULT // // MessageText: // // An HRESULT could not be translated to a corresponding Win32 error code. // // // MessageId: ERROR_SXS_PROTECTION_CATALOG_FILE_MISSING // // MessageText: // // Assembly Protection Error : The catalog for an assembly is missing. // // // MessageId: ERROR_SXS_MISSING_ASSEMBLY_IDENTITY_ATTRIBUTE // // MessageText: // // The supplied assembly identity is missing one or more attributes which must be present in this context. // // // MessageId: ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE_NAME // // MessageText: // // The supplied assembly identity has one or more attribute names that contain characters not permitted in XML names. // // // MessageId: ERROR_SXS_ASSEMBLY_MISSING // // MessageText: // // The referenced assembly could not be found. // // // MessageId: ERROR_SXS_CORRUPT_ACTIVATION_STACK // // MessageText: // // The activation context activation stack for the running thread of execution is corrupt. // // // MessageId: ERROR_SXS_CORRUPTION // // MessageText: // // The application isolation metadata for this process or thread has become corrupt. // // // MessageId: ERROR_SXS_EARLY_DEACTIVATION // // MessageText: // // The activation context being deactivated is not the most recently activated one. // // // MessageId: ERROR_SXS_INVALID_DEACTIVATION // // MessageText: // // The activation context being deactivated is not active for the current thread of execution. // // // MessageId: ERROR_SXS_MULTIPLE_DEACTIVATION // // MessageText: // // The activation context being deactivated has already been deactivated. // // // MessageId: ERROR_SXS_PROCESS_TERMINATION_REQUESTED // // MessageText: // // A component used by the isolation facility has requested to terminate the process. // // // MessageId: ERROR_SXS_RELEASE_ACTIVATION_CONTEXT // // MessageText: // // A kernel mode component is releasing a reference on an activation context. // // // MessageId: ERROR_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY // // MessageText: // // The activation context of system default assembly could not be generated. // // // MessageId: ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE // // MessageText: // // The value of an attribute in an identity is not within the legal range. // // // MessageId: ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME // // MessageText: // // The name of an attribute in an identity is not within the legal range. // // // MessageId: ERROR_SXS_IDENTITY_DUPLICATE_ATTRIBUTE // // MessageText: // // An identity contains two definitions for the same attribute. // // // MessageId: ERROR_SXS_IDENTITY_PARSE_ERROR // // MessageText: // // The identity string is malformed. This may be due to a trailing comma, more than two unnamed attributes, missing attribute name or missing attribute value. // // // MessageId: ERROR_MALFORMED_SUBSTITUTION_STRING // // MessageText: // // A string containing localized substitutable content was malformed. Either a dollar sign ($) was follwed by something other than a left parenthesis or another dollar sign or an substitution's right parenthesis was not found. // // // MessageId: ERROR_SXS_INCORRECT_PUBLIC_KEY_TOKEN // // MessageText: // // The public key token does not correspond to the public key specified. // // // MessageId: ERROR_UNMAPPED_SUBSTITUTION_STRING // // MessageText: // // A substitution string had no mapping. // // // MessageId: ERROR_SXS_ASSEMBLY_NOT_LOCKED // // MessageText: // // The component must be locked before making the request. // // // MessageId: ERROR_SXS_COMPONENT_STORE_CORRUPT // // MessageText: // // The component store has been corrupted. // // // MessageId: ERROR_ADVANCED_INSTALLER_FAILED // // MessageText: // // An advanced installer failed during setup or servicing. // // // MessageId: ERROR_XML_ENCODING_MISMATCH // // MessageText: // // The character encoding in the XML declaration did not match the encoding used in the document. // // // MessageId: ERROR_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT // // MessageText: // // The identities of the manifests are identical but their contents are different. // // // MessageId: ERROR_SXS_IDENTITIES_DIFFERENT // // MessageText: // // The component identities are different. // // // MessageId: ERROR_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT // // MessageText: // // The assembly is not a deployment. // // // MessageId: ERROR_SXS_FILE_NOT_PART_OF_ASSEMBLY // // MessageText: // // The file is not a part of the assembly. // // // MessageId: ERROR_SXS_MANIFEST_TOO_BIG // // MessageText: // // The size of the manifest exceeds the maximum allowed. // // // MessageId: ERROR_SXS_SETTING_NOT_REGISTERED // // MessageText: // // The setting is not registered. // // // MessageId: ERROR_SXS_TRANSACTION_CLOSURE_INCOMPLETE // // MessageText: // // One or more required members of the transaction are not present. // // // MessageId: ERROR_SMI_PRIMITIVE_INSTALLER_FAILED // // MessageText: // // The SMI primitive installer failed during setup or servicing. // // // MessageId: ERROR_GENERIC_COMMAND_FAILED // // MessageText: // // A generic command executable returned a result that indicates failure. // // // MessageId: ERROR_SXS_FILE_HASH_MISSING // // MessageText: // // A component is missing file verification information in its manifest. // /////////////////////////////////////////////////// // // // End of Side By Side Error Codes // // // // 14000 to 14999 // /////////////////////////////////////////////////// /////////////////////////////////////////////////// // // // Start of WinEvt Error codes // // // // 15000 to 15079 // /////////////////////////////////////////////////// // // MessageId: ERROR_EVT_INVALID_CHANNEL_PATH // // MessageText: // // The specified channel path is invalid. // // // MessageId: ERROR_EVT_INVALID_QUERY // // MessageText: // // The specified query is invalid. // // // MessageId: ERROR_EVT_PUBLISHER_METADATA_NOT_FOUND // // MessageText: // // The publisher metadata cannot be found in the resource. // // // MessageId: ERROR_EVT_EVENT_TEMPLATE_NOT_FOUND // // MessageText: // // The template for an event definition cannot be found in the resource (error = %1). // // // MessageId: ERROR_EVT_INVALID_PUBLISHER_NAME // // MessageText: // // The specified publisher name is invalid. // // // MessageId: ERROR_EVT_INVALID_EVENT_DATA // // MessageText: // // The event data raised by the publisher is not compatible with the event template definition in the publisher's manifest // // // MessageId: ERROR_EVT_CHANNEL_NOT_FOUND // // MessageText: // // The specified channel could not be found. Check channel configuration. // // // MessageId: ERROR_EVT_MALFORMED_XML_TEXT // // MessageText: // // The specified xml text was not well-formed. See Extended Error for more details. // // // MessageId: ERROR_EVT_SUBSCRIPTION_TO_DIRECT_CHANNEL // // MessageText: // // The caller is trying to subscribe to a direct channel which is not allowed. The events for a direct channel go directly to a logfile and cannot be subscribed to. // // // MessageId: ERROR_EVT_CONFIGURATION_ERROR // // MessageText: // // Configuration error. // // // MessageId: ERROR_EVT_QUERY_RESULT_STALE // // MessageText: // // The query result is stale / invalid. This may be due to the log being cleared or rolling over after the query result was created. Users should handle this code by releasing the query result object and reissuing the query. // // // MessageId: ERROR_EVT_QUERY_RESULT_INVALID_POSITION // // MessageText: // // Query result is currently at an invalid position. // // // MessageId: ERROR_EVT_NON_VALIDATING_MSXML // // MessageText: // // Registered MSXML doesn't support validation. // // // MessageId: ERROR_EVT_FILTER_ALREADYSCOPED // // MessageText: // // An expression can only be followed by a change of scope operation if it itself evaluates to a node set and is not already part of some other change of scope operation. // // // MessageId: ERROR_EVT_FILTER_NOTELTSET // // MessageText: // // Can't perform a step operation from a term that does not represent an element set. // // // MessageId: ERROR_EVT_FILTER_INVARG // // MessageText: // // Left hand side arguments to binary operators must be either attributes, nodes or variables and right hand side arguments must be constants. // // // MessageId: ERROR_EVT_FILTER_INVTEST // // MessageText: // // A step operation must involve either a node test or, in the case of a predicate, an algebraic expression against which to test each node in the node set identified by the preceeding node set can be evaluated. // // // MessageId: ERROR_EVT_FILTER_INVTYPE // // MessageText: // // This data type is currently unsupported. // // // MessageId: ERROR_EVT_FILTER_PARSEERR // // MessageText: // // A syntax error occurred at position %1!d! // // // MessageId: ERROR_EVT_FILTER_UNSUPPORTEDOP // // MessageText: // // This operator is unsupported by this implementation of the filter. // // // MessageId: ERROR_EVT_FILTER_UNEXPECTEDTOKEN // // MessageText: // // The token encountered was unexpected. // // // MessageId: ERROR_EVT_INVALID_OPERATION_OVER_ENABLED_DIRECT_CHANNEL // // MessageText: // // The requested operation cannot be performed over an enabled direct channel. The channel must first be disabled before performing the requested operation. // // // MessageId: ERROR_EVT_INVALID_CHANNEL_PROPERTY_VALUE // // MessageText: // // Channel property %1!s! contains invalid value. The value has invalid type, is outside of valid range, can't be updated or is not supported by this type of channel. // // // MessageId: ERROR_EVT_INVALID_PUBLISHER_PROPERTY_VALUE // // MessageText: // // Publisher property %1!s! contains invalid value. The value has invalid type, is outside of valid range, can't be updated or is not supported by this type of publisher. // // // MessageId: ERROR_EVT_CHANNEL_CANNOT_ACTIVATE // // MessageText: // // The channel fails to activate. // // // MessageId: ERROR_EVT_FILTER_TOO_COMPLEX // // MessageText: // // The xpath expression exceeded supported complexity. Please symplify it or split it into two or more simple expressions. // // // MessageId: ERROR_EVT_MESSAGE_NOT_FOUND // // MessageText: // // the message resource is present but the message is not found in the string/message table // // // MessageId: ERROR_EVT_MESSAGE_ID_NOT_FOUND // // MessageText: // // The message id for the desired message could not be found. // // // MessageId: ERROR_EVT_UNRESOLVED_VALUE_INSERT // // MessageText: // // The substitution string for insert index (%1) could not be found. // // // MessageId: ERROR_EVT_UNRESOLVED_PARAMETER_INSERT // // MessageText: // // The description string for parameter reference (%1) could not be found. // // // MessageId: ERROR_EVT_MAX_INSERTS_REACHED // // MessageText: // // The maximum number of replacements has been reached. // // // MessageId: ERROR_EVT_EVENT_DEFINITION_NOT_FOUND // // MessageText: // // The event definition could not be found for event id (%1). // // // MessageId: ERROR_EVT_MESSAGE_LOCALE_NOT_FOUND // // MessageText: // // The locale specific resource for the desired message is not present. // // // MessageId: ERROR_EVT_VERSION_TOO_OLD // // MessageText: // // The resource is too old to be compatible. // // // MessageId: ERROR_EVT_VERSION_TOO_NEW // // MessageText: // // The resource is too new to be compatible. // // // MessageId: ERROR_EVT_CANNOT_OPEN_CHANNEL_OF_QUERY // // MessageText: // // The channel at index %1!d! of the query can't be opened. // // // MessageId: ERROR_EVT_PUBLISHER_DISABLED // // MessageText: // // The publisher has been disabled and its resource is not avaiable. This // usually occurs when the publisher is in the process of being uninstalled // or upgraded. // // // MessageId: ERROR_EVT_FILTER_OUT_OF_RANGE // // MessageText: // // Attempted to create a numeric type that is outside of its valid range. // /////////////////////////////////////////////////// // // // Start of Wecsvc Error codes // // // // 15080 to 15099 // /////////////////////////////////////////////////// // // MessageId: ERROR_EC_SUBSCRIPTION_CANNOT_ACTIVATE // // MessageText: // // The subscription fails to activate. // // // MessageId: ERROR_EC_LOG_DISABLED // // MessageText: // // The log of the subscription is in disabled state, and can not be used to forward events to. The log must first be enabled before the subscription can be activated. // // // MessageId: ERROR_EC_CIRCULAR_FORWARDING // // MessageText: // // When forwarding events from local machine to itself, the query of the subscription can't contain target log of the subscription. // // // MessageId: ERROR_EC_CREDSTORE_FULL // // MessageText: // // The credential store that is used to save credentials is full. // // // MessageId: ERROR_EC_CRED_NOT_FOUND // // MessageText: // // The credential used by this subscription can't be found in credential store. // // // MessageId: ERROR_EC_NO_ACTIVE_CHANNEL // // MessageText: // // No active channel is found for the query. // /////////////////////////////////////////////////// // // // Start of MUI Error codes // // // // 15100 to 15199 // /////////////////////////////////////////////////// // // MessageId: ERROR_MUI_FILE_NOT_FOUND // // MessageText: // // The resource loader failed to find MUI file. // // // MessageId: ERROR_MUI_INVALID_FILE // // MessageText: // // The resource loader failed to load MUI file because the file fail to pass validation. // // // MessageId: ERROR_MUI_INVALID_RC_CONFIG // // MessageText: // // The RC Manifest is corrupted with garbage data or unsupported version or missing required item. // // // MessageId: ERROR_MUI_INVALID_LOCALE_NAME // // MessageText: // // The RC Manifest has invalid culture name. // // // MessageId: ERROR_MUI_INVALID_ULTIMATEFALLBACK_NAME // // MessageText: // // The RC Manifest has invalid ultimatefallback name. // // // MessageId: ERROR_MUI_FILE_NOT_LOADED // // MessageText: // // The resource loader cache doesn't have loaded MUI entry. // // // MessageId: ERROR_RESOURCE_ENUM_USER_STOP // // MessageText: // // User stopped resource enumeration. // // // MessageId: ERROR_MUI_INTLSETTINGS_UILANG_NOT_INSTALLED // // MessageText: // // UI language installation failed. // // // MessageId: ERROR_MUI_INTLSETTINGS_INVALID_LOCALE_NAME // // MessageText: // // Locale installation failed. // /////////////////////////////////////////////////// // // // Start of Monitor Configuration API error codes// // // // 15200 to 15249 // /////////////////////////////////////////////////// // // MessageId: ERROR_MCA_INVALID_CAPABILITIES_STRING // // MessageText: // // The monitor returned a DDC/CI capabilities string that did not comply with the ACCESS.bus 3.0, DDC/CI 1.1 or MCCS 2 Revision 1 specification. // // // MessageId: ERROR_MCA_INVALID_VCP_VERSION // // MessageText: // // The monitor's VCP Version (0xDF) VCP code returned an invalid version value. // // // MessageId: ERROR_MCA_MONITOR_VIOLATES_MCCS_SPECIFICATION // // MessageText: // // The monitor does not comply with the MCCS specification it claims to support. // // // MessageId: ERROR_MCA_MCCS_VERSION_MISMATCH // // MessageText: // // The MCCS version in a monitor's mccs_ver capability does not match the MCCS version the monitor reports when the VCP Version (0xDF) VCP code is used. // // // MessageId: ERROR_MCA_UNSUPPORTED_MCCS_VERSION // // MessageText: // // The Monitor Configuration API only works with monitors that support the MCCS 1.0 specification, MCCS 2.0 specification or the MCCS 2.0 Revision 1 specification. // // // MessageId: ERROR_MCA_INTERNAL_ERROR // // MessageText: // // An internal Monitor Configuration API error occurred. // // // MessageId: ERROR_MCA_INVALID_TECHNOLOGY_TYPE_RETURNED // // MessageText: // // The monitor returned an invalid monitor technology type. CRT, Plasma and LCD (TFT) are examples of monitor technology types. This error implies that the monitor violated the MCCS 2.0 or MCCS 2.0 Revision 1 specification. // // // MessageId: ERROR_MCA_UNSUPPORTED_COLOR_TEMPERATURE // // MessageText: // // The caller of SetMonitorColorTemperature specified a color temperature that the current monitor did not support. This error implies that the monitor violated the MCCS 2.0 or MCCS 2.0 Revision 1 specification. // ////////////////////////////////////////////////// // // // End of Monitor Configuration API error codes // // // // 15200 to 15249 // // // ////////////////////////////////////////////////// ////////////////////////////////////////////////// // // // Start of Syspart error codes // // 15250 - 15299 // // // ////////////////////////////////////////////////// // // MessageId: ERROR_AMBIGUOUS_SYSTEM_DEVICE // // MessageText: // // The requested system device cannot be identified due to multiple indistinguishable devices potentially matching the identification criteria. // // // MessageId: ERROR_SYSTEM_DEVICE_NOT_FOUND // // MessageText: // // The requested system device cannot be found. // //////////////////////////////////// // // // COM Error Codes // // // //////////////////////////////////// // // The return value of COM functions and methods is an HRESULT. // This is not a handle to anything, but is merely a 32-bit value // with several fields encoded in the value. The parts of an // HRESULT are shown below. // // Many of the macros and functions below were orginally defined to // operate on SCODEs. SCODEs are no longer used. The macros are // still present for compatibility and easy porting of Win16 code. // Newly written code should use the HRESULT macros and functions. // // // HRESULTs are 32 bit values layed out as follows: // // 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 // 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 // +-+-+-+-+-+---------------------+-------------------------------+ // |S|R|C|N|r| Facility | Code | // +-+-+-+-+-+---------------------+-------------------------------+ // // where // // S - Severity - indicates success/fail // // 0 - Success // 1 - Fail (COERROR) // // R - reserved portion of the facility code, corresponds to NT's // second severity bit. // // C - reserved portion of the facility code, corresponds to NT's // C field. // // N - reserved portion of the facility code. Used to indicate a // mapped NT status value. // // r - reserved portion of the facility code. Reserved for internal // use. Used to indicate HRESULT values that are not status // values, but are instead message ids for display strings. // // Facility - is the facility code // // Code - is the facility's status code // // // Severity values // // // Generic test for success on any status value (non-negative numbers // indicate success). // // // and the inverse // // // Generic test for error on any status value. // // // Return the code // // // Return the facility // // // Return the severity // // // Create an HRESULT value from component pieces // // // Map a WIN32 error value into a HRESULT // Note: This assumes that WIN32 errors fall in the range -32k to 32k. // // Define bits here so macros are guaranteed to work // // HRESULT_FROM_WIN32(x) used to be a macro, however we now run it as an inline function // to prevent double evaluation of 'x'. If you still need the macro, you can use __HRESULT_FROM_WIN32(x) // #line 22903 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winerror.h" __forceinline HRESULT HRESULT_FROM_WIN32(unsigned long x) { return (HRESULT)(x) <= 0 ? (HRESULT)(x) : (HRESULT) (((x) & 0x0000FFFF) | (7 << 16) | 0x80000000);} #line 22909 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winerror.h" // // Map an NT status value into a HRESULT // // ****** OBSOLETE functions // HRESULT functions // As noted above, these functions are obsolete and should not be used. // Extract the SCODE from a HRESULT // Convert an SCODE into an HRESULT. // PropagateResult is a noop // ****** End of OBSOLETE functions. // ---------------------- HRESULT value definitions ----------------- // // HRESULT definitions // #line 22949 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winerror.h" // // Error definitions follow // // // Codes 0x4000-0x40ff are reserved for OLE // // // Error codes // // // MessageId: E_UNEXPECTED // // MessageText: // // Catastrophic failure // // // MessageId: E_NOTIMPL // // MessageText: // // Not implemented // // // MessageId: E_OUTOFMEMORY // // MessageText: // // Ran out of memory // // // MessageId: E_INVALIDARG // // MessageText: // // One or more arguments are invalid // // // MessageId: E_NOINTERFACE // // MessageText: // // No such interface supported // // // MessageId: E_POINTER // // MessageText: // // Invalid pointer // // // MessageId: E_HANDLE // // MessageText: // // Invalid handle // // // MessageId: E_ABORT // // MessageText: // // Operation aborted // // // MessageId: E_FAIL // // MessageText: // // Unspecified error // // // MessageId: E_ACCESSDENIED // // MessageText: // // General access denied error // #line 23136 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winerror.h" // // MessageId: E_PENDING // // MessageText: // // The data necessary to complete this operation is not yet available. // // // MessageId: CO_E_INIT_TLS // // MessageText: // // Thread local storage failure // // // MessageId: CO_E_INIT_SHARED_ALLOCATOR // // MessageText: // // Get shared memory allocator failure // // // MessageId: CO_E_INIT_MEMORY_ALLOCATOR // // MessageText: // // Get memory allocator failure // // // MessageId: CO_E_INIT_CLASS_CACHE // // MessageText: // // Unable to initialize class cache // // // MessageId: CO_E_INIT_RPC_CHANNEL // // MessageText: // // Unable to initialize RPC services // // // MessageId: CO_E_INIT_TLS_SET_CHANNEL_CONTROL // // MessageText: // // Cannot set thread local storage channel control // // // MessageId: CO_E_INIT_TLS_CHANNEL_CONTROL // // MessageText: // // Could not allocate thread local storage channel control // // // MessageId: CO_E_INIT_UNACCEPTED_USER_ALLOCATOR // // MessageText: // // The user supplied memory allocator is unacceptable // // // MessageId: CO_E_INIT_SCM_MUTEX_EXISTS // // MessageText: // // The OLE service mutex already exists // // // MessageId: CO_E_INIT_SCM_FILE_MAPPING_EXISTS // // MessageText: // // The OLE service file mapping already exists // // // MessageId: CO_E_INIT_SCM_MAP_VIEW_OF_FILE // // MessageText: // // Unable to map view of file for OLE service // // // MessageId: CO_E_INIT_SCM_EXEC_FAILURE // // MessageText: // // Failure attempting to launch OLE service // // // MessageId: CO_E_INIT_ONLY_SINGLE_THREADED // // MessageText: // // There was an attempt to call CoInitialize a second time while single threaded // // // MessageId: CO_E_CANT_REMOTE // // MessageText: // // A Remote activation was necessary but was not allowed // // // MessageId: CO_E_BAD_SERVER_NAME // // MessageText: // // A Remote activation was necessary but the server name provided was invalid // // // MessageId: CO_E_WRONG_SERVER_IDENTITY // // MessageText: // // The class is configured to run as a security id different from the caller // // // MessageId: CO_E_OLE1DDE_DISABLED // // MessageText: // // Use of Ole1 services requiring DDE windows is disabled // // // MessageId: CO_E_RUNAS_SYNTAX // // MessageText: // // A RunAs specification must be \ or simply // // // MessageId: CO_E_CREATEPROCESS_FAILURE // // MessageText: // // The server process could not be started. The pathname may be incorrect. // // // MessageId: CO_E_RUNAS_CREATEPROCESS_FAILURE // // MessageText: // // The server process could not be started as the configured identity. The pathname may be incorrect or unavailable. // // // MessageId: CO_E_RUNAS_LOGON_FAILURE // // MessageText: // // The server process could not be started because the configured identity is incorrect. Check the username and password. // // // MessageId: CO_E_LAUNCH_PERMSSION_DENIED // // MessageText: // // The client is not allowed to launch this server. // // // MessageId: CO_E_START_SERVICE_FAILURE // // MessageText: // // The service providing this server could not be started. // // // MessageId: CO_E_REMOTE_COMMUNICATION_FAILURE // // MessageText: // // This computer was unable to communicate with the computer providing the server. // // // MessageId: CO_E_SERVER_START_TIMEOUT // // MessageText: // // The server did not respond after being launched. // // // MessageId: CO_E_CLSREG_INCONSISTENT // // MessageText: // // The registration information for this server is inconsistent or incomplete. // // // MessageId: CO_E_IIDREG_INCONSISTENT // // MessageText: // // The registration information for this interface is inconsistent or incomplete. // // // MessageId: CO_E_NOT_SUPPORTED // // MessageText: // // The operation attempted is not supported. // // // MessageId: CO_E_RELOAD_DLL // // MessageText: // // A dll must be loaded. // // // MessageId: CO_E_MSI_ERROR // // MessageText: // // A Microsoft Software Installer error was encountered. // // // MessageId: CO_E_ATTEMPT_TO_CREATE_OUTSIDE_CLIENT_CONTEXT // // MessageText: // // The specified activation could not occur in the client context as specified. // // // MessageId: CO_E_SERVER_PAUSED // // MessageText: // // Activations on the server are paused. // // // MessageId: CO_E_SERVER_NOT_PAUSED // // MessageText: // // Activations on the server are not paused. // // // MessageId: CO_E_CLASS_DISABLED // // MessageText: // // The component or application containing the component has been disabled. // // // MessageId: CO_E_CLRNOTAVAILABLE // // MessageText: // // The common language runtime is not available // // // MessageId: CO_E_ASYNC_WORK_REJECTED // // MessageText: // // The thread-pool rejected the submitted asynchronous work. // // // MessageId: CO_E_SERVER_INIT_TIMEOUT // // MessageText: // // The server started, but did not finish initializing in a timely fashion. // // // MessageId: CO_E_NO_SECCTX_IN_ACTIVATE // // MessageText: // // Unable to complete the call since there is no COM+ security context inside IObjectControl.Activate. // // // MessageId: CO_E_TRACKER_CONFIG // // MessageText: // // The provided tracker configuration is invalid // // // MessageId: CO_E_THREADPOOL_CONFIG // // MessageText: // // The provided thread pool configuration is invalid // // // MessageId: CO_E_SXS_CONFIG // // MessageText: // // The provided side-by-side configuration is invalid // // // MessageId: CO_E_MALFORMED_SPN // // MessageText: // // The server principal name (SPN) obtained during security negotiation is malformed. // // // Success codes // // ****************** // FACILITY_ITF // ****************** // // Codes 0x0-0x01ff are reserved for the OLE group of // interfaces. // // // Generic OLE errors that may be returned by many inerfaces // // // Old OLE errors // // // MessageId: OLE_E_OLEVERB // // MessageText: // // Invalid OLEVERB structure // // // MessageId: OLE_E_ADVF // // MessageText: // // Invalid advise flags // // // MessageId: OLE_E_ENUM_NOMORE // // MessageText: // // Can't enumerate any more, because the associated data is missing // // // MessageId: OLE_E_ADVISENOTSUPPORTED // // MessageText: // // This implementation doesn't take advises // // // MessageId: OLE_E_NOCONNECTION // // MessageText: // // There is no connection for this connection ID // // // MessageId: OLE_E_NOTRUNNING // // MessageText: // // Need to run the object to perform this operation // // // MessageId: OLE_E_NOCACHE // // MessageText: // // There is no cache to operate on // // // MessageId: OLE_E_BLANK // // MessageText: // // Uninitialized object // // // MessageId: OLE_E_CLASSDIFF // // MessageText: // // Linked object's source class has changed // // // MessageId: OLE_E_CANT_GETMONIKER // // MessageText: // // Not able to get the moniker of the object // // // MessageId: OLE_E_CANT_BINDTOSOURCE // // MessageText: // // Not able to bind to the source // // // MessageId: OLE_E_STATIC // // MessageText: // // Object is static; operation not allowed // // // MessageId: OLE_E_PROMPTSAVECANCELLED // // MessageText: // // User canceled out of save dialog // // // MessageId: OLE_E_INVALIDRECT // // MessageText: // // Invalid rectangle // // // MessageId: OLE_E_WRONGCOMPOBJ // // MessageText: // // compobj.dll is too old for the ole2.dll initialized // // // MessageId: OLE_E_INVALIDHWND // // MessageText: // // Invalid window handle // // // MessageId: OLE_E_NOT_INPLACEACTIVE // // MessageText: // // Object is not in any of the inplace active states // // // MessageId: OLE_E_CANTCONVERT // // MessageText: // // Not able to convert object // // // MessageId: OLE_E_NOSTORAGE // // MessageText: // // Not able to perform the operation because object is not given storage yet // // // MessageId: DV_E_FORMATETC // // MessageText: // // Invalid FORMATETC structure // // // MessageId: DV_E_DVTARGETDEVICE // // MessageText: // // Invalid DVTARGETDEVICE structure // // // MessageId: DV_E_STGMEDIUM // // MessageText: // // Invalid STDGMEDIUM structure // // // MessageId: DV_E_STATDATA // // MessageText: // // Invalid STATDATA structure // // // MessageId: DV_E_LINDEX // // MessageText: // // Invalid lindex // // // MessageId: DV_E_TYMED // // MessageText: // // Invalid tymed // // // MessageId: DV_E_CLIPFORMAT // // MessageText: // // Invalid clipboard format // // // MessageId: DV_E_DVASPECT // // MessageText: // // Invalid aspect(s) // // // MessageId: DV_E_DVTARGETDEVICE_SIZE // // MessageText: // // tdSize parameter of the DVTARGETDEVICE structure is invalid // // // MessageId: DV_E_NOIVIEWOBJECT // // MessageText: // // Object doesn't support IViewObject interface // // // MessageId: DRAGDROP_E_NOTREGISTERED // // MessageText: // // Trying to revoke a drop target that has not been registered // // // MessageId: DRAGDROP_E_ALREADYREGISTERED // // MessageText: // // This window has already been registered as a drop target // // // MessageId: DRAGDROP_E_INVALIDHWND // // MessageText: // // Invalid window handle // // // MessageId: CLASS_E_NOAGGREGATION // // MessageText: // // Class does not support aggregation (or class object is remote) // // // MessageId: CLASS_E_CLASSNOTAVAILABLE // // MessageText: // // ClassFactory cannot supply requested class // // // MessageId: CLASS_E_NOTLICENSED // // MessageText: // // Class is not licensed for use // // // MessageId: VIEW_E_DRAW // // MessageText: // // Error drawing view // // // MessageId: REGDB_E_READREGDB // // MessageText: // // Could not read key from registry // // // MessageId: REGDB_E_WRITEREGDB // // MessageText: // // Could not write key to registry // // // MessageId: REGDB_E_KEYMISSING // // MessageText: // // Could not find the key in the registry // // // MessageId: REGDB_E_INVALIDVALUE // // MessageText: // // Invalid value for registry // // // MessageId: REGDB_E_CLASSNOTREG // // MessageText: // // Class not registered // // // MessageId: REGDB_E_IIDNOTREG // // MessageText: // // Interface not registered // // // MessageId: REGDB_E_BADTHREADINGMODEL // // MessageText: // // Threading model entry is not valid // // // MessageId: CAT_E_CATIDNOEXIST // // MessageText: // // CATID does not exist // // // MessageId: CAT_E_NODESCRIPTION // // MessageText: // // Description not found // //////////////////////////////////// // // // Class Store Error Codes // // // //////////////////////////////////// // // MessageId: CS_E_PACKAGE_NOTFOUND // // MessageText: // // No package in the software installation data in the Active Directory meets this criteria. // // // MessageId: CS_E_NOT_DELETABLE // // MessageText: // // Deleting this will break the referential integrity of the software installation data in the Active Directory. // // // MessageId: CS_E_CLASS_NOTFOUND // // MessageText: // // The CLSID was not found in the software installation data in the Active Directory. // // // MessageId: CS_E_INVALID_VERSION // // MessageText: // // The software installation data in the Active Directory is corrupt. // // // MessageId: CS_E_NO_CLASSSTORE // // MessageText: // // There is no software installation data in the Active Directory. // // // MessageId: CS_E_OBJECT_NOTFOUND // // MessageText: // // There is no software installation data object in the Active Directory. // // // MessageId: CS_E_OBJECT_ALREADY_EXISTS // // MessageText: // // The software installation data object in the Active Directory already exists. // // // MessageId: CS_E_INVALID_PATH // // MessageText: // // The path to the software installation data in the Active Directory is not correct. // // // MessageId: CS_E_NETWORK_ERROR // // MessageText: // // A network error interrupted the operation. // // // MessageId: CS_E_ADMIN_LIMIT_EXCEEDED // // MessageText: // // The size of this object exceeds the maximum size set by the Administrator. // // // MessageId: CS_E_SCHEMA_MISMATCH // // MessageText: // // The schema for the software installation data in the Active Directory does not match the required schema. // // // MessageId: CS_E_INTERNAL_ERROR // // MessageText: // // An error occurred in the software installation data in the Active Directory. // // // MessageId: CACHE_E_NOCACHE_UPDATED // // MessageText: // // Cache not updated // // // MessageId: OLEOBJ_E_NOVERBS // // MessageText: // // No verbs for OLE object // // // MessageId: OLEOBJ_E_INVALIDVERB // // MessageText: // // Invalid verb for OLE object // // // MessageId: INPLACE_E_NOTUNDOABLE // // MessageText: // // Undo is not available // // // MessageId: INPLACE_E_NOTOOLSPACE // // MessageText: // // Space for tools is not available // // // MessageId: CONVERT10_E_OLESTREAM_GET // // MessageText: // // OLESTREAM Get method failed // // // MessageId: CONVERT10_E_OLESTREAM_PUT // // MessageText: // // OLESTREAM Put method failed // // // MessageId: CONVERT10_E_OLESTREAM_FMT // // MessageText: // // Contents of the OLESTREAM not in correct format // // // MessageId: CONVERT10_E_OLESTREAM_BITMAP_TO_DIB // // MessageText: // // There was an error in a Windows GDI call while converting the bitmap to a DIB // // // MessageId: CONVERT10_E_STG_FMT // // MessageText: // // Contents of the IStorage not in correct format // // // MessageId: CONVERT10_E_STG_NO_STD_STREAM // // MessageText: // // Contents of IStorage is missing one of the standard streams // // // MessageId: CONVERT10_E_STG_DIB_TO_BITMAP // // MessageText: // // There was an error in a Windows GDI call while converting the DIB to a bitmap. // // // // MessageId: CLIPBRD_E_CANT_OPEN // // MessageText: // // OpenClipboard Failed // // // MessageId: CLIPBRD_E_CANT_EMPTY // // MessageText: // // EmptyClipboard Failed // // // MessageId: CLIPBRD_E_CANT_SET // // MessageText: // // SetClipboard Failed // // // MessageId: CLIPBRD_E_BAD_DATA // // MessageText: // // Data on clipboard is invalid // // // MessageId: CLIPBRD_E_CANT_CLOSE // // MessageText: // // CloseClipboard Failed // // // MessageId: MK_E_CONNECTMANUALLY // // MessageText: // // Moniker needs to be connected manually // // // MessageId: MK_E_EXCEEDEDDEADLINE // // MessageText: // // Operation exceeded deadline // // // MessageId: MK_E_NEEDGENERIC // // MessageText: // // Moniker needs to be generic // // // MessageId: MK_E_UNAVAILABLE // // MessageText: // // Operation unavailable // // // MessageId: MK_E_SYNTAX // // MessageText: // // Invalid syntax // // // MessageId: MK_E_NOOBJECT // // MessageText: // // No object for moniker // // // MessageId: MK_E_INVALIDEXTENSION // // MessageText: // // Bad extension for file // // // MessageId: MK_E_INTERMEDIATEINTERFACENOTSUPPORTED // // MessageText: // // Intermediate operation failed // // // MessageId: MK_E_NOTBINDABLE // // MessageText: // // Moniker is not bindable // // // MessageId: MK_E_NOTBOUND // // MessageText: // // Moniker is not bound // // // MessageId: MK_E_CANTOPENFILE // // MessageText: // // Moniker cannot open file // // // MessageId: MK_E_MUSTBOTHERUSER // // MessageText: // // User input required for operation to succeed // // // MessageId: MK_E_NOINVERSE // // MessageText: // // Moniker class has no inverse // // // MessageId: MK_E_NOSTORAGE // // MessageText: // // Moniker does not refer to storage // // // MessageId: MK_E_NOPREFIX // // MessageText: // // No common prefix // // // MessageId: MK_E_ENUMERATION_FAILED // // MessageText: // // Moniker could not be enumerated // // // MessageId: CO_E_NOTINITIALIZED // // MessageText: // // CoInitialize has not been called. // // // MessageId: CO_E_ALREADYINITIALIZED // // MessageText: // // CoInitialize has already been called. // // // MessageId: CO_E_CANTDETERMINECLASS // // MessageText: // // Class of object cannot be determined // // // MessageId: CO_E_CLASSSTRING // // MessageText: // // Invalid class string // // // MessageId: CO_E_IIDSTRING // // MessageText: // // Invalid interface string // // // MessageId: CO_E_APPNOTFOUND // // MessageText: // // Application not found // // // MessageId: CO_E_APPSINGLEUSE // // MessageText: // // Application cannot be run more than once // // // MessageId: CO_E_ERRORINAPP // // MessageText: // // Some error in application program // // // MessageId: CO_E_DLLNOTFOUND // // MessageText: // // DLL for class not found // // // MessageId: CO_E_ERRORINDLL // // MessageText: // // Error in the DLL // // // MessageId: CO_E_WRONGOSFORAPP // // MessageText: // // Wrong OS or OS version for application // // // MessageId: CO_E_OBJNOTREG // // MessageText: // // Object is not registered // // // MessageId: CO_E_OBJISREG // // MessageText: // // Object is already registered // // // MessageId: CO_E_OBJNOTCONNECTED // // MessageText: // // Object is not connected to server // // // MessageId: CO_E_APPDIDNTREG // // MessageText: // // Application was launched but it didn't register a class factory // // // MessageId: CO_E_RELEASED // // MessageText: // // Object has been released // // // MessageId: EVENT_S_SOME_SUBSCRIBERS_FAILED // // MessageText: // // An event was able to invoke some but not all of the subscribers // // // MessageId: EVENT_E_ALL_SUBSCRIBERS_FAILED // // MessageText: // // An event was unable to invoke any of the subscribers // // // MessageId: EVENT_S_NOSUBSCRIBERS // // MessageText: // // An event was delivered but there were no subscribers // // // MessageId: EVENT_E_QUERYSYNTAX // // MessageText: // // A syntax error occurred trying to evaluate a query string // // // MessageId: EVENT_E_QUERYFIELD // // MessageText: // // An invalid field name was used in a query string // // // MessageId: EVENT_E_INTERNALEXCEPTION // // MessageText: // // An unexpected exception was raised // // // MessageId: EVENT_E_INTERNALERROR // // MessageText: // // An unexpected internal error was detected // // // MessageId: EVENT_E_INVALID_PER_USER_SID // // MessageText: // // The owner SID on a per-user subscription doesn't exist // // // MessageId: EVENT_E_USER_EXCEPTION // // MessageText: // // A user-supplied component or subscriber raised an exception // // // MessageId: EVENT_E_TOO_MANY_METHODS // // MessageText: // // An interface has too many methods to fire events from // // // MessageId: EVENT_E_MISSING_EVENTCLASS // // MessageText: // // A subscription cannot be stored unless its event class already exists // // // MessageId: EVENT_E_NOT_ALL_REMOVED // // MessageText: // // Not all the objects requested could be removed // // // MessageId: EVENT_E_COMPLUS_NOT_INSTALLED // // MessageText: // // COM+ is required for this operation, but is not installed // // // MessageId: EVENT_E_CANT_MODIFY_OR_DELETE_UNCONFIGURED_OBJECT // // MessageText: // // Cannot modify or delete an object that was not added using the COM+ Admin SDK // // // MessageId: EVENT_E_CANT_MODIFY_OR_DELETE_CONFIGURED_OBJECT // // MessageText: // // Cannot modify or delete an object that was added using the COM+ Admin SDK // // // MessageId: EVENT_E_INVALID_EVENT_CLASS_PARTITION // // MessageText: // // The event class for this subscription is in an invalid partition // // // MessageId: EVENT_E_PER_USER_SID_NOT_LOGGED_ON // // MessageText: // // The owner of the PerUser subscription is not logged on to the system specified // // // MessageId: XACT_E_ALREADYOTHERSINGLEPHASE // // MessageText: // // Another single phase resource manager has already been enlisted in this transaction. // // // MessageId: XACT_E_CANTRETAIN // // MessageText: // // A retaining commit or abort is not supported // // // MessageId: XACT_E_COMMITFAILED // // MessageText: // // The transaction failed to commit for an unknown reason. The transaction was aborted. // // // MessageId: XACT_E_COMMITPREVENTED // // MessageText: // // Cannot call commit on this transaction object because the calling application did not initiate the transaction. // // // MessageId: XACT_E_HEURISTICABORT // // MessageText: // // Instead of committing, the resource heuristically aborted. // // // MessageId: XACT_E_HEURISTICCOMMIT // // MessageText: // // Instead of aborting, the resource heuristically committed. // // // MessageId: XACT_E_HEURISTICDAMAGE // // MessageText: // // Some of the states of the resource were committed while others were aborted, likely because of heuristic decisions. // // // MessageId: XACT_E_HEURISTICDANGER // // MessageText: // // Some of the states of the resource may have been committed while others may have been aborted, likely because of heuristic decisions. // // // MessageId: XACT_E_ISOLATIONLEVEL // // MessageText: // // The requested isolation level is not valid or supported. // // // MessageId: XACT_E_NOASYNC // // MessageText: // // The transaction manager doesn't support an asynchronous operation for this method. // // // MessageId: XACT_E_NOENLIST // // MessageText: // // Unable to enlist in the transaction. // // // MessageId: XACT_E_NOISORETAIN // // MessageText: // // The requested semantics of retention of isolation across retaining commit and abort boundaries cannot be supported by this transaction implementation, or isoFlags was not equal to zero. // // // MessageId: XACT_E_NORESOURCE // // MessageText: // // There is no resource presently associated with this enlistment // // // MessageId: XACT_E_NOTCURRENT // // MessageText: // // The transaction failed to commit due to the failure of optimistic concurrency control in at least one of the resource managers. // // // MessageId: XACT_E_NOTRANSACTION // // MessageText: // // The transaction has already been implicitly or explicitly committed or aborted // // // MessageId: XACT_E_NOTSUPPORTED // // MessageText: // // An invalid combination of flags was specified // // // MessageId: XACT_E_UNKNOWNRMGRID // // MessageText: // // The resource manager id is not associated with this transaction or the transaction manager. // // // MessageId: XACT_E_WRONGSTATE // // MessageText: // // This method was called in the wrong state // // // MessageId: XACT_E_WRONGUOW // // MessageText: // // The indicated unit of work does not match the unit of work expected by the resource manager. // // // MessageId: XACT_E_XTIONEXISTS // // MessageText: // // An enlistment in a transaction already exists. // // // MessageId: XACT_E_NOIMPORTOBJECT // // MessageText: // // An import object for the transaction could not be found. // // // MessageId: XACT_E_INVALIDCOOKIE // // MessageText: // // The transaction cookie is invalid. // // // MessageId: XACT_E_INDOUBT // // MessageText: // // The transaction status is in doubt. A communication failure occurred, or a transaction manager or resource manager has failed // // // MessageId: XACT_E_NOTIMEOUT // // MessageText: // // A time-out was specified, but time-outs are not supported. // // // MessageId: XACT_E_ALREADYINPROGRESS // // MessageText: // // The requested operation is already in progress for the transaction. // // // MessageId: XACT_E_ABORTED // // MessageText: // // The transaction has already been aborted. // // // MessageId: XACT_E_LOGFULL // // MessageText: // // The Transaction Manager returned a log full error. // // // MessageId: XACT_E_TMNOTAVAILABLE // // MessageText: // // The Transaction Manager is not available. // // // MessageId: XACT_E_CONNECTION_DOWN // // MessageText: // // A connection with the transaction manager was lost. // // // MessageId: XACT_E_CONNECTION_DENIED // // MessageText: // // A request to establish a connection with the transaction manager was denied. // // // MessageId: XACT_E_REENLISTTIMEOUT // // MessageText: // // Resource manager reenlistment to determine transaction status timed out. // // // MessageId: XACT_E_TIP_CONNECT_FAILED // // MessageText: // // This transaction manager failed to establish a connection with another TIP transaction manager. // // // MessageId: XACT_E_TIP_PROTOCOL_ERROR // // MessageText: // // This transaction manager encountered a protocol error with another TIP transaction manager. // // // MessageId: XACT_E_TIP_PULL_FAILED // // MessageText: // // This transaction manager could not propagate a transaction from another TIP transaction manager. // // // MessageId: XACT_E_DEST_TMNOTAVAILABLE // // MessageText: // // The Transaction Manager on the destination machine is not available. // // // MessageId: XACT_E_TIP_DISABLED // // MessageText: // // The Transaction Manager has disabled its support for TIP. // // // MessageId: XACT_E_NETWORK_TX_DISABLED // // MessageText: // // The transaction manager has disabled its support for remote/network transactions. // // // MessageId: XACT_E_PARTNER_NETWORK_TX_DISABLED // // MessageText: // // The partner transaction manager has disabled its support for remote/network transactions. // // // MessageId: XACT_E_XA_TX_DISABLED // // MessageText: // // The transaction manager has disabled its support for XA transactions. // // // MessageId: XACT_E_UNABLE_TO_READ_DTC_CONFIG // // MessageText: // // MSDTC was unable to read its configuration information. // // // MessageId: XACT_E_UNABLE_TO_LOAD_DTC_PROXY // // MessageText: // // MSDTC was unable to load the dtc proxy dll. // // // MessageId: XACT_E_ABORTING // // MessageText: // // The local transaction has aborted. // // // TXF & CRM errors start 4d080. // // MessageId: XACT_E_CLERKNOTFOUND // // MessageText: // // XACT_E_CLERKNOTFOUND // // // MessageId: XACT_E_CLERKEXISTS // // MessageText: // // XACT_E_CLERKEXISTS // // // MessageId: XACT_E_RECOVERYINPROGRESS // // MessageText: // // XACT_E_RECOVERYINPROGRESS // // // MessageId: XACT_E_TRANSACTIONCLOSED // // MessageText: // // XACT_E_TRANSACTIONCLOSED // // // MessageId: XACT_E_INVALIDLSN // // MessageText: // // XACT_E_INVALIDLSN // // // MessageId: XACT_E_REPLAYREQUEST // // MessageText: // // XACT_E_REPLAYREQUEST // // Begin XACT_DTC_CONSTANTS enumerated values defined in txdtc.h // SymbolicName=XACT_E_CONNECTION_REQUEST_DENIED // // MessageId: 0x8004D100L (No symbolic name defined) // // MessageText: // // The request to connect to the specified transaction coordinator was denied. // // SymbolicName=XACT_E_TOOMANY_ENLISTMENTS // // MessageId: 0x8004D101L (No symbolic name defined) // // MessageText: // // The maximum number of enlistments for the specified transaction has been reached. // // SymbolicName=XACT_E_DUPLICATE_GUID // // MessageId: 0x8004D102L (No symbolic name defined) // // MessageText: // // A resource manager with the same identifier is already registered with the specified transaction coordinator. // // SymbolicName=XACT_E_NOTSINGLEPHASE // // MessageId: 0x8004D103L (No symbolic name defined) // // MessageText: // // The prepare request given was not eligible for single phase optimizations. // // SymbolicName=XACT_E_RECOVERYALREADYDONE // // MessageId: 0x8004D104L (No symbolic name defined) // // MessageText: // // RecoveryComplete has already been called for the given resource manager. // // SymbolicName=XACT_E_PROTOCOL // // MessageId: 0x8004D105L (No symbolic name defined) // // MessageText: // // The interface call made was incorrect for the current state of the protocol. // // SymbolicName=XACT_E_RM_FAILURE // // MessageId: 0x8004D106L (No symbolic name defined) // // MessageText: // // xa_open call failed for the XA resource. // // SymbolicName=XACT_E_RECOVERY_FAILED // // MessageId: 0x8004D107L (No symbolic name defined) // // MessageText: // // xa_recover call failed for the XA resource. // // SymbolicName=XACT_E_LU_NOT_FOUND // // MessageId: 0x8004D108L (No symbolic name defined) // // MessageText: // // The Logical Unit of Work specified cannot be found. // // SymbolicName=XACT_E_DUPLICATE_LU // // MessageId: 0x8004D109L (No symbolic name defined) // // MessageText: // // The specified Logical Unit of Work already exists. // // SymbolicName=XACT_E_LU_NOT_CONNECTED // // MessageId: 0x8004D10AL (No symbolic name defined) // // MessageText: // // Subordinate creation failed. The specified Logical Unit of Work was not connected. // // SymbolicName=XACT_E_DUPLICATE_TRANSID // // MessageId: 0x8004D10BL (No symbolic name defined) // // MessageText: // // A transaction with the given identifier already exists. // // SymbolicName=XACT_E_LU_BUSY // // MessageId: 0x8004D10CL (No symbolic name defined) // // MessageText: // // The resource is in use. // // SymbolicName=XACT_E_LU_NO_RECOVERY_PROCESS // // MessageId: 0x8004D10DL (No symbolic name defined) // // MessageText: // // The LU Recovery process is down. // // SymbolicName=XACT_E_LU_DOWN // // MessageId: 0x8004D10EL (No symbolic name defined) // // MessageText: // // The remote session was lost. // // SymbolicName=XACT_E_LU_RECOVERING // // MessageId: 0x8004D10FL (No symbolic name defined) // // MessageText: // // The resource is currently recovering. // // SymbolicName=XACT_E_LU_RECOVERY_MISMATCH // // MessageId: 0x8004D110L (No symbolic name defined) // // MessageText: // // There was a mismatch in driving recovery. // // SymbolicName=XACT_E_RM_UNAVAILABLE // // MessageId: 0x8004D111L (No symbolic name defined) // // MessageText: // // An error occurred with the XA resource. // // End XACT_DTC_CONSTANTS enumerated values defined in txdtc.h // // OleTx Success codes. // // // MessageId: XACT_S_ASYNC // // MessageText: // // An asynchronous operation was specified. The operation has begun, but its outcome is not known yet. // // // MessageId: XACT_S_DEFECT // // MessageText: // // XACT_S_DEFECT // // // MessageId: XACT_S_READONLY // // MessageText: // // The method call succeeded because the transaction was read-only. // // // MessageId: XACT_S_SOMENORETAIN // // MessageText: // // The transaction was successfully aborted. However, this is a coordinated transaction, and some number of enlisted resources were aborted outright because they could not support abort-retaining semantics // // // MessageId: XACT_S_OKINFORM // // MessageText: // // No changes were made during this call, but the sink wants another chance to look if any other sinks make further changes. // // // MessageId: XACT_S_MADECHANGESCONTENT // // MessageText: // // The sink is content and wishes the transaction to proceed. Changes were made to one or more resources during this call. // // // MessageId: XACT_S_MADECHANGESINFORM // // MessageText: // // The sink is for the moment and wishes the transaction to proceed, but if other changes are made following this return by other event sinks then this sink wants another chance to look // // // MessageId: XACT_S_ALLNORETAIN // // MessageText: // // The transaction was successfully aborted. However, the abort was non-retaining. // // // MessageId: XACT_S_ABORTING // // MessageText: // // An abort operation was already in progress. // // // MessageId: XACT_S_SINGLEPHASE // // MessageText: // // The resource manager has performed a single-phase commit of the transaction. // // // MessageId: XACT_S_LOCALLY_OK // // MessageText: // // The local transaction has not aborted. // // // MessageId: XACT_S_LASTRESOURCEMANAGER // // MessageText: // // The resource manager has requested to be the coordinator (last resource manager) for the transaction. // // // MessageId: CONTEXT_E_ABORTED // // MessageText: // // The root transaction wanted to commit, but transaction aborted // // // MessageId: CONTEXT_E_ABORTING // // MessageText: // // You made a method call on a COM+ component that has a transaction that has already aborted or in the process of aborting. // // // MessageId: CONTEXT_E_NOCONTEXT // // MessageText: // // There is no MTS object context // // // MessageId: CONTEXT_E_WOULD_DEADLOCK // // MessageText: // // The component is configured to use synchronization and this method call would cause a deadlock to occur. // // // MessageId: CONTEXT_E_SYNCH_TIMEOUT // // MessageText: // // The component is configured to use synchronization and a thread has timed out waiting to enter the context. // // // MessageId: CONTEXT_E_OLDREF // // MessageText: // // You made a method call on a COM+ component that has a transaction that has already committed or aborted. // // // MessageId: CONTEXT_E_ROLENOTFOUND // // MessageText: // // The specified role was not configured for the application // // // MessageId: CONTEXT_E_TMNOTAVAILABLE // // MessageText: // // COM+ was unable to talk to the Microsoft Distributed Transaction Coordinator // // // MessageId: CO_E_ACTIVATIONFAILED // // MessageText: // // An unexpected error occurred during COM+ Activation. // // // MessageId: CO_E_ACTIVATIONFAILED_EVENTLOGGED // // MessageText: // // COM+ Activation failed. Check the event log for more information // // // MessageId: CO_E_ACTIVATIONFAILED_CATALOGERROR // // MessageText: // // COM+ Activation failed due to a catalog or configuration error. // // // MessageId: CO_E_ACTIVATIONFAILED_TIMEOUT // // MessageText: // // COM+ activation failed because the activation could not be completed in the specified amount of time. // // // MessageId: CO_E_INITIALIZATIONFAILED // // MessageText: // // COM+ Activation failed because an initialization function failed. Check the event log for more information. // // // MessageId: CONTEXT_E_NOJIT // // MessageText: // // The requested operation requires that JIT be in the current context and it is not // // // MessageId: CONTEXT_E_NOTRANSACTION // // MessageText: // // The requested operation requires that the current context have a Transaction, and it does not // // // MessageId: CO_E_THREADINGMODEL_CHANGED // // MessageText: // // The components threading model has changed after install into a COM+ Application. Please re-install component. // // // MessageId: CO_E_NOIISINTRINSICS // // MessageText: // // IIS intrinsics not available. Start your work with IIS. // // // MessageId: CO_E_NOCOOKIES // // MessageText: // // An attempt to write a cookie failed. // // // MessageId: CO_E_DBERROR // // MessageText: // // An attempt to use a database generated a database specific error. // // // MessageId: CO_E_NOTPOOLED // // MessageText: // // The COM+ component you created must use object pooling to work. // // // MessageId: CO_E_NOTCONSTRUCTED // // MessageText: // // The COM+ component you created must use object construction to work correctly. // // // MessageId: CO_E_NOSYNCHRONIZATION // // MessageText: // // The COM+ component requires synchronization, and it is not configured for it. // // // MessageId: CO_E_ISOLEVELMISMATCH // // MessageText: // // The TxIsolation Level property for the COM+ component being created is stronger than the TxIsolationLevel for the "root" component for the transaction. The creation failed. // // // MessageId: CO_E_CALL_OUT_OF_TX_SCOPE_NOT_ALLOWED // // MessageText: // // The component attempted to make a cross-context call between invocations of EnterTransactionScopeand ExitTransactionScope. This is not allowed. Cross-context calls cannot be made while inside of a transaction scope. // // // MessageId: CO_E_EXIT_TRANSACTION_SCOPE_NOT_CALLED // // MessageText: // // The component made a call to EnterTransactionScope, but did not make a corresponding call to ExitTransactionScope before returning. // // // Old OLE Success Codes // // // MessageId: OLE_S_USEREG // // MessageText: // // Use the registry database to provide the requested information // // // MessageId: OLE_S_STATIC // // MessageText: // // Success, but static // // // MessageId: OLE_S_MAC_CLIPFORMAT // // MessageText: // // Macintosh clipboard format // // // MessageId: DRAGDROP_S_DROP // // MessageText: // // Successful drop took place // // // MessageId: DRAGDROP_S_CANCEL // // MessageText: // // Drag-drop operation canceled // // // MessageId: DRAGDROP_S_USEDEFAULTCURSORS // // MessageText: // // Use the default cursor // // // MessageId: DATA_S_SAMEFORMATETC // // MessageText: // // Data has same FORMATETC // // // MessageId: VIEW_S_ALREADY_FROZEN // // MessageText: // // View is already frozen // // // MessageId: CACHE_S_FORMATETC_NOTSUPPORTED // // MessageText: // // FORMATETC not supported // // // MessageId: CACHE_S_SAMECACHE // // MessageText: // // Same cache // // // MessageId: CACHE_S_SOMECACHES_NOTUPDATED // // MessageText: // // Some cache(s) not updated // // // MessageId: OLEOBJ_S_INVALIDVERB // // MessageText: // // Invalid verb for OLE object // // // MessageId: OLEOBJ_S_CANNOT_DOVERB_NOW // // MessageText: // // Verb number is valid but verb cannot be done now // // // MessageId: OLEOBJ_S_INVALIDHWND // // MessageText: // // Invalid window handle passed // // // MessageId: INPLACE_S_TRUNCATED // // MessageText: // // Message is too long; some of it had to be truncated before displaying // // // MessageId: CONVERT10_S_NO_PRESENTATION // // MessageText: // // Unable to convert OLESTREAM to IStorage // // // MessageId: MK_S_REDUCED_TO_SELF // // MessageText: // // Moniker reduced to itself // // // MessageId: MK_S_ME // // MessageText: // // Common prefix is this moniker // // // MessageId: MK_S_HIM // // MessageText: // // Common prefix is input moniker // // // MessageId: MK_S_US // // MessageText: // // Common prefix is both monikers // // // MessageId: MK_S_MONIKERALREADYREGISTERED // // MessageText: // // Moniker is already registered in running object table // // // Task Scheduler errors // // // MessageId: SCHED_S_TASK_READY // // MessageText: // // The task is ready to run at its next scheduled time. // // // MessageId: SCHED_S_TASK_RUNNING // // MessageText: // // The task is currently running. // // // MessageId: SCHED_S_TASK_DISABLED // // MessageText: // // The task will not run at the scheduled times because it has been disabled. // // // MessageId: SCHED_S_TASK_HAS_NOT_RUN // // MessageText: // // The task has not yet run. // // // MessageId: SCHED_S_TASK_NO_MORE_RUNS // // MessageText: // // There are no more runs scheduled for this task. // // // MessageId: SCHED_S_TASK_NOT_SCHEDULED // // MessageText: // // One or more of the properties that are needed to run this task on a schedule have not been set. // // // MessageId: SCHED_S_TASK_TERMINATED // // MessageText: // // The last run of the task was terminated by the user. // // // MessageId: SCHED_S_TASK_NO_VALID_TRIGGERS // // MessageText: // // Either the task has no triggers or the existing triggers are disabled or not set. // // // MessageId: SCHED_S_EVENT_TRIGGER // // MessageText: // // Event triggers don't have set run times. // // // MessageId: SCHED_E_TRIGGER_NOT_FOUND // // MessageText: // // Trigger not found. // // // MessageId: SCHED_E_TASK_NOT_READY // // MessageText: // // One or more of the properties that are needed to run this task have not been set. // // // MessageId: SCHED_E_TASK_NOT_RUNNING // // MessageText: // // There is no running instance of the task. // // // MessageId: SCHED_E_SERVICE_NOT_INSTALLED // // MessageText: // // The Task Scheduler Service is not installed on this computer. // // // MessageId: SCHED_E_CANNOT_OPEN_TASK // // MessageText: // // The task object could not be opened. // // // MessageId: SCHED_E_INVALID_TASK // // MessageText: // // The object is either an invalid task object or is not a task object. // // // MessageId: SCHED_E_ACCOUNT_INFORMATION_NOT_SET // // MessageText: // // No account information could be found in the Task Scheduler security database for the task indicated. // // // MessageId: SCHED_E_ACCOUNT_NAME_NOT_FOUND // // MessageText: // // Unable to establish existence of the account specified. // // // MessageId: SCHED_E_ACCOUNT_DBASE_CORRUPT // // MessageText: // // Corruption was detected in the Task Scheduler security database; the database has been reset. // // // MessageId: SCHED_E_NO_SECURITY_SERVICES // // MessageText: // // Task Scheduler security services are available only on Windows NT. // // // MessageId: SCHED_E_UNKNOWN_OBJECT_VERSION // // MessageText: // // The task object version is either unsupported or invalid. // // // MessageId: SCHED_E_UNSUPPORTED_ACCOUNT_OPTION // // MessageText: // // The task has been configured with an unsupported combination of account settings and run time options. // // // MessageId: SCHED_E_SERVICE_NOT_RUNNING // // MessageText: // // The Task Scheduler Service is not running. // // // MessageId: SCHED_E_UNEXPECTEDNODE // // MessageText: // // The task XML contains an unexpected node. // // // MessageId: SCHED_E_NAMESPACE // // MessageText: // // The task XML contains an element or attribute from an unexpected namespace. // // // MessageId: SCHED_E_INVALIDVALUE // // MessageText: // // The task XML contains a value which is incorrectly formatted or out of range. // // // MessageId: SCHED_E_MISSINGNODE // // MessageText: // // The task XML is missing a required element or attribute. // // // MessageId: SCHED_E_MALFORMEDXML // // MessageText: // // The task XML is malformed. // // // MessageId: SCHED_S_SOME_TRIGGERS_FAILED // // MessageText: // // The task is registered, but not all specified triggers will start the task. // // // MessageId: SCHED_S_BATCH_LOGON_PROBLEM // // MessageText: // // The task is registered, but may fail to start. Batch logon privilege needs to be enabled for the task principal. // // // MessageId: SCHED_E_TOO_MANY_NODES // // MessageText: // // The task XML contains too many nodes of the same type. // // // MessageId: SCHED_E_PAST_END_BOUNDARY // // MessageText: // // The task cannot be started after the trigger's end boundary. // // // MessageId: SCHED_E_ALREADY_RUNNING // // MessageText: // // An instance of this task is already running. // // // MessageId: SCHED_E_USER_NOT_LOGGED_ON // // MessageText: // // The task will not run because the user is not logged on. // // // MessageId: SCHED_E_INVALID_TASK_HASH // // MessageText: // // The task image is corrupt or has been tampered with. // // // MessageId: SCHED_E_SERVICE_NOT_AVAILABLE // // MessageText: // // The Task Scheduler service is not available. // // // MessageId: SCHED_E_SERVICE_TOO_BUSY // // MessageText: // // The Task Scheduler service is too busy to handle your request. Please try again later. // // // MessageId: SCHED_E_TASK_ATTEMPTED // // MessageText: // // The Task Scheduler service attempted to run the task, but the task did not run due to one of the constraints in the task definition. // // // MessageId: SCHED_S_TASK_QUEUED // // MessageText: // // The Task Scheduler service has asked the task to run. // // // MessageId: SCHED_E_TASK_DISABLED // // MessageText: // // The task is disabled. // // // MessageId: SCHED_E_TASK_NOT_V1_COMPAT // // MessageText: // // The task has properties that are not compatible with previous versions of Windows. // // // MessageId: SCHED_E_START_ON_DEMAND // // MessageText: // // The task settings do not allow the task to start on demand. // // ****************** // FACILITY_WINDOWS // ****************** // // Codes 0x0-0x01ff are reserved for the OLE group of // interfaces. // // // MessageId: CO_E_CLASS_CREATE_FAILED // // MessageText: // // Attempt to create a class object failed // // // MessageId: CO_E_SCM_ERROR // // MessageText: // // OLE service could not bind object // // // MessageId: CO_E_SCM_RPC_FAILURE // // MessageText: // // RPC communication failed with OLE service // // // MessageId: CO_E_BAD_PATH // // MessageText: // // Bad path to object // // // MessageId: CO_E_SERVER_EXEC_FAILURE // // MessageText: // // Server execution failed // // // MessageId: CO_E_OBJSRV_RPC_FAILURE // // MessageText: // // OLE service could not communicate with the object server // // // MessageId: MK_E_NO_NORMALIZED // // MessageText: // // Moniker path could not be normalized // // // MessageId: CO_E_SERVER_STOPPING // // MessageText: // // Object server is stopping when OLE service contacts it // // // MessageId: MEM_E_INVALID_ROOT // // MessageText: // // An invalid root block pointer was specified // // // MessageId: MEM_E_INVALID_LINK // // MessageText: // // An allocation chain contained an invalid link pointer // // // MessageId: MEM_E_INVALID_SIZE // // MessageText: // // The requested allocation size was too large // // // MessageId: CO_S_NOTALLINTERFACES // // MessageText: // // Not all the requested interfaces were available // // // MessageId: CO_S_MACHINENAMENOTFOUND // // MessageText: // // The specified machine name was not found in the cache. // // // MessageId: CO_E_MISSING_DISPLAYNAME // // MessageText: // // The activation requires a display name to be present under the CLSID key. // // // MessageId: CO_E_RUNAS_VALUE_MUST_BE_AAA // // MessageText: // // The activation requires that the RunAs value for the application is Activate As Activator. // // // MessageId: CO_E_ELEVATION_DISABLED // // MessageText: // // The class is not configured to support Elevated activation. // // ****************** // FACILITY_DISPATCH // ****************** // // MessageId: DISP_E_UNKNOWNINTERFACE // // MessageText: // // Unknown interface. // // // MessageId: DISP_E_MEMBERNOTFOUND // // MessageText: // // Member not found. // // // MessageId: DISP_E_PARAMNOTFOUND // // MessageText: // // Parameter not found. // // // MessageId: DISP_E_TYPEMISMATCH // // MessageText: // // Type mismatch. // // // MessageId: DISP_E_UNKNOWNNAME // // MessageText: // // Unknown name. // // // MessageId: DISP_E_NONAMEDARGS // // MessageText: // // No named arguments. // // // MessageId: DISP_E_BADVARTYPE // // MessageText: // // Bad variable type. // // // MessageId: DISP_E_EXCEPTION // // MessageText: // // Exception occurred. // // // MessageId: DISP_E_OVERFLOW // // MessageText: // // Out of present range. // // // MessageId: DISP_E_BADINDEX // // MessageText: // // Invalid index. // // // MessageId: DISP_E_UNKNOWNLCID // // MessageText: // // Unknown language. // // // MessageId: DISP_E_ARRAYISLOCKED // // MessageText: // // Memory is locked. // // // MessageId: DISP_E_BADPARAMCOUNT // // MessageText: // // Invalid number of parameters. // // // MessageId: DISP_E_PARAMNOTOPTIONAL // // MessageText: // // Parameter not optional. // // // MessageId: DISP_E_BADCALLEE // // MessageText: // // Invalid callee. // // // MessageId: DISP_E_NOTACOLLECTION // // MessageText: // // Does not support a collection. // // // MessageId: DISP_E_DIVBYZERO // // MessageText: // // Division by zero. // // // MessageId: DISP_E_BUFFERTOOSMALL // // MessageText: // // Buffer too small // // // MessageId: TYPE_E_BUFFERTOOSMALL // // MessageText: // // Buffer too small. // // // MessageId: TYPE_E_FIELDNOTFOUND // // MessageText: // // Field name not defined in the record. // // // MessageId: TYPE_E_INVDATAREAD // // MessageText: // // Old format or invalid type library. // // // MessageId: TYPE_E_UNSUPFORMAT // // MessageText: // // Old format or invalid type library. // // // MessageId: TYPE_E_REGISTRYACCESS // // MessageText: // // Error accessing the OLE registry. // // // MessageId: TYPE_E_LIBNOTREGISTERED // // MessageText: // // Library not registered. // // // MessageId: TYPE_E_UNDEFINEDTYPE // // MessageText: // // Bound to unknown type. // // // MessageId: TYPE_E_QUALIFIEDNAMEDISALLOWED // // MessageText: // // Qualified name disallowed. // // // MessageId: TYPE_E_INVALIDSTATE // // MessageText: // // Invalid forward reference, or reference to uncompiled type. // // // MessageId: TYPE_E_WRONGTYPEKIND // // MessageText: // // Type mismatch. // // // MessageId: TYPE_E_ELEMENTNOTFOUND // // MessageText: // // Element not found. // // // MessageId: TYPE_E_AMBIGUOUSNAME // // MessageText: // // Ambiguous name. // // // MessageId: TYPE_E_NAMECONFLICT // // MessageText: // // Name already exists in the library. // // // MessageId: TYPE_E_UNKNOWNLCID // // MessageText: // // Unknown LCID. // // // MessageId: TYPE_E_DLLFUNCTIONNOTFOUND // // MessageText: // // Function not defined in specified DLL. // // // MessageId: TYPE_E_BADMODULEKIND // // MessageText: // // Wrong module kind for the operation. // // // MessageId: TYPE_E_SIZETOOBIG // // MessageText: // // Size may not exceed 64K. // // // MessageId: TYPE_E_DUPLICATEID // // MessageText: // // Duplicate ID in inheritance hierarchy. // // // MessageId: TYPE_E_INVALIDID // // MessageText: // // Incorrect inheritance depth in standard OLE hmember. // // // MessageId: TYPE_E_TYPEMISMATCH // // MessageText: // // Type mismatch. // // // MessageId: TYPE_E_OUTOFBOUNDS // // MessageText: // // Invalid number of arguments. // // // MessageId: TYPE_E_IOERROR // // MessageText: // // I/O Error. // // // MessageId: TYPE_E_CANTCREATETMPFILE // // MessageText: // // Error creating unique tmp file. // // // MessageId: TYPE_E_CANTLOADLIBRARY // // MessageText: // // Error loading type library/DLL. // // // MessageId: TYPE_E_INCONSISTENTPROPFUNCS // // MessageText: // // Inconsistent property functions. // // // MessageId: TYPE_E_CIRCULARTYPE // // MessageText: // // Circular dependency between types/modules. // // ****************** // FACILITY_STORAGE // ****************** // // MessageId: STG_E_INVALIDFUNCTION // // MessageText: // // Unable to perform requested operation. // // // MessageId: STG_E_FILENOTFOUND // // MessageText: // // %1 could not be found. // // // MessageId: STG_E_PATHNOTFOUND // // MessageText: // // The path %1 could not be found. // // // MessageId: STG_E_TOOMANYOPENFILES // // MessageText: // // There are insufficient resources to open another file. // // // MessageId: STG_E_ACCESSDENIED // // MessageText: // // Access Denied. // // // MessageId: STG_E_INVALIDHANDLE // // MessageText: // // Attempted an operation on an invalid object. // // // MessageId: STG_E_INSUFFICIENTMEMORY // // MessageText: // // There is insufficient memory available to complete operation. // // // MessageId: STG_E_INVALIDPOINTER // // MessageText: // // Invalid pointer error. // // // MessageId: STG_E_NOMOREFILES // // MessageText: // // There are no more entries to return. // // // MessageId: STG_E_DISKISWRITEPROTECTED // // MessageText: // // Disk is write-protected. // // // MessageId: STG_E_SEEKERROR // // MessageText: // // An error occurred during a seek operation. // // // MessageId: STG_E_WRITEFAULT // // MessageText: // // A disk error occurred during a write operation. // // // MessageId: STG_E_READFAULT // // MessageText: // // A disk error occurred during a read operation. // // // MessageId: STG_E_SHAREVIOLATION // // MessageText: // // A share violation has occurred. // // // MessageId: STG_E_LOCKVIOLATION // // MessageText: // // A lock violation has occurred. // // // MessageId: STG_E_FILEALREADYEXISTS // // MessageText: // // %1 already exists. // // // MessageId: STG_E_INVALIDPARAMETER // // MessageText: // // Invalid parameter error. // // // MessageId: STG_E_MEDIUMFULL // // MessageText: // // There is insufficient disk space to complete operation. // // // MessageId: STG_E_PROPSETMISMATCHED // // MessageText: // // Illegal write of non-simple property to simple property set. // // // MessageId: STG_E_ABNORMALAPIEXIT // // MessageText: // // An API call exited abnormally. // // // MessageId: STG_E_INVALIDHEADER // // MessageText: // // The file %1 is not a valid compound file. // // // MessageId: STG_E_INVALIDNAME // // MessageText: // // The name %1 is not valid. // // // MessageId: STG_E_UNKNOWN // // MessageText: // // An unexpected error occurred. // // // MessageId: STG_E_UNIMPLEMENTEDFUNCTION // // MessageText: // // That function is not implemented. // // // MessageId: STG_E_INVALIDFLAG // // MessageText: // // Invalid flag error. // // // MessageId: STG_E_INUSE // // MessageText: // // Attempted to use an object that is busy. // // // MessageId: STG_E_NOTCURRENT // // MessageText: // // The storage has been changed since the last commit. // // // MessageId: STG_E_REVERTED // // MessageText: // // Attempted to use an object that has ceased to exist. // // // MessageId: STG_E_CANTSAVE // // MessageText: // // Can't save. // // // MessageId: STG_E_OLDFORMAT // // MessageText: // // The compound file %1 was produced with an incompatible version of storage. // // // MessageId: STG_E_OLDDLL // // MessageText: // // The compound file %1 was produced with a newer version of storage. // // // MessageId: STG_E_SHAREREQUIRED // // MessageText: // // Share.exe or equivalent is required for operation. // // // MessageId: STG_E_NOTFILEBASEDSTORAGE // // MessageText: // // Illegal operation called on non-file based storage. // // // MessageId: STG_E_EXTANTMARSHALLINGS // // MessageText: // // Illegal operation called on object with extant marshallings. // // // MessageId: STG_E_DOCFILECORRUPT // // MessageText: // // The docfile has been corrupted. // // // MessageId: STG_E_BADBASEADDRESS // // MessageText: // // OLE32.DLL has been loaded at the wrong address. // // // MessageId: STG_E_DOCFILETOOLARGE // // MessageText: // // The compound file is too large for the current implementation // // // MessageId: STG_E_NOTSIMPLEFORMAT // // MessageText: // // The compound file was not created with the STGM_SIMPLE flag // // // MessageId: STG_E_INCOMPLETE // // MessageText: // // The file download was aborted abnormally. The file is incomplete. // // // MessageId: STG_E_TERMINATED // // MessageText: // // The file download has been terminated. // // // MessageId: STG_S_CONVERTED // // MessageText: // // The underlying file was converted to compound file format. // // // MessageId: STG_S_BLOCK // // MessageText: // // The storage operation should block until more data is available. // // // MessageId: STG_S_RETRYNOW // // MessageText: // // The storage operation should retry immediately. // // // MessageId: STG_S_MONITORING // // MessageText: // // The notified event sink will not influence the storage operation. // // // MessageId: STG_S_MULTIPLEOPENS // // MessageText: // // Multiple opens prevent consolidated. (commit succeeded). // // // MessageId: STG_S_CONSOLIDATIONFAILED // // MessageText: // // Consolidation of the storage file failed. (commit succeeded). // // // MessageId: STG_S_CANNOTCONSOLIDATE // // MessageText: // // Consolidation of the storage file is inappropriate. (commit succeeded). // /*++ MessageId's 0x0305 - 0x031f (inclusive) are reserved for **STORAGE** copy protection errors. --*/ // // MessageId: STG_E_STATUS_COPY_PROTECTION_FAILURE // // MessageText: // // Generic Copy Protection Error. // // // MessageId: STG_E_CSS_AUTHENTICATION_FAILURE // // MessageText: // // Copy Protection Error - DVD CSS Authentication failed. // // // MessageId: STG_E_CSS_KEY_NOT_PRESENT // // MessageText: // // Copy Protection Error - The given sector does not have a valid CSS key. // // // MessageId: STG_E_CSS_KEY_NOT_ESTABLISHED // // MessageText: // // Copy Protection Error - DVD session key not established. // // // MessageId: STG_E_CSS_SCRAMBLED_SECTOR // // MessageText: // // Copy Protection Error - The read failed because the sector is encrypted. // // // MessageId: STG_E_CSS_REGION_MISMATCH // // MessageText: // // Copy Protection Error - The current DVD's region does not correspond to the region setting of the drive. // // // MessageId: STG_E_RESETS_EXHAUSTED // // MessageText: // // Copy Protection Error - The drive's region setting may be permanent or the number of user resets has been exhausted. // /*++ MessageId's 0x0305 - 0x031f (inclusive) are reserved for **STORAGE** copy protection errors. --*/ // ****************** // FACILITY_RPC // ****************** // // Codes 0x0-0x11 are propagated from 16 bit OLE. // // // MessageId: RPC_E_CALL_REJECTED // // MessageText: // // Call was rejected by callee. // // // MessageId: RPC_E_CALL_CANCELED // // MessageText: // // Call was canceled by the message filter. // // // MessageId: RPC_E_CANTPOST_INSENDCALL // // MessageText: // // The caller is dispatching an intertask SendMessage call and cannot call out via PostMessage. // // // MessageId: RPC_E_CANTCALLOUT_INASYNCCALL // // MessageText: // // The caller is dispatching an asynchronous call and cannot make an outgoing call on behalf of this call. // // // MessageId: RPC_E_CANTCALLOUT_INEXTERNALCALL // // MessageText: // // It is illegal to call out while inside message filter. // // // MessageId: RPC_E_CONNECTION_TERMINATED // // MessageText: // // The connection terminated or is in a bogus state and cannot be used any more. Other connections are still valid. // // // MessageId: RPC_E_SERVER_DIED // // MessageText: // // The callee (server [not server application]) is not available and disappeared; all connections are invalid. The call may have executed. // // // MessageId: RPC_E_CLIENT_DIED // // MessageText: // // The caller (client) disappeared while the callee (server) was processing a call. // // // MessageId: RPC_E_INVALID_DATAPACKET // // MessageText: // // The data packet with the marshalled parameter data is incorrect. // // // MessageId: RPC_E_CANTTRANSMIT_CALL // // MessageText: // // The call was not transmitted properly; the message queue was full and was not emptied after yielding. // // // MessageId: RPC_E_CLIENT_CANTMARSHAL_DATA // // MessageText: // // The client (caller) cannot marshall the parameter data - low memory, etc. // // // MessageId: RPC_E_CLIENT_CANTUNMARSHAL_DATA // // MessageText: // // The client (caller) cannot unmarshall the return data - low memory, etc. // // // MessageId: RPC_E_SERVER_CANTMARSHAL_DATA // // MessageText: // // The server (callee) cannot marshall the return data - low memory, etc. // // // MessageId: RPC_E_SERVER_CANTUNMARSHAL_DATA // // MessageText: // // The server (callee) cannot unmarshall the parameter data - low memory, etc. // // // MessageId: RPC_E_INVALID_DATA // // MessageText: // // Received data is invalid; could be server or client data. // // // MessageId: RPC_E_INVALID_PARAMETER // // MessageText: // // A particular parameter is invalid and cannot be (un)marshalled. // // // MessageId: RPC_E_CANTCALLOUT_AGAIN // // MessageText: // // There is no second outgoing call on same channel in DDE conversation. // // // MessageId: RPC_E_SERVER_DIED_DNE // // MessageText: // // The callee (server [not server application]) is not available and disappeared; all connections are invalid. The call did not execute. // // // MessageId: RPC_E_SYS_CALL_FAILED // // MessageText: // // System call failed. // // // MessageId: RPC_E_OUT_OF_RESOURCES // // MessageText: // // Could not allocate some required resource (memory, events, ...) // // // MessageId: RPC_E_ATTEMPTED_MULTITHREAD // // MessageText: // // Attempted to make calls on more than one thread in single threaded mode. // // // MessageId: RPC_E_NOT_REGISTERED // // MessageText: // // The requested interface is not registered on the server object. // // // MessageId: RPC_E_FAULT // // MessageText: // // RPC could not call the server or could not return the results of calling the server. // // // MessageId: RPC_E_SERVERFAULT // // MessageText: // // The server threw an exception. // // // MessageId: RPC_E_CHANGED_MODE // // MessageText: // // Cannot change thread mode after it is set. // // // MessageId: RPC_E_INVALIDMETHOD // // MessageText: // // The method called does not exist on the server. // // // MessageId: RPC_E_DISCONNECTED // // MessageText: // // The object invoked has disconnected from its clients. // // // MessageId: RPC_E_RETRY // // MessageText: // // The object invoked chose not to process the call now. Try again later. // // // MessageId: RPC_E_SERVERCALL_RETRYLATER // // MessageText: // // The message filter indicated that the application is busy. // // // MessageId: RPC_E_SERVERCALL_REJECTED // // MessageText: // // The message filter rejected the call. // // // MessageId: RPC_E_INVALID_CALLDATA // // MessageText: // // A call control interfaces was called with invalid data. // // // MessageId: RPC_E_CANTCALLOUT_ININPUTSYNCCALL // // MessageText: // // An outgoing call cannot be made since the application is dispatching an input-synchronous call. // // // MessageId: RPC_E_WRONG_THREAD // // MessageText: // // The application called an interface that was marshalled for a different thread. // // // MessageId: RPC_E_THREAD_NOT_INIT // // MessageText: // // CoInitialize has not been called on the current thread. // // // MessageId: RPC_E_VERSION_MISMATCH // // MessageText: // // The version of OLE on the client and server machines does not match. // // // MessageId: RPC_E_INVALID_HEADER // // MessageText: // // OLE received a packet with an invalid header. // // // MessageId: RPC_E_INVALID_EXTENSION // // MessageText: // // OLE received a packet with an invalid extension. // // // MessageId: RPC_E_INVALID_IPID // // MessageText: // // The requested object or interface does not exist. // // // MessageId: RPC_E_INVALID_OBJECT // // MessageText: // // The requested object does not exist. // // // MessageId: RPC_S_CALLPENDING // // MessageText: // // OLE has sent a request and is waiting for a reply. // // // MessageId: RPC_S_WAITONTIMER // // MessageText: // // OLE is waiting before retrying a request. // // // MessageId: RPC_E_CALL_COMPLETE // // MessageText: // // Call context cannot be accessed after call completed. // // // MessageId: RPC_E_UNSECURE_CALL // // MessageText: // // Impersonate on unsecure calls is not supported. // // // MessageId: RPC_E_TOO_LATE // // MessageText: // // Security must be initialized before any interfaces are marshalled or unmarshalled. It cannot be changed once initialized. // // // MessageId: RPC_E_NO_GOOD_SECURITY_PACKAGES // // MessageText: // // No security packages are installed on this machine or the user is not logged on or there are no compatible security packages between the client and server. // // // MessageId: RPC_E_ACCESS_DENIED // // MessageText: // // Access is denied. // // // MessageId: RPC_E_REMOTE_DISABLED // // MessageText: // // Remote calls are not allowed for this process. // // // MessageId: RPC_E_INVALID_OBJREF // // MessageText: // // The marshaled interface data packet (OBJREF) has an invalid or unknown format. // // // MessageId: RPC_E_NO_CONTEXT // // MessageText: // // No context is associated with this call. This happens for some custom marshalled calls and on the client side of the call. // // // MessageId: RPC_E_TIMEOUT // // MessageText: // // This operation returned because the timeout period expired. // // // MessageId: RPC_E_NO_SYNC // // MessageText: // // There are no synchronize objects to wait on. // // // MessageId: RPC_E_FULLSIC_REQUIRED // // MessageText: // // Full subject issuer chain SSL principal name expected from the server. // // // MessageId: RPC_E_INVALID_STD_NAME // // MessageText: // // Principal name is not a valid MSSTD name. // // // MessageId: CO_E_FAILEDTOIMPERSONATE // // MessageText: // // Unable to impersonate DCOM client // // // MessageId: CO_E_FAILEDTOGETSECCTX // // MessageText: // // Unable to obtain server's security context // // // MessageId: CO_E_FAILEDTOOPENTHREADTOKEN // // MessageText: // // Unable to open the access token of the current thread // // // MessageId: CO_E_FAILEDTOGETTOKENINFO // // MessageText: // // Unable to obtain user info from an access token // // // MessageId: CO_E_TRUSTEEDOESNTMATCHCLIENT // // MessageText: // // The client who called IAccessControl::IsAccessPermitted was not the trustee provided to the method // // // MessageId: CO_E_FAILEDTOQUERYCLIENTBLANKET // // MessageText: // // Unable to obtain the client's security blanket // // // MessageId: CO_E_FAILEDTOSETDACL // // MessageText: // // Unable to set a discretionary ACL into a security descriptor // // // MessageId: CO_E_ACCESSCHECKFAILED // // MessageText: // // The system function, AccessCheck, returned false // // // MessageId: CO_E_NETACCESSAPIFAILED // // MessageText: // // Either NetAccessDel or NetAccessAdd returned an error code. // // // MessageId: CO_E_WRONGTRUSTEENAMESYNTAX // // MessageText: // // One of the trustee strings provided by the user did not conform to the \ syntax and it was not the "*" string // // // MessageId: CO_E_INVALIDSID // // MessageText: // // One of the security identifiers provided by the user was invalid // // // MessageId: CO_E_CONVERSIONFAILED // // MessageText: // // Unable to convert a wide character trustee string to a multibyte trustee string // // // MessageId: CO_E_NOMATCHINGSIDFOUND // // MessageText: // // Unable to find a security identifier that corresponds to a trustee string provided by the user // // // MessageId: CO_E_LOOKUPACCSIDFAILED // // MessageText: // // The system function, LookupAccountSID, failed // // // MessageId: CO_E_NOMATCHINGNAMEFOUND // // MessageText: // // Unable to find a trustee name that corresponds to a security identifier provided by the user // // // MessageId: CO_E_LOOKUPACCNAMEFAILED // // MessageText: // // The system function, LookupAccountName, failed // // // MessageId: CO_E_SETSERLHNDLFAILED // // MessageText: // // Unable to set or reset a serialization handle // // // MessageId: CO_E_FAILEDTOGETWINDIR // // MessageText: // // Unable to obtain the Windows directory // // // MessageId: CO_E_PATHTOOLONG // // MessageText: // // Path too long // // // MessageId: CO_E_FAILEDTOGENUUID // // MessageText: // // Unable to generate a uuid. // // // MessageId: CO_E_FAILEDTOCREATEFILE // // MessageText: // // Unable to create file // // // MessageId: CO_E_FAILEDTOCLOSEHANDLE // // MessageText: // // Unable to close a serialization handle or a file handle. // // // MessageId: CO_E_EXCEEDSYSACLLIMIT // // MessageText: // // The number of ACEs in an ACL exceeds the system limit. // // // MessageId: CO_E_ACESINWRONGORDER // // MessageText: // // Not all the DENY_ACCESS ACEs are arranged in front of the GRANT_ACCESS ACEs in the stream. // // // MessageId: CO_E_INCOMPATIBLESTREAMVERSION // // MessageText: // // The version of ACL format in the stream is not supported by this implementation of IAccessControl // // // MessageId: CO_E_FAILEDTOOPENPROCESSTOKEN // // MessageText: // // Unable to open the access token of the server process // // // MessageId: CO_E_DECODEFAILED // // MessageText: // // Unable to decode the ACL in the stream provided by the user // // // MessageId: CO_E_ACNOTINITIALIZED // // MessageText: // // The COM IAccessControl object is not initialized // // // MessageId: CO_E_CANCEL_DISABLED // // MessageText: // // Call Cancellation is disabled // // // MessageId: RPC_E_UNEXPECTED // // MessageText: // // An internal error occurred. // ////////////////////////////////////// // // // Additional Security Status Codes // // // // Facility=Security // // // ////////////////////////////////////// // // MessageId: ERROR_AUDITING_DISABLED // // MessageText: // // The specified event is currently not being audited. // // // MessageId: ERROR_ALL_SIDS_FILTERED // // MessageText: // // The SID filtering operation removed all SIDs. // // // MessageId: ERROR_BIZRULES_NOT_ENABLED // // MessageText: // // Business rule scripts are disabled for the calling application. // ///////////////////////////////////////////// // // // end of Additional Security Status Codes // // // ///////////////////////////////////////////// ///////////////// // // FACILITY_SSPI // ///////////////// // // MessageId: NTE_BAD_UID // // MessageText: // // Bad UID. // // // MessageId: NTE_BAD_HASH // // MessageText: // // Bad Hash. // // // MessageId: NTE_BAD_KEY // // MessageText: // // Bad Key. // // // MessageId: NTE_BAD_LEN // // MessageText: // // Bad Length. // // // MessageId: NTE_BAD_DATA // // MessageText: // // Bad Data. // // // MessageId: NTE_BAD_SIGNATURE // // MessageText: // // Invalid Signature. // // // MessageId: NTE_BAD_VER // // MessageText: // // Bad Version of provider. // // // MessageId: NTE_BAD_ALGID // // MessageText: // // Invalid algorithm specified. // // // MessageId: NTE_BAD_FLAGS // // MessageText: // // Invalid flags specified. // // // MessageId: NTE_BAD_TYPE // // MessageText: // // Invalid type specified. // // // MessageId: NTE_BAD_KEY_STATE // // MessageText: // // Key not valid for use in specified state. // // // MessageId: NTE_BAD_HASH_STATE // // MessageText: // // Hash not valid for use in specified state. // // // MessageId: NTE_NO_KEY // // MessageText: // // Key does not exist. // // // MessageId: NTE_NO_MEMORY // // MessageText: // // Insufficient memory available for the operation. // // // MessageId: NTE_EXISTS // // MessageText: // // Object already exists. // // // MessageId: NTE_PERM // // MessageText: // // Access denied. // // // MessageId: NTE_NOT_FOUND // // MessageText: // // Object was not found. // // // MessageId: NTE_DOUBLE_ENCRYPT // // MessageText: // // Data already encrypted. // // // MessageId: NTE_BAD_PROVIDER // // MessageText: // // Invalid provider specified. // // // MessageId: NTE_BAD_PROV_TYPE // // MessageText: // // Invalid provider type specified. // // // MessageId: NTE_BAD_PUBLIC_KEY // // MessageText: // // Provider's public key is invalid. // // // MessageId: NTE_BAD_KEYSET // // MessageText: // // Keyset does not exist // // // MessageId: NTE_PROV_TYPE_NOT_DEF // // MessageText: // // Provider type not defined. // // // MessageId: NTE_PROV_TYPE_ENTRY_BAD // // MessageText: // // Provider type as registered is invalid. // // // MessageId: NTE_KEYSET_NOT_DEF // // MessageText: // // The keyset is not defined. // // // MessageId: NTE_KEYSET_ENTRY_BAD // // MessageText: // // Keyset as registered is invalid. // // // MessageId: NTE_PROV_TYPE_NO_MATCH // // MessageText: // // Provider type does not match registered value. // // // MessageId: NTE_SIGNATURE_FILE_BAD // // MessageText: // // The digital signature file is corrupt. // // // MessageId: NTE_PROVIDER_DLL_FAIL // // MessageText: // // Provider DLL failed to initialize correctly. // // // MessageId: NTE_PROV_DLL_NOT_FOUND // // MessageText: // // Provider DLL could not be found. // // // MessageId: NTE_BAD_KEYSET_PARAM // // MessageText: // // The Keyset parameter is invalid. // // // MessageId: NTE_FAIL // // MessageText: // // An internal error occurred. // // // MessageId: NTE_SYS_ERR // // MessageText: // // A base error occurred. // // // MessageId: NTE_SILENT_CONTEXT // // MessageText: // // Provider could not perform the action since the context was acquired as silent. // // // MessageId: NTE_TOKEN_KEYSET_STORAGE_FULL // // MessageText: // // The security token does not have storage space available for an additional container. // // // MessageId: NTE_TEMPORARY_PROFILE // // MessageText: // // The profile for the user is a temporary profile. // // // MessageId: NTE_FIXEDPARAMETER // // MessageText: // // The key parameters could not be set because the CSP uses fixed parameters. // // // MessageId: NTE_INVALID_HANDLE // // MessageText: // // The supplied handle is invalid. // // // MessageId: NTE_INVALID_PARAMETER // // MessageText: // // The parameter is incorrect. // // // MessageId: NTE_BUFFER_TOO_SMALL // // MessageText: // // The buffer supplied to a function was too small. // // // MessageId: NTE_NOT_SUPPORTED // // MessageText: // // The requested operation is not supported. // // // MessageId: NTE_NO_MORE_ITEMS // // MessageText: // // No more data is available. // // // MessageId: NTE_BUFFERS_OVERLAP // // MessageText: // // The supplied buffers overlap incorrectly. // // // MessageId: NTE_DECRYPTION_FAILURE // // MessageText: // // The specified data could not be decrypted. // // // MessageId: NTE_INTERNAL_ERROR // // MessageText: // // An internal consistency check failed. // // // MessageId: NTE_UI_REQUIRED // // MessageText: // // This operation requires input from the user. // // // MessageId: NTE_HMAC_NOT_SUPPORTED // // MessageText: // // The cryptographic provider does not support HMAC. // // // MessageId: SEC_E_INSUFFICIENT_MEMORY // // MessageText: // // Not enough memory is available to complete this request // // // MessageId: SEC_E_INVALID_HANDLE // // MessageText: // // The handle specified is invalid // // // MessageId: SEC_E_UNSUPPORTED_FUNCTION // // MessageText: // // The function requested is not supported // // // MessageId: SEC_E_TARGET_UNKNOWN // // MessageText: // // The specified target is unknown or unreachable // // // MessageId: SEC_E_INTERNAL_ERROR // // MessageText: // // The Local Security Authority cannot be contacted // // // MessageId: SEC_E_SECPKG_NOT_FOUND // // MessageText: // // The requested security package does not exist // // // MessageId: SEC_E_NOT_OWNER // // MessageText: // // The caller is not the owner of the desired credentials // // // MessageId: SEC_E_CANNOT_INSTALL // // MessageText: // // The security package failed to initialize, and cannot be installed // // // MessageId: SEC_E_INVALID_TOKEN // // MessageText: // // The token supplied to the function is invalid // // // MessageId: SEC_E_CANNOT_PACK // // MessageText: // // The security package is not able to marshall the logon buffer, so the logon attempt has failed // // // MessageId: SEC_E_QOP_NOT_SUPPORTED // // MessageText: // // The per-message Quality of Protection is not supported by the security package // // // MessageId: SEC_E_NO_IMPERSONATION // // MessageText: // // The security context does not allow impersonation of the client // // // MessageId: SEC_E_LOGON_DENIED // // MessageText: // // The logon attempt failed // // // MessageId: SEC_E_UNKNOWN_CREDENTIALS // // MessageText: // // The credentials supplied to the package were not recognized // // // MessageId: SEC_E_NO_CREDENTIALS // // MessageText: // // No credentials are available in the security package // // // MessageId: SEC_E_MESSAGE_ALTERED // // MessageText: // // The message or signature supplied for verification has been altered // // // MessageId: SEC_E_OUT_OF_SEQUENCE // // MessageText: // // The message supplied for verification is out of sequence // // // MessageId: SEC_E_NO_AUTHENTICATING_AUTHORITY // // MessageText: // // No authority could be contacted for authentication. // // // MessageId: SEC_I_CONTINUE_NEEDED // // MessageText: // // The function completed successfully, but must be called again to complete the context // // // MessageId: SEC_I_COMPLETE_NEEDED // // MessageText: // // The function completed successfully, but CompleteToken must be called // // // MessageId: SEC_I_COMPLETE_AND_CONTINUE // // MessageText: // // The function completed successfully, but both CompleteToken and this function must be called to complete the context // // // MessageId: SEC_I_LOCAL_LOGON // // MessageText: // // The logon was completed, but no network authority was available. The logon was made using locally known information // // // MessageId: SEC_E_BAD_PKGID // // MessageText: // // The requested security package does not exist // // // MessageId: SEC_E_CONTEXT_EXPIRED // // MessageText: // // The context has expired and can no longer be used. // // // MessageId: SEC_I_CONTEXT_EXPIRED // // MessageText: // // The context has expired and can no longer be used. // // // MessageId: SEC_E_INCOMPLETE_MESSAGE // // MessageText: // // The supplied message is incomplete. The signature was not verified. // // // MessageId: SEC_E_INCOMPLETE_CREDENTIALS // // MessageText: // // The credentials supplied were not complete, and could not be verified. The context could not be initialized. // // // MessageId: SEC_E_BUFFER_TOO_SMALL // // MessageText: // // The buffers supplied to a function was too small. // // // MessageId: SEC_I_INCOMPLETE_CREDENTIALS // // MessageText: // // The credentials supplied were not complete, and could not be verified. Additional information can be returned from the context. // // // MessageId: SEC_I_RENEGOTIATE // // MessageText: // // The context data must be renegotiated with the peer. // // // MessageId: SEC_E_WRONG_PRINCIPAL // // MessageText: // // The target principal name is incorrect. // // // MessageId: SEC_I_NO_LSA_CONTEXT // // MessageText: // // There is no LSA mode context associated with this context. // // // MessageId: SEC_E_TIME_SKEW // // MessageText: // // The clocks on the client and server machines are skewed. // // // MessageId: SEC_E_UNTRUSTED_ROOT // // MessageText: // // The certificate chain was issued by an authority that is not trusted. // // // MessageId: SEC_E_ILLEGAL_MESSAGE // // MessageText: // // The message received was unexpected or badly formatted. // // // MessageId: SEC_E_CERT_UNKNOWN // // MessageText: // // An unknown error occurred while processing the certificate. // // // MessageId: SEC_E_CERT_EXPIRED // // MessageText: // // The received certificate has expired. // // // MessageId: SEC_E_ENCRYPT_FAILURE // // MessageText: // // The specified data could not be encrypted. // // // MessageId: SEC_E_DECRYPT_FAILURE // // MessageText: // // The specified data could not be decrypted. // // // // MessageId: SEC_E_ALGORITHM_MISMATCH // // MessageText: // // The client and server cannot communicate, because they do not possess a common algorithm. // // // MessageId: SEC_E_SECURITY_QOS_FAILED // // MessageText: // // The security context could not be established due to a failure in the requested quality of service (e.g. mutual authentication or delegation). // // // MessageId: SEC_E_UNFINISHED_CONTEXT_DELETED // // MessageText: // // A security context was deleted before the context was completed. This is considered a logon failure. // // // MessageId: SEC_E_NO_TGT_REPLY // // MessageText: // // The client is trying to negotiate a context and the server requires user-to-user but didn't send a TGT reply. // // // MessageId: SEC_E_NO_IP_ADDRESSES // // MessageText: // // Unable to accomplish the requested task because the local machine does not have any IP addresses. // // // MessageId: SEC_E_WRONG_CREDENTIAL_HANDLE // // MessageText: // // The supplied credential handle does not match the credential associated with the security context. // // // MessageId: SEC_E_CRYPTO_SYSTEM_INVALID // // MessageText: // // The crypto system or checksum function is invalid because a required function is unavailable. // // // MessageId: SEC_E_MAX_REFERRALS_EXCEEDED // // MessageText: // // The number of maximum ticket referrals has been exceeded. // // // MessageId: SEC_E_MUST_BE_KDC // // MessageText: // // The local machine must be a Kerberos KDC (domain controller) and it is not. // // // MessageId: SEC_E_STRONG_CRYPTO_NOT_SUPPORTED // // MessageText: // // The other end of the security negotiation is requires strong crypto but it is not supported on the local machine. // // // MessageId: SEC_E_TOO_MANY_PRINCIPALS // // MessageText: // // The KDC reply contained more than one principal name. // // // MessageId: SEC_E_NO_PA_DATA // // MessageText: // // Expected to find PA data for a hint of what etype to use, but it was not found. // // // MessageId: SEC_E_PKINIT_NAME_MISMATCH // // MessageText: // // The client certificate does not contain a valid UPN, or does not match the client name // in the logon request. Please contact your administrator. // // // MessageId: SEC_E_SMARTCARD_LOGON_REQUIRED // // MessageText: // // Smartcard logon is required and was not used. // // // MessageId: SEC_E_SHUTDOWN_IN_PROGRESS // // MessageText: // // A system shutdown is in progress. // // // MessageId: SEC_E_KDC_INVALID_REQUEST // // MessageText: // // An invalid request was sent to the KDC. // // // MessageId: SEC_E_KDC_UNABLE_TO_REFER // // MessageText: // // The KDC was unable to generate a referral for the service requested. // // // MessageId: SEC_E_KDC_UNKNOWN_ETYPE // // MessageText: // // The encryption type requested is not supported by the KDC. // // // MessageId: SEC_E_UNSUPPORTED_PREAUTH // // MessageText: // // An unsupported preauthentication mechanism was presented to the kerberos package. // // // MessageId: SEC_E_DELEGATION_REQUIRED // // MessageText: // // The requested operation cannot be completed. The computer must be trusted for delegation and the current user account must be configured to allow delegation. // // // MessageId: SEC_E_BAD_BINDINGS // // MessageText: // // Client's supplied SSPI channel bindings were incorrect. // // // MessageId: SEC_E_MULTIPLE_ACCOUNTS // // MessageText: // // The received certificate was mapped to multiple accounts. // // // MessageId: SEC_E_NO_KERB_KEY // // MessageText: // // SEC_E_NO_KERB_KEY // // // MessageId: SEC_E_CERT_WRONG_USAGE // // MessageText: // // The certificate is not valid for the requested usage. // // // MessageId: SEC_E_DOWNGRADE_DETECTED // // MessageText: // // The system detected a possible attempt to compromise security. Please ensure that you can contact the server that authenticated you. // // // MessageId: SEC_E_SMARTCARD_CERT_REVOKED // // MessageText: // // The smartcard certificate used for authentication has been revoked. Please contact your system administrator. There may be additional information in the event log. // // // MessageId: SEC_E_ISSUING_CA_UNTRUSTED // // MessageText: // // An untrusted certificate authority was detected While processing the smartcard certificate used for authentication. Please contact your system administrator. // // // MessageId: SEC_E_REVOCATION_OFFLINE_C // // MessageText: // // The revocation status of the smartcard certificate used for // authentication could not be determined. Please contact your system administrator. // // // MessageId: SEC_E_PKINIT_CLIENT_FAILURE // // MessageText: // // The smartcard certificate used for authentication was not trusted. Please contact your system administrator. // // // MessageId: SEC_E_SMARTCARD_CERT_EXPIRED // // MessageText: // // The smartcard certificate used for authentication has expired. Please contact your system administrator. // // // MessageId: SEC_E_NO_S4U_PROT_SUPPORT // // MessageText: // // The Kerberos subsystem encountered an error. A service for user protocol request was made against a domain controller which does not support service for user. // // // MessageId: SEC_E_CROSSREALM_DELEGATION_FAILURE // // MessageText: // // An attempt was made by this server to make a Kerberos constrained delegation request for a target outside of the server's realm. This is not supported, and indicates a misconfiguration on this server's allowed to delegate to list. Please contact your administrator. // // // MessageId: SEC_E_REVOCATION_OFFLINE_KDC // // MessageText: // // The revocation status of the domain controller certificate used for smartcard authentication could not be determined. There is additional information in the system event log. Please contact your system administrator. // // // MessageId: SEC_E_ISSUING_CA_UNTRUSTED_KDC // // MessageText: // // An untrusted certificate authority was detected while processing the domain controller certificate used for authentication. There is additional information in the system event log. Please contact your system administrator. // // // MessageId: SEC_E_KDC_CERT_EXPIRED // // MessageText: // // The domain controller certificate used for smartcard logon has expired. Please contact your system administrator with the contents of your system event log. // // // MessageId: SEC_E_KDC_CERT_REVOKED // // MessageText: // // The domain controller certificate used for smartcard logon has been revoked. Please contact your system administrator with the contents of your system event log. // // // MessageId: SEC_I_SIGNATURE_NEEDED // // MessageText: // // A signature operation must be performed before the user can authenticate. // // // MessageId: SEC_E_INVALID_PARAMETER // // MessageText: // // One or more of the parameters passed to the function was invalid. // // // MessageId: SEC_E_DELEGATION_POLICY // // MessageText: // // Client policy does not allow credential delegation to target server. // // // MessageId: SEC_E_POLICY_NLTM_ONLY // // MessageText: // // Client policy does not allow credential delegation to target server with NLTM only authentication. // // // MessageId: SEC_I_NO_RENEGOTIATION // // MessageText: // // The recipient rejected the renegotiation request. // // // Provided for backwards compatibility // // // MessageId: CRYPT_E_MSG_ERROR // // MessageText: // // An error occurred while performing an operation on a cryptographic message. // // // MessageId: CRYPT_E_UNKNOWN_ALGO // // MessageText: // // Unknown cryptographic algorithm. // // // MessageId: CRYPT_E_OID_FORMAT // // MessageText: // // The object identifier is poorly formatted. // // // MessageId: CRYPT_E_INVALID_MSG_TYPE // // MessageText: // // Invalid cryptographic message type. // // // MessageId: CRYPT_E_UNEXPECTED_ENCODING // // MessageText: // // Unexpected cryptographic message encoding. // // // MessageId: CRYPT_E_AUTH_ATTR_MISSING // // MessageText: // // The cryptographic message does not contain an expected authenticated attribute. // // // MessageId: CRYPT_E_HASH_VALUE // // MessageText: // // The hash value is not correct. // // // MessageId: CRYPT_E_INVALID_INDEX // // MessageText: // // The index value is not valid. // // // MessageId: CRYPT_E_ALREADY_DECRYPTED // // MessageText: // // The content of the cryptographic message has already been decrypted. // // // MessageId: CRYPT_E_NOT_DECRYPTED // // MessageText: // // The content of the cryptographic message has not been decrypted yet. // // // MessageId: CRYPT_E_RECIPIENT_NOT_FOUND // // MessageText: // // The enveloped-data message does not contain the specified recipient. // // // MessageId: CRYPT_E_CONTROL_TYPE // // MessageText: // // Invalid control type. // // // MessageId: CRYPT_E_ISSUER_SERIALNUMBER // // MessageText: // // Invalid issuer and/or serial number. // // // MessageId: CRYPT_E_SIGNER_NOT_FOUND // // MessageText: // // Cannot find the original signer. // // // MessageId: CRYPT_E_ATTRIBUTES_MISSING // // MessageText: // // The cryptographic message does not contain all of the requested attributes. // // // MessageId: CRYPT_E_STREAM_MSG_NOT_READY // // MessageText: // // The streamed cryptographic message is not ready to return data. // // // MessageId: CRYPT_E_STREAM_INSUFFICIENT_DATA // // MessageText: // // The streamed cryptographic message requires more data to complete the decode operation. // // // MessageId: CRYPT_I_NEW_PROTECTION_REQUIRED // // MessageText: // // The protected data needs to be re-protected. // // // MessageId: CRYPT_E_BAD_LEN // // MessageText: // // The length specified for the output data was insufficient. // // // MessageId: CRYPT_E_BAD_ENCODE // // MessageText: // // An error occurred during encode or decode operation. // // // MessageId: CRYPT_E_FILE_ERROR // // MessageText: // // An error occurred while reading or writing to a file. // // // MessageId: CRYPT_E_NOT_FOUND // // MessageText: // // Cannot find object or property. // // // MessageId: CRYPT_E_EXISTS // // MessageText: // // The object or property already exists. // // // MessageId: CRYPT_E_NO_PROVIDER // // MessageText: // // No provider was specified for the store or object. // // // MessageId: CRYPT_E_SELF_SIGNED // // MessageText: // // The specified certificate is self signed. // // // MessageId: CRYPT_E_DELETED_PREV // // MessageText: // // The previous certificate or CRL context was deleted. // // // MessageId: CRYPT_E_NO_MATCH // // MessageText: // // Cannot find the requested object. // // // MessageId: CRYPT_E_UNEXPECTED_MSG_TYPE // // MessageText: // // The certificate does not have a property that references a private key. // // // MessageId: CRYPT_E_NO_KEY_PROPERTY // // MessageText: // // Cannot find the certificate and private key for decryption. // // // MessageId: CRYPT_E_NO_DECRYPT_CERT // // MessageText: // // Cannot find the certificate and private key to use for decryption. // // // MessageId: CRYPT_E_BAD_MSG // // MessageText: // // Not a cryptographic message or the cryptographic message is not formatted correctly. // // // MessageId: CRYPT_E_NO_SIGNER // // MessageText: // // The signed cryptographic message does not have a signer for the specified signer index. // // // MessageId: CRYPT_E_PENDING_CLOSE // // MessageText: // // Final closure is pending until additional frees or closes. // // // MessageId: CRYPT_E_REVOKED // // MessageText: // // The certificate is revoked. // // // MessageId: CRYPT_E_NO_REVOCATION_DLL // // MessageText: // // No Dll or exported function was found to verify revocation. // // // MessageId: CRYPT_E_NO_REVOCATION_CHECK // // MessageText: // // The revocation function was unable to check revocation for the certificate. // // // MessageId: CRYPT_E_REVOCATION_OFFLINE // // MessageText: // // The revocation function was unable to check revocation because the revocation server was offline. // // // MessageId: CRYPT_E_NOT_IN_REVOCATION_DATABASE // // MessageText: // // The certificate is not in the revocation server's database. // // // MessageId: CRYPT_E_INVALID_NUMERIC_STRING // // MessageText: // // The string contains a non-numeric character. // // // MessageId: CRYPT_E_INVALID_PRINTABLE_STRING // // MessageText: // // The string contains a non-printable character. // // // MessageId: CRYPT_E_INVALID_IA5_STRING // // MessageText: // // The string contains a character not in the 7 bit ASCII character set. // // // MessageId: CRYPT_E_INVALID_X500_STRING // // MessageText: // // The string contains an invalid X500 name attribute key, oid, value or delimiter. // // // MessageId: CRYPT_E_NOT_CHAR_STRING // // MessageText: // // The dwValueType for the CERT_NAME_VALUE is not one of the character strings. Most likely it is either a CERT_RDN_ENCODED_BLOB or CERT_TDN_OCTED_STRING. // // // MessageId: CRYPT_E_FILERESIZED // // MessageText: // // The Put operation cannot continue. The file needs to be resized. However, there is already a signature present. A complete signing operation must be done. // // // MessageId: CRYPT_E_SECURITY_SETTINGS // // MessageText: // // The cryptographic operation failed due to a local security option setting. // // // MessageId: CRYPT_E_NO_VERIFY_USAGE_DLL // // MessageText: // // No DLL or exported function was found to verify subject usage. // // // MessageId: CRYPT_E_NO_VERIFY_USAGE_CHECK // // MessageText: // // The called function was unable to do a usage check on the subject. // // // MessageId: CRYPT_E_VERIFY_USAGE_OFFLINE // // MessageText: // // Since the server was offline, the called function was unable to complete the usage check. // // // MessageId: CRYPT_E_NOT_IN_CTL // // MessageText: // // The subject was not found in a Certificate Trust List (CTL). // // // MessageId: CRYPT_E_NO_TRUSTED_SIGNER // // MessageText: // // None of the signers of the cryptographic message or certificate trust list is trusted. // // // MessageId: CRYPT_E_MISSING_PUBKEY_PARA // // MessageText: // // The public key's algorithm parameters are missing. // // // MessageId: CRYPT_E_OSS_ERROR // // MessageText: // // OSS Certificate encode/decode error code base // // See asn1code.h for a definition of the OSS runtime errors. The OSS // error values are offset by CRYPT_E_OSS_ERROR. // // // MessageId: OSS_MORE_BUF // // MessageText: // // OSS ASN.1 Error: Output Buffer is too small. // // // MessageId: OSS_NEGATIVE_UINTEGER // // MessageText: // // OSS ASN.1 Error: Signed integer is encoded as a unsigned integer. // // // MessageId: OSS_PDU_RANGE // // MessageText: // // OSS ASN.1 Error: Unknown ASN.1 data type. // // // MessageId: OSS_MORE_INPUT // // MessageText: // // OSS ASN.1 Error: Output buffer is too small, the decoded data has been truncated. // // // MessageId: OSS_DATA_ERROR // // MessageText: // // OSS ASN.1 Error: Invalid data. // // // MessageId: OSS_BAD_ARG // // MessageText: // // OSS ASN.1 Error: Invalid argument. // // // MessageId: OSS_BAD_VERSION // // MessageText: // // OSS ASN.1 Error: Encode/Decode version mismatch. // // // MessageId: OSS_OUT_MEMORY // // MessageText: // // OSS ASN.1 Error: Out of memory. // // // MessageId: OSS_PDU_MISMATCH // // MessageText: // // OSS ASN.1 Error: Encode/Decode Error. // // // MessageId: OSS_LIMITED // // MessageText: // // OSS ASN.1 Error: Internal Error. // // // MessageId: OSS_BAD_PTR // // MessageText: // // OSS ASN.1 Error: Invalid data. // // // MessageId: OSS_BAD_TIME // // MessageText: // // OSS ASN.1 Error: Invalid data. // // // MessageId: OSS_INDEFINITE_NOT_SUPPORTED // // MessageText: // // OSS ASN.1 Error: Unsupported BER indefinite-length encoding. // // // MessageId: OSS_MEM_ERROR // // MessageText: // // OSS ASN.1 Error: Access violation. // // // MessageId: OSS_BAD_TABLE // // MessageText: // // OSS ASN.1 Error: Invalid data. // // // MessageId: OSS_TOO_LONG // // MessageText: // // OSS ASN.1 Error: Invalid data. // // // MessageId: OSS_CONSTRAINT_VIOLATED // // MessageText: // // OSS ASN.1 Error: Invalid data. // // // MessageId: OSS_FATAL_ERROR // // MessageText: // // OSS ASN.1 Error: Internal Error. // // // MessageId: OSS_ACCESS_SERIALIZATION_ERROR // // MessageText: // // OSS ASN.1 Error: Multi-threading conflict. // // // MessageId: OSS_NULL_TBL // // MessageText: // // OSS ASN.1 Error: Invalid data. // // // MessageId: OSS_NULL_FCN // // MessageText: // // OSS ASN.1 Error: Invalid data. // // // MessageId: OSS_BAD_ENCRULES // // MessageText: // // OSS ASN.1 Error: Invalid data. // // // MessageId: OSS_UNAVAIL_ENCRULES // // MessageText: // // OSS ASN.1 Error: Encode/Decode function not implemented. // // // MessageId: OSS_CANT_OPEN_TRACE_WINDOW // // MessageText: // // OSS ASN.1 Error: Trace file error. // // // MessageId: OSS_UNIMPLEMENTED // // MessageText: // // OSS ASN.1 Error: Function not implemented. // // // MessageId: OSS_OID_DLL_NOT_LINKED // // MessageText: // // OSS ASN.1 Error: Program link error. // // // MessageId: OSS_CANT_OPEN_TRACE_FILE // // MessageText: // // OSS ASN.1 Error: Trace file error. // // // MessageId: OSS_TRACE_FILE_ALREADY_OPEN // // MessageText: // // OSS ASN.1 Error: Trace file error. // // // MessageId: OSS_TABLE_MISMATCH // // MessageText: // // OSS ASN.1 Error: Invalid data. // // // MessageId: OSS_TYPE_NOT_SUPPORTED // // MessageText: // // OSS ASN.1 Error: Invalid data. // // // MessageId: OSS_REAL_DLL_NOT_LINKED // // MessageText: // // OSS ASN.1 Error: Program link error. // // // MessageId: OSS_REAL_CODE_NOT_LINKED // // MessageText: // // OSS ASN.1 Error: Program link error. // // // MessageId: OSS_OUT_OF_RANGE // // MessageText: // // OSS ASN.1 Error: Program link error. // // // MessageId: OSS_COPIER_DLL_NOT_LINKED // // MessageText: // // OSS ASN.1 Error: Program link error. // // // MessageId: OSS_CONSTRAINT_DLL_NOT_LINKED // // MessageText: // // OSS ASN.1 Error: Program link error. // // // MessageId: OSS_COMPARATOR_DLL_NOT_LINKED // // MessageText: // // OSS ASN.1 Error: Program link error. // // // MessageId: OSS_COMPARATOR_CODE_NOT_LINKED // // MessageText: // // OSS ASN.1 Error: Program link error. // // // MessageId: OSS_MEM_MGR_DLL_NOT_LINKED // // MessageText: // // OSS ASN.1 Error: Program link error. // // // MessageId: OSS_PDV_DLL_NOT_LINKED // // MessageText: // // OSS ASN.1 Error: Program link error. // // // MessageId: OSS_PDV_CODE_NOT_LINKED // // MessageText: // // OSS ASN.1 Error: Program link error. // // // MessageId: OSS_API_DLL_NOT_LINKED // // MessageText: // // OSS ASN.1 Error: Program link error. // // // MessageId: OSS_BERDER_DLL_NOT_LINKED // // MessageText: // // OSS ASN.1 Error: Program link error. // // // MessageId: OSS_PER_DLL_NOT_LINKED // // MessageText: // // OSS ASN.1 Error: Program link error. // // // MessageId: OSS_OPEN_TYPE_ERROR // // MessageText: // // OSS ASN.1 Error: Program link error. // // // MessageId: OSS_MUTEX_NOT_CREATED // // MessageText: // // OSS ASN.1 Error: System resource error. // // // MessageId: OSS_CANT_CLOSE_TRACE_FILE // // MessageText: // // OSS ASN.1 Error: Trace file error. // // // MessageId: CRYPT_E_ASN1_ERROR // // MessageText: // // ASN1 Certificate encode/decode error code base. // // The ASN1 error values are offset by CRYPT_E_ASN1_ERROR. // // // MessageId: CRYPT_E_ASN1_INTERNAL // // MessageText: // // ASN1 internal encode or decode error. // // // MessageId: CRYPT_E_ASN1_EOD // // MessageText: // // ASN1 unexpected end of data. // // // MessageId: CRYPT_E_ASN1_CORRUPT // // MessageText: // // ASN1 corrupted data. // // // MessageId: CRYPT_E_ASN1_LARGE // // MessageText: // // ASN1 value too large. // // // MessageId: CRYPT_E_ASN1_CONSTRAINT // // MessageText: // // ASN1 constraint violated. // // // MessageId: CRYPT_E_ASN1_MEMORY // // MessageText: // // ASN1 out of memory. // // // MessageId: CRYPT_E_ASN1_OVERFLOW // // MessageText: // // ASN1 buffer overflow. // // // MessageId: CRYPT_E_ASN1_BADPDU // // MessageText: // // ASN1 function not supported for this PDU. // // // MessageId: CRYPT_E_ASN1_BADARGS // // MessageText: // // ASN1 bad arguments to function call. // // // MessageId: CRYPT_E_ASN1_BADREAL // // MessageText: // // ASN1 bad real value. // // // MessageId: CRYPT_E_ASN1_BADTAG // // MessageText: // // ASN1 bad tag value met. // // // MessageId: CRYPT_E_ASN1_CHOICE // // MessageText: // // ASN1 bad choice value. // // // MessageId: CRYPT_E_ASN1_RULE // // MessageText: // // ASN1 bad encoding rule. // // // MessageId: CRYPT_E_ASN1_UTF8 // // MessageText: // // ASN1 bad unicode (UTF8). // // // MessageId: CRYPT_E_ASN1_PDU_TYPE // // MessageText: // // ASN1 bad PDU type. // // // MessageId: CRYPT_E_ASN1_NYI // // MessageText: // // ASN1 not yet implemented. // // // MessageId: CRYPT_E_ASN1_EXTENDED // // MessageText: // // ASN1 skipped unknown extension(s). // // // MessageId: CRYPT_E_ASN1_NOEOD // // MessageText: // // ASN1 end of data expected // // // MessageId: CERTSRV_E_BAD_REQUESTSUBJECT // // MessageText: // // The request subject name is invalid or too long. // // // MessageId: CERTSRV_E_NO_REQUEST // // MessageText: // // The request does not exist. // // // MessageId: CERTSRV_E_BAD_REQUESTSTATUS // // MessageText: // // The request's current status does not allow this operation. // // // MessageId: CERTSRV_E_PROPERTY_EMPTY // // MessageText: // // The requested property value is empty. // // // MessageId: CERTSRV_E_INVALID_CA_CERTIFICATE // // MessageText: // // The certification authority's certificate contains invalid data. // // // MessageId: CERTSRV_E_SERVER_SUSPENDED // // MessageText: // // Certificate service has been suspended for a database restore operation. // // // MessageId: CERTSRV_E_ENCODING_LENGTH // // MessageText: // // The certificate contains an encoded length that is potentially incompatible with older enrollment software. // // // MessageId: CERTSRV_E_ROLECONFLICT // // MessageText: // // The operation is denied. The user has multiple roles assigned and the certification authority is configured to enforce role separation. // // // MessageId: CERTSRV_E_RESTRICTEDOFFICER // // MessageText: // // The operation is denied. It can only be performed by a certificate manager that is allowed to manage certificates for the current requester. // // // MessageId: CERTSRV_E_KEY_ARCHIVAL_NOT_CONFIGURED // // MessageText: // // Cannot archive private key. The certification authority is not configured for key archival. // // // MessageId: CERTSRV_E_NO_VALID_KRA // // MessageText: // // Cannot archive private key. The certification authority could not verify one or more key recovery certificates. // // // MessageId: CERTSRV_E_BAD_REQUEST_KEY_ARCHIVAL // // MessageText: // // The request is incorrectly formatted. The encrypted private key must be in an unauthenticated attribute in an outermost signature. // // // MessageId: CERTSRV_E_NO_CAADMIN_DEFINED // // MessageText: // // At least one security principal must have the permission to manage this CA. // // // MessageId: CERTSRV_E_BAD_RENEWAL_CERT_ATTRIBUTE // // MessageText: // // The request contains an invalid renewal certificate attribute. // // // MessageId: CERTSRV_E_NO_DB_SESSIONS // // MessageText: // // An attempt was made to open a Certification Authority database session, but there are already too many active sessions. The server may need to be configured to allow additional sessions. // // // MessageId: CERTSRV_E_ALIGNMENT_FAULT // // MessageText: // // A memory reference caused a data alignment fault. // // // MessageId: CERTSRV_E_ENROLL_DENIED // // MessageText: // // The permissions on this certification authority do not allow the current user to enroll for certificates. // // // MessageId: CERTSRV_E_TEMPLATE_DENIED // // MessageText: // // The permissions on the certificate template do not allow the current user to enroll for this type of certificate. // // // MessageId: CERTSRV_E_DOWNLEVEL_DC_SSL_OR_UPGRADE // // MessageText: // // The contacted domain controller cannot support signed LDAP traffic. Update the domain controller or configure Certificate Services to use SSL for Active Directory access. // // // MessageId: CERTSRV_E_UNSUPPORTED_CERT_TYPE // // MessageText: // // The requested certificate template is not supported by this CA. // // // MessageId: CERTSRV_E_NO_CERT_TYPE // // MessageText: // // The request contains no certificate template information. // // // MessageId: CERTSRV_E_TEMPLATE_CONFLICT // // MessageText: // // The request contains conflicting template information. // // // MessageId: CERTSRV_E_SUBJECT_ALT_NAME_REQUIRED // // MessageText: // // The request is missing a required Subject Alternate name extension. // // // MessageId: CERTSRV_E_ARCHIVED_KEY_REQUIRED // // MessageText: // // The request is missing a required private key for archival by the server. // // // MessageId: CERTSRV_E_SMIME_REQUIRED // // MessageText: // // The request is missing a required SMIME capabilities extension. // // // MessageId: CERTSRV_E_BAD_RENEWAL_SUBJECT // // MessageText: // // The request was made on behalf of a subject other than the caller. The certificate template must be configured to require at least one signature to authorize the request. // // // MessageId: CERTSRV_E_BAD_TEMPLATE_VERSION // // MessageText: // // The request template version is newer than the supported template version. // // // MessageId: CERTSRV_E_TEMPLATE_POLICY_REQUIRED // // MessageText: // // The template is missing a required signature policy attribute. // // // MessageId: CERTSRV_E_SIGNATURE_POLICY_REQUIRED // // MessageText: // // The request is missing required signature policy information. // // // MessageId: CERTSRV_E_SIGNATURE_COUNT // // MessageText: // // The request is missing one or more required signatures. // // // MessageId: CERTSRV_E_SIGNATURE_REJECTED // // MessageText: // // One or more signatures did not include the required application or issuance policies. The request is missing one or more required valid signatures. // // // MessageId: CERTSRV_E_ISSUANCE_POLICY_REQUIRED // // MessageText: // // The request is missing one or more required signature issuance policies. // // // MessageId: CERTSRV_E_SUBJECT_UPN_REQUIRED // // MessageText: // // The UPN is unavailable and cannot be added to the Subject Alternate name. // // // MessageId: CERTSRV_E_SUBJECT_DIRECTORY_GUID_REQUIRED // // MessageText: // // The Active Directory GUID is unavailable and cannot be added to the Subject Alternate name. // // // MessageId: CERTSRV_E_SUBJECT_DNS_REQUIRED // // MessageText: // // The DNS name is unavailable and cannot be added to the Subject Alternate name. // // // MessageId: CERTSRV_E_ARCHIVED_KEY_UNEXPECTED // // MessageText: // // The request includes a private key for archival by the server, but key archival is not enabled for the specified certificate template. // // // MessageId: CERTSRV_E_KEY_LENGTH // // MessageText: // // The public key does not meet the minimum size required by the specified certificate template. // // // MessageId: CERTSRV_E_SUBJECT_EMAIL_REQUIRED // // MessageText: // // The EMail name is unavailable and cannot be added to the Subject or Subject Alternate name. // // // MessageId: CERTSRV_E_UNKNOWN_CERT_TYPE // // MessageText: // // One or more certificate templates to be enabled on this certification authority could not be found. // // // MessageId: CERTSRV_E_CERT_TYPE_OVERLAP // // MessageText: // // The certificate template renewal period is longer than the certificate validity period. The template should be reconfigured or the CA certificate renewed. // // // MessageId: CERTSRV_E_TOO_MANY_SIGNATURES // // MessageText: // // The certificate template requires too many RA signatures. Only one RA signature is allowed. // // // The range 0x5000-0x51ff is reserved for XENROLL errors. // // // MessageId: XENROLL_E_KEY_NOT_EXPORTABLE // // MessageText: // // The key is not exportable. // // // MessageId: XENROLL_E_CANNOT_ADD_ROOT_CERT // // MessageText: // // You cannot add the root CA certificate into your local store. // // // MessageId: XENROLL_E_RESPONSE_KA_HASH_NOT_FOUND // // MessageText: // // The key archival hash attribute was not found in the response. // // // MessageId: XENROLL_E_RESPONSE_UNEXPECTED_KA_HASH // // MessageText: // // An unexpected key archival hash attribute was found in the response. // // // MessageId: XENROLL_E_RESPONSE_KA_HASH_MISMATCH // // MessageText: // // There is a key archival hash mismatch between the request and the response. // // // MessageId: XENROLL_E_KEYSPEC_SMIME_MISMATCH // // MessageText: // // Signing certificate cannot include SMIME extension. // // // MessageId: TRUST_E_SYSTEM_ERROR // // MessageText: // // A system-level error occurred while verifying trust. // // // MessageId: TRUST_E_NO_SIGNER_CERT // // MessageText: // // The certificate for the signer of the message is invalid or not found. // // // MessageId: TRUST_E_COUNTER_SIGNER // // MessageText: // // One of the counter signatures was invalid. // // // MessageId: TRUST_E_CERT_SIGNATURE // // MessageText: // // The signature of the certificate cannot be verified. // // // MessageId: TRUST_E_TIME_STAMP // // MessageText: // // The timestamp signature and/or certificate could not be verified or is malformed. // // // MessageId: TRUST_E_BAD_DIGEST // // MessageText: // // The digital signature of the object did not verify. // // // MessageId: TRUST_E_BASIC_CONSTRAINTS // // MessageText: // // A certificate's basic constraint extension has not been observed. // // // MessageId: TRUST_E_FINANCIAL_CRITERIA // // MessageText: // // The certificate does not meet or contain the Authenticode(tm) financial extensions. // // // Error codes for mssipotf.dll // Most of the error codes can only occur when an error occurs // during font file signing // // // // MessageId: MSSIPOTF_E_OUTOFMEMRANGE // // MessageText: // // Tried to reference a part of the file outside the proper range. // // // MessageId: MSSIPOTF_E_CANTGETOBJECT // // MessageText: // // Could not retrieve an object from the file. // // // MessageId: MSSIPOTF_E_NOHEADTABLE // // MessageText: // // Could not find the head table in the file. // // // MessageId: MSSIPOTF_E_BAD_MAGICNUMBER // // MessageText: // // The magic number in the head table is incorrect. // // // MessageId: MSSIPOTF_E_BAD_OFFSET_TABLE // // MessageText: // // The offset table has incorrect values. // // // MessageId: MSSIPOTF_E_TABLE_TAGORDER // // MessageText: // // Duplicate table tags or tags out of alphabetical order. // // // MessageId: MSSIPOTF_E_TABLE_LONGWORD // // MessageText: // // A table does not start on a long word boundary. // // // MessageId: MSSIPOTF_E_BAD_FIRST_TABLE_PLACEMENT // // MessageText: // // First table does not appear after header information. // // // MessageId: MSSIPOTF_E_TABLES_OVERLAP // // MessageText: // // Two or more tables overlap. // // // MessageId: MSSIPOTF_E_TABLE_PADBYTES // // MessageText: // // Too many pad bytes between tables or pad bytes are not 0. // // // MessageId: MSSIPOTF_E_FILETOOSMALL // // MessageText: // // File is too small to contain the last table. // // // MessageId: MSSIPOTF_E_TABLE_CHECKSUM // // MessageText: // // A table checksum is incorrect. // // // MessageId: MSSIPOTF_E_FILE_CHECKSUM // // MessageText: // // The file checksum is incorrect. // // // MessageId: MSSIPOTF_E_FAILED_POLICY // // MessageText: // // The signature does not have the correct attributes for the policy. // // // MessageId: MSSIPOTF_E_FAILED_HINTS_CHECK // // MessageText: // // The file did not pass the hints check. // // // MessageId: MSSIPOTF_E_NOT_OPENTYPE // // MessageText: // // The file is not an OpenType file. // // // MessageId: MSSIPOTF_E_FILE // // MessageText: // // Failed on a file operation (open, map, read, write). // // // MessageId: MSSIPOTF_E_CRYPT // // MessageText: // // A call to a CryptoAPI function failed. // // // MessageId: MSSIPOTF_E_BADVERSION // // MessageText: // // There is a bad version number in the file. // // // MessageId: MSSIPOTF_E_DSIG_STRUCTURE // // MessageText: // // The structure of the DSIG table is incorrect. // // // MessageId: MSSIPOTF_E_PCONST_CHECK // // MessageText: // // A check failed in a partially constant table. // // // MessageId: MSSIPOTF_E_STRUCTURE // // MessageText: // // Some kind of structural error. // // // MessageId: ERROR_CRED_REQUIRES_CONFIRMATION // // MessageText: // // The requested credential requires confirmation. // // // Note that additional FACILITY_SSPI errors are in issperr.h // // ****************** // FACILITY_CERT // ****************** // // MessageId: TRUST_E_PROVIDER_UNKNOWN // // MessageText: // // Unknown trust provider. // // // MessageId: TRUST_E_ACTION_UNKNOWN // // MessageText: // // The trust verification action specified is not supported by the specified trust provider. // // // MessageId: TRUST_E_SUBJECT_FORM_UNKNOWN // // MessageText: // // The form specified for the subject is not one supported or known by the specified trust provider. // // // MessageId: TRUST_E_SUBJECT_NOT_TRUSTED // // MessageText: // // The subject is not trusted for the specified action. // // // MessageId: DIGSIG_E_ENCODE // // MessageText: // // Error due to problem in ASN.1 encoding process. // // // MessageId: DIGSIG_E_DECODE // // MessageText: // // Error due to problem in ASN.1 decoding process. // // // MessageId: DIGSIG_E_EXTENSIBILITY // // MessageText: // // Reading / writing Extensions where Attributes are appropriate, and visa versa. // // // MessageId: DIGSIG_E_CRYPTO // // MessageText: // // Unspecified cryptographic failure. // // // MessageId: PERSIST_E_SIZEDEFINITE // // MessageText: // // The size of the data could not be determined. // // // MessageId: PERSIST_E_SIZEINDEFINITE // // MessageText: // // The size of the indefinite-sized data could not be determined. // // // MessageId: PERSIST_E_NOTSELFSIZING // // MessageText: // // This object does not read and write self-sizing data. // // // MessageId: TRUST_E_NOSIGNATURE // // MessageText: // // No signature was present in the subject. // // // MessageId: CERT_E_EXPIRED // // MessageText: // // A required certificate is not within its validity period when verifying against the current system clock or the timestamp in the signed file. // // // MessageId: CERT_E_VALIDITYPERIODNESTING // // MessageText: // // The validity periods of the certification chain do not nest correctly. // // // MessageId: CERT_E_ROLE // // MessageText: // // A certificate that can only be used as an end-entity is being used as a CA or visa versa. // // // MessageId: CERT_E_PATHLENCONST // // MessageText: // // A path length constraint in the certification chain has been violated. // // // MessageId: CERT_E_CRITICAL // // MessageText: // // A certificate contains an unknown extension that is marked 'critical'. // // // MessageId: CERT_E_PURPOSE // // MessageText: // // A certificate being used for a purpose other than the ones specified by its CA. // // // MessageId: CERT_E_ISSUERCHAINING // // MessageText: // // A parent of a given certificate in fact did not issue that child certificate. // // // MessageId: CERT_E_MALFORMED // // MessageText: // // A certificate is missing or has an empty value for an important field, such as a subject or issuer name. // // // MessageId: CERT_E_UNTRUSTEDROOT // // MessageText: // // A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider. // // // MessageId: CERT_E_CHAINING // // MessageText: // // A certificate chain could not be built to a trusted root authority. // // // MessageId: TRUST_E_FAIL // // MessageText: // // Generic trust failure. // // // MessageId: CERT_E_REVOKED // // MessageText: // // A certificate was explicitly revoked by its issuer. // // // MessageId: CERT_E_UNTRUSTEDTESTROOT // // MessageText: // // The certification path terminates with the test root which is not trusted with the current policy settings. // // // MessageId: CERT_E_REVOCATION_FAILURE // // MessageText: // // The revocation process could not continue - the certificate(s) could not be checked. // // // MessageId: CERT_E_CN_NO_MATCH // // MessageText: // // The certificate's CN name does not match the passed value. // // // MessageId: CERT_E_WRONG_USAGE // // MessageText: // // The certificate is not valid for the requested usage. // // // MessageId: TRUST_E_EXPLICIT_DISTRUST // // MessageText: // // The certificate was explicitly marked as untrusted by the user. // // // MessageId: CERT_E_UNTRUSTEDCA // // MessageText: // // A certification chain processed correctly, but one of the CA certificates is not trusted by the policy provider. // // // MessageId: CERT_E_INVALID_POLICY // // MessageText: // // The certificate has invalid policy. // // // MessageId: CERT_E_INVALID_NAME // // MessageText: // // The certificate has an invalid name. The name is not included in the permitted list or is explicitly excluded. // // ***************** // FACILITY_SETUPAPI // ***************** // // Since these error codes aren't in the standard Win32 range (i.e., 0-64K), define a // macro to map either Win32 or SetupAPI error codes into an HRESULT. // // // MessageId: SPAPI_E_EXPECTED_SECTION_NAME // // MessageText: // // A non-empty line was encountered in the INF before the start of a section. // // // MessageId: SPAPI_E_BAD_SECTION_NAME_LINE // // MessageText: // // A section name marker in the INF is not complete, or does not exist on a line by itself. // // // MessageId: SPAPI_E_SECTION_NAME_TOO_LONG // // MessageText: // // An INF section was encountered whose name exceeds the maximum section name length. // // // MessageId: SPAPI_E_GENERAL_SYNTAX // // MessageText: // // The syntax of the INF is invalid. // // // MessageId: SPAPI_E_WRONG_INF_STYLE // // MessageText: // // The style of the INF is different than what was requested. // // // MessageId: SPAPI_E_SECTION_NOT_FOUND // // MessageText: // // The required section was not found in the INF. // // // MessageId: SPAPI_E_LINE_NOT_FOUND // // MessageText: // // The required line was not found in the INF. // // // MessageId: SPAPI_E_NO_BACKUP // // MessageText: // // The files affected by the installation of this file queue have not been backed up for uninstall. // // // MessageId: SPAPI_E_NO_ASSOCIATED_CLASS // // MessageText: // // The INF or the device information set or element does not have an associated install class. // // // MessageId: SPAPI_E_CLASS_MISMATCH // // MessageText: // // The INF or the device information set or element does not match the specified install class. // // // MessageId: SPAPI_E_DUPLICATE_FOUND // // MessageText: // // An existing device was found that is a duplicate of the device being manually installed. // // // MessageId: SPAPI_E_NO_DRIVER_SELECTED // // MessageText: // // There is no driver selected for the device information set or element. // // // MessageId: SPAPI_E_KEY_DOES_NOT_EXIST // // MessageText: // // The requested device registry key does not exist. // // // MessageId: SPAPI_E_INVALID_DEVINST_NAME // // MessageText: // // The device instance name is invalid. // // // MessageId: SPAPI_E_INVALID_CLASS // // MessageText: // // The install class is not present or is invalid. // // // MessageId: SPAPI_E_DEVINST_ALREADY_EXISTS // // MessageText: // // The device instance cannot be created because it already exists. // // // MessageId: SPAPI_E_DEVINFO_NOT_REGISTERED // // MessageText: // // The operation cannot be performed on a device information element that has not been registered. // // // MessageId: SPAPI_E_INVALID_REG_PROPERTY // // MessageText: // // The device property code is invalid. // // // MessageId: SPAPI_E_NO_INF // // MessageText: // // The INF from which a driver list is to be built does not exist. // // // MessageId: SPAPI_E_NO_SUCH_DEVINST // // MessageText: // // The device instance does not exist in the hardware tree. // // // MessageId: SPAPI_E_CANT_LOAD_CLASS_ICON // // MessageText: // // The icon representing this install class cannot be loaded. // // // MessageId: SPAPI_E_INVALID_CLASS_INSTALLER // // MessageText: // // The class installer registry entry is invalid. // // // MessageId: SPAPI_E_DI_DO_DEFAULT // // MessageText: // // The class installer has indicated that the default action should be performed for this installation request. // // // MessageId: SPAPI_E_DI_NOFILECOPY // // MessageText: // // The operation does not require any files to be copied. // // // MessageId: SPAPI_E_INVALID_HWPROFILE // // MessageText: // // The specified hardware profile does not exist. // // // MessageId: SPAPI_E_NO_DEVICE_SELECTED // // MessageText: // // There is no device information element currently selected for this device information set. // // // MessageId: SPAPI_E_DEVINFO_LIST_LOCKED // // MessageText: // // The operation cannot be performed because the device information set is locked. // // // MessageId: SPAPI_E_DEVINFO_DATA_LOCKED // // MessageText: // // The operation cannot be performed because the device information element is locked. // // // MessageId: SPAPI_E_DI_BAD_PATH // // MessageText: // // The specified path does not contain any applicable device INFs. // // // MessageId: SPAPI_E_NO_CLASSINSTALL_PARAMS // // MessageText: // // No class installer parameters have been set for the device information set or element. // // // MessageId: SPAPI_E_FILEQUEUE_LOCKED // // MessageText: // // The operation cannot be performed because the file queue is locked. // // // MessageId: SPAPI_E_BAD_SERVICE_INSTALLSECT // // MessageText: // // A service installation section in this INF is invalid. // // // MessageId: SPAPI_E_NO_CLASS_DRIVER_LIST // // MessageText: // // There is no class driver list for the device information element. // // // MessageId: SPAPI_E_NO_ASSOCIATED_SERVICE // // MessageText: // // The installation failed because a function driver was not specified for this device instance. // // // MessageId: SPAPI_E_NO_DEFAULT_DEVICE_INTERFACE // // MessageText: // // There is presently no default device interface designated for this interface class. // // // MessageId: SPAPI_E_DEVICE_INTERFACE_ACTIVE // // MessageText: // // The operation cannot be performed because the device interface is currently active. // // // MessageId: SPAPI_E_DEVICE_INTERFACE_REMOVED // // MessageText: // // The operation cannot be performed because the device interface has been removed from the system. // // // MessageId: SPAPI_E_BAD_INTERFACE_INSTALLSECT // // MessageText: // // An interface installation section in this INF is invalid. // // // MessageId: SPAPI_E_NO_SUCH_INTERFACE_CLASS // // MessageText: // // This interface class does not exist in the system. // // // MessageId: SPAPI_E_INVALID_REFERENCE_STRING // // MessageText: // // The reference string supplied for this interface device is invalid. // // // MessageId: SPAPI_E_INVALID_MACHINENAME // // MessageText: // // The specified machine name does not conform to UNC naming conventions. // // // MessageId: SPAPI_E_REMOTE_COMM_FAILURE // // MessageText: // // A general remote communication error occurred. // // // MessageId: SPAPI_E_MACHINE_UNAVAILABLE // // MessageText: // // The machine selected for remote communication is not available at this time. // // // MessageId: SPAPI_E_NO_CONFIGMGR_SERVICES // // MessageText: // // The Plug and Play service is not available on the remote machine. // // // MessageId: SPAPI_E_INVALID_PROPPAGE_PROVIDER // // MessageText: // // The property page provider registry entry is invalid. // // // MessageId: SPAPI_E_NO_SUCH_DEVICE_INTERFACE // // MessageText: // // The requested device interface is not present in the system. // // // MessageId: SPAPI_E_DI_POSTPROCESSING_REQUIRED // // MessageText: // // The device's co-installer has additional work to perform after installation is complete. // // // MessageId: SPAPI_E_INVALID_COINSTALLER // // MessageText: // // The device's co-installer is invalid. // // // MessageId: SPAPI_E_NO_COMPAT_DRIVERS // // MessageText: // // There are no compatible drivers for this device. // // // MessageId: SPAPI_E_NO_DEVICE_ICON // // MessageText: // // There is no icon that represents this device or device type. // // // MessageId: SPAPI_E_INVALID_INF_LOGCONFIG // // MessageText: // // A logical configuration specified in this INF is invalid. // // // MessageId: SPAPI_E_DI_DONT_INSTALL // // MessageText: // // The class installer has denied the request to install or upgrade this device. // // // MessageId: SPAPI_E_INVALID_FILTER_DRIVER // // MessageText: // // One of the filter drivers installed for this device is invalid. // // // MessageId: SPAPI_E_NON_WINDOWS_NT_DRIVER // // MessageText: // // The driver selected for this device does not support Windows Vista. // // // MessageId: SPAPI_E_NON_WINDOWS_DRIVER // // MessageText: // // The driver selected for this device does not support Windows. // // // MessageId: SPAPI_E_NO_CATALOG_FOR_OEM_INF // // MessageText: // // The third-party INF does not contain digital signature information. // // // MessageId: SPAPI_E_DEVINSTALL_QUEUE_NONNATIVE // // MessageText: // // An invalid attempt was made to use a device installation file queue for verification of digital signatures relative to other platforms. // // // MessageId: SPAPI_E_NOT_DISABLEABLE // // MessageText: // // The device cannot be disabled. // // // MessageId: SPAPI_E_CANT_REMOVE_DEVINST // // MessageText: // // The device could not be dynamically removed. // // // MessageId: SPAPI_E_INVALID_TARGET // // MessageText: // // Cannot copy to specified target. // // // MessageId: SPAPI_E_DRIVER_NONNATIVE // // MessageText: // // Driver is not intended for this platform. // // // MessageId: SPAPI_E_IN_WOW64 // // MessageText: // // Operation not allowed in WOW64. // // // MessageId: SPAPI_E_SET_SYSTEM_RESTORE_POINT // // MessageText: // // The operation involving unsigned file copying was rolled back, so that a system restore point could be set. // // // MessageId: SPAPI_E_INCORRECTLY_COPIED_INF // // MessageText: // // An INF was copied into the Windows INF directory in an improper manner. // // // MessageId: SPAPI_E_SCE_DISABLED // // MessageText: // // The Security Configuration Editor (SCE) APIs have been disabled on this Embedded product. // // // MessageId: SPAPI_E_UNKNOWN_EXCEPTION // // MessageText: // // An unknown exception was encountered. // // // MessageId: SPAPI_E_PNP_REGISTRY_ERROR // // MessageText: // // A problem was encountered when accessing the Plug and Play registry database. // // // MessageId: SPAPI_E_REMOTE_REQUEST_UNSUPPORTED // // MessageText: // // The requested operation is not supported for a remote machine. // // // MessageId: SPAPI_E_NOT_AN_INSTALLED_OEM_INF // // MessageText: // // The specified file is not an installed OEM INF. // // // MessageId: SPAPI_E_INF_IN_USE_BY_DEVICES // // MessageText: // // One or more devices are presently installed using the specified INF. // // // MessageId: SPAPI_E_DI_FUNCTION_OBSOLETE // // MessageText: // // The requested device install operation is obsolete. // // // MessageId: SPAPI_E_NO_AUTHENTICODE_CATALOG // // MessageText: // // A file could not be verified because it does not have an associated catalog signed via Authenticode(tm). // // // MessageId: SPAPI_E_AUTHENTICODE_DISALLOWED // // MessageText: // // Authenticode(tm) signature verification is not supported for the specified INF. // // // MessageId: SPAPI_E_AUTHENTICODE_TRUSTED_PUBLISHER // // MessageText: // // The INF was signed with an Authenticode(tm) catalog from a trusted publisher. // // // MessageId: SPAPI_E_AUTHENTICODE_TRUST_NOT_ESTABLISHED // // MessageText: // // The publisher of an Authenticode(tm) signed catalog has not yet been established as trusted. // // // MessageId: SPAPI_E_AUTHENTICODE_PUBLISHER_NOT_TRUSTED // // MessageText: // // The publisher of an Authenticode(tm) signed catalog was not established as trusted. // // // MessageId: SPAPI_E_SIGNATURE_OSATTRIBUTE_MISMATCH // // MessageText: // // The software was tested for compliance with Windows Logo requirements on a different version of Windows, and may not be compatible with this version. // // // MessageId: SPAPI_E_ONLY_VALIDATE_VIA_AUTHENTICODE // // MessageText: // // The file may only be validated by a catalog signed via Authenticode(tm). // // // MessageId: SPAPI_E_DEVICE_INSTALLER_NOT_READY // // MessageText: // // One of the installers for this device cannot perform the installation at this time. // // // MessageId: SPAPI_E_DRIVER_STORE_ADD_FAILED // // MessageText: // // A problem was encountered while attempting to add the driver to the store. // // // MessageId: SPAPI_E_DEVICE_INSTALL_BLOCKED // // MessageText: // // The installation of this device is forbidden by system policy. Contact your system administrator. // // // MessageId: SPAPI_E_DRIVER_INSTALL_BLOCKED // // MessageText: // // The installation of this driver is forbidden by system policy. Contact your system administrator. // // // MessageId: SPAPI_E_WRONG_INF_TYPE // // MessageText: // // The specified INF is the wrong type for this operation. // // // MessageId: SPAPI_E_FILE_HASH_NOT_IN_CATALOG // // MessageText: // // The hash for the file is not present in the specified catalog file. The file is likely corrupt or the victim of tampering. // // // MessageId: SPAPI_E_DRIVER_STORE_DELETE_FAILED // // MessageText: // // A problem was encountered while attempting to delete the driver from the store. // // // MessageId: SPAPI_E_UNRECOVERABLE_STACK_OVERFLOW // // MessageText: // // An unrecoverable stack overflow was encountered. // // // MessageId: SPAPI_E_ERROR_NOT_INSTALLED // // MessageText: // // No installed components were detected. // // ***************** // FACILITY_SCARD // ***************** // // ============================= // Facility SCARD Error Messages // ============================= // // // MessageId: SCARD_F_INTERNAL_ERROR // // MessageText: // // An internal consistency check failed. // // // MessageId: SCARD_E_CANCELLED // // MessageText: // // The action was cancelled by an SCardCancel request. // // // MessageId: SCARD_E_INVALID_HANDLE // // MessageText: // // The supplied handle was invalid. // // // MessageId: SCARD_E_INVALID_PARAMETER // // MessageText: // // One or more of the supplied parameters could not be properly interpreted. // // // MessageId: SCARD_E_INVALID_TARGET // // MessageText: // // Registry startup information is missing or invalid. // // // MessageId: SCARD_E_NO_MEMORY // // MessageText: // // Not enough memory available to complete this command. // // // MessageId: SCARD_F_WAITED_TOO_LONG // // MessageText: // // An internal consistency timer has expired. // // // MessageId: SCARD_E_INSUFFICIENT_BUFFER // // MessageText: // // The data buffer to receive returned data is too small for the returned data. // // // MessageId: SCARD_E_UNKNOWN_READER // // MessageText: // // The specified reader name is not recognized. // // // MessageId: SCARD_E_TIMEOUT // // MessageText: // // The user-specified timeout value has expired. // // // MessageId: SCARD_E_SHARING_VIOLATION // // MessageText: // // The smart card cannot be accessed because of other connections outstanding. // // // MessageId: SCARD_E_NO_SMARTCARD // // MessageText: // // The operation requires a Smart Card, but no Smart Card is currently in the device. // // // MessageId: SCARD_E_UNKNOWN_CARD // // MessageText: // // The specified smart card name is not recognized. // // // MessageId: SCARD_E_CANT_DISPOSE // // MessageText: // // The system could not dispose of the media in the requested manner. // // // MessageId: SCARD_E_PROTO_MISMATCH // // MessageText: // // The requested protocols are incompatible with the protocol currently in use with the smart card. // // // MessageId: SCARD_E_NOT_READY // // MessageText: // // The reader or smart card is not ready to accept commands. // // // MessageId: SCARD_E_INVALID_VALUE // // MessageText: // // One or more of the supplied parameters values could not be properly interpreted. // // // MessageId: SCARD_E_SYSTEM_CANCELLED // // MessageText: // // The action was cancelled by the system, presumably to log off or shut down. // // // MessageId: SCARD_F_COMM_ERROR // // MessageText: // // An internal communications error has been detected. // // // MessageId: SCARD_F_UNKNOWN_ERROR // // MessageText: // // An internal error has been detected, but the source is unknown. // // // MessageId: SCARD_E_INVALID_ATR // // MessageText: // // An ATR obtained from the registry is not a valid ATR string. // // // MessageId: SCARD_E_NOT_TRANSACTED // // MessageText: // // An attempt was made to end a non-existent transaction. // // // MessageId: SCARD_E_READER_UNAVAILABLE // // MessageText: // // The specified reader is not currently available for use. // // // MessageId: SCARD_P_SHUTDOWN // // MessageText: // // The operation has been aborted to allow the server application to exit. // // // MessageId: SCARD_E_PCI_TOO_SMALL // // MessageText: // // The PCI Receive buffer was too small. // // // MessageId: SCARD_E_READER_UNSUPPORTED // // MessageText: // // The reader driver does not meet minimal requirements for support. // // // MessageId: SCARD_E_DUPLICATE_READER // // MessageText: // // The reader driver did not produce a unique reader name. // // // MessageId: SCARD_E_CARD_UNSUPPORTED // // MessageText: // // The smart card does not meet minimal requirements for support. // // // MessageId: SCARD_E_NO_SERVICE // // MessageText: // // The Smart card resource manager is not running. // // // MessageId: SCARD_E_SERVICE_STOPPED // // MessageText: // // The Smart card resource manager has shut down. // // // MessageId: SCARD_E_UNEXPECTED // // MessageText: // // An unexpected card error has occurred. // // // MessageId: SCARD_E_ICC_INSTALLATION // // MessageText: // // No Primary Provider can be found for the smart card. // // // MessageId: SCARD_E_ICC_CREATEORDER // // MessageText: // // The requested order of object creation is not supported. // // // MessageId: SCARD_E_UNSUPPORTED_FEATURE // // MessageText: // // This smart card does not support the requested feature. // // // MessageId: SCARD_E_DIR_NOT_FOUND // // MessageText: // // The identified directory does not exist in the smart card. // // // MessageId: SCARD_E_FILE_NOT_FOUND // // MessageText: // // The identified file does not exist in the smart card. // // // MessageId: SCARD_E_NO_DIR // // MessageText: // // The supplied path does not represent a smart card directory. // // // MessageId: SCARD_E_NO_FILE // // MessageText: // // The supplied path does not represent a smart card file. // // // MessageId: SCARD_E_NO_ACCESS // // MessageText: // // Access is denied to this file. // // // MessageId: SCARD_E_WRITE_TOO_MANY // // MessageText: // // The smartcard does not have enough memory to store the information. // // // MessageId: SCARD_E_BAD_SEEK // // MessageText: // // There was an error trying to set the smart card file object pointer. // // // MessageId: SCARD_E_INVALID_CHV // // MessageText: // // The supplied PIN is incorrect. // // // MessageId: SCARD_E_UNKNOWN_RES_MNG // // MessageText: // // An unrecognized error code was returned from a layered component. // // // MessageId: SCARD_E_NO_SUCH_CERTIFICATE // // MessageText: // // The requested certificate does not exist. // // // MessageId: SCARD_E_CERTIFICATE_UNAVAILABLE // // MessageText: // // The requested certificate could not be obtained. // // // MessageId: SCARD_E_NO_READERS_AVAILABLE // // MessageText: // // Cannot find a smart card reader. // // // MessageId: SCARD_E_COMM_DATA_LOST // // MessageText: // // A communications error with the smart card has been detected. Retry the operation. // // // MessageId: SCARD_E_NO_KEY_CONTAINER // // MessageText: // // The requested key container does not exist on the smart card. // // // MessageId: SCARD_E_SERVER_TOO_BUSY // // MessageText: // // The Smart card resource manager is too busy to complete this operation. // // // These are warning codes. // // // MessageId: SCARD_W_UNSUPPORTED_CARD // // MessageText: // // The reader cannot communicate with the smart card, due to ATR configuration conflicts. // // // MessageId: SCARD_W_UNRESPONSIVE_CARD // // MessageText: // // The smart card is not responding to a reset. // // // MessageId: SCARD_W_UNPOWERED_CARD // // MessageText: // // Power has been removed from the smart card, so that further communication is not possible. // // // MessageId: SCARD_W_RESET_CARD // // MessageText: // // The smart card has been reset, so any shared state information is invalid. // // // MessageId: SCARD_W_REMOVED_CARD // // MessageText: // // The smart card has been removed, so that further communication is not possible. // // // MessageId: SCARD_W_SECURITY_VIOLATION // // MessageText: // // Access was denied because of a security violation. // // // MessageId: SCARD_W_WRONG_CHV // // MessageText: // // The card cannot be accessed because the wrong PIN was presented. // // // MessageId: SCARD_W_CHV_BLOCKED // // MessageText: // // The card cannot be accessed because the maximum number of PIN entry attempts has been reached. // // // MessageId: SCARD_W_EOF // // MessageText: // // The end of the smart card file has been reached. // // // MessageId: SCARD_W_CANCELLED_BY_USER // // MessageText: // // The action was cancelled by the user. // // // MessageId: SCARD_W_CARD_NOT_AUTHENTICATED // // MessageText: // // No PIN was presented to the smart card. // // // MessageId: SCARD_W_CACHE_ITEM_NOT_FOUND // // MessageText: // // The requested item could not be found in the cache. // // // MessageId: SCARD_W_CACHE_ITEM_STALE // // MessageText: // // The requested cache item is too old and was deleted from the cache. // // // MessageId: SCARD_W_CACHE_ITEM_TOO_BIG // // MessageText: // // The new cache item exceeds the maximum per-item size defined for the cache. // // ***************** // FACILITY_COMPLUS // ***************** // // =============================== // Facility COMPLUS Error Messages // =============================== // // // The following are the subranges within the COMPLUS facility // 0x400 - 0x4ff COMADMIN_E_CAT // 0x600 - 0x6ff COMQC errors // 0x700 - 0x7ff MSDTC errors // 0x800 - 0x8ff Other COMADMIN errors // // COMPLUS Admin errors // // // MessageId: COMADMIN_E_OBJECTERRORS // // MessageText: // // Errors occurred accessing one or more objects - the ErrorInfo collection may have more detail // // // MessageId: COMADMIN_E_OBJECTINVALID // // MessageText: // // One or more of the object's properties are missing or invalid // // // MessageId: COMADMIN_E_KEYMISSING // // MessageText: // // The object was not found in the catalog // // // MessageId: COMADMIN_E_ALREADYINSTALLED // // MessageText: // // The object is already registered // // // MessageId: COMADMIN_E_APP_FILE_WRITEFAIL // // MessageText: // // Error occurred writing to the application file // // // MessageId: COMADMIN_E_APP_FILE_READFAIL // // MessageText: // // Error occurred reading the application file // // // MessageId: COMADMIN_E_APP_FILE_VERSION // // MessageText: // // Invalid version number in application file // // // MessageId: COMADMIN_E_BADPATH // // MessageText: // // The file path is invalid // // // MessageId: COMADMIN_E_APPLICATIONEXISTS // // MessageText: // // The application is already installed // // // MessageId: COMADMIN_E_ROLEEXISTS // // MessageText: // // The role already exists // // // MessageId: COMADMIN_E_CANTCOPYFILE // // MessageText: // // An error occurred copying the file // // // MessageId: COMADMIN_E_NOUSER // // MessageText: // // One or more users are not valid // // // MessageId: COMADMIN_E_INVALIDUSERIDS // // MessageText: // // One or more users in the application file are not valid // // // MessageId: COMADMIN_E_NOREGISTRYCLSID // // MessageText: // // The component's CLSID is missing or corrupt // // // MessageId: COMADMIN_E_BADREGISTRYPROGID // // MessageText: // // The component's progID is missing or corrupt // // // MessageId: COMADMIN_E_AUTHENTICATIONLEVEL // // MessageText: // // Unable to set required authentication level for update request // // // MessageId: COMADMIN_E_USERPASSWDNOTVALID // // MessageText: // // The identity or password set on the application is not valid // // // MessageId: COMADMIN_E_CLSIDORIIDMISMATCH // // MessageText: // // Application file CLSIDs or IIDs do not match corresponding DLLs // // // MessageId: COMADMIN_E_REMOTEINTERFACE // // MessageText: // // Interface information is either missing or changed // // // MessageId: COMADMIN_E_DLLREGISTERSERVER // // MessageText: // // DllRegisterServer failed on component install // // // MessageId: COMADMIN_E_NOSERVERSHARE // // MessageText: // // No server file share available // // // MessageId: COMADMIN_E_DLLLOADFAILED // // MessageText: // // DLL could not be loaded // // // MessageId: COMADMIN_E_BADREGISTRYLIBID // // MessageText: // // The registered TypeLib ID is not valid // // // MessageId: COMADMIN_E_APPDIRNOTFOUND // // MessageText: // // Application install directory not found // // // MessageId: COMADMIN_E_REGISTRARFAILED // // MessageText: // // Errors occurred while in the component registrar // // // MessageId: COMADMIN_E_COMPFILE_DOESNOTEXIST // // MessageText: // // The file does not exist // // // MessageId: COMADMIN_E_COMPFILE_LOADDLLFAIL // // MessageText: // // The DLL could not be loaded // // // MessageId: COMADMIN_E_COMPFILE_GETCLASSOBJ // // MessageText: // // GetClassObject failed in the DLL // // // MessageId: COMADMIN_E_COMPFILE_CLASSNOTAVAIL // // MessageText: // // The DLL does not support the components listed in the TypeLib // // // MessageId: COMADMIN_E_COMPFILE_BADTLB // // MessageText: // // The TypeLib could not be loaded // // // MessageId: COMADMIN_E_COMPFILE_NOTINSTALLABLE // // MessageText: // // The file does not contain components or component information // // // MessageId: COMADMIN_E_NOTCHANGEABLE // // MessageText: // // Changes to this object and its sub-objects have been disabled // // // MessageId: COMADMIN_E_NOTDELETEABLE // // MessageText: // // The delete function has been disabled for this object // // // MessageId: COMADMIN_E_SESSION // // MessageText: // // The server catalog version is not supported // // // MessageId: COMADMIN_E_COMP_MOVE_LOCKED // // MessageText: // // The component move was disallowed, because the source or destination application is either a system application or currently locked against changes // // // MessageId: COMADMIN_E_COMP_MOVE_BAD_DEST // // MessageText: // // The component move failed because the destination application no longer exists // // // MessageId: COMADMIN_E_REGISTERTLB // // MessageText: // // The system was unable to register the TypeLib // // // MessageId: COMADMIN_E_SYSTEMAPP // // MessageText: // // This operation cannot be performed on the system application // // // MessageId: COMADMIN_E_COMPFILE_NOREGISTRAR // // MessageText: // // The component registrar referenced in this file is not available // // // MessageId: COMADMIN_E_COREQCOMPINSTALLED // // MessageText: // // A component in the same DLL is already installed // // // MessageId: COMADMIN_E_SERVICENOTINSTALLED // // MessageText: // // The service is not installed // // // MessageId: COMADMIN_E_PROPERTYSAVEFAILED // // MessageText: // // One or more property settings are either invalid or in conflict with each other // // // MessageId: COMADMIN_E_OBJECTEXISTS // // MessageText: // // The object you are attempting to add or rename already exists // // // MessageId: COMADMIN_E_COMPONENTEXISTS // // MessageText: // // The component already exists // // // MessageId: COMADMIN_E_REGFILE_CORRUPT // // MessageText: // // The registration file is corrupt // // // MessageId: COMADMIN_E_PROPERTY_OVERFLOW // // MessageText: // // The property value is too large // // // MessageId: COMADMIN_E_NOTINREGISTRY // // MessageText: // // Object was not found in registry // // // MessageId: COMADMIN_E_OBJECTNOTPOOLABLE // // MessageText: // // This object is not poolable // // // MessageId: COMADMIN_E_APPLID_MATCHES_CLSID // // MessageText: // // A CLSID with the same GUID as the new application ID is already installed on this machine // // // MessageId: COMADMIN_E_ROLE_DOES_NOT_EXIST // // MessageText: // // A role assigned to a component, interface, or method did not exist in the application // // // MessageId: COMADMIN_E_START_APP_NEEDS_COMPONENTS // // MessageText: // // You must have components in an application in order to start the application // // // MessageId: COMADMIN_E_REQUIRES_DIFFERENT_PLATFORM // // MessageText: // // This operation is not enabled on this platform // // // MessageId: COMADMIN_E_CAN_NOT_EXPORT_APP_PROXY // // MessageText: // // Application Proxy is not exportable // // // MessageId: COMADMIN_E_CAN_NOT_START_APP // // MessageText: // // Failed to start application because it is either a library application or an application proxy // // // MessageId: COMADMIN_E_CAN_NOT_EXPORT_SYS_APP // // MessageText: // // System application is not exportable // // // MessageId: COMADMIN_E_CANT_SUBSCRIBE_TO_COMPONENT // // MessageText: // // Cannot subscribe to this component (the component may have been imported) // // // MessageId: COMADMIN_E_EVENTCLASS_CANT_BE_SUBSCRIBER // // MessageText: // // An event class cannot also be a subscriber component // // // MessageId: COMADMIN_E_LIB_APP_PROXY_INCOMPATIBLE // // MessageText: // // Library applications and application proxies are incompatible // // // MessageId: COMADMIN_E_BASE_PARTITION_ONLY // // MessageText: // // This function is valid for the base partition only // // // MessageId: COMADMIN_E_START_APP_DISABLED // // MessageText: // // You cannot start an application that has been disabled // // // MessageId: COMADMIN_E_CAT_DUPLICATE_PARTITION_NAME // // MessageText: // // The specified partition name is already in use on this computer // // // MessageId: COMADMIN_E_CAT_INVALID_PARTITION_NAME // // MessageText: // // The specified partition name is invalid. Check that the name contains at least one visible character // // // MessageId: COMADMIN_E_CAT_PARTITION_IN_USE // // MessageText: // // The partition cannot be deleted because it is the default partition for one or more users // // // MessageId: COMADMIN_E_FILE_PARTITION_DUPLICATE_FILES // // MessageText: // // The partition cannot be exported, because one or more components in the partition have the same file name // // // MessageId: COMADMIN_E_CAT_IMPORTED_COMPONENTS_NOT_ALLOWED // // MessageText: // // Applications that contain one or more imported components cannot be installed into a non-base partition // // // MessageId: COMADMIN_E_AMBIGUOUS_APPLICATION_NAME // // MessageText: // // The application name is not unique and cannot be resolved to an application id // // // MessageId: COMADMIN_E_AMBIGUOUS_PARTITION_NAME // // MessageText: // // The partition name is not unique and cannot be resolved to a partition id // // // MessageId: COMADMIN_E_REGDB_NOTINITIALIZED // // MessageText: // // The COM+ registry database has not been initialized // // // MessageId: COMADMIN_E_REGDB_NOTOPEN // // MessageText: // // The COM+ registry database is not open // // // MessageId: COMADMIN_E_REGDB_SYSTEMERR // // MessageText: // // The COM+ registry database detected a system error // // // MessageId: COMADMIN_E_REGDB_ALREADYRUNNING // // MessageText: // // The COM+ registry database is already running // // // MessageId: COMADMIN_E_MIG_VERSIONNOTSUPPORTED // // MessageText: // // This version of the COM+ registry database cannot be migrated // // // MessageId: COMADMIN_E_MIG_SCHEMANOTFOUND // // MessageText: // // The schema version to be migrated could not be found in the COM+ registry database // // // MessageId: COMADMIN_E_CAT_BITNESSMISMATCH // // MessageText: // // There was a type mismatch between binaries // // // MessageId: COMADMIN_E_CAT_UNACCEPTABLEBITNESS // // MessageText: // // A binary of unknown or invalid type was provided // // // MessageId: COMADMIN_E_CAT_WRONGAPPBITNESS // // MessageText: // // There was a type mismatch between a binary and an application // // // MessageId: COMADMIN_E_CAT_PAUSE_RESUME_NOT_SUPPORTED // // MessageText: // // The application cannot be paused or resumed // // // MessageId: COMADMIN_E_CAT_SERVERFAULT // // MessageText: // // The COM+ Catalog Server threw an exception during execution // // // COMPLUS Queued component errors // // // MessageId: COMQC_E_APPLICATION_NOT_QUEUED // // MessageText: // // Only COM+ Applications marked "queued" can be invoked using the "queue" moniker // // // MessageId: COMQC_E_NO_QUEUEABLE_INTERFACES // // MessageText: // // At least one interface must be marked "queued" in order to create a queued component instance with the "queue" moniker // // // MessageId: COMQC_E_QUEUING_SERVICE_NOT_AVAILABLE // // MessageText: // // MSMQ is required for the requested operation and is not installed // // // MessageId: COMQC_E_NO_IPERSISTSTREAM // // MessageText: // // Unable to marshal an interface that does not support IPersistStream // // // MessageId: COMQC_E_BAD_MESSAGE // // MessageText: // // The message is improperly formatted or was damaged in transit // // // MessageId: COMQC_E_UNAUTHENTICATED // // MessageText: // // An unauthenticated message was received by an application that accepts only authenticated messages // // // MessageId: COMQC_E_UNTRUSTED_ENQUEUER // // MessageText: // // The message was requeued or moved by a user not in the "QC Trusted User" role // // // The range 0x700-0x7ff is reserved for MSDTC errors. // // // MessageId: MSDTC_E_DUPLICATE_RESOURCE // // MessageText: // // Cannot create a duplicate resource of type Distributed Transaction Coordinator // // // More COMADMIN errors from 0x8** // // // MessageId: COMADMIN_E_OBJECT_PARENT_MISSING // // MessageText: // // One of the objects being inserted or updated does not belong to a valid parent collection // // // MessageId: COMADMIN_E_OBJECT_DOES_NOT_EXIST // // MessageText: // // One of the specified objects cannot be found // // // MessageId: COMADMIN_E_APP_NOT_RUNNING // // MessageText: // // The specified application is not currently running // // // MessageId: COMADMIN_E_INVALID_PARTITION // // MessageText: // // The partition(s) specified are not valid. // // // MessageId: COMADMIN_E_SVCAPP_NOT_POOLABLE_OR_RECYCLABLE // // MessageText: // // COM+ applications that run as NT service may not be pooled or recycled // // // MessageId: COMADMIN_E_USER_IN_SET // // MessageText: // // One or more users are already assigned to a local partition set. // // // MessageId: COMADMIN_E_CANTRECYCLELIBRARYAPPS // // MessageText: // // Library applications may not be recycled. // // // MessageId: COMADMIN_E_CANTRECYCLESERVICEAPPS // // MessageText: // // Applications running as NT services may not be recycled. // // // MessageId: COMADMIN_E_PROCESSALREADYRECYCLED // // MessageText: // // The process has already been recycled. // // // MessageId: COMADMIN_E_PAUSEDPROCESSMAYNOTBERECYCLED // // MessageText: // // A paused process may not be recycled. // // // MessageId: COMADMIN_E_CANTMAKEINPROCSERVICE // // MessageText: // // Library applications may not be NT services. // // // MessageId: COMADMIN_E_PROGIDINUSEBYCLSID // // MessageText: // // The ProgID provided to the copy operation is invalid. The ProgID is in use by another registered CLSID. // // // MessageId: COMADMIN_E_DEFAULT_PARTITION_NOT_IN_SET // // MessageText: // // The partition specified as default is not a member of the partition set. // // // MessageId: COMADMIN_E_RECYCLEDPROCESSMAYNOTBEPAUSED // // MessageText: // // A recycled process may not be paused. // // // MessageId: COMADMIN_E_PARTITION_ACCESSDENIED // // MessageText: // // Access to the specified partition is denied. // // // MessageId: COMADMIN_E_PARTITION_MSI_ONLY // // MessageText: // // Only Application Files (*.MSI files) can be installed into partitions. // // // MessageId: COMADMIN_E_LEGACYCOMPS_NOT_ALLOWED_IN_1_0_FORMAT // // MessageText: // // Applications containing one or more legacy components may not be exported to 1.0 format. // // // MessageId: COMADMIN_E_LEGACYCOMPS_NOT_ALLOWED_IN_NONBASE_PARTITIONS // // MessageText: // // Legacy components may not exist in non-base partitions. // // // MessageId: COMADMIN_E_COMP_MOVE_SOURCE // // MessageText: // // A component cannot be moved (or copied) from the System Application, an application proxy or a non-changeable application // // // MessageId: COMADMIN_E_COMP_MOVE_DEST // // MessageText: // // A component cannot be moved (or copied) to the System Application, an application proxy or a non-changeable application // // // MessageId: COMADMIN_E_COMP_MOVE_PRIVATE // // MessageText: // // A private component cannot be moved (or copied) to a library application or to the base partition // // // MessageId: COMADMIN_E_BASEPARTITION_REQUIRED_IN_SET // // MessageText: // // The Base Application Partition exists in all partition sets and cannot be removed. // // // MessageId: COMADMIN_E_CANNOT_ALIAS_EVENTCLASS // // MessageText: // // Alas, Event Class components cannot be aliased. // // // MessageId: COMADMIN_E_PRIVATE_ACCESSDENIED // // MessageText: // // Access is denied because the component is private. // // // MessageId: COMADMIN_E_SAFERINVALID // // MessageText: // // The specified SAFER level is invalid. // // // MessageId: COMADMIN_E_REGISTRY_ACCESSDENIED // // MessageText: // // The specified user cannot write to the system registry // // // MessageId: COMADMIN_E_PARTITIONS_DISABLED // // MessageText: // // COM+ partitions are currently disabled. // // *********************** // FACILITY_USERMODE_FILTER_MANAGER // *********************** // // Translation macro for converting: // NTSTATUS --> HRESULT // // // MessageId: ERROR_FLT_IO_COMPLETE // // MessageText: // // The IO was completed by a filter. // // // MessageId: ERROR_FLT_NO_HANDLER_DEFINED // // MessageText: // // A handler was not defined by the filter for this operation. // // // MessageId: ERROR_FLT_CONTEXT_ALREADY_DEFINED // // MessageText: // // A context is already defined for this object. // // // MessageId: ERROR_FLT_INVALID_ASYNCHRONOUS_REQUEST // // MessageText: // // Asynchronous requests are not valid for this operation. // // // MessageId: ERROR_FLT_DISALLOW_FAST_IO // // MessageText: // // Disallow the Fast IO path for this operation. // // // MessageId: ERROR_FLT_INVALID_NAME_REQUEST // // MessageText: // // An invalid name request was made. The name requested cannot be retrieved at this time. // // // MessageId: ERROR_FLT_NOT_SAFE_TO_POST_OPERATION // // MessageText: // // Posting this operation to a worker thread for further processing is not safe at this time because it could lead to a system deadlock. // // // MessageId: ERROR_FLT_NOT_INITIALIZED // // MessageText: // // The Filter Manager was not initialized when a filter tried to register. Make sure that the Filter Manager is getting loaded as a driver. // // // MessageId: ERROR_FLT_FILTER_NOT_READY // // MessageText: // // The filter is not ready for attachment to volumes because it has not finished initializing (FltStartFiltering has not been called). // // // MessageId: ERROR_FLT_POST_OPERATION_CLEANUP // // MessageText: // // The filter must cleanup any operation specific context at this time because it is being removed from the system before the operation is completed by the lower drivers. // // // MessageId: ERROR_FLT_INTERNAL_ERROR // // MessageText: // // The Filter Manager had an internal error from which it cannot recover, therefore the operation has been failed. This is usually the result of a filter returning an invalid value from a pre-operation callback. // // // MessageId: ERROR_FLT_DELETING_OBJECT // // MessageText: // // The object specified for this action is in the process of being deleted, therefore the action requested cannot be completed at this time. // // // MessageId: ERROR_FLT_MUST_BE_NONPAGED_POOL // // MessageText: // // Non-paged pool must be used for this type of context. // // // MessageId: ERROR_FLT_DUPLICATE_ENTRY // // MessageText: // // A duplicate handler definition has been provided for an operation. // // // MessageId: ERROR_FLT_CBDQ_DISABLED // // MessageText: // // The callback data queue has been disabled. // // // MessageId: ERROR_FLT_DO_NOT_ATTACH // // MessageText: // // Do not attach the filter to the volume at this time. // // // MessageId: ERROR_FLT_DO_NOT_DETACH // // MessageText: // // Do not detach the filter from the volume at this time. // // // MessageId: ERROR_FLT_INSTANCE_ALTITUDE_COLLISION // // MessageText: // // An instance already exists at this altitude on the volume specified. // // // MessageId: ERROR_FLT_INSTANCE_NAME_COLLISION // // MessageText: // // An instance already exists with this name on the volume specified. // // // MessageId: ERROR_FLT_FILTER_NOT_FOUND // // MessageText: // // The system could not find the filter specified. // // // MessageId: ERROR_FLT_VOLUME_NOT_FOUND // // MessageText: // // The system could not find the volume specified. // // // MessageId: ERROR_FLT_INSTANCE_NOT_FOUND // // MessageText: // // The system could not find the instance specified. // // // MessageId: ERROR_FLT_CONTEXT_ALLOCATION_NOT_FOUND // // MessageText: // // No registered context allocation definition was found for the given request. // // // MessageId: ERROR_FLT_INVALID_CONTEXT_REGISTRATION // // MessageText: // // An invalid parameter was specified during context registration. // // // MessageId: ERROR_FLT_NAME_CACHE_MISS // // MessageText: // // The name requested was not found in Filter Manager's name cache and could not be retrieved from the file system. // // // MessageId: ERROR_FLT_NO_DEVICE_OBJECT // // MessageText: // // The requested device object does not exist for the given volume. // // // MessageId: ERROR_FLT_VOLUME_ALREADY_MOUNTED // // MessageText: // // The specified volume is already mounted. // // // MessageId: ERROR_FLT_ALREADY_ENLISTED // // MessageText: // // The specified Transaction Context is already enlisted in a transaction // // // MessageId: ERROR_FLT_CONTEXT_ALREADY_LINKED // // MessageText: // // The specifiec context is already attached to another object // // // MessageId: ERROR_FLT_NO_WAITER_FOR_REPLY // // MessageText: // // No waiter is present for the filter's reply to this message. // // // =============================== // Facility Graphics Error Messages // =============================== // // // The following are the subranges within the Graphics facility // // 0x0000 - 0x0fff Display Driver Loader driver & Video Port errors (displdr.sys, videoprt.sys) // 0x1000 - 0x1fff Monitor Class Function driver errors (monitor.sys) // 0x2000 - 0x2fff Windows Graphics Kernel Subsystem errors (dxgkrnl.sys) // 0x3000 - 0x3fff Desktop Window Manager errors // 0x2000 - 0x20ff Common errors // 0x2100 - 0x21ff Video Memory Manager (VidMM) subsystem errors // 0x2200 - 0x22ff Video GPU Scheduler (VidSch) subsystem errors // 0x2300 - 0x23ff Video Display Mode Management (VidDMM) subsystem errors // // Display Driver Loader driver & Video Port errors {0x0000..0x0fff} // // // MessageId: ERROR_HUNG_DISPLAY_DRIVER_THREAD // // MessageText: // // {Display Driver Stopped Responding} // The %hs display driver has stopped working normally. Save your work and reboot the system to restore full display functionality. // The next time you reboot the machine a dialog will be displayed giving you a chance to report this failure to Microsoft. // // // Desktop Window Manager errors {0x3000..0x3fff} // // // MessageId: DWM_E_COMPOSITIONDISABLED // // MessageText: // // {Desktop composition is disabled} // The operation could not be completed because desktop composition is disabled. // // // MessageId: DWM_E_REMOTING_NOT_SUPPORTED // // MessageText: // // {Some desktop composition APIs are not supported while remoting} // The operation is not supported while running in a remote session. // // // MessageId: DWM_E_NO_REDIRECTION_SURFACE_AVAILABLE // // MessageText: // // {No DWM redirection surface is available} // The DWM was unable to provide a redireciton surface to complete the DirectX present. // // // MessageId: DWM_E_NOT_QUEUING_PRESENTS // // MessageText: // // {DWM is not queuing presents for the specified window} // The window specified is not currently using queued presents. // // // Monitor class function driver errors {0x1000..0x1fff} // // // MessageId: ERROR_MONITOR_NO_DESCRIPTOR // // MessageText: // // Monitor descriptor could not be obtained. // // // MessageId: ERROR_MONITOR_UNKNOWN_DESCRIPTOR_FORMAT // // MessageText: // // Format of the obtained monitor descriptor is not supported by this release. // // // MessageId: ERROR_MONITOR_INVALID_DESCRIPTOR_CHECKSUM // // MessageText: // // Checksum of the obtained monitor descriptor is invalid. // // // MessageId: ERROR_MONITOR_INVALID_STANDARD_TIMING_BLOCK // // MessageText: // // Monitor descriptor contains an invalid standard timing block. // // // MessageId: ERROR_MONITOR_WMI_DATABLOCK_REGISTRATION_FAILED // // MessageText: // // WMI data block registration failed for one of the MSMonitorClass WMI subclasses. // // // MessageId: ERROR_MONITOR_INVALID_SERIAL_NUMBER_MONDSC_BLOCK // // MessageText: // // Provided monitor descriptor block is either corrupted or does not contain monitor's detailed serial number. // // // MessageId: ERROR_MONITOR_INVALID_USER_FRIENDLY_MONDSC_BLOCK // // MessageText: // // Provided monitor descriptor block is either corrupted or does not contain monitor's user friendly name. // // // MessageId: ERROR_MONITOR_NO_MORE_DESCRIPTOR_DATA // // MessageText: // // There is no monitor descriptor data at the specified (offset, size) region. // // // MessageId: ERROR_MONITOR_INVALID_DETAILED_TIMING_BLOCK // // MessageText: // // Monitor descriptor contains an invalid detailed timing block. // // // Windows Graphics Kernel Subsystem errors {0x2000..0x2fff} // // TODO: Add DXG Win32 errors here // // Common errors {0x2000..0x20ff} // // // MessageId: ERROR_GRAPHICS_NOT_EXCLUSIVE_MODE_OWNER // // MessageText: // // Exclusive mode ownership is needed to create unmanaged primary allocation. // // // MessageId: ERROR_GRAPHICS_INSUFFICIENT_DMA_BUFFER // // MessageText: // // The driver needs more DMA buffer space in order to complete the requested operation. // // // MessageId: ERROR_GRAPHICS_INVALID_DISPLAY_ADAPTER // // MessageText: // // Specified display adapter handle is invalid. // // // MessageId: ERROR_GRAPHICS_ADAPTER_WAS_RESET // // MessageText: // // Specified display adapter and all of its state has been reset. // // // MessageId: ERROR_GRAPHICS_INVALID_DRIVER_MODEL // // MessageText: // // The driver stack doesn't match the expected driver model. // // // MessageId: ERROR_GRAPHICS_PRESENT_MODE_CHANGED // // MessageText: // // Present happened but ended up into the changed desktop mode // // // MessageId: ERROR_GRAPHICS_PRESENT_OCCLUDED // // MessageText: // // Nothing to present due to desktop occlusion // // // MessageId: ERROR_GRAPHICS_PRESENT_DENIED // // MessageText: // // Not able to present due to denial of desktop access // // // MessageId: ERROR_GRAPHICS_CANNOTCOLORCONVERT // // MessageText: // // Not able to present with color convertion // // // MessageId: ERROR_GRAPHICS_DRIVER_MISMATCH // // MessageText: // // The kernel driver detected a version mismatch between it and the user mode driver. // // // MessageId: ERROR_GRAPHICS_PARTIAL_DATA_POPULATED // // MessageText: // // Specified buffer is not big enough to contain entire requested dataset. Partial data populated upto the size of the buffer. // Caller needs to provide buffer of size as specified in the partially populated buffer's content (interface specific). // // // Video Memory Manager (VidMM) subsystem errors {0x2100..0x21ff} // // // MessageId: ERROR_GRAPHICS_NO_VIDEO_MEMORY // // MessageText: // // Not enough video memory available to complete the operation. // // // MessageId: ERROR_GRAPHICS_CANT_LOCK_MEMORY // // MessageText: // // Couldn't probe and lock the underlying memory of an allocation. // // // MessageId: ERROR_GRAPHICS_ALLOCATION_BUSY // // MessageText: // // The allocation is currently busy. // // // MessageId: ERROR_GRAPHICS_TOO_MANY_REFERENCES // // MessageText: // // An object being referenced has reach the maximum reference count already and can't be reference further. // // // MessageId: ERROR_GRAPHICS_TRY_AGAIN_LATER // // MessageText: // // A problem couldn't be solved due to some currently existing condition. The problem should be tried again later. // // // MessageId: ERROR_GRAPHICS_TRY_AGAIN_NOW // // MessageText: // // A problem couldn't be solved due to some currently existing condition. The problem should be tried again immediately. // // // MessageId: ERROR_GRAPHICS_ALLOCATION_INVALID // // MessageText: // // The allocation is invalid. // // // MessageId: ERROR_GRAPHICS_UNSWIZZLING_APERTURE_UNAVAILABLE // // MessageText: // // No more unswizzling aperture are currently available. // // // MessageId: ERROR_GRAPHICS_UNSWIZZLING_APERTURE_UNSUPPORTED // // MessageText: // // The current allocation can't be unswizzled by an aperture. // // // MessageId: ERROR_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION // // MessageText: // // The request failed because a pinned allocation can't be evicted. // // // MessageId: ERROR_GRAPHICS_INVALID_ALLOCATION_USAGE // // MessageText: // // The allocation can't be used from it's current segment location for the specified operation. // // // MessageId: ERROR_GRAPHICS_CANT_RENDER_LOCKED_ALLOCATION // // MessageText: // // A locked allocation can't be used in the current command buffer. // // // MessageId: ERROR_GRAPHICS_ALLOCATION_CLOSED // // MessageText: // // The allocation being referenced has been closed permanently. // // // MessageId: ERROR_GRAPHICS_INVALID_ALLOCATION_INSTANCE // // MessageText: // // An invalid allocation instance is being referenced. // // // MessageId: ERROR_GRAPHICS_INVALID_ALLOCATION_HANDLE // // MessageText: // // An invalid allocation handle is being referenced. // // // MessageId: ERROR_GRAPHICS_WRONG_ALLOCATION_DEVICE // // MessageText: // // The allocation being referenced doesn't belong to the current device. // // // MessageId: ERROR_GRAPHICS_ALLOCATION_CONTENT_LOST // // MessageText: // // The specified allocation lost its content. // // // Video GPU Scheduler (VidSch) subsystem errors {0x2200..0x22ff} // // // MessageId: ERROR_GRAPHICS_GPU_EXCEPTION_ON_DEVICE // // MessageText: // // GPU exception is detected on the given device. The device is not able to be scheduled. // // // Video Present Network Management (VidPNMgr) subsystem errors {0x2300..0x23ff} // // // MessageId: ERROR_GRAPHICS_INVALID_VIDPN_TOPOLOGY // // MessageText: // // Specified VidPN topology is invalid. // // // MessageId: ERROR_GRAPHICS_VIDPN_TOPOLOGY_NOT_SUPPORTED // // MessageText: // // Specified VidPN topology is valid but is not supported by this model of the display adapter. // // // MessageId: ERROR_GRAPHICS_VIDPN_TOPOLOGY_CURRENTLY_NOT_SUPPORTED // // MessageText: // // Specified VidPN topology is valid but is not supported by the display adapter at this time, due to current allocation of its resources. // // // MessageId: ERROR_GRAPHICS_INVALID_VIDPN // // MessageText: // // Specified VidPN handle is invalid. // // // MessageId: ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE // // MessageText: // // Specified video present source is invalid. // // // MessageId: ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET // // MessageText: // // Specified video present target is invalid. // // // MessageId: ERROR_GRAPHICS_VIDPN_MODALITY_NOT_SUPPORTED // // MessageText: // // Specified VidPN modality is not supported (e.g. at least two of the pinned modes are not cofunctional). // // // MessageId: ERROR_GRAPHICS_MODE_NOT_PINNED // // MessageText: // // No mode is pinned on the specified VidPN source/target. // // // MessageId: ERROR_GRAPHICS_INVALID_VIDPN_SOURCEMODESET // // MessageText: // // Specified VidPN source mode set is invalid. // // // MessageId: ERROR_GRAPHICS_INVALID_VIDPN_TARGETMODESET // // MessageText: // // Specified VidPN target mode set is invalid. // // // MessageId: ERROR_GRAPHICS_INVALID_FREQUENCY // // MessageText: // // Specified video signal frequency is invalid. // // // MessageId: ERROR_GRAPHICS_INVALID_ACTIVE_REGION // // MessageText: // // Specified video signal active region is invalid. // // // MessageId: ERROR_GRAPHICS_INVALID_TOTAL_REGION // // MessageText: // // Specified video signal total region is invalid. // // // MessageId: ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE_MODE // // MessageText: // // Specified video present source mode is invalid. // // // MessageId: ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET_MODE // // MessageText: // // Specified video present target mode is invalid. // // // MessageId: ERROR_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET // // MessageText: // // Pinned mode must remain in the set on VidPN's cofunctional modality enumeration. // // // MessageId: ERROR_GRAPHICS_PATH_ALREADY_IN_TOPOLOGY // // MessageText: // // Specified video present path is already in VidPN's topology. // // // MessageId: ERROR_GRAPHICS_MODE_ALREADY_IN_MODESET // // MessageText: // // Specified mode is already in the mode set. // // // MessageId: ERROR_GRAPHICS_INVALID_VIDEOPRESENTSOURCESET // // MessageText: // // Specified video present source set is invalid. // // // MessageId: ERROR_GRAPHICS_INVALID_VIDEOPRESENTTARGETSET // // MessageText: // // Specified video present target set is invalid. // // // MessageId: ERROR_GRAPHICS_SOURCE_ALREADY_IN_SET // // MessageText: // // Specified video present source is already in the video present source set. // // // MessageId: ERROR_GRAPHICS_TARGET_ALREADY_IN_SET // // MessageText: // // Specified video present target is already in the video present target set. // // // MessageId: ERROR_GRAPHICS_INVALID_VIDPN_PRESENT_PATH // // MessageText: // // Specified VidPN present path is invalid. // // // MessageId: ERROR_GRAPHICS_NO_RECOMMENDED_VIDPN_TOPOLOGY // // MessageText: // // Miniport has no recommendation for augmentation of the specified VidPN's topology. // // // MessageId: ERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGESET // // MessageText: // // Specified monitor frequency range set is invalid. // // // MessageId: ERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE // // MessageText: // // Specified monitor frequency range is invalid. // // // MessageId: ERROR_GRAPHICS_FREQUENCYRANGE_NOT_IN_SET // // MessageText: // // Specified frequency range is not in the specified monitor frequency range set. // // // MessageId: ERROR_GRAPHICS_NO_PREFERRED_MODE // // MessageText: // // Specified mode set does not specify preference for one of its modes. // // // MessageId: ERROR_GRAPHICS_FREQUENCYRANGE_ALREADY_IN_SET // // MessageText: // // Specified frequency range is already in the specified monitor frequency range set. // // // MessageId: ERROR_GRAPHICS_STALE_MODESET // // MessageText: // // Specified mode set is stale. Please reacquire the new mode set. // // // MessageId: ERROR_GRAPHICS_INVALID_MONITOR_SOURCEMODESET // // MessageText: // // Specified monitor source mode set is invalid. // // // MessageId: ERROR_GRAPHICS_INVALID_MONITOR_SOURCE_MODE // // MessageText: // // Specified monitor source mode is invalid. // // // MessageId: ERROR_GRAPHICS_NO_RECOMMENDED_FUNCTIONAL_VIDPN // // MessageText: // // Miniport does not have any recommendation regarding the request to provide a functional VidPN given the current display adapter configuration. // // // MessageId: ERROR_GRAPHICS_MODE_ID_MUST_BE_UNIQUE // // MessageText: // // ID of the specified mode is already used by another mode in the set. // // // MessageId: ERROR_GRAPHICS_EMPTY_ADAPTER_MONITOR_MODE_SUPPORT_INTERSECTION // // MessageText: // // System failed to determine a mode that is supported by both the display adapter and the monitor connected to it. // // // MessageId: ERROR_GRAPHICS_VIDEO_PRESENT_TARGETS_LESS_THAN_SOURCES // // MessageText: // // Number of video present targets must be greater than or equal to the number of video present sources. // // // MessageId: ERROR_GRAPHICS_PATH_NOT_IN_TOPOLOGY // // MessageText: // // Specified present path is not in VidPN's topology. // // // MessageId: ERROR_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_SOURCE // // MessageText: // // Display adapter must have at least one video present source. // // // MessageId: ERROR_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_TARGET // // MessageText: // // Display adapter must have at least one video present target. // // // MessageId: ERROR_GRAPHICS_INVALID_MONITORDESCRIPTORSET // // MessageText: // // Specified monitor descriptor set is invalid. // // // MessageId: ERROR_GRAPHICS_INVALID_MONITORDESCRIPTOR // // MessageText: // // Specified monitor descriptor is invalid. // // // MessageId: ERROR_GRAPHICS_MONITORDESCRIPTOR_NOT_IN_SET // // MessageText: // // Specified descriptor is not in the specified monitor descriptor set. // // // MessageId: ERROR_GRAPHICS_MONITORDESCRIPTOR_ALREADY_IN_SET // // MessageText: // // Specified descriptor is already in the specified monitor descriptor set. // // // MessageId: ERROR_GRAPHICS_MONITORDESCRIPTOR_ID_MUST_BE_UNIQUE // // MessageText: // // ID of the specified monitor descriptor is already used by another descriptor in the set. // // // MessageId: ERROR_GRAPHICS_INVALID_VIDPN_TARGET_SUBSET_TYPE // // MessageText: // // Specified video present target subset type is invalid. // // // MessageId: ERROR_GRAPHICS_RESOURCES_NOT_RELATED // // MessageText: // // Two or more of the specified resources are not related to each other, as defined by the interface semantics. // // // MessageId: ERROR_GRAPHICS_SOURCE_ID_MUST_BE_UNIQUE // // MessageText: // // ID of the specified video present source is already used by another source in the set. // // // MessageId: ERROR_GRAPHICS_TARGET_ID_MUST_BE_UNIQUE // // MessageText: // // ID of the specified video present target is already used by another target in the set. // // // MessageId: ERROR_GRAPHICS_NO_AVAILABLE_VIDPN_TARGET // // MessageText: // // Specified VidPN source cannot be used because there is no available VidPN target to connect it to. // // // MessageId: ERROR_GRAPHICS_MONITOR_COULD_NOT_BE_ASSOCIATED_WITH_ADAPTER // // MessageText: // // Newly arrived monitor could not be associated with a display adapter. // // // MessageId: ERROR_GRAPHICS_NO_VIDPNMGR // // MessageText: // // Display adapter in question does not have an associated VidPN manager. // // // MessageId: ERROR_GRAPHICS_NO_ACTIVE_VIDPN // // MessageText: // // VidPN manager of the display adapter in question does not have an active VidPN. // // // MessageId: ERROR_GRAPHICS_STALE_VIDPN_TOPOLOGY // // MessageText: // // Specified VidPN topology is stale. Please reacquire the new topology. // // // MessageId: ERROR_GRAPHICS_MONITOR_NOT_CONNECTED // // MessageText: // // There is no monitor connected on the specified video present target. // // // MessageId: ERROR_GRAPHICS_SOURCE_NOT_IN_TOPOLOGY // // MessageText: // // Specified source is not part of the specified VidPN's topology. // // // MessageId: ERROR_GRAPHICS_INVALID_PRIMARYSURFACE_SIZE // // MessageText: // // Specified primary surface size is invalid. // // // MessageId: ERROR_GRAPHICS_INVALID_VISIBLEREGION_SIZE // // MessageText: // // Specified visible region size is invalid. // // // MessageId: ERROR_GRAPHICS_INVALID_STRIDE // // MessageText: // // Specified stride is invalid. // // // MessageId: ERROR_GRAPHICS_INVALID_PIXELFORMAT // // MessageText: // // Specified pixel format is invalid. // // // MessageId: ERROR_GRAPHICS_INVALID_COLORBASIS // // MessageText: // // Specified color basis is invalid. // // // MessageId: ERROR_GRAPHICS_INVALID_PIXELVALUEACCESSMODE // // MessageText: // // Specified pixel value access mode is invalid. // // // MessageId: ERROR_GRAPHICS_TARGET_NOT_IN_TOPOLOGY // // MessageText: // // Specified target is not part of the specified VidPN's topology. // // // MessageId: ERROR_GRAPHICS_NO_DISPLAY_MODE_MANAGEMENT_SUPPORT // // MessageText: // // Failed to acquire display mode management interface. // // // MessageId: ERROR_GRAPHICS_VIDPN_SOURCE_IN_USE // // MessageText: // // Specified VidPN source is already owned by a DMM client and cannot be used until that client releases it. // // // MessageId: ERROR_GRAPHICS_CANT_ACCESS_ACTIVE_VIDPN // // MessageText: // // Specified VidPN is active and cannot be accessed. // // // MessageId: ERROR_GRAPHICS_INVALID_PATH_IMPORTANCE_ORDINAL // // MessageText: // // Specified VidPN present path importance ordinal is invalid. // // // MessageId: ERROR_GRAPHICS_INVALID_PATH_CONTENT_GEOMETRY_TRANSFORMATION // // MessageText: // // Specified VidPN present path content geometry transformation is invalid. // // // MessageId: ERROR_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_SUPPORTED // // MessageText: // // Specified content geometry transformation is not supported on the respective VidPN present path. // // // MessageId: ERROR_GRAPHICS_INVALID_GAMMA_RAMP // // MessageText: // // Specified gamma ramp is invalid. // // // MessageId: ERROR_GRAPHICS_GAMMA_RAMP_NOT_SUPPORTED // // MessageText: // // Specified gamma ramp is not supported on the respective VidPN present path. // // // MessageId: ERROR_GRAPHICS_MULTISAMPLING_NOT_SUPPORTED // // MessageText: // // Multi-sampling is not supported on the respective VidPN present path. // // // MessageId: ERROR_GRAPHICS_MODE_NOT_IN_MODESET // // MessageText: // // Specified mode is not in the specified mode set. // // // MessageId: ERROR_GRAPHICS_DATASET_IS_EMPTY // // MessageText: // // Specified data set (e.g. mode set, frequency range set, descriptor set, topology, etc.) is empty. // // // MessageId: ERROR_GRAPHICS_NO_MORE_ELEMENTS_IN_DATASET // // MessageText: // // Specified data set (e.g. mode set, frequency range set, descriptor set, topology, etc.) does not contain any more elements. // // // MessageId: ERROR_GRAPHICS_INVALID_VIDPN_TOPOLOGY_RECOMMENDATION_REASON // // MessageText: // // Specified VidPN topology recommendation reason is invalid. // // // MessageId: ERROR_GRAPHICS_INVALID_PATH_CONTENT_TYPE // // MessageText: // // Specified VidPN present path content type is invalid. // // // MessageId: ERROR_GRAPHICS_INVALID_COPYPROTECTION_TYPE // // MessageText: // // Specified VidPN present path copy protection type is invalid. // // // MessageId: ERROR_GRAPHICS_UNASSIGNED_MODESET_ALREADY_EXISTS // // MessageText: // // No more than one unassigned mode set can exist at any given time for a given VidPN source/target. // // // MessageId: ERROR_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_PINNED // // MessageText: // // Specified content transformation is not pinned on the specified VidPN present path. // // // MessageId: ERROR_GRAPHICS_INVALID_SCANLINE_ORDERING // // MessageText: // // Specified scanline ordering type is invalid. // // // MessageId: ERROR_GRAPHICS_TOPOLOGY_CHANGES_NOT_ALLOWED // // MessageText: // // Topology changes are not allowed for the specified VidPN. // // // MessageId: ERROR_GRAPHICS_NO_AVAILABLE_IMPORTANCE_ORDINALS // // MessageText: // // All available importance ordinals are already used in specified topology. // // // MessageId: ERROR_GRAPHICS_INCOMPATIBLE_PRIVATE_FORMAT // // MessageText: // // Specified primary surface has a different private format attribute than the current primary surface // // // MessageId: ERROR_GRAPHICS_INVALID_MODE_PRUNING_ALGORITHM // // MessageText: // // Specified mode pruning algorithm is invalid // // // MessageId: ERROR_GRAPHICS_INVALID_MONITOR_CAPABILITY_ORIGIN // // MessageText: // // Specified monitor capability origin is invalid. // // // MessageId: ERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE_CONSTRAINT // // MessageText: // // Specified monitor frequency range constraint is invalid. // // // MessageId: ERROR_GRAPHICS_MAX_NUM_PATHS_REACHED // // MessageText: // // Maximum supported number of present paths has been reached. // // // MessageId: ERROR_GRAPHICS_CANCEL_VIDPN_TOPOLOGY_AUGMENTATION // // MessageText: // // Miniport requested that augmentation be cancelled for the specified source of the specified VidPN's topology. // // // MessageId: ERROR_GRAPHICS_INVALID_CLIENT_TYPE // // MessageText: // // Specified client type was not recognized. // // // MessageId: ERROR_GRAPHICS_CLIENTVIDPN_NOT_SET // // MessageText: // // Client VidPN is not set on this adapter (e.g. no user mode initiated mode changes took place on this adapter yet). // // // Port specific status codes {0x2400..0x24ff} // // // MessageId: ERROR_GRAPHICS_SPECIFIED_CHILD_ALREADY_CONNECTED // // MessageText: // // Specified display adapter child device already has an external device connected to it. // // // MessageId: ERROR_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED // // MessageText: // // Specified display adapter child device does not support descriptor exposure. // // // MessageId: ERROR_GRAPHICS_UNKNOWN_CHILD_STATUS // // MessageText: // // Child device presence was not reliably detected. // // // MessageId: ERROR_GRAPHICS_NOT_A_LINKED_ADAPTER // // MessageText: // // The display adapter is not linked to any other adapters. // // // MessageId: ERROR_GRAPHICS_LEADLINK_NOT_ENUMERATED // // MessageText: // // Lead adapter in a linked configuration was not enumerated yet. // // // MessageId: ERROR_GRAPHICS_CHAINLINKS_NOT_ENUMERATED // // MessageText: // // Some chain adapters in a linked configuration were not enumerated yet. // // // MessageId: ERROR_GRAPHICS_ADAPTER_CHAIN_NOT_READY // // MessageText: // // The chain of linked adapters is not ready to start because of an unknown failure. // // // MessageId: ERROR_GRAPHICS_CHAINLINKS_NOT_STARTED // // MessageText: // // An attempt was made to start a lead link display adapter when the chain links were not started yet. // // // MessageId: ERROR_GRAPHICS_CHAINLINKS_NOT_POWERED_ON // // MessageText: // // An attempt was made to power up a lead link display adapter when the chain links were powered down. // // // MessageId: ERROR_GRAPHICS_INCONSISTENT_DEVICE_LINK_STATE // // MessageText: // // The adapter link was found to be in an inconsistent state. Not all adapters are in an expected PNP/Power state. // // // MessageId: ERROR_GRAPHICS_LEADLINK_START_DEFERRED // // MessageText: // // Starting the leadlink adapter has been deferred temporarily. // // // MessageId: ERROR_GRAPHICS_NOT_POST_DEVICE_DRIVER // // MessageText: // // The driver trying to start is not the same as the driver for the POSTed display adapter. // // // MessageId: ERROR_GRAPHICS_POLLING_TOO_FREQUENTLY // // MessageText: // // The display adapter is being polled for children too frequently at the same polling level. // // // MessageId: ERROR_GRAPHICS_START_DEFERRED // // MessageText: // // Starting the adapter has been deferred temporarily. // // // MessageId: ERROR_GRAPHICS_ADAPTER_ACCESS_NOT_EXCLUDED // // MessageText: // // An operation is being attempted that requires the display adapter to be in a quiescent state. // // // OPM, UAB and PVP specific error codes {0x2500..0x257f} // // // MessageId: ERROR_GRAPHICS_OPM_NOT_SUPPORTED // // MessageText: // // The driver does not support OPM. // // // MessageId: ERROR_GRAPHICS_COPP_NOT_SUPPORTED // // MessageText: // // The driver does not support COPP. // // // MessageId: ERROR_GRAPHICS_UAB_NOT_SUPPORTED // // MessageText: // // The driver does not support UAB. // // // MessageId: ERROR_GRAPHICS_OPM_INVALID_ENCRYPTED_PARAMETERS // // MessageText: // // The specified encrypted parameters are invalid. // // // MessageId: ERROR_GRAPHICS_OPM_NO_VIDEO_OUTPUTS_EXIST // // MessageText: // // The GDI display device passed to this function does not have any active video outputs. // // // MessageId: ERROR_GRAPHICS_OPM_INTERNAL_ERROR // // MessageText: // // An internal error caused this operation to fail. // // // MessageId: ERROR_GRAPHICS_OPM_INVALID_HANDLE // // MessageText: // // The function failed because the caller passed in an invalid OPM user mode handle. // // // MessageId: ERROR_GRAPHICS_PVP_INVALID_CERTIFICATE_LENGTH // // MessageText: // // A certificate could not be returned because the certificate buffer passed to the function was too small. // // // MessageId: ERROR_GRAPHICS_OPM_SPANNING_MODE_ENABLED // // MessageText: // // A video output could not be created because the frame buffer is in spanning mode. // // // MessageId: ERROR_GRAPHICS_OPM_THEATER_MODE_ENABLED // // MessageText: // // A video output could not be created because the frame buffer is in theater mode. // // // MessageId: ERROR_GRAPHICS_PVP_HFS_FAILED // // MessageText: // // The function failed because the display adapter's Hardware Functionality Scan failed to validate the graphics hardware. // // // MessageId: ERROR_GRAPHICS_OPM_INVALID_SRM // // MessageText: // // The HDCP System Renewability Message passed to this function did not comply with section 5 of the HDCP 1.1 specification. // // // MessageId: ERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_HDCP // // MessageText: // // The video output cannot enable the High-bandwidth Digital Content Protection (HDCP) System because it does not support HDCP. // // // MessageId: ERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_ACP // // MessageText: // // The video output cannot enable Analogue Copy Protection (ACP) because it does not support ACP. // // // MessageId: ERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_CGMSA // // MessageText: // // The video output cannot enable the Content Generation Management System Analogue (CGMS-A) protection technology because it does not support CGMS-A. // // // MessageId: ERROR_GRAPHICS_OPM_HDCP_SRM_NEVER_SET // // MessageText: // // The IOPMVideoOutput::GetInformation method cannot return the version of the SRM being used because the application never successfully passed an SRM to the video output. // // // MessageId: ERROR_GRAPHICS_OPM_RESOLUTION_TOO_HIGH // // MessageText: // // The IOPMVideoOutput::Configure method cannot enable the specified output protection technology because the output's screen resolution is too high. // // // MessageId: ERROR_GRAPHICS_OPM_ALL_HDCP_HARDWARE_ALREADY_IN_USE // // MessageText: // // The IOPMVideoOutput::Configure method cannot enable HDCP because the display adapter's HDCP hardware is already being used by other physical outputs. // // // MessageId: ERROR_GRAPHICS_OPM_VIDEO_OUTPUT_NO_LONGER_EXISTS // // MessageText: // // The operating system asynchronously destroyed this OPM video output because the operating system's state changed. This error typically occurs because the monitor PDO associated with this video output was removed, the monitor PDO associated with this video output was stopped, the video output's session became a non-console session or the video output's desktop became an inactive desktop. // // // MessageId: ERROR_GRAPHICS_OPM_SESSION_TYPE_CHANGE_IN_PROGRESS // // MessageText: // // The method failed because the session is changing its type. No IOPMVideoOutput methods can be called when a session is changing its type. There are currently three types of sessions: console, disconnected and remote (RDP or ICA). // // // MessageId: ERROR_GRAPHICS_OPM_VIDEO_OUTPUT_DOES_NOT_HAVE_COPP_SEMANTICS // // MessageText: // // Either the IOPMVideoOutput::COPPCompatibleGetInformation, IOPMVideoOutput::GetInformation, or IOPMVideoOutput::Configure method failed. This error is only returned if a video output has OPM semantics. IOPMVideoOutput::COPPCompatibleGetInformation always returns this error if a video output has OPM semantics. IOPMVideoOutput::GetInformation returns this error code if the caller requested COPP specific information. IOPMVideoOutput::Configure returns this error when the caller tries to use a COPP specific command. // // // MessageId: ERROR_GRAPHICS_OPM_INVALID_INFORMATION_REQUEST // // MessageText: // // The IOPMVideoOutput::GetInformation and IOPMVideoOutput::COPPCompatibleGetInformation methods return this error if the passed in sequence number is not the expected sequence number or the passed in OMAC value is invalid. // // // MessageId: ERROR_GRAPHICS_OPM_DRIVER_INTERNAL_ERROR // // MessageText: // // The method failed because an unexpected error occurred inside of a display driver. // // // MessageId: ERROR_GRAPHICS_OPM_VIDEO_OUTPUT_DOES_NOT_HAVE_OPM_SEMANTICS // // MessageText: // // Either the IOPMVideoOutput::COPPCompatibleGetInformation, IOPMVideoOutput::GetInformation, or IOPMVideoOutput::Configure method failed. This error is only returned if a video output has COPP semantics. IOPMVideoOutput::COPPCompatibleGetInformation returns this error code if the caller requested OPM specific information. IOPMVideoOutput::GetInformation always returns this error if a video output has COPP semantics. IOPMVideoOutput::Configure returns this error when the caller tries to use an OPM specific command. // // // MessageId: ERROR_GRAPHICS_OPM_SIGNALING_NOT_SUPPORTED // // MessageText: // // The IOPMVideoOutput::COPPCompatibleGetInformation or IOPMVideoOutput::Configure method failed because the display driver does not support the OPM_GET_ACP_AND_CGMSA_SIGNALING and OPM_SET_ACP_AND_CGMSA_SIGNALING GUIDs. // // // MessageId: ERROR_GRAPHICS_OPM_INVALID_CONFIGURATION_REQUEST // // MessageText: // // The IOPMVideoOutput::Configure function returns this error code if the passed in sequence number is not the expected sequence number or the passed in OMAC value is invalid. // // // Monitor Configuration API error codes {0x2580..0x25DF} // // // MessageId: ERROR_GRAPHICS_I2C_NOT_SUPPORTED // // MessageText: // // The monitor connected to the specified video output does not have an I2C bus. // // // MessageId: ERROR_GRAPHICS_I2C_DEVICE_DOES_NOT_EXIST // // MessageText: // // No device on the I2C bus has the specified address. // // // MessageId: ERROR_GRAPHICS_I2C_ERROR_TRANSMITTING_DATA // // MessageText: // // An error occurred while transmitting data to the device on the I2C bus. // // // MessageId: ERROR_GRAPHICS_I2C_ERROR_RECEIVING_DATA // // MessageText: // // An error occurred while receiving data from the device on the I2C bus. // // // MessageId: ERROR_GRAPHICS_DDCCI_VCP_NOT_SUPPORTED // // MessageText: // // The monitor does not support the specified VCP code. // // // MessageId: ERROR_GRAPHICS_DDCCI_INVALID_DATA // // MessageText: // // The data received from the monitor is invalid. // // // MessageId: ERROR_GRAPHICS_DDCCI_MONITOR_RETURNED_INVALID_TIMING_STATUS_BYTE // // MessageText: // // The function failed because a monitor returned an invalid Timing Status byte when the operating system used the DDC/CI Get Timing Report & Timing Message command to get a timing report from a monitor. // // // MessageId: ERROR_GRAPHICS_MCA_INVALID_CAPABILITIES_STRING // // MessageText: // // The monitor returned a DDC/CI capabilities string which did not comply with the ACCESS.bus 3.0, DDC/CI 1.1, or MCCS 2 Revision 1 specification. // // // MessageId: ERROR_GRAPHICS_MCA_INTERNAL_ERROR // // MessageText: // // An internal Monitor Configuration API error occured. // // // MessageId: ERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_COMMAND // // MessageText: // // An operation failed because a DDC/CI message had an invalid value in its command field. // // // MessageId: ERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_LENGTH // // MessageText: // // An error occurred because the field length of a DDC/CI message contained an invalid value. // // // MessageId: ERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_CHECKSUM // // MessageText: // // An error occurred because the checksum field in a DDC/CI message did not match the message's computed checksum value. This error implies that the data was corrupted while it was being transmitted from a monitor to a computer. // // // MessageId: ERROR_GRAPHICS_INVALID_PHYSICAL_MONITOR_HANDLE // // MessageText: // // This function failed because an invalid monitor handle was passed to it. // // // MessageId: ERROR_GRAPHICS_MONITOR_NO_LONGER_EXISTS // // MessageText: // // The operating system asynchronously destroyed the monitor which corresponds to this handle because the operating system's state changed. This error typically occurs because the monitor PDO associated with this handle was removed, the monitor PDO associated with this handle was stopped, or a display mode change occurred. A display mode change occurs when windows sends a WM_DISPLAYCHANGE windows message to applications. // // // MessageId: ERROR_GRAPHICS_DDCCI_CURRENT_CURRENT_VALUE_GREATER_THAN_MAXIMUM_VALUE // // MessageText: // // A continuous VCP code's current value is greater than its maximum value. This error code indicates that a monitor returned an invalid value. // // // MessageId: ERROR_GRAPHICS_MCA_INVALID_VCP_VERSION // // MessageText: // // The monitor's VCP Version (0xDF) VCP code returned an invalid version value. // // // MessageId: ERROR_GRAPHICS_MCA_MONITOR_VIOLATES_MCCS_SPECIFICATION // // MessageText: // // The monitor does not comply with the MCCS specification it claims to support. // // // MessageId: ERROR_GRAPHICS_MCA_MCCS_VERSION_MISMATCH // // MessageText: // // The MCCS version in a monitor's mccs_ver capability does not match the MCCS version the monitor reports when the VCP Version (0xDF) VCP code is used. // // // MessageId: ERROR_GRAPHICS_MCA_UNSUPPORTED_MCCS_VERSION // // MessageText: // // The Monitor Configuration API only works with monitors which support the MCCS 1.0 specification, MCCS 2.0 specification or the MCCS 2.0 Revision 1 specification. // // // MessageId: ERROR_GRAPHICS_MCA_INVALID_TECHNOLOGY_TYPE_RETURNED // // MessageText: // // The monitor returned an invalid monitor technology type. CRT, Plasma and LCD (TFT) are examples of monitor technology types. This error implies that the monitor violated the MCCS 2.0 or MCCS 2.0 Revision 1 specification. // // // MessageId: ERROR_GRAPHICS_MCA_UNSUPPORTED_COLOR_TEMPERATURE // // MessageText: // // SetMonitorColorTemperature()'s caller passed a color temperature to it which the current monitor did not support. This error implies that the monitor violated the MCCS 2.0 or MCCS 2.0 Revision 1 specification. // // // OPM, UAB, PVP and DDC/CI shared error codes {0x25E0..0x25ff} // // // MessageId: ERROR_GRAPHICS_ONLY_CONSOLE_SESSION_SUPPORTED // // MessageText: // // This function can only be used if a program is running in the local console session. It cannot be used if the program is running on a remote desktop session or on a terminal server session. // // // MessageId: ERROR_GRAPHICS_NO_DISPLAY_DEVICE_CORRESPONDS_TO_NAME // // MessageText: // // This function cannot find an actual GDI display device which corresponds to the specified GDI display device name. // // // MessageId: ERROR_GRAPHICS_DISPLAY_DEVICE_NOT_ATTACHED_TO_DESKTOP // // MessageText: // // The function failed because the specified GDI display device was not attached to the Windows desktop. // // // MessageId: ERROR_GRAPHICS_MIRRORING_DEVICES_NOT_SUPPORTED // // MessageText: // // This function does not support GDI mirroring display devices because GDI mirroring display devices do not have any physical monitors associated with them. // // // MessageId: ERROR_GRAPHICS_INVALID_POINTER // // MessageText: // // The function failed because an invalid pointer parameter was passed to it. A pointer parameter is invalid if it is NULL, points to an invalid address, points to a kernel mode address, or is not correctly aligned. // // // MessageId: ERROR_GRAPHICS_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE // // MessageText: // // The function failed because the specified GDI device did not have any monitors associated with it. // // // MessageId: ERROR_GRAPHICS_PARAMETER_ARRAY_TOO_SMALL // // MessageText: // // An array passed to the function cannot hold all of the data that the function must copy into the array. // // // MessageId: ERROR_GRAPHICS_INTERNAL_ERROR // // MessageText: // // An internal error caused an operation to fail. // // // MessageId: ERROR_GRAPHICS_SESSION_TYPE_CHANGE_IN_PROGRESS // // MessageText: // // The function failed because the current session is changing its type. This function cannot be called when the current session is changing its type. There are currently three types of sessions: console, disconnected and remote (RDP or ICA). // // // =============================== // TPM Services and TPM Software Error Messages // =============================== // // The TPM services and TPM software facilities are used by the various // TPM software components. There are two facilities because the services // errors are within the TCG-defined error space and the software errors // are not. // // The following are the subranges within the TPM Services facility. // The TPM hardware errors are defined in the document // TPM Main Specification 1.2 Part 2 TPM Structures. // The TBS errors are slotted into the TCG error namespace at the TBS layer. // // 0x0000 - 0x08ff TPM hardware errors // 0x4000 - 0x40ff TPM Base Services errors (tbssvc.dll) // // The following are the subranges within the TPM Software facility. The TBS // has two classes of errors - those that can be returned (the public errors, // defined in the TBS spec), which are in the TPM services facility, and // those that are internal or implementation specific, which are here in the // TPM software facility. // // 0x0000 - 0x00ff TPM device driver errors (tpm.sys) // 0x0100 - 0x01ff TPM API errors (tpmapi.lib) // 0x0200 - 0x02ff TBS internal errors (tbssvc.dll) // 0x0300 - 0x03ff TPM Physical Presence errors // // // TPM hardware error codes {0x0000..0x08ff} // This space is further subdivided into hardware errors, vendor-specific // errors, and non-fatal errors. // // // TPM hardware errors {0x0000..0x003ff} // // // MessageId: TPM_E_ERROR_MASK // // MessageText: // // This is an error mask to convert TPM hardware errors to win errors. // // // MessageId: TPM_E_AUTHFAIL // // MessageText: // // Authentication failed. // // // MessageId: TPM_E_BADINDEX // // MessageText: // // The index to a PCR, DIR or other register is incorrect. // // // MessageId: TPM_E_BAD_PARAMETER // // MessageText: // // One or more parameter is bad. // // // MessageId: TPM_E_AUDITFAILURE // // MessageText: // // An operation completed successfully but the auditing of that operation failed. // // // MessageId: TPM_E_CLEAR_DISABLED // // MessageText: // // The clear disable flag is set and all clear operations now require physical access. // // // MessageId: TPM_E_DEACTIVATED // // MessageText: // // Activate the Trusted Platform Module (TPM). // // // MessageId: TPM_E_DISABLED // // MessageText: // // Enable the Trusted Platform Module (TPM). // // // MessageId: TPM_E_DISABLED_CMD // // MessageText: // // The target command has been disabled. // // // MessageId: TPM_E_FAIL // // MessageText: // // The operation failed. // // // MessageId: TPM_E_BAD_ORDINAL // // MessageText: // // The ordinal was unknown or inconsistent. // // // MessageId: TPM_E_INSTALL_DISABLED // // MessageText: // // The ability to install an owner is disabled. // // // MessageId: TPM_E_INVALID_KEYHANDLE // // MessageText: // // The key handle cannot be intrepreted. // // // MessageId: TPM_E_KEYNOTFOUND // // MessageText: // // The key handle points to an invalid key. // // // MessageId: TPM_E_INAPPROPRIATE_ENC // // MessageText: // // Unacceptable encryption scheme. // // // MessageId: TPM_E_MIGRATEFAIL // // MessageText: // // Migration authorization failed. // // // MessageId: TPM_E_INVALID_PCR_INFO // // MessageText: // // PCR information could not be interpreted. // // // MessageId: TPM_E_NOSPACE // // MessageText: // // No room to load key. // // // MessageId: TPM_E_NOSRK // // MessageText: // // There is no Storage Root Key (SRK) set. // // // MessageId: TPM_E_NOTSEALED_BLOB // // MessageText: // // An encrypted blob is invalid or was not created by this TPM. // // // MessageId: TPM_E_OWNER_SET // // MessageText: // // The Trusted Platform Module (TPM) already has an owner. // // // MessageId: TPM_E_RESOURCES // // MessageText: // // The TPM has insufficient internal resources to perform the requested action. // // // MessageId: TPM_E_SHORTRANDOM // // MessageText: // // A random string was too short. // // // MessageId: TPM_E_SIZE // // MessageText: // // The TPM does not have the space to perform the operation. // // // MessageId: TPM_E_WRONGPCRVAL // // MessageText: // // The named PCR value does not match the current PCR value. // // // MessageId: TPM_E_BAD_PARAM_SIZE // // MessageText: // // The paramSize argument to the command has the incorrect value . // // // MessageId: TPM_E_SHA_THREAD // // MessageText: // // There is no existing SHA-1 thread. // // // MessageId: TPM_E_SHA_ERROR // // MessageText: // // The calculation is unable to proceed because the existing SHA-1 thread has already encountered an error. // // // MessageId: TPM_E_FAILEDSELFTEST // // MessageText: // // Self-test has failed and the TPM has shutdown. // // // MessageId: TPM_E_AUTH2FAIL // // MessageText: // // The authorization for the second key in a 2 key function failed authorization. // // // MessageId: TPM_E_BADTAG // // MessageText: // // The tag value sent to for a command is invalid. // // // MessageId: TPM_E_IOERROR // // MessageText: // // An IO error occurred transmitting information to the TPM. // // // MessageId: TPM_E_ENCRYPT_ERROR // // MessageText: // // The encryption process had a problem. // // // MessageId: TPM_E_DECRYPT_ERROR // // MessageText: // // The decryption process did not complete. // // // MessageId: TPM_E_INVALID_AUTHHANDLE // // MessageText: // // An invalid handle was used. // // // MessageId: TPM_E_NO_ENDORSEMENT // // MessageText: // // The TPM does not have an Endorsement Key (EK) installed. // // // MessageId: TPM_E_INVALID_KEYUSAGE // // MessageText: // // The usage of a key is not allowed. // // // MessageId: TPM_E_WRONG_ENTITYTYPE // // MessageText: // // The submitted entity type is not allowed. // // // MessageId: TPM_E_INVALID_POSTINIT // // MessageText: // // The command was received in the wrong sequence relative to TPM_Init and a subsequent TPM_Startup. // // // MessageId: TPM_E_INAPPROPRIATE_SIG // // MessageText: // // Signed data cannot include additional DER information. // // // MessageId: TPM_E_BAD_KEY_PROPERTY // // MessageText: // // The key properties in TPM_KEY_PARMs are not supported by this TPM. // // // MessageId: TPM_E_BAD_MIGRATION // // MessageText: // // The migration properties of this key are incorrect. // // // MessageId: TPM_E_BAD_SCHEME // // MessageText: // // The signature or encryption scheme for this key is incorrect or not permitted in this situation. // // // MessageId: TPM_E_BAD_DATASIZE // // MessageText: // // The size of the data (or blob) parameter is bad or inconsistent with the referenced key. // // // MessageId: TPM_E_BAD_MODE // // MessageText: // // A mode parameter is bad, such as capArea or subCapArea for TPM_GetCapability, phsicalPresence parameter for TPM_PhysicalPresence, or migrationType for TPM_CreateMigrationBlob. // // // MessageId: TPM_E_BAD_PRESENCE // // MessageText: // // Either the physicalPresence or physicalPresenceLock bits have the wrong value. // // // MessageId: TPM_E_BAD_VERSION // // MessageText: // // The TPM cannot perform this version of the capability. // // // MessageId: TPM_E_NO_WRAP_TRANSPORT // // MessageText: // // The TPM does not allow for wrapped transport sessions. // // // MessageId: TPM_E_AUDITFAIL_UNSUCCESSFUL // // MessageText: // // TPM audit construction failed and the underlying command was returning a failure code also. // // // MessageId: TPM_E_AUDITFAIL_SUCCESSFUL // // MessageText: // // TPM audit construction failed and the underlying command was returning success. // // // MessageId: TPM_E_NOTRESETABLE // // MessageText: // // Attempt to reset a PCR register that does not have the resettable attribute. // // // MessageId: TPM_E_NOTLOCAL // // MessageText: // // Attempt to reset a PCR register that requires locality and locality modifier not part of command transport. // // // MessageId: TPM_E_BAD_TYPE // // MessageText: // // Make identity blob not properly typed. // // // MessageId: TPM_E_INVALID_RESOURCE // // MessageText: // // When saving context identified resource type does not match actual resource. // // // MessageId: TPM_E_NOTFIPS // // MessageText: // // The TPM is attempting to execute a command only available when in FIPS mode. // // // MessageId: TPM_E_INVALID_FAMILY // // MessageText: // // The command is attempting to use an invalid family ID. // // // MessageId: TPM_E_NO_NV_PERMISSION // // MessageText: // // The permission to manipulate the NV storage is not available. // // // MessageId: TPM_E_REQUIRES_SIGN // // MessageText: // // The operation requires a signed command. // // // MessageId: TPM_E_KEY_NOTSUPPORTED // // MessageText: // // Wrong operation to load an NV key. // // // MessageId: TPM_E_AUTH_CONFLICT // // MessageText: // // NV_LoadKey blob requires both owner and blob authorization. // // // MessageId: TPM_E_AREA_LOCKED // // MessageText: // // The NV area is locked and not writtable. // // // MessageId: TPM_E_BAD_LOCALITY // // MessageText: // // The locality is incorrect for the attempted operation. // // // MessageId: TPM_E_READ_ONLY // // MessageText: // // The NV area is read only and can't be written to. // // // MessageId: TPM_E_PER_NOWRITE // // MessageText: // // There is no protection on the write to the NV area. // // // MessageId: TPM_E_FAMILYCOUNT // // MessageText: // // The family count value does not match. // // // MessageId: TPM_E_WRITE_LOCKED // // MessageText: // // The NV area has already been written to. // // // MessageId: TPM_E_BAD_ATTRIBUTES // // MessageText: // // The NV area attributes conflict. // // // MessageId: TPM_E_INVALID_STRUCTURE // // MessageText: // // The structure tag and version are invalid or inconsistent. // // // MessageId: TPM_E_KEY_OWNER_CONTROL // // MessageText: // // The key is under control of the TPM Owner and can only be evicted by the TPM Owner. // // // MessageId: TPM_E_BAD_COUNTER // // MessageText: // // The counter handle is incorrect. // // // MessageId: TPM_E_NOT_FULLWRITE // // MessageText: // // The write is not a complete write of the area. // // // MessageId: TPM_E_CONTEXT_GAP // // MessageText: // // The gap between saved context counts is too large. // // // MessageId: TPM_E_MAXNVWRITES // // MessageText: // // The maximum number of NV writes without an owner has been exceeded. // // // MessageId: TPM_E_NOOPERATOR // // MessageText: // // No operator AuthData value is set. // // // MessageId: TPM_E_RESOURCEMISSING // // MessageText: // // The resource pointed to by context is not loaded. // // // MessageId: TPM_E_DELEGATE_LOCK // // MessageText: // // The delegate administration is locked. // // // MessageId: TPM_E_DELEGATE_FAMILY // // MessageText: // // Attempt to manage a family other then the delegated family. // // // MessageId: TPM_E_DELEGATE_ADMIN // // MessageText: // // Delegation table management not enabled. // // // MessageId: TPM_E_TRANSPORT_NOTEXCLUSIVE // // MessageText: // // There was a command executed outside of an exclusive transport session. // // // MessageId: TPM_E_OWNER_CONTROL // // MessageText: // // Attempt to context save a owner evict controlled key. // // // MessageId: TPM_E_DAA_RESOURCES // // MessageText: // // The DAA command has no resources availble to execute the command. // // // MessageId: TPM_E_DAA_INPUT_DATA0 // // MessageText: // // The consistency check on DAA parameter inputData0 has failed. // // // MessageId: TPM_E_DAA_INPUT_DATA1 // // MessageText: // // The consistency check on DAA parameter inputData1 has failed. // // // MessageId: TPM_E_DAA_ISSUER_SETTINGS // // MessageText: // // The consistency check on DAA_issuerSettings has failed. // // // MessageId: TPM_E_DAA_TPM_SETTINGS // // MessageText: // // The consistency check on DAA_tpmSpecific has failed. // // // MessageId: TPM_E_DAA_STAGE // // MessageText: // // The atomic process indicated by the submitted DAA command is not the expected process. // // // MessageId: TPM_E_DAA_ISSUER_VALIDITY // // MessageText: // // The issuer's validity check has detected an inconsistency. // // // MessageId: TPM_E_DAA_WRONG_W // // MessageText: // // The consistency check on w has failed. // // // MessageId: TPM_E_BAD_HANDLE // // MessageText: // // The handle is incorrect. // // // MessageId: TPM_E_BAD_DELEGATE // // MessageText: // // Delegation is not correct. // // // MessageId: TPM_E_BADCONTEXT // // MessageText: // // The context blob is invalid. // // // MessageId: TPM_E_TOOMANYCONTEXTS // // MessageText: // // Too many contexts held by the TPM. // // // MessageId: TPM_E_MA_TICKET_SIGNATURE // // MessageText: // // Migration authority signature validation failure. // // // MessageId: TPM_E_MA_DESTINATION // // MessageText: // // Migration destination not authenticated. // // // MessageId: TPM_E_MA_SOURCE // // MessageText: // // Migration source incorrect. // // // MessageId: TPM_E_MA_AUTHORITY // // MessageText: // // Incorrect migration authority. // // // MessageId: TPM_E_PERMANENTEK // // MessageText: // // Attempt to revoke the EK and the EK is not revocable. // // // MessageId: TPM_E_BAD_SIGNATURE // // MessageText: // // Bad signature of CMK ticket. // // // MessageId: TPM_E_NOCONTEXTSPACE // // MessageText: // // There is no room in the context list for additional contexts. // // // TPM vendor specific hardware errors {0x0400..0x04ff} // // // MessageId: TPM_E_COMMAND_BLOCKED // // MessageText: // // The command was blocked. // // // MessageId: TPM_E_INVALID_HANDLE // // MessageText: // // The specified handle was not found. // // // MessageId: TPM_E_DUPLICATE_VHANDLE // // MessageText: // // The TPM returned a duplicate handle and the command needs to be resubmitted. // // // MessageId: TPM_E_EMBEDDED_COMMAND_BLOCKED // // MessageText: // // The command within the transport was blocked. // // // MessageId: TPM_E_EMBEDDED_COMMAND_UNSUPPORTED // // MessageText: // // The command within the transport is not supported. // // // TPM non-fatal hardware errors {0x0800..0x08ff} // // // MessageId: TPM_E_RETRY // // MessageText: // // The TPM is too busy to respond to the command immediately, but the command could be resubmitted at a later time. // // // MessageId: TPM_E_NEEDS_SELFTEST // // MessageText: // // SelfTestFull has not been run. // // // MessageId: TPM_E_DOING_SELFTEST // // MessageText: // // The TPM is currently executing a full selftest. // // // MessageId: TPM_E_DEFEND_LOCK_RUNNING // // MessageText: // // The TPM is defending against dictionary attacks and is in a time-out period. // // // TPM Base Services error codes {0x4000..0x40ff} // // // MessageId: TBS_E_INTERNAL_ERROR // // MessageText: // // An internal software error has been detected. // // // MessageId: TBS_E_BAD_PARAMETER // // MessageText: // // One or more input parameters is bad. // // // MessageId: TBS_E_INVALID_OUTPUT_POINTER // // MessageText: // // A specified output pointer is bad. // // // MessageId: TBS_E_INVALID_CONTEXT // // MessageText: // // The specified context handle does not refer to a valid context. // // // MessageId: TBS_E_INSUFFICIENT_BUFFER // // MessageText: // // A specified output buffer is too small. // // // MessageId: TBS_E_IOERROR // // MessageText: // // An error occurred while communicating with the TPM. // // // MessageId: TBS_E_INVALID_CONTEXT_PARAM // // MessageText: // // One or more context parameters is invalid. // // // MessageId: TBS_E_SERVICE_NOT_RUNNING // // MessageText: // // The TBS service is not running and could not be started. // // // MessageId: TBS_E_TOO_MANY_TBS_CONTEXTS // // MessageText: // // A new context could not be created because there are too many open contexts. // // // MessageId: TBS_E_TOO_MANY_RESOURCES // // MessageText: // // A new virtual resource could not be created because there are too many open // virtual resources. // // // MessageId: TBS_E_SERVICE_START_PENDING // // MessageText: // // The TBS service has been started but is not yet running. // // // MessageId: TBS_E_PPI_NOT_SUPPORTED // // MessageText: // // The physical presence interface is not supported. // // // MessageId: TBS_E_COMMAND_CANCELED // // MessageText: // // The command was canceled. // // // MessageId: TBS_E_BUFFER_TOO_LARGE // // MessageText: // // The input or output buffer is too large. // // // MessageId: TBS_E_TPM_NOT_FOUND // // MessageText: // // A compatible Trusted Platform Module (TPM) Security Device cannot be found on this computer. // // // MessageId: TBS_E_SERVICE_DISABLED // // MessageText: // // The TBS service has been disabled. // // // TPM API error codes {0x0100..0x01ff} // // // MessageId: TPMAPI_E_INVALID_STATE // // MessageText: // // The command buffer is not in the correct state. // // // MessageId: TPMAPI_E_NOT_ENOUGH_DATA // // MessageText: // // The command buffer does not contain enough data to satisfy the request. // // // MessageId: TPMAPI_E_TOO_MUCH_DATA // // MessageText: // // The command buffer cannot contain any more data. // // // MessageId: TPMAPI_E_INVALID_OUTPUT_POINTER // // MessageText: // // One or more output parameters was NULL or invalid. // // // MessageId: TPMAPI_E_INVALID_PARAMETER // // MessageText: // // One or more input parameters is invalid. // // // MessageId: TPMAPI_E_OUT_OF_MEMORY // // MessageText: // // Not enough memory was available to satisfy the request. // // // MessageId: TPMAPI_E_BUFFER_TOO_SMALL // // MessageText: // // The specified buffer was too small. // // // MessageId: TPMAPI_E_INTERNAL_ERROR // // MessageText: // // An internal error was detected. // // // MessageId: TPMAPI_E_ACCESS_DENIED // // MessageText: // // The caller does not have the appropriate rights to perform the requested // operation. // // // MessageId: TPMAPI_E_AUTHORIZATION_FAILED // // MessageText: // // The specified authorization information was invalid. // // // MessageId: TPMAPI_E_INVALID_CONTEXT_HANDLE // // MessageText: // // The specified context handle was not valid. // // // MessageId: TPMAPI_E_TBS_COMMUNICATION_ERROR // // MessageText: // // An error occurred while communicating with the TBS. // // // MessageId: TPMAPI_E_TPM_COMMAND_ERROR // // MessageText: // // The TPM returned an unexpected result. // // // MessageId: TPMAPI_E_MESSAGE_TOO_LARGE // // MessageText: // // The message was too large for the encoding scheme. // // // MessageId: TPMAPI_E_INVALID_ENCODING // // MessageText: // // The encoding in the blob was not recognized. // // // MessageId: TPMAPI_E_INVALID_KEY_SIZE // // MessageText: // // The key size is not valid. // // // MessageId: TPMAPI_E_ENCRYPTION_FAILED // // MessageText: // // The encryption operation failed. // // // MessageId: TPMAPI_E_INVALID_KEY_PARAMS // // MessageText: // // The key parameters structure was not valid // // // MessageId: TPMAPI_E_INVALID_MIGRATION_AUTHORIZATION_BLOB // // MessageText: // // The requested supplied data does not appear to be a valid migration authorization blob. // // // MessageId: TPMAPI_E_INVALID_PCR_INDEX // // MessageText: // // The specified PCR index was invalid // // // MessageId: TPMAPI_E_INVALID_DELEGATE_BLOB // // MessageText: // // The data given does not appear to be a valid delegate blob. // // // MessageId: TPMAPI_E_INVALID_CONTEXT_PARAMS // // MessageText: // // One or more of the specified context parameters was not valid. // // // MessageId: TPMAPI_E_INVALID_KEY_BLOB // // MessageText: // // The data given does not appear to be a valid key blob // // // MessageId: TPMAPI_E_INVALID_PCR_DATA // // MessageText: // // The specified PCR data was invalid. // // // MessageId: TPMAPI_E_INVALID_OWNER_AUTH // // MessageText: // // The format of the owner auth data was invalid. // // // MessageId: TPMAPI_E_FIPS_RNG_CHECK_FAILED // // MessageText: // // The random number generated did not pass FIPS RNG check. // // // TBS implementation error codes {0x0200..0x02ff} // // // MessageId: TBSIMP_E_BUFFER_TOO_SMALL // // MessageText: // // The specified buffer was too small. // // // MessageId: TBSIMP_E_CLEANUP_FAILED // // MessageText: // // The context could not be cleaned up. // // // MessageId: TBSIMP_E_INVALID_CONTEXT_HANDLE // // MessageText: // // The specified context handle is invalid. // // // MessageId: TBSIMP_E_INVALID_CONTEXT_PARAM // // MessageText: // // An invalid context parameter was specified. // // // MessageId: TBSIMP_E_TPM_ERROR // // MessageText: // // An error occurred while communicating with the TPM // // // MessageId: TBSIMP_E_HASH_BAD_KEY // // MessageText: // // No entry with the specified key was found. // // // MessageId: TBSIMP_E_DUPLICATE_VHANDLE // // MessageText: // // The specified virtual handle matches a virtual handle already in use. // // // MessageId: TBSIMP_E_INVALID_OUTPUT_POINTER // // MessageText: // // The pointer to the returned handle location was NULL or invalid // // // MessageId: TBSIMP_E_INVALID_PARAMETER // // MessageText: // // One or more parameters is invalid // // // MessageId: TBSIMP_E_RPC_INIT_FAILED // // MessageText: // // The RPC subsystem could not be initialized. // // // MessageId: TBSIMP_E_SCHEDULER_NOT_RUNNING // // MessageText: // // The TBS scheduler is not running. // // // MessageId: TBSIMP_E_COMMAND_CANCELED // // MessageText: // // The command was canceled. // // // MessageId: TBSIMP_E_OUT_OF_MEMORY // // MessageText: // // There was not enough memory to fulfill the request // // // MessageId: TBSIMP_E_LIST_NO_MORE_ITEMS // // MessageText: // // The specified list is empty, or the iteration has reached the end of the list. // // // MessageId: TBSIMP_E_LIST_NOT_FOUND // // MessageText: // // The specified item was not found in the list. // // // MessageId: TBSIMP_E_NOT_ENOUGH_SPACE // // MessageText: // // The TPM does not have enough space to load the requested resource. // // // MessageId: TBSIMP_E_NOT_ENOUGH_TPM_CONTEXTS // // MessageText: // // There are too many TPM contexts in use. // // // MessageId: TBSIMP_E_COMMAND_FAILED // // MessageText: // // The TPM command failed. // // // MessageId: TBSIMP_E_UNKNOWN_ORDINAL // // MessageText: // // The TBS does not recognize the specified ordinal. // // // MessageId: TBSIMP_E_RESOURCE_EXPIRED // // MessageText: // // The requested resource is no longer available. // // // MessageId: TBSIMP_E_INVALID_RESOURCE // // MessageText: // // The resource type did not match. // // // MessageId: TBSIMP_E_NOTHING_TO_UNLOAD // // MessageText: // // No resources can be unloaded. // // // MessageId: TBSIMP_E_HASH_TABLE_FULL // // MessageText: // // No new entries can be added to the hash table. // // // MessageId: TBSIMP_E_TOO_MANY_TBS_CONTEXTS // // MessageText: // // A new TBS context could not be created because there are too many open contexts. // // // MessageId: TBSIMP_E_TOO_MANY_RESOURCES // // MessageText: // // A new virtual resource could not be created because there are too many open virtual resources. // // // MessageId: TBSIMP_E_PPI_NOT_SUPPORTED // // MessageText: // // The physical presence interface is not supported. // // // MessageId: TBSIMP_E_TPM_INCOMPATIBLE // // MessageText: // // TBS is not compatible with the version of TPM found on the system. // // // TPM Physical Presence implementation error codes {0x0300..0x03ff} // // // MessageId: TPM_E_PPI_ACPI_FAILURE // // MessageText: // // A general error was detected when attempting to acquire the BIOS's response to a Physical Presence command. // // // MessageId: TPM_E_PPI_USER_ABORT // // MessageText: // // The user failed to confirm the TPM operation request. // // // MessageId: TPM_E_PPI_BIOS_FAILURE // // MessageText: // // The BIOS failure prevented the successful execution of the requested TPM operation (e.g. invalid TPM operation request, BIOS communication error with the TPM). // // // MessageId: TPM_E_PPI_NOT_SUPPORTED // // MessageText: // // The BIOS does not support the physical presence interface. // // // ======================================================= // Facility Performance Logs & Alerts (PLA) Error Messages // ======================================================= // // // MessageId: PLA_E_DCS_NOT_FOUND // // MessageText: // // Data Collector Set was not found. // // // MessageId: PLA_E_DCS_IN_USE // // MessageText: // // The Data Collector Set or one of its dependencies is already in use. // // // MessageId: PLA_E_TOO_MANY_FOLDERS // // MessageText: // // Unable to start Data Collector Set because there are too many folders. // // // MessageId: PLA_E_NO_MIN_DISK // // MessageText: // // Not enough free disk space to start Data Collector Set. // // // MessageId: PLA_E_DCS_ALREADY_EXISTS // // MessageText: // // Data Collector Set already exists. // // // MessageId: PLA_S_PROPERTY_IGNORED // // MessageText: // // Property value will be ignored. // // // MessageId: PLA_E_PROPERTY_CONFLICT // // MessageText: // // Property value conflict. // // // MessageId: PLA_E_DCS_SINGLETON_REQUIRED // // MessageText: // // The current configuration for this Data Collector Set requires that it contain exactly one Data Collector. // // // MessageId: PLA_E_CREDENTIALS_REQUIRED // // MessageText: // // A user account is required in order to commit the current Data Collector Set properties. // // // MessageId: PLA_E_DCS_NOT_RUNNING // // MessageText: // // Data Collector Set is not running. // // // MessageId: PLA_E_CONFLICT_INCL_EXCL_API // // MessageText: // // A conflict was detected in the list of include/exclude APIs. Do not specify the same API in both the include list and the exclude list. // // // MessageId: PLA_E_NETWORK_EXE_NOT_VALID // // MessageText: // // The executable path you have specified refers to a network share or UNC path. // // // MessageId: PLA_E_EXE_ALREADY_CONFIGURED // // MessageText: // // The executable path you have specified is already configured for API tracing. // // // MessageId: PLA_E_EXE_PATH_NOT_VALID // // MessageText: // // The executable path you have specified does not exist. Verify that the specified path is correct. // // // MessageId: PLA_E_DC_ALREADY_EXISTS // // MessageText: // // Data Collector already exists. // // // MessageId: PLA_E_DCS_START_WAIT_TIMEOUT // // MessageText: // // The wait for the Data Collector Set start notification has timed out. // // // MessageId: PLA_E_DC_START_WAIT_TIMEOUT // // MessageText: // // The wait for the Data Collector to start has timed out. // // // MessageId: PLA_E_REPORT_WAIT_TIMEOUT // // MessageText: // // The wait for the report generation tool to finish has timed out. // // // MessageId: PLA_E_NO_DUPLICATES // // MessageText: // // Duplicate items are not allowed. // // // MessageId: PLA_E_EXE_FULL_PATH_REQUIRED // // MessageText: // // When specifying the executable that you want to trace, you must specify a full path to the executable and not just a filename. // // // MessageId: PLA_E_INVALID_SESSION_NAME // // MessageText: // // The session name provided is invalid. // // // MessageId: PLA_E_PLA_CHANNEL_NOT_ENABLED // // MessageText: // // The Event Log channel Microsoft-Windows-Diagnosis-PLA/Operational must be enabled to perform this operation. // // // MessageId: PLA_E_TASKSCHED_CHANNEL_NOT_ENABLED // // MessageText: // // The Event Log channel Microsoft-Windows-TaskScheduler must be enabled to perform this operation. // // // MessageId: PLA_E_RULES_MANAGER_FAILED // // MessageText: // // The execution of the Rules Manager failed. // // // MessageId: PLA_E_CABAPI_FAILURE // // MessageText: // // An error occured while attemption to compress or extract the data. // // // ======================================================= // Full Volume Encryption Error Messages // ======================================================= // // // MessageId: FVE_E_LOCKED_VOLUME // // MessageText: // // This volume is locked by BitLocker Drive Encryption. Return to the control panel to unlock volume. // // // MessageId: FVE_E_NOT_ENCRYPTED // // MessageText: // // The volume is not encrypted, no key is available. // // // MessageId: FVE_E_NO_TPM_BIOS // // MessageText: // // The BIOS did not correctly communicate with the TPM. Contact the computer manufacturer for BIOS upgrade instructions. // // // MessageId: FVE_E_NO_MBR_METRIC // // MessageText: // // The BIOS did not correctly communicate with the Master Boot Record (MBR). Contact the computer manufacturer for BIOS upgrade instructions. // // // MessageId: FVE_E_NO_BOOTSECTOR_METRIC // // MessageText: // // If there is a bootable CD or DVD in your computer, remove it, restart the computer and turn on BitLocker again. If the problem persists contact the computer manufacturer for BIOS upgrade instructions. // // // MessageId: FVE_E_NO_BOOTMGR_METRIC // // MessageText: // // You have an incompatible boot sector. Update the boot manager (BOOTMGR). // // // MessageId: FVE_E_WRONG_BOOTMGR // // MessageText: // // You have an incompatible boot manager. Update the boot manager (BOOTMGR). // // // MessageId: FVE_E_SECURE_KEY_REQUIRED // // MessageText: // // No secure key protector has been defined. // // // MessageId: FVE_E_NOT_ACTIVATED // // MessageText: // // BitLocker Drive Encryption is not enabled on this volume. Turn on BitLocker. // // // MessageId: FVE_E_ACTION_NOT_ALLOWED // // MessageText: // // BitLocker Drive Encryption could not perform requested action. This condition may occur when two requests are issued at the same time. // // // MessageId: FVE_E_AD_SCHEMA_NOT_INSTALLED // // MessageText: // // The Active Directory Domain Services forest does not contain the required attributes and classes to host BitLocker Drive Encryption or Trusted Platform Module information. // // // MessageId: FVE_E_AD_INVALID_DATATYPE // // MessageText: // // The type of the data obtained from Active Directory was not expected. // // // MessageId: FVE_E_AD_INVALID_DATASIZE // // MessageText: // // The size of the data obtained from Active Directory was not expected. // // // MessageId: FVE_E_AD_NO_VALUES // // MessageText: // // The attribute read from Active Directory has no (zero) values. // // // MessageId: FVE_E_AD_ATTR_NOT_SET // // MessageText: // // The attribute was not set. // // // MessageId: FVE_E_AD_GUID_NOT_FOUND // // MessageText: // // The specified GUID could not be found. // // // MessageId: FVE_E_BAD_INFORMATION // // MessageText: // // The control block for the encrypted volume is not valid. // // // MessageId: FVE_E_TOO_SMALL // // MessageText: // // The volume cannot be encrypted because it does not have enough free space. // // // MessageId: FVE_E_SYSTEM_VOLUME // // MessageText: // // The volume cannot be encrypted because it contains system boot information. // // // MessageId: FVE_E_FAILED_WRONG_FS // // MessageText: // // The volume cannot be encrypted because the file system is not supported. // // // MessageId: FVE_E_FAILED_BAD_FS // // MessageText: // // The file system is corrupt. Run CHKDSK. // // // MessageId: FVE_E_NOT_SUPPORTED // // MessageText: // // This volume cannot be encrypted. // // // MessageId: FVE_E_BAD_DATA // // MessageText: // // Data supplied is malformed. // // // MessageId: FVE_E_VOLUME_NOT_BOUND // // MessageText: // // Volume is not bound to the system. // // // MessageId: FVE_E_TPM_NOT_OWNED // // MessageText: // // You must take ownership of the Trusted Platform Module (TPM). // // // MessageId: FVE_E_NOT_DATA_VOLUME // // MessageText: // // The volume specified is not a data volume. // // // MessageId: FVE_E_AD_INSUFFICIENT_BUFFER // // MessageText: // // The buffer supplied to a function was insufficient to contain the returned data. // // // MessageId: FVE_E_CONV_READ // // MessageText: // // A read operation failed while converting the volume. // // // MessageId: FVE_E_CONV_WRITE // // MessageText: // // A write operation failed while converting the volume. // // // MessageId: FVE_E_KEY_REQUIRED // // MessageText: // // One or more key protectors are required for this volume. // // // MessageId: FVE_E_CLUSTERING_NOT_SUPPORTED // // MessageText: // // Cluster configurations are not supported. // // // MessageId: FVE_E_VOLUME_BOUND_ALREADY // // MessageText: // // The volume is already bound to the system. // // // MessageId: FVE_E_OS_NOT_PROTECTED // // MessageText: // // The operating system volume is not protected by BitLocker Drive Encryption. // // // MessageId: FVE_E_PROTECTION_DISABLED // // MessageText: // // All protectors are effectively disabled (clear key exists). // // // MessageId: FVE_E_RECOVERY_KEY_REQUIRED // // MessageText: // // A recovery key protector is required. // // // MessageId: FVE_E_FOREIGN_VOLUME // // MessageText: // // This volume cannot be bound to a TPM. // // // MessageId: FVE_E_OVERLAPPED_UPDATE // // MessageText: // // The control block for the encrypted volume was updated by another thread. Try again. // // // MessageId: FVE_E_TPM_SRK_AUTH_NOT_ZERO // // MessageText: // // The authorization data for the Storage Root Key (SRK) of the Trusted Platform Module (TPM) is not zero and is therefore incompatible with BitLocker. // // // MessageId: FVE_E_FAILED_SECTOR_SIZE // // MessageText: // // The volume encryption algorithm cannot be used on this sector size. // // // MessageId: FVE_E_FAILED_AUTHENTICATION // // MessageText: // // The recovery information provided does not match required recovery information to unlock the volume. Confirm the information and try again. // // // MessageId: FVE_E_NOT_OS_VOLUME // // MessageText: // // The volume specified is not the operating system volume. // // // MessageId: FVE_E_AUTOUNLOCK_ENABLED // // MessageText: // // BitLocker Drive Encryption cannot be turned off. Please turn off the auto unlock on all other volumes before turning off BitLocker on the current volume. // // // MessageId: FVE_E_WRONG_BOOTSECTOR // // MessageText: // // The system partition boot sector does not perform TPM measurements. // // // MessageId: FVE_E_WRONG_SYSTEM_FS // // MessageText: // // BitLocker requires the file system to be NTFS. Convert the volume to NTFS, then enable BitLocker. // // // MessageId: FVE_E_POLICY_PASSWORD_REQUIRED // // MessageText: // // Group policy requires a recovery password before encryption may begin. // // // MessageId: FVE_E_CANNOT_SET_FVEK_ENCRYPTED // // MessageText: // // The volume encryption algorithm and key cannot be set on an encrypted volume. // // // MessageId: FVE_E_CANNOT_ENCRYPT_NO_KEY // // MessageText: // // A key must be specified before encryption may begin. // // // MessageId: FVE_E_BOOTABLE_CDDVD // // MessageText: // // BitLocker Drive Encryption detected bootable media (CD, DVD, or USB) in the computer. Remove the media and restart the computer. // // // MessageId: FVE_E_PROTECTOR_EXISTS // // MessageText: // // An instance of this key protector already exists on the volume. // // // MessageId: FVE_E_RELATIVE_PATH // // MessageText: // // The file cannot be saved to a relative path. // // // MessageId: FVE_E_PROTECTOR_NOT_FOUND // // MessageText: // // The specified key protector was not found on the volume. Try another key protector. // // // MessageId: FVE_E_INVALID_KEY_FORMAT // // MessageText: // // The recovery password file on the USB device is corrupt. Try another USB device. // // // MessageId: FVE_E_INVALID_PASSWORD_FORMAT // // MessageText: // // The format of the recovery password file is invalid. Select another recovery password and try again. // // // MessageId: FVE_E_FIPS_RNG_CHECK_FAILED // // MessageText: // // The random number generator check test failed. // // // MessageId: FVE_E_FIPS_PREVENTS_RECOVERY_PASSWORD // // MessageText: // // The group policy setting requiring FIPS compliance prevented the recovery password from being generated or used. Please contact your domain administrator for more information. // // // MessageId: FVE_E_FIPS_PREVENTS_EXTERNAL_KEY_EXPORT // // MessageText: // // The group policy setting requiring FIPS compliance prevented the recovery password from being saved. Please contact your domain administrator for more information. // // // MessageId: FVE_E_NOT_DECRYPTED // // MessageText: // // The volume must be fully decrypted to complete this operation. // // // MessageId: FVE_E_INVALID_PROTECTOR_TYPE // // MessageText: // // The specified key protector is not of the correct type. // // // MessageId: FVE_E_NO_PROTECTORS_TO_TEST // // MessageText: // // No TPM protectors exist on the volume to perform the hardware test. // // // MessageId: FVE_E_KEYFILE_NOT_FOUND // // MessageText: // // The BitLocker startup key or recovery password could not be read from the USB device. Ensure the USB device is plugged into the computer, then turn on BitLocker and try again. If the problem persists contact the computer manufacturer for BIOS upgrade instructions. // // // MessageId: FVE_E_KEYFILE_INVALID // // MessageText: // // The BitLocker startup key or recovery password file is corrupt or invalid. // // // MessageId: FVE_E_KEYFILE_NO_VMK // // MessageText: // // The BitLocker encryption key could not be obtained from the startup key or recovery password. // // // MessageId: FVE_E_TPM_DISABLED // // MessageText: // // The Trusted Platform Module (TPM) is disabled. // // // MessageId: FVE_E_NOT_ALLOWED_IN_SAFE_MODE // // MessageText: // // BitLocker Drive Encryption can only be used for recovery purposes in Safe-Mode. // // // MessageId: FVE_E_TPM_INVALID_PCR // // MessageText: // // The Trusted Platform Module (TPM) was not able to unlock the volume because the system boot information changed. // // // MessageId: FVE_E_TPM_NO_VMK // // MessageText: // // The BitLocker encryption key could not be obtained from the Trusted Platform Module (TPM). // // // MessageId: FVE_E_PIN_INVALID // // MessageText: // // The BitLocker encryption key could not be obtained from the Trusted Platform Module (TPM) and PIN. // // // MessageId: FVE_E_AUTH_INVALID_APPLICATION // // MessageText: // // A boot application has changed since BitLocker was enabled. // // // MessageId: FVE_E_AUTH_INVALID_CONFIG // // MessageText: // // The Boot Configuration Data (BCD) settings have changed since BitLocker was enabled. // // // MessageId: FVE_E_FIPS_DISABLE_PROTECTION_NOT_ALLOWED // // MessageText: // // The group policy setting requiring FIPS compliance prevented BitLocker from being disabled. Please contact your domain administrator for more information. // // // MessageId: FVE_E_FS_NOT_EXTENDED // // MessageText: // // The file system does not extend to the end of the volume. // // // MessageId: FVE_E_FIRMWARE_TYPE_NOT_SUPPORTED // // MessageText: // // BitLocker Drive Encryption cannot be enabled on this computer. Contact the computer manufacturer for BIOS upgrade instructions. // // // MessageId: FVE_E_NO_LICENSE // // MessageText: // // This Windows license does not support BitLocker Drive Encryption. To use BitLocker Drive Encryption, please upgrade your Windows license. // // // MessageId: FVE_E_NOT_ON_STACK // // MessageText: // // Critical BitLocker Drive Encryption system files are not available. Use Windows Startup Repair to restore files. // // // MessageId: FVE_E_FS_MOUNTED // // MessageText: // // This operation cannot be performed while the volume is in use. // // // MessageId: FVE_E_TOKEN_NOT_IMPERSONATED // // MessageText: // // The access token associated with the current thread is not an impersonated token. // // // MessageId: FVE_E_DRY_RUN_FAILED // // MessageText: // // The BitLocker encryption key could not be obtained. // // // MessageId: FVE_E_REBOOT_REQUIRED // // MessageText: // // No action was taken as a system reboot is required. // // // MessageId: FVE_E_DEBUGGER_ENABLED // // MessageText: // // Boot debugging is enabled. Run bcdedit to turn it off. // // // MessageId: FVE_E_RAW_ACCESS // // MessageText: // // No action was taken as BitLocker Drive Encryption is in raw access mode. // // // MessageId: FVE_E_RAW_BLOCKED // // MessageText: // // BitLocker Drive Encryption cannot enter raw access mode for this volume. // // // MessageId: FVE_E_BCD_APPLICATIONS_PATH_INCORRECT // // MessageText: // // The path specified in the Boot Configuration Data (BCD) for a BitLocker Drive Encryption integrity-protected application is incorrect. Please verify and correct your BCD settings and try again. // // // MessageId: FVE_E_NOT_ALLOWED_IN_VERSION // // MessageText: // // BitLocker Drive Encryption can only be used for recovery purposes in this version of Windows. // // // ======================================================= // Windows Filtering Platform Error Messages // ======================================================= // // // MessageId: FWP_E_CALLOUT_NOT_FOUND // // MessageText: // // The callout does not exist. // // // MessageId: FWP_E_CONDITION_NOT_FOUND // // MessageText: // // The filter condition does not exist. // // // MessageId: FWP_E_FILTER_NOT_FOUND // // MessageText: // // The filter does not exist. // // // MessageId: FWP_E_LAYER_NOT_FOUND // // MessageText: // // The layer does not exist. // // // MessageId: FWP_E_PROVIDER_NOT_FOUND // // MessageText: // // The provider does not exist. // // // MessageId: FWP_E_PROVIDER_CONTEXT_NOT_FOUND // // MessageText: // // The provider context does not exist. // // // MessageId: FWP_E_SUBLAYER_NOT_FOUND // // MessageText: // // The sublayer does not exist. // // // MessageId: FWP_E_NOT_FOUND // // MessageText: // // The object does not exist. // // // MessageId: FWP_E_ALREADY_EXISTS // // MessageText: // // An object with that GUID or LUID already exists. // // // MessageId: FWP_E_IN_USE // // MessageText: // // The object is referenced by other objects so cannot be deleted. // // // MessageId: FWP_E_DYNAMIC_SESSION_IN_PROGRESS // // MessageText: // // The call is not allowed from within a dynamic session. // // // MessageId: FWP_E_WRONG_SESSION // // MessageText: // // The call was made from the wrong session so cannot be completed. // // // MessageId: FWP_E_NO_TXN_IN_PROGRESS // // MessageText: // // The call must be made from within an explicit transaction. // // // MessageId: FWP_E_TXN_IN_PROGRESS // // MessageText: // // The call is not allowed from within an explicit transaction. // // // MessageId: FWP_E_TXN_ABORTED // // MessageText: // // The explicit transaction has been forcibly cancelled. // // // MessageId: FWP_E_SESSION_ABORTED // // MessageText: // // The session has been cancelled. // // // MessageId: FWP_E_INCOMPATIBLE_TXN // // MessageText: // // The call is not allowed from within a read-only transaction. // // // MessageId: FWP_E_TIMEOUT // // MessageText: // // The call timed out while waiting to acquire the transaction lock. // // // MessageId: FWP_E_NET_EVENTS_DISABLED // // MessageText: // // Collection of network diagnostic events is disabled. // // // MessageId: FWP_E_INCOMPATIBLE_LAYER // // MessageText: // // The operation is not supported by the specified layer. // // // MessageId: FWP_E_KM_CLIENTS_ONLY // // MessageText: // // The call is allowed for kernel-mode callers only. // // // MessageId: FWP_E_LIFETIME_MISMATCH // // MessageText: // // The call tried to associate two objects with incompatible lifetimes. // // // MessageId: FWP_E_BUILTIN_OBJECT // // MessageText: // // The object is built in so cannot be deleted. // // // MessageId: FWP_E_TOO_MANY_CALLOUTS // // MessageText: // // The maximum number of callouts has been reached. // // // MessageId: FWP_E_NOTIFICATION_DROPPED // // MessageText: // // A notification could not be delivered because a message queue is at its maximum capacity. // // // MessageId: FWP_E_TRAFFIC_MISMATCH // // MessageText: // // The traffic parameters do not match those for the security association context. // // // MessageId: FWP_E_INCOMPATIBLE_SA_STATE // // MessageText: // // The call is not allowed for the current security association state. // // // MessageId: FWP_E_NULL_POINTER // // MessageText: // // A required pointer is null. // // // MessageId: FWP_E_INVALID_ENUMERATOR // // MessageText: // // An enumerator is not valid. // // // MessageId: FWP_E_INVALID_FLAGS // // MessageText: // // The flags field contains an invalid value. // // // MessageId: FWP_E_INVALID_NET_MASK // // MessageText: // // A network mask is not valid. // // // MessageId: FWP_E_INVALID_RANGE // // MessageText: // // An FWP_RANGE is not valid. // // // MessageId: FWP_E_INVALID_INTERVAL // // MessageText: // // The time interval is not valid. // // // MessageId: FWP_E_ZERO_LENGTH_ARRAY // // MessageText: // // An array that must contain at least one element is zero length. // // // MessageId: FWP_E_NULL_DISPLAY_NAME // // MessageText: // // The displayData.name field cannot be null. // // // MessageId: FWP_E_INVALID_ACTION_TYPE // // MessageText: // // The action type is not one of the allowed action types for a filter. // // // MessageId: FWP_E_INVALID_WEIGHT // // MessageText: // // The filter weight is not valid. // // // MessageId: FWP_E_MATCH_TYPE_MISMATCH // // MessageText: // // A filter condition contains a match type that is not compatible with the operands. // // // MessageId: FWP_E_TYPE_MISMATCH // // MessageText: // // An FWP_VALUE or FWPM_CONDITION_VALUE is of the wrong type. // // // MessageId: FWP_E_OUT_OF_BOUNDS // // MessageText: // // An integer value is outside the allowed range. // // // MessageId: FWP_E_RESERVED // // MessageText: // // A reserved field is non-zero. // // // MessageId: FWP_E_DUPLICATE_CONDITION // // MessageText: // // A filter cannot contain multiple conditions operating on a single field. // // // MessageId: FWP_E_DUPLICATE_KEYMOD // // MessageText: // // A policy cannot contain the same keying module more than once. // // // MessageId: FWP_E_ACTION_INCOMPATIBLE_WITH_LAYER // // MessageText: // // The action type is not compatible with the layer. // // // MessageId: FWP_E_ACTION_INCOMPATIBLE_WITH_SUBLAYER // // MessageText: // // The action type is not compatible with the sublayer. // // // MessageId: FWP_E_CONTEXT_INCOMPATIBLE_WITH_LAYER // // MessageText: // // The raw context or the provider context is not compatible with the layer. // // // MessageId: FWP_E_CONTEXT_INCOMPATIBLE_WITH_CALLOUT // // MessageText: // // The raw context or the provider context is not compatible with the callout. // // // MessageId: FWP_E_INCOMPATIBLE_AUTH_METHOD // // MessageText: // // The authentication method is not compatible with the policy type. // // // MessageId: FWP_E_INCOMPATIBLE_DH_GROUP // // MessageText: // // The Diffie-Hellman group is not compatible with the policy type. // // // MessageId: FWP_E_EM_NOT_SUPPORTED // // MessageText: // // An IKE policy cannot contain an Extended Mode policy. // // // MessageId: FWP_E_NEVER_MATCH // // MessageText: // // The enumeration template or subscription will never match any objects. // // // MessageId: FWP_E_PROVIDER_CONTEXT_MISMATCH // // MessageText: // // The provider context is of the wrong type. // // // MessageId: FWP_E_INVALID_PARAMETER // // MessageText: // // The parameter is incorrect. // // // MessageId: FWP_E_TOO_MANY_SUBLAYERS // // MessageText: // // The maximum number of sublayers has been reached. // // // MessageId: FWP_E_CALLOUT_NOTIFICATION_FAILED // // MessageText: // // The notification function for a callout returned an error. // // // MessageId: FWP_E_INVALID_AUTH_TRANSFORM // // MessageText: // // The IPsec authentication transform is not valid. // // // MessageId: FWP_E_INVALID_CIPHER_TRANSFORM // // MessageText: // // The IPsec cipher transform is not valid. // // // NDIS error codes (ndis.sys) // #line 39121 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winerror.h" // // MessageId: ERROR_NDIS_INTERFACE_CLOSING // // MessageText: // // The binding to the network interface is being closed. // // // MessageId: ERROR_NDIS_BAD_VERSION // // MessageText: // // An invalid version was specified. // // // MessageId: ERROR_NDIS_BAD_CHARACTERISTICS // // MessageText: // // An invalid characteristics table was used. // // // MessageId: ERROR_NDIS_ADAPTER_NOT_FOUND // // MessageText: // // Failed to find the network interface or network interface is not ready. // // // MessageId: ERROR_NDIS_OPEN_FAILED // // MessageText: // // Failed to open the network interface. // // // MessageId: ERROR_NDIS_DEVICE_FAILED // // MessageText: // // Network interface has encountered an internal unrecoverable failure. // // // MessageId: ERROR_NDIS_MULTICAST_FULL // // MessageText: // // The multicast list on the network interface is full. // // // MessageId: ERROR_NDIS_MULTICAST_EXISTS // // MessageText: // // An attempt was made to add a duplicate multicast address to the list. // // // MessageId: ERROR_NDIS_MULTICAST_NOT_FOUND // // MessageText: // // At attempt was made to remove a multicast address that was never added. // // // MessageId: ERROR_NDIS_REQUEST_ABORTED // // MessageText: // // Netowork interface aborted the request. // // // MessageId: ERROR_NDIS_RESET_IN_PROGRESS // // MessageText: // // Network interface can not process the request because it is being reset. // // // MessageId: ERROR_NDIS_NOT_SUPPORTED // // MessageText: // // Netword interface does not support this request. // // // MessageId: ERROR_NDIS_INVALID_PACKET // // MessageText: // // An attempt was made to send an invalid packet on a network interface. // // // MessageId: ERROR_NDIS_ADAPTER_NOT_READY // // MessageText: // // Network interface is not ready to complete this operation. // // // MessageId: ERROR_NDIS_INVALID_LENGTH // // MessageText: // // The length of the buffer submitted for this operation is not valid. // // // MessageId: ERROR_NDIS_INVALID_DATA // // MessageText: // // The data used for this operation is not valid. // // // MessageId: ERROR_NDIS_BUFFER_TOO_SHORT // // MessageText: // // The length of buffer submitted for this operation is too small. // // // MessageId: ERROR_NDIS_INVALID_OID // // MessageText: // // Network interface does not support this OID (Object Identifier) // // // MessageId: ERROR_NDIS_ADAPTER_REMOVED // // MessageText: // // The network interface has been removed. // // // MessageId: ERROR_NDIS_UNSUPPORTED_MEDIA // // MessageText: // // Network interface does not support this media type. // // // MessageId: ERROR_NDIS_GROUP_ADDRESS_IN_USE // // MessageText: // // An attempt was made to remove a token ring group address that is in use by other components. // // // MessageId: ERROR_NDIS_FILE_NOT_FOUND // // MessageText: // // An attempt was made to map a file that can not be found. // // // MessageId: ERROR_NDIS_ERROR_READING_FILE // // MessageText: // // An error occured while NDIS tried to map the file. // // // MessageId: ERROR_NDIS_ALREADY_MAPPED // // MessageText: // // An attempt was made to map a file that is alreay mapped. // // // MessageId: ERROR_NDIS_RESOURCE_CONFLICT // // MessageText: // // An attempt to allocate a hardware resource failed because the resource is used by another component. // // // MessageId: ERROR_NDIS_MEDIA_DISCONNECTED // // MessageText: // // The I/O operation failed because network media is disconnected or wireless access point is out of range. // // // MessageId: ERROR_NDIS_INVALID_ADDRESS // // MessageText: // // The network address used in the request is invalid. // // // MessageId: ERROR_NDIS_INVALID_DEVICE_REQUEST // // MessageText: // // The specified request is not a valid operation for the target device. // // // MessageId: ERROR_NDIS_PAUSED // // MessageText: // // The offload operation on the network interface has been paused. // // // MessageId: ERROR_NDIS_INTERFACE_NOT_FOUND // // MessageText: // // Network interface was not found. // // // MessageId: ERROR_NDIS_UNSUPPORTED_REVISION // // MessageText: // // The revision number specified in the structure is not supported. // // // MessageId: ERROR_NDIS_INVALID_PORT // // MessageText: // // The specified port does not exist on this network interface. // // // MessageId: ERROR_NDIS_INVALID_PORT_STATE // // MessageText: // // The current state of the specified port on this network interface does not support the requested operation. // // // MessageId: ERROR_NDIS_LOW_POWER_STATE // // MessageText: // // The miniport adapter is in low power state. // // // NDIS error codes (802.11 wireless LAN) // // // MessageId: ERROR_NDIS_DOT11_AUTO_CONFIG_ENABLED // // MessageText: // // The wireless local area network interface is in auto configuration mode and doesn't support the requested parameter change operation. // // // MessageId: ERROR_NDIS_DOT11_MEDIA_IN_USE // // MessageText: // // The wireless local area network interface is busy and can not perform the requested operation. // // // MessageId: ERROR_NDIS_DOT11_POWER_STATE_INVALID // // MessageText: // // The wireless local area network interface is power down and doesn't support the requested operation. // // // NDIS informational code (ndis.sys) // // // MessageId: ERROR_NDIS_INDICATION_REQUIRED // // MessageText: // // The request will be completed later by NDIS status indication. // #line 39474 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winerror.h" #line 12857 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" /* Abnormal termination codes */ // // Power Management APIs // typedef struct _SYSTEM_POWER_STATUS { BYTE ACLineStatus; BYTE BatteryFlag; BYTE BatteryLifePercent; BYTE Reserved1; DWORD BatteryLifeTime; DWORD BatteryFullLifeTime; } SYSTEM_POWER_STATUS, *LPSYSTEM_POWER_STATUS; BOOL __stdcall GetSystemPowerStatus( LPSYSTEM_POWER_STATUS lpSystemPowerStatus ); BOOL __stdcall SetSystemPowerState( BOOL fSuspend, BOOL fForce ); #line 12909 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" // // Very Large Memory API Subset // __declspec(dllimport) BOOL __stdcall AllocateUserPhysicalPages( HANDLE hProcess, PULONG_PTR NumberOfPages, PULONG_PTR PageArray ); #line 12937 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall FreeUserPhysicalPages( HANDLE hProcess, PULONG_PTR NumberOfPages, PULONG_PTR PageArray ); __declspec(dllimport) BOOL __stdcall MapUserPhysicalPages( PVOID VirtualAddress, ULONG_PTR NumberOfPages, PULONG_PTR PageArray ); __declspec(dllimport) BOOL __stdcall MapUserPhysicalPagesScatter( PVOID *VirtualAddresses, ULONG_PTR NumberOfPages, PULONG_PTR PageArray ); __declspec(dllimport) HANDLE __stdcall CreateJobObjectA( LPSECURITY_ATTRIBUTES lpJobAttributes, LPCSTR lpName ); __declspec(dllimport) HANDLE __stdcall CreateJobObjectW( LPSECURITY_ATTRIBUTES lpJobAttributes, LPCWSTR lpName ); #line 12986 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) HANDLE __stdcall OpenJobObjectA( DWORD dwDesiredAccess, BOOL bInheritHandle, LPCSTR lpName ); __declspec(dllimport) HANDLE __stdcall OpenJobObjectW( DWORD dwDesiredAccess, BOOL bInheritHandle, LPCWSTR lpName ); #line 13010 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall AssignProcessToJobObject( HANDLE hJob, HANDLE hProcess ); __declspec(dllimport) BOOL __stdcall TerminateJobObject( HANDLE hJob, UINT uExitCode ); __declspec(dllimport) BOOL __stdcall QueryInformationJobObject( HANDLE hJob, JOBOBJECTINFOCLASS JobObjectInformationClass, LPVOID lpJobObjectInformation, DWORD cbJobObjectInformationLength, LPDWORD lpReturnLength ); __declspec(dllimport) BOOL __stdcall SetInformationJobObject( HANDLE hJob, JOBOBJECTINFOCLASS JobObjectInformationClass, LPVOID lpJobObjectInformation, DWORD cbJobObjectInformationLength ); __declspec(dllimport) BOOL __stdcall IsProcessInJob ( HANDLE ProcessHandle, HANDLE JobHandle, PBOOL Result ); #line 13060 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall CreateJobSet ( ULONG NumJob, PJOB_SET_ARRAY UserJobSet, ULONG Flags); __declspec(dllimport) PVOID __stdcall AddVectoredExceptionHandler ( ULONG First, PVECTORED_EXCEPTION_HANDLER Handler ); __declspec(dllimport) ULONG __stdcall RemoveVectoredExceptionHandler ( PVOID Handle ); __declspec(dllimport) PVOID __stdcall AddVectoredContinueHandler ( ULONG First, PVECTORED_EXCEPTION_HANDLER Handler ); __declspec(dllimport) ULONG __stdcall RemoveVectoredContinueHandler ( PVOID Handle ); // // New Volume Mount Point API. // __declspec(dllimport) HANDLE __stdcall FindFirstVolumeA( LPSTR lpszVolumeName, DWORD cchBufferLength ); __declspec(dllimport) HANDLE __stdcall FindFirstVolumeW( LPWSTR lpszVolumeName, DWORD cchBufferLength ); #line 13126 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall FindNextVolumeA( HANDLE hFindVolume, LPSTR lpszVolumeName, DWORD cchBufferLength ); __declspec(dllimport) BOOL __stdcall FindNextVolumeW( HANDLE hFindVolume, LPWSTR lpszVolumeName, DWORD cchBufferLength ); #line 13148 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall FindVolumeClose( HANDLE hFindVolume ); __declspec(dllimport) HANDLE __stdcall FindFirstVolumeMountPointA( LPCSTR lpszRootPathName, LPSTR lpszVolumeMountPoint, DWORD cchBufferLength ); __declspec(dllimport) HANDLE __stdcall FindFirstVolumeMountPointW( LPCWSTR lpszRootPathName, LPWSTR lpszVolumeMountPoint, DWORD cchBufferLength ); #line 13179 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall FindNextVolumeMountPointA( HANDLE hFindVolumeMountPoint, LPSTR lpszVolumeMountPoint, DWORD cchBufferLength ); __declspec(dllimport) BOOL __stdcall FindNextVolumeMountPointW( HANDLE hFindVolumeMountPoint, LPWSTR lpszVolumeMountPoint, DWORD cchBufferLength ); #line 13201 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall FindVolumeMountPointClose( HANDLE hFindVolumeMountPoint ); __declspec(dllimport) BOOL __stdcall SetVolumeMountPointA( LPCSTR lpszVolumeMountPoint, LPCSTR lpszVolumeName ); __declspec(dllimport) BOOL __stdcall SetVolumeMountPointW( LPCWSTR lpszVolumeMountPoint, LPCWSTR lpszVolumeName ); #line 13228 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall DeleteVolumeMountPointA( LPCSTR lpszVolumeMountPoint ); __declspec(dllimport) BOOL __stdcall DeleteVolumeMountPointW( LPCWSTR lpszVolumeMountPoint ); #line 13246 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall GetVolumeNameForVolumeMountPointA( LPCSTR lpszVolumeMountPoint, LPSTR lpszVolumeName, DWORD cchBufferLength ); __declspec(dllimport) BOOL __stdcall GetVolumeNameForVolumeMountPointW( LPCWSTR lpszVolumeMountPoint, LPWSTR lpszVolumeName, DWORD cchBufferLength ); #line 13268 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall GetVolumePathNameA( LPCSTR lpszFileName, LPSTR lpszVolumePathName, DWORD cchBufferLength ); __declspec(dllimport) BOOL __stdcall GetVolumePathNameW( LPCWSTR lpszFileName, LPWSTR lpszVolumePathName, DWORD cchBufferLength ); #line 13290 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall GetVolumePathNamesForVolumeNameA( LPCSTR lpszVolumeName, LPCH lpszVolumePathNames, DWORD cchBufferLength, PDWORD lpcchReturnLength ); __declspec(dllimport) BOOL __stdcall GetVolumePathNamesForVolumeNameW( LPCWSTR lpszVolumeName, LPWCH lpszVolumePathNames, DWORD cchBufferLength, PDWORD lpcchReturnLength ); #line 13314 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 13316 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" typedef struct tagACTCTXA { ULONG cbSize; DWORD dwFlags; LPCSTR lpSource; USHORT wProcessorArchitecture; LANGID wLangId; LPCSTR lpAssemblyDirectory; LPCSTR lpResourceName; LPCSTR lpApplicationName; HMODULE hModule; } ACTCTXA, *PACTCTXA; typedef struct tagACTCTXW { ULONG cbSize; DWORD dwFlags; LPCWSTR lpSource; USHORT wProcessorArchitecture; LANGID wLangId; LPCWSTR lpAssemblyDirectory; LPCWSTR lpResourceName; LPCWSTR lpApplicationName; HMODULE hModule; } ACTCTXW, *PACTCTXW; typedef ACTCTXW ACTCTX; typedef PACTCTXW PACTCTX; #line 13357 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" typedef const ACTCTXA *PCACTCTXA; typedef const ACTCTXW *PCACTCTXW; typedef PCACTCTXW PCACTCTX; #line 13365 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) HANDLE __stdcall CreateActCtxA( PCACTCTXA pActCtx ); __declspec(dllimport) HANDLE __stdcall CreateActCtxW( PCACTCTXW pActCtx ); #line 13387 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) void __stdcall AddRefActCtx( HANDLE hActCtx ); __declspec(dllimport) void __stdcall ReleaseActCtx( HANDLE hActCtx ); __declspec(dllimport) BOOL __stdcall ZombifyActCtx( HANDLE hActCtx ); __declspec(dllimport) BOOL __stdcall ActivateActCtx( HANDLE hActCtx, ULONG_PTR *lpCookie ); __declspec(dllimport) BOOL __stdcall DeactivateActCtx( DWORD dwFlags, ULONG_PTR ulCookie ); __declspec(dllimport) BOOL __stdcall GetCurrentActCtx( HANDLE *lphActCtx); typedef struct tagACTCTX_SECTION_KEYED_DATA_2600 { ULONG cbSize; ULONG ulDataFormatVersion; PVOID lpData; ULONG ulLength; PVOID lpSectionGlobalData; ULONG ulSectionGlobalDataLength; PVOID lpSectionBase; ULONG ulSectionTotalLength; HANDLE hActCtx; ULONG ulAssemblyRosterIndex; } ACTCTX_SECTION_KEYED_DATA_2600, *PACTCTX_SECTION_KEYED_DATA_2600; typedef const ACTCTX_SECTION_KEYED_DATA_2600 * PCACTCTX_SECTION_KEYED_DATA_2600; typedef struct tagACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA { PVOID lpInformation; PVOID lpSectionBase; ULONG ulSectionLength; PVOID lpSectionGlobalDataBase; ULONG ulSectionGlobalDataLength; } ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, *PACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA; typedef const ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA *PCACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA; typedef struct tagACTCTX_SECTION_KEYED_DATA { ULONG cbSize; ULONG ulDataFormatVersion; PVOID lpData; ULONG ulLength; PVOID lpSectionGlobalData; ULONG ulSectionGlobalDataLength; PVOID lpSectionBase; ULONG ulSectionTotalLength; HANDLE hActCtx; ULONG ulAssemblyRosterIndex; // 2600 stops here ULONG ulFlags; ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA AssemblyMetadata; } ACTCTX_SECTION_KEYED_DATA, *PACTCTX_SECTION_KEYED_DATA; typedef const ACTCTX_SECTION_KEYED_DATA * PCACTCTX_SECTION_KEYED_DATA; __declspec(dllimport) BOOL __stdcall FindActCtxSectionStringA( DWORD dwFlags, const GUID *lpExtensionGuid, ULONG ulSectionId, LPCSTR lpStringToFind, PACTCTX_SECTION_KEYED_DATA ReturnedData ); __declspec(dllimport) BOOL __stdcall FindActCtxSectionStringW( DWORD dwFlags, const GUID *lpExtensionGuid, ULONG ulSectionId, LPCWSTR lpStringToFind, PACTCTX_SECTION_KEYED_DATA ReturnedData ); #line 13508 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall FindActCtxSectionGuid( DWORD dwFlags, const GUID *lpExtensionGuid, ULONG ulSectionId, const GUID *lpGuidToFind, PACTCTX_SECTION_KEYED_DATA ReturnedData ); typedef struct _ACTIVATION_CONTEXT_BASIC_INFORMATION { HANDLE hActCtx; DWORD dwFlags; } ACTIVATION_CONTEXT_BASIC_INFORMATION, *PACTIVATION_CONTEXT_BASIC_INFORMATION; typedef const struct _ACTIVATION_CONTEXT_BASIC_INFORMATION *PCACTIVATION_CONTEXT_BASIC_INFORMATION; #line 13534 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 13535 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" // // switch (ulInfoClass) // // case ActivationContextBasicInformation: // pvSubInstance == NULL // pvBuffer is of type PACTIVATION_CONTEXT_BASIC_INFORMATION // // case ActivationContextDetailedInformation: // pvSubInstance == NULL // pvBuffer is of type PACTIVATION_CONTEXT_DETAILED_INFORMATION // // case AssemblyDetailedInformationInActivationContext: // pvSubInstance is of type PULONG // *pvSubInstance < ACTIVATION_CONTEXT_DETAILED_INFORMATION::ulAssemblyCount // pvBuffer is of type PACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION // // case FileInformationInAssemblyOfAssemblyInActivationContext: // pvSubInstance is of type PACTIVATION_CONTEXT_QUERY_INDEX // pvSubInstance->ulAssemblyIndex < ACTIVATION_CONTEXT_DETAILED_INFORMATION::ulAssemblyCount // pvSubInstance->ulFileIndexInAssembly < ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION::ulFileCount // pvBuffer is of type PASSEMBLY_FILE_DETAILED_INFORMATION // // case RunlevelInformationInActivationContext : // pvSubInstance == NULL // pvBuffer is of type PACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION // // String are placed after the structs. // __declspec(dllimport) BOOL __stdcall QueryActCtxW( DWORD dwFlags, HANDLE hActCtx, PVOID pvSubInstance, ULONG ulInfoClass, PVOID pvBuffer, SIZE_T cbBuffer, SIZE_T *pcbWrittenOrRequired ); typedef BOOL (__stdcall * PQUERYACTCTXW_FUNC)( DWORD dwFlags, HANDLE hActCtx, PVOID pvSubInstance, ULONG ulInfoClass, PVOID pvBuffer, SIZE_T cbBuffer, SIZE_T *pcbWrittenOrRequired ); #line 13595 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall ProcessIdToSessionId( DWORD dwProcessId, DWORD *pSessionId ); __declspec(dllimport) DWORD __stdcall WTSGetActiveConsoleSessionId( void ); __declspec(dllimport) BOOL __stdcall IsWow64Process( HANDLE hProcess, PBOOL Wow64Process ); #line 13623 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" __declspec(dllimport) BOOL __stdcall GetLogicalProcessorInformation( PSYSTEM_LOGICAL_PROCESSOR_INFORMATION Buffer, PDWORD ReturnedLength ); // // NUMA Information routines. // __declspec(dllimport) BOOL __stdcall GetNumaHighestNodeNumber( PULONG HighestNodeNumber ); __declspec(dllimport) BOOL __stdcall GetNumaProcessorNode( UCHAR Processor, PUCHAR NodeNumber ); __declspec(dllimport) BOOL __stdcall GetNumaNodeProcessorMask( UCHAR Node, PULONGLONG ProcessorMask ); __declspec(dllimport) BOOL __stdcall GetNumaAvailableMemoryNode( UCHAR Node, PULONGLONG AvailableBytes ); #line 13678 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" // // Application restart and data recovery callback // typedef DWORD (__stdcall *APPLICATION_RECOVERY_CALLBACK)(PVOID pvParameter); // // Max length of commandline in characters (including the NULL character that can be registered for restart) // // // Do not restart the process for termination due to application crashes // // // Do not restart the process for termination due to application hangs // // // Do not restart the process for termination due to patch installations // // // Do not restart the process when the system is rebooted because the // __declspec(dllimport) HRESULT __stdcall RegisterApplicationRecoveryCallback( APPLICATION_RECOVERY_CALLBACK pRecoveyCallback, PVOID pvParameter, DWORD dwPingInterval, DWORD dwFlags ); __declspec(dllimport) HRESULT __stdcall UnregisterApplicationRecoveryCallback(); __declspec(dllimport) HRESULT __stdcall RegisterApplicationRestart( PCWSTR pwzCommandline, DWORD dwFlags ); __declspec(dllimport) HRESULT __stdcall UnregisterApplicationRestart(); __declspec(dllimport) HRESULT __stdcall GetApplicationRecoveryCallback( HANDLE hProcess, APPLICATION_RECOVERY_CALLBACK* pRecoveryCallback, PVOID* ppvParameter, PDWORD pdwPingInterval, PDWORD pdwFlags ); __declspec(dllimport) HRESULT __stdcall GetApplicationRestartSettings( HANDLE hProcess, PWSTR pwzCommandline, PDWORD pcchSize, PDWORD pdwFlags ); __declspec(dllimport) HRESULT __stdcall ApplicationRecoveryInProgress( PBOOL pbCancelled ); __declspec(dllimport) void __stdcall ApplicationRecoveryFinished( BOOL bSuccess ); #line 13931 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 14007 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 14025 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 14033 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 14034 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" } #line 14038 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 14042 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winbase.h" #line 157 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windows.h" #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" /************************************************************************** * * * wingdi.h -- GDI procedure declarations, constant definitions and macros * * * * Copyright (c) Microsoft Corp. All rights reserved. * * * **************************************************************************/ #pragma once // // Define API decoration for direct importing of DLL references. // #line 27 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" // // Define API decoration for direct importing of DLL references. // #line 37 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" extern "C" { #line 41 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" /* Binary raster ops */ /* Ternary raster operations */ #line 90 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" /* Quaternary raster codes */ #line 95 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 102 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" /* Region Flags */ /* CombineRgn() Styles */ /* StretchBlt() Modes */ /* New StretchBlt() Modes */ #line 133 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" /* PolyFill() Modes */ /* Layout Orientation Options */ #line 147 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" /* Text Alignment Options */ #line 165 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 182 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 185 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 188 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" /* Bounds Accumulation APIs */ /* Metafile Functions */ #line 267 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" typedef struct _DRAWPATRECT { POINT ptPosition; POINT ptSize; WORD wStyle; WORD wPattern; } DRAWPATRECT, *PDRAWPATRECT; #line 283 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 285 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" /* GDI Escapes */ /* * Return Values for MILCORE_TS_QUERYVER */ #line 386 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" /* * Parameters for POSTSCRIPT_IDENTIFY escape */ /* * Header structure for the input buffer to POSTSCRIPT_INJECTION escape */ typedef struct _PSINJECTDATA { DWORD DataBytes; /* number of raw data bytes (NOT including this header) */ WORD InjectionPoint; /* injection point */ WORD PageNumber; /* page number to apply the injection */ /* Followed by raw data to be injected */ } PSINJECTDATA, *PPSINJECTDATA; /* * Constants for PSINJECTDATA.InjectionPoint field */ /* * Parameter for GET_PS_FEATURESETTING escape */ // // The range of selectors between FEATURESETTING_PRIVATE_BEGIN and // FEATURESETTING_PRIVATE_END is reserved by Microsoft for private use // #line 472 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" /* * Information about output options */ typedef struct _PSFEATURE_OUTPUT { BOOL bPageIndependent; BOOL bSetPageDevice; } PSFEATURE_OUTPUT, *PPSFEATURE_OUTPUT; /* * Information about custom paper size */ typedef struct _PSFEATURE_CUSTPAPER { LONG lOrientation; LONG lWidth; LONG lHeight; LONG lWidthOffset; LONG lHeightOffset; } PSFEATURE_CUSTPAPER, *PPSFEATURE_CUSTPAPER; /* Value returned for FEATURESETTING_PROTOCOL */ /* Flag returned from QUERYDIBSUPPORT */ /* Spooler Error Codes */ /* Object Definitions for EnumObjects() */ /* xform stuff */ typedef struct tagXFORM { FLOAT eM11; FLOAT eM12; FLOAT eM21; FLOAT eM22; FLOAT eDx; FLOAT eDy; } XFORM, *PXFORM, *LPXFORM; /* Bitmap Header Definition */ typedef struct tagBITMAP { LONG bmType; LONG bmWidth; LONG bmHeight; LONG bmWidthBytes; WORD bmPlanes; WORD bmBitsPixel; LPVOID bmBits; } BITMAP, *PBITMAP, *NPBITMAP, *LPBITMAP; #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\pshpack1.h" /*++ Copyright (c) Microsoft Corporation. All rights reserved. Module Name: pshpack1.h Abstract: This file turns 1 byte packing of structures on. (That is, it disables automatic alignment of structure fields.) An include file is needed because various compilers do this in different ways. For Microsoft compatible compilers, this files uses the push option to the pack pragma so that the poppack.h include file can restore the previous packing reliably. The file poppack.h is the complement to this file. --*/ #pragma warning(disable:4103) #pragma pack(push,1) #line 30 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\pshpack1.h" #line 33 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\pshpack1.h" #line 34 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\pshpack1.h" #line 570 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" typedef struct tagRGBTRIPLE { BYTE rgbtBlue; BYTE rgbtGreen; BYTE rgbtRed; } RGBTRIPLE, *PRGBTRIPLE, *NPRGBTRIPLE, *LPRGBTRIPLE; #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\poppack.h" /*++ Copyright (c) Microsoft Corporation. All rights reserved. Module Name: poppack.h Abstract: This file turns packing of structures off. (That is, it enables automatic alignment of structure fields.) An include file is needed because various compilers do this in different ways. poppack.h is the complement to pshpack?.h. An inclusion of poppack.h MUST ALWAYS be preceded by an inclusion of one of pshpack?.h, in one-to-one correspondence. For Microsoft compatible compilers, this file uses the pop option to the pack pragma so that it can restore the previous saved by the pshpack?.h include file. --*/ #pragma warning(disable:4103) #pragma pack(pop) #line 33 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\poppack.h" #line 36 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\poppack.h" #line 37 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\poppack.h" #line 576 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" typedef struct tagRGBQUAD { BYTE rgbBlue; BYTE rgbGreen; BYTE rgbRed; BYTE rgbReserved; } RGBQUAD; typedef RGBQUAD * LPRGBQUAD; /* Image Color Matching color definitions */ /* Logcolorspace signature */ /* Logcolorspace lcsType values */ typedef LONG LCSCSTYPE; typedef LONG LCSGAMUTMATCH; /* ICM Defines for results from CheckColorInGamut() */ /* UpdateICMRegKey Constants */ /* Macros to retrieve CMYK values from a COLORREF */ typedef long FXPT16DOT16, *LPFXPT16DOT16; typedef long FXPT2DOT30, *LPFXPT2DOT30; /* ICM Color Definitions */ // The following two structures are used for defining RGB's in terms of CIEXYZ. typedef struct tagCIEXYZ { FXPT2DOT30 ciexyzX; FXPT2DOT30 ciexyzY; FXPT2DOT30 ciexyzZ; } CIEXYZ; typedef CIEXYZ *LPCIEXYZ; typedef struct tagICEXYZTRIPLE { CIEXYZ ciexyzRed; CIEXYZ ciexyzGreen; CIEXYZ ciexyzBlue; } CIEXYZTRIPLE; typedef CIEXYZTRIPLE *LPCIEXYZTRIPLE; // The next structures the logical color space. Unlike pens and brushes, // but like palettes, there is only one way to create a LogColorSpace. // A pointer to it must be passed, its elements can't be pushed as // arguments. typedef struct tagLOGCOLORSPACEA { DWORD lcsSignature; DWORD lcsVersion; DWORD lcsSize; LCSCSTYPE lcsCSType; LCSGAMUTMATCH lcsIntent; CIEXYZTRIPLE lcsEndpoints; DWORD lcsGammaRed; DWORD lcsGammaGreen; DWORD lcsGammaBlue; CHAR lcsFilename[260]; } LOGCOLORSPACEA, *LPLOGCOLORSPACEA; typedef struct tagLOGCOLORSPACEW { DWORD lcsSignature; DWORD lcsVersion; DWORD lcsSize; LCSCSTYPE lcsCSType; LCSGAMUTMATCH lcsIntent; CIEXYZTRIPLE lcsEndpoints; DWORD lcsGammaRed; DWORD lcsGammaGreen; DWORD lcsGammaBlue; WCHAR lcsFilename[260]; } LOGCOLORSPACEW, *LPLOGCOLORSPACEW; typedef LOGCOLORSPACEW LOGCOLORSPACE; typedef LPLOGCOLORSPACEW LPLOGCOLORSPACE; #line 690 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 692 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" /* structures for defining DIBs */ typedef struct tagBITMAPCOREHEADER { DWORD bcSize; /* used to get to color table */ WORD bcWidth; WORD bcHeight; WORD bcPlanes; WORD bcBitCount; } BITMAPCOREHEADER, *LPBITMAPCOREHEADER, *PBITMAPCOREHEADER; typedef struct tagBITMAPINFOHEADER{ DWORD biSize; LONG biWidth; LONG biHeight; WORD biPlanes; WORD biBitCount; DWORD biCompression; DWORD biSizeImage; LONG biXPelsPerMeter; LONG biYPelsPerMeter; DWORD biClrUsed; DWORD biClrImportant; } BITMAPINFOHEADER, *LPBITMAPINFOHEADER, *PBITMAPINFOHEADER; typedef struct { DWORD bV4Size; LONG bV4Width; LONG bV4Height; WORD bV4Planes; WORD bV4BitCount; DWORD bV4V4Compression; DWORD bV4SizeImage; LONG bV4XPelsPerMeter; LONG bV4YPelsPerMeter; DWORD bV4ClrUsed; DWORD bV4ClrImportant; DWORD bV4RedMask; DWORD bV4GreenMask; DWORD bV4BlueMask; DWORD bV4AlphaMask; DWORD bV4CSType; CIEXYZTRIPLE bV4Endpoints; DWORD bV4GammaRed; DWORD bV4GammaGreen; DWORD bV4GammaBlue; } BITMAPV4HEADER, *LPBITMAPV4HEADER, *PBITMAPV4HEADER; #line 740 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" typedef struct { DWORD bV5Size; LONG bV5Width; LONG bV5Height; WORD bV5Planes; WORD bV5BitCount; DWORD bV5Compression; DWORD bV5SizeImage; LONG bV5XPelsPerMeter; LONG bV5YPelsPerMeter; DWORD bV5ClrUsed; DWORD bV5ClrImportant; DWORD bV5RedMask; DWORD bV5GreenMask; DWORD bV5BlueMask; DWORD bV5AlphaMask; DWORD bV5CSType; CIEXYZTRIPLE bV5Endpoints; DWORD bV5GammaRed; DWORD bV5GammaGreen; DWORD bV5GammaBlue; DWORD bV5Intent; DWORD bV5ProfileData; DWORD bV5ProfileSize; DWORD bV5Reserved; } BITMAPV5HEADER, *LPBITMAPV5HEADER, *PBITMAPV5HEADER; // Values for bV5CSType #line 773 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" /* constants for the biCompression field */ #line 783 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" typedef struct tagBITMAPINFO { BITMAPINFOHEADER bmiHeader; RGBQUAD bmiColors[1]; } BITMAPINFO, *LPBITMAPINFO, *PBITMAPINFO; typedef struct tagBITMAPCOREINFO { BITMAPCOREHEADER bmciHeader; RGBTRIPLE bmciColors[1]; } BITMAPCOREINFO, *LPBITMAPCOREINFO, *PBITMAPCOREINFO; #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\pshpack2.h" /*++ Copyright (c) Microsoft Corporation. All rights reserved. Module Name: pshpack2.h Abstract: This file turns 2 byte packing of structures on. (That is, it disables automatic alignment of structure fields.) An include file is needed because various compilers do this in different ways. For Microsoft compatible compilers, this files uses the push option to the pack pragma so that the poppack.h include file can restore the previous packing reliably. The file poppack.h is the complement to this file. --*/ #pragma warning(disable:4103) #pragma pack(push,2) #line 30 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\pshpack2.h" #line 33 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\pshpack2.h" #line 34 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\pshpack2.h" #line 795 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" typedef struct tagBITMAPFILEHEADER { WORD bfType; DWORD bfSize; WORD bfReserved1; WORD bfReserved2; DWORD bfOffBits; } BITMAPFILEHEADER, *LPBITMAPFILEHEADER, *PBITMAPFILEHEADER; #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\poppack.h" /*++ Copyright (c) Microsoft Corporation. All rights reserved. Module Name: poppack.h Abstract: This file turns packing of structures off. (That is, it enables automatic alignment of structure fields.) An include file is needed because various compilers do this in different ways. poppack.h is the complement to pshpack?.h. An inclusion of poppack.h MUST ALWAYS be preceded by an inclusion of one of pshpack?.h, in one-to-one correspondence. For Microsoft compatible compilers, this file uses the pop option to the pack pragma so that it can restore the previous saved by the pshpack?.h include file. --*/ #pragma warning(disable:4103) #pragma pack(pop) #line 33 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\poppack.h" #line 36 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\poppack.h" #line 37 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\poppack.h" #line 803 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" typedef struct tagFONTSIGNATURE { DWORD fsUsb[4]; DWORD fsCsb[2]; } FONTSIGNATURE, *PFONTSIGNATURE, *LPFONTSIGNATURE; typedef struct tagCHARSETINFO { UINT ciCharset; UINT ciACP; FONTSIGNATURE fs; } CHARSETINFO, *PCHARSETINFO, *NPCHARSETINFO, *LPCHARSETINFO; #line 827 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" typedef struct tagLOCALESIGNATURE { DWORD lsUsb[4]; DWORD lsCsbDefault[2]; DWORD lsCsbSupported[2]; } LOCALESIGNATURE, *PLOCALESIGNATURE, *LPLOCALESIGNATURE; #line 837 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 838 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" /* Clipboard Metafile Picture Structure */ typedef struct tagHANDLETABLE { HGDIOBJ objectHandle[1]; } HANDLETABLE, *PHANDLETABLE, *LPHANDLETABLE; typedef struct tagMETARECORD { DWORD rdSize; WORD rdFunction; WORD rdParm[1]; } METARECORD; typedef struct tagMETARECORD *PMETARECORD; typedef struct tagMETARECORD *LPMETARECORD; typedef struct tagMETAFILEPICT { LONG mm; LONG xExt; LONG yExt; HMETAFILE hMF; } METAFILEPICT, *LPMETAFILEPICT; #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\pshpack2.h" /*++ Copyright (c) Microsoft Corporation. All rights reserved. Module Name: pshpack2.h Abstract: This file turns 2 byte packing of structures on. (That is, it disables automatic alignment of structure fields.) An include file is needed because various compilers do this in different ways. For Microsoft compatible compilers, this files uses the push option to the pack pragma so that the poppack.h include file can restore the previous packing reliably. The file poppack.h is the complement to this file. --*/ #pragma warning(disable:4103) #pragma pack(push,2) #line 30 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\pshpack2.h" #line 33 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\pshpack2.h" #line 34 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\pshpack2.h" #line 865 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" typedef struct tagMETAHEADER { WORD mtType; WORD mtHeaderSize; WORD mtVersion; DWORD mtSize; WORD mtNoObjects; DWORD mtMaxRecord; WORD mtNoParameters; } METAHEADER; typedef struct tagMETAHEADER *PMETAHEADER; typedef struct tagMETAHEADER *LPMETAHEADER; #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\poppack.h" /*++ Copyright (c) Microsoft Corporation. All rights reserved. Module Name: poppack.h Abstract: This file turns packing of structures off. (That is, it enables automatic alignment of structure fields.) An include file is needed because various compilers do this in different ways. poppack.h is the complement to pshpack?.h. An inclusion of poppack.h MUST ALWAYS be preceded by an inclusion of one of pshpack?.h, in one-to-one correspondence. For Microsoft compatible compilers, this file uses the pop option to the pack pragma so that it can restore the previous saved by the pshpack?.h include file. --*/ #pragma warning(disable:4103) #pragma pack(pop) #line 33 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\poppack.h" #line 36 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\poppack.h" #line 37 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\poppack.h" #line 879 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" /* Enhanced Metafile structures */ typedef struct tagENHMETARECORD { DWORD iType; // Record type EMR_XXX DWORD nSize; // Record size in bytes DWORD dParm[1]; // Parameters } ENHMETARECORD, *PENHMETARECORD, *LPENHMETARECORD; typedef struct tagENHMETAHEADER { DWORD iType; // Record typeEMR_HEADER DWORD nSize; // Record size in bytes. This may be greater // than the sizeof(ENHMETAHEADER). RECTL rclBounds; // Inclusive-inclusive bounds in device units RECTL rclFrame; // Inclusive-inclusive Picture Frame of metafile in .01 mm units DWORD dSignature; // Signature. Must be ENHMETA_SIGNATURE. DWORD nVersion; // Version number DWORD nBytes; // Size of the metafile in bytes DWORD nRecords; // Number of records in the metafile WORD nHandles; // Number of handles in the handle table // Handle index zero is reserved. WORD sReserved; // Reserved. Must be zero. DWORD nDescription; // Number of chars in the unicode description string // This is 0 if there is no description string DWORD offDescription; // Offset to the metafile description record. // This is 0 if there is no description string DWORD nPalEntries; // Number of entries in the metafile palette. SIZEL szlDevice; // Size of the reference device in pels SIZEL szlMillimeters; // Size of the reference device in millimeters DWORD cbPixelFormat; // Size of PIXELFORMATDESCRIPTOR information // This is 0 if no pixel format is set DWORD offPixelFormat; // Offset to PIXELFORMATDESCRIPTOR // This is 0 if no pixel format is set DWORD bOpenGL; // TRUE if OpenGL commands are present in // the metafile, otherwise FALSE #line 917 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" SIZEL szlMicrometers; // Size of the reference device in micrometers #line 920 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" } ENHMETAHEADER, *PENHMETAHEADER, *LPENHMETAHEADER; #line 924 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" /* tmPitchAndFamily flags */ // // BCHAR definition for APPs // typedef WCHAR BCHAR; #line 941 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\pshpack4.h" /*++ Copyright (c) Microsoft Corporation. All rights reserved. Module Name: pshpack4.h Abstract: This file turns 4 byte packing of structures on. (That is, it disables automatic alignment of structure fields.) An include file is needed because various compilers do this in different ways. For Microsoft compatible compilers, this files uses the push option to the pack pragma so that the poppack.h include file can restore the previous packing reliably. The file poppack.h is the complement to this file. --*/ #pragma warning(disable:4103) #pragma pack(push,4) #line 30 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\pshpack4.h" #line 33 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\pshpack4.h" #line 34 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\pshpack4.h" #line 945 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" typedef struct tagTEXTMETRICA { LONG tmHeight; LONG tmAscent; LONG tmDescent; LONG tmInternalLeading; LONG tmExternalLeading; LONG tmAveCharWidth; LONG tmMaxCharWidth; LONG tmWeight; LONG tmOverhang; LONG tmDigitizedAspectX; LONG tmDigitizedAspectY; BYTE tmFirstChar; BYTE tmLastChar; BYTE tmDefaultChar; BYTE tmBreakChar; BYTE tmItalic; BYTE tmUnderlined; BYTE tmStruckOut; BYTE tmPitchAndFamily; BYTE tmCharSet; } TEXTMETRICA, *PTEXTMETRICA, *NPTEXTMETRICA, *LPTEXTMETRICA; typedef struct tagTEXTMETRICW { LONG tmHeight; LONG tmAscent; LONG tmDescent; LONG tmInternalLeading; LONG tmExternalLeading; LONG tmAveCharWidth; LONG tmMaxCharWidth; LONG tmWeight; LONG tmOverhang; LONG tmDigitizedAspectX; LONG tmDigitizedAspectY; WCHAR tmFirstChar; WCHAR tmLastChar; WCHAR tmDefaultChar; WCHAR tmBreakChar; BYTE tmItalic; BYTE tmUnderlined; BYTE tmStruckOut; BYTE tmPitchAndFamily; BYTE tmCharSet; } TEXTMETRICW, *PTEXTMETRICW, *NPTEXTMETRICW, *LPTEXTMETRICW; typedef TEXTMETRICW TEXTMETRIC; typedef PTEXTMETRICW PTEXTMETRIC; typedef NPTEXTMETRICW NPTEXTMETRIC; typedef LPTEXTMETRICW LPTEXTMETRIC; #line 1002 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\poppack.h" /*++ Copyright (c) Microsoft Corporation. All rights reserved. Module Name: poppack.h Abstract: This file turns packing of structures off. (That is, it enables automatic alignment of structure fields.) An include file is needed because various compilers do this in different ways. poppack.h is the complement to pshpack?.h. An inclusion of poppack.h MUST ALWAYS be preceded by an inclusion of one of pshpack?.h, in one-to-one correspondence. For Microsoft compatible compilers, this file uses the pop option to the pack pragma so that it can restore the previous saved by the pshpack?.h include file. --*/ #pragma warning(disable:4103) #pragma pack(pop) #line 33 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\poppack.h" #line 36 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\poppack.h" #line 37 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\poppack.h" #line 1003 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 1004 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" /* ntmFlags field flags */ /* new in NT 5.0 */ #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\pshpack4.h" /*++ Copyright (c) Microsoft Corporation. All rights reserved. Module Name: pshpack4.h Abstract: This file turns 4 byte packing of structures on. (That is, it disables automatic alignment of structure fields.) An include file is needed because various compilers do this in different ways. For Microsoft compatible compilers, this files uses the push option to the pack pragma so that the poppack.h include file can restore the previous packing reliably. The file poppack.h is the complement to this file. --*/ #pragma warning(disable:4103) #pragma pack(push,4) #line 30 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\pshpack4.h" #line 33 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\pshpack4.h" #line 34 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\pshpack4.h" #line 1020 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" typedef struct tagNEWTEXTMETRICA { LONG tmHeight; LONG tmAscent; LONG tmDescent; LONG tmInternalLeading; LONG tmExternalLeading; LONG tmAveCharWidth; LONG tmMaxCharWidth; LONG tmWeight; LONG tmOverhang; LONG tmDigitizedAspectX; LONG tmDigitizedAspectY; BYTE tmFirstChar; BYTE tmLastChar; BYTE tmDefaultChar; BYTE tmBreakChar; BYTE tmItalic; BYTE tmUnderlined; BYTE tmStruckOut; BYTE tmPitchAndFamily; BYTE tmCharSet; DWORD ntmFlags; UINT ntmSizeEM; UINT ntmCellHeight; UINT ntmAvgWidth; } NEWTEXTMETRICA, *PNEWTEXTMETRICA, *NPNEWTEXTMETRICA, *LPNEWTEXTMETRICA; typedef struct tagNEWTEXTMETRICW { LONG tmHeight; LONG tmAscent; LONG tmDescent; LONG tmInternalLeading; LONG tmExternalLeading; LONG tmAveCharWidth; LONG tmMaxCharWidth; LONG tmWeight; LONG tmOverhang; LONG tmDigitizedAspectX; LONG tmDigitizedAspectY; WCHAR tmFirstChar; WCHAR tmLastChar; WCHAR tmDefaultChar; WCHAR tmBreakChar; BYTE tmItalic; BYTE tmUnderlined; BYTE tmStruckOut; BYTE tmPitchAndFamily; BYTE tmCharSet; DWORD ntmFlags; UINT ntmSizeEM; UINT ntmCellHeight; UINT ntmAvgWidth; } NEWTEXTMETRICW, *PNEWTEXTMETRICW, *NPNEWTEXTMETRICW, *LPNEWTEXTMETRICW; typedef NEWTEXTMETRICW NEWTEXTMETRIC; typedef PNEWTEXTMETRICW PNEWTEXTMETRIC; typedef NPNEWTEXTMETRICW NPNEWTEXTMETRIC; typedef LPNEWTEXTMETRICW LPNEWTEXTMETRIC; #line 1085 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\poppack.h" /*++ Copyright (c) Microsoft Corporation. All rights reserved. Module Name: poppack.h Abstract: This file turns packing of structures off. (That is, it enables automatic alignment of structure fields.) An include file is needed because various compilers do this in different ways. poppack.h is the complement to pshpack?.h. An inclusion of poppack.h MUST ALWAYS be preceded by an inclusion of one of pshpack?.h, in one-to-one correspondence. For Microsoft compatible compilers, this file uses the pop option to the pack pragma so that it can restore the previous saved by the pshpack?.h include file. --*/ #pragma warning(disable:4103) #pragma pack(pop) #line 33 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\poppack.h" #line 36 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\poppack.h" #line 37 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\poppack.h" #line 1086 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" typedef struct tagNEWTEXTMETRICEXA { NEWTEXTMETRICA ntmTm; FONTSIGNATURE ntmFontSig; }NEWTEXTMETRICEXA; typedef struct tagNEWTEXTMETRICEXW { NEWTEXTMETRICW ntmTm; FONTSIGNATURE ntmFontSig; }NEWTEXTMETRICEXW; typedef NEWTEXTMETRICEXW NEWTEXTMETRICEX; #line 1103 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 1104 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 1106 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" /* GDI Logical Objects: */ /* Pel Array */ typedef struct tagPELARRAY { LONG paXCount; LONG paYCount; LONG paXExt; LONG paYExt; BYTE paRGBs; } PELARRAY, *PPELARRAY, *NPPELARRAY, *LPPELARRAY; /* Logical Brush (or Pattern) */ typedef struct tagLOGBRUSH { UINT lbStyle; COLORREF lbColor; ULONG_PTR lbHatch; // Sundown: lbHatch could hold a HANDLE } LOGBRUSH, *PLOGBRUSH, *NPLOGBRUSH, *LPLOGBRUSH; typedef struct tagLOGBRUSH32 { UINT lbStyle; COLORREF lbColor; ULONG lbHatch; } LOGBRUSH32, *PLOGBRUSH32, *NPLOGBRUSH32, *LPLOGBRUSH32; typedef LOGBRUSH PATTERN; typedef PATTERN *PPATTERN; typedef PATTERN *NPPATTERN; typedef PATTERN *LPPATTERN; /* Logical Pen */ typedef struct tagLOGPEN { UINT lopnStyle; POINT lopnWidth; COLORREF lopnColor; } LOGPEN, *PLOGPEN, *NPLOGPEN, *LPLOGPEN; typedef struct tagEXTLOGPEN { DWORD elpPenStyle; DWORD elpWidth; UINT elpBrushStyle; COLORREF elpColor; ULONG_PTR elpHatch; //Sundown: elpHatch could take a HANDLE DWORD elpNumEntries; DWORD elpStyleEntry[1]; } EXTLOGPEN, *PEXTLOGPEN, *NPEXTLOGPEN, *LPEXTLOGPEN; typedef struct tagPALETTEENTRY { BYTE peRed; BYTE peGreen; BYTE peBlue; BYTE peFlags; } PALETTEENTRY, *PPALETTEENTRY, *LPPALETTEENTRY; #line 1165 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" /* Logical Palette */ typedef struct tagLOGPALETTE { WORD palVersion; WORD palNumEntries; PALETTEENTRY palPalEntry[1]; } LOGPALETTE, *PLOGPALETTE, *NPLOGPALETTE, *LPLOGPALETTE; #line 1175 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" /* Logical Font */ typedef struct tagLOGFONTA { LONG lfHeight; LONG lfWidth; LONG lfEscapement; LONG lfOrientation; LONG lfWeight; BYTE lfItalic; BYTE lfUnderline; BYTE lfStrikeOut; BYTE lfCharSet; BYTE lfOutPrecision; BYTE lfClipPrecision; BYTE lfQuality; BYTE lfPitchAndFamily; CHAR lfFaceName[32]; } LOGFONTA, *PLOGFONTA, *NPLOGFONTA, *LPLOGFONTA; typedef struct tagLOGFONTW { LONG lfHeight; LONG lfWidth; LONG lfEscapement; LONG lfOrientation; LONG lfWeight; BYTE lfItalic; BYTE lfUnderline; BYTE lfStrikeOut; BYTE lfCharSet; BYTE lfOutPrecision; BYTE lfClipPrecision; BYTE lfQuality; BYTE lfPitchAndFamily; WCHAR lfFaceName[32]; } LOGFONTW, *PLOGFONTW, *NPLOGFONTW, *LPLOGFONTW; typedef LOGFONTW LOGFONT; typedef PLOGFONTW PLOGFONT; typedef NPLOGFONTW NPLOGFONT; typedef LPLOGFONTW LPLOGFONT; #line 1225 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" /* Structure passed to FONTENUMPROC */ typedef struct tagENUMLOGFONTA { LOGFONTA elfLogFont; BYTE elfFullName[64]; BYTE elfStyle[32]; } ENUMLOGFONTA, * LPENUMLOGFONTA; /* Structure passed to FONTENUMPROC */ typedef struct tagENUMLOGFONTW { LOGFONTW elfLogFont; WCHAR elfFullName[64]; WCHAR elfStyle[32]; } ENUMLOGFONTW, * LPENUMLOGFONTW; typedef ENUMLOGFONTW ENUMLOGFONT; typedef LPENUMLOGFONTW LPENUMLOGFONT; #line 1249 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" typedef struct tagENUMLOGFONTEXA { LOGFONTA elfLogFont; BYTE elfFullName[64]; BYTE elfStyle[32]; BYTE elfScript[32]; } ENUMLOGFONTEXA, *LPENUMLOGFONTEXA; typedef struct tagENUMLOGFONTEXW { LOGFONTW elfLogFont; WCHAR elfFullName[64]; WCHAR elfStyle[32]; WCHAR elfScript[32]; } ENUMLOGFONTEXW, *LPENUMLOGFONTEXW; typedef ENUMLOGFONTEXW ENUMLOGFONTEX; typedef LPENUMLOGFONTEXW LPENUMLOGFONTEX; #line 1272 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 1273 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 1295 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 1304 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 1309 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 1316 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 1357 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" /* Font Families */ /* Times Roman, Century Schoolbook, etc. */ /* Helvetica, Swiss, etc. */ /* Pica, Elite, Courier, etc. */ /* Font Weights */ typedef struct tagPANOSE { BYTE bFamilyType; BYTE bSerifStyle; BYTE bWeight; BYTE bProportion; BYTE bContrast; BYTE bStrokeVariation; BYTE bArmStyle; BYTE bLetterform; BYTE bMidline; BYTE bXHeight; } PANOSE, * LPPANOSE; /* The extended logical font */ /* An extension of the ENUMLOGFONT */ typedef struct tagEXTLOGFONTA { LOGFONTA elfLogFont; BYTE elfFullName[64]; BYTE elfStyle[32]; DWORD elfVersion; /* 0 for the first release of NT */ DWORD elfStyleSize; DWORD elfMatch; DWORD elfReserved; BYTE elfVendorId[4]; DWORD elfCulture; /* 0 for Latin */ PANOSE elfPanose; } EXTLOGFONTA, *PEXTLOGFONTA, *NPEXTLOGFONTA, *LPEXTLOGFONTA; typedef struct tagEXTLOGFONTW { LOGFONTW elfLogFont; WCHAR elfFullName[64]; WCHAR elfStyle[32]; DWORD elfVersion; /* 0 for the first release of NT */ DWORD elfStyleSize; DWORD elfMatch; DWORD elfReserved; BYTE elfVendorId[4]; DWORD elfCulture; /* 0 for Latin */ PANOSE elfPanose; } EXTLOGFONTW, *PEXTLOGFONTW, *NPEXTLOGFONTW, *LPEXTLOGFONTW; typedef EXTLOGFONTW EXTLOGFONT; typedef PEXTLOGFONTW PEXTLOGFONT; typedef NPEXTLOGFONTW NPEXTLOGFONT; typedef LPEXTLOGFONTW LPEXTLOGFONT; #line 1562 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" /* EnumFonts Masks */ /* palette entry flags */ /* Background Modes */ /* Graphics Modes */ /* PolyDraw and GetPath point types */ /* Mapping Modes */ /* Min and Max Mapping Mode values */ /* Coordinate Modes */ /* Stock Logical Objects */ #line 1643 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 1648 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 1656 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" /* Brush Styles */ /* Hatch Styles */ /* Pen Styles */ /* Device Parameters for GetDeviceCaps() */ // Printing related DeviceCaps. These replace the appropriate Escapes // Display driver specific /* display device (for displays only) in Hz*/ /* pixels */ /* pixels */ #line 1764 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" /* Device Capability Masks: */ /* Device Technologies */ /* Curve Capabilities */ /* Line Capabilities */ /* Polygonal Capabilities */ /* Clipping Capabilities */ /* Text Capabilities */ #line 1839 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" /* Raster Capabilities */ /* Shading and blending caps */ /* Color Management caps */ #line 1877 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" /* DIB color table identifiers */ /* constants for Get/SetSystemPaletteUse() */ /* constants for CreateDIBitmap */ /* ExtFloodFill style flags */ /* size of a device name string */ /* size of a form name string */ typedef struct _devicemodeA { BYTE dmDeviceName[32]; WORD dmSpecVersion; WORD dmDriverVersion; WORD dmSize; WORD dmDriverExtra; DWORD dmFields; union { /* printer only fields */ struct { short dmOrientation; short dmPaperSize; short dmPaperLength; short dmPaperWidth; short dmScale; short dmCopies; short dmDefaultSource; short dmPrintQuality; }; /* display only fields */ struct { POINTL dmPosition; DWORD dmDisplayOrientation; DWORD dmDisplayFixedOutput; }; }; short dmColor; short dmDuplex; short dmYResolution; short dmTTOption; short dmCollate; BYTE dmFormName[32]; WORD dmLogPixels; DWORD dmBitsPerPel; DWORD dmPelsWidth; DWORD dmPelsHeight; union { DWORD dmDisplayFlags; DWORD dmNup; }; DWORD dmDisplayFrequency; DWORD dmICMMethod; DWORD dmICMIntent; DWORD dmMediaType; DWORD dmDitherType; DWORD dmReserved1; DWORD dmReserved2; DWORD dmPanningWidth; DWORD dmPanningHeight; #line 1957 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 1958 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" } DEVMODEA, *PDEVMODEA, *NPDEVMODEA, *LPDEVMODEA; typedef struct _devicemodeW { WCHAR dmDeviceName[32]; WORD dmSpecVersion; WORD dmDriverVersion; WORD dmSize; WORD dmDriverExtra; DWORD dmFields; union { /* printer only fields */ struct { short dmOrientation; short dmPaperSize; short dmPaperLength; short dmPaperWidth; short dmScale; short dmCopies; short dmDefaultSource; short dmPrintQuality; }; /* display only fields */ struct { POINTL dmPosition; DWORD dmDisplayOrientation; DWORD dmDisplayFixedOutput; }; }; short dmColor; short dmDuplex; short dmYResolution; short dmTTOption; short dmCollate; WCHAR dmFormName[32]; WORD dmLogPixels; DWORD dmBitsPerPel; DWORD dmPelsWidth; DWORD dmPelsHeight; union { DWORD dmDisplayFlags; DWORD dmNup; }; DWORD dmDisplayFrequency; DWORD dmICMMethod; DWORD dmICMIntent; DWORD dmMediaType; DWORD dmDitherType; DWORD dmReserved1; DWORD dmReserved2; DWORD dmPanningWidth; DWORD dmPanningHeight; #line 2011 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 2012 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" } DEVMODEW, *PDEVMODEW, *NPDEVMODEW, *LPDEVMODEW; typedef DEVMODEW DEVMODE; typedef PDEVMODEW PDEVMODE; typedef NPDEVMODEW NPDEVMODE; typedef LPDEVMODEW LPDEVMODE; #line 2024 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 2133 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" /* current version of specification */ #line 2141 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" /* field selection bits */ #line 2152 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 2155 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 2178 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 2181 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" /* orientation selections */ /* paper selections */ #line 2258 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 2311 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 2319 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" /* bin selections */ /* print qualities */ /* color enable/disable for color printers */ /* duplex enable */ /* TrueType options */ #line 2364 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" /* Collation selections */ /* DEVMODE dmDisplayOrientation specifiations */ /* DEVMODE dmDisplayFixedOutput specifiations */ #line 2381 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" /* DEVMODE dmDisplayFlags flags */ // #define DM_GRAYSCALE 0x00000001 /* This flag is no longer valid */ /* dmNup , multiple logical page per physical page options */ /* ICM methods */ /* ICM Intents */ /* Media types */ /* Dither types */ #line 2431 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" typedef struct _DISPLAY_DEVICEA { DWORD cb; CHAR DeviceName[32]; CHAR DeviceString[128]; DWORD StateFlags; CHAR DeviceID[128]; CHAR DeviceKey[128]; } DISPLAY_DEVICEA, *PDISPLAY_DEVICEA, *LPDISPLAY_DEVICEA; typedef struct _DISPLAY_DEVICEW { DWORD cb; WCHAR DeviceName[32]; WCHAR DeviceString[128]; DWORD StateFlags; WCHAR DeviceID[128]; WCHAR DeviceKey[128]; } DISPLAY_DEVICEW, *PDISPLAY_DEVICEW, *LPDISPLAY_DEVICEW; typedef DISPLAY_DEVICEW DISPLAY_DEVICE; typedef PDISPLAY_DEVICEW PDISPLAY_DEVICE; typedef LPDISPLAY_DEVICEW LPDISPLAY_DEVICE; #line 2457 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 2466 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 2471 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 2475 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" /* Child device state */ #line 2481 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" /* GetRegionData/ExtCreateRegion */ typedef struct _RGNDATAHEADER { DWORD dwSize; DWORD iType; DWORD nCount; DWORD nRgnSize; RECT rcBound; } RGNDATAHEADER, *PRGNDATAHEADER; typedef struct _RGNDATA { RGNDATAHEADER rdh; char Buffer[1]; } RGNDATA, *PRGNDATA, *NPRGNDATA, *LPRGNDATA; /* for GetRandomRgn */ typedef struct _ABC { int abcA; UINT abcB; int abcC; } ABC, *PABC, *NPABC, *LPABC; typedef struct _ABCFLOAT { FLOAT abcfA; FLOAT abcfB; FLOAT abcfC; } ABCFLOAT, *PABCFLOAT, *NPABCFLOAT, *LPABCFLOAT; typedef struct _OUTLINETEXTMETRICA { UINT otmSize; TEXTMETRICA otmTextMetrics; BYTE otmFiller; PANOSE otmPanoseNumber; UINT otmfsSelection; UINT otmfsType; int otmsCharSlopeRise; int otmsCharSlopeRun; int otmItalicAngle; UINT otmEMSquare; int otmAscent; int otmDescent; UINT otmLineGap; UINT otmsCapEmHeight; UINT otmsXHeight; RECT otmrcFontBox; int otmMacAscent; int otmMacDescent; UINT otmMacLineGap; UINT otmusMinimumPPEM; POINT otmptSubscriptSize; POINT otmptSubscriptOffset; POINT otmptSuperscriptSize; POINT otmptSuperscriptOffset; UINT otmsStrikeoutSize; int otmsStrikeoutPosition; int otmsUnderscoreSize; int otmsUnderscorePosition; PSTR otmpFamilyName; PSTR otmpFaceName; PSTR otmpStyleName; PSTR otmpFullName; } OUTLINETEXTMETRICA, *POUTLINETEXTMETRICA, *NPOUTLINETEXTMETRICA, *LPOUTLINETEXTMETRICA; typedef struct _OUTLINETEXTMETRICW { UINT otmSize; TEXTMETRICW otmTextMetrics; BYTE otmFiller; PANOSE otmPanoseNumber; UINT otmfsSelection; UINT otmfsType; int otmsCharSlopeRise; int otmsCharSlopeRun; int otmItalicAngle; UINT otmEMSquare; int otmAscent; int otmDescent; UINT otmLineGap; UINT otmsCapEmHeight; UINT otmsXHeight; RECT otmrcFontBox; int otmMacAscent; int otmMacDescent; UINT otmMacLineGap; UINT otmusMinimumPPEM; POINT otmptSubscriptSize; POINT otmptSubscriptOffset; POINT otmptSuperscriptSize; POINT otmptSuperscriptOffset; UINT otmsStrikeoutSize; int otmsStrikeoutPosition; int otmsUnderscoreSize; int otmsUnderscorePosition; PSTR otmpFamilyName; PSTR otmpFaceName; PSTR otmpStyleName; PSTR otmpFullName; } OUTLINETEXTMETRICW, *POUTLINETEXTMETRICW, *NPOUTLINETEXTMETRICW, *LPOUTLINETEXTMETRICW; typedef OUTLINETEXTMETRICW OUTLINETEXTMETRIC; typedef POUTLINETEXTMETRICW POUTLINETEXTMETRIC; typedef NPOUTLINETEXTMETRICW NPOUTLINETEXTMETRIC; typedef LPOUTLINETEXTMETRICW LPOUTLINETEXTMETRIC; #line 2599 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 2605 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" typedef struct tagPOLYTEXTA { int x; int y; UINT n; LPCSTR lpstr; UINT uiFlags; RECT rcl; int *pdx; } POLYTEXTA, *PPOLYTEXTA, *NPPOLYTEXTA, *LPPOLYTEXTA; typedef struct tagPOLYTEXTW { int x; int y; UINT n; LPCWSTR lpstr; UINT uiFlags; RECT rcl; int *pdx; } POLYTEXTW, *PPOLYTEXTW, *NPPOLYTEXTW, *LPPOLYTEXTW; typedef POLYTEXTW POLYTEXT; typedef PPOLYTEXTW PPOLYTEXT; typedef NPPOLYTEXTW NPPOLYTEXT; typedef LPPOLYTEXTW LPPOLYTEXT; #line 2638 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" typedef struct _FIXED { WORD fract; short value; #line 2647 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" } FIXED; typedef struct _MAT2 { FIXED eM11; FIXED eM12; FIXED eM21; FIXED eM22; } MAT2, *LPMAT2; typedef struct _GLYPHMETRICS { UINT gmBlackBoxX; UINT gmBlackBoxY; POINT gmptGlyphOrigin; short gmCellIncX; short gmCellIncY; } GLYPHMETRICS, *LPGLYPHMETRICS; // GetGlyphOutline constants #line 2680 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 2684 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" typedef struct tagPOINTFX { FIXED x; FIXED y; } POINTFX, * LPPOINTFX; typedef struct tagTTPOLYCURVE { WORD wType; WORD cpfx; POINTFX apfx[1]; } TTPOLYCURVE, * LPTTPOLYCURVE; typedef struct tagTTPOLYGONHEADER { DWORD cb; DWORD dwType; POINTFX pfxStart; } TTPOLYGONHEADER, * LPTTPOLYGONHEADER; ////#define GCP_GLYPHINDEXING 0x0080 ////#define GCP_NODIACRITICS 0x00020000L typedef struct tagGCP_RESULTSA { DWORD lStructSize; LPSTR lpOutString; UINT *lpOrder; int *lpDx; int *lpCaretPos; LPSTR lpClass; LPWSTR lpGlyphs; UINT nGlyphs; int nMaxFit; } GCP_RESULTSA, * LPGCP_RESULTSA; typedef struct tagGCP_RESULTSW { DWORD lStructSize; LPWSTR lpOutString; UINT *lpOrder; int *lpDx; int *lpCaretPos; LPSTR lpClass; LPWSTR lpGlyphs; UINT nGlyphs; int nMaxFit; } GCP_RESULTSW, * LPGCP_RESULTSW; typedef GCP_RESULTSW GCP_RESULTS; typedef LPGCP_RESULTSW LPGCP_RESULTS; #line 2786 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 2787 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" typedef struct _RASTERIZER_STATUS { short nSize; short wFlags; short nLanguageID; } RASTERIZER_STATUS, *LPRASTERIZER_STATUS; /* bits defined in wFlags of RASTERIZER_STATUS */ /* Pixel format descriptor */ typedef struct tagPIXELFORMATDESCRIPTOR { WORD nSize; WORD nVersion; DWORD dwFlags; BYTE iPixelType; BYTE cColorBits; BYTE cRedBits; BYTE cRedShift; BYTE cGreenBits; BYTE cGreenShift; BYTE cBlueBits; BYTE cBlueShift; BYTE cAlphaBits; BYTE cAlphaShift; BYTE cAccumBits; BYTE cAccumRedBits; BYTE cAccumGreenBits; BYTE cAccumBlueBits; BYTE cAccumAlphaBits; BYTE cDepthBits; BYTE cStencilBits; BYTE cAuxBuffers; BYTE iLayerType; BYTE bReserved; DWORD dwLayerMask; DWORD dwVisibleMask; DWORD dwDamageMask; } PIXELFORMATDESCRIPTOR, *PPIXELFORMATDESCRIPTOR, *LPPIXELFORMATDESCRIPTOR; /* pixel types */ /* layer types */ /* PIXELFORMATDESCRIPTOR flags */ /* PIXELFORMATDESCRIPTOR flags for use in ChoosePixelFormat only */ typedef int (__stdcall* OLDFONTENUMPROCA)(const LOGFONTA *, const TEXTMETRICA *, DWORD, LPARAM); typedef int (__stdcall* OLDFONTENUMPROCW)(const LOGFONTW *, const TEXTMETRICW *, DWORD, LPARAM); #line 2870 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 2879 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" typedef OLDFONTENUMPROCA FONTENUMPROCA; typedef OLDFONTENUMPROCW FONTENUMPROCW; typedef FONTENUMPROCW FONTENUMPROC; #line 2887 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" typedef int (__stdcall* GOBJENUMPROC)(LPVOID, LPARAM); typedef void (__stdcall* LINEDDAPROC)(int, int, LPARAM); #line 2902 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) int __stdcall AddFontResourceA( LPCSTR); __declspec(dllimport) int __stdcall AddFontResourceW( LPCWSTR); #line 2912 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) BOOL __stdcall AnimatePalette( HPALETTE hPal, UINT iStartIndex, UINT cEntries, const PALETTEENTRY * ppe); __declspec(dllimport) BOOL __stdcall Arc( HDC hdc, int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4); __declspec(dllimport) BOOL __stdcall BitBlt( HDC hdc, int x, int y, int cx, int cy, HDC hdcSrc, int x1, int y1, DWORD rop); __declspec(dllimport) BOOL __stdcall CancelDC( HDC hdc); __declspec(dllimport) BOOL __stdcall Chord( HDC hdc, int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4); __declspec(dllimport) int __stdcall ChoosePixelFormat( HDC hdc, const PIXELFORMATDESCRIPTOR *ppfd); __declspec(dllimport) HMETAFILE __stdcall CloseMetaFile( HDC hdc); __declspec(dllimport) int __stdcall CombineRgn( HRGN hrgnDst, HRGN hrgnSrc1, HRGN hrgnSrc2, int iMode); __declspec(dllimport) HMETAFILE __stdcall CopyMetaFileA( HMETAFILE, LPCSTR); __declspec(dllimport) HMETAFILE __stdcall CopyMetaFileW( HMETAFILE, LPCWSTR); #line 2928 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) HBITMAP __stdcall CreateBitmap( int nWidth, int nHeight, UINT nPlanes, UINT nBitCount, const void *lpBits); __declspec(dllimport) HBITMAP __stdcall CreateBitmapIndirect( const BITMAP *pbm); __declspec(dllimport) HBRUSH __stdcall CreateBrushIndirect( const LOGBRUSH *plbrush); __declspec(dllimport) HBITMAP __stdcall CreateCompatibleBitmap( HDC hdc, int cx, int cy); __declspec(dllimport) HBITMAP __stdcall CreateDiscardableBitmap( HDC hdc, int cx, int cy); __declspec(dllimport) HDC __stdcall CreateCompatibleDC( HDC hdc); __declspec(dllimport) HDC __stdcall CreateDCA( LPCSTR pwszDriver, LPCSTR pwszDevice, LPCSTR pszPort, const DEVMODEA * pdm); __declspec(dllimport) HDC __stdcall CreateDCW( LPCWSTR pwszDriver, LPCWSTR pwszDevice, LPCWSTR pszPort, const DEVMODEW * pdm); #line 2941 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) HBITMAP __stdcall CreateDIBitmap( HDC hdc, const BITMAPINFOHEADER *pbmih, DWORD flInit, const void *pjBits, const BITMAPINFO *pbmi, UINT iUsage); __declspec(dllimport) HBRUSH __stdcall CreateDIBPatternBrush( HGLOBAL h, UINT iUsage); __declspec(dllimport) HBRUSH __stdcall CreateDIBPatternBrushPt( const void *lpPackedDIB, UINT iUsage); __declspec(dllimport) HRGN __stdcall CreateEllipticRgn( int x1, int y1, int x2, int y2); __declspec(dllimport) HRGN __stdcall CreateEllipticRgnIndirect( const RECT *lprect); __declspec(dllimport) HFONT __stdcall CreateFontIndirectA( const LOGFONTA *lplf); __declspec(dllimport) HFONT __stdcall CreateFontIndirectW( const LOGFONTW *lplf); #line 2953 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) HFONT __stdcall CreateFontA( int cHeight, int cWidth, int cEscapement, int cOrientation, int cWeight, DWORD bItalic, DWORD bUnderline, DWORD bStrikeOut, DWORD iCharSet, DWORD iOutPrecision, DWORD iClipPrecision, DWORD iQuality, DWORD iPitchAndFamily, LPCSTR pszFaceName); __declspec(dllimport) HFONT __stdcall CreateFontW( int cHeight, int cWidth, int cEscapement, int cOrientation, int cWeight, DWORD bItalic, DWORD bUnderline, DWORD bStrikeOut, DWORD iCharSet, DWORD iOutPrecision, DWORD iClipPrecision, DWORD iQuality, DWORD iPitchAndFamily, LPCWSTR pszFaceName); #line 2964 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) HBRUSH __stdcall CreateHatchBrush( int iHatch, COLORREF color); __declspec(dllimport) HDC __stdcall CreateICA( LPCSTR pszDriver, LPCSTR pszDevice, LPCSTR pszPort, const DEVMODEA * pdm); __declspec(dllimport) HDC __stdcall CreateICW( LPCWSTR pszDriver, LPCWSTR pszDevice, LPCWSTR pszPort, const DEVMODEW * pdm); #line 2973 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) HDC __stdcall CreateMetaFileA( LPCSTR pszFile); __declspec(dllimport) HDC __stdcall CreateMetaFileW( LPCWSTR pszFile); #line 2980 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) HPALETTE __stdcall CreatePalette( const LOGPALETTE * plpal); __declspec(dllimport) HPEN __stdcall CreatePen( int iStyle, int cWidth, COLORREF color); __declspec(dllimport) HPEN __stdcall CreatePenIndirect( const LOGPEN *plpen); __declspec(dllimport) HRGN __stdcall CreatePolyPolygonRgn( const POINT *pptl, const INT *pc, int cPoly, int iMode); __declspec(dllimport) HBRUSH __stdcall CreatePatternBrush( HBITMAP hbm); __declspec(dllimport) HRGN __stdcall CreateRectRgn( int x1, int y1, int x2, int y2); __declspec(dllimport) HRGN __stdcall CreateRectRgnIndirect( const RECT *lprect); __declspec(dllimport) HRGN __stdcall CreateRoundRectRgn( int x1, int y1, int x2, int y2, int w, int h); __declspec(dllimport) BOOL __stdcall CreateScalableFontResourceA( DWORD fdwHidden, LPCSTR lpszFont, LPCSTR lpszFile, LPCSTR lpszPath); __declspec(dllimport) BOOL __stdcall CreateScalableFontResourceW( DWORD fdwHidden, LPCWSTR lpszFont, LPCWSTR lpszFile, LPCWSTR lpszPath); #line 2998 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) HBRUSH __stdcall CreateSolidBrush( COLORREF color); __declspec(dllimport) BOOL __stdcall DeleteDC( HDC hdc); __declspec(dllimport) BOOL __stdcall DeleteMetaFile( HMETAFILE hmf); __declspec(dllimport) BOOL __stdcall DeleteObject( HGDIOBJ ho); __declspec(dllimport) int __stdcall DescribePixelFormat( HDC hdc, int iPixelFormat, UINT nBytes, LPPIXELFORMATDESCRIPTOR ppfd); /* define types of pointers to ExtDeviceMode() and DeviceCapabilities() * functions for Win 3.1 compatibility */ typedef UINT (__stdcall* LPFNDEVMODE)(HWND, HMODULE, LPDEVMODE, LPSTR, LPSTR, LPDEVMODE, LPSTR, UINT); typedef DWORD (__stdcall* LPFNDEVCAPS)(LPSTR, LPSTR, UINT, LPSTR, LPDEVMODE); /* mode selections for the device mode function */ /* device capabilities indices */ #line 3054 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 3073 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 3074 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" /* bit fields of the return value (DWORD) for DC_TRUETYPE */ /* return values for DC_BINADJUST */ #line 3092 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) int __stdcall DeviceCapabilitiesA( LPCSTR pDevice, LPCSTR pPort, WORD fwCapability, LPSTR pOutput, const DEVMODEA *pDevMode ); __declspec(dllimport) int __stdcall DeviceCapabilitiesW( LPCWSTR pDevice, LPCWSTR pPort, WORD fwCapability, LPWSTR pOutput, const DEVMODEW *pDevMode ); #line 3118 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) int __stdcall DrawEscape( HDC hdc, int iEscape, int cjIn, LPCSTR lpIn); __declspec(dllimport) BOOL __stdcall Ellipse( HDC hdc, int left, int top, int right, int bottom); __declspec(dllimport) int __stdcall EnumFontFamiliesExA( HDC hdc, LPLOGFONTA lpLogfont, FONTENUMPROCA lpProc, LPARAM lParam, DWORD dwFlags); __declspec(dllimport) int __stdcall EnumFontFamiliesExW( HDC hdc, LPLOGFONTW lpLogfont, FONTENUMPROCW lpProc, LPARAM lParam, DWORD dwFlags); #line 3134 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 3135 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) int __stdcall EnumFontFamiliesA( HDC hdc, LPCSTR lpLogfont, FONTENUMPROCA lpProc, LPARAM lParam); __declspec(dllimport) int __stdcall EnumFontFamiliesW( HDC hdc, LPCWSTR lpLogfont, FONTENUMPROCW lpProc, LPARAM lParam); #line 3143 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) int __stdcall EnumFontsA( HDC hdc, LPCSTR lpLogfont, FONTENUMPROCA lpProc, LPARAM lParam); __declspec(dllimport) int __stdcall EnumFontsW( HDC hdc, LPCWSTR lpLogfont, FONTENUMPROCW lpProc, LPARAM lParam); #line 3150 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) int __stdcall EnumObjects( HDC hdc, int nType, GOBJENUMPROC lpFunc, LPARAM lParam); #line 3156 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) BOOL __stdcall EqualRgn( HRGN hrgn1, HRGN hrgn2); __declspec(dllimport) int __stdcall Escape( HDC hdc, int iEscape, int cjIn, LPCSTR pvIn, LPVOID pvOut); __declspec(dllimport) int __stdcall ExtEscape( HDC hdc, int iEscape, int cjInput, LPCSTR lpInData, int cjOutput, LPSTR lpOutData); __declspec(dllimport) int __stdcall ExcludeClipRect( HDC hdc, int left, int top, int right, int bottom); __declspec(dllimport) HRGN __stdcall ExtCreateRegion( const XFORM * lpx, DWORD nCount, const RGNDATA * lpData); __declspec(dllimport) BOOL __stdcall ExtFloodFill( HDC hdc, int x, int y, COLORREF color, UINT type); __declspec(dllimport) BOOL __stdcall FillRgn( HDC hdc, HRGN hrgn, HBRUSH hbr); __declspec(dllimport) BOOL __stdcall FloodFill( HDC hdc, int x, int y, COLORREF color); __declspec(dllimport) BOOL __stdcall FrameRgn( HDC hdc, HRGN hrgn, HBRUSH hbr, int w, int h); __declspec(dllimport) int __stdcall GetROP2( HDC hdc); __declspec(dllimport) BOOL __stdcall GetAspectRatioFilterEx( HDC hdc, LPSIZE lpsize); __declspec(dllimport) COLORREF __stdcall GetBkColor( HDC hdc); __declspec(dllimport) COLORREF __stdcall GetDCBrushColor( HDC hdc); __declspec(dllimport) COLORREF __stdcall GetDCPenColor( HDC hdc); #line 3184 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) int __stdcall GetBkMode( HDC hdc ); __declspec(dllimport) LONG __stdcall GetBitmapBits( HBITMAP hbit, LONG cb, LPVOID lpvBits ); __declspec(dllimport) BOOL __stdcall GetBitmapDimensionEx( HBITMAP hbit, LPSIZE lpsize); __declspec(dllimport) UINT __stdcall GetBoundsRect( HDC hdc, LPRECT lprect, UINT flags); __declspec(dllimport) BOOL __stdcall GetBrushOrgEx( HDC hdc, LPPOINT lppt); __declspec(dllimport) BOOL __stdcall GetCharWidthA( HDC hdc, UINT iFirst, UINT iLast, LPINT lpBuffer); __declspec(dllimport) BOOL __stdcall GetCharWidthW( HDC hdc, UINT iFirst, UINT iLast, LPINT lpBuffer); #line 3213 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) BOOL __stdcall GetCharWidth32A( HDC hdc, UINT iFirst, UINT iLast, LPINT lpBuffer); __declspec(dllimport) BOOL __stdcall GetCharWidth32W( HDC hdc, UINT iFirst, UINT iLast, LPINT lpBuffer); #line 3220 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) BOOL __stdcall GetCharWidthFloatA( HDC hdc, UINT iFirst, UINT iLast, PFLOAT lpBuffer); __declspec(dllimport) BOOL __stdcall GetCharWidthFloatW( HDC hdc, UINT iFirst, UINT iLast, PFLOAT lpBuffer); #line 3227 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) BOOL __stdcall GetCharABCWidthsA( HDC hdc, UINT wFirst, UINT wLast, LPABC lpABC); __declspec(dllimport) BOOL __stdcall GetCharABCWidthsW( HDC hdc, UINT wFirst, UINT wLast, LPABC lpABC); #line 3241 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) BOOL __stdcall GetCharABCWidthsFloatA( HDC hdc, UINT iFirst, UINT iLast, LPABCFLOAT lpABC); __declspec(dllimport) BOOL __stdcall GetCharABCWidthsFloatW( HDC hdc, UINT iFirst, UINT iLast, LPABCFLOAT lpABC); #line 3249 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) int __stdcall GetClipBox( HDC hdc, LPRECT lprect); __declspec(dllimport) int __stdcall GetClipRgn( HDC hdc, HRGN hrgn); __declspec(dllimport) int __stdcall GetMetaRgn( HDC hdc, HRGN hrgn); __declspec(dllimport) HGDIOBJ __stdcall GetCurrentObject( HDC hdc, UINT type); __declspec(dllimport) BOOL __stdcall GetCurrentPositionEx( HDC hdc, LPPOINT lppt); __declspec(dllimport) int __stdcall GetDeviceCaps( HDC hdc, int index); __declspec(dllimport) int __stdcall GetDIBits( HDC hdc, HBITMAP hbm, UINT start, UINT cLines, LPVOID lpvBits, LPBITMAPINFO lpbmi, UINT usage); // SAL actual size of lpbmi is computed from structure elements __declspec(dllimport) DWORD __stdcall GetFontData ( HDC hdc, DWORD dwTable, DWORD dwOffset, PVOID pvBuffer, DWORD cjBuffer ); __declspec(dllimport) DWORD __stdcall GetGlyphOutlineA( HDC hdc, UINT uChar, UINT fuFormat, LPGLYPHMETRICS lpgm, DWORD cjBuffer, LPVOID pvBuffer, const MAT2 *lpmat2 ); __declspec(dllimport) DWORD __stdcall GetGlyphOutlineW( HDC hdc, UINT uChar, UINT fuFormat, LPGLYPHMETRICS lpgm, DWORD cjBuffer, LPVOID pvBuffer, const MAT2 *lpmat2 ); #line 3286 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) int __stdcall GetGraphicsMode( HDC hdc); __declspec(dllimport) int __stdcall GetMapMode( HDC hdc); __declspec(dllimport) UINT __stdcall GetMetaFileBitsEx( HMETAFILE hMF, UINT cbBuffer, LPVOID lpData); __declspec(dllimport) HMETAFILE __stdcall GetMetaFileA( LPCSTR lpName); __declspec(dllimport) HMETAFILE __stdcall GetMetaFileW( LPCWSTR lpName); #line 3297 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) COLORREF __stdcall GetNearestColor( HDC hdc, COLORREF color); __declspec(dllimport) UINT __stdcall GetNearestPaletteIndex( HPALETTE h, COLORREF color); __declspec(dllimport) DWORD __stdcall GetObjectType( HGDIOBJ h); __declspec(dllimport) UINT __stdcall GetOutlineTextMetricsA( HDC hdc, UINT cjCopy, LPOUTLINETEXTMETRICA potm); __declspec(dllimport) UINT __stdcall GetOutlineTextMetricsW( HDC hdc, UINT cjCopy, LPOUTLINETEXTMETRICW potm); #line 3314 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 3316 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) UINT __stdcall GetPaletteEntries( HPALETTE hpal, UINT iStart, UINT cEntries, LPPALETTEENTRY pPalEntries); __declspec(dllimport) COLORREF __stdcall GetPixel( HDC hdc, int x, int y); __declspec(dllimport) int __stdcall GetPixelFormat( HDC hdc); __declspec(dllimport) int __stdcall GetPolyFillMode( HDC hdc); __declspec(dllimport) BOOL __stdcall GetRasterizerCaps( LPRASTERIZER_STATUS lpraststat, UINT cjBytes); __declspec(dllimport) int __stdcall GetRandomRgn ( HDC hdc, HRGN hrgn, INT i); __declspec(dllimport) DWORD __stdcall GetRegionData( HRGN hrgn, DWORD nCount, LPRGNDATA lpRgnData); __declspec(dllimport) int __stdcall GetRgnBox( HRGN hrgn, LPRECT lprc); __declspec(dllimport) HGDIOBJ __stdcall GetStockObject( int i); __declspec(dllimport) int __stdcall GetStretchBltMode( HDC hdc); __declspec(dllimport) UINT __stdcall GetSystemPaletteEntries( HDC hdc, UINT iStart, UINT cEntries, LPPALETTEENTRY pPalEntries ); __declspec(dllimport) UINT __stdcall GetSystemPaletteUse( HDC hdc); __declspec(dllimport) int __stdcall GetTextCharacterExtra( HDC hdc); __declspec(dllimport) UINT __stdcall GetTextAlign( HDC hdc); __declspec(dllimport) COLORREF __stdcall GetTextColor( HDC hdc); __declspec(dllimport) BOOL __stdcall GetTextExtentPointA( HDC hdc, LPCSTR lpString, int c, LPSIZE lpsz ); __declspec(dllimport) BOOL __stdcall GetTextExtentPointW( HDC hdc, LPCWSTR lpString, int c, LPSIZE lpsz ); #line 3372 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) BOOL __stdcall GetTextExtentPoint32A( HDC hdc, LPCSTR lpString, int c, LPSIZE psizl ); __declspec(dllimport) BOOL __stdcall GetTextExtentPoint32W( HDC hdc, LPCWSTR lpString, int c, LPSIZE psizl ); #line 3396 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) BOOL __stdcall GetTextExtentExPointA( HDC hdc, LPCSTR lpszString, int cchString, int nMaxExtent, LPINT lpnFit, LPINT lpnDx, LPSIZE lpSize ); __declspec(dllimport) BOOL __stdcall GetTextExtentExPointW( HDC hdc, LPCWSTR lpszString, int cchString, int nMaxExtent, LPINT lpnFit, LPINT lpnDx, LPSIZE lpSize ); #line 3426 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) int __stdcall GetTextCharset( HDC hdc); __declspec(dllimport) int __stdcall GetTextCharsetInfo( HDC hdc, LPFONTSIGNATURE lpSig, DWORD dwFlags); __declspec(dllimport) BOOL __stdcall TranslateCharsetInfo( DWORD *lpSrc, LPCHARSETINFO lpCs, DWORD dwFlags); __declspec(dllimport) DWORD __stdcall GetFontLanguageInfo( HDC hdc); __declspec(dllimport) DWORD __stdcall GetCharacterPlacementA( HDC hdc, LPCSTR lpString, int nCount, int nMexExtent, LPGCP_RESULTSA lpResults, DWORD dwFlags); __declspec(dllimport) DWORD __stdcall GetCharacterPlacementW( HDC hdc, LPCWSTR lpString, int nCount, int nMexExtent, LPGCP_RESULTSW lpResults, DWORD dwFlags); #line 3439 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 3440 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" typedef struct tagWCRANGE { WCHAR wcLow; USHORT cGlyphs; } WCRANGE, *PWCRANGE, *LPWCRANGE; typedef struct tagGLYPHSET { DWORD cbThis; DWORD flAccel; DWORD cGlyphsSupported; DWORD cRanges; WCRANGE ranges[1]; } GLYPHSET, *PGLYPHSET, *LPGLYPHSET; /* flAccel flags for the GLYPHSET structure above */ /* flags for GetGlyphIndices */ __declspec(dllimport) DWORD __stdcall GetFontUnicodeRanges( HDC hdc, LPGLYPHSET lpgs); __declspec(dllimport) DWORD __stdcall GetGlyphIndicesA( HDC hdc, LPCSTR lpstr, int c, LPWORD pgi, DWORD fl); __declspec(dllimport) DWORD __stdcall GetGlyphIndicesW( HDC hdc, LPCWSTR lpstr, int c, LPWORD pgi, DWORD fl); #line 3475 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) BOOL __stdcall GetTextExtentPointI( HDC hdc, LPWORD pgiIn, int cgi, LPSIZE psize); __declspec(dllimport) BOOL __stdcall GetTextExtentExPointI ( HDC hdc, LPWORD lpwszString, int cwchString, int nMaxExtent, LPINT lpnFit, LPINT lpnDx, LPSIZE lpSize ); __declspec(dllimport) BOOL __stdcall GetCharWidthI( HDC hdc, UINT giFirst, UINT cgi, LPWORD pgi, LPINT piWidths ); __declspec(dllimport) BOOL __stdcall GetCharABCWidthsI( HDC hdc, UINT giFirst, UINT cgi, LPWORD pgi, LPABC pabc ); typedef struct tagDESIGNVECTOR { DWORD dvReserved; DWORD dvNumAxes; LONG dvValues[16]; } DESIGNVECTOR, *PDESIGNVECTOR, *LPDESIGNVECTOR; __declspec(dllimport) int __stdcall AddFontResourceExA( LPCSTR name, DWORD fl, PVOID res); __declspec(dllimport) int __stdcall AddFontResourceExW( LPCWSTR name, DWORD fl, PVOID res); #line 3520 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) BOOL __stdcall RemoveFontResourceExA( LPCSTR name, DWORD fl, PVOID pdv); __declspec(dllimport) BOOL __stdcall RemoveFontResourceExW( LPCWSTR name, DWORD fl, PVOID pdv); #line 3527 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) HANDLE __stdcall AddFontMemResourceEx( PVOID pFileView, DWORD cjSize, PVOID pvResrved, DWORD* pNumFonts); __declspec(dllimport) BOOL __stdcall RemoveFontMemResourceEx( HANDLE h); // The actual size of the DESIGNVECTOR and ENUMLOGFONTEXDV structures // is determined by dvNumAxes, // MM_MAX_NUMAXES only detemines the maximal size allowed typedef struct tagAXISINFOA { LONG axMinValue; LONG axMaxValue; BYTE axAxisName[16]; } AXISINFOA, *PAXISINFOA, *LPAXISINFOA; typedef struct tagAXISINFOW { LONG axMinValue; LONG axMaxValue; WCHAR axAxisName[16]; } AXISINFOW, *PAXISINFOW, *LPAXISINFOW; typedef AXISINFOW AXISINFO; typedef PAXISINFOW PAXISINFO; typedef LPAXISINFOW LPAXISINFO; #line 3563 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" typedef struct tagAXESLISTA { DWORD axlReserved; DWORD axlNumAxes; AXISINFOA axlAxisInfo[16]; } AXESLISTA, *PAXESLISTA, *LPAXESLISTA; typedef struct tagAXESLISTW { DWORD axlReserved; DWORD axlNumAxes; AXISINFOW axlAxisInfo[16]; } AXESLISTW, *PAXESLISTW, *LPAXESLISTW; typedef AXESLISTW AXESLIST; typedef PAXESLISTW PAXESLIST; typedef LPAXESLISTW LPAXESLIST; #line 3585 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" // The actual size of the AXESLIST and ENUMTEXTMETRIC structure is // determined by axlNumAxes, // MM_MAX_NUMAXES only detemines the maximal size allowed typedef struct tagENUMLOGFONTEXDVA { ENUMLOGFONTEXA elfEnumLogfontEx; DESIGNVECTOR elfDesignVector; } ENUMLOGFONTEXDVA, *PENUMLOGFONTEXDVA, *LPENUMLOGFONTEXDVA; typedef struct tagENUMLOGFONTEXDVW { ENUMLOGFONTEXW elfEnumLogfontEx; DESIGNVECTOR elfDesignVector; } ENUMLOGFONTEXDVW, *PENUMLOGFONTEXDVW, *LPENUMLOGFONTEXDVW; typedef ENUMLOGFONTEXDVW ENUMLOGFONTEXDV; typedef PENUMLOGFONTEXDVW PENUMLOGFONTEXDV; typedef LPENUMLOGFONTEXDVW LPENUMLOGFONTEXDV; #line 3609 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) HFONT __stdcall CreateFontIndirectExA( const ENUMLOGFONTEXDVA *); __declspec(dllimport) HFONT __stdcall CreateFontIndirectExW( const ENUMLOGFONTEXDVW *); #line 3617 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" typedef struct tagENUMTEXTMETRICA { NEWTEXTMETRICEXA etmNewTextMetricEx; AXESLISTA etmAxesList; } ENUMTEXTMETRICA, *PENUMTEXTMETRICA, *LPENUMTEXTMETRICA; typedef struct tagENUMTEXTMETRICW { NEWTEXTMETRICEXW etmNewTextMetricEx; AXESLISTW etmAxesList; } ENUMTEXTMETRICW, *PENUMTEXTMETRICW, *LPENUMTEXTMETRICW; typedef ENUMTEXTMETRICW ENUMTEXTMETRIC; typedef PENUMTEXTMETRICW PENUMTEXTMETRIC; typedef LPENUMTEXTMETRICW LPENUMTEXTMETRIC; #line 3638 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 3639 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 3641 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) BOOL __stdcall GetViewportExtEx( HDC hdc, LPSIZE lpsize); __declspec(dllimport) BOOL __stdcall GetViewportOrgEx( HDC hdc, LPPOINT lppoint); __declspec(dllimport) BOOL __stdcall GetWindowExtEx( HDC hdc, LPSIZE lpsize); __declspec(dllimport) BOOL __stdcall GetWindowOrgEx( HDC hdc, LPPOINT lppoint); __declspec(dllimport) int __stdcall IntersectClipRect( HDC hdc, int left, int top, int right, int bottom); __declspec(dllimport) BOOL __stdcall InvertRgn( HDC hdc, HRGN hrgn); __declspec(dllimport) BOOL __stdcall LineDDA( int xStart, int yStart, int xEnd, int yEnd, LINEDDAPROC lpProc, LPARAM data); __declspec(dllimport) BOOL __stdcall LineTo( HDC hdc, int x, int y); __declspec(dllimport) BOOL __stdcall MaskBlt( HDC hdcDest, int xDest, int yDest, int width, int height, HDC hdcSrc, int xSrc, int ySrc, HBITMAP hbmMask, int xMask, int yMask, DWORD rop); __declspec(dllimport) BOOL __stdcall PlgBlt( HDC hdcDest, const POINT * lpPoint, HDC hdcSrc, int xSrc, int ySrc, int width, int height, HBITMAP hbmMask, int xMask, int yMask); __declspec(dllimport) int __stdcall OffsetClipRgn( HDC hdc, int x, int y); __declspec(dllimport) int __stdcall OffsetRgn( HRGN hrgn, int x, int y); __declspec(dllimport) BOOL __stdcall PatBlt( HDC hdc, int x, int y, int w, int h, DWORD rop); __declspec(dllimport) BOOL __stdcall Pie( HDC hdc, int left, int top, int right, int bottom, int xr1, int yr1, int xr2, int yr2); __declspec(dllimport) BOOL __stdcall PlayMetaFile( HDC hdc, HMETAFILE hmf); __declspec(dllimport) BOOL __stdcall PaintRgn( HDC hdc, HRGN hrgn); __declspec(dllimport) BOOL __stdcall PolyPolygon( HDC hdc, const POINT *apt, const INT *asz, int csz); __declspec(dllimport) BOOL __stdcall PtInRegion( HRGN hrgn, int x, int y); __declspec(dllimport) BOOL __stdcall PtVisible( HDC hdc, int x, int y); __declspec(dllimport) BOOL __stdcall RectInRegion( HRGN hrgn, const RECT * lprect); __declspec(dllimport) BOOL __stdcall RectVisible( HDC hdc, const RECT * lprect); __declspec(dllimport) BOOL __stdcall Rectangle( HDC hdc, int left, int top, int right, int bottom); __declspec(dllimport) BOOL __stdcall RestoreDC( HDC hdc, int nSavedDC); __declspec(dllimport) HDC __stdcall ResetDCA( HDC hdc, const DEVMODEA * lpdm); __declspec(dllimport) HDC __stdcall ResetDCW( HDC hdc, const DEVMODEW * lpdm); #line 3676 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) UINT __stdcall RealizePalette( HDC hdc); __declspec(dllimport) BOOL __stdcall RemoveFontResourceA( LPCSTR lpFileName); __declspec(dllimport) BOOL __stdcall RemoveFontResourceW( LPCWSTR lpFileName); #line 3684 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) BOOL __stdcall RoundRect( HDC hdc, int left, int top, int right, int bottom, int width, int height); __declspec(dllimport) BOOL __stdcall ResizePalette( HPALETTE hpal, UINT n); __declspec(dllimport) int __stdcall SaveDC( HDC hdc); __declspec(dllimport) int __stdcall SelectClipRgn( HDC hdc, HRGN hrgn); __declspec(dllimport) int __stdcall ExtSelectClipRgn( HDC hdc, HRGN hrgn, int mode); __declspec(dllimport) int __stdcall SetMetaRgn( HDC hdc); __declspec(dllimport) HGDIOBJ __stdcall SelectObject( HDC hdc, HGDIOBJ h); __declspec(dllimport) HPALETTE __stdcall SelectPalette( HDC hdc, HPALETTE hPal, BOOL bForceBkgd); __declspec(dllimport) COLORREF __stdcall SetBkColor( HDC hdc, COLORREF color); __declspec(dllimport) COLORREF __stdcall SetDCBrushColor( HDC hdc, COLORREF color); __declspec(dllimport) COLORREF __stdcall SetDCPenColor( HDC hdc, COLORREF color); #line 3699 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) int __stdcall SetBkMode( HDC hdc, int mode); __declspec(dllimport) LONG __stdcall SetBitmapBits( HBITMAP hbm, DWORD cb, const void *pvBits); __declspec(dllimport) UINT __stdcall SetBoundsRect( HDC hdc, const RECT * lprect, UINT flags); __declspec(dllimport) int __stdcall SetDIBits( HDC hdc, HBITMAP hbm, UINT start, UINT cLines, const void *lpBits, const BITMAPINFO * lpbmi, UINT ColorUse); __declspec(dllimport) int __stdcall SetDIBitsToDevice( HDC hdc, int xDest, int yDest, DWORD w, DWORD h, int xSrc, int ySrc, UINT StartScan, UINT cLines, const void * lpvBits, const BITMAPINFO * lpbmi, UINT ColorUse); __declspec(dllimport) DWORD __stdcall SetMapperFlags( HDC hdc, DWORD flags); __declspec(dllimport) int __stdcall SetGraphicsMode( HDC hdc, int iMode); __declspec(dllimport) int __stdcall SetMapMode( HDC hdc, int iMode); __declspec(dllimport) DWORD __stdcall SetLayout( HDC hdc, DWORD l); __declspec(dllimport) DWORD __stdcall GetLayout( HDC hdc); #line 3721 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) HMETAFILE __stdcall SetMetaFileBitsEx( UINT cbBuffer, const BYTE *lpData); __declspec(dllimport) UINT __stdcall SetPaletteEntries( HPALETTE hpal, UINT iStart, UINT cEntries, const PALETTEENTRY *pPalEntries); __declspec(dllimport) COLORREF __stdcall SetPixel( HDC hdc, int x, int y, COLORREF color); __declspec(dllimport) BOOL __stdcall SetPixelV( HDC hdc, int x, int y, COLORREF color); __declspec(dllimport) BOOL __stdcall SetPixelFormat( HDC hdc, int format, const PIXELFORMATDESCRIPTOR * ppfd); __declspec(dllimport) int __stdcall SetPolyFillMode( HDC hdc, int mode); __declspec(dllimport) BOOL __stdcall StretchBlt( HDC hdcDest, int xDest, int yDest, int wDest, int hDest, HDC hdcSrc, int xSrc, int ySrc, int wSrc, int hSrc, DWORD rop); __declspec(dllimport) BOOL __stdcall SetRectRgn( HRGN hrgn, int left, int top, int right, int bottom); __declspec(dllimport) int __stdcall StretchDIBits( HDC hdc, int xDest, int yDest, int DestWidth, int DestHeight, int xSrc, int ySrc, int SrcWidth, int SrcHeight, const void * lpBits, const BITMAPINFO * lpbmi, UINT iUsage, DWORD rop); __declspec(dllimport) int __stdcall SetROP2( HDC hdc, int rop2); __declspec(dllimport) int __stdcall SetStretchBltMode( HDC hdc, int mode); __declspec(dllimport) UINT __stdcall SetSystemPaletteUse( HDC hdc, UINT use); __declspec(dllimport) int __stdcall SetTextCharacterExtra( HDC hdc, int extra); __declspec(dllimport) COLORREF __stdcall SetTextColor( HDC hdc, COLORREF color); __declspec(dllimport) UINT __stdcall SetTextAlign( HDC hdc, UINT align); __declspec(dllimport) BOOL __stdcall SetTextJustification( HDC hdc, int extra, int count); __declspec(dllimport) BOOL __stdcall UpdateColors( HDC hdc); // // image blt // typedef USHORT COLOR16; typedef struct _TRIVERTEX { LONG x; LONG y; COLOR16 Red; COLOR16 Green; COLOR16 Blue; COLOR16 Alpha; }TRIVERTEX,*PTRIVERTEX,*LPTRIVERTEX; typedef struct _GRADIENT_TRIANGLE { ULONG Vertex1; ULONG Vertex2; ULONG Vertex3; } GRADIENT_TRIANGLE,*PGRADIENT_TRIANGLE,*LPGRADIENT_TRIANGLE; typedef struct _GRADIENT_RECT { ULONG UpperLeft; ULONG LowerRight; }GRADIENT_RECT,*PGRADIENT_RECT,*LPGRADIENT_RECT; typedef struct _BLENDFUNCTION { BYTE BlendOp; BYTE BlendFlags; BYTE SourceConstantAlpha; BYTE AlphaFormat; }BLENDFUNCTION,*PBLENDFUNCTION; // // currentlly defined blend function // // // alpha format flags // __declspec(dllimport) BOOL __stdcall AlphaBlend( HDC hdcDest, int xoriginDest, int yoriginDest, int wDest, int hDest, HDC hdcSrc, int xoriginSrc, int yoriginSrc, int wSrc, int hSrc, BLENDFUNCTION ftn); __declspec(dllimport) BOOL __stdcall TransparentBlt( HDC hdcDest, int xoriginDest, int yoriginDest, int wDest, int hDest, HDC hdcSrc, int xoriginSrc, int yoriginSrc, int wSrc, int hSrc, UINT crTransparent); // // gradient drawing modes // __declspec(dllimport) BOOL __stdcall GradientFill( HDC hdc, PTRIVERTEX pVertex, ULONG nVertex, PVOID pMesh, ULONG nMesh, ULONG ulMode ); #line 3854 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) BOOL __stdcall GdiAlphaBlend( HDC hdcDest, int xoriginDest, int yoriginDest, int wDest, int hDest, HDC hdcSrc, int xoriginSrc, int yoriginSrc, int wSrc, int hSrc, BLENDFUNCTION ftn); __declspec(dllimport) BOOL __stdcall GdiTransparentBlt( HDC hdcDest, int xoriginDest, int yoriginDest, int wDest, int hDest, HDC hdcSrc, int xoriginSrc, int yoriginSrc, int wSrc, int hSrc, UINT crTransparent); __declspec(dllimport) BOOL __stdcall GdiGradientFill( HDC hdc, PTRIVERTEX pVertex, ULONG nVertex, PVOID pMesh, ULONG nCount, ULONG ulMode); #line 3871 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) BOOL __stdcall PlayMetaFileRecord( HDC hdc, LPHANDLETABLE lpHandleTable, LPMETARECORD lpMR, UINT noObjs); typedef int (__stdcall* MFENUMPROC)( HDC hdc, HANDLETABLE * lpht, METARECORD * lpMR, int nObj, LPARAM param); __declspec(dllimport) BOOL __stdcall EnumMetaFile( HDC hdc, HMETAFILE hmf, MFENUMPROC proc, LPARAM param); typedef int (__stdcall* ENHMFENUMPROC)( HDC hdc, HANDLETABLE * lpht, const ENHMETARECORD * lpmr, int hHandles, LPARAM data); // Enhanced Metafile Function Declarations __declspec(dllimport) HENHMETAFILE __stdcall CloseEnhMetaFile( HDC hdc); __declspec(dllimport) HENHMETAFILE __stdcall CopyEnhMetaFileA( HENHMETAFILE hEnh, LPCSTR lpFileName); __declspec(dllimport) HENHMETAFILE __stdcall CopyEnhMetaFileW( HENHMETAFILE hEnh, LPCWSTR lpFileName); #line 3895 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) HDC __stdcall CreateEnhMetaFileA( HDC hdc, LPCSTR lpFilename, const RECT *lprc, LPCSTR lpDesc); __declspec(dllimport) HDC __stdcall CreateEnhMetaFileW( HDC hdc, LPCWSTR lpFilename, const RECT *lprc, LPCWSTR lpDesc); #line 3902 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) BOOL __stdcall DeleteEnhMetaFile( HENHMETAFILE hmf); __declspec(dllimport) BOOL __stdcall EnumEnhMetaFile( HDC hdc, HENHMETAFILE hmf, ENHMFENUMPROC proc, LPVOID param, const RECT * lpRect); __declspec(dllimport) HENHMETAFILE __stdcall GetEnhMetaFileA( LPCSTR lpName); __declspec(dllimport) HENHMETAFILE __stdcall GetEnhMetaFileW( LPCWSTR lpName); #line 3912 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) UINT __stdcall GetEnhMetaFileBits( HENHMETAFILE hEMF, UINT nSize, LPBYTE lpData); __declspec(dllimport) UINT __stdcall GetEnhMetaFileDescriptionA( HENHMETAFILE hemf, UINT cchBuffer, LPSTR lpDescription); __declspec(dllimport) UINT __stdcall GetEnhMetaFileDescriptionW( HENHMETAFILE hemf, UINT cchBuffer, LPWSTR lpDescription); #line 3926 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) UINT __stdcall GetEnhMetaFileHeader( HENHMETAFILE hemf, UINT nSize, LPENHMETAHEADER lpEnhMetaHeader); __declspec(dllimport) UINT __stdcall GetEnhMetaFilePaletteEntries( HENHMETAFILE hemf, UINT nNumEntries, LPPALETTEENTRY lpPaletteEntries); __declspec(dllimport) UINT __stdcall GetEnhMetaFilePixelFormat( HENHMETAFILE hemf, UINT cbBuffer, PIXELFORMATDESCRIPTOR *ppfd); __declspec(dllimport) UINT __stdcall GetWinMetaFileBits( HENHMETAFILE hemf, UINT cbData16, LPBYTE pData16, INT iMapMode, HDC hdcRef); __declspec(dllimport) BOOL __stdcall PlayEnhMetaFile( HDC hdc, HENHMETAFILE hmf, const RECT * lprect); __declspec(dllimport) BOOL __stdcall PlayEnhMetaFileRecord( HDC hdc, LPHANDLETABLE pht, const ENHMETARECORD *pmr, UINT cht); __declspec(dllimport) HENHMETAFILE __stdcall SetEnhMetaFileBits( UINT nSize, const BYTE * pb); __declspec(dllimport) HENHMETAFILE __stdcall SetWinMetaFileBits( UINT nSize, const BYTE *lpMeta16Data, HDC hdcRef, const METAFILEPICT *lpMFP); __declspec(dllimport) BOOL __stdcall GdiComment( HDC hdc, UINT nSize, const BYTE *lpData); #line 3957 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) BOOL __stdcall GetTextMetricsA( HDC hdc, LPTEXTMETRICA lptm); __declspec(dllimport) BOOL __stdcall GetTextMetricsW( HDC hdc, LPTEXTMETRICW lptm); #line 3967 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 3987 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 3989 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" /* new GDI */ typedef struct tagDIBSECTION { BITMAP dsBm; BITMAPINFOHEADER dsBmih; DWORD dsBitfields[3]; HANDLE dshSection; DWORD dsOffset; } DIBSECTION, *LPDIBSECTION, *PDIBSECTION; __declspec(dllimport) BOOL __stdcall AngleArc( HDC hdc, int x, int y, DWORD r, FLOAT StartAngle, FLOAT SweepAngle); __declspec(dllimport) BOOL __stdcall PolyPolyline( HDC hdc, const POINT *apt, const DWORD *asz, DWORD csz); __declspec(dllimport) BOOL __stdcall GetWorldTransform( HDC hdc, LPXFORM lpxf); __declspec(dllimport) BOOL __stdcall SetWorldTransform( HDC hdc, const XFORM * lpxf); __declspec(dllimport) BOOL __stdcall ModifyWorldTransform( HDC hdc, const XFORM * lpxf, DWORD mode); __declspec(dllimport) BOOL __stdcall CombineTransform( LPXFORM lpxfOut, const XFORM *lpxf1, const XFORM *lpxf2); __declspec(dllimport) HBITMAP __stdcall CreateDIBSection( HDC hdc, const BITMAPINFO *lpbmi, UINT usage, void **ppvBits, HANDLE hSection, DWORD offset); __declspec(dllimport) UINT __stdcall GetDIBColorTable( HDC hdc, UINT iStart, UINT cEntries, RGBQUAD *prgbq); __declspec(dllimport) UINT __stdcall SetDIBColorTable( HDC hdc, UINT iStart, UINT cEntries, const RGBQUAD *prgbq); /* Flags value for COLORADJUSTMENT */ /* IlluminantIndex values */ /* Min and max for RedGamma, GreenGamma, BlueGamma */ /* Min and max for ReferenceBlack and ReferenceWhite */ /* Min and max for Contrast, Brightness, Colorfulness, RedGreenTint */ typedef struct tagCOLORADJUSTMENT { WORD caSize; WORD caFlags; WORD caIlluminantIndex; WORD caRedGamma; WORD caGreenGamma; WORD caBlueGamma; WORD caReferenceBlack; WORD caReferenceWhite; SHORT caContrast; SHORT caBrightness; SHORT caColorfulness; SHORT caRedGreenTint; } COLORADJUSTMENT, *PCOLORADJUSTMENT, *LPCOLORADJUSTMENT; __declspec(dllimport) BOOL __stdcall SetColorAdjustment( HDC hdc, const COLORADJUSTMENT *lpca); __declspec(dllimport) BOOL __stdcall GetColorAdjustment( HDC hdc, LPCOLORADJUSTMENT lpca); __declspec(dllimport) HPALETTE __stdcall CreateHalftonePalette( HDC hdc); typedef BOOL (__stdcall* ABORTPROC)( HDC, int); #line 4076 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" typedef struct _DOCINFOA { int cbSize; LPCSTR lpszDocName; LPCSTR lpszOutput; LPCSTR lpszDatatype; DWORD fwType; #line 4085 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" } DOCINFOA, *LPDOCINFOA; typedef struct _DOCINFOW { int cbSize; LPCWSTR lpszDocName; LPCWSTR lpszOutput; LPCWSTR lpszDatatype; DWORD fwType; #line 4094 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" } DOCINFOW, *LPDOCINFOW; typedef DOCINFOW DOCINFO; typedef LPDOCINFOW LPDOCINFO; #line 4102 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 4107 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) int __stdcall StartDocA( HDC hdc, const DOCINFOA *lpdi); __declspec(dllimport) int __stdcall StartDocW( HDC hdc, const DOCINFOW *lpdi); #line 4115 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) int __stdcall EndDoc( HDC hdc); __declspec(dllimport) int __stdcall StartPage( HDC hdc); __declspec(dllimport) int __stdcall EndPage( HDC hdc); __declspec(dllimport) int __stdcall AbortDoc( HDC hdc); __declspec(dllimport) int __stdcall SetAbortProc( HDC hdc, ABORTPROC proc); __declspec(dllimport) BOOL __stdcall AbortPath( HDC hdc); __declspec(dllimport) BOOL __stdcall ArcTo( HDC hdc, int left, int top, int right, int bottom, int xr1, int yr1, int xr2, int yr2); __declspec(dllimport) BOOL __stdcall BeginPath( HDC hdc); __declspec(dllimport) BOOL __stdcall CloseFigure( HDC hdc); __declspec(dllimport) BOOL __stdcall EndPath( HDC hdc); __declspec(dllimport) BOOL __stdcall FillPath( HDC hdc); __declspec(dllimport) BOOL __stdcall FlattenPath( HDC hdc); __declspec(dllimport) int __stdcall GetPath( HDC hdc, LPPOINT apt, LPBYTE aj, int cpt); __declspec(dllimport) HRGN __stdcall PathToRegion( HDC hdc); __declspec(dllimport) BOOL __stdcall PolyDraw( HDC hdc, const POINT * apt, const BYTE * aj, int cpt); __declspec(dllimport) BOOL __stdcall SelectClipPath( HDC hdc, int mode); __declspec(dllimport) int __stdcall SetArcDirection( HDC hdc, int dir); __declspec(dllimport) BOOL __stdcall SetMiterLimit( HDC hdc, FLOAT limit, PFLOAT old); __declspec(dllimport) BOOL __stdcall StrokeAndFillPath( HDC hdc); __declspec(dllimport) BOOL __stdcall StrokePath( HDC hdc); __declspec(dllimport) BOOL __stdcall WidenPath( HDC hdc); __declspec(dllimport) HPEN __stdcall ExtCreatePen( DWORD iPenStyle, DWORD cWidth, const LOGBRUSH *plbrush, DWORD cStyle, const DWORD *pstyle); __declspec(dllimport) BOOL __stdcall GetMiterLimit( HDC hdc, PFLOAT plimit); __declspec(dllimport) int __stdcall GetArcDirection( HDC hdc); __declspec(dllimport) int __stdcall GetObjectA( HANDLE h, int c, LPVOID pv); __declspec(dllimport) int __stdcall GetObjectW( HANDLE h, int c, LPVOID pv); #line 4152 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 4173 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) BOOL __stdcall MoveToEx( HDC hdc, int x, int y, LPPOINT lppt); __declspec(dllimport) BOOL __stdcall TextOutA( HDC hdc, int x, int y, LPCSTR lpString, int c); __declspec(dllimport) BOOL __stdcall TextOutW( HDC hdc, int x, int y, LPCWSTR lpString, int c); #line 4183 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) BOOL __stdcall ExtTextOutA( HDC hdc, int x, int y, UINT options, const RECT * lprect, LPCSTR lpString, UINT c, const INT * lpDx); __declspec(dllimport) BOOL __stdcall ExtTextOutW( HDC hdc, int x, int y, UINT options, const RECT * lprect, LPCWSTR lpString, UINT c, const INT * lpDx); #line 4190 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) BOOL __stdcall PolyTextOutA( HDC hdc, const POLYTEXTA * ppt, int nstrings); __declspec(dllimport) BOOL __stdcall PolyTextOutW( HDC hdc, const POLYTEXTW * ppt, int nstrings); #line 4197 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) HRGN __stdcall CreatePolygonRgn( const POINT *pptl, int cPoint, int iMode); __declspec(dllimport) BOOL __stdcall DPtoLP( HDC hdc, LPPOINT lppt, int c); __declspec(dllimport) BOOL __stdcall LPtoDP( HDC hdc, LPPOINT lppt, int c); __declspec(dllimport) BOOL __stdcall Polygon( HDC hdc, const POINT *apt, int cpt); __declspec(dllimport) BOOL __stdcall Polyline( HDC hdc, const POINT *apt, int cpt); __declspec(dllimport) BOOL __stdcall PolyBezier( HDC hdc, const POINT * apt, DWORD cpt); __declspec(dllimport) BOOL __stdcall PolyBezierTo( HDC hdc, const POINT * apt, DWORD cpt); __declspec(dllimport) BOOL __stdcall PolylineTo( HDC hdc, const POINT * apt, DWORD cpt); __declspec(dllimport) BOOL __stdcall SetViewportExtEx( HDC hdc, int x, int y, LPSIZE lpsz); __declspec(dllimport) BOOL __stdcall SetViewportOrgEx( HDC hdc, int x, int y, LPPOINT lppt); __declspec(dllimport) BOOL __stdcall SetWindowExtEx( HDC hdc, int x, int y, LPSIZE lpsz); __declspec(dllimport) BOOL __stdcall SetWindowOrgEx( HDC hdc, int x, int y, LPPOINT lppt); __declspec(dllimport) BOOL __stdcall OffsetViewportOrgEx( HDC hdc, int x, int y, LPPOINT lppt); __declspec(dllimport) BOOL __stdcall OffsetWindowOrgEx( HDC hdc, int x, int y, LPPOINT lppt); __declspec(dllimport) BOOL __stdcall ScaleViewportExtEx( HDC hdc, int xn, int dx, int yn, int yd, LPSIZE lpsz); __declspec(dllimport) BOOL __stdcall ScaleWindowExtEx( HDC hdc, int xn, int xd, int yn, int yd, LPSIZE lpsz); __declspec(dllimport) BOOL __stdcall SetBitmapDimensionEx( HBITMAP hbm, int w, int h, LPSIZE lpsz); __declspec(dllimport) BOOL __stdcall SetBrushOrgEx( HDC hdc, int x, int y, LPPOINT lppt); __declspec(dllimport) int __stdcall GetTextFaceA( HDC hdc, int c, LPSTR lpName); __declspec(dllimport) int __stdcall GetTextFaceW( HDC hdc, int c, LPWSTR lpName); #line 4229 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" typedef struct tagKERNINGPAIR { WORD wFirst; WORD wSecond; int iKernAmount; } KERNINGPAIR, *LPKERNINGPAIR; __declspec(dllimport) DWORD __stdcall GetKerningPairsA( HDC hdc, DWORD nPairs, LPKERNINGPAIR lpKernPair); __declspec(dllimport) DWORD __stdcall GetKerningPairsW( HDC hdc, DWORD nPairs, LPKERNINGPAIR lpKernPair); #line 4249 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) BOOL __stdcall GetDCOrgEx( HDC hdc, LPPOINT lppt); __declspec(dllimport) BOOL __stdcall FixBrushOrgEx( HDC hdc, int x, int y, LPPOINT ptl); __declspec(dllimport) BOOL __stdcall UnrealizeObject( HGDIOBJ h); __declspec(dllimport) BOOL __stdcall GdiFlush(void); __declspec(dllimport) DWORD __stdcall GdiSetBatchLimit( DWORD dw); __declspec(dllimport) DWORD __stdcall GdiGetBatchLimit(void); typedef int (__stdcall* ICMENUMPROCA)(LPSTR, LPARAM); typedef int (__stdcall* ICMENUMPROCW)(LPWSTR, LPARAM); #line 4273 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) int __stdcall SetICMMode( HDC hdc, int mode); __declspec(dllimport) BOOL __stdcall CheckColorsInGamut( HDC hdc, LPRGBTRIPLE lpRGBTriple, LPVOID dlpBuffer, DWORD nCount); __declspec(dllimport) HCOLORSPACE __stdcall GetColorSpace( HDC hdc); __declspec(dllimport) BOOL __stdcall GetLogColorSpaceA( HCOLORSPACE hColorSpace, LPLOGCOLORSPACEA lpBuffer, DWORD nSize); __declspec(dllimport) BOOL __stdcall GetLogColorSpaceW( HCOLORSPACE hColorSpace, LPLOGCOLORSPACEW lpBuffer, DWORD nSize); #line 4292 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) HCOLORSPACE __stdcall CreateColorSpaceA( LPLOGCOLORSPACEA lplcs); __declspec(dllimport) HCOLORSPACE __stdcall CreateColorSpaceW( LPLOGCOLORSPACEW lplcs); #line 4300 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) HCOLORSPACE __stdcall SetColorSpace( HDC hdc, HCOLORSPACE hcs); __declspec(dllimport) BOOL __stdcall DeleteColorSpace( HCOLORSPACE hcs); __declspec(dllimport) BOOL __stdcall GetICMProfileA( HDC hdc, LPDWORD pBufSize, LPSTR pszFilename); __declspec(dllimport) BOOL __stdcall GetICMProfileW( HDC hdc, LPDWORD pBufSize, LPWSTR pszFilename); #line 4313 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) BOOL __stdcall SetICMProfileA( HDC hdc, LPSTR lpFileName); __declspec(dllimport) BOOL __stdcall SetICMProfileW( HDC hdc, LPWSTR lpFileName); #line 4321 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) BOOL __stdcall GetDeviceGammaRamp( HDC hdc, LPVOID lpRamp); __declspec(dllimport) BOOL __stdcall SetDeviceGammaRamp( HDC hdc, LPVOID lpRamp); __declspec(dllimport) BOOL __stdcall ColorMatchToTarget( HDC hdc, HDC hdcTarget, DWORD action); __declspec(dllimport) int __stdcall EnumICMProfilesA( HDC hdc, ICMENUMPROCA proc, LPARAM param); __declspec(dllimport) int __stdcall EnumICMProfilesW( HDC hdc, ICMENUMPROCW proc, LPARAM param); #line 4331 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" // The Win95 update API UpdateICMRegKeyA is deprecated to set last error to ERROR_NOT_SUPPORTED and return FALSE __declspec(dllimport) BOOL __stdcall UpdateICMRegKeyA( DWORD reserved, LPSTR lpszCMID, LPSTR lpszFileName, UINT command); // The Win95 update API UpdateICMRegKeyW is deprecated to set last error to ERROR_NOT_SUPPORTED and return FALSE __declspec(dllimport) BOOL __stdcall UpdateICMRegKeyW( DWORD reserved, LPWSTR lpszCMID, LPWSTR lpszFileName, UINT command); #line 4340 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #pragma deprecated (UpdateICMRegKeyW) #pragma deprecated (UpdateICMRegKeyA) #line 4344 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) BOOL __stdcall ColorCorrectPalette( HDC hdc, HPALETTE hPal, DWORD deFirst, DWORD num); #line 4348 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" // Enhanced metafile constants. #line 4358 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" // Stock object flag used in the object handle index in the enhanced // metafile records. // E.g. The object handle index (META_STOCK_OBJECT | BLACK_BRUSH) // represents the stock object BLACK_BRUSH. // Enhanced metafile record types. #line 4475 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 4492 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 4498 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 4508 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" // Base record type for the enhanced metafile. typedef struct tagEMR { DWORD iType; // Enhanced metafile record type DWORD nSize; // Length of the record in bytes. // This must be a multiple of 4. } EMR, *PEMR; // Base text record type for the enhanced metafile. typedef struct tagEMRTEXT { POINTL ptlReference; DWORD nChars; DWORD offString; // Offset to the string DWORD fOptions; RECTL rcl; DWORD offDx; // Offset to the inter-character spacing array. // This is always given. } EMRTEXT, *PEMRTEXT; // Record structures for the enhanced metafile. typedef struct tagABORTPATH { EMR emr; } EMRABORTPATH, *PEMRABORTPATH, EMRBEGINPATH, *PEMRBEGINPATH, EMRENDPATH, *PEMRENDPATH, EMRCLOSEFIGURE, *PEMRCLOSEFIGURE, EMRFLATTENPATH, *PEMRFLATTENPATH, EMRWIDENPATH, *PEMRWIDENPATH, EMRSETMETARGN, *PEMRSETMETARGN, EMRSAVEDC, *PEMRSAVEDC, EMRREALIZEPALETTE, *PEMRREALIZEPALETTE; typedef struct tagEMRSELECTCLIPPATH { EMR emr; DWORD iMode; } EMRSELECTCLIPPATH, *PEMRSELECTCLIPPATH, EMRSETBKMODE, *PEMRSETBKMODE, EMRSETMAPMODE, *PEMRSETMAPMODE, EMRSETLAYOUT, *PEMRSETLAYOUT, #line 4556 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" EMRSETPOLYFILLMODE, *PEMRSETPOLYFILLMODE, EMRSETROP2, *PEMRSETROP2, EMRSETSTRETCHBLTMODE, *PEMRSETSTRETCHBLTMODE, EMRSETICMMODE, *PEMRSETICMMODE, EMRSETTEXTALIGN, *PEMRSETTEXTALIGN; typedef struct tagEMRSETMITERLIMIT { EMR emr; FLOAT eMiterLimit; } EMRSETMITERLIMIT, *PEMRSETMITERLIMIT; typedef struct tagEMRRESTOREDC { EMR emr; LONG iRelative; // Specifies a relative instance } EMRRESTOREDC, *PEMRRESTOREDC; typedef struct tagEMRSETARCDIRECTION { EMR emr; DWORD iArcDirection; // Specifies the arc direction in the // advanced graphics mode. } EMRSETARCDIRECTION, *PEMRSETARCDIRECTION; typedef struct tagEMRSETMAPPERFLAGS { EMR emr; DWORD dwFlags; } EMRSETMAPPERFLAGS, *PEMRSETMAPPERFLAGS; typedef struct tagEMRSETTEXTCOLOR { EMR emr; COLORREF crColor; } EMRSETBKCOLOR, *PEMRSETBKCOLOR, EMRSETTEXTCOLOR, *PEMRSETTEXTCOLOR; typedef struct tagEMRSELECTOBJECT { EMR emr; DWORD ihObject; // Object handle index } EMRSELECTOBJECT, *PEMRSELECTOBJECT, EMRDELETEOBJECT, *PEMRDELETEOBJECT; typedef struct tagEMRSELECTPALETTE { EMR emr; DWORD ihPal; // Palette handle index, background mode only } EMRSELECTPALETTE, *PEMRSELECTPALETTE; typedef struct tagEMRRESIZEPALETTE { EMR emr; DWORD ihPal; // Palette handle index DWORD cEntries; } EMRRESIZEPALETTE, *PEMRRESIZEPALETTE; typedef struct tagEMRSETPALETTEENTRIES { EMR emr; DWORD ihPal; // Palette handle index DWORD iStart; DWORD cEntries; PALETTEENTRY aPalEntries[1];// The peFlags fields do not contain any flags } EMRSETPALETTEENTRIES, *PEMRSETPALETTEENTRIES; typedef struct tagEMRSETCOLORADJUSTMENT { EMR emr; COLORADJUSTMENT ColorAdjustment; } EMRSETCOLORADJUSTMENT, *PEMRSETCOLORADJUSTMENT; typedef struct tagEMRGDICOMMENT { EMR emr; DWORD cbData; // Size of data in bytes BYTE Data[1]; } EMRGDICOMMENT, *PEMRGDICOMMENT; typedef struct tagEMREOF { EMR emr; DWORD nPalEntries; // Number of palette entries DWORD offPalEntries; // Offset to the palette entries DWORD nSizeLast; // Same as nSize and must be the last DWORD // of the record. The palette entries, // if exist, precede this field. } EMREOF, *PEMREOF; typedef struct tagEMRLINETO { EMR emr; POINTL ptl; } EMRLINETO, *PEMRLINETO, EMRMOVETOEX, *PEMRMOVETOEX; typedef struct tagEMROFFSETCLIPRGN { EMR emr; POINTL ptlOffset; } EMROFFSETCLIPRGN, *PEMROFFSETCLIPRGN; typedef struct tagEMRFILLPATH { EMR emr; RECTL rclBounds; // Inclusive-inclusive bounds in device units } EMRFILLPATH, *PEMRFILLPATH, EMRSTROKEANDFILLPATH, *PEMRSTROKEANDFILLPATH, EMRSTROKEPATH, *PEMRSTROKEPATH; typedef struct tagEMREXCLUDECLIPRECT { EMR emr; RECTL rclClip; } EMREXCLUDECLIPRECT, *PEMREXCLUDECLIPRECT, EMRINTERSECTCLIPRECT, *PEMRINTERSECTCLIPRECT; typedef struct tagEMRSETVIEWPORTORGEX { EMR emr; POINTL ptlOrigin; } EMRSETVIEWPORTORGEX, *PEMRSETVIEWPORTORGEX, EMRSETWINDOWORGEX, *PEMRSETWINDOWORGEX, EMRSETBRUSHORGEX, *PEMRSETBRUSHORGEX; typedef struct tagEMRSETVIEWPORTEXTEX { EMR emr; SIZEL szlExtent; } EMRSETVIEWPORTEXTEX, *PEMRSETVIEWPORTEXTEX, EMRSETWINDOWEXTEX, *PEMRSETWINDOWEXTEX; typedef struct tagEMRSCALEVIEWPORTEXTEX { EMR emr; LONG xNum; LONG xDenom; LONG yNum; LONG yDenom; } EMRSCALEVIEWPORTEXTEX, *PEMRSCALEVIEWPORTEXTEX, EMRSCALEWINDOWEXTEX, *PEMRSCALEWINDOWEXTEX; typedef struct tagEMRSETWORLDTRANSFORM { EMR emr; XFORM xform; } EMRSETWORLDTRANSFORM, *PEMRSETWORLDTRANSFORM; typedef struct tagEMRMODIFYWORLDTRANSFORM { EMR emr; XFORM xform; DWORD iMode; } EMRMODIFYWORLDTRANSFORM, *PEMRMODIFYWORLDTRANSFORM; typedef struct tagEMRSETPIXELV { EMR emr; POINTL ptlPixel; COLORREF crColor; } EMRSETPIXELV, *PEMRSETPIXELV; typedef struct tagEMREXTFLOODFILL { EMR emr; POINTL ptlStart; COLORREF crColor; DWORD iMode; } EMREXTFLOODFILL, *PEMREXTFLOODFILL; typedef struct tagEMRELLIPSE { EMR emr; RECTL rclBox; // Inclusive-inclusive bounding rectangle } EMRELLIPSE, *PEMRELLIPSE, EMRRECTANGLE, *PEMRRECTANGLE; typedef struct tagEMRROUNDRECT { EMR emr; RECTL rclBox; // Inclusive-inclusive bounding rectangle SIZEL szlCorner; } EMRROUNDRECT, *PEMRROUNDRECT; typedef struct tagEMRARC { EMR emr; RECTL rclBox; // Inclusive-inclusive bounding rectangle POINTL ptlStart; POINTL ptlEnd; } EMRARC, *PEMRARC, EMRARCTO, *PEMRARCTO, EMRCHORD, *PEMRCHORD, EMRPIE, *PEMRPIE; typedef struct tagEMRANGLEARC { EMR emr; POINTL ptlCenter; DWORD nRadius; FLOAT eStartAngle; FLOAT eSweepAngle; } EMRANGLEARC, *PEMRANGLEARC; typedef struct tagEMRPOLYLINE { EMR emr; RECTL rclBounds; // Inclusive-inclusive bounds in device units DWORD cptl; POINTL aptl[1]; } EMRPOLYLINE, *PEMRPOLYLINE, EMRPOLYBEZIER, *PEMRPOLYBEZIER, EMRPOLYGON, *PEMRPOLYGON, EMRPOLYBEZIERTO, *PEMRPOLYBEZIERTO, EMRPOLYLINETO, *PEMRPOLYLINETO; typedef struct tagEMRPOLYLINE16 { EMR emr; RECTL rclBounds; // Inclusive-inclusive bounds in device units DWORD cpts; POINTS apts[1]; } EMRPOLYLINE16, *PEMRPOLYLINE16, EMRPOLYBEZIER16, *PEMRPOLYBEZIER16, EMRPOLYGON16, *PEMRPOLYGON16, EMRPOLYBEZIERTO16, *PEMRPOLYBEZIERTO16, EMRPOLYLINETO16, *PEMRPOLYLINETO16; typedef struct tagEMRPOLYDRAW { EMR emr; RECTL rclBounds; // Inclusive-inclusive bounds in device units DWORD cptl; // Number of points POINTL aptl[1]; // Array of points BYTE abTypes[1]; // Array of point types } EMRPOLYDRAW, *PEMRPOLYDRAW; typedef struct tagEMRPOLYDRAW16 { EMR emr; RECTL rclBounds; // Inclusive-inclusive bounds in device units DWORD cpts; // Number of points POINTS apts[1]; // Array of points BYTE abTypes[1]; // Array of point types } EMRPOLYDRAW16, *PEMRPOLYDRAW16; typedef struct tagEMRPOLYPOLYLINE { EMR emr; RECTL rclBounds; // Inclusive-inclusive bounds in device units DWORD nPolys; // Number of polys DWORD cptl; // Total number of points in all polys DWORD aPolyCounts[1]; // Array of point counts for each poly POINTL aptl[1]; // Array of points } EMRPOLYPOLYLINE, *PEMRPOLYPOLYLINE, EMRPOLYPOLYGON, *PEMRPOLYPOLYGON; typedef struct tagEMRPOLYPOLYLINE16 { EMR emr; RECTL rclBounds; // Inclusive-inclusive bounds in device units DWORD nPolys; // Number of polys DWORD cpts; // Total number of points in all polys DWORD aPolyCounts[1]; // Array of point counts for each poly POINTS apts[1]; // Array of points } EMRPOLYPOLYLINE16, *PEMRPOLYPOLYLINE16, EMRPOLYPOLYGON16, *PEMRPOLYPOLYGON16; typedef struct tagEMRINVERTRGN { EMR emr; RECTL rclBounds; // Inclusive-inclusive bounds in device units DWORD cbRgnData; // Size of region data in bytes BYTE RgnData[1]; } EMRINVERTRGN, *PEMRINVERTRGN, EMRPAINTRGN, *PEMRPAINTRGN; typedef struct tagEMRFILLRGN { EMR emr; RECTL rclBounds; // Inclusive-inclusive bounds in device units DWORD cbRgnData; // Size of region data in bytes DWORD ihBrush; // Brush handle index BYTE RgnData[1]; } EMRFILLRGN, *PEMRFILLRGN; typedef struct tagEMRFRAMERGN { EMR emr; RECTL rclBounds; // Inclusive-inclusive bounds in device units DWORD cbRgnData; // Size of region data in bytes DWORD ihBrush; // Brush handle index SIZEL szlStroke; BYTE RgnData[1]; } EMRFRAMERGN, *PEMRFRAMERGN; typedef struct tagEMREXTSELECTCLIPRGN { EMR emr; DWORD cbRgnData; // Size of region data in bytes DWORD iMode; BYTE RgnData[1]; } EMREXTSELECTCLIPRGN, *PEMREXTSELECTCLIPRGN; typedef struct tagEMREXTTEXTOUTA { EMR emr; RECTL rclBounds; // Inclusive-inclusive bounds in device units DWORD iGraphicsMode; // Current graphics mode FLOAT exScale; // X and Y scales from Page units to .01mm units FLOAT eyScale; // if graphics mode is GM_COMPATIBLE. EMRTEXT emrtext; // This is followed by the string and spacing // array } EMREXTTEXTOUTA, *PEMREXTTEXTOUTA, EMREXTTEXTOUTW, *PEMREXTTEXTOUTW; typedef struct tagEMRPOLYTEXTOUTA { EMR emr; RECTL rclBounds; // Inclusive-inclusive bounds in device units DWORD iGraphicsMode; // Current graphics mode FLOAT exScale; // X and Y scales from Page units to .01mm units FLOAT eyScale; // if graphics mode is GM_COMPATIBLE. LONG cStrings; EMRTEXT aemrtext[1]; // Array of EMRTEXT structures. This is // followed by the strings and spacing arrays. } EMRPOLYTEXTOUTA, *PEMRPOLYTEXTOUTA, EMRPOLYTEXTOUTW, *PEMRPOLYTEXTOUTW; typedef struct tagEMRBITBLT { EMR emr; RECTL rclBounds; // Inclusive-inclusive bounds in device units LONG xDest; LONG yDest; LONG cxDest; LONG cyDest; DWORD dwRop; LONG xSrc; LONG ySrc; XFORM xformSrc; // Source DC transform COLORREF crBkColorSrc; // Source DC BkColor in RGB DWORD iUsageSrc; // Source bitmap info color table usage // (DIB_RGB_COLORS) DWORD offBmiSrc; // Offset to the source BITMAPINFO structure DWORD cbBmiSrc; // Size of the source BITMAPINFO structure DWORD offBitsSrc; // Offset to the source bitmap bits DWORD cbBitsSrc; // Size of the source bitmap bits } EMRBITBLT, *PEMRBITBLT; typedef struct tagEMRSTRETCHBLT { EMR emr; RECTL rclBounds; // Inclusive-inclusive bounds in device units LONG xDest; LONG yDest; LONG cxDest; LONG cyDest; DWORD dwRop; LONG xSrc; LONG ySrc; XFORM xformSrc; // Source DC transform COLORREF crBkColorSrc; // Source DC BkColor in RGB DWORD iUsageSrc; // Source bitmap info color table usage // (DIB_RGB_COLORS) DWORD offBmiSrc; // Offset to the source BITMAPINFO structure DWORD cbBmiSrc; // Size of the source BITMAPINFO structure DWORD offBitsSrc; // Offset to the source bitmap bits DWORD cbBitsSrc; // Size of the source bitmap bits LONG cxSrc; LONG cySrc; } EMRSTRETCHBLT, *PEMRSTRETCHBLT; typedef struct tagEMRMASKBLT { EMR emr; RECTL rclBounds; // Inclusive-inclusive bounds in device units LONG xDest; LONG yDest; LONG cxDest; LONG cyDest; DWORD dwRop; LONG xSrc; LONG ySrc; XFORM xformSrc; // Source DC transform COLORREF crBkColorSrc; // Source DC BkColor in RGB DWORD iUsageSrc; // Source bitmap info color table usage // (DIB_RGB_COLORS) DWORD offBmiSrc; // Offset to the source BITMAPINFO structure DWORD cbBmiSrc; // Size of the source BITMAPINFO structure DWORD offBitsSrc; // Offset to the source bitmap bits DWORD cbBitsSrc; // Size of the source bitmap bits LONG xMask; LONG yMask; DWORD iUsageMask; // Mask bitmap info color table usage DWORD offBmiMask; // Offset to the mask BITMAPINFO structure if any DWORD cbBmiMask; // Size of the mask BITMAPINFO structure if any DWORD offBitsMask; // Offset to the mask bitmap bits if any DWORD cbBitsMask; // Size of the mask bitmap bits if any } EMRMASKBLT, *PEMRMASKBLT; typedef struct tagEMRPLGBLT { EMR emr; RECTL rclBounds; // Inclusive-inclusive bounds in device units POINTL aptlDest[3]; LONG xSrc; LONG ySrc; LONG cxSrc; LONG cySrc; XFORM xformSrc; // Source DC transform COLORREF crBkColorSrc; // Source DC BkColor in RGB DWORD iUsageSrc; // Source bitmap info color table usage // (DIB_RGB_COLORS) DWORD offBmiSrc; // Offset to the source BITMAPINFO structure DWORD cbBmiSrc; // Size of the source BITMAPINFO structure DWORD offBitsSrc; // Offset to the source bitmap bits DWORD cbBitsSrc; // Size of the source bitmap bits LONG xMask; LONG yMask; DWORD iUsageMask; // Mask bitmap info color table usage DWORD offBmiMask; // Offset to the mask BITMAPINFO structure if any DWORD cbBmiMask; // Size of the mask BITMAPINFO structure if any DWORD offBitsMask; // Offset to the mask bitmap bits if any DWORD cbBitsMask; // Size of the mask bitmap bits if any } EMRPLGBLT, *PEMRPLGBLT; typedef struct tagEMRSETDIBITSTODEVICE { EMR emr; RECTL rclBounds; // Inclusive-inclusive bounds in device units LONG xDest; LONG yDest; LONG xSrc; LONG ySrc; LONG cxSrc; LONG cySrc; DWORD offBmiSrc; // Offset to the source BITMAPINFO structure DWORD cbBmiSrc; // Size of the source BITMAPINFO structure DWORD offBitsSrc; // Offset to the source bitmap bits DWORD cbBitsSrc; // Size of the source bitmap bits DWORD iUsageSrc; // Source bitmap info color table usage DWORD iStartScan; DWORD cScans; } EMRSETDIBITSTODEVICE, *PEMRSETDIBITSTODEVICE; typedef struct tagEMRSTRETCHDIBITS { EMR emr; RECTL rclBounds; // Inclusive-inclusive bounds in device units LONG xDest; LONG yDest; LONG xSrc; LONG ySrc; LONG cxSrc; LONG cySrc; DWORD offBmiSrc; // Offset to the source BITMAPINFO structure DWORD cbBmiSrc; // Size of the source BITMAPINFO structure DWORD offBitsSrc; // Offset to the source bitmap bits DWORD cbBitsSrc; // Size of the source bitmap bits DWORD iUsageSrc; // Source bitmap info color table usage DWORD dwRop; LONG cxDest; LONG cyDest; } EMRSTRETCHDIBITS, *PEMRSTRETCHDIBITS; typedef struct tagEMREXTCREATEFONTINDIRECTW { EMR emr; DWORD ihFont; // Font handle index EXTLOGFONTW elfw; } EMREXTCREATEFONTINDIRECTW, *PEMREXTCREATEFONTINDIRECTW; typedef struct tagEMRCREATEPALETTE { EMR emr; DWORD ihPal; // Palette handle index LOGPALETTE lgpl; // The peFlags fields in the palette entries // do not contain any flags } EMRCREATEPALETTE, *PEMRCREATEPALETTE; typedef struct tagEMRCREATEPEN { EMR emr; DWORD ihPen; // Pen handle index LOGPEN lopn; } EMRCREATEPEN, *PEMRCREATEPEN; typedef struct tagEMREXTCREATEPEN { EMR emr; DWORD ihPen; // Pen handle index DWORD offBmi; // Offset to the BITMAPINFO structure if any DWORD cbBmi; // Size of the BITMAPINFO structure if any // The bitmap info is followed by the bitmap // bits to form a packed DIB. DWORD offBits; // Offset to the brush bitmap bits if any DWORD cbBits; // Size of the brush bitmap bits if any EXTLOGPEN elp; // The extended pen with the style array. } EMREXTCREATEPEN, *PEMREXTCREATEPEN; typedef struct tagEMRCREATEBRUSHINDIRECT { EMR emr; DWORD ihBrush; // Brush handle index LOGBRUSH32 lb; // The style must be BS_SOLID, BS_HOLLOW, // BS_NULL or BS_HATCHED. } EMRCREATEBRUSHINDIRECT, *PEMRCREATEBRUSHINDIRECT; typedef struct tagEMRCREATEMONOBRUSH { EMR emr; DWORD ihBrush; // Brush handle index DWORD iUsage; // Bitmap info color table usage DWORD offBmi; // Offset to the BITMAPINFO structure DWORD cbBmi; // Size of the BITMAPINFO structure DWORD offBits; // Offset to the bitmap bits DWORD cbBits; // Size of the bitmap bits } EMRCREATEMONOBRUSH, *PEMRCREATEMONOBRUSH; typedef struct tagEMRCREATEDIBPATTERNBRUSHPT { EMR emr; DWORD ihBrush; // Brush handle index DWORD iUsage; // Bitmap info color table usage DWORD offBmi; // Offset to the BITMAPINFO structure DWORD cbBmi; // Size of the BITMAPINFO structure // The bitmap info is followed by the bitmap // bits to form a packed DIB. DWORD offBits; // Offset to the bitmap bits DWORD cbBits; // Size of the bitmap bits } EMRCREATEDIBPATTERNBRUSHPT, *PEMRCREATEDIBPATTERNBRUSHPT; typedef struct tagEMRFORMAT { DWORD dSignature; // Format signature, e.g. ENHMETA_SIGNATURE. DWORD nVersion; // Format version number. DWORD cbData; // Size of data in bytes. DWORD offData; // Offset to data from GDICOMMENT_IDENTIFIER. // It must begin at a DWORD offset. } EMRFORMAT, *PEMRFORMAT; typedef struct tagEMRGLSRECORD { EMR emr; DWORD cbData; // Size of data in bytes BYTE Data[1]; } EMRGLSRECORD, *PEMRGLSRECORD; typedef struct tagEMRGLSBOUNDEDRECORD { EMR emr; RECTL rclBounds; // Bounds in recording coordinates DWORD cbData; // Size of data in bytes BYTE Data[1]; } EMRGLSBOUNDEDRECORD, *PEMRGLSBOUNDEDRECORD; typedef struct tagEMRPIXELFORMAT { EMR emr; PIXELFORMATDESCRIPTOR pfd; } EMRPIXELFORMAT, *PEMRPIXELFORMAT; typedef struct tagEMRCREATECOLORSPACE { EMR emr; DWORD ihCS; // ColorSpace handle index LOGCOLORSPACEA lcs; // Ansi version of LOGCOLORSPACE } EMRCREATECOLORSPACE, *PEMRCREATECOLORSPACE; typedef struct tagEMRSETCOLORSPACE { EMR emr; DWORD ihCS; // ColorSpace handle index } EMRSETCOLORSPACE, *PEMRSETCOLORSPACE, EMRSELECTCOLORSPACE, *PEMRSELECTCOLORSPACE, EMRDELETECOLORSPACE, *PEMRDELETECOLORSPACE; #line 5139 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" typedef struct tagEMREXTESCAPE { EMR emr; INT iEscape; // Escape code INT cbEscData; // Size of escape data BYTE EscData[1]; // Escape data } EMREXTESCAPE, *PEMREXTESCAPE, EMRDRAWESCAPE, *PEMRDRAWESCAPE; typedef struct tagEMRNAMEDESCAPE { EMR emr; INT iEscape; // Escape code INT cbDriver; // Size of driver name INT cbEscData; // Size of escape data BYTE EscData[1]; // Driver name and Escape data } EMRNAMEDESCAPE, *PEMRNAMEDESCAPE; typedef struct tagEMRSETICMPROFILE { EMR emr; DWORD dwFlags; // flags DWORD cbName; // Size of desired profile name DWORD cbData; // Size of raw profile data if attached BYTE Data[1]; // Array size is cbName + cbData } EMRSETICMPROFILE, *PEMRSETICMPROFILE, EMRSETICMPROFILEA, *PEMRSETICMPROFILEA, EMRSETICMPROFILEW, *PEMRSETICMPROFILEW; typedef struct tagEMRCREATECOLORSPACEW { EMR emr; DWORD ihCS; // ColorSpace handle index LOGCOLORSPACEW lcs; // Unicode version of logical color space structure DWORD dwFlags; // flags DWORD cbData; // size of raw source profile data if attached BYTE Data[1]; // Array size is cbData } EMRCREATECOLORSPACEW, *PEMRCREATECOLORSPACEW; typedef struct tagCOLORMATCHTOTARGET { EMR emr; DWORD dwAction; // CS_ENABLE, CS_DISABLE or CS_DELETE_TRANSFORM DWORD dwFlags; // flags DWORD cbName; // Size of desired target profile name DWORD cbData; // Size of raw target profile data if attached BYTE Data[1]; // Array size is cbName + cbData } EMRCOLORMATCHTOTARGET, *PEMRCOLORMATCHTOTARGET; typedef struct tagCOLORCORRECTPALETTE { EMR emr; DWORD ihPalette; // Palette handle index DWORD nFirstEntry; // Index of first entry to correct DWORD nPalEntries; // Number of palette entries to correct DWORD nReserved; // Reserved } EMRCOLORCORRECTPALETTE, *PEMRCOLORCORRECTPALETTE; typedef struct tagEMRALPHABLEND { EMR emr; RECTL rclBounds; // Inclusive-inclusive bounds in device units LONG xDest; LONG yDest; LONG cxDest; LONG cyDest; DWORD dwRop; LONG xSrc; LONG ySrc; XFORM xformSrc; // Source DC transform COLORREF crBkColorSrc; // Source DC BkColor in RGB DWORD iUsageSrc; // Source bitmap info color table usage // (DIB_RGB_COLORS) DWORD offBmiSrc; // Offset to the source BITMAPINFO structure DWORD cbBmiSrc; // Size of the source BITMAPINFO structure DWORD offBitsSrc; // Offset to the source bitmap bits DWORD cbBitsSrc; // Size of the source bitmap bits LONG cxSrc; LONG cySrc; } EMRALPHABLEND, *PEMRALPHABLEND; typedef struct tagEMRGRADIENTFILL { EMR emr; RECTL rclBounds; // Inclusive-inclusive bounds in device units DWORD nVer; DWORD nTri; ULONG ulMode; TRIVERTEX Ver[1]; }EMRGRADIENTFILL,*PEMRGRADIENTFILL; typedef struct tagEMRTRANSPARENTBLT { EMR emr; RECTL rclBounds; // Inclusive-inclusive bounds in device units LONG xDest; LONG yDest; LONG cxDest; LONG cyDest; DWORD dwRop; LONG xSrc; LONG ySrc; XFORM xformSrc; // Source DC transform COLORREF crBkColorSrc; // Source DC BkColor in RGB DWORD iUsageSrc; // Source bitmap info color table usage // (DIB_RGB_COLORS) DWORD offBmiSrc; // Offset to the source BITMAPINFO structure DWORD cbBmiSrc; // Size of the source BITMAPINFO structure DWORD offBitsSrc; // Offset to the source bitmap bits DWORD cbBitsSrc; // Size of the source bitmap bits LONG cxSrc; LONG cySrc; } EMRTRANSPARENTBLT, *PEMRTRANSPARENTBLT; #line 5264 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 5275 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" // OpenGL wgl prototypes __declspec(dllimport) BOOL __stdcall wglCopyContext(HGLRC, HGLRC, UINT); __declspec(dllimport) HGLRC __stdcall wglCreateContext(HDC); __declspec(dllimport) HGLRC __stdcall wglCreateLayerContext(HDC, int); __declspec(dllimport) BOOL __stdcall wglDeleteContext(HGLRC); __declspec(dllimport) HGLRC __stdcall wglGetCurrentContext(void); __declspec(dllimport) HDC __stdcall wglGetCurrentDC(void); __declspec(dllimport) PROC __stdcall wglGetProcAddress(LPCSTR); __declspec(dllimport) BOOL __stdcall wglMakeCurrent(HDC, HGLRC); __declspec(dllimport) BOOL __stdcall wglShareLists(HGLRC, HGLRC); __declspec(dllimport) BOOL __stdcall wglUseFontBitmapsA(HDC, DWORD, DWORD, DWORD); __declspec(dllimport) BOOL __stdcall wglUseFontBitmapsW(HDC, DWORD, DWORD, DWORD); #line 5295 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" __declspec(dllimport) BOOL __stdcall SwapBuffers(HDC); typedef struct _POINTFLOAT { FLOAT x; FLOAT y; } POINTFLOAT, *PPOINTFLOAT; typedef struct _GLYPHMETRICSFLOAT { FLOAT gmfBlackBoxX; FLOAT gmfBlackBoxY; POINTFLOAT gmfptGlyphOrigin; FLOAT gmfCellIncX; FLOAT gmfCellIncY; } GLYPHMETRICSFLOAT, *PGLYPHMETRICSFLOAT, *LPGLYPHMETRICSFLOAT; __declspec(dllimport) BOOL __stdcall wglUseFontOutlinesA(HDC, DWORD, DWORD, DWORD, FLOAT, FLOAT, int, LPGLYPHMETRICSFLOAT); __declspec(dllimport) BOOL __stdcall wglUseFontOutlinesW(HDC, DWORD, DWORD, DWORD, FLOAT, FLOAT, int, LPGLYPHMETRICSFLOAT); #line 5321 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" /* Layer plane descriptor */ typedef struct tagLAYERPLANEDESCRIPTOR { // lpd WORD nSize; WORD nVersion; DWORD dwFlags; BYTE iPixelType; BYTE cColorBits; BYTE cRedBits; BYTE cRedShift; BYTE cGreenBits; BYTE cGreenShift; BYTE cBlueBits; BYTE cBlueShift; BYTE cAlphaBits; BYTE cAlphaShift; BYTE cAccumBits; BYTE cAccumRedBits; BYTE cAccumGreenBits; BYTE cAccumBlueBits; BYTE cAccumAlphaBits; BYTE cDepthBits; BYTE cStencilBits; BYTE cAuxBuffers; BYTE iLayerPlane; BYTE bReserved; COLORREF crTransparent; } LAYERPLANEDESCRIPTOR, *PLAYERPLANEDESCRIPTOR, *LPLAYERPLANEDESCRIPTOR; /* LAYERPLANEDESCRIPTOR flags */ /* wglSwapLayerBuffers flags */ __declspec(dllimport) BOOL __stdcall wglDescribeLayerPlane(HDC, int, int, UINT, LPLAYERPLANEDESCRIPTOR); __declspec(dllimport) int __stdcall wglSetLayerPaletteEntries(HDC, int, int, int, const COLORREF *); __declspec(dllimport) int __stdcall wglGetLayerPaletteEntries(HDC, int, int, int, COLORREF *); __declspec(dllimport) BOOL __stdcall wglRealizeLayerPalette(HDC, int, BOOL); __declspec(dllimport) BOOL __stdcall wglSwapLayerBuffers(HDC, UINT); typedef struct _WGLSWAP { HDC hdc; UINT uiFlags; } WGLSWAP, *PWGLSWAP, *LPWGLSWAP; __declspec(dllimport) DWORD __stdcall wglSwapMultipleBuffers(UINT, const WGLSWAP *); #line 5420 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 5422 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" } #line 5426 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 5428 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wingdi.h" #line 158 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windows.h" #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /**************************************************************************** * * * winuser.h -- USER procedure declarations, constant definitions and macros * * * * Copyright (c) Microsoft Corporation. All rights reserved. * * * ****************************************************************************/ #pragma once // // Define API decoration for direct importing of DLL references. // #line 29 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" extern "C" { #line 37 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" typedef HANDLE HDWP; typedef void MENUTEMPLATEA; typedef void MENUTEMPLATEW; typedef MENUTEMPLATEW MENUTEMPLATE; #line 54 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" typedef PVOID LPMENUTEMPLATEA; typedef PVOID LPMENUTEMPLATEW; typedef LPMENUTEMPLATEW LPMENUTEMPLATE; #line 61 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" typedef LRESULT (__stdcall* WNDPROC)(HWND, UINT, WPARAM, LPARAM); typedef INT_PTR (__stdcall* DLGPROC)(HWND, UINT, WPARAM, LPARAM); typedef void (__stdcall* TIMERPROC)(HWND, UINT, UINT_PTR, DWORD); typedef BOOL (__stdcall* GRAYSTRINGPROC)(HDC, LPARAM, int); typedef BOOL (__stdcall* WNDENUMPROC)(HWND, LPARAM); typedef LRESULT (__stdcall* HOOKPROC)(int code, WPARAM wParam, LPARAM lParam); typedef void (__stdcall* SENDASYNCPROC)(HWND, UINT, ULONG_PTR, LRESULT); typedef BOOL (__stdcall* PROPENUMPROCA)(HWND, LPCSTR, HANDLE); typedef BOOL (__stdcall* PROPENUMPROCW)(HWND, LPCWSTR, HANDLE); typedef BOOL (__stdcall* PROPENUMPROCEXA)(HWND, LPSTR, HANDLE, ULONG_PTR); typedef BOOL (__stdcall* PROPENUMPROCEXW)(HWND, LPWSTR, HANDLE, ULONG_PTR); typedef int (__stdcall* EDITWORDBREAKPROCA)(LPSTR lpch, int ichCurrent, int cch, int code); typedef int (__stdcall* EDITWORDBREAKPROCW)(LPWSTR lpch, int ichCurrent, int cch, int code); typedef BOOL (__stdcall* DRAWSTATEPROC)(HDC hdc, LPARAM lData, WPARAM wData, int cx, int cy); #line 85 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 111 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" typedef PROPENUMPROCW PROPENUMPROC; typedef PROPENUMPROCEXW PROPENUMPROCEX; typedef EDITWORDBREAKPROCW EDITWORDBREAKPROC; #line 121 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" typedef BOOL (__stdcall* NAMEENUMPROCA)(LPSTR, LPARAM); typedef BOOL (__stdcall* NAMEENUMPROCW)(LPWSTR, LPARAM); typedef NAMEENUMPROCA WINSTAENUMPROCA; typedef NAMEENUMPROCA DESKTOPENUMPROCA; typedef NAMEENUMPROCW WINSTAENUMPROCW; typedef NAMEENUMPROCW DESKTOPENUMPROCW; #line 144 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" typedef WINSTAENUMPROCW WINSTAENUMPROC; typedef DESKTOPENUMPROCW DESKTOPENUMPROC; #line 155 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 164 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Predefined Resource Types */ #line 193 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 209 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 212 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #pragma warning(push) #pragma warning(disable:4995) #line 217 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) int __stdcall wvsprintfA( LPSTR, LPCSTR, va_list arglist); __declspec(dllimport) int __stdcall wvsprintfW( LPWSTR, LPCWSTR, va_list arglist); #line 237 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) int __cdecl wsprintfA( LPSTR, LPCSTR, ...); __declspec(dllimport) int __cdecl wsprintfW( LPWSTR, LPCWSTR, ...); #line 257 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #pragma warning(pop) #line 261 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * SPI_SETDESKWALLPAPER defined constants */ /* * Scroll Bar Constants */ /* * Scroll Bar Commands */ #line 298 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * ShowWindow() Commands */ /* * Old ShowWindow() Commands */ /* * Identifiers for the WM_SHOWWINDOW message */ #line 341 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * AnimateWindow() Commands */ #line 357 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * WM_KEYUP/DOWN/CHAR HIWORD(lParam) flags */ /* * Virtual Keys, Standard Set */ #line 384 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * 0x07 : unassigned */ /* * 0x0A - 0x0B : reserved */ /* * VK_0 - VK_9 are the same as ASCII '0' - '9' (0x30 - 0x39) * 0x40 : unassigned * VK_A - VK_Z are the same as ASCII 'A' - 'Z' (0x41 - 0x5A) */ /* * 0x5E : reserved */ /* * 0x88 - 0x8F : unassigned */ /* * NEC PC-9800 kbd definitions */ /* * Fujitsu/OASYS kbd definitions */ /* * 0x97 - 0x9F : unassigned */ /* * VK_L* & VK_R* - left and right Alt, Ctrl and Shift virtual keys. * Used only as parameters to GetAsyncKeyState() and GetKeyState(). * No other API or message will distinguish left and right keys in this way. */ #line 553 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * 0xB8 - 0xB9 : reserved */ /* * 0xC1 - 0xD7 : reserved */ /* * 0xD8 - 0xDA : unassigned */ /* * 0xE0 : reserved */ /* * Various extended or enhanced keyboards */ #line 595 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 602 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * 0xE8 : unassigned */ /* * Nokia/Ericsson definitions */ /* * 0xFF : reserved */ #line 640 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * SetWindowsHook() codes */ #line 659 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 665 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 670 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 677 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 680 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Hook Codes */ /* * CBT Hook Codes */ /* * HCBT_CREATEWND parameters pointed to by lParam */ typedef struct tagCBT_CREATEWNDA { struct tagCREATESTRUCTA *lpcs; HWND hwndInsertAfter; } CBT_CREATEWNDA, *LPCBT_CREATEWNDA; /* * HCBT_CREATEWND parameters pointed to by lParam */ typedef struct tagCBT_CREATEWNDW { struct tagCREATESTRUCTW *lpcs; HWND hwndInsertAfter; } CBT_CREATEWNDW, *LPCBT_CREATEWNDW; typedef CBT_CREATEWNDW CBT_CREATEWND; typedef LPCBT_CREATEWNDW LPCBT_CREATEWND; #line 732 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * HCBT_ACTIVATE structure pointed to by lParam */ typedef struct tagCBTACTIVATESTRUCT { BOOL fMouse; HWND hWndActive; } CBTACTIVATESTRUCT, *LPCBTACTIVATESTRUCT; /* * WTSSESSION_NOTIFICATION struct pointed by lParam, for WM_WTSSESSION_CHANGE */ typedef struct tagWTSSESSION_NOTIFICATION { DWORD cbSize; DWORD dwSessionId; } WTSSESSION_NOTIFICATION, *PWTSSESSION_NOTIFICATION; /* * codes passed in WPARAM for WM_WTSSESSION_CHANGE */ #line 768 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * WH_MSGFILTER Filter Proc Codes */ /* * Shell support */ #line 796 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 800 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 805 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* cmd for HSHELL_APPCOMMAND and WM_APPCOMMAND */ #line 867 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 871 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 883 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" typedef struct { HWND hwnd; RECT rc; } SHELLHOOKINFO, *LPSHELLHOOKINFO; /* * Message Structure used in Journaling */ typedef struct tagEVENTMSG { UINT message; UINT paramL; UINT paramH; DWORD time; HWND hwnd; } EVENTMSG, *PEVENTMSGMSG, *NPEVENTMSGMSG, *LPEVENTMSGMSG; typedef struct tagEVENTMSG *PEVENTMSG, *NPEVENTMSG, *LPEVENTMSG; /* * Message structure used by WH_CALLWNDPROC */ typedef struct tagCWPSTRUCT { LPARAM lParam; WPARAM wParam; UINT message; HWND hwnd; } CWPSTRUCT, *PCWPSTRUCT, *NPCWPSTRUCT, *LPCWPSTRUCT; /* * Message structure used by WH_CALLWNDPROCRET */ typedef struct tagCWPRETSTRUCT { LRESULT lResult; LPARAM lParam; WPARAM wParam; UINT message; HWND hwnd; } CWPRETSTRUCT, *PCWPRETSTRUCT, *NPCWPRETSTRUCT, *LPCWPRETSTRUCT; #line 926 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Low level hook flags */ /* * Structure used by WH_KEYBOARD_LL */ typedef struct tagKBDLLHOOKSTRUCT { DWORD vkCode; DWORD scanCode; DWORD flags; DWORD time; ULONG_PTR dwExtraInfo; } KBDLLHOOKSTRUCT, *LPKBDLLHOOKSTRUCT, *PKBDLLHOOKSTRUCT; /* * Structure used by WH_MOUSE_LL */ typedef struct tagMSLLHOOKSTRUCT { POINT pt; DWORD mouseData; DWORD flags; DWORD time; ULONG_PTR dwExtraInfo; } MSLLHOOKSTRUCT, *LPMSLLHOOKSTRUCT, *PMSLLHOOKSTRUCT; #line 963 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Structure used by WH_DEBUG */ typedef struct tagDEBUGHOOKINFO { DWORD idThread; DWORD idThreadInstaller; LPARAM lParam; WPARAM wParam; int code; } DEBUGHOOKINFO, *PDEBUGHOOKINFO, *NPDEBUGHOOKINFO, * LPDEBUGHOOKINFO; /* * Structure used by WH_MOUSE */ typedef struct tagMOUSEHOOKSTRUCT { POINT pt; HWND hwnd; UINT wHitTestCode; ULONG_PTR dwExtraInfo; } MOUSEHOOKSTRUCT, *LPMOUSEHOOKSTRUCT, *PMOUSEHOOKSTRUCT; typedef struct tagMOUSEHOOKSTRUCTEX : public tagMOUSEHOOKSTRUCT { DWORD mouseData; } MOUSEHOOKSTRUCTEX, *LPMOUSEHOOKSTRUCTEX, *PMOUSEHOOKSTRUCTEX; #line 999 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 1000 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Structure used by WH_HARDWARE */ typedef struct tagHARDWAREHOOKSTRUCT { HWND hwnd; UINT message; WPARAM wParam; LPARAM lParam; } HARDWAREHOOKSTRUCT, *LPHARDWAREHOOKSTRUCT, *PHARDWAREHOOKSTRUCT; #line 1012 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 1013 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Keyboard Layout API */ #line 1028 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 1033 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Bits in wParam of WM_INPUTLANGCHANGEREQUEST message */ #line 1043 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Size of KeyboardLayoutName (number of characters), including nul terminator */ __declspec(dllimport) HKL __stdcall LoadKeyboardLayoutA( LPCSTR pwszKLID, UINT Flags); __declspec(dllimport) HKL __stdcall LoadKeyboardLayoutW( LPCWSTR pwszKLID, UINT Flags); #line 1066 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) HKL __stdcall ActivateKeyboardLayout( HKL hkl, UINT Flags); #line 1083 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) int __stdcall ToUnicodeEx( UINT wVirtKey, UINT wScanCode, const BYTE *lpKeyState, LPWSTR pwszBuff, int cchBuff, UINT wFlags, HKL dwhkl); #line 1097 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall UnloadKeyboardLayout( HKL hkl); __declspec(dllimport) BOOL __stdcall GetKeyboardLayoutNameA( LPSTR pwszKLID); __declspec(dllimport) BOOL __stdcall GetKeyboardLayoutNameW( LPWSTR pwszKLID); #line 1119 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) int __stdcall GetKeyboardLayoutList( int nBuff, HKL *lpList); __declspec(dllimport) HKL __stdcall GetKeyboardLayout( DWORD idThread); #line 1135 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" typedef struct tagMOUSEMOVEPOINT { int x; int y; DWORD time; ULONG_PTR dwExtraInfo; } MOUSEMOVEPOINT, *PMOUSEMOVEPOINT, * LPMOUSEMOVEPOINT; /* * Values for resolution parameter of GetMouseMovePointsEx */ __declspec(dllimport) int __stdcall GetMouseMovePointsEx( UINT cbSize, LPMOUSEMOVEPOINT lppt, LPMOUSEMOVEPOINT lpptBuf, int nBufPoints, DWORD resolution); #line 1162 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Desktop-specific access flags */ /* * Desktop-specific control flags */ __declspec(dllimport) HDESK __stdcall CreateDesktopA( LPCSTR lpszDesktop, LPCSTR lpszDevice, LPDEVMODEA pDevmode, DWORD dwFlags, ACCESS_MASK dwDesiredAccess, LPSECURITY_ATTRIBUTES lpsa); __declspec(dllimport) HDESK __stdcall CreateDesktopW( LPCWSTR lpszDesktop, LPCWSTR lpszDevice, LPDEVMODEW pDevmode, DWORD dwFlags, ACCESS_MASK dwDesiredAccess, LPSECURITY_ATTRIBUTES lpsa); #line 1210 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) HDESK __stdcall CreateDesktopExA( LPCSTR lpszDesktop, LPCSTR lpszDevice, LPDEVMODEA pDevmode, DWORD dwFlags, ACCESS_MASK dwDesiredAccess, LPSECURITY_ATTRIBUTES lpsa, ULONG ulHeapSize, PVOID pvoid); __declspec(dllimport) HDESK __stdcall CreateDesktopExW( LPCWSTR lpszDesktop, LPCWSTR lpszDevice, LPDEVMODEW pDevmode, DWORD dwFlags, ACCESS_MASK dwDesiredAccess, LPSECURITY_ATTRIBUTES lpsa, ULONG ulHeapSize, PVOID pvoid); #line 1240 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 1242 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 1243 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) HDESK __stdcall OpenDesktopA( LPCSTR lpszDesktop, DWORD dwFlags, BOOL fInherit, ACCESS_MASK dwDesiredAccess); __declspec(dllimport) HDESK __stdcall OpenDesktopW( LPCWSTR lpszDesktop, DWORD dwFlags, BOOL fInherit, ACCESS_MASK dwDesiredAccess); #line 1265 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) HDESK __stdcall OpenInputDesktop( DWORD dwFlags, BOOL fInherit, ACCESS_MASK dwDesiredAccess); __declspec(dllimport) BOOL __stdcall EnumDesktopsA( HWINSTA hwinsta, DESKTOPENUMPROCA lpEnumFunc, LPARAM lParam); __declspec(dllimport) BOOL __stdcall EnumDesktopsW( HWINSTA hwinsta, DESKTOPENUMPROCW lpEnumFunc, LPARAM lParam); #line 1294 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall EnumDesktopWindows( HDESK hDesktop, WNDENUMPROC lpfn, LPARAM lParam); __declspec(dllimport) BOOL __stdcall SwitchDesktop( HDESK hDesktop); __declspec(dllimport) BOOL __stdcall SetThreadDesktop( HDESK hDesktop); __declspec(dllimport) BOOL __stdcall CloseDesktop( HDESK hDesktop); __declspec(dllimport) HDESK __stdcall GetThreadDesktop( DWORD dwThreadId); #line 1329 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Windowstation-specific access flags */ /* * Windowstation creation flags. */ /* * Windowstation-specific attribute flags */ __declspec(dllimport) HWINSTA __stdcall CreateWindowStationA( LPCSTR lpwinsta, DWORD dwFlags, ACCESS_MASK dwDesiredAccess, LPSECURITY_ATTRIBUTES lpsa); __declspec(dllimport) HWINSTA __stdcall CreateWindowStationW( LPCWSTR lpwinsta, DWORD dwFlags, ACCESS_MASK dwDesiredAccess, LPSECURITY_ATTRIBUTES lpsa); #line 1379 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) HWINSTA __stdcall OpenWindowStationA( LPCSTR lpszWinSta, BOOL fInherit, ACCESS_MASK dwDesiredAccess); __declspec(dllimport) HWINSTA __stdcall OpenWindowStationW( LPCWSTR lpszWinSta, BOOL fInherit, ACCESS_MASK dwDesiredAccess); #line 1399 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall EnumWindowStationsA( WINSTAENUMPROCA lpEnumFunc, LPARAM lParam); __declspec(dllimport) BOOL __stdcall EnumWindowStationsW( WINSTAENUMPROCW lpEnumFunc, LPARAM lParam); #line 1417 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall CloseWindowStation( HWINSTA hWinSta); __declspec(dllimport) BOOL __stdcall SetProcessWindowStation( HWINSTA hWinSta); __declspec(dllimport) HWINSTA __stdcall GetProcessWindowStation( void); #line 1436 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall SetUserObjectSecurity( HANDLE hObj, PSECURITY_INFORMATION pSIRequested, PSECURITY_DESCRIPTOR pSID); __declspec(dllimport) BOOL __stdcall GetUserObjectSecurity( HANDLE hObj, PSECURITY_INFORMATION pSIRequested, PSECURITY_DESCRIPTOR pSID, DWORD nLength, LPDWORD lpnLengthNeeded); #line 1465 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" typedef struct tagUSEROBJECTFLAGS { BOOL fInherit; BOOL fReserved; DWORD dwFlags; } USEROBJECTFLAGS, *PUSEROBJECTFLAGS; __declspec(dllimport) BOOL __stdcall GetUserObjectInformationA( HANDLE hObj, int nIndex, PVOID pvInfo, DWORD nLength, LPDWORD lpnLengthNeeded); __declspec(dllimport) BOOL __stdcall GetUserObjectInformationW( HANDLE hObj, int nIndex, PVOID pvInfo, DWORD nLength, LPDWORD lpnLengthNeeded); #line 1495 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall SetUserObjectInformationA( HANDLE hObj, int nIndex, PVOID pvInfo, DWORD nLength); __declspec(dllimport) BOOL __stdcall SetUserObjectInformationW( HANDLE hObj, int nIndex, PVOID pvInfo, DWORD nLength); #line 1517 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 1519 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" typedef struct tagWNDCLASSEXA { UINT cbSize; /* Win 3.x */ UINT style; WNDPROC lpfnWndProc; int cbClsExtra; int cbWndExtra; HINSTANCE hInstance; HICON hIcon; HCURSOR hCursor; HBRUSH hbrBackground; LPCSTR lpszMenuName; LPCSTR lpszClassName; /* Win 4.0 */ HICON hIconSm; } WNDCLASSEXA, *PWNDCLASSEXA, *NPWNDCLASSEXA, *LPWNDCLASSEXA; typedef struct tagWNDCLASSEXW { UINT cbSize; /* Win 3.x */ UINT style; WNDPROC lpfnWndProc; int cbClsExtra; int cbWndExtra; HINSTANCE hInstance; HICON hIcon; HCURSOR hCursor; HBRUSH hbrBackground; LPCWSTR lpszMenuName; LPCWSTR lpszClassName; /* Win 4.0 */ HICON hIconSm; } WNDCLASSEXW, *PWNDCLASSEXW, *NPWNDCLASSEXW, *LPWNDCLASSEXW; typedef WNDCLASSEXW WNDCLASSEX; typedef PWNDCLASSEXW PWNDCLASSEX; typedef NPWNDCLASSEXW NPWNDCLASSEX; typedef LPWNDCLASSEXW LPWNDCLASSEX; #line 1564 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 1565 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" typedef struct tagWNDCLASSA { UINT style; WNDPROC lpfnWndProc; int cbClsExtra; int cbWndExtra; HINSTANCE hInstance; HICON hIcon; HCURSOR hCursor; HBRUSH hbrBackground; LPCSTR lpszMenuName; LPCSTR lpszClassName; } WNDCLASSA, *PWNDCLASSA, *NPWNDCLASSA, *LPWNDCLASSA; typedef struct tagWNDCLASSW { UINT style; WNDPROC lpfnWndProc; int cbClsExtra; int cbWndExtra; HINSTANCE hInstance; HICON hIcon; HCURSOR hCursor; HBRUSH hbrBackground; LPCWSTR lpszMenuName; LPCWSTR lpszClassName; } WNDCLASSW, *PWNDCLASSW, *NPWNDCLASSW, *LPWNDCLASSW; typedef WNDCLASSW WNDCLASS; typedef PWNDCLASSW PWNDCLASS; typedef NPWNDCLASSW NPWNDCLASS; typedef LPWNDCLASSW LPWNDCLASS; #line 1601 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall IsHungAppWindow( HWND hwnd); __declspec(dllimport) void __stdcall DisableProcessWindowsGhosting( void); #line 1616 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Message structure */ typedef struct tagMSG { HWND hwnd; UINT message; WPARAM wParam; LPARAM lParam; DWORD time; POINT pt; } MSG, *PMSG, *NPMSG, *LPMSG; #line 1646 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Window field offsets for GetWindowLong() */ /* * Class field offsets for GetClassLong() */ #line 1692 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 1714 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Window Messages */ /* * WM_ACTIVATE state values */ #line 1750 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 1758 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Struct pointed to by WM_GETMINMAXINFO lParam */ typedef struct tagMINMAXINFO { POINT ptReserved; POINT ptMaxSize; POINT ptMaxPosition; POINT ptMinTrackSize; POINT ptMaxTrackSize; } MINMAXINFO, *PMINMAXINFO, *LPMINMAXINFO; #line 1801 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 1802 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * wParam for WM_POWER window message and DRV_POWER driver notification */ /* * lParam of WM_COPYDATA message points to... */ typedef struct tagCOPYDATASTRUCT { ULONG_PTR dwData; DWORD cbData; PVOID lpData; } COPYDATASTRUCT, *PCOPYDATASTRUCT; typedef struct tagMDINEXTMENU { HMENU hmenuIn; HMENU hmenuNext; HWND hwndNext; } MDINEXTMENU, * PMDINEXTMENU, * LPMDINEXTMENU; #line 1838 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 1861 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 1872 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 1890 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 1895 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 1899 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 1916 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 1923 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * LOWORD(wParam) values in WM_*UISTATE* */ /* * HIWORD(wParam) values in WM_*UISTATE* */ #line 1964 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 1965 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 1966 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 1968 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 1969 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 1993 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 1998 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 2001 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 2005 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 2011 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* Value for rolling one detent */ /* Setting to scroll one page for SPI_GET/SETWHEELSCROLLLINES */ #line 2021 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* XButton values are WORD flags */ /* Were there to be an XBUTTON3, its value would be 0x0004 */ #line 2032 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 2043 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" typedef struct { GUID PowerSetting; DWORD DataLength; UCHAR Data[1]; } POWERBROADCAST_SETTING, *PPOWERBROADCAST_SETTING; #line 2083 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 2085 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 2086 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 2088 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 2092 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 2120 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 2123 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 2127 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 2132 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 2136 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 2143 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 2168 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 2172 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 2176 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 2181 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 2188 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 2192 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 2201 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 2209 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * NOTE: All Message Numbers below 0x0400 are RESERVED. * * Private Window Messages Start Here: */ /* wParam for WM_SIZING message */ #line 2230 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * WM_NCHITTEST and MOUSEHOOKSTRUCT Mouse Position Codes */ #line 2267 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * SendMessageTimeout values */ #line 2277 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 2280 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 2282 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * WM_MOUSEACTIVATE Return Codes */ /* * WM_SETICON / WM_GETICON Type Codes */ #line 2299 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) UINT __stdcall RegisterWindowMessageA( LPCSTR lpString); __declspec(dllimport) UINT __stdcall RegisterWindowMessageW( LPCWSTR lpString); #line 2316 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * WM_SIZE message wParam values */ /* * Obsolete constant names */ /* * WM_WINDOWPOSCHANGING/CHANGED struct pointed to by lParam */ typedef struct tagWINDOWPOS { HWND hwnd; HWND hwndInsertAfter; int x; int y; int cx; int cy; UINT flags; } WINDOWPOS, *LPWINDOWPOS, *PWINDOWPOS; /* * WM_NCCALCSIZE parameter structure */ typedef struct tagNCCALCSIZE_PARAMS { RECT rgrc[3]; PWINDOWPOS lppos; } NCCALCSIZE_PARAMS, *LPNCCALCSIZE_PARAMS; /* * WM_NCCALCSIZE "window valid rect" return values */ /* * Key State Masks for Mouse Messages */ #line 2385 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 2387 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 2397 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 2403 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" typedef struct tagTRACKMOUSEEVENT { DWORD cbSize; DWORD dwFlags; HWND hwndTrack; DWORD dwHoverTime; } TRACKMOUSEEVENT, *LPTRACKMOUSEEVENT; __declspec(dllimport) BOOL __stdcall TrackMouseEvent( LPTRACKMOUSEEVENT lpEventTrack); #line 2418 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 2422 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 2423 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 2426 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Window Styles */ /* * Common Window Styles */ /* * Extended Window Styles */ #line 2493 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 2511 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 2516 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 2522 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 2526 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 2529 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Class styles */ #line 2550 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 2554 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* WM_PRINT flags */ /* 3D border styles */ /* Border flags */ // For diagonal lines, the BF_RECT flags specify the end point of the // vector bounded by the rectangle parameter. __declspec(dllimport) BOOL __stdcall DrawEdge( HDC hdc, LPRECT qrc, UINT edge, UINT grfFlags); /* flags for DrawFrameControl */ #line 2627 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 2661 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall DrawFrameControl( HDC, LPRECT, UINT, UINT); /* flags for DrawCaption */ #line 2685 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 2688 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall DrawCaption( HWND hwnd, HDC hdc, const RECT * lprect, UINT flags); __declspec(dllimport) BOOL __stdcall DrawAnimatedRects( HWND hwnd, int idAni, const RECT *lprcFrom, const RECT *lprcTo); #line 2712 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Predefined Clipboard Formats */ #line 2737 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 2740 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 2748 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * "Private" formats don't get GlobalFree()'d */ /* * "GDIOBJ" formats do get DeleteObject()'d */ #line 2769 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Defines for the fVirt field of the Accelerator table structure. */ typedef struct tagACCEL { BYTE fVirt; /* Also called the flags field */ WORD key; WORD cmd; #line 2789 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" } ACCEL, *LPACCEL; typedef struct tagPAINTSTRUCT { HDC hdc; BOOL fErase; RECT rcPaint; BOOL fRestore; BOOL fIncUpdate; BYTE rgbReserved[32]; } PAINTSTRUCT, *PPAINTSTRUCT, *NPPAINTSTRUCT, *LPPAINTSTRUCT; typedef struct tagCREATESTRUCTA { LPVOID lpCreateParams; HINSTANCE hInstance; HMENU hMenu; HWND hwndParent; int cy; int cx; int y; int x; LONG style; LPCSTR lpszName; LPCSTR lpszClass; DWORD dwExStyle; } CREATESTRUCTA, *LPCREATESTRUCTA; typedef struct tagCREATESTRUCTW { LPVOID lpCreateParams; HINSTANCE hInstance; HMENU hMenu; HWND hwndParent; int cy; int cx; int y; int x; LONG style; LPCWSTR lpszName; LPCWSTR lpszClass; DWORD dwExStyle; } CREATESTRUCTW, *LPCREATESTRUCTW; typedef CREATESTRUCTW CREATESTRUCT; typedef LPCREATESTRUCTW LPCREATESTRUCT; #line 2835 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" typedef struct tagWINDOWPLACEMENT { UINT length; UINT flags; UINT showCmd; POINT ptMinPosition; POINT ptMaxPosition; RECT rcNormalPosition; } WINDOWPLACEMENT; typedef WINDOWPLACEMENT *PWINDOWPLACEMENT, *LPWINDOWPLACEMENT; #line 2854 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" typedef struct tagNMHDR { HWND hwndFrom; UINT_PTR idFrom; UINT code; // NM_ code } NMHDR; typedef NMHDR * LPNMHDR; typedef struct tagSTYLESTRUCT { DWORD styleOld; DWORD styleNew; } STYLESTRUCT, * LPSTYLESTRUCT; #line 2870 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Owner draw control types */ #line 2882 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Owner draw actions */ /* * Owner draw state */ #line 2902 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 2909 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 2910 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * MEASUREITEMSTRUCT for ownerdraw */ typedef struct tagMEASUREITEMSTRUCT { UINT CtlType; UINT CtlID; UINT itemID; UINT itemWidth; UINT itemHeight; ULONG_PTR itemData; } MEASUREITEMSTRUCT, *PMEASUREITEMSTRUCT, *LPMEASUREITEMSTRUCT; /* * DRAWITEMSTRUCT for ownerdraw */ typedef struct tagDRAWITEMSTRUCT { UINT CtlType; UINT CtlID; UINT itemID; UINT itemAction; UINT itemState; HWND hwndItem; HDC hDC; RECT rcItem; ULONG_PTR itemData; } DRAWITEMSTRUCT, *PDRAWITEMSTRUCT, *LPDRAWITEMSTRUCT; /* * DELETEITEMSTRUCT for ownerdraw */ typedef struct tagDELETEITEMSTRUCT { UINT CtlType; UINT CtlID; UINT itemID; HWND hwndItem; ULONG_PTR itemData; } DELETEITEMSTRUCT, *PDELETEITEMSTRUCT, *LPDELETEITEMSTRUCT; /* * COMPAREITEMSTUCT for ownerdraw sorting */ typedef struct tagCOMPAREITEMSTRUCT { UINT CtlType; UINT CtlID; HWND hwndItem; UINT itemID1; ULONG_PTR itemData1; UINT itemID2; ULONG_PTR itemData2; DWORD dwLocaleId; } COMPAREITEMSTRUCT, *PCOMPAREITEMSTRUCT, *LPCOMPAREITEMSTRUCT; /* * Message Function Templates */ __declspec(dllimport) BOOL __stdcall GetMessageA( LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax); __declspec(dllimport) BOOL __stdcall GetMessageW( LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax); #line 2990 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 3014 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall TranslateMessage( const MSG *lpMsg); __declspec(dllimport) LRESULT __stdcall DispatchMessageA( const MSG *lpMsg); __declspec(dllimport) LRESULT __stdcall DispatchMessageW( const MSG *lpMsg); #line 3037 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 3055 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall SetMessageQueue( int cMessagesMax); __declspec(dllimport) BOOL __stdcall PeekMessageA( LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax, UINT wRemoveMsg); __declspec(dllimport) BOOL __stdcall PeekMessageW( LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax, UINT wRemoveMsg); #line 3085 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * PeekMessage() Options */ #line 3099 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 3102 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall RegisterHotKey( HWND hWnd, int id, UINT fsModifiers, UINT vk); __declspec(dllimport) BOOL __stdcall UnregisterHotKey( HWND hWnd, int id); #line 3145 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 3154 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 3158 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall ExitWindowsEx( UINT uFlags, DWORD dwReason); __declspec(dllimport) BOOL __stdcall SwapMouseButton( BOOL fSwap); __declspec(dllimport) DWORD __stdcall GetMessagePos( void); __declspec(dllimport) LONG __stdcall GetMessageTime( void); __declspec(dllimport) LPARAM __stdcall GetMessageExtraInfo( void); __declspec(dllimport) BOOL __stdcall IsWow64Message( void); #line 3200 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) LPARAM __stdcall SetMessageExtraInfo( LPARAM lParam); #line 3208 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) LRESULT __stdcall SendMessageA( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); __declspec(dllimport) LRESULT __stdcall SendMessageW( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); #line 3230 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 3254 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) LRESULT __stdcall SendMessageTimeoutA( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam, UINT fuFlags, UINT uTimeout, PDWORD_PTR lpdwResult); __declspec(dllimport) LRESULT __stdcall SendMessageTimeoutW( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam, UINT fuFlags, UINT uTimeout, PDWORD_PTR lpdwResult); #line 3284 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall SendNotifyMessageA( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); __declspec(dllimport) BOOL __stdcall SendNotifyMessageW( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); #line 3306 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall SendMessageCallbackA( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam, SENDASYNCPROC lpResultCallBack, ULONG_PTR dwData); __declspec(dllimport) BOOL __stdcall SendMessageCallbackW( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam, SENDASYNCPROC lpResultCallBack, ULONG_PTR dwData); #line 3332 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" typedef struct { UINT cbSize; HDESK hdesk; HWND hwnd; LUID luid; } BSMINFO, *PBSMINFO; __declspec(dllimport) long __stdcall BroadcastSystemMessageExA( DWORD flags, LPDWORD lpInfo, UINT Msg, WPARAM wParam, LPARAM lParam, PBSMINFO pbsmInfo); __declspec(dllimport) long __stdcall BroadcastSystemMessageExW( DWORD flags, LPDWORD lpInfo, UINT Msg, WPARAM wParam, LPARAM lParam, PBSMINFO pbsmInfo); #line 3366 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 3367 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) long __stdcall BroadcastSystemMessageA( DWORD flags, LPDWORD lpInfo, UINT Msg, WPARAM wParam, LPARAM lParam); __declspec(dllimport) long __stdcall BroadcastSystemMessageW( DWORD flags, LPDWORD lpInfo, UINT Msg, WPARAM wParam, LPARAM lParam); #line 3394 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 3407 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" //Broadcast Special Message Recipient list //Broadcast Special Message Flags #line 3428 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 3432 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 3435 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" // RegisterDeviceNotification typedef PVOID HDEVNOTIFY; typedef HDEVNOTIFY *PHDEVNOTIFY; #line 3447 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) HDEVNOTIFY __stdcall RegisterDeviceNotificationA( HANDLE hRecipient, LPVOID NotificationFilter, DWORD Flags); __declspec(dllimport) HDEVNOTIFY __stdcall RegisterDeviceNotificationW( HANDLE hRecipient, LPVOID NotificationFilter, DWORD Flags); #line 3467 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall UnregisterDeviceNotification( HDEVNOTIFY Handle ); typedef PVOID HPOWERNOTIFY; typedef HPOWERNOTIFY *PHPOWERNOTIFY; __declspec(dllimport) HPOWERNOTIFY __stdcall RegisterPowerSettingNotification( HANDLE hRecipient, LPCGUID PowerSettingGuid, DWORD Flags ); __declspec(dllimport) BOOL __stdcall UnregisterPowerSettingNotification( HPOWERNOTIFY Handle ); #line 3495 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 3496 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall PostMessageA( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); __declspec(dllimport) BOOL __stdcall PostMessageW( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); #line 3519 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall PostThreadMessageA( DWORD idThread, UINT Msg, WPARAM wParam, LPARAM lParam); __declspec(dllimport) BOOL __stdcall PostThreadMessageW( DWORD idThread, UINT Msg, WPARAM wParam, LPARAM lParam); #line 3541 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 3551 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Special HWND value for use with PostMessage() and SendMessage() */ #line 3560 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall AttachThreadInput( DWORD idAttach, DWORD idAttachTo, BOOL fAttach); __declspec(dllimport) BOOL __stdcall ReplyMessage( LRESULT lResult); __declspec(dllimport) BOOL __stdcall WaitMessage( void); __declspec(dllimport) DWORD __stdcall WaitForInputIdle( HANDLE hProcess, DWORD dwMilliseconds); __declspec(dllimport) LRESULT __stdcall #line 3598 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" DefWindowProcA( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); __declspec(dllimport) LRESULT __stdcall #line 3611 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" DefWindowProcW( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); #line 3621 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) void __stdcall PostQuitMessage( int nExitCode); __declspec(dllimport) LRESULT __stdcall CallWindowProcA( WNDPROC lpPrevWndFunc, HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); __declspec(dllimport) LRESULT __stdcall CallWindowProcW( WNDPROC lpPrevWndFunc, HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); #line 3653 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 3681 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall InSendMessage( void); __declspec(dllimport) DWORD __stdcall InSendMessageEx( LPVOID lpReserved); /* * InSendMessageEx return value */ #line 3704 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) UINT __stdcall GetDoubleClickTime( void); __declspec(dllimport) BOOL __stdcall SetDoubleClickTime( UINT); __declspec(dllimport) ATOM __stdcall RegisterClassA( const WNDCLASSA *lpWndClass); __declspec(dllimport) ATOM __stdcall RegisterClassW( const WNDCLASSW *lpWndClass); #line 3732 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall UnregisterClassA( LPCSTR lpClassName, HINSTANCE hInstance); __declspec(dllimport) BOOL __stdcall UnregisterClassW( LPCWSTR lpClassName, HINSTANCE hInstance); #line 3750 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall GetClassInfoA( HINSTANCE hInstance, LPCSTR lpClassName, LPWNDCLASSA lpWndClass); __declspec(dllimport) BOOL __stdcall GetClassInfoW( HINSTANCE hInstance, LPCWSTR lpClassName, LPWNDCLASSW lpWndClass); #line 3770 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) ATOM __stdcall RegisterClassExA( const WNDCLASSEXA *); __declspec(dllimport) ATOM __stdcall RegisterClassExW( const WNDCLASSEXW *); #line 3787 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall GetClassInfoExA( HINSTANCE hInstance, LPCSTR lpszClass, LPWNDCLASSEXA lpwcx); __declspec(dllimport) BOOL __stdcall GetClassInfoExW( HINSTANCE hInstance, LPCWSTR lpszClass, LPWNDCLASSEXW lpwcx); #line 3807 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 3809 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Special value for CreateWindow, et al. */ typedef BOOLEAN (__stdcall * PREGISTERCLASSNAMEW)(LPCWSTR); #line 3820 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) HWND __stdcall CreateWindowExA( DWORD dwExStyle, LPCSTR lpClassName, LPCSTR lpWindowName, DWORD dwStyle, int X, int Y, int nWidth, int nHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam); __declspec(dllimport) HWND __stdcall CreateWindowExW( DWORD dwExStyle, LPCWSTR lpClassName, LPCWSTR lpWindowName, DWORD dwStyle, int X, int Y, int nWidth, int nHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam); #line 3858 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 3872 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall IsWindow( HWND hWnd); __declspec(dllimport) BOOL __stdcall IsMenu( HMENU hMenu); __declspec(dllimport) BOOL __stdcall IsChild( HWND hWndParent, HWND hWnd); __declspec(dllimport) BOOL __stdcall DestroyWindow( HWND hWnd); __declspec(dllimport) BOOL __stdcall ShowWindow( HWND hWnd, int nCmdShow); __declspec(dllimport) BOOL __stdcall AnimateWindow( HWND hWnd, DWORD dwTime, DWORD dwFlags); #line 3914 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall UpdateLayeredWindow( HWND hWnd, HDC hdcDst, POINT *pptDst, SIZE *psize, HDC hdcSrc, POINT *pptSrc, COLORREF crKey, BLENDFUNCTION *pblend, DWORD dwFlags); /* * Layered Window Update information */ typedef struct tagUPDATELAYEREDWINDOWINFO { DWORD cbSize; HDC hdcDst; POINT const *pptDst; SIZE const *psize; HDC hdcSrc; POINT const *pptSrc; COLORREF crKey; BLENDFUNCTION const *pblend; DWORD dwFlags; RECT const *prcDirty; } UPDATELAYEREDWINDOWINFO, *PUPDATELAYEREDWINDOWINFO; #line 3955 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall UpdateLayeredWindowIndirect( HWND hWnd, UPDATELAYEREDWINDOWINFO const *pULWInfo); #line 3963 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall GetLayeredWindowAttributes( HWND hwnd, COLORREF *pcrKey, BYTE *pbAlpha, DWORD *pdwFlags); __declspec(dllimport) BOOL __stdcall PrintWindow( HWND hwnd, HDC hdcBlt, UINT nFlags); #line 3986 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall SetLayeredWindowAttributes( HWND hwnd, COLORREF crKey, BYTE bAlpha, DWORD dwFlags); #line 4007 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall ShowWindowAsync( HWND hWnd, int nCmdShow); #line 4017 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall FlashWindow( HWND hWnd, BOOL bInvert); typedef struct { UINT cbSize; HWND hwnd; DWORD dwFlags; UINT uCount; DWORD dwTimeout; } FLASHWINFO, *PFLASHWINFO; __declspec(dllimport) BOOL __stdcall FlashWindowEx( PFLASHWINFO pfwi); #line 4048 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall ShowOwnedPopups( HWND hWnd, BOOL fShow); __declspec(dllimport) BOOL __stdcall OpenIcon( HWND hWnd); __declspec(dllimport) BOOL __stdcall CloseWindow( HWND hWnd); __declspec(dllimport) BOOL __stdcall MoveWindow( HWND hWnd, int X, int Y, int nWidth, int nHeight, BOOL bRepaint); __declspec(dllimport) BOOL __stdcall SetWindowPos( HWND hWnd, HWND hWndInsertAfter, int X, int Y, int cx, int cy, UINT uFlags); __declspec(dllimport) BOOL __stdcall GetWindowPlacement( HWND hWnd, WINDOWPLACEMENT *lpwndpl); __declspec(dllimport) BOOL __stdcall SetWindowPlacement( HWND hWnd, const WINDOWPLACEMENT *lpwndpl); __declspec(dllimport) HDWP __stdcall BeginDeferWindowPos( int nNumWindows); __declspec(dllimport) HDWP __stdcall DeferWindowPos( HDWP hWinPosInfo, HWND hWnd, HWND hWndInsertAfter, int x, int y, int cx, int cy, UINT uFlags); __declspec(dllimport) BOOL __stdcall EndDeferWindowPos( HDWP hWinPosInfo); #line 4134 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall IsWindowVisible( HWND hWnd); __declspec(dllimport) BOOL __stdcall IsIconic( HWND hWnd); __declspec(dllimport) BOOL __stdcall AnyPopup( void); __declspec(dllimport) BOOL __stdcall BringWindowToTop( HWND hWnd); __declspec(dllimport) BOOL __stdcall IsZoomed( HWND hWnd); /* * SetWindowPos Flags */ #line 4187 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * WARNING: * The following structures must NOT be DWORD padded because they are * followed by strings, etc that do not have to be DWORD aligned. */ #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\pshpack2.h" /*++ Copyright (c) Microsoft Corporation. All rights reserved. Module Name: pshpack2.h Abstract: This file turns 2 byte packing of structures on. (That is, it disables automatic alignment of structure fields.) An include file is needed because various compilers do this in different ways. For Microsoft compatible compilers, this files uses the push option to the pack pragma so that the poppack.h include file can restore the previous packing reliably. The file poppack.h is the complement to this file. --*/ #pragma warning(disable:4103) #pragma pack(push,2) #line 30 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\pshpack2.h" #line 33 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\pshpack2.h" #line 34 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\pshpack2.h" #line 4202 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * original NT 32 bit dialog template: */ typedef struct { DWORD style; DWORD dwExtendedStyle; WORD cdit; short x; short y; short cx; short cy; } DLGTEMPLATE; typedef DLGTEMPLATE *LPDLGTEMPLATEA; typedef DLGTEMPLATE *LPDLGTEMPLATEW; typedef LPDLGTEMPLATEW LPDLGTEMPLATE; #line 4222 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" typedef const DLGTEMPLATE *LPCDLGTEMPLATEA; typedef const DLGTEMPLATE *LPCDLGTEMPLATEW; typedef LPCDLGTEMPLATEW LPCDLGTEMPLATE; #line 4229 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * 32 bit Dialog item template. */ typedef struct { DWORD style; DWORD dwExtendedStyle; short x; short y; short cx; short cy; WORD id; } DLGITEMTEMPLATE; typedef DLGITEMTEMPLATE *PDLGITEMTEMPLATEA; typedef DLGITEMTEMPLATE *PDLGITEMTEMPLATEW; typedef PDLGITEMTEMPLATEW PDLGITEMTEMPLATE; #line 4249 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" typedef DLGITEMTEMPLATE *LPDLGITEMTEMPLATEA; typedef DLGITEMTEMPLATE *LPDLGITEMTEMPLATEW; typedef LPDLGITEMTEMPLATEW LPDLGITEMTEMPLATE; #line 4256 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\poppack.h" /*++ Copyright (c) Microsoft Corporation. All rights reserved. Module Name: poppack.h Abstract: This file turns packing of structures off. (That is, it enables automatic alignment of structure fields.) An include file is needed because various compilers do this in different ways. poppack.h is the complement to pshpack?.h. An inclusion of poppack.h MUST ALWAYS be preceded by an inclusion of one of pshpack?.h, in one-to-one correspondence. For Microsoft compatible compilers, this file uses the pop option to the pack pragma so that it can restore the previous saved by the pshpack?.h include file. --*/ #pragma warning(disable:4103) #pragma pack(pop) #line 33 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\poppack.h" #line 36 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\poppack.h" #line 37 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\poppack.h" #line 4259 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) HWND __stdcall CreateDialogParamA( HINSTANCE hInstance, LPCSTR lpTemplateName, HWND hWndParent, DLGPROC lpDialogFunc, LPARAM dwInitParam); __declspec(dllimport) HWND __stdcall CreateDialogParamW( HINSTANCE hInstance, LPCWSTR lpTemplateName, HWND hWndParent, DLGPROC lpDialogFunc, LPARAM dwInitParam); #line 4283 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) HWND __stdcall CreateDialogIndirectParamA( HINSTANCE hInstance, LPCDLGTEMPLATEA lpTemplate, HWND hWndParent, DLGPROC lpDialogFunc, LPARAM dwInitParam); __declspec(dllimport) HWND __stdcall CreateDialogIndirectParamW( HINSTANCE hInstance, LPCDLGTEMPLATEW lpTemplate, HWND hWndParent, DLGPROC lpDialogFunc, LPARAM dwInitParam); #line 4307 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 4317 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 4327 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) INT_PTR __stdcall DialogBoxParamA( HINSTANCE hInstance, LPCSTR lpTemplateName, HWND hWndParent, DLGPROC lpDialogFunc, LPARAM dwInitParam); __declspec(dllimport) INT_PTR __stdcall DialogBoxParamW( HINSTANCE hInstance, LPCWSTR lpTemplateName, HWND hWndParent, DLGPROC lpDialogFunc, LPARAM dwInitParam); #line 4351 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) INT_PTR __stdcall DialogBoxIndirectParamA( HINSTANCE hInstance, LPCDLGTEMPLATEA hDialogTemplate, HWND hWndParent, DLGPROC lpDialogFunc, LPARAM dwInitParam); __declspec(dllimport) INT_PTR __stdcall DialogBoxIndirectParamW( HINSTANCE hInstance, LPCDLGTEMPLATEW hDialogTemplate, HWND hWndParent, DLGPROC lpDialogFunc, LPARAM dwInitParam); #line 4375 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 4385 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 4395 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall EndDialog( HWND hDlg, INT_PTR nResult); __declspec(dllimport) HWND __stdcall GetDlgItem( HWND hDlg, int nIDDlgItem); __declspec(dllimport) BOOL __stdcall SetDlgItemInt( HWND hDlg, int nIDDlgItem, UINT uValue, BOOL bSigned); __declspec(dllimport) UINT __stdcall GetDlgItemInt( HWND hDlg, int nIDDlgItem, BOOL *lpTranslated, BOOL bSigned); __declspec(dllimport) BOOL __stdcall SetDlgItemTextA( HWND hDlg, int nIDDlgItem, LPCSTR lpString); __declspec(dllimport) BOOL __stdcall SetDlgItemTextW( HWND hDlg, int nIDDlgItem, LPCWSTR lpString); #line 4447 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) UINT __stdcall GetDlgItemTextA( HWND hDlg, int nIDDlgItem, LPSTR lpString, int cchMax); __declspec(dllimport) UINT __stdcall GetDlgItemTextW( HWND hDlg, int nIDDlgItem, LPWSTR lpString, int cchMax); #line 4469 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall CheckDlgButton( HWND hDlg, int nIDButton, UINT uCheck); __declspec(dllimport) BOOL __stdcall CheckRadioButton( HWND hDlg, int nIDFirstButton, int nIDLastButton, int nIDCheckButton); __declspec(dllimport) UINT __stdcall IsDlgButtonChecked( HWND hDlg, int nIDButton); __declspec(dllimport) LRESULT __stdcall SendDlgItemMessageA( HWND hDlg, int nIDDlgItem, UINT Msg, WPARAM wParam, LPARAM lParam); __declspec(dllimport) LRESULT __stdcall SendDlgItemMessageW( HWND hDlg, int nIDDlgItem, UINT Msg, WPARAM wParam, LPARAM lParam); #line 4517 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) HWND __stdcall GetNextDlgGroupItem( HWND hDlg, HWND hCtl, BOOL bPrevious); __declspec(dllimport) HWND __stdcall GetNextDlgTabItem( HWND hDlg, HWND hCtl, BOOL bPrevious); __declspec(dllimport) int __stdcall GetDlgCtrlID( HWND hWnd); __declspec(dllimport) long __stdcall GetDialogBaseUnits(void); __declspec(dllimport) LRESULT __stdcall #line 4553 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" DefDlgProcA( HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam); __declspec(dllimport) LRESULT __stdcall #line 4566 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" DefDlgProcW( HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam); #line 4576 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Window extra byted needed for private dialog classes. */ #line 4585 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 4587 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall CallMsgFilterA( LPMSG lpMsg, int nCode); __declspec(dllimport) BOOL __stdcall CallMsgFilterW( LPMSG lpMsg, int nCode); #line 4607 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 4609 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Clipboard Manager Functions */ __declspec(dllimport) BOOL __stdcall OpenClipboard( HWND hWndNewOwner); __declspec(dllimport) BOOL __stdcall CloseClipboard( void); __declspec(dllimport) DWORD __stdcall GetClipboardSequenceNumber( void); #line 4638 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) HWND __stdcall GetClipboardOwner( void); __declspec(dllimport) HWND __stdcall SetClipboardViewer( HWND hWndNewViewer); __declspec(dllimport) HWND __stdcall GetClipboardViewer( void); __declspec(dllimport) BOOL __stdcall ChangeClipboardChain( HWND hWndRemove, HWND hWndNewNext); __declspec(dllimport) HANDLE __stdcall SetClipboardData( UINT uFormat, HANDLE hMem); __declspec(dllimport) HANDLE __stdcall GetClipboardData( UINT uFormat); __declspec(dllimport) UINT __stdcall RegisterClipboardFormatA( LPCSTR lpszFormat); __declspec(dllimport) UINT __stdcall RegisterClipboardFormatW( LPCWSTR lpszFormat); #line 4692 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) int __stdcall CountClipboardFormats( void); __declspec(dllimport) UINT __stdcall EnumClipboardFormats( UINT format); __declspec(dllimport) int __stdcall GetClipboardFormatNameA( UINT format, LPSTR lpszFormatName, int cchMaxCount); __declspec(dllimport) int __stdcall GetClipboardFormatNameW( UINT format, LPWSTR lpszFormatName, int cchMaxCount); #line 4724 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall EmptyClipboard( void); __declspec(dllimport) BOOL __stdcall IsClipboardFormatAvailable( UINT format); __declspec(dllimport) int __stdcall GetPriorityClipboardFormat( UINT *paFormatPriorityList, int cFormats); __declspec(dllimport) HWND __stdcall GetOpenClipboardWindow( void); #line 4771 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 4772 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Character Translation Routines */ __declspec(dllimport) BOOL __stdcall CharToOemA( LPCSTR pSrc, LPSTR pDst); __declspec(dllimport) BOOL __stdcall CharToOemW( LPCWSTR pSrc, LPSTR pDst); #line 4794 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall OemToCharA( LPCSTR pSrc, LPSTR pDst); __declspec(dllimport) BOOL __stdcall OemToCharW( LPCSTR pSrc, LPWSTR pDst); #line 4812 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall CharToOemBuffA( LPCSTR lpszSrc, LPSTR lpszDst, DWORD cchDstLength); __declspec(dllimport) BOOL __stdcall CharToOemBuffW( LPCWSTR lpszSrc, LPSTR lpszDst, DWORD cchDstLength); #line 4832 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall OemToCharBuffA( LPCSTR lpszSrc, LPSTR lpszDst, DWORD cchDstLength); __declspec(dllimport) BOOL __stdcall OemToCharBuffW( LPCSTR lpszSrc, LPWSTR lpszDst, DWORD cchDstLength); #line 4852 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) LPSTR __stdcall CharUpperA( LPSTR lpsz); __declspec(dllimport) LPWSTR __stdcall CharUpperW( LPWSTR lpsz); #line 4868 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) DWORD __stdcall CharUpperBuffA( LPSTR lpsz, DWORD cchLength); __declspec(dllimport) DWORD __stdcall CharUpperBuffW( LPWSTR lpsz, DWORD cchLength); #line 4886 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) LPSTR __stdcall CharLowerA( LPSTR lpsz); __declspec(dllimport) LPWSTR __stdcall CharLowerW( LPWSTR lpsz); #line 4902 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) DWORD __stdcall CharLowerBuffA( LPSTR lpsz, DWORD cchLength); __declspec(dllimport) DWORD __stdcall CharLowerBuffW( LPWSTR lpsz, DWORD cchLength); #line 4920 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) LPSTR __stdcall CharNextA( LPCSTR lpsz); __declspec(dllimport) LPWSTR __stdcall CharNextW( LPCWSTR lpsz); #line 4936 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) LPSTR __stdcall CharPrevA( LPCSTR lpszStart, LPCSTR lpszCurrent); __declspec(dllimport) LPWSTR __stdcall CharPrevW( LPCWSTR lpszStart, LPCWSTR lpszCurrent); #line 4954 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) LPSTR __stdcall CharNextExA( WORD CodePage, LPCSTR lpCurrentChar, DWORD dwFlags); __declspec(dllimport) LPSTR __stdcall CharPrevExA( WORD CodePage, LPCSTR lpStart, LPCSTR lpCurrentChar, DWORD dwFlags); #line 4973 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Compatibility defines for character translation routines */ /* * Language dependent Routines */ __declspec(dllimport) BOOL __stdcall IsCharAlphaA( CHAR ch); __declspec(dllimport) BOOL __stdcall IsCharAlphaW( WCHAR ch); #line 5008 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall IsCharAlphaNumericA( CHAR ch); __declspec(dllimport) BOOL __stdcall IsCharAlphaNumericW( WCHAR ch); #line 5024 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall IsCharUpperA( CHAR ch); __declspec(dllimport) BOOL __stdcall IsCharUpperW( WCHAR ch); #line 5040 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall IsCharLowerA( CHAR ch); __declspec(dllimport) BOOL __stdcall IsCharLowerW( WCHAR ch); #line 5056 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 5058 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) HWND __stdcall SetFocus( HWND hWnd); __declspec(dllimport) HWND __stdcall GetActiveWindow( void); __declspec(dllimport) HWND __stdcall GetFocus( void); __declspec(dllimport) UINT __stdcall GetKBCodePage( void); __declspec(dllimport) SHORT __stdcall GetKeyState( int nVirtKey); __declspec(dllimport) SHORT __stdcall GetAsyncKeyState( int vKey); __declspec(dllimport) BOOL __stdcall GetKeyboardState( PBYTE lpKeyState); __declspec(dllimport) BOOL __stdcall SetKeyboardState( LPBYTE lpKeyState); __declspec(dllimport) int __stdcall GetKeyNameTextA( LONG lParam, LPSTR lpString, int cchSize); __declspec(dllimport) int __stdcall GetKeyNameTextW( LONG lParam, LPWSTR lpString, int cchSize); #line 5126 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) int __stdcall GetKeyboardType( int nTypeFlag); __declspec(dllimport) int __stdcall ToAscii( UINT uVirtKey, UINT uScanCode, const BYTE *lpKeyState, LPWORD lpChar, UINT uFlags); __declspec(dllimport) int __stdcall ToAsciiEx( UINT uVirtKey, UINT uScanCode, const BYTE *lpKeyState, LPWORD lpChar, UINT uFlags, HKL dwhkl); #line 5155 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) int __stdcall ToUnicode( UINT wVirtKey, UINT wScanCode, const BYTE *lpKeyState, LPWSTR pwszBuff, int cchBuff, UINT wFlags); __declspec(dllimport) DWORD __stdcall OemKeyScan( WORD wOemChar); __declspec(dllimport) SHORT __stdcall VkKeyScanA( CHAR ch); __declspec(dllimport) SHORT __stdcall VkKeyScanW( WCHAR ch); #line 5188 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) SHORT __stdcall VkKeyScanExA( CHAR ch, HKL dwhkl); __declspec(dllimport) SHORT __stdcall VkKeyScanExW( WCHAR ch, HKL dwhkl); #line 5207 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 5208 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 5214 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) void __stdcall keybd_event( BYTE bVk, BYTE bScan, DWORD dwFlags, ULONG_PTR dwExtraInfo); #line 5237 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 5240 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) void __stdcall mouse_event( DWORD dwFlags, DWORD dx, DWORD dy, DWORD dwData, ULONG_PTR dwExtraInfo); typedef struct tagMOUSEINPUT { LONG dx; LONG dy; DWORD mouseData; DWORD dwFlags; DWORD time; ULONG_PTR dwExtraInfo; } MOUSEINPUT, *PMOUSEINPUT, * LPMOUSEINPUT; typedef struct tagKEYBDINPUT { WORD wVk; WORD wScan; DWORD dwFlags; DWORD time; ULONG_PTR dwExtraInfo; } KEYBDINPUT, *PKEYBDINPUT, * LPKEYBDINPUT; typedef struct tagHARDWAREINPUT { DWORD uMsg; WORD wParamL; WORD wParamH; } HARDWAREINPUT, *PHARDWAREINPUT, * LPHARDWAREINPUT; typedef struct tagINPUT { DWORD type; union { MOUSEINPUT mi; KEYBDINPUT ki; HARDWAREINPUT hi; }; } INPUT, *PINPUT, * LPINPUT; __declspec(dllimport) UINT __stdcall SendInput( UINT cInputs, // number of input in the array LPINPUT pInputs, // array of inputs int cbSize); // sizeof(INPUT) #line 5303 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" typedef struct tagLASTINPUTINFO { UINT cbSize; DWORD dwTime; } LASTINPUTINFO, * PLASTINPUTINFO; __declspec(dllimport) BOOL __stdcall GetLastInputInfo( PLASTINPUTINFO plii); #line 5316 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) UINT __stdcall MapVirtualKeyA( UINT uCode, UINT uMapType); __declspec(dllimport) UINT __stdcall MapVirtualKeyW( UINT uCode, UINT uMapType); #line 5334 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) UINT __stdcall MapVirtualKeyExA( UINT uCode, UINT uMapType, HKL dwhkl); __declspec(dllimport) UINT __stdcall MapVirtualKeyExW( UINT uCode, UINT uMapType, HKL dwhkl); #line 5355 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 5361 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 5364 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall GetInputState( void); __declspec(dllimport) DWORD __stdcall GetQueueStatus( UINT flags); __declspec(dllimport) HWND __stdcall GetCapture( void); __declspec(dllimport) HWND __stdcall SetCapture( HWND hWnd); __declspec(dllimport) BOOL __stdcall ReleaseCapture( void); __declspec(dllimport) DWORD __stdcall MsgWaitForMultipleObjects( DWORD nCount, const HANDLE *pHandles, BOOL fWaitAll, DWORD dwMilliseconds, DWORD dwWakeMask); __declspec(dllimport) DWORD __stdcall MsgWaitForMultipleObjectsEx( DWORD nCount, const HANDLE *pHandles, DWORD dwMilliseconds, DWORD dwWakeMask, DWORD dwFlags); /* * Queue status flags for GetQueueStatus() and MsgWaitForMultipleObjects() */ #line 5436 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 5448 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Windows Functions */ __declspec(dllimport) UINT_PTR __stdcall SetTimer( HWND hWnd, UINT_PTR nIDEvent, UINT uElapse, TIMERPROC lpTimerFunc); __declspec(dllimport) BOOL __stdcall KillTimer( HWND hWnd, UINT_PTR uIDEvent); __declspec(dllimport) BOOL __stdcall IsWindowUnicode( HWND hWnd); __declspec(dllimport) BOOL __stdcall EnableWindow( HWND hWnd, BOOL bEnable); __declspec(dllimport) BOOL __stdcall IsWindowEnabled( HWND hWnd); __declspec(dllimport) HACCEL __stdcall LoadAcceleratorsA( HINSTANCE hInstance, LPCSTR lpTableName); __declspec(dllimport) HACCEL __stdcall LoadAcceleratorsW( HINSTANCE hInstance, LPCWSTR lpTableName); #line 5522 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) HACCEL __stdcall CreateAcceleratorTableA( LPACCEL paccel, int cAccel); __declspec(dllimport) HACCEL __stdcall CreateAcceleratorTableW( LPACCEL paccel, int cAccel); #line 5540 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall DestroyAcceleratorTable( HACCEL hAccel); __declspec(dllimport) int __stdcall CopyAcceleratorTableA( HACCEL hAccelSrc, LPACCEL lpAccelDst, int cAccelEntries); __declspec(dllimport) int __stdcall CopyAcceleratorTableW( HACCEL hAccelSrc, LPACCEL lpAccelDst, int cAccelEntries); #line 5566 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) int __stdcall TranslateAcceleratorA( HWND hWnd, HACCEL hAccTable, LPMSG lpMsg); __declspec(dllimport) int __stdcall TranslateAcceleratorW( HWND hWnd, HACCEL hAccTable, LPMSG lpMsg); #line 5588 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 5590 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * GetSystemMetrics() codes */ #line 5672 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 5679 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 5683 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 5691 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 5694 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 5698 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 5705 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 5710 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 5714 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 5716 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 5718 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 5720 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 5728 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 5732 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 5736 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 5738 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) int __stdcall GetSystemMetrics( int nIndex); #line 5748 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) HMENU __stdcall LoadMenuA( HINSTANCE hInstance, LPCSTR lpMenuName); __declspec(dllimport) HMENU __stdcall LoadMenuW( HINSTANCE hInstance, LPCWSTR lpMenuName); #line 5768 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) HMENU __stdcall LoadMenuIndirectA( const MENUTEMPLATEA *lpMenuTemplate); __declspec(dllimport) HMENU __stdcall LoadMenuIndirectW( const MENUTEMPLATEW *lpMenuTemplate); #line 5784 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) HMENU __stdcall GetMenu( HWND hWnd); __declspec(dllimport) BOOL __stdcall SetMenu( HWND hWnd, HMENU hMenu); __declspec(dllimport) BOOL __stdcall ChangeMenuA( HMENU hMenu, UINT cmd, LPCSTR lpszNewItem, UINT cmdInsert, UINT flags); __declspec(dllimport) BOOL __stdcall ChangeMenuW( HMENU hMenu, UINT cmd, LPCWSTR lpszNewItem, UINT cmdInsert, UINT flags); #line 5821 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall HiliteMenuItem( HWND hWnd, HMENU hMenu, UINT uIDHiliteItem, UINT uHilite); __declspec(dllimport) int __stdcall GetMenuStringA( HMENU hMenu, UINT uIDItem, LPSTR lpString, int cchMax, UINT flags); __declspec(dllimport) int __stdcall GetMenuStringW( HMENU hMenu, UINT uIDItem, LPWSTR lpString, int cchMax, UINT flags); #line 5854 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) UINT __stdcall GetMenuState( HMENU hMenu, UINT uId, UINT uFlags); __declspec(dllimport) BOOL __stdcall DrawMenuBar( HWND hWnd); #line 5873 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) HMENU __stdcall GetSystemMenu( HWND hWnd, BOOL bRevert); __declspec(dllimport) HMENU __stdcall CreateMenu( void); __declspec(dllimport) HMENU __stdcall CreatePopupMenu( void); __declspec(dllimport) BOOL __stdcall DestroyMenu( HMENU hMenu); __declspec(dllimport) DWORD __stdcall CheckMenuItem( HMENU hMenu, UINT uIDCheckItem, UINT uCheck); __declspec(dllimport) BOOL __stdcall EnableMenuItem( HMENU hMenu, UINT uIDEnableItem, UINT uEnable); __declspec(dllimport) HMENU __stdcall GetSubMenu( HMENU hMenu, int nPos); __declspec(dllimport) UINT __stdcall GetMenuItemID( HMENU hMenu, int nPos); __declspec(dllimport) int __stdcall GetMenuItemCount( HMENU hMenu); __declspec(dllimport) BOOL __stdcall InsertMenuA( HMENU hMenu, UINT uPosition, UINT uFlags, UINT_PTR uIDNewItem, LPCSTR lpNewItem); __declspec(dllimport) BOOL __stdcall InsertMenuW( HMENU hMenu, UINT uPosition, UINT uFlags, UINT_PTR uIDNewItem, LPCWSTR lpNewItem); #line 5960 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall AppendMenuA( HMENU hMenu, UINT uFlags, UINT_PTR uIDNewItem, LPCSTR lpNewItem); __declspec(dllimport) BOOL __stdcall AppendMenuW( HMENU hMenu, UINT uFlags, UINT_PTR uIDNewItem, LPCWSTR lpNewItem); #line 5982 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall ModifyMenuA( HMENU hMnu, UINT uPosition, UINT uFlags, UINT_PTR uIDNewItem, LPCSTR lpNewItem); __declspec(dllimport) BOOL __stdcall ModifyMenuW( HMENU hMnu, UINT uPosition, UINT uFlags, UINT_PTR uIDNewItem, LPCWSTR lpNewItem); #line 6006 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall RemoveMenu( HMENU hMenu, UINT uPosition, UINT uFlags); __declspec(dllimport) BOOL __stdcall DeleteMenu( HMENU hMenu, UINT uPosition, UINT uFlags); __declspec(dllimport) BOOL __stdcall SetMenuItemBitmaps( HMENU hMenu, UINT uPosition, UINT uFlags, HBITMAP hBitmapUnchecked, HBITMAP hBitmapChecked); __declspec(dllimport) LONG __stdcall GetMenuCheckMarkDimensions( void); __declspec(dllimport) BOOL __stdcall TrackPopupMenu( HMENU hMenu, UINT uFlags, int x, int y, int nReserved, HWND hWnd, const RECT *prcRect); /* return codes for WM_MENUCHAR */ typedef struct tagTPMPARAMS { UINT cbSize; /* Size of structure */ RECT rcExclude; /* Screen coordinates of rectangle to exclude when positioning */ } TPMPARAMS; typedef TPMPARAMS *LPTPMPARAMS; __declspec(dllimport) BOOL __stdcall TrackPopupMenuEx( HMENU, UINT, int, int, HWND, LPTPMPARAMS); #line 6075 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" typedef struct tagMENUINFO { DWORD cbSize; DWORD fMask; DWORD dwStyle; UINT cyMax; HBRUSH hbrBack; DWORD dwContextHelpID; ULONG_PTR dwMenuData; } MENUINFO, *LPMENUINFO; typedef MENUINFO const *LPCMENUINFO; __declspec(dllimport) BOOL __stdcall GetMenuInfo( HMENU, LPMENUINFO); __declspec(dllimport) BOOL __stdcall SetMenuInfo( HMENU, LPCMENUINFO); __declspec(dllimport) BOOL __stdcall EndMenu( void); /* * WM_MENUDRAG return values. */ typedef struct tagMENUGETOBJECTINFO { DWORD dwFlags; UINT uPos; HMENU hmenu; PVOID riid; PVOID pvObj; } MENUGETOBJECTINFO, * PMENUGETOBJECTINFO; /* * MENUGETOBJECTINFO dwFlags values */ /* * WM_MENUGETOBJECT return values */ #line 6151 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 6160 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 6178 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" typedef struct tagMENUITEMINFOA { UINT cbSize; UINT fMask; UINT fType; // used if MIIM_TYPE (4.0) or MIIM_FTYPE (>4.0) UINT fState; // used if MIIM_STATE UINT wID; // used if MIIM_ID HMENU hSubMenu; // used if MIIM_SUBMENU HBITMAP hbmpChecked; // used if MIIM_CHECKMARKS HBITMAP hbmpUnchecked; // used if MIIM_CHECKMARKS ULONG_PTR dwItemData; // used if MIIM_DATA LPSTR dwTypeData; // used if MIIM_TYPE (4.0) or MIIM_STRING (>4.0) UINT cch; // used if MIIM_TYPE (4.0) or MIIM_STRING (>4.0) HBITMAP hbmpItem; // used if MIIM_BITMAP #line 6196 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" } MENUITEMINFOA, *LPMENUITEMINFOA; typedef struct tagMENUITEMINFOW { UINT cbSize; UINT fMask; UINT fType; // used if MIIM_TYPE (4.0) or MIIM_FTYPE (>4.0) UINT fState; // used if MIIM_STATE UINT wID; // used if MIIM_ID HMENU hSubMenu; // used if MIIM_SUBMENU HBITMAP hbmpChecked; // used if MIIM_CHECKMARKS HBITMAP hbmpUnchecked; // used if MIIM_CHECKMARKS ULONG_PTR dwItemData; // used if MIIM_DATA LPWSTR dwTypeData; // used if MIIM_TYPE (4.0) or MIIM_STRING (>4.0) UINT cch; // used if MIIM_TYPE (4.0) or MIIM_STRING (>4.0) HBITMAP hbmpItem; // used if MIIM_BITMAP #line 6213 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" } MENUITEMINFOW, *LPMENUITEMINFOW; typedef MENUITEMINFOW MENUITEMINFO; typedef LPMENUITEMINFOW LPMENUITEMINFO; #line 6221 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" typedef MENUITEMINFOA const *LPCMENUITEMINFOA; typedef MENUITEMINFOW const *LPCMENUITEMINFOW; typedef LPCMENUITEMINFOW LPCMENUITEMINFO; #line 6228 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall InsertMenuItemA( HMENU hmenu, UINT item, BOOL fByPosition, LPCMENUITEMINFOA lpmi); __declspec(dllimport) BOOL __stdcall InsertMenuItemW( HMENU hmenu, UINT item, BOOL fByPosition, LPCMENUITEMINFOW lpmi); #line 6251 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall GetMenuItemInfoA( HMENU hmenu, UINT item, BOOL fByPosition, LPMENUITEMINFOA lpmii); __declspec(dllimport) BOOL __stdcall GetMenuItemInfoW( HMENU hmenu, UINT item, BOOL fByPosition, LPMENUITEMINFOW lpmii); #line 6273 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall SetMenuItemInfoA( HMENU hmenu, UINT item, BOOL fByPositon, LPCMENUITEMINFOA lpmii); __declspec(dllimport) BOOL __stdcall SetMenuItemInfoW( HMENU hmenu, UINT item, BOOL fByPositon, LPCMENUITEMINFOW lpmii); #line 6295 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) UINT __stdcall GetMenuDefaultItem( HMENU hMenu, UINT fByPos, UINT gmdiFlags); __declspec(dllimport) BOOL __stdcall SetMenuDefaultItem( HMENU hMenu, UINT uItem, UINT fByPos); __declspec(dllimport) BOOL __stdcall GetMenuItemRect( HWND hWnd, HMENU hMenu, UINT uItem, LPRECT lprcItem); __declspec(dllimport) int __stdcall MenuItemFromPoint( HWND hWnd, HMENU hMenu, POINT ptScreen); #line 6333 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Flags for TrackPopupMenu */ #line 6352 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 6361 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 6364 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 6365 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 6368 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" // // Drag-and-drop support // Obsolete - use OLE instead // typedef struct tagDROPSTRUCT { HWND hwndSource; HWND hwndSink; DWORD wFmt; ULONG_PTR dwData; POINT ptDrop; DWORD dwControlData; } DROPSTRUCT, *PDROPSTRUCT, *LPDROPSTRUCT; __declspec(dllimport) DWORD __stdcall DragObject( HWND hwndParent, HWND hwndFrom, UINT fmt, ULONG_PTR data, HCURSOR hcur); __declspec(dllimport) BOOL __stdcall DragDetect( HWND hwnd, POINT pt); #line 6412 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall DrawIcon( HDC hDC, int X, int Y, HICON hIcon); /* * DrawText() Format Flags */ #line 6456 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 6457 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" typedef struct tagDRAWTEXTPARAMS { UINT cbSize; int iTabLength; int iLeftMargin; int iRightMargin; UINT uiLengthDrawn; } DRAWTEXTPARAMS, *LPDRAWTEXTPARAMS; #line 6467 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) int __stdcall DrawTextA( HDC hdc, LPCSTR lpchText, int cchText, LPRECT lprc, UINT format); __declspec(dllimport) int __stdcall DrawTextW( HDC hdc, LPCWSTR lpchText, int cchText, LPRECT lprc, UINT format); #line 6492 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 6518 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) int __stdcall DrawTextExA( HDC hdc, LPSTR lpchText, int cchText, LPRECT lprc, UINT format, LPDRAWTEXTPARAMS lpdtp); __declspec(dllimport) int __stdcall DrawTextExW( HDC hdc, LPWSTR lpchText, int cchText, LPRECT lprc, UINT format, LPDRAWTEXTPARAMS lpdtp); #line 6546 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 6547 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 6549 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall GrayStringA( HDC hDC, HBRUSH hBrush, GRAYSTRINGPROC lpOutputFunc, LPARAM lpData, int nCount, int X, int Y, int nWidth, int nHeight); __declspec(dllimport) BOOL __stdcall GrayStringW( HDC hDC, HBRUSH hBrush, GRAYSTRINGPROC lpOutputFunc, LPARAM lpData, int nCount, int X, int Y, int nWidth, int nHeight); #line 6581 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* Monolithic state-drawing routine */ /* Image type */ /* State type */ #line 6600 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall DrawStateA( HDC hdc, HBRUSH hbrFore, DRAWSTATEPROC qfnCallBack, LPARAM lData, WPARAM wData, int x, int y, int cx, int cy, UINT uFlags); __declspec(dllimport) BOOL __stdcall DrawStateW( HDC hdc, HBRUSH hbrFore, DRAWSTATEPROC qfnCallBack, LPARAM lData, WPARAM wData, int x, int y, int cx, int cy, UINT uFlags); #line 6635 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 6636 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) LONG __stdcall TabbedTextOutA( HDC hdc, int x, int y, LPCSTR lpString, int chCount, int nTabPositions, const INT *lpnTabStopPositions, int nTabOrigin); __declspec(dllimport) LONG __stdcall TabbedTextOutW( HDC hdc, int x, int y, LPCWSTR lpString, int chCount, int nTabPositions, const INT *lpnTabStopPositions, int nTabOrigin); #line 6666 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) DWORD __stdcall GetTabbedTextExtentA( HDC hdc, LPCSTR lpString, int chCount, int nTabPositions, const INT *lpnTabStopPositions); __declspec(dllimport) DWORD __stdcall GetTabbedTextExtentW( HDC hdc, LPCWSTR lpString, int chCount, int nTabPositions, const INT *lpnTabStopPositions); #line 6690 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall UpdateWindow( HWND hWnd); __declspec(dllimport) HWND __stdcall SetActiveWindow( HWND hWnd); __declspec(dllimport) HWND __stdcall GetForegroundWindow( void); __declspec(dllimport) BOOL __stdcall PaintDesktop( HDC hdc); __declspec(dllimport) void __stdcall SwitchToThisWindow( HWND hwnd, BOOL fUnknown); #line 6723 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall SetForegroundWindow( HWND hWnd); __declspec(dllimport) BOOL __stdcall AllowSetForegroundWindow( DWORD dwProcessId); __declspec(dllimport) BOOL __stdcall LockSetForegroundWindow( UINT uLockCode); #line 6750 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) HWND __stdcall WindowFromDC( HDC hDC); __declspec(dllimport) HDC __stdcall GetDC( HWND hWnd); __declspec(dllimport) HDC __stdcall GetDCEx( HWND hWnd, HRGN hrgnClip, DWORD flags); /* * GetDCEx() flags */ #line 6791 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) HDC __stdcall GetWindowDC( HWND hWnd); __declspec(dllimport) int __stdcall ReleaseDC( HWND hWnd, HDC hDC); __declspec(dllimport) HDC __stdcall BeginPaint( HWND hWnd, LPPAINTSTRUCT lpPaint); __declspec(dllimport) BOOL __stdcall EndPaint( HWND hWnd, const PAINTSTRUCT *lpPaint); __declspec(dllimport) BOOL __stdcall GetUpdateRect( HWND hWnd, LPRECT lpRect, BOOL bErase); __declspec(dllimport) int __stdcall GetUpdateRgn( HWND hWnd, HRGN hRgn, BOOL bErase); __declspec(dllimport) int __stdcall SetWindowRgn( HWND hWnd, HRGN hRgn, BOOL bRedraw); __declspec(dllimport) int __stdcall GetWindowRgn( HWND hWnd, HRGN hRgn); __declspec(dllimport) int __stdcall GetWindowRgnBox( HWND hWnd, LPRECT lprc); #line 6862 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) int __stdcall ExcludeUpdateRgn( HDC hDC, HWND hWnd); __declspec(dllimport) BOOL __stdcall InvalidateRect( HWND hWnd, const RECT *lpRect, BOOL bErase); __declspec(dllimport) BOOL __stdcall ValidateRect( HWND hWnd, const RECT *lpRect); __declspec(dllimport) BOOL __stdcall InvalidateRgn( HWND hWnd, HRGN hRgn, BOOL bErase); __declspec(dllimport) BOOL __stdcall ValidateRgn( HWND hWnd, HRGN hRgn); __declspec(dllimport) BOOL __stdcall RedrawWindow( HWND hWnd, const RECT *lprcUpdate, HRGN hrgnUpdate, UINT flags); /* * RedrawWindow() flags */ /* * LockWindowUpdate API */ __declspec(dllimport) BOOL __stdcall LockWindowUpdate( HWND hWndLock); __declspec(dllimport) BOOL __stdcall ScrollWindow( HWND hWnd, int XAmount, int YAmount, const RECT *lpRect, const RECT *lpClipRect); __declspec(dllimport) BOOL __stdcall ScrollDC( HDC hDC, int dx, int dy, const RECT *lprcScroll, const RECT *lprcClip, HRGN hrgnUpdate, LPRECT lprcUpdate); __declspec(dllimport) int __stdcall ScrollWindowEx( HWND hWnd, int dx, int dy, const RECT *prcScroll, const RECT *prcClip, HRGN hrgnUpdate, LPRECT prcUpdate, UINT flags); #line 6982 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) int __stdcall SetScrollPos( HWND hWnd, int nBar, int nPos, BOOL bRedraw); __declspec(dllimport) int __stdcall GetScrollPos( HWND hWnd, int nBar); __declspec(dllimport) BOOL __stdcall SetScrollRange( HWND hWnd, int nBar, int nMinPos, int nMaxPos, BOOL bRedraw); __declspec(dllimport) BOOL __stdcall GetScrollRange( HWND hWnd, int nBar, LPINT lpMinPos, LPINT lpMaxPos); __declspec(dllimport) BOOL __stdcall ShowScrollBar( HWND hWnd, int wBar, BOOL bShow); __declspec(dllimport) BOOL __stdcall EnableScrollBar( HWND hWnd, UINT wSBflags, UINT wArrows); /* * EnableScrollBar() flags */ #line 7054 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall SetPropA( HWND hWnd, LPCSTR lpString, HANDLE hData); __declspec(dllimport) BOOL __stdcall SetPropW( HWND hWnd, LPCWSTR lpString, HANDLE hData); #line 7074 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) HANDLE __stdcall GetPropA( HWND hWnd, LPCSTR lpString); __declspec(dllimport) HANDLE __stdcall GetPropW( HWND hWnd, LPCWSTR lpString); #line 7092 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) HANDLE __stdcall RemovePropA( HWND hWnd, LPCSTR lpString); __declspec(dllimport) HANDLE __stdcall RemovePropW( HWND hWnd, LPCWSTR lpString); #line 7110 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) int __stdcall EnumPropsExA( HWND hWnd, PROPENUMPROCEXA lpEnumFunc, LPARAM lParam); __declspec(dllimport) int __stdcall EnumPropsExW( HWND hWnd, PROPENUMPROCEXW lpEnumFunc, LPARAM lParam); #line 7130 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) int __stdcall EnumPropsA( HWND hWnd, PROPENUMPROCA lpEnumFunc); __declspec(dllimport) int __stdcall EnumPropsW( HWND hWnd, PROPENUMPROCW lpEnumFunc); #line 7148 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall SetWindowTextA( HWND hWnd, LPCSTR lpString); __declspec(dllimport) BOOL __stdcall SetWindowTextW( HWND hWnd, LPCWSTR lpString); #line 7166 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) int __stdcall GetWindowTextA( HWND hWnd, LPSTR lpString, int nMaxCount); __declspec(dllimport) int __stdcall GetWindowTextW( HWND hWnd, LPWSTR lpString, int nMaxCount); #line 7186 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) int __stdcall GetWindowTextLengthA( HWND hWnd); __declspec(dllimport) int __stdcall GetWindowTextLengthW( HWND hWnd); #line 7202 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall GetClientRect( HWND hWnd, LPRECT lpRect); __declspec(dllimport) BOOL __stdcall GetWindowRect( HWND hWnd, LPRECT lpRect); __declspec(dllimport) BOOL __stdcall AdjustWindowRect( LPRECT lpRect, DWORD dwStyle, BOOL bMenu); __declspec(dllimport) BOOL __stdcall AdjustWindowRectEx( LPRECT lpRect, DWORD dwStyle, BOOL bMenu, DWORD dwExStyle); typedef struct tagHELPINFO /* Structure pointed to by lParam of WM_HELP */ { UINT cbSize; /* Size in bytes of this struct */ int iContextType; /* Either HELPINFO_WINDOW or HELPINFO_MENUITEM */ int iCtrlId; /* Control Id or a Menu item Id. */ HANDLE hItemHandle; /* hWnd of control or hMenu. */ DWORD_PTR dwContextId; /* Context Id associated with this item */ POINT MousePos; /* Mouse Position in screen co-ordinates */ } HELPINFO, *LPHELPINFO; __declspec(dllimport) BOOL __stdcall SetWindowContextHelpId( HWND, DWORD); __declspec(dllimport) DWORD __stdcall GetWindowContextHelpId( HWND); __declspec(dllimport) BOOL __stdcall SetMenuContextHelpId( HMENU, DWORD); __declspec(dllimport) DWORD __stdcall GetMenuContextHelpId( HMENU); #line 7275 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * MessageBox() Flags */ #line 7291 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 7303 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 7313 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 7320 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 7332 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 7339 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 7341 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) int __stdcall MessageBoxA( HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType); __declspec(dllimport) int __stdcall MessageBoxW( HWND hWnd, LPCWSTR lpText, LPCWSTR lpCaption, UINT uType); #line 7369 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 7393 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) int __stdcall MessageBoxExA( HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType, WORD wLanguageId); __declspec(dllimport) int __stdcall MessageBoxExW( HWND hWnd, LPCWSTR lpText, LPCWSTR lpCaption, UINT uType, WORD wLanguageId); #line 7417 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" typedef void (__stdcall *MSGBOXCALLBACK)(LPHELPINFO lpHelpInfo); typedef struct tagMSGBOXPARAMSA { UINT cbSize; HWND hwndOwner; HINSTANCE hInstance; LPCSTR lpszText; LPCSTR lpszCaption; DWORD dwStyle; LPCSTR lpszIcon; DWORD_PTR dwContextHelpId; MSGBOXCALLBACK lpfnMsgBoxCallback; DWORD dwLanguageId; } MSGBOXPARAMSA, *PMSGBOXPARAMSA, *LPMSGBOXPARAMSA; typedef struct tagMSGBOXPARAMSW { UINT cbSize; HWND hwndOwner; HINSTANCE hInstance; LPCWSTR lpszText; LPCWSTR lpszCaption; DWORD dwStyle; LPCWSTR lpszIcon; DWORD_PTR dwContextHelpId; MSGBOXCALLBACK lpfnMsgBoxCallback; DWORD dwLanguageId; } MSGBOXPARAMSW, *PMSGBOXPARAMSW, *LPMSGBOXPARAMSW; typedef MSGBOXPARAMSW MSGBOXPARAMS; typedef PMSGBOXPARAMSW PMSGBOXPARAMS; typedef LPMSGBOXPARAMSW LPMSGBOXPARAMS; #line 7457 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) int __stdcall MessageBoxIndirectA( const MSGBOXPARAMSA * lpmbp); __declspec(dllimport) int __stdcall MessageBoxIndirectW( const MSGBOXPARAMSW * lpmbp); #line 7473 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 7474 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall MessageBeep( UINT uType); #line 7483 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) int __stdcall ShowCursor( BOOL bShow); __declspec(dllimport) BOOL __stdcall SetCursorPos( int X, int Y); __declspec(dllimport) BOOL __stdcall SetPhysicalCursorPos( int X, int Y); __declspec(dllimport) HCURSOR __stdcall SetCursor( HCURSOR hCursor); __declspec(dllimport) BOOL __stdcall GetCursorPos( LPPOINT lpPoint); __declspec(dllimport) BOOL __stdcall GetPhysicalCursorPos( LPPOINT lpPoint); __declspec(dllimport) BOOL __stdcall ClipCursor( const RECT *lpRect); __declspec(dllimport) BOOL __stdcall GetClipCursor( LPRECT lpRect); __declspec(dllimport) HCURSOR __stdcall GetCursor( void); __declspec(dllimport) BOOL __stdcall CreateCaret( HWND hWnd, HBITMAP hBitmap, int nWidth, int nHeight); __declspec(dllimport) UINT __stdcall GetCaretBlinkTime( void); __declspec(dllimport) BOOL __stdcall SetCaretBlinkTime( UINT uMSeconds); __declspec(dllimport) BOOL __stdcall DestroyCaret( void); __declspec(dllimport) BOOL __stdcall HideCaret( HWND hWnd); __declspec(dllimport) BOOL __stdcall ShowCaret( HWND hWnd); __declspec(dllimport) BOOL __stdcall SetCaretPos( int X, int Y); __declspec(dllimport) BOOL __stdcall GetCaretPos( LPPOINT lpPoint); __declspec(dllimport) BOOL __stdcall ClientToScreen( HWND hWnd, LPPOINT lpPoint); __declspec(dllimport) BOOL __stdcall ScreenToClient( HWND hWnd, LPPOINT lpPoint); #line 7623 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) int __stdcall MapWindowPoints( HWND hWndFrom, HWND hWndTo, LPPOINT lpPoints, UINT cPoints); __declspec(dllimport) HWND __stdcall WindowFromPoint( POINT Point); #line 7646 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) HWND __stdcall ChildWindowFromPoint( HWND hWndParent, POINT Point); __declspec(dllimport) HWND __stdcall ChildWindowFromPointEx( HWND hwnd, POINT pt, UINT flags); #line 7668 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Color Types */ #line 7711 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 7720 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 7721 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 7730 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) DWORD __stdcall GetSysColor( int nIndex); __declspec(dllimport) HBRUSH __stdcall GetSysColorBrush( int nIndex); #line 7747 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall SetSysColors( int cElements, const INT * lpaElements, const COLORREF * lpaRgbValues); #line 7757 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall DrawFocusRect( HDC hDC, const RECT * lprc); __declspec(dllimport) int __stdcall FillRect( HDC hDC, const RECT *lprc, HBRUSH hbr); __declspec(dllimport) int __stdcall FrameRect( HDC hDC, const RECT *lprc, HBRUSH hbr); __declspec(dllimport) BOOL __stdcall InvertRect( HDC hDC, const RECT *lprc); __declspec(dllimport) BOOL __stdcall SetRect( LPRECT lprc, int xLeft, int yTop, int xRight, int yBottom); __declspec(dllimport) BOOL __stdcall SetRectEmpty( LPRECT lprc); __declspec(dllimport) BOOL __stdcall CopyRect( LPRECT lprcDst, const RECT *lprcSrc); __declspec(dllimport) BOOL __stdcall InflateRect( LPRECT lprc, int dx, int dy); __declspec(dllimport) BOOL __stdcall IntersectRect( LPRECT lprcDst, const RECT *lprcSrc1, const RECT *lprcSrc2); __declspec(dllimport) BOOL __stdcall UnionRect( LPRECT lprcDst, const RECT *lprcSrc1, const RECT *lprcSrc2); __declspec(dllimport) BOOL __stdcall SubtractRect( LPRECT lprcDst, const RECT *lprcSrc1, const RECT *lprcSrc2); __declspec(dllimport) BOOL __stdcall OffsetRect( LPRECT lprc, int dx, int dy); __declspec(dllimport) BOOL __stdcall IsRectEmpty( const RECT *lprc); __declspec(dllimport) BOOL __stdcall EqualRect( const RECT *lprc1, const RECT *lprc2); __declspec(dllimport) BOOL __stdcall PtInRect( const RECT *lprc, POINT pt); __declspec(dllimport) WORD __stdcall GetWindowWord( HWND hWnd, int nIndex); __declspec(dllimport) WORD __stdcall SetWindowWord( HWND hWnd, int nIndex, WORD wNewWord); __declspec(dllimport) LONG __stdcall GetWindowLongA( HWND hWnd, int nIndex); __declspec(dllimport) LONG __stdcall GetWindowLongW( HWND hWnd, int nIndex); #line 7905 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) LONG __stdcall SetWindowLongA( HWND hWnd, int nIndex, LONG dwNewLong); __declspec(dllimport) LONG __stdcall SetWindowLongW( HWND hWnd, int nIndex, LONG dwNewLong); #line 7925 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 7975 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 7983 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 7985 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) WORD __stdcall GetClassWord( HWND hWnd, int nIndex); __declspec(dllimport) WORD __stdcall SetClassWord( HWND hWnd, int nIndex, WORD wNewWord); __declspec(dllimport) DWORD __stdcall GetClassLongA( HWND hWnd, int nIndex); __declspec(dllimport) DWORD __stdcall GetClassLongW( HWND hWnd, int nIndex); #line 8018 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) DWORD __stdcall SetClassLongA( HWND hWnd, int nIndex, LONG dwNewLong); __declspec(dllimport) DWORD __stdcall SetClassLongW( HWND hWnd, int nIndex, LONG dwNewLong); #line 8038 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 8088 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 8096 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 8098 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 8100 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall GetProcessDefaultLayout( DWORD *pdwDefaultLayout); __declspec(dllimport) BOOL __stdcall SetProcessDefaultLayout( DWORD dwDefaultLayout); #line 8114 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) HWND __stdcall GetDesktopWindow( void); __declspec(dllimport) HWND __stdcall GetParent( HWND hWnd); __declspec(dllimport) HWND __stdcall SetParent( HWND hWndChild, HWND hWndNewParent); __declspec(dllimport) BOOL __stdcall EnumChildWindows( HWND hWndParent, WNDENUMPROC lpEnumFunc, LPARAM lParam); __declspec(dllimport) HWND __stdcall FindWindowA( LPCSTR lpClassName, LPCSTR lpWindowName); __declspec(dllimport) HWND __stdcall FindWindowW( LPCWSTR lpClassName, LPCWSTR lpWindowName); #line 8160 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) HWND __stdcall FindWindowExA( HWND hWndParent, HWND hWndChildAfter, LPCSTR lpszClass, LPCSTR lpszWindow); __declspec(dllimport) HWND __stdcall FindWindowExW( HWND hWndParent, HWND hWndChildAfter, LPCWSTR lpszClass, LPCWSTR lpszWindow); #line 8183 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) HWND __stdcall GetShellWindow( void); #line 8191 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall RegisterShellHookWindow( HWND hwnd); __declspec(dllimport) BOOL __stdcall DeregisterShellHookWindow( HWND hwnd); __declspec(dllimport) BOOL __stdcall EnumWindows( WNDENUMPROC lpEnumFunc, LPARAM lParam); __declspec(dllimport) BOOL __stdcall EnumThreadWindows( DWORD dwThreadId, WNDENUMPROC lpfn, LPARAM lParam); __declspec(dllimport) int __stdcall GetClassNameA( HWND hWnd, LPSTR lpClassName, int nMaxCount ); __declspec(dllimport) int __stdcall GetClassNameW( HWND hWnd, LPWSTR lpClassName, int nMaxCount ); #line 8243 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 8265 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) HWND __stdcall GetTopWindow( HWND hWnd); __declspec(dllimport) DWORD __stdcall GetWindowThreadProcessId( HWND hWnd, LPDWORD lpdwProcessId); __declspec(dllimport) BOOL __stdcall IsGUIThread( BOOL bConvert); #line 8293 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) HWND __stdcall GetLastActivePopup( HWND hWnd); /* * GetWindow() Constants */ #line 8316 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 8319 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) HWND __stdcall GetWindow( HWND hWnd, UINT uCmd); __declspec(dllimport) HHOOK __stdcall SetWindowsHookA( int nFilterType, HOOKPROC pfnFilterProc); __declspec(dllimport) HHOOK __stdcall SetWindowsHookW( int nFilterType, HOOKPROC pfnFilterProc); #line 8349 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 8371 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall UnhookWindowsHook( int nCode, HOOKPROC pfnFilterProc); __declspec(dllimport) HHOOK __stdcall SetWindowsHookExA( int idHook, HOOKPROC lpfn, HINSTANCE hmod, DWORD dwThreadId); __declspec(dllimport) HHOOK __stdcall SetWindowsHookExW( int idHook, HOOKPROC lpfn, HINSTANCE hmod, DWORD dwThreadId); #line 8400 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall UnhookWindowsHookEx( HHOOK hhk); __declspec(dllimport) LRESULT __stdcall CallNextHookEx( HHOOK hhk, int nCode, WPARAM wParam, LPARAM lParam); /* * Macros for source-level compatibility with old functions. */ #line 8426 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 8427 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* ;win40 -- A lot of MF_* flags have been renamed as MFT_* and MFS_* flags */ /* * Menu flags for Add/Check/EnableMenuItem() */ #line 8468 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 8473 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 8478 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* Menu flags for Add/Check/EnableMenuItem() */ #line 8501 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall CheckMenuRadioItem( HMENU hmenu, UINT first, UINT last, UINT check, UINT flags); #line 8515 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Menu item resource format */ typedef struct { WORD versionNumber; WORD offset; } MENUITEMTEMPLATEHEADER, *PMENUITEMTEMPLATEHEADER; typedef struct { // version 0 WORD mtOption; WORD mtID; WCHAR mtString[1]; } MENUITEMTEMPLATE, *PMENUITEMTEMPLATE; #line 8532 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * System Menu Command Values */ #line 8560 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 8564 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Obsolete names */ #line 8572 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Resource Loading Routines */ __declspec(dllimport) HBITMAP __stdcall LoadBitmapA( HINSTANCE hInstance, LPCSTR lpBitmapName); __declspec(dllimport) HBITMAP __stdcall LoadBitmapW( HINSTANCE hInstance, LPCWSTR lpBitmapName); #line 8594 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) HCURSOR __stdcall LoadCursorA( HINSTANCE hInstance, LPCSTR lpCursorName); __declspec(dllimport) HCURSOR __stdcall LoadCursorW( HINSTANCE hInstance, LPCWSTR lpCursorName); #line 8612 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) HCURSOR __stdcall LoadCursorFromFileA( LPCSTR lpFileName); __declspec(dllimport) HCURSOR __stdcall LoadCursorFromFileW( LPCWSTR lpFileName); #line 8628 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) HCURSOR __stdcall CreateCursor( HINSTANCE hInst, int xHotSpot, int yHotSpot, int nWidth, int nHeight, const void *pvANDPlane, const void *pvXORPlane); __declspec(dllimport) BOOL __stdcall DestroyCursor( HCURSOR hCursor); #line 8656 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Standard Cursor IDs */ #line 8676 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 8680 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall SetSystemCursor( HCURSOR hcur, DWORD id); typedef struct _ICONINFO { BOOL fIcon; DWORD xHotspot; DWORD yHotspot; HBITMAP hbmMask; HBITMAP hbmColor; } ICONINFO; typedef ICONINFO *PICONINFO; __declspec(dllimport) HICON __stdcall LoadIconA( HINSTANCE hInstance, LPCSTR lpIconName); __declspec(dllimport) HICON __stdcall LoadIconW( HINSTANCE hInstance, LPCWSTR lpIconName); #line 8714 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) UINT __stdcall PrivateExtractIconsA( LPCSTR szFileName, int nIconIndex, int cxIcon, int cyIcon, HICON *phicon, UINT *piconid, UINT nIcons, UINT flags); __declspec(dllimport) UINT __stdcall PrivateExtractIconsW( LPCWSTR szFileName, int nIconIndex, int cxIcon, int cyIcon, HICON *phicon, UINT *piconid, UINT nIcons, UINT flags); #line 8745 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) HICON __stdcall CreateIcon( HINSTANCE hInstance, int nWidth, int nHeight, BYTE cPlanes, BYTE cBitsPixel, const BYTE *lpbANDbits, const BYTE *lpbXORbits); __declspec(dllimport) BOOL __stdcall DestroyIcon( HICON hIcon); __declspec(dllimport) int __stdcall LookupIconIdFromDirectory( PBYTE presbits, BOOL fIcon); __declspec(dllimport) int __stdcall LookupIconIdFromDirectoryEx( PBYTE presbits, BOOL fIcon, int cxDesired, int cyDesired, UINT Flags); #line 8782 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) HICON __stdcall CreateIconFromResource( PBYTE presbits, DWORD dwResSize, BOOL fIcon, DWORD dwVer); __declspec(dllimport) HICON __stdcall CreateIconFromResourceEx( PBYTE presbits, DWORD dwResSize, BOOL fIcon, DWORD dwVer, int cxDesired, int cyDesired, UINT Flags); /* Icon/Cursor header */ typedef struct tagCURSORSHAPE { int xHotSpot; int yHotSpot; int cx; int cy; int cbWidth; BYTE Planes; BYTE BitsPixel; } CURSORSHAPE, *LPCURSORSHAPE; #line 8817 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) HANDLE __stdcall LoadImageA( HINSTANCE hInst, LPCSTR name, UINT type, int cx, int cy, UINT fuLoad); __declspec(dllimport) HANDLE __stdcall LoadImageW( HINSTANCE hInst, LPCWSTR name, UINT type, int cx, int cy, UINT fuLoad); #line 8863 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) HANDLE __stdcall CopyImage( HANDLE h, UINT type, int cx, int cy, UINT flags); #line 8882 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall DrawIconEx( HDC hdc, int xLeft, int yTop, HICON hIcon, int cxWidth, int cyWidth, UINT istepIfAniCur, HBRUSH hbrFlickerFreeDraw, UINT diFlags); #line 8895 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) HICON __stdcall CreateIconIndirect( PICONINFO piconinfo); __declspec(dllimport) HICON __stdcall CopyIcon( HICON hIcon); __declspec(dllimport) BOOL __stdcall GetIconInfo( HICON hIcon, PICONINFO piconinfo); #line 8964 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 8969 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Standard Icon IDs */ #line 9084 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 9087 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 9088 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 9094 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 9097 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) int __stdcall LoadStringA( HINSTANCE hInstance, UINT uID, LPSTR lpBuffer, int cchBufferMax); __declspec(dllimport) int __stdcall LoadStringW( HINSTANCE hInstance, UINT uID, LPWSTR lpBuffer, int cchBufferMax); #line 9120 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Dialog Box Command IDs */ #line 9136 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 9141 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 9146 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 9147 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Control Manager Structures and Definitions */ /* * Edit Control Styles */ #line 9177 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 9180 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Edit Control Notification Codes */ #line 9197 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* Edit control EM_SETMARGIN parameters */ #line 9204 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* wParam of EM_GET/SETIMESTATUS */ /* lParam for EMSIS_COMPOSITIONSTRING */ #line 9214 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Edit Control Messages */ #line 9260 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 9265 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 9268 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * EDITWORDBREAKPROC code values */ /* * Button Control Styles */ #line 9310 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * User Button Notification Codes */ #line 9327 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Button Control Messages */ #line 9341 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 9344 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 9352 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Static Control Constants */ #line 9378 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 9381 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 9394 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Static Control Mesages */ #line 9411 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 9413 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Dialog window class */ /* * Get/SetWindowWord/Long offsets for use with WC_DIALOG windows */ /* * Dialog Manager Routines */ __declspec(dllimport) BOOL __stdcall IsDialogMessageA( HWND hDlg, LPMSG lpMsg); __declspec(dllimport) BOOL __stdcall IsDialogMessageW( HWND hDlg, LPMSG lpMsg); #line 9461 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 9463 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall MapDialogRect( HWND hDlg, LPRECT lpRect); __declspec(dllimport) int __stdcall DlgDirListA( HWND hDlg, LPSTR lpPathSpec, int nIDListBox, int nIDStaticPath, UINT uFileType); __declspec(dllimport) int __stdcall DlgDirListW( HWND hDlg, LPWSTR lpPathSpec, int nIDListBox, int nIDStaticPath, UINT uFileType); #line 9494 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * DlgDirList, DlgDirListComboBox flags values */ __declspec(dllimport) BOOL __stdcall DlgDirSelectExA( HWND hwndDlg, LPSTR lpString, int chCount, int idListBox); __declspec(dllimport) BOOL __stdcall DlgDirSelectExW( HWND hwndDlg, LPWSTR lpString, int chCount, int idListBox); #line 9530 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) int __stdcall DlgDirListComboBoxA( HWND hDlg, LPSTR lpPathSpec, int nIDComboBox, int nIDStaticPath, UINT uFiletype); __declspec(dllimport) int __stdcall DlgDirListComboBoxW( HWND hDlg, LPWSTR lpPathSpec, int nIDComboBox, int nIDStaticPath, UINT uFiletype); #line 9554 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall DlgDirSelectComboBoxExA( HWND hwndDlg, LPSTR lpString, int cchOut, int idComboBox); __declspec(dllimport) BOOL __stdcall DlgDirSelectComboBoxExW( HWND hwndDlg, LPWSTR lpString, int cchOut, int idComboBox); #line 9576 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Dialog Styles */ #line 9602 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 9606 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 9614 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Returned in HIWORD() of DM_GETDEFID result if msg is supported */ /* * Dialog Codes */ /* * Listbox Return Values */ /* ** The idStaticPath parameter to DlgDirList can have the following values ** ORed if the list box should show other details of the files along with ** the name of the files; */ /* all other details also will be returned */ /* * Listbox Notification Codes */ /* * Listbox messages */ #line 9710 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 9713 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 9718 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 9728 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 9730 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Listbox Styles */ #line 9754 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 9760 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Combo Box return Values */ /* * Combo Box Notification Codes */ /* * Combo Box styles */ #line 9805 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 9807 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Combo Box messages */ #line 9851 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 9852 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 9856 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 9866 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 9867 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Scroll Bar Styles */ #line 9888 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 9891 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Scroll bar messages */ #line 9906 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 9910 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" typedef struct tagSCROLLINFO { UINT cbSize; UINT fMask; int nMin; int nMax; UINT nPage; int nPos; int nTrackPos; } SCROLLINFO, *LPSCROLLINFO; typedef SCROLLINFO const *LPCSCROLLINFO; __declspec(dllimport) int __stdcall SetScrollInfo( HWND hwnd, int nBar, LPCSCROLLINFO lpsi, BOOL redraw); __declspec(dllimport) BOOL __stdcall GetScrollInfo( HWND hwnd, int nBar, LPSCROLLINFO lpsi); #line 9949 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 9950 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 9951 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * MDI client style bits */ /* * wParam Flags for WM_MDITILE and WM_MDICASCADE messages. */ #line 9968 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" typedef struct tagMDICREATESTRUCTA { LPCSTR szClass; LPCSTR szTitle; HANDLE hOwner; int x; int y; int cx; int cy; DWORD style; LPARAM lParam; /* app-defined stuff */ } MDICREATESTRUCTA, *LPMDICREATESTRUCTA; typedef struct tagMDICREATESTRUCTW { LPCWSTR szClass; LPCWSTR szTitle; HANDLE hOwner; int x; int y; int cx; int cy; DWORD style; LPARAM lParam; /* app-defined stuff */ } MDICREATESTRUCTW, *LPMDICREATESTRUCTW; typedef MDICREATESTRUCTW MDICREATESTRUCT; typedef LPMDICREATESTRUCTW LPMDICREATESTRUCT; #line 9998 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" typedef struct tagCLIENTCREATESTRUCT { HANDLE hWindowMenu; UINT idFirstChild; } CLIENTCREATESTRUCT, *LPCLIENTCREATESTRUCT; __declspec(dllimport) LRESULT __stdcall DefFrameProcA( HWND hWnd, HWND hWndMDIClient, UINT uMsg, WPARAM wParam, LPARAM lParam); __declspec(dllimport) LRESULT __stdcall DefFrameProcW( HWND hWnd, HWND hWndMDIClient, UINT uMsg, WPARAM wParam, LPARAM lParam); #line 10027 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) LRESULT __stdcall #line 10036 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" DefMDIChildProcA( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); __declspec(dllimport) LRESULT __stdcall #line 10049 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" DefMDIChildProcW( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); #line 10059 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall TranslateMDISysAccel( HWND hWndClient, LPMSG lpMsg); #line 10070 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) UINT __stdcall ArrangeIconicWindows( HWND hWnd); __declspec(dllimport) HWND __stdcall CreateMDIWindowA( LPCSTR lpClassName, LPCSTR lpWindowName, DWORD dwStyle, int X, int Y, int nWidth, int nHeight, HWND hWndParent, HINSTANCE hInstance, LPARAM lParam); __declspec(dllimport) HWND __stdcall CreateMDIWindowW( LPCWSTR lpClassName, LPCWSTR lpWindowName, DWORD dwStyle, int X, int Y, int nWidth, int nHeight, HWND hWndParent, HINSTANCE hInstance, LPARAM lParam); #line 10110 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) WORD __stdcall TileWindows( HWND hwndParent, UINT wHow, const RECT * lpRect, UINT cKids, const HWND * lpKids); __declspec(dllimport) WORD __stdcall CascadeWindows( HWND hwndParent, UINT wHow, const RECT * lpRect, UINT cKids, const HWND * lpKids); #line 10132 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 10133 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 10135 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /****** Help support ********************************************************/ typedef DWORD HELPPOLY; typedef struct tagMULTIKEYHELPA { DWORD mkSize; #line 10147 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" CHAR mkKeylist; CHAR szKeyphrase[1]; } MULTIKEYHELPA, *PMULTIKEYHELPA, *LPMULTIKEYHELPA; typedef struct tagMULTIKEYHELPW { DWORD mkSize; #line 10156 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" WCHAR mkKeylist; WCHAR szKeyphrase[1]; } MULTIKEYHELPW, *PMULTIKEYHELPW, *LPMULTIKEYHELPW; typedef MULTIKEYHELPW MULTIKEYHELP; typedef PMULTIKEYHELPW PMULTIKEYHELP; typedef LPMULTIKEYHELPW LPMULTIKEYHELP; #line 10168 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" typedef struct tagHELPWININFOA { int wStructSize; int x; int y; int dx; int dy; int wMax; CHAR rgchMember[2]; } HELPWININFOA, *PHELPWININFOA, *LPHELPWININFOA; typedef struct tagHELPWININFOW { int wStructSize; int x; int y; int dx; int dy; int wMax; WCHAR rgchMember[2]; } HELPWININFOW, *PHELPWININFOW, *LPHELPWININFOW; typedef HELPWININFOW HELPWININFO; typedef PHELPWININFOW PHELPWININFO; typedef LPHELPWININFOW LPHELPWININFO; #line 10196 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Commands to pass to WinHelp() */ // These are in winhelp.h in Win95. #line 10234 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall WinHelpA( HWND hWndMain, LPCSTR lpszHelp, UINT uCommand, ULONG_PTR dwData); __declspec(dllimport) BOOL __stdcall WinHelpW( HWND hWndMain, LPCWSTR lpszHelp, UINT uCommand, ULONG_PTR dwData); #line 10258 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 10260 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) DWORD __stdcall GetGuiResources( HANDLE hProcess, DWORD uiFlags); #line 10273 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Parameter for SystemParametersInfo() */ #line 10359 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 10375 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 10381 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 10397 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 10401 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 10409 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 10417 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 10462 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 10476 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* constants for SPI_GETFONTSMOOTHINGTYPE and SPI_SETFONTSMOOTHINGTYPE: */ /* constants for SPI_GETFONTSMOOTHINGORIENTATION and SPI_SETFONTSMOOTHINGORIENTATION: */ #line 10512 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 10519 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 10521 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Flags */ typedef struct tagNONCLIENTMETRICSA { UINT cbSize; int iBorderWidth; int iScrollWidth; int iScrollHeight; int iCaptionWidth; int iCaptionHeight; LOGFONTA lfCaptionFont; int iSmCaptionWidth; int iSmCaptionHeight; LOGFONTA lfSmCaptionFont; int iMenuWidth; int iMenuHeight; LOGFONTA lfMenuFont; LOGFONTA lfStatusFont; LOGFONTA lfMessageFont; #line 10553 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" } NONCLIENTMETRICSA, *PNONCLIENTMETRICSA, * LPNONCLIENTMETRICSA; typedef struct tagNONCLIENTMETRICSW { UINT cbSize; int iBorderWidth; int iScrollWidth; int iScrollHeight; int iCaptionWidth; int iCaptionHeight; LOGFONTW lfCaptionFont; int iSmCaptionWidth; int iSmCaptionHeight; LOGFONTW lfSmCaptionFont; int iMenuWidth; int iMenuHeight; LOGFONTW lfMenuFont; LOGFONTW lfStatusFont; LOGFONTW lfMessageFont; #line 10574 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" } NONCLIENTMETRICSW, *PNONCLIENTMETRICSW, * LPNONCLIENTMETRICSW; typedef NONCLIENTMETRICSW NONCLIENTMETRICS; typedef PNONCLIENTMETRICSW PNONCLIENTMETRICS; typedef LPNONCLIENTMETRICSW LPNONCLIENTMETRICS; #line 10584 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 10585 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 10586 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" typedef struct tagMINIMIZEDMETRICS { UINT cbSize; int iWidth; int iHorzGap; int iVertGap; int iArrange; } MINIMIZEDMETRICS, *PMINIMIZEDMETRICS, *LPMINIMIZEDMETRICS; typedef struct tagICONMETRICSA { UINT cbSize; int iHorzSpacing; int iVertSpacing; int iTitleWrap; LOGFONTA lfFont; } ICONMETRICSA, *PICONMETRICSA, *LPICONMETRICSA; typedef struct tagICONMETRICSW { UINT cbSize; int iHorzSpacing; int iVertSpacing; int iTitleWrap; LOGFONTW lfFont; } ICONMETRICSW, *PICONMETRICSW, *LPICONMETRICSW; typedef ICONMETRICSW ICONMETRICS; typedef PICONMETRICSW PICONMETRICS; typedef LPICONMETRICSW LPICONMETRICS; #line 10637 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 10638 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 10639 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" typedef struct tagANIMATIONINFO { UINT cbSize; int iMinAnimate; } ANIMATIONINFO, *LPANIMATIONINFO; typedef struct tagSERIALKEYSA { UINT cbSize; DWORD dwFlags; LPSTR lpszActivePort; LPSTR lpszPort; UINT iBaudRate; UINT iPortState; UINT iActive; } SERIALKEYSA, *LPSERIALKEYSA; typedef struct tagSERIALKEYSW { UINT cbSize; DWORD dwFlags; LPWSTR lpszActivePort; LPWSTR lpszPort; UINT iBaudRate; UINT iPortState; UINT iActive; } SERIALKEYSW, *LPSERIALKEYSW; typedef SERIALKEYSW SERIALKEYS; typedef LPSERIALKEYSW LPSERIALKEYS; #line 10673 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* flags for SERIALKEYS dwFlags field */ typedef struct tagHIGHCONTRASTA { UINT cbSize; DWORD dwFlags; LPSTR lpszDefaultScheme; } HIGHCONTRASTA, *LPHIGHCONTRASTA; typedef struct tagHIGHCONTRASTW { UINT cbSize; DWORD dwFlags; LPWSTR lpszDefaultScheme; } HIGHCONTRASTW, *LPHIGHCONTRASTW; typedef HIGHCONTRASTW HIGHCONTRAST; typedef LPHIGHCONTRASTW LPHIGHCONTRAST; #line 10699 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* flags for HIGHCONTRAST dwFlags field */ /* Flags for ChangeDisplaySettings */ #line 10722 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\tvout.h" /*++ Copyright (c) Microsoft Corporation. All rights reserved. */ #pragma once #line 12 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\tvout.h" typedef struct _VIDEOPARAMETERS { GUID Guid; // GUID for this structure ULONG dwOffset; // leave it 0 for now. ULONG dwCommand; // VP_COMMAND_* SET or GET ULONG dwFlags; // bitfield, defined below SET or GET ULONG dwMode; // bitfield, defined below SET or GET ULONG dwTVStandard; // bitfield, defined below SET or GET ULONG dwAvailableModes; // bitfield, defined below GET ULONG dwAvailableTVStandard; // bitfield, defined below GET ULONG dwFlickerFilter; // value SET or GET ULONG dwOverScanX; // value SET or GET ULONG dwOverScanY; // SET or GET ULONG dwMaxUnscaledX; // value SET or GET ULONG dwMaxUnscaledY; // SET or GET ULONG dwPositionX; // value SET or GET ULONG dwPositionY; // SET or GET ULONG dwBrightness; // value SET or GET ULONG dwContrast; // value SET or GET ULONG dwCPType; // copy protection type SET or GET ULONG dwCPCommand; // VP_CP_CMD_ ULONG dwCPStandard; // what TV standards CP is available on. GET ULONG dwCPKey; ULONG bCP_APSTriggerBits; // (a dword for alignment) SET(bits 0 and 1 valid). UCHAR bOEMCopyProtection[256]; // oem specific copy protection data SET or GET } VIDEOPARAMETERS, *PVIDEOPARAMETERS, *LPVIDEOPARAMETERS; // returned Flags = 0 if not supported. // and the rest #line 90 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\tvout.h" #line 10726 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* Return values for ChangeDisplaySettings */ #line 10738 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) LONG __stdcall ChangeDisplaySettingsA( LPDEVMODEA lpDevMode, DWORD dwFlags); __declspec(dllimport) LONG __stdcall ChangeDisplaySettingsW( LPDEVMODEW lpDevMode, DWORD dwFlags); #line 10759 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) LONG __stdcall ChangeDisplaySettingsExA( LPCSTR lpszDeviceName, LPDEVMODEA lpDevMode, HWND hwnd, DWORD dwflags, LPVOID lParam); __declspec(dllimport) LONG __stdcall ChangeDisplaySettingsExW( LPCWSTR lpszDeviceName, LPDEVMODEW lpDevMode, HWND hwnd, DWORD dwflags, LPVOID lParam); #line 10783 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall EnumDisplaySettingsA( LPCSTR lpszDeviceName, DWORD iModeNum, LPDEVMODEA lpDevMode); __declspec(dllimport) BOOL __stdcall EnumDisplaySettingsW( LPCWSTR lpszDeviceName, DWORD iModeNum, LPDEVMODEW lpDevMode); #line 10806 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall EnumDisplaySettingsExA( LPCSTR lpszDeviceName, DWORD iModeNum, LPDEVMODEA lpDevMode, DWORD dwFlags); __declspec(dllimport) BOOL __stdcall EnumDisplaySettingsExW( LPCWSTR lpszDeviceName, DWORD iModeNum, LPDEVMODEW lpDevMode, DWORD dwFlags); #line 10830 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* Flags for EnumDisplaySettingsEx */ __declspec(dllimport) BOOL __stdcall EnumDisplayDevicesA( LPCSTR lpDevice, DWORD iDevNum, PDISPLAY_DEVICEA lpDisplayDevice, DWORD dwFlags); __declspec(dllimport) BOOL __stdcall EnumDisplayDevicesW( LPCWSTR lpDevice, DWORD iDevNum, PDISPLAY_DEVICEW lpDisplayDevice, DWORD dwFlags); #line 10856 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* Flags for EnumDisplayDevices */ #line 10860 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 10862 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 10863 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall SystemParametersInfoA( UINT uiAction, UINT uiParam, PVOID pvParam, UINT fWinIni); __declspec(dllimport) BOOL __stdcall SystemParametersInfoW( UINT uiAction, UINT uiParam, PVOID pvParam, UINT fWinIni); #line 10886 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 10889 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Accessibility support */ typedef struct tagFILTERKEYS { UINT cbSize; DWORD dwFlags; DWORD iWaitMSec; // Acceptance Delay DWORD iDelayMSec; // Delay Until Repeat DWORD iRepeatMSec; // Repeat Rate DWORD iBounceMSec; // Debounce Time } FILTERKEYS, *LPFILTERKEYS; /* * FILTERKEYS dwFlags field */ typedef struct tagSTICKYKEYS { UINT cbSize; DWORD dwFlags; } STICKYKEYS, *LPSTICKYKEYS; /* * STICKYKEYS dwFlags field */ #line 10950 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" typedef struct tagMOUSEKEYS { UINT cbSize; DWORD dwFlags; DWORD iMaxSpeed; DWORD iTimeToMaxSpeed; DWORD iCtrlSpeed; DWORD dwReserved1; DWORD dwReserved2; } MOUSEKEYS, *LPMOUSEKEYS; /* * MOUSEKEYS dwFlags field */ #line 10980 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" typedef struct tagACCESSTIMEOUT { UINT cbSize; DWORD dwFlags; DWORD iTimeOutMSec; } ACCESSTIMEOUT, *LPACCESSTIMEOUT; /* * ACCESSTIMEOUT dwFlags field */ /* values for SOUNDSENTRY iFSGrafEffect field */ /* values for SOUNDSENTRY iFSTextEffect field */ /* values for SOUNDSENTRY iWindowsEffect field */ typedef struct tagSOUNDSENTRYA { UINT cbSize; DWORD dwFlags; DWORD iFSTextEffect; DWORD iFSTextEffectMSec; DWORD iFSTextEffectColorBits; DWORD iFSGrafEffect; DWORD iFSGrafEffectMSec; DWORD iFSGrafEffectColor; DWORD iWindowsEffect; DWORD iWindowsEffectMSec; LPSTR lpszWindowsEffectDLL; DWORD iWindowsEffectOrdinal; } SOUNDSENTRYA, *LPSOUNDSENTRYA; typedef struct tagSOUNDSENTRYW { UINT cbSize; DWORD dwFlags; DWORD iFSTextEffect; DWORD iFSTextEffectMSec; DWORD iFSTextEffectColorBits; DWORD iFSGrafEffect; DWORD iFSGrafEffectMSec; DWORD iFSGrafEffectColor; DWORD iWindowsEffect; DWORD iWindowsEffectMSec; LPWSTR lpszWindowsEffectDLL; DWORD iWindowsEffectOrdinal; } SOUNDSENTRYW, *LPSOUNDSENTRYW; typedef SOUNDSENTRYW SOUNDSENTRY; typedef LPSOUNDSENTRYW LPSOUNDSENTRY; #line 11048 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * SOUNDSENTRY dwFlags field */ #line 11062 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" typedef struct tagTOGGLEKEYS { UINT cbSize; DWORD dwFlags; } TOGGLEKEYS, *LPTOGGLEKEYS; /* * TOGGLEKEYS dwFlags field */ #line 11086 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Set debug level */ __declspec(dllimport) void __stdcall SetDebugErrorLevel( DWORD dwLevel); /* * SetLastErrorEx() types. */ __declspec(dllimport) void __stdcall SetLastErrorEx( DWORD dwErrCode, DWORD dwType); __declspec(dllimport) int __stdcall InternalGetWindowText( HWND hWnd, LPWSTR pString, int cchMaxCount); #line 11131 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall CancelShutdown( void); /* * Multimonitor API. */ __declspec(dllimport) HMONITOR __stdcall MonitorFromPoint( POINT pt, DWORD dwFlags); __declspec(dllimport) HMONITOR __stdcall MonitorFromRect( LPCRECT lprc, DWORD dwFlags); __declspec(dllimport) HMONITOR __stdcall MonitorFromWindow( HWND hwnd, DWORD dwFlags); typedef struct tagMONITORINFO { DWORD cbSize; RECT rcMonitor; RECT rcWork; DWORD dwFlags; } MONITORINFO, *LPMONITORINFO; typedef struct tagMONITORINFOEXA : public tagMONITORINFO { CHAR szDevice[32]; } MONITORINFOEXA, *LPMONITORINFOEXA; typedef struct tagMONITORINFOEXW : public tagMONITORINFO { WCHAR szDevice[32]; } MONITORINFOEXW, *LPMONITORINFOEXW; typedef MONITORINFOEXW MONITORINFOEX; typedef LPMONITORINFOEXW LPMONITORINFOEX; #line 11200 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 11219 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall GetMonitorInfoA( HMONITOR hMonitor, LPMONITORINFO lpmi); __declspec(dllimport) BOOL __stdcall GetMonitorInfoW( HMONITOR hMonitor, LPMONITORINFO lpmi); #line 11237 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" typedef BOOL (__stdcall* MONITORENUMPROC)(HMONITOR, HDC, LPRECT, LPARAM); __declspec(dllimport) BOOL __stdcall EnumDisplayMonitors( HDC hdc, LPCRECT lprcClip, MONITORENUMPROC lpfnEnum, LPARAM dwData); /* * WinEvents - Active Accessibility hooks */ __declspec(dllimport) void __stdcall NotifyWinEvent( DWORD event, HWND hwnd, LONG idObject, LONG idChild); typedef void (__stdcall* WINEVENTPROC)( HWINEVENTHOOK hWinEventHook, DWORD event, HWND hwnd, LONG idObject, LONG idChild, DWORD idEventThread, DWORD dwmsEventTime); __declspec(dllimport) HWINEVENTHOOK __stdcall SetWinEventHook( DWORD eventMin, DWORD eventMax, HMODULE hmodWinEventProc, WINEVENTPROC pfnWinEventProc, DWORD idProcess, DWORD idThread, DWORD dwFlags); __declspec(dllimport) BOOL __stdcall IsWinEventHookInstalled( DWORD event); #line 11293 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * dwFlags for SetWinEventHook */ __declspec(dllimport) BOOL __stdcall UnhookWinEvent( HWINEVENTHOOK hWinEventHook); /* * idObject values for WinEventProc and NotifyWinEvent */ /* * hwnd + idObject can be used with OLEACC.DLL's OleGetObjectFromWindow() * to get an interface pointer to the container. indexChild is the item * within the container in question. Setup a VARIANT with vt VT_I4 and * lVal the indexChild and pass that in to all methods. Then you * are raring to go. */ /* * Common object IDs (cookies, only for sending WM_GETOBJECT to get at the * thing in question). Positive IDs are reserved for apps (app specific), * negative IDs are system things and are global, 0 means "just little old * me". */ /* * Reserved IDs for system objects */ /* * EVENT DEFINITION */ /* * EVENT_SYSTEM_SOUND * Sent when a sound is played. Currently nothing is generating this, we * this event when a system sound (for menus, etc) is played. Apps * generate this, if accessible, when a private sound is played. For * example, if Mail plays a "New Mail" sound. * * System Sounds: * (Generated by PlaySoundEvent in USER itself) * hwnd is NULL * idObject is OBJID_SOUND * idChild is sound child ID if one * App Sounds: * (PlaySoundEvent won't generate notification; up to app) * hwnd + idObject gets interface pointer to Sound object * idChild identifies the sound in question * are going to be cleaning up the SOUNDSENTRY feature in the control panel * and will use this at that time. Applications implementing WinEvents * are perfectly welcome to use it. Clients of IAccessible* will simply * turn around and get back a non-visual object that describes the sound. */ /* * EVENT_SYSTEM_ALERT * System Alerts: * (Generated by MessageBox() calls for example) * hwnd is hwndMessageBox * idObject is OBJID_ALERT * App Alerts: * (Generated whenever) * hwnd+idObject gets interface pointer to Alert */ /* * EVENT_SYSTEM_FOREGROUND * Sent when the foreground (active) window changes, even if it is changing * to another window in the same thread as the previous one. * hwnd is hwndNewForeground * idObject is OBJID_WINDOW * idChild is INDEXID_OBJECT */ /* * Menu * hwnd is window (top level window or popup menu window) * idObject is ID of control (OBJID_MENU, OBJID_SYSMENU, OBJID_SELF for popup) * idChild is CHILDID_SELF * * EVENT_SYSTEM_MENUSTART * EVENT_SYSTEM_MENUEND * For MENUSTART, hwnd+idObject+idChild refers to the control with the menu bar, * or the control bringing up the context menu. * * Sent when entering into and leaving from menu mode (system, app bar, and * track popups). */ /* * EVENT_SYSTEM_MENUPOPUPSTART * EVENT_SYSTEM_MENUPOPUPEND * Sent when a menu popup comes up and just before it is taken down. Note * that for a call to TrackPopupMenu(), a client will see EVENT_SYSTEM_MENUSTART * followed almost immediately by EVENT_SYSTEM_MENUPOPUPSTART for the popup * being shown. * * For MENUPOPUP, hwnd+idObject+idChild refers to the NEW popup coming up, not the * parent item which is hierarchical. You can get the parent menu/popup by * asking for the accParent object. */ /* * EVENT_SYSTEM_CAPTURESTART * EVENT_SYSTEM_CAPTUREEND * Sent when a window takes the capture and releases the capture. */ /* * Move Size * EVENT_SYSTEM_MOVESIZESTART * EVENT_SYSTEM_MOVESIZEEND * Sent when a window enters and leaves move-size dragging mode. */ /* * Context Help * EVENT_SYSTEM_CONTEXTHELPSTART * EVENT_SYSTEM_CONTEXTHELPEND * Sent when a window enters and leaves context sensitive help mode. */ /* * Drag & Drop * EVENT_SYSTEM_DRAGDROPSTART * EVENT_SYSTEM_DRAGDROPEND * Send the START notification just before going into drag&drop loop. Send * the END notification just after canceling out. * Note that it is up to apps and OLE to generate this, since the system * doesn't know. Like EVENT_SYSTEM_SOUND, it will be a while before this * is prevalent. */ /* * Dialog * Send the START notification right after the dialog is completely * initialized and visible. Send the END right before the dialog * is hidden and goes away. * EVENT_SYSTEM_DIALOGSTART * EVENT_SYSTEM_DIALOGEND */ /* * EVENT_SYSTEM_SCROLLING * EVENT_SYSTEM_SCROLLINGSTART * EVENT_SYSTEM_SCROLLINGEND * Sent when beginning and ending the tracking of a scrollbar in a window, * and also for scrollbar controls. */ /* * Alt-Tab Window * Send the START notification right after the switch window is initialized * and visible. Send the END right before it is hidden and goes away. * EVENT_SYSTEM_SWITCHSTART * EVENT_SYSTEM_SWITCHEND */ /* * EVENT_SYSTEM_MINIMIZESTART * EVENT_SYSTEM_MINIMIZEEND * Sent when a window minimizes and just before it restores. */ #line 11516 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Flags for EVENT_CONSOLE_START/END_APPLICATION. */ #line 11532 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 11534 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Flags for EVENT_CONSOLE_CARET */ #line 11541 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Object events * * The system AND apps generate these. The system generates these for * real windows. Apps generate these for objects within their window which * act like a separate control, e.g. an item in a list view. * * When the system generate them, dwParam2 is always WMOBJID_SELF. When * apps generate them, apps put the has-meaning-to-the-app-only ID value * in dwParam2. * For all events, if you want detailed accessibility information, callers * should * * Call AccessibleObjectFromWindow() with the hwnd, idObject parameters * of the event, and IID_IAccessible as the REFIID, to get back an * IAccessible* to talk to * * Initialize and fill in a VARIANT as VT_I4 with lVal the idChild * parameter of the event. * * If idChild isn't zero, call get_accChild() in the container to see * if the child is an object in its own right. If so, you will get * back an IDispatch* object for the child. You should release the * parent, and call QueryInterface() on the child object to get its * IAccessible*. Then you talk directly to the child. Otherwise, * if get_accChild() returns you nothing, you should continue to * use the child VARIANT. You will ask the container for the properties * of the child identified by the VARIANT. In other words, the * child in this case is accessible but not a full-blown object. * Like a button on a titlebar which is 'small' and has no children. */ /* * For all EVENT_OBJECT events, * hwnd is the dude to Send the WM_GETOBJECT message to (unless NULL, * see above for system things) * idObject is the ID of the object that can resolve any queries a * client might have. It's a way to deal with windowless controls, * controls that are just drawn on the screen in some larger parent * window (like SDM), or standard frame elements of a window. * idChild is the piece inside of the object that is affected. This * allows clients to access things that are too small to have full * blown objects in their own right. Like the thumb of a scrollbar. * The hwnd/idObject pair gets you to the container, the dude you * probably want to talk to most of the time anyway. The idChild * can then be passed into the acc properties to get the name/value * of it as needed. * * Example #1: * System propagating a listbox selection change * EVENT_OBJECT_SELECTION * hwnd == listbox hwnd * idObject == OBJID_WINDOW * idChild == new selected item, or CHILDID_SELF if * nothing now selected within container. * Word '97 propagating a listbox selection change * hwnd == SDM window * idObject == SDM ID to get at listbox 'control' * idChild == new selected item, or CHILDID_SELF if * nothing * * Example #2: * System propagating a menu item selection on the menu bar * EVENT_OBJECT_SELECTION * hwnd == top level window * idObject == OBJID_MENU * idChild == ID of child menu bar item selected * * Example #3: * System propagating a dropdown coming off of said menu bar item * EVENT_OBJECT_CREATE * hwnd == popup item * idObject == OBJID_WINDOW * idChild == CHILDID_SELF * * Example #4: * * For EVENT_OBJECT_REORDER, the object referred to by hwnd/idObject is the * PARENT container in which the zorder is occurring. This is because if * one child is zordering, all of them are changing their relative zorder. */ /* * NOTE: * Minimize the number of notifications! * * When you are hiding a parent object, obviously all child objects are no * longer visible on screen. They still have the same "visible" status, * but are not truly visible. Hence do not send HIDE notifications for the * children also. One implies all. The same goes for SHOW. */ /* * NOTES: * There is only one "focused" child item in a parent. This is the place * keystrokes are going at a given moment. Hence only send a notification * about where the NEW focus is going. A NEW item getting the focus already * implies that the OLD item is losing it. * * SELECTION however can be multiple. Hence the different SELECTION * notifications. Here's when to use each: * * (1) Send a SELECTION notification in the simple single selection * case (like the focus) when the item with the selection is * merely moving to a different item within a container. hwnd + ID * is the container control, idChildItem is the new child with the * selection. * * (2) Send a SELECTIONADD notification when a new item has simply been added * to the selection within a container. This is appropriate when the * number of newly selected items is very small. hwnd + ID is the * container control, idChildItem is the new child added to the selection. * * (3) Send a SELECTIONREMOVE notification when a new item has simply been * removed from the selection within a container. This is appropriate * when the number of newly selected items is very small, just like * SELECTIONADD. hwnd + ID is the container control, idChildItem is the * new child removed from the selection. * * (4) Send a SELECTIONWITHIN notification when the selected items within a * control have changed substantially. Rather than propagate a large * number of changes to reflect removal for some items, addition of * others, just tell somebody who cares that a lot happened. It will * be faster an easier for somebody watching to just turn around and * query the container control what the new bunch of selected items * are. */ /* * Examples of when to send an EVENT_OBJECT_STATECHANGE include * * It is being enabled/disabled (USER does for windows) * * It is being pressed/released (USER does for buttons) * * It is being checked/unchecked (USER does for radio/check buttons) */ /* * Note: * A LOCATIONCHANGE is not sent for every child object when the parent * changes shape/moves. Send one notification for the topmost object * that is changing. For example, if the user resizes a top level window, * USER will generate a LOCATIONCHANGE for it, but not for the menu bar, * title bar, scrollbars, etc. that are also changing shape/moving. * * In other words, it only generates LOCATIONCHANGE notifications for * real windows that are moving/sizing. It will not generate a LOCATIONCHANGE * for every non-floating child window when the parent moves (the children are * logically moving also on screen, but not relative to the parent). * * Now, if the app itself resizes child windows as a result of being * sized, USER will generate LOCATIONCHANGEs for those dudes also because * it doesn't know better. * * Note also that USER will generate LOCATIONCHANGE notifications for two * non-window sys objects: * (1) System caret * (2) Cursor */ #line 11740 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Child IDs */ /* * System Sounds (idChild of system SOUND notification) */ /* * System Alerts (indexChild of system ALERT notification) */ typedef struct tagGUITHREADINFO { DWORD cbSize; DWORD flags; HWND hwndActive; HWND hwndFocus; HWND hwndCapture; HWND hwndMenuOwner; HWND hwndMoveSize; HWND hwndCaret; RECT rcCaret; } GUITHREADINFO, *PGUITHREADINFO, * LPGUITHREADINFO; #line 11798 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 11800 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 11801 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall GetGUIThreadInfo( DWORD idThread, PGUITHREADINFO pgui); __declspec(dllimport) BOOL __stdcall BlockInput( BOOL fBlockIt); #line 11831 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) UINT __stdcall GetWindowModuleFileNameA( HWND hwnd, LPSTR pszFileName, UINT cchFileNameMax); __declspec(dllimport) UINT __stdcall GetWindowModuleFileNameW( HWND hwnd, LPWSTR pszFileName, UINT cchFileNameMax); #line 11851 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 11886 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Information about the global cursor. */ typedef struct tagCURSORINFO { DWORD cbSize; DWORD flags; HCURSOR hCursor; POINT ptScreenPos; } CURSORINFO, *PCURSORINFO, *LPCURSORINFO; __declspec(dllimport) BOOL __stdcall GetCursorInfo( PCURSORINFO pci); /* * Window information snapshot */ typedef struct tagWINDOWINFO { DWORD cbSize; RECT rcWindow; RECT rcClient; DWORD dwStyle; DWORD dwExStyle; DWORD dwWindowStatus; UINT cxWindowBorders; UINT cyWindowBorders; ATOM atomWindowType; WORD wCreatorVersion; } WINDOWINFO, *PWINDOWINFO, *LPWINDOWINFO; __declspec(dllimport) BOOL __stdcall GetWindowInfo( HWND hwnd, PWINDOWINFO pwi); /* * Titlebar information. */ typedef struct tagTITLEBARINFO { DWORD cbSize; RECT rcTitleBar; DWORD rgstate[5 + 1]; } TITLEBARINFO, *PTITLEBARINFO, *LPTITLEBARINFO; __declspec(dllimport) BOOL __stdcall GetTitleBarInfo( HWND hwnd, PTITLEBARINFO pti); #line 11961 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Menubar information */ typedef struct tagMENUBARINFO { DWORD cbSize; RECT rcBar; // rect of bar, popup, item HMENU hMenu; // real menu handle of bar, popup HWND hwndMenu; // hwnd of item submenu if one BOOL fBarFocused:1; // bar, popup has the focus BOOL fFocused:1; // item has the focus } MENUBARINFO, *PMENUBARINFO, *LPMENUBARINFO; __declspec(dllimport) BOOL __stdcall GetMenuBarInfo( HWND hwnd, LONG idObject, LONG idItem, PMENUBARINFO pmbi); /* * Scrollbar information */ typedef struct tagSCROLLBARINFO { DWORD cbSize; RECT rcScrollBar; int dxyLineButton; int xyThumbTop; int xyThumbBottom; int reserved; DWORD rgstate[5 + 1]; } SCROLLBARINFO, *PSCROLLBARINFO, *LPSCROLLBARINFO; __declspec(dllimport) BOOL __stdcall GetScrollBarInfo( HWND hwnd, LONG idObject, PSCROLLBARINFO psbi); /* * Combobox information */ typedef struct tagCOMBOBOXINFO { DWORD cbSize; RECT rcItem; RECT rcButton; DWORD stateButton; HWND hwndCombo; HWND hwndItem; HWND hwndList; } COMBOBOXINFO, *PCOMBOBOXINFO, *LPCOMBOBOXINFO; __declspec(dllimport) BOOL __stdcall GetComboBoxInfo( HWND hwndCombo, PCOMBOBOXINFO pcbi); /* * The "real" ancestor window */ __declspec(dllimport) HWND __stdcall GetAncestor( HWND hwnd, UINT gaFlags); /* * This gets the REAL child window at the point. If it is in the dead * space of a group box, it will try a sibling behind it. But static * fields will get returned. In other words, it is kind of a cross between * ChildWindowFromPointEx and WindowFromPoint. */ __declspec(dllimport) HWND __stdcall RealChildWindowFromPoint( HWND hwndParent, POINT ptParentClientCoords); /* * This gets the name of the window TYPE, not class. This allows us to * recognize ThunderButton32 et al. */ __declspec(dllimport) UINT __stdcall RealGetWindowClassA( HWND hwnd, LPSTR ptszClassName, UINT cchClassNameMax); /* * This gets the name of the window TYPE, not class. This allows us to * recognize ThunderButton32 et al. */ __declspec(dllimport) UINT __stdcall RealGetWindowClassW( HWND hwnd, LPWSTR ptszClassName, UINT cchClassNameMax); #line 12083 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Alt-Tab Switch window information. */ typedef struct tagALTTABINFO { DWORD cbSize; int cItems; int cColumns; int cRows; int iColFocus; int iRowFocus; int cxItem; int cyItem; POINT ptStart; } ALTTABINFO, *PALTTABINFO, *LPALTTABINFO; __declspec(dllimport) BOOL __stdcall GetAltTabInfoA( HWND hwnd, int iItem, PALTTABINFO pati, LPSTR pszItemText, UINT cchItemText); __declspec(dllimport) BOOL __stdcall GetAltTabInfoW( HWND hwnd, int iItem, PALTTABINFO pati, LPWSTR pszItemText, UINT cchItemText); #line 12123 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Listbox information. * Returns the number of items per row. */ __declspec(dllimport) DWORD __stdcall GetListBoxInfo( HWND hwnd); #line 12135 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 12136 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall LockWorkStation( void); #line 12145 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall UserHandleGrantAccess( HANDLE hUserHandle, HANDLE hJob, BOOL bGrant); #line 12157 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Raw Input Messages. */ struct HRAWINPUT__ { int unused; }; typedef struct HRAWINPUT__ *HRAWINPUT; /* * WM_INPUT wParam */ /* * Use this macro to get the input code from wParam. */ /* * The input is in the regular message flow, * the app is required to call DefWindowProc * so that the system can perform clean ups. */ /* * The input is sink only. The app is expected * to behave nicely. */ /* * Raw Input data header */ typedef struct tagRAWINPUTHEADER { DWORD dwType; DWORD dwSize; HANDLE hDevice; WPARAM wParam; } RAWINPUTHEADER, *PRAWINPUTHEADER, *LPRAWINPUTHEADER; /* * Type of the raw input */ /* * Raw format of the mouse input */ typedef struct tagRAWMOUSE { /* * Indicator flags. */ USHORT usFlags; /* * The transition state of the mouse buttons. */ union { ULONG ulButtons; struct { USHORT usButtonFlags; USHORT usButtonData; }; }; /* * The raw state of the mouse buttons. */ ULONG ulRawButtons; /* * The signed relative or absolute motion in the X direction. */ LONG lLastX; /* * The signed relative or absolute motion in the Y direction. */ LONG lLastY; /* * Device-specific additional information for the event. */ ULONG ulExtraInformation; } RAWMOUSE, *PRAWMOUSE, *LPRAWMOUSE; /* * Define the mouse button state indicators. */ /* * If usButtonFlags has RI_MOUSE_WHEEL, the wheel delta is stored in usButtonData. * Take it as a signed value. */ /* * Define the mouse indicator flags. */ #line 12288 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Raw format of the keyboard input */ typedef struct tagRAWKEYBOARD { /* * The "make" scan code (key depression). */ USHORT MakeCode; /* * The flags field indicates a "break" (key release) and other * miscellaneous scan code information defined in ntddkbd.h. */ USHORT Flags; USHORT Reserved; /* * Windows message compatible information */ USHORT VKey; UINT Message; /* * Device-specific additional information for the event. */ ULONG ExtraInformation; } RAWKEYBOARD, *PRAWKEYBOARD, *LPRAWKEYBOARD; /* * Define the keyboard overrun MakeCode. */ /* * Define the keyboard input data Flags. */ /* * Raw format of the input from Human Input Devices */ typedef struct tagRAWHID { DWORD dwSizeHid; // byte size of each report DWORD dwCount; // number of input packed BYTE bRawData[1]; } RAWHID, *PRAWHID, *LPRAWHID; /* * RAWINPUT data structure. */ typedef struct tagRAWINPUT { RAWINPUTHEADER header; union { RAWMOUSE mouse; RAWKEYBOARD keyboard; RAWHID hid; } data; } RAWINPUT, *PRAWINPUT, *LPRAWINPUT; #line 12364 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Flags for GetRawInputData */ __declspec(dllimport) UINT __stdcall GetRawInputData( HRAWINPUT hRawInput, UINT uiCommand, LPVOID pData, PUINT pcbSize, UINT cbSizeHeader); /* * Raw Input Device Information */ typedef struct tagRID_DEVICE_INFO_MOUSE { DWORD dwId; DWORD dwNumberOfButtons; DWORD dwSampleRate; BOOL fHasHorizontalWheel; } RID_DEVICE_INFO_MOUSE, *PRID_DEVICE_INFO_MOUSE; typedef struct tagRID_DEVICE_INFO_KEYBOARD { DWORD dwType; DWORD dwSubType; DWORD dwKeyboardMode; DWORD dwNumberOfFunctionKeys; DWORD dwNumberOfIndicators; DWORD dwNumberOfKeysTotal; } RID_DEVICE_INFO_KEYBOARD, *PRID_DEVICE_INFO_KEYBOARD; typedef struct tagRID_DEVICE_INFO_HID { DWORD dwVendorId; DWORD dwProductId; DWORD dwVersionNumber; /* * Top level collection UsagePage and Usage */ USHORT usUsagePage; USHORT usUsage; } RID_DEVICE_INFO_HID, *PRID_DEVICE_INFO_HID; typedef struct tagRID_DEVICE_INFO { DWORD cbSize; DWORD dwType; union { RID_DEVICE_INFO_MOUSE mouse; RID_DEVICE_INFO_KEYBOARD keyboard; RID_DEVICE_INFO_HID hid; }; } RID_DEVICE_INFO, *PRID_DEVICE_INFO, *LPRID_DEVICE_INFO; __declspec(dllimport) UINT __stdcall GetRawInputDeviceInfoA( HANDLE hDevice, UINT uiCommand, LPVOID pData, PUINT pcbSize); __declspec(dllimport) UINT __stdcall GetRawInputDeviceInfoW( HANDLE hDevice, UINT uiCommand, LPVOID pData, PUINT pcbSize); #line 12450 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Raw Input Bulk Read: GetRawInputBuffer */ __declspec(dllimport) UINT __stdcall GetRawInputBuffer( PRAWINPUT pData, PUINT pcbSize, UINT cbSizeHeader); /* * Raw Input request APIs */ typedef struct tagRAWINPUTDEVICE { USHORT usUsagePage; // Toplevel collection UsagePage USHORT usUsage; // Toplevel collection Usage DWORD dwFlags; HWND hwndTarget; // Target hwnd. NULL = follows keyboard focus } RAWINPUTDEVICE, *PRAWINPUTDEVICE, *LPRAWINPUTDEVICE; typedef const RAWINPUTDEVICE* PCRAWINPUTDEVICE; #line 12487 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" /* * Flags for the WM_INPUT_DEVICE_CHANGE message. */ #line 12499 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall RegisterRawInputDevices( PCRAWINPUTDEVICE pRawInputDevices, UINT uiNumDevices, UINT cbSize); __declspec(dllimport) UINT __stdcall GetRegisteredRawInputDevices( PRAWINPUTDEVICE pRawInputDevices, PUINT puiNumDevices, UINT cbSize); typedef struct tagRAWINPUTDEVICELIST { HANDLE hDevice; DWORD dwType; } RAWINPUTDEVICELIST, *PRAWINPUTDEVICELIST; __declspec(dllimport) UINT __stdcall GetRawInputDeviceList( PRAWINPUTDEVICELIST pRawInputDeviceList, PUINT puiNumDevices, UINT cbSize); __declspec(dllimport) LRESULT __stdcall DefRawInputProc( PRAWINPUT* paRawInput, INT nInput, UINT cbSizeHeader); #line 12539 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 12552 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" __declspec(dllimport) BOOL __stdcall ShutdownBlockReasonCreate( HWND hWnd, LPCWSTR pwszReason); __declspec(dllimport) BOOL __stdcall ShutdownBlockReasonQuery( HWND hWnd, LPWSTR pwszBuff, DWORD *pcchBuff); __declspec(dllimport) BOOL __stdcall ShutdownBlockReasonDestroy( HWND hWnd); #line 12583 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 12584 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" } #line 12588 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 12590 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winuser.h" #line 159 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windows.h" #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" /*++ Copyright (c) Microsoft Corporation All rights reserved. Module Name: winnls.h Abstract: Procedure declarations, constant definitions, and macros for the NLS component. --*/ extern "C" { #line 24 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" #line 38 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" //////////////////////////////////////////////////////////////////////////// // // Constants // // Define all constants for the NLS component here. // //////////////////////////////////////////////////////////////////////////// // // String Length Maximums. // // // Surrogate pairs // // Conversion examples: // // A) The first character in the Surrogate range (D800, DC00) as UTF-32: // // 1. D800: binary 1101100000000000 (lower ten bits: 0000000000) // 2. DC00: binary 1101110000000000 (lower ten bits: 0000000000) // 3. Concatenate 0000000000+0000000000 = 0x0000 // 4. Add 0x10000 // // Result: U+10000. This is correct, since the first character in the Supplementary character // range immediately follows the last code point in the 16-bit UTF-16 range (U+FFFF) // // B) A UTF-32 code point such as U+2040A (this a CJK character in CJK Extension B), and wish // to convert it in UTF-16: // // 1. Subtract 0x10000 - Result: 0x1040A // 2. Split into two ten-bit pieces: 0001000001 0000001010 // 3. Add 1101100000000000 (0xD800) to the high 10 bits piece (0001000001) - Result: 1101100001000001 (0xD841) // 4. Add 1101110000000000 (0xDC00) to the low 10 bits piece (0000001010) - Result: 1101110000001010 (0xDC0A) // // RESULT: The surrogate pair: U+D841, U+DC0A // // Special Unicode code point values, for use with UTF-16 surrogate pairs. // // // MBCS and Unicode Translation Flags. // #line 103 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" #line 107 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" // // Character Type Flags. // // // CType 1 Flag Bits. // // // CType 2 Flag Bits. // // // CType 3 Flag Bits. // // // String Flags. // // // Locale Independent Mapping Flags. // #line 198 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" // // Locale Dependent Mapping Flags. // // // Search Flags // // // Language Group Enumeration Flags. // // // Locale Enumeration Flags. // #line 252 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" // // Code Page Enumeration Flags. // // // Sorting Flags. // // WORD Sort: culturally correct sort // hyphen and apostrophe are special cased // example: "coop" and "co-op" will sort together in a list // // co_op <------- underscore (symbol) // coat // comb // coop // co-op <------- hyphen (punctuation) // cork // went // were // we're <------- apostrophe (punctuation) // // // STRING Sort: hyphen and apostrophe will sort with all other symbols // // co-op <------- hyphen (punctuation) // co_op <------- underscore (symbol) // coat // comb // coop // cork // we're <------- apostrophe (punctuation) // went // were // // // Compare String Return Values. // // // Code Page Default Values. // // // Country/Region Codes. // // // Locale Types. // // These types are used for the GetLocaleInfo NLS API routine. // Some of these types are also used for the SetLocaleInfo NLS API routine. // // // The following LCTypes may be used in combination with any other LCTypes. // // LOCALE_NOUSEROVERRIDE is also used in GetTimeFormat and // GetDateFormat. // // LOCALE_USE_CP_ACP is used in many of the A (Ansi) apis that need // to do string translation. // // LOCALE_RETURN_NUMBER will return the result from GetLocaleInfo as a // number instead of a string. This flag is only valid for the LCTypes // beginning with LOCALE_I. // #line 458 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" // // The following LCTypes are mutually exclusive in that they may NOT // be used in combination with each other. // #line 579 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" #line 590 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" #line 612 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" // // Time Flags for GetTimeFormat. // // // Date Flags for GetDateFormat. // #line 635 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" // // Calendar Types. // // These types are used for the EnumCalendarInfo and GetCalendarInfo // NLS API routines. // Some of these types are also used for the SetCalendarInfo NLS API // routine. // // // The following CalTypes may be used in combination with any other CalTypes. // // CAL_NOUSEROVERRIDE // // CAL_USE_CP_ACP is used in the A (Ansi) apis that need to do string // translation. // // CAL_RETURN_NUMBER will return the result from GetCalendarInfo as a // number instead of a string. This flag is only valid for the CalTypes // beginning with CAL_I. // #line 662 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" // // The following CalTypes are mutually exclusive in that they may NOT // be used in combination with each other. // #line 718 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" #line 728 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" // // Calendar Enumeration Value. // // // Calendar ID Values. // // // Language Group ID Values. // #line 824 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" //////////////////////////////////////////////////////////////////////////// // // Typedefs // // Define all types for the NLS component here. // //////////////////////////////////////////////////////////////////////////// // // Language Group ID. // typedef DWORD LGRPID; // // Locale type constant. // typedef DWORD LCTYPE; // // Calendar type constant. // typedef DWORD CALTYPE; // // Calendar ID. // typedef DWORD CALID; // // CP Info. // typedef struct _cpinfo { UINT MaxCharSize; // max length (in bytes) of a char BYTE DefaultChar[2]; // default character BYTE LeadByte[12]; // lead byte ranges } CPINFO, *LPCPINFO; typedef struct _cpinfoexA { UINT MaxCharSize; // max length (in bytes) of a char BYTE DefaultChar[2]; // default character (MB) BYTE LeadByte[12]; // lead byte ranges WCHAR UnicodeDefaultChar; // default character (Unicode) UINT CodePage; // code page id CHAR CodePageName[260]; // code page name (Unicode) } CPINFOEXA, *LPCPINFOEXA; typedef struct _cpinfoexW { UINT MaxCharSize; // max length (in bytes) of a char BYTE DefaultChar[2]; // default character (MB) BYTE LeadByte[12]; // lead byte ranges WCHAR UnicodeDefaultChar; // default character (Unicode) UINT CodePage; // code page id WCHAR CodePageName[260]; // code page name (Unicode) } CPINFOEXW, *LPCPINFOEXW; typedef CPINFOEXW CPINFOEX; typedef LPCPINFOEXW LPCPINFOEX; #line 890 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" // // Number format. // typedef struct _numberfmtA { UINT NumDigits; // number of decimal digits UINT LeadingZero; // if leading zero in decimal fields UINT Grouping; // group size left of decimal LPSTR lpDecimalSep; // ptr to decimal separator string LPSTR lpThousandSep; // ptr to thousand separator string UINT NegativeOrder; // negative number ordering } NUMBERFMTA, *LPNUMBERFMTA; typedef struct _numberfmtW { UINT NumDigits; // number of decimal digits UINT LeadingZero; // if leading zero in decimal fields UINT Grouping; // group size left of decimal LPWSTR lpDecimalSep; // ptr to decimal separator string LPWSTR lpThousandSep; // ptr to thousand separator string UINT NegativeOrder; // negative number ordering } NUMBERFMTW, *LPNUMBERFMTW; typedef NUMBERFMTW NUMBERFMT; typedef LPNUMBERFMTW LPNUMBERFMT; #line 919 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" // // Currency format. // typedef struct _currencyfmtA { UINT NumDigits; // number of decimal digits UINT LeadingZero; // if leading zero in decimal fields UINT Grouping; // group size left of decimal LPSTR lpDecimalSep; // ptr to decimal separator string LPSTR lpThousandSep; // ptr to thousand separator string UINT NegativeOrder; // negative currency ordering UINT PositiveOrder; // positive currency ordering LPSTR lpCurrencySymbol; // ptr to currency symbol string } CURRENCYFMTA, *LPCURRENCYFMTA; typedef struct _currencyfmtW { UINT NumDigits; // number of decimal digits UINT LeadingZero; // if leading zero in decimal fields UINT Grouping; // group size left of decimal LPWSTR lpDecimalSep; // ptr to decimal separator string LPWSTR lpThousandSep; // ptr to thousand separator string UINT NegativeOrder; // negative currency ordering UINT PositiveOrder; // positive currency ordering LPWSTR lpCurrencySymbol; // ptr to currency symbol string } CURRENCYFMTW, *LPCURRENCYFMTW; typedef CURRENCYFMTW CURRENCYFMT; typedef LPCURRENCYFMTW LPCURRENCYFMT; #line 952 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" // // NLS function capabilities // enum SYSNLS_FUNCTION{ COMPARE_STRING = 0x0001, }; typedef DWORD NLS_FUNCTION; // // NLS version structure. // typedef struct _nlsversioninfo{ DWORD dwNLSVersionInfoSize; // 12 bytes DWORD dwNLSVersion; DWORD dwDefinedVersion; } NLSVERSIONINFO, *LPNLSVERSIONINFO; typedef struct _nlsversioninfoex{ DWORD dwNLSVersionInfoSize; // sizeof(NLSVERSIONINFOEX) == 32 bytes DWORD dwNLSVersion; DWORD dwDefinedVersion; DWORD dwEffectiveId; GUID guidCustomVersion; } NLSVERSIONINFOEX, *LPNLSVERSIONINFOEX; // // GEO defines // typedef LONG GEOID; typedef DWORD GEOTYPE; typedef DWORD GEOCLASS; // // GEO information types for clients to query // enum SYSGEOTYPE { GEO_NATION = 0x0001, GEO_LATITUDE = 0x0002, GEO_LONGITUDE = 0x0003, GEO_ISO2 = 0x0004, GEO_ISO3 = 0x0005, GEO_RFC1766 = 0x0006, GEO_LCID = 0x0007, GEO_FRIENDLYNAME= 0x0008, GEO_OFFICIALNAME= 0x0009, GEO_TIMEZONES = 0x000A, GEO_OFFICIALLANGUAGES = 0x000B, }; // // More GEOCLASS defines will be listed here // enum SYSGEOCLASS { GEOCLASS_NATION = 16, GEOCLASS_REGION = 14, }; #line 1043 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" // // Enumeration function constants. // typedef BOOL (__stdcall* LANGUAGEGROUP_ENUMPROCA)(LGRPID, LPSTR, LPSTR, DWORD, LONG_PTR); typedef BOOL (__stdcall* LANGGROUPLOCALE_ENUMPROCA)(LGRPID, LCID, LPSTR, LONG_PTR); typedef BOOL (__stdcall* UILANGUAGE_ENUMPROCA)(LPSTR, LONG_PTR); typedef BOOL (__stdcall* LOCALE_ENUMPROCA)(LPSTR); typedef BOOL (__stdcall* CODEPAGE_ENUMPROCA)(LPSTR); typedef BOOL (__stdcall* DATEFMT_ENUMPROCA)(LPSTR); typedef BOOL (__stdcall* DATEFMT_ENUMPROCEXA)(LPSTR, CALID); typedef BOOL (__stdcall* TIMEFMT_ENUMPROCA)(LPSTR); typedef BOOL (__stdcall* CALINFO_ENUMPROCA)(LPSTR); typedef BOOL (__stdcall* CALINFO_ENUMPROCEXA)(LPSTR, CALID); typedef BOOL (__stdcall* LANGUAGEGROUP_ENUMPROCW)(LGRPID, LPWSTR, LPWSTR, DWORD, LONG_PTR); typedef BOOL (__stdcall* LANGGROUPLOCALE_ENUMPROCW)(LGRPID, LCID, LPWSTR, LONG_PTR); typedef BOOL (__stdcall* UILANGUAGE_ENUMPROCW)(LPWSTR, LONG_PTR); typedef BOOL (__stdcall* LOCALE_ENUMPROCW)(LPWSTR); typedef BOOL (__stdcall* CODEPAGE_ENUMPROCW)(LPWSTR); typedef BOOL (__stdcall* DATEFMT_ENUMPROCW)(LPWSTR); typedef BOOL (__stdcall* DATEFMT_ENUMPROCEXW)(LPWSTR, CALID); typedef BOOL (__stdcall* TIMEFMT_ENUMPROCW)(LPWSTR); typedef BOOL (__stdcall* CALINFO_ENUMPROCW)(LPWSTR); typedef BOOL (__stdcall* CALINFO_ENUMPROCEXW)(LPWSTR, CALID); typedef BOOL (__stdcall* GEO_ENUMPROC)(GEOID); #line 1099 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" #line 1127 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" // // Information about a MUI file, used as input/output in GetFileMUIInfo // All offsets are relative to start of the structure. Offsets with value 0 mean empty field. // typedef struct _FILEMUIINFO { DWORD dwSize; // Size of the structure including buffer size [in] DWORD dwVersion; // Version of the structure [in] DWORD dwFileType; // Type of the file [out] BYTE pChecksum[16]; // Checksum of the file [out] BYTE pServiceChecksum[16]; // Checksum of the file [out] DWORD dwLanguageNameOffset; // Language name of the file [out] DWORD dwTypeIDMainSize; // Number of TypeIDs in main module [out] DWORD dwTypeIDMainOffset; // Array of TypeIDs (DWORD) in main module [out] DWORD dwTypeNameMainOffset; // Multistring array of TypeNames in main module [out] DWORD dwTypeIDMUISize; // Number of TypeIDs in MUI module [out] DWORD dwTypeIDMUIOffset; // Array of TypeIDs (DWORD) in MUI module [out] DWORD dwTypeNameMUIOffset; // Multistring array of TypeNames in MUI module [out] BYTE abBuffer[8]; // Buffer for extra data [in] (Size 4 is for padding) } FILEMUIINFO, *PFILEMUIINFO; //////////////////////////////////////////////////////////////////////////// // // Macros // // Define all macros for the NLS component here. // //////////////////////////////////////////////////////////////////////////// // // Macros to determine whether a character is a high or low surrogate, // and whether two code points make up a surrogate pair (a high surrogate // and a low surrogate). // // ---------------------------------------------------------------------- // The following macros retrieve information from a MUIFILEINFO structure // // Gets the culture name (LPWSTR), NULL if not initialized // // Gets the main module types array (DWORD[]), NULL if not initialized // // Gets the main module type array element iType (DWORD), the array is not initialized or index is out of bounds // // Gets the main module names multistring array (LPWSTR), NULL if not initialized // // Gets the mui module types array (DWORD[]), NULL if not initialized // // Gets the mui module type array element iType (DWORD), the array is not initialized or index is out of bounds // // Gets the mui module names multistring array (LPWSTR), NULL if not initialized // ------------------------------------------------------------------------ //////////////////////////////////////////////////////////////////////////// // // Function Prototypes // // Only prototypes for the NLS APIs should go here. // //////////////////////////////////////////////////////////////////////////// // // Code Page Dependent APIs. // __declspec(dllimport) BOOL __stdcall IsValidCodePage( UINT CodePage); __declspec(dllimport) UINT __stdcall GetACP(void); __declspec(dllimport) UINT __stdcall GetOEMCP(void); __declspec(dllimport) BOOL __stdcall GetCPInfo( UINT CodePage, LPCPINFO lpCPInfo); __declspec(dllimport) BOOL __stdcall GetCPInfoExA( UINT CodePage, DWORD dwFlags, LPCPINFOEXA lpCPInfoEx); __declspec(dllimport) BOOL __stdcall GetCPInfoExW( UINT CodePage, DWORD dwFlags, LPCPINFOEXW lpCPInfoEx); #line 1255 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" __declspec(dllimport) BOOL __stdcall IsDBCSLeadByte( BYTE TestChar); __declspec(dllimport) BOOL __stdcall IsDBCSLeadByteEx( UINT CodePage, BYTE TestChar); __declspec(dllimport) int __stdcall MultiByteToWideChar( UINT CodePage, DWORD dwFlags, LPCSTR lpMultiByteStr, int cbMultiByte, LPWSTR lpWideCharStr, int cchWideChar); __declspec(dllimport) int __stdcall WideCharToMultiByte( UINT CodePage, DWORD dwFlags, LPCWSTR lpWideCharStr, int cchWideChar, LPSTR lpMultiByteStr, int cbMultiByte, LPCSTR lpDefaultChar, LPBOOL lpUsedDefaultChar); // // Locale Dependent APIs. // __declspec(dllimport) int __stdcall CompareStringA( LCID Locale, DWORD dwCmpFlags, LPCSTR lpString1, int cchCount1, LPCSTR lpString2, int cchCount2); __declspec(dllimport) int __stdcall CompareStringW( LCID Locale, DWORD dwCmpFlags, LPCWSTR lpString1, int cchCount1, LPCWSTR lpString2, int cchCount2); #line 1323 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" #line 1351 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" #line 1367 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" __declspec(dllimport) int __stdcall LCMapStringA( LCID Locale, DWORD dwMapFlags, LPCSTR lpSrcStr, int cchSrc, LPSTR lpDestStr, int cchDest); __declspec(dllimport) int __stdcall LCMapStringW( LCID Locale, DWORD dwMapFlags, LPCWSTR lpSrcStr, int cchSrc, LPWSTR lpDestStr, int cchDest); #line 1393 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" __declspec(dllimport) int __stdcall GetLocaleInfoA( LCID Locale, LCTYPE LCType, LPSTR lpLCData, int cchData); __declspec(dllimport) int __stdcall GetLocaleInfoW( LCID Locale, LCTYPE LCType, LPWSTR lpLCData, int cchData); #line 1415 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" __declspec(dllimport) BOOL __stdcall SetLocaleInfoA( LCID Locale, LCTYPE LCType, LPCSTR lpLCData); __declspec(dllimport) BOOL __stdcall SetLocaleInfoW( LCID Locale, LCTYPE LCType, LPCWSTR lpLCData); #line 1435 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" __declspec(dllimport) int __stdcall GetCalendarInfoA( LCID Locale, CALID Calendar, CALTYPE CalType, LPSTR lpCalData, int cchData, LPDWORD lpValue); __declspec(dllimport) int __stdcall GetCalendarInfoW( LCID Locale, CALID Calendar, CALTYPE CalType, LPWSTR lpCalData, int cchData, LPDWORD lpValue); #line 1462 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" __declspec(dllimport) BOOL __stdcall SetCalendarInfoA( LCID Locale, CALID Calendar, CALTYPE CalType, LPCSTR lpCalData); __declspec(dllimport) BOOL __stdcall SetCalendarInfoW( LCID Locale, CALID Calendar, CALTYPE CalType, LPCWSTR lpCalData); #line 1484 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" #line 1485 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" #line 1504 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" __declspec(dllimport) int __stdcall GetTimeFormatA( LCID Locale, DWORD dwFlags, const SYSTEMTIME *lpTime, LPCSTR lpFormat, LPSTR lpTimeStr, int cchTime); __declspec(dllimport) int __stdcall GetTimeFormatW( LCID Locale, DWORD dwFlags, const SYSTEMTIME *lpTime, LPCWSTR lpFormat, LPWSTR lpTimeStr, int cchTime); #line 1530 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" #line 1545 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" __declspec(dllimport) int __stdcall GetDateFormatA( LCID Locale, DWORD dwFlags, const SYSTEMTIME *lpDate, LPCSTR lpFormat, LPSTR lpDateStr, int cchDate); __declspec(dllimport) int __stdcall GetDateFormatW( LCID Locale, DWORD dwFlags, const SYSTEMTIME *lpDate, LPCWSTR lpFormat, LPWSTR lpDateStr, int cchDate); #line 1571 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" __declspec(dllimport) int __stdcall GetNumberFormatA( LCID Locale, DWORD dwFlags, LPCSTR lpValue, const NUMBERFMTA *lpFormat, LPSTR lpNumberStr, int cchNumber); __declspec(dllimport) int __stdcall GetNumberFormatW( LCID Locale, DWORD dwFlags, LPCWSTR lpValue, const NUMBERFMTW *lpFormat, LPWSTR lpNumberStr, int cchNumber); #line 1597 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" __declspec(dllimport) int __stdcall GetCurrencyFormatA( LCID Locale, DWORD dwFlags, LPCSTR lpValue, const CURRENCYFMTA *lpFormat, LPSTR lpCurrencyStr, int cchCurrency); __declspec(dllimport) int __stdcall GetCurrencyFormatW( LCID Locale, DWORD dwFlags, LPCWSTR lpValue, const CURRENCYFMTW *lpFormat, LPWSTR lpCurrencyStr, int cchCurrency); #line 1623 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" __declspec(dllimport) BOOL __stdcall EnumCalendarInfoA( CALINFO_ENUMPROCA lpCalInfoEnumProc, LCID Locale, CALID Calendar, CALTYPE CalType); __declspec(dllimport) BOOL __stdcall EnumCalendarInfoW( CALINFO_ENUMPROCW lpCalInfoEnumProc, LCID Locale, CALID Calendar, CALTYPE CalType); #line 1645 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" __declspec(dllimport) BOOL __stdcall EnumCalendarInfoExA( CALINFO_ENUMPROCEXA lpCalInfoEnumProcEx, LCID Locale, CALID Calendar, CALTYPE CalType); __declspec(dllimport) BOOL __stdcall EnumCalendarInfoExW( CALINFO_ENUMPROCEXW lpCalInfoEnumProcEx, LCID Locale, CALID Calendar, CALTYPE CalType); #line 1668 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" #line 1669 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" __declspec(dllimport) BOOL __stdcall EnumTimeFormatsA( TIMEFMT_ENUMPROCA lpTimeFmtEnumProc, LCID Locale, DWORD dwFlags); __declspec(dllimport) BOOL __stdcall EnumTimeFormatsW( TIMEFMT_ENUMPROCW lpTimeFmtEnumProc, LCID Locale, DWORD dwFlags); #line 1689 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" __declspec(dllimport) BOOL __stdcall EnumDateFormatsA( DATEFMT_ENUMPROCA lpDateFmtEnumProc, LCID Locale, DWORD dwFlags); __declspec(dllimport) BOOL __stdcall EnumDateFormatsW( DATEFMT_ENUMPROCW lpDateFmtEnumProc, LCID Locale, DWORD dwFlags); #line 1709 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" __declspec(dllimport) BOOL __stdcall EnumDateFormatsExA( DATEFMT_ENUMPROCEXA lpDateFmtEnumProcEx, LCID Locale, DWORD dwFlags); __declspec(dllimport) BOOL __stdcall EnumDateFormatsExW( DATEFMT_ENUMPROCEXW lpDateFmtEnumProcEx, LCID Locale, DWORD dwFlags); #line 1730 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" #line 1731 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" __declspec(dllimport) BOOL __stdcall IsValidLanguageGroup( LGRPID LanguageGroup, DWORD dwFlags); #line 1740 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" __declspec(dllimport) BOOL __stdcall GetNLSVersion( NLS_FUNCTION Function, LCID Locale, LPNLSVERSIONINFO lpVersionInformation); __declspec(dllimport) BOOL __stdcall IsNLSDefinedString( NLS_FUNCTION Function, DWORD dwFlags, LPNLSVERSIONINFO lpVersionInformation, LPCWSTR lpString, INT cchStr); __declspec(dllimport) BOOL __stdcall IsValidLocale( LCID Locale, DWORD dwFlags); __declspec(dllimport) int __stdcall GetGeoInfoA( GEOID Location, GEOTYPE GeoType, LPSTR lpGeoData, int cchData, LANGID LangId); __declspec(dllimport) int __stdcall GetGeoInfoW( GEOID Location, GEOTYPE GeoType, LPWSTR lpGeoData, int cchData, LANGID LangId); #line 1789 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" __declspec(dllimport) BOOL __stdcall EnumSystemGeoID( GEOCLASS GeoClass, GEOID ParentGeoId, GEO_ENUMPROC lpGeoEnumProc); __declspec(dllimport) GEOID __stdcall GetUserGeoID( GEOCLASS GeoClass); __declspec(dllimport) BOOL __stdcall SetUserGeoID( GEOID GeoId); __declspec(dllimport) LCID __stdcall ConvertDefaultLocale( LCID Locale); __declspec(dllimport) LCID __stdcall GetThreadLocale(void); __declspec(dllimport) BOOL __stdcall SetThreadLocale( LCID Locale ); __declspec(dllimport) LANGID __stdcall GetSystemDefaultUILanguage(void); __declspec(dllimport) LANGID __stdcall GetUserDefaultUILanguage(void); #line 1839 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" __declspec(dllimport) LANGID __stdcall GetSystemDefaultLangID(void); __declspec(dllimport) LANGID __stdcall GetUserDefaultLangID(void); __declspec(dllimport) LCID __stdcall GetSystemDefaultLCID(void); __declspec(dllimport) LCID __stdcall GetUserDefaultLCID(void); __declspec(dllimport) LANGID __stdcall SetThreadUILanguage( LANGID LangId); #line 1966 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" // // Locale Independent APIs. // __declspec(dllimport) BOOL __stdcall GetStringTypeExA( LCID Locale, DWORD dwInfoType, LPCSTR lpSrcStr, int cchSrc, LPWORD lpCharType); __declspec(dllimport) BOOL __stdcall GetStringTypeExW( LCID Locale, DWORD dwInfoType, LPCWSTR lpSrcStr, int cchSrc, LPWORD lpCharType); #line 1994 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" // // NOTE: The parameters for GetStringTypeA and GetStringTypeW are // NOT the same. The W version was shipped in NT 3.1. The // A version was then shipped in 16-bit OLE with the wrong // parameters (ported from Win95). To be compatible, we // must break the relationship between the A and W versions // of GetStringType. There will be NO function call for the // generic GetStringType. // // GetStringTypeEx (above) should be used instead. // __declspec(dllimport) BOOL __stdcall GetStringTypeA( LCID Locale, DWORD dwInfoType, LPCSTR lpSrcStr, int cchSrc, LPWORD lpCharType); __declspec(dllimport) BOOL __stdcall GetStringTypeW( DWORD dwInfoType, LPCWSTR lpSrcStr, int cchSrc, LPWORD lpCharType); __declspec(dllimport) int __stdcall FoldStringA( DWORD dwMapFlags, LPCSTR lpSrcStr, int cchSrc, LPSTR lpDestStr, int cchDest); __declspec(dllimport) int __stdcall FoldStringW( DWORD dwMapFlags, LPCWSTR lpSrcStr, int cchSrc, LPWSTR lpDestStr, int cchDest); #line 2049 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" __declspec(dllimport) BOOL __stdcall EnumSystemLanguageGroupsA( LANGUAGEGROUP_ENUMPROCA lpLanguageGroupEnumProc, DWORD dwFlags, LONG_PTR lParam); __declspec(dllimport) BOOL __stdcall EnumSystemLanguageGroupsW( LANGUAGEGROUP_ENUMPROCW lpLanguageGroupEnumProc, DWORD dwFlags, LONG_PTR lParam); #line 2070 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" __declspec(dllimport) BOOL __stdcall EnumLanguageGroupLocalesA( LANGGROUPLOCALE_ENUMPROCA lpLangGroupLocaleEnumProc, LGRPID LanguageGroup, DWORD dwFlags, LONG_PTR lParam); __declspec(dllimport) BOOL __stdcall EnumLanguageGroupLocalesW( LANGGROUPLOCALE_ENUMPROCW lpLangGroupLocaleEnumProc, LGRPID LanguageGroup, DWORD dwFlags, LONG_PTR lParam); #line 2092 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" __declspec(dllimport) BOOL __stdcall EnumUILanguagesA( UILANGUAGE_ENUMPROCA lpUILanguageEnumProc, DWORD dwFlags, LONG_PTR lParam); __declspec(dllimport) BOOL __stdcall EnumUILanguagesW( UILANGUAGE_ENUMPROCW lpUILanguageEnumProc, DWORD dwFlags, LONG_PTR lParam); #line 2112 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" #line 2113 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" __declspec(dllimport) BOOL __stdcall EnumSystemLocalesA( LOCALE_ENUMPROCA lpLocaleEnumProc, DWORD dwFlags); __declspec(dllimport) BOOL __stdcall EnumSystemLocalesW( LOCALE_ENUMPROCW lpLocaleEnumProc, DWORD dwFlags); #line 2131 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" __declspec(dllimport) BOOL __stdcall EnumSystemCodePagesA( CODEPAGE_ENUMPROCA lpCodePageEnumProc, DWORD dwFlags); __declspec(dllimport) BOOL __stdcall EnumSystemCodePagesW( CODEPAGE_ENUMPROCW lpCodePageEnumProc, DWORD dwFlags); #line 2149 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" #line 2216 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" #line 2454 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" #line 2458 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" } #line 2463 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" #line 2465 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnls.h" #line 161 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windows.h" #line 162 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windows.h" #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wincon.h" /*++ BUILD Version: 0002 // Increment this if a change has global effects Copyright (c) Microsoft Corporation. All rights reserved. Module Name: wincon.h Abstract: This module contains the public data structures, data types, and procedures exported by the NT console subsystem. Created: 26-Oct-1990 Revision History: --*/ #pragma once extern "C" { #line 30 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wincon.h" #line 34 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wincon.h" typedef struct _COORD { SHORT X; SHORT Y; } COORD, *PCOORD; typedef struct _SMALL_RECT { SHORT Left; SHORT Top; SHORT Right; SHORT Bottom; } SMALL_RECT, *PSMALL_RECT; typedef struct _KEY_EVENT_RECORD { BOOL bKeyDown; WORD wRepeatCount; WORD wVirtualKeyCode; WORD wVirtualScanCode; union { WCHAR UnicodeChar; CHAR AsciiChar; } uChar; DWORD dwControlKeyState; } KEY_EVENT_RECORD, *PKEY_EVENT_RECORD; // // ControlKeyState flags // typedef struct _MOUSE_EVENT_RECORD { COORD dwMousePosition; DWORD dwButtonState; DWORD dwControlKeyState; DWORD dwEventFlags; } MOUSE_EVENT_RECORD, *PMOUSE_EVENT_RECORD; // // ButtonState flags // // // EventFlags // #line 107 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wincon.h" typedef struct _WINDOW_BUFFER_SIZE_RECORD { COORD dwSize; } WINDOW_BUFFER_SIZE_RECORD, *PWINDOW_BUFFER_SIZE_RECORD; typedef struct _MENU_EVENT_RECORD { UINT dwCommandId; } MENU_EVENT_RECORD, *PMENU_EVENT_RECORD; typedef struct _FOCUS_EVENT_RECORD { BOOL bSetFocus; } FOCUS_EVENT_RECORD, *PFOCUS_EVENT_RECORD; typedef struct _INPUT_RECORD { WORD EventType; union { KEY_EVENT_RECORD KeyEvent; MOUSE_EVENT_RECORD MouseEvent; WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent; MENU_EVENT_RECORD MenuEvent; FOCUS_EVENT_RECORD FocusEvent; } Event; } INPUT_RECORD, *PINPUT_RECORD; // // EventType flags: // typedef struct _CHAR_INFO { union { WCHAR UnicodeChar; CHAR AsciiChar; } Char; WORD Attributes; } CHAR_INFO, *PCHAR_INFO; // // Attributes flags: // typedef struct _CONSOLE_SCREEN_BUFFER_INFO { COORD dwSize; COORD dwCursorPosition; WORD wAttributes; SMALL_RECT srWindow; COORD dwMaximumWindowSize; } CONSOLE_SCREEN_BUFFER_INFO, *PCONSOLE_SCREEN_BUFFER_INFO; typedef struct _CONSOLE_SCREEN_BUFFER_INFOEX { ULONG cbSize; COORD dwSize; COORD dwCursorPosition; WORD wAttributes; SMALL_RECT srWindow; COORD dwMaximumWindowSize; WORD wPopupAttributes; BOOL bFullscreenSupported; COLORREF ColorTable[16]; } CONSOLE_SCREEN_BUFFER_INFOEX, *PCONSOLE_SCREEN_BUFFER_INFOEX; typedef struct _CONSOLE_CURSOR_INFO { DWORD dwSize; BOOL bVisible; } CONSOLE_CURSOR_INFO, *PCONSOLE_CURSOR_INFO; typedef struct _CONSOLE_FONT_INFO { DWORD nFont; COORD dwFontSize; } CONSOLE_FONT_INFO, *PCONSOLE_FONT_INFO; typedef struct _CONSOLE_FONT_INFOEX { ULONG cbSize; DWORD nFont; COORD dwFontSize; UINT FontFamily; UINT FontWeight; WCHAR FaceName[32]; } CONSOLE_FONT_INFOEX, *PCONSOLE_FONT_INFOEX; #line 212 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wincon.h" typedef struct _CONSOLE_HISTORY_INFO { UINT cbSize; UINT HistoryBufferSize; UINT NumberOfHistoryBuffers; DWORD dwFlags; } CONSOLE_HISTORY_INFO, *PCONSOLE_HISTORY_INFO; typedef struct _CONSOLE_SELECTION_INFO { DWORD dwFlags; COORD dwSelectionAnchor; SMALL_RECT srSelection; } CONSOLE_SELECTION_INFO, *PCONSOLE_SELECTION_INFO; // // Selection flags // #line 238 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wincon.h" // // typedef for ctrl-c handler routines // typedef BOOL (__stdcall *PHANDLER_ROUTINE)( DWORD CtrlType ); // 3 is reserved! // 4 is reserved! // // Input Mode flags: // // // Output Mode flags: // // // direct API definitions. // __declspec(dllimport) BOOL __stdcall PeekConsoleInputA( HANDLE hConsoleInput, PINPUT_RECORD lpBuffer, DWORD nLength, LPDWORD lpNumberOfEventsRead ); __declspec(dllimport) BOOL __stdcall PeekConsoleInputW( HANDLE hConsoleInput, PINPUT_RECORD lpBuffer, DWORD nLength, LPDWORD lpNumberOfEventsRead ); #line 305 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wincon.h" __declspec(dllimport) BOOL __stdcall ReadConsoleInputA( HANDLE hConsoleInput, PINPUT_RECORD lpBuffer, DWORD nLength, LPDWORD lpNumberOfEventsRead ); __declspec(dllimport) BOOL __stdcall ReadConsoleInputW( HANDLE hConsoleInput, PINPUT_RECORD lpBuffer, DWORD nLength, LPDWORD lpNumberOfEventsRead ); #line 329 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wincon.h" __declspec(dllimport) BOOL __stdcall WriteConsoleInputA( HANDLE hConsoleInput, const INPUT_RECORD *lpBuffer, DWORD nLength, LPDWORD lpNumberOfEventsWritten ); __declspec(dllimport) BOOL __stdcall WriteConsoleInputW( HANDLE hConsoleInput, const INPUT_RECORD *lpBuffer, DWORD nLength, LPDWORD lpNumberOfEventsWritten ); #line 353 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wincon.h" __declspec(dllimport) BOOL __stdcall ReadConsoleOutputA( HANDLE hConsoleOutput, PCHAR_INFO lpBuffer, COORD dwBufferSize, COORD dwBufferCoord, PSMALL_RECT lpReadRegion ); __declspec(dllimport) BOOL __stdcall ReadConsoleOutputW( HANDLE hConsoleOutput, PCHAR_INFO lpBuffer, COORD dwBufferSize, COORD dwBufferCoord, PSMALL_RECT lpReadRegion ); #line 379 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wincon.h" __declspec(dllimport) BOOL __stdcall WriteConsoleOutputA( HANDLE hConsoleOutput, const CHAR_INFO *lpBuffer, COORD dwBufferSize, COORD dwBufferCoord, PSMALL_RECT lpWriteRegion ); __declspec(dllimport) BOOL __stdcall WriteConsoleOutputW( HANDLE hConsoleOutput, const CHAR_INFO *lpBuffer, COORD dwBufferSize, COORD dwBufferCoord, PSMALL_RECT lpWriteRegion ); #line 405 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wincon.h" __declspec(dllimport) BOOL __stdcall ReadConsoleOutputCharacterA( HANDLE hConsoleOutput, LPSTR lpCharacter, DWORD nLength, COORD dwReadCoord, LPDWORD lpNumberOfCharsRead ); __declspec(dllimport) BOOL __stdcall ReadConsoleOutputCharacterW( HANDLE hConsoleOutput, LPWSTR lpCharacter, DWORD nLength, COORD dwReadCoord, LPDWORD lpNumberOfCharsRead ); #line 431 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wincon.h" __declspec(dllimport) BOOL __stdcall ReadConsoleOutputAttribute( HANDLE hConsoleOutput, LPWORD lpAttribute, DWORD nLength, COORD dwReadCoord, LPDWORD lpNumberOfAttrsRead ); __declspec(dllimport) BOOL __stdcall WriteConsoleOutputCharacterA( HANDLE hConsoleOutput, LPCSTR lpCharacter, DWORD nLength, COORD dwWriteCoord, LPDWORD lpNumberOfCharsWritten ); __declspec(dllimport) BOOL __stdcall WriteConsoleOutputCharacterW( HANDLE hConsoleOutput, LPCWSTR lpCharacter, DWORD nLength, COORD dwWriteCoord, LPDWORD lpNumberOfCharsWritten ); #line 468 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wincon.h" __declspec(dllimport) BOOL __stdcall WriteConsoleOutputAttribute( HANDLE hConsoleOutput, const WORD *lpAttribute, DWORD nLength, COORD dwWriteCoord, LPDWORD lpNumberOfAttrsWritten ); __declspec(dllimport) BOOL __stdcall FillConsoleOutputCharacterA( HANDLE hConsoleOutput, CHAR cCharacter, DWORD nLength, COORD dwWriteCoord, LPDWORD lpNumberOfCharsWritten ); __declspec(dllimport) BOOL __stdcall FillConsoleOutputCharacterW( HANDLE hConsoleOutput, WCHAR cCharacter, DWORD nLength, COORD dwWriteCoord, LPDWORD lpNumberOfCharsWritten ); #line 505 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wincon.h" __declspec(dllimport) BOOL __stdcall FillConsoleOutputAttribute( HANDLE hConsoleOutput, WORD wAttribute, DWORD nLength, COORD dwWriteCoord, LPDWORD lpNumberOfAttrsWritten ); __declspec(dllimport) BOOL __stdcall GetConsoleMode( HANDLE hConsoleHandle, LPDWORD lpMode ); __declspec(dllimport) BOOL __stdcall GetNumberOfConsoleInputEvents( HANDLE hConsoleInput, LPDWORD lpNumberOfEvents ); __declspec(dllimport) BOOL __stdcall GetConsoleScreenBufferInfo( HANDLE hConsoleOutput, PCONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo ); __declspec(dllimport) BOOL __stdcall GetConsoleScreenBufferInfoEx( HANDLE hConsoleOutput, PCONSOLE_SCREEN_BUFFER_INFOEX lpConsoleScreenBufferInfoEx); __declspec(dllimport) BOOL __stdcall SetConsoleScreenBufferInfoEx( HANDLE hConsoleOutput, PCONSOLE_SCREEN_BUFFER_INFOEX lpConsoleScreenBufferInfoEx); __declspec(dllimport) COORD __stdcall GetLargestConsoleWindowSize( HANDLE hConsoleOutput ); __declspec(dllimport) BOOL __stdcall GetConsoleCursorInfo( HANDLE hConsoleOutput, PCONSOLE_CURSOR_INFO lpConsoleCursorInfo ); __declspec(dllimport) BOOL __stdcall GetCurrentConsoleFont( HANDLE hConsoleOutput, BOOL bMaximumWindow, PCONSOLE_FONT_INFO lpConsoleCurrentFont ); __declspec(dllimport) BOOL __stdcall GetCurrentConsoleFontEx( HANDLE hConsoleOutput, BOOL bMaximumWindow, PCONSOLE_FONT_INFOEX lpConsoleCurrentFontEx); __declspec(dllimport) BOOL __stdcall SetCurrentConsoleFontEx( HANDLE hConsoleOutput, BOOL bMaximumWindow, PCONSOLE_FONT_INFOEX lpConsoleCurrentFontEx); #line 601 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wincon.h" __declspec(dllimport) BOOL __stdcall GetConsoleHistoryInfo( PCONSOLE_HISTORY_INFO lpConsoleHistoryInfo); __declspec(dllimport) BOOL __stdcall SetConsoleHistoryInfo( PCONSOLE_HISTORY_INFO lpConsoleHistoryInfo); __declspec(dllimport) COORD __stdcall GetConsoleFontSize( HANDLE hConsoleOutput, DWORD nFont ); __declspec(dllimport) BOOL __stdcall GetConsoleSelectionInfo( PCONSOLE_SELECTION_INFO lpConsoleSelectionInfo ); #line 630 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wincon.h" __declspec(dllimport) BOOL __stdcall GetNumberOfConsoleMouseButtons( LPDWORD lpNumberOfMouseButtons ); __declspec(dllimport) BOOL __stdcall SetConsoleMode( HANDLE hConsoleHandle, DWORD dwMode ); __declspec(dllimport) BOOL __stdcall SetConsoleActiveScreenBuffer( HANDLE hConsoleOutput ); __declspec(dllimport) BOOL __stdcall FlushConsoleInputBuffer( HANDLE hConsoleInput ); __declspec(dllimport) BOOL __stdcall SetConsoleScreenBufferSize( HANDLE hConsoleOutput, COORD dwSize ); __declspec(dllimport) BOOL __stdcall SetConsoleCursorPosition( HANDLE hConsoleOutput, COORD dwCursorPosition ); __declspec(dllimport) BOOL __stdcall SetConsoleCursorInfo( HANDLE hConsoleOutput, const CONSOLE_CURSOR_INFO *lpConsoleCursorInfo ); __declspec(dllimport) BOOL __stdcall ScrollConsoleScreenBufferA( HANDLE hConsoleOutput, const SMALL_RECT *lpScrollRectangle, const SMALL_RECT *lpClipRectangle, COORD dwDestinationOrigin, const CHAR_INFO *lpFill ); __declspec(dllimport) BOOL __stdcall ScrollConsoleScreenBufferW( HANDLE hConsoleOutput, const SMALL_RECT *lpScrollRectangle, const SMALL_RECT *lpClipRectangle, COORD dwDestinationOrigin, const CHAR_INFO *lpFill ); #line 709 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wincon.h" __declspec(dllimport) BOOL __stdcall SetConsoleWindowInfo( HANDLE hConsoleOutput, BOOL bAbsolute, const SMALL_RECT *lpConsoleWindow ); __declspec(dllimport) BOOL __stdcall SetConsoleTextAttribute( HANDLE hConsoleOutput, WORD wAttributes ); __declspec(dllimport) BOOL __stdcall SetConsoleCtrlHandler( PHANDLER_ROUTINE HandlerRoutine, BOOL Add); __declspec(dllimport) BOOL __stdcall GenerateConsoleCtrlEvent( DWORD dwCtrlEvent, DWORD dwProcessGroupId ); __declspec(dllimport) BOOL __stdcall AllocConsole( void ); __declspec(dllimport) BOOL __stdcall FreeConsole( void ); __declspec(dllimport) BOOL __stdcall AttachConsole( DWORD dwProcessId ); #line 762 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wincon.h" __declspec(dllimport) DWORD __stdcall GetConsoleTitleA( LPSTR lpConsoleTitle, DWORD nSize ); __declspec(dllimport) DWORD __stdcall GetConsoleTitleW( LPWSTR lpConsoleTitle, DWORD nSize ); #line 782 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wincon.h" #line 802 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wincon.h" __declspec(dllimport) BOOL __stdcall SetConsoleTitleA( LPCSTR lpConsoleTitle ); __declspec(dllimport) BOOL __stdcall SetConsoleTitleW( LPCWSTR lpConsoleTitle ); #line 820 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wincon.h" typedef struct _CONSOLE_READCONSOLE_CONTROL { ULONG nLength; // sizeof( CONSOLE_READCONSOLE_CONTROL ) ULONG nInitialChars; ULONG dwCtrlWakeupMask; ULONG dwControlKeyState; } CONSOLE_READCONSOLE_CONTROL, *PCONSOLE_READCONSOLE_CONTROL; __declspec(dllimport) BOOL __stdcall ReadConsoleA( HANDLE hConsoleInput, LPVOID lpBuffer, DWORD nNumberOfCharsToRead, LPDWORD lpNumberOfCharsRead, PCONSOLE_READCONSOLE_CONTROL pInputControl ); __declspec(dllimport) BOOL __stdcall ReadConsoleW( HANDLE hConsoleInput, LPVOID lpBuffer, DWORD nNumberOfCharsToRead, LPDWORD lpNumberOfCharsRead, PCONSOLE_READCONSOLE_CONTROL pInputControl ); #line 855 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wincon.h" __declspec(dllimport) BOOL __stdcall WriteConsoleA( HANDLE hConsoleOutput, const void *lpBuffer, DWORD nNumberOfCharsToWrite, LPDWORD lpNumberOfCharsWritten, LPVOID lpReserved ); __declspec(dllimport) BOOL __stdcall WriteConsoleW( HANDLE hConsoleOutput, const void *lpBuffer, DWORD nNumberOfCharsToWrite, LPDWORD lpNumberOfCharsWritten, LPVOID lpReserved ); #line 881 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wincon.h" __declspec(dllimport) HANDLE __stdcall CreateConsoleScreenBuffer( DWORD dwDesiredAccess, DWORD dwShareMode, const SECURITY_ATTRIBUTES *lpSecurityAttributes, DWORD dwFlags, LPVOID lpScreenBufferData ); __declspec(dllimport) UINT __stdcall GetConsoleCP( void ); __declspec(dllimport) BOOL __stdcall SetConsoleCP( UINT wCodePageID ); __declspec(dllimport) UINT __stdcall GetConsoleOutputCP( void ); __declspec(dllimport) BOOL __stdcall SetConsoleOutputCP( UINT wCodePageID ); __declspec(dllimport) BOOL __stdcall GetConsoleDisplayMode( LPDWORD lpModeFlags); BOOL __stdcall SetConsoleDisplayMode( HANDLE hConsoleOutput, DWORD dwFlags, PCOORD lpNewScreenBufferDimensions); __declspec(dllimport) HWND __stdcall GetConsoleWindow( void ); #line 949 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wincon.h" __declspec(dllimport) DWORD __stdcall GetConsoleProcessList( LPDWORD lpdwProcessList, DWORD dwProcessCount); // // Aliasing apis. // __declspec(dllimport) BOOL __stdcall AddConsoleAliasA( LPSTR Source, LPSTR Target, LPSTR ExeName); __declspec(dllimport) BOOL __stdcall AddConsoleAliasW( LPWSTR Source, LPWSTR Target, LPWSTR ExeName); #line 982 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wincon.h" __declspec(dllimport) DWORD __stdcall GetConsoleAliasA( LPSTR Source, LPSTR TargetBuffer, DWORD TargetBufferLength, LPSTR ExeName); __declspec(dllimport) DWORD __stdcall GetConsoleAliasW( LPWSTR Source, LPWSTR TargetBuffer, DWORD TargetBufferLength, LPWSTR ExeName); #line 1004 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wincon.h" __declspec(dllimport) DWORD __stdcall GetConsoleAliasesLengthA( LPSTR ExeName); __declspec(dllimport) DWORD __stdcall GetConsoleAliasesLengthW( LPWSTR ExeName); #line 1020 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wincon.h" __declspec(dllimport) DWORD __stdcall GetConsoleAliasExesLengthA( void); __declspec(dllimport) DWORD __stdcall GetConsoleAliasExesLengthW( void); #line 1036 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wincon.h" __declspec(dllimport) DWORD __stdcall GetConsoleAliasesA( LPSTR AliasBuffer, DWORD AliasBufferLength, LPSTR ExeName); __declspec(dllimport) DWORD __stdcall GetConsoleAliasesW( LPWSTR AliasBuffer, DWORD AliasBufferLength, LPWSTR ExeName); #line 1056 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wincon.h" __declspec(dllimport) DWORD __stdcall GetConsoleAliasExesA( LPSTR ExeNameBuffer, DWORD ExeNameBufferLength); __declspec(dllimport) DWORD __stdcall GetConsoleAliasExesW( LPWSTR ExeNameBuffer, DWORD ExeNameBufferLength); #line 1074 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wincon.h" #line 1076 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wincon.h" } #line 1080 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wincon.h" #line 1082 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wincon.h" #line 164 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windows.h" #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winver.h" /**************************************************************************** ** * * winver.h - Version management functions, types, and definitions * * * * Include file for VER.DLL. This library is * * designed to allow version stamping of Windows executable files* * and of special .VER files for DOS executable files. * * * * Copyright (c) Microsoft Corporation. All rights reserved. * * * \*****************************************************************************/ extern "C" { #line 21 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winver.h" /* ----- Symbols ----- */ /* ----- VS_VERSION.dwFileFlags ----- */ #line 33 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winver.h" /* ----- VS_VERSION.dwFileFlags ----- */ /* ----- VS_VERSION.dwFileOS ----- */ /* ----- VS_VERSION.dwFileType ----- */ /* ----- VS_VERSION.dwFileSubtype for VFT_WINDOWS_DRV ----- */ /* ----- VS_VERSION.dwFileSubtype for VFT_WINDOWS_FONT ----- */ /* ----- VerFindFile() flags ----- */ /* ----- VerInstallFile() flags ----- */ /* FILE_VER_GET_... flags are for use by GetFileVersionInfoSizeEx GetFileVersionInfoExW */ /* ----- Types and structures ----- */ typedef struct tagVS_FIXEDFILEINFO { DWORD dwSignature; /* e.g. 0xfeef04bd */ DWORD dwStrucVersion; /* e.g. 0x00000042 = "0.42" */ DWORD dwFileVersionMS; /* e.g. 0x00030075 = "3.75" */ DWORD dwFileVersionLS; /* e.g. 0x00000031 = "0.31" */ DWORD dwProductVersionMS; /* e.g. 0x00030010 = "3.10" */ DWORD dwProductVersionLS; /* e.g. 0x00000031 = "0.31" */ DWORD dwFileFlagsMask; /* = 0x3F for version "0.42" */ DWORD dwFileFlags; /* e.g. VFF_DEBUG | VFF_PRERELEASE */ DWORD dwFileOS; /* e.g. VOS_DOS_WINDOWS16 */ DWORD dwFileType; /* e.g. VFT_DRIVER */ DWORD dwFileSubtype; /* e.g. VFT2_DRV_KEYBOARD */ DWORD dwFileDateMS; /* e.g. 0 */ DWORD dwFileDateLS; /* e.g. 0 */ } VS_FIXEDFILEINFO; /* ----- Function prototypes ----- */ DWORD __stdcall VerFindFileA( DWORD uFlags, LPCSTR szFileName, LPCSTR szWinDir, LPCSTR szAppDir, LPSTR szCurDir, PUINT lpuCurDirLen, LPSTR szDestDir, PUINT lpuDestDirLen ); DWORD __stdcall VerFindFileW( DWORD uFlags, LPCWSTR szFileName, LPCWSTR szWinDir, LPCWSTR szAppDir, LPWSTR szCurDir, PUINT lpuCurDirLen, LPWSTR szDestDir, PUINT lpuDestDirLen ); #line 190 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winver.h" DWORD __stdcall VerInstallFileA( DWORD uFlags, LPCSTR szSrcFileName, LPCSTR szDestFileName, LPCSTR szSrcDir, LPCSTR szDestDir, LPCSTR szCurDir, LPSTR szTmpFile, PUINT lpuTmpFileLen ); DWORD __stdcall VerInstallFileW( DWORD uFlags, LPCWSTR szSrcFileName, LPCWSTR szDestFileName, LPCWSTR szSrcDir, LPCWSTR szDestDir, LPCWSTR szCurDir, LPWSTR szTmpFile, PUINT lpuTmpFileLen ); #line 220 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winver.h" /* Returns size of version info in bytes */ DWORD __stdcall GetFileVersionInfoSizeA( LPCSTR lptstrFilename, /* Filename of version stamped file */ LPDWORD lpdwHandle /* Information for use by GetFileVersionInfo */ ); /* Returns size of version info in bytes */ DWORD __stdcall GetFileVersionInfoSizeW( LPCWSTR lptstrFilename, /* Filename of version stamped file */ LPDWORD lpdwHandle /* Information for use by GetFileVersionInfo */ ); #line 240 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winver.h" /* Read version info into buffer */ BOOL __stdcall GetFileVersionInfoA( LPCSTR lptstrFilename, /* Filename of version stamped file */ DWORD dwHandle, /* Information from GetFileVersionSize */ DWORD dwLen, /* Length of buffer for info */ LPVOID lpData /* Buffer to place the data structure */ ); /* Read version info into buffer */ BOOL __stdcall GetFileVersionInfoW( LPCWSTR lptstrFilename, /* Filename of version stamped file */ DWORD dwHandle, /* Information from GetFileVersionSize */ DWORD dwLen, /* Length of buffer for info */ LPVOID lpData /* Buffer to place the data structure */ ); #line 264 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winver.h" DWORD __stdcall GetFileVersionInfoSizeExA( DWORD dwFlags, LPCSTR lpwstrFilename, LPDWORD lpdwHandle); DWORD __stdcall GetFileVersionInfoSizeExW( DWORD dwFlags, LPCWSTR lpwstrFilename, LPDWORD lpdwHandle); #line 272 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winver.h" BOOL __stdcall GetFileVersionInfoExA( DWORD dwFlags, LPCSTR lpwstrFilename, DWORD dwHandle, DWORD dwLen, LPVOID lpData); BOOL __stdcall GetFileVersionInfoExW( DWORD dwFlags, LPCWSTR lpwstrFilename, DWORD dwHandle, DWORD dwLen, LPVOID lpData); #line 288 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winver.h" DWORD __stdcall VerLanguageNameA( DWORD wLang, LPSTR szLang, DWORD cchLang ); DWORD __stdcall VerLanguageNameW( DWORD wLang, LPWSTR szLang, DWORD cchLang ); #line 308 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winver.h" BOOL __stdcall VerQueryValueA( LPCVOID pBlock, LPCSTR lpSubBlock, LPVOID * lplpBuffer, PUINT puLen ); BOOL __stdcall VerQueryValueW( LPCVOID pBlock, LPCWSTR lpSubBlock, LPVOID * lplpBuffer, PUINT puLen ); #line 330 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winver.h" #line 332 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winver.h" } #line 336 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winver.h" #line 338 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winver.h" #line 165 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windows.h" #line 166 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windows.h" #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winreg.h" /*++ BUILD Version: 0001 // Increment this if a change has global effects Copyright (c) Microsoft Corporation. All rights reserved. Module Name: Winreg.h Abstract: This module contains the function prototypes and constant, type and structure definitions for the Windows 32-Bit Registry API. --*/ extern "C" { #line 27 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winreg.h" // // RRF - Registry Routine Flags (for RegGetValue) // // // Flags for RegLoadAppKey // // // Flags for RegLoadMUIString // // // Requested Key access mask type. // typedef ACCESS_MASK REGSAM; // // Reserved Key Handles. // // // RegConnectRegistryEx supported flags // /*NOINC*/ struct val_context { int valuelen; // the total length of this value LPVOID value_context; // provider's context LPVOID val_buff_ptr; // where in the ouput buffer the value is. }; typedef struct val_context *PVALCONTEXT; typedef struct pvalueA { // Provider supplied value/context. LPSTR pv_valuename; // The value name pointer int pv_valuelen; LPVOID pv_value_context; DWORD pv_type; }PVALUEA, *PPVALUEA; typedef struct pvalueW { // Provider supplied value/context. LPWSTR pv_valuename; // The value name pointer int pv_valuelen; LPVOID pv_value_context; DWORD pv_type; }PVALUEW, *PPVALUEW; typedef PVALUEW PVALUE; typedef PPVALUEW PPVALUE; #line 120 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winreg.h" typedef DWORD _cdecl QUERYHANDLER (LPVOID keycontext, PVALCONTEXT val_list, DWORD num_vals, LPVOID outputbuffer, DWORD *total_outlen, DWORD input_blen); typedef QUERYHANDLER *PQUERYHANDLER; typedef struct provider_info { PQUERYHANDLER pi_R0_1val; PQUERYHANDLER pi_R0_allvals; PQUERYHANDLER pi_R3_1val; PQUERYHANDLER pi_R3_allvals; DWORD pi_flags; // capability flags (none defined yet). LPVOID pi_key_context; }REG_PROVIDER; typedef struct provider_info *PPROVIDER; typedef struct value_entA { LPSTR ve_valuename; DWORD ve_valuelen; DWORD_PTR ve_valueptr; DWORD ve_type; }VALENTA, *PVALENTA; typedef struct value_entW { LPWSTR ve_valuename; DWORD ve_valuelen; DWORD_PTR ve_valueptr; DWORD ve_type; }VALENTW, *PVALENTW; typedef VALENTW VALENT; typedef PVALENTW PVALENT; #line 158 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winreg.h" #line 160 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winreg.h" /*INC*/ #line 163 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winreg.h" // // Default values for parameters that do not exist in the Win 3.1 // compatible APIs. // // // API Prototypes. // typedef LONG LSTATUS; __declspec(dllimport) LSTATUS __stdcall RegCloseKey ( HKEY hKey ); __declspec(dllimport) LSTATUS __stdcall RegOverridePredefKey ( HKEY hKey, HKEY hNewHKey ); __declspec(dllimport) LSTATUS __stdcall RegOpenUserClassesRoot( HANDLE hToken, DWORD dwOptions, REGSAM samDesired, PHKEY phkResult ); __declspec(dllimport) LSTATUS __stdcall RegOpenCurrentUser( REGSAM samDesired, PHKEY phkResult ); __declspec(dllimport) LSTATUS __stdcall RegDisablePredefinedCache( void ); __declspec(dllimport) LSTATUS __stdcall RegDisablePredefinedCacheEx( void ); __declspec(dllimport) LSTATUS __stdcall RegConnectRegistryA ( LPCSTR lpMachineName, HKEY hKey, PHKEY phkResult ); __declspec(dllimport) LSTATUS __stdcall RegConnectRegistryW ( LPCWSTR lpMachineName, HKEY hKey, PHKEY phkResult ); #line 245 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winreg.h" __declspec(dllimport) LSTATUS __stdcall RegConnectRegistryExA ( LPCSTR lpMachineName, HKEY hKey, ULONG Flags, PHKEY phkResult ); __declspec(dllimport) LSTATUS __stdcall RegConnectRegistryExW ( LPCWSTR lpMachineName, HKEY hKey, ULONG Flags, PHKEY phkResult ); #line 269 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winreg.h" __declspec(dllimport) LSTATUS __stdcall RegCreateKeyA ( HKEY hKey, LPCSTR lpSubKey, PHKEY phkResult ); __declspec(dllimport) LSTATUS __stdcall RegCreateKeyW ( HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult ); #line 291 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winreg.h" __declspec(dllimport) LSTATUS __stdcall RegCreateKeyExA ( HKEY hKey, LPCSTR lpSubKey, DWORD Reserved, LPSTR lpClass, DWORD dwOptions, REGSAM samDesired, const LPSECURITY_ATTRIBUTES lpSecurityAttributes, PHKEY phkResult, LPDWORD lpdwDisposition ); __declspec(dllimport) LSTATUS __stdcall RegCreateKeyExW ( HKEY hKey, LPCWSTR lpSubKey, DWORD Reserved, LPWSTR lpClass, DWORD dwOptions, REGSAM samDesired, const LPSECURITY_ATTRIBUTES lpSecurityAttributes, PHKEY phkResult, LPDWORD lpdwDisposition ); #line 325 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winreg.h" __declspec(dllimport) LSTATUS __stdcall RegCreateKeyTransactedA ( HKEY hKey, LPCSTR lpSubKey, DWORD Reserved, LPSTR lpClass, DWORD dwOptions, REGSAM samDesired, const LPSECURITY_ATTRIBUTES lpSecurityAttributes, PHKEY phkResult, LPDWORD lpdwDisposition, HANDLE hTransaction, PVOID pExtendedParemeter ); __declspec(dllimport) LSTATUS __stdcall RegCreateKeyTransactedW ( HKEY hKey, LPCWSTR lpSubKey, DWORD Reserved, LPWSTR lpClass, DWORD dwOptions, REGSAM samDesired, const LPSECURITY_ATTRIBUTES lpSecurityAttributes, PHKEY phkResult, LPDWORD lpdwDisposition, HANDLE hTransaction, PVOID pExtendedParemeter ); #line 363 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winreg.h" __declspec(dllimport) LSTATUS __stdcall RegDeleteKeyA ( HKEY hKey, LPCSTR lpSubKey ); __declspec(dllimport) LSTATUS __stdcall RegDeleteKeyW ( HKEY hKey, LPCWSTR lpSubKey ); #line 383 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winreg.h" __declspec(dllimport) LSTATUS __stdcall RegDeleteKeyExA ( HKEY hKey, LPCSTR lpSubKey, REGSAM samDesired, DWORD Reserved ); __declspec(dllimport) LSTATUS __stdcall RegDeleteKeyExW ( HKEY hKey, LPCWSTR lpSubKey, REGSAM samDesired, DWORD Reserved ); #line 407 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winreg.h" __declspec(dllimport) LSTATUS __stdcall RegDeleteKeyTransactedA ( HKEY hKey, LPCSTR lpSubKey, REGSAM samDesired, DWORD Reserved, HANDLE hTransaction, PVOID pExtendedParameter ); __declspec(dllimport) LSTATUS __stdcall RegDeleteKeyTransactedW ( HKEY hKey, LPCWSTR lpSubKey, REGSAM samDesired, DWORD Reserved, HANDLE hTransaction, PVOID pExtendedParameter ); #line 435 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winreg.h" __declspec(dllimport) LONG __stdcall RegDisableReflectionKey ( HKEY hBase ); __declspec(dllimport) LONG __stdcall RegEnableReflectionKey ( HKEY hBase ); __declspec(dllimport) LONG __stdcall RegQueryReflectionKey ( HKEY hBase, BOOL *bIsReflectionDisabled ); __declspec(dllimport) LSTATUS __stdcall RegDeleteValueA ( HKEY hKey, LPCSTR lpValueName ); __declspec(dllimport) LSTATUS __stdcall RegDeleteValueW ( HKEY hKey, LPCWSTR lpValueName ); #line 477 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winreg.h" __declspec(dllimport) LSTATUS __stdcall RegEnumKeyA ( HKEY hKey, DWORD dwIndex, LPSTR lpName, DWORD cchName ); __declspec(dllimport) LSTATUS __stdcall RegEnumKeyW ( HKEY hKey, DWORD dwIndex, LPWSTR lpName, DWORD cchName ); #line 501 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winreg.h" __declspec(dllimport) LSTATUS __stdcall RegEnumKeyExA ( HKEY hKey, DWORD dwIndex, LPSTR lpName, LPDWORD lpcchName, LPDWORD lpReserved, LPSTR lpClass, LPDWORD lpcchClass, PFILETIME lpftLastWriteTime ); __declspec(dllimport) LSTATUS __stdcall RegEnumKeyExW ( HKEY hKey, DWORD dwIndex, LPWSTR lpName, LPDWORD lpcchName, LPDWORD lpReserved, LPWSTR lpClass, LPDWORD lpcchClass, PFILETIME lpftLastWriteTime ); #line 533 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winreg.h" __declspec(dllimport) LSTATUS __stdcall RegEnumValueA ( HKEY hKey, DWORD dwIndex, LPSTR lpValueName, LPDWORD lpcchValueName, LPDWORD lpReserved, LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData ); __declspec(dllimport) LSTATUS __stdcall RegEnumValueW ( HKEY hKey, DWORD dwIndex, LPWSTR lpValueName, LPDWORD lpcchValueName, LPDWORD lpReserved, LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData ); #line 565 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winreg.h" __declspec(dllimport) LSTATUS __stdcall RegFlushKey ( HKEY hKey ); __declspec(dllimport) LSTATUS __stdcall RegGetKeySecurity ( HKEY hKey, SECURITY_INFORMATION SecurityInformation, PSECURITY_DESCRIPTOR pSecurityDescriptor, LPDWORD lpcbSecurityDescriptor ); __declspec(dllimport) LSTATUS __stdcall RegLoadKeyA ( HKEY hKey, LPCSTR lpSubKey, LPCSTR lpFile ); __declspec(dllimport) LSTATUS __stdcall RegLoadKeyW ( HKEY hKey, LPCWSTR lpSubKey, LPCWSTR lpFile ); #line 604 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winreg.h" __declspec(dllimport) LSTATUS __stdcall RegNotifyChangeKeyValue ( HKEY hKey, BOOL bWatchSubtree, DWORD dwNotifyFilter, HANDLE hEvent, BOOL fAsynchronous ); __declspec(dllimport) LSTATUS __stdcall RegOpenKeyA ( HKEY hKey, LPCSTR lpSubKey, PHKEY phkResult ); __declspec(dllimport) LSTATUS __stdcall RegOpenKeyW ( HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult ); #line 637 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winreg.h" __declspec(dllimport) LSTATUS __stdcall RegOpenKeyExA ( HKEY hKey, LPCSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult ); __declspec(dllimport) LSTATUS __stdcall RegOpenKeyExW ( HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult ); #line 663 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winreg.h" __declspec(dllimport) LSTATUS __stdcall RegOpenKeyTransactedA ( HKEY hKey, LPCSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult, HANDLE hTransaction, PVOID pExtendedParemeter ); __declspec(dllimport) LSTATUS __stdcall RegOpenKeyTransactedW ( HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult, HANDLE hTransaction, PVOID pExtendedParemeter ); #line 693 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winreg.h" __declspec(dllimport) LSTATUS __stdcall RegQueryInfoKeyA ( HKEY hKey, LPSTR lpClass, LPDWORD lpcchClass, LPDWORD lpReserved, LPDWORD lpcSubKeys, LPDWORD lpcbMaxSubKeyLen, LPDWORD lpcbMaxClassLen, LPDWORD lpcValues, LPDWORD lpcbMaxValueNameLen, LPDWORD lpcbMaxValueLen, LPDWORD lpcbSecurityDescriptor, PFILETIME lpftLastWriteTime ); __declspec(dllimport) LSTATUS __stdcall RegQueryInfoKeyW ( HKEY hKey, LPWSTR lpClass, LPDWORD lpcchClass, LPDWORD lpReserved, LPDWORD lpcSubKeys, LPDWORD lpcbMaxSubKeyLen, LPDWORD lpcbMaxClassLen, LPDWORD lpcValues, LPDWORD lpcbMaxValueNameLen, LPDWORD lpcbMaxValueLen, LPDWORD lpcbSecurityDescriptor, PFILETIME lpftLastWriteTime ); #line 733 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winreg.h" __declspec(dllimport) LSTATUS __stdcall RegQueryValueA ( HKEY hKey, LPCSTR lpSubKey, LPSTR lpData, PLONG lpcbData ); __declspec(dllimport) LSTATUS __stdcall RegQueryValueW ( HKEY hKey, LPCWSTR lpSubKey, LPWSTR lpData, PLONG lpcbData ); #line 757 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winreg.h" __declspec(dllimport) LSTATUS __stdcall RegQueryMultipleValuesA ( HKEY hKey, PVALENTA val_list, DWORD num_vals, LPSTR lpValueBuf, LPDWORD ldwTotsize ); __declspec(dllimport) LSTATUS __stdcall RegQueryMultipleValuesW ( HKEY hKey, PVALENTW val_list, DWORD num_vals, LPWSTR lpValueBuf, LPDWORD ldwTotsize ); #line 785 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winreg.h" #line 786 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winreg.h" __declspec(dllimport) LSTATUS __stdcall RegQueryValueExA ( HKEY hKey, LPCSTR lpValueName, LPDWORD lpReserved, LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData ); __declspec(dllimport) LSTATUS __stdcall RegQueryValueExW ( HKEY hKey, LPCWSTR lpValueName, LPDWORD lpReserved, LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData ); #line 814 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winreg.h" __declspec(dllimport) LSTATUS __stdcall RegReplaceKeyA ( HKEY hKey, LPCSTR lpSubKey, LPCSTR lpNewFile, LPCSTR lpOldFile ); __declspec(dllimport) LSTATUS __stdcall RegReplaceKeyW ( HKEY hKey, LPCWSTR lpSubKey, LPCWSTR lpNewFile, LPCWSTR lpOldFile ); #line 838 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winreg.h" __declspec(dllimport) LSTATUS __stdcall RegRestoreKeyA ( HKEY hKey, LPCSTR lpFile, DWORD dwFlags ); __declspec(dllimport) LSTATUS __stdcall RegRestoreKeyW ( HKEY hKey, LPCWSTR lpFile, DWORD dwFlags ); #line 860 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winreg.h" __declspec(dllimport) LSTATUS __stdcall RegSaveKeyA ( HKEY hKey, LPCSTR lpFile, const LPSECURITY_ATTRIBUTES lpSecurityAttributes ); __declspec(dllimport) LSTATUS __stdcall RegSaveKeyW ( HKEY hKey, LPCWSTR lpFile, const LPSECURITY_ATTRIBUTES lpSecurityAttributes ); #line 882 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winreg.h" __declspec(dllimport) LSTATUS __stdcall RegSetKeySecurity ( HKEY hKey, SECURITY_INFORMATION SecurityInformation, PSECURITY_DESCRIPTOR pSecurityDescriptor ); __declspec(dllimport) LSTATUS __stdcall RegSetValueA ( HKEY hKey, LPCSTR lpSubKey, DWORD dwType, LPCSTR lpData, DWORD cbData ); __declspec(dllimport) LSTATUS __stdcall RegSetValueW ( HKEY hKey, LPCWSTR lpSubKey, DWORD dwType, LPCWSTR lpData, DWORD cbData ); #line 917 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winreg.h" __declspec(dllimport) LSTATUS __stdcall RegSetValueExA ( HKEY hKey, LPCSTR lpValueName, DWORD Reserved, DWORD dwType, const BYTE* lpData, DWORD cbData ); __declspec(dllimport) LSTATUS __stdcall RegSetValueExW ( HKEY hKey, LPCWSTR lpValueName, DWORD Reserved, DWORD dwType, const BYTE* lpData, DWORD cbData ); #line 946 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winreg.h" __declspec(dllimport) LSTATUS __stdcall RegUnLoadKeyA ( HKEY hKey, LPCSTR lpSubKey ); __declspec(dllimport) LSTATUS __stdcall RegUnLoadKeyW ( HKEY hKey, LPCWSTR lpSubKey ); #line 966 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winreg.h" // // Utils wrappers // #line 1152 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winreg.h" // // Remoteable System Shutdown APIs // __declspec(dllimport) BOOL __stdcall InitiateSystemShutdownA( LPSTR lpMachineName, LPSTR lpMessage, DWORD dwTimeout, BOOL bForceAppsClosed, BOOL bRebootAfterShutdown ); __declspec(dllimport) BOOL __stdcall InitiateSystemShutdownW( LPWSTR lpMachineName, LPWSTR lpMessage, DWORD dwTimeout, BOOL bForceAppsClosed, BOOL bRebootAfterShutdown ); #line 1182 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winreg.h" __declspec(dllimport) BOOL __stdcall AbortSystemShutdownA( LPSTR lpMachineName ); __declspec(dllimport) BOOL __stdcall AbortSystemShutdownW( LPWSTR lpMachineName ); #line 1201 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winreg.h" // // defines for InitiateSystemShutdownEx reason codes // #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\reason.h" //+------------------------------------------------------------------- // // Microsoft Windows // Copyright (c) Microsoft Corporation. All rights reserved. // // File: reason.h // // Contents: Shutdown reason code values. // // History: 8-00 Created Hughleat // //-------------------------------------------------------------------- #pragma once // Reason flags // Flags used by the various UIs. // Flags that end up in the event log code. // Microsoft major reasons. // Microsoft minor reasons. // This mask cuts out UI flags. // Convenience flags. /* * Maximum character lengths for reason name, description, problem id, and * comment respectively. */ /* * S.E.T. policy value * */ /* * Snapshot policy values */ /* * Maximue user defined reasons */ #line 118 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\reason.h" #line 1207 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winreg.h" // // Then for Historical reasons support some old symbols, internal only // // MAX Shutdown TimeOut == 10 Years in seconds // __declspec(dllimport) BOOL __stdcall InitiateSystemShutdownExA( LPSTR lpMachineName, LPSTR lpMessage, DWORD dwTimeout, BOOL bForceAppsClosed, BOOL bRebootAfterShutdown, DWORD dwReason ); __declspec(dllimport) BOOL __stdcall InitiateSystemShutdownExW( LPWSTR lpMachineName, LPWSTR lpMessage, DWORD dwTimeout, BOOL bForceAppsClosed, BOOL bRebootAfterShutdown, DWORD dwReason ); #line 1252 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winreg.h" // // Shutdown flags // __declspec(dllimport) DWORD __stdcall InitiateShutdownA( LPSTR lpMachineName, LPSTR lpMessage, DWORD dwGracePeriod, DWORD dwShutdownFlags, DWORD dwReason ); __declspec(dllimport) DWORD __stdcall InitiateShutdownW( LPWSTR lpMachineName, LPWSTR lpMessage, DWORD dwGracePeriod, DWORD dwShutdownFlags, DWORD dwReason ); #line 1292 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winreg.h" __declspec(dllimport) LSTATUS __stdcall RegSaveKeyExA ( HKEY hKey, LPCSTR lpFile, const LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD Flags ); __declspec(dllimport) LSTATUS __stdcall RegSaveKeyExW ( HKEY hKey, LPCWSTR lpFile, const LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD Flags ); #line 1316 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winreg.h" __declspec(dllimport) LONG __stdcall Wow64Win32ApiEntry ( DWORD dwFuncNumber, DWORD dwFlag, DWORD dwRes ); } #line 1329 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winreg.h" #line 1332 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winreg.h" #line 168 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windows.h" #line 169 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windows.h" #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnetwk.h" /*++ Copyright (c) Microsoft Corporation. All rights reserved. Module Name: winnetwk.h Abstract: Standard WINNET Header File for WIN32 Environment: User Mode -Win32 Notes: optional-notes --*/ #pragma once extern "C" { #line 32 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnetwk.h" // // Network types // // // Network Resources. // #line 118 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnetwk.h" #line 125 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnetwk.h" #line 135 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnetwk.h" #line 149 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnetwk.h" #line 153 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnetwk.h" typedef struct _NETRESOURCEA { DWORD dwScope; DWORD dwType; DWORD dwDisplayType; DWORD dwUsage; LPSTR lpLocalName; LPSTR lpRemoteName; LPSTR lpComment ; LPSTR lpProvider; }NETRESOURCEA, *LPNETRESOURCEA; typedef struct _NETRESOURCEW { DWORD dwScope; DWORD dwType; DWORD dwDisplayType; DWORD dwUsage; LPWSTR lpLocalName; LPWSTR lpRemoteName; LPWSTR lpComment ; LPWSTR lpProvider; }NETRESOURCEW, *LPNETRESOURCEW; typedef NETRESOURCEW NETRESOURCE; typedef LPNETRESOURCEW LPNETRESOURCE; #line 181 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnetwk.h" // // Network Connections. // #line 203 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnetwk.h" #line 207 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnetwk.h" #line 210 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnetwk.h" DWORD __stdcall WNetAddConnectionA( LPCSTR lpRemoteName, LPCSTR lpPassword, LPCSTR lpLocalName ); DWORD __stdcall WNetAddConnectionW( LPCWSTR lpRemoteName, LPCWSTR lpPassword, LPCWSTR lpLocalName ); #line 228 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnetwk.h" DWORD __stdcall WNetAddConnection2A( LPNETRESOURCEA lpNetResource, LPCSTR lpPassword, LPCSTR lpUserName, DWORD dwFlags ); DWORD __stdcall WNetAddConnection2W( LPNETRESOURCEW lpNetResource, LPCWSTR lpPassword, LPCWSTR lpUserName, DWORD dwFlags ); #line 248 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnetwk.h" DWORD __stdcall WNetAddConnection3A( HWND hwndOwner, LPNETRESOURCEA lpNetResource, LPCSTR lpPassword, LPCSTR lpUserName, DWORD dwFlags ); DWORD __stdcall WNetAddConnection3W( HWND hwndOwner, LPNETRESOURCEW lpNetResource, LPCWSTR lpPassword, LPCWSTR lpUserName, DWORD dwFlags ); #line 270 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnetwk.h" DWORD __stdcall WNetCancelConnectionA( LPCSTR lpName, BOOL fForce ); DWORD __stdcall WNetCancelConnectionW( LPCWSTR lpName, BOOL fForce ); #line 286 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnetwk.h" DWORD __stdcall WNetCancelConnection2A( LPCSTR lpName, DWORD dwFlags, BOOL fForce ); DWORD __stdcall WNetCancelConnection2W( LPCWSTR lpName, DWORD dwFlags, BOOL fForce ); #line 304 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnetwk.h" DWORD __stdcall WNetGetConnectionA( LPCSTR lpLocalName, LPSTR lpRemoteName, LPDWORD lpnLength ); DWORD __stdcall WNetGetConnectionW( LPCWSTR lpLocalName, LPWSTR lpRemoteName, LPDWORD lpnLength ); #line 322 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnetwk.h" #line 334 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnetwk.h" DWORD __stdcall WNetRestoreConnectionW( HWND hWnd, LPCWSTR lpDevice ); #line 342 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnetwk.h" DWORD __stdcall WNetUseConnectionA( HWND hwndOwner, LPNETRESOURCEA lpNetResource, LPCSTR lpPassword, LPCSTR lpUserId, DWORD dwFlags, LPSTR lpAccessName, LPDWORD lpBufferSize, LPDWORD lpResult ); DWORD __stdcall WNetUseConnectionW( HWND hwndOwner, LPNETRESOURCEW lpNetResource, LPCWSTR lpPassword, LPCWSTR lpUserId, DWORD dwFlags, LPWSTR lpAccessName, LPDWORD lpBufferSize, LPDWORD lpResult ); #line 372 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnetwk.h" #line 373 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnetwk.h" // // Network Connection Dialogs. // DWORD __stdcall WNetConnectionDialog( HWND hwnd, DWORD dwType ); DWORD __stdcall WNetDisconnectDialog( HWND hwnd, DWORD dwType ); typedef struct _CONNECTDLGSTRUCTA{ DWORD cbStructure; /* size of this structure in bytes */ HWND hwndOwner; /* owner window for the dialog */ LPNETRESOURCEA lpConnRes;/* Requested Resource info */ DWORD dwFlags; /* flags (see below) */ DWORD dwDevNum; /* number of devices connected to */ } CONNECTDLGSTRUCTA, *LPCONNECTDLGSTRUCTA; typedef struct _CONNECTDLGSTRUCTW{ DWORD cbStructure; /* size of this structure in bytes */ HWND hwndOwner; /* owner window for the dialog */ LPNETRESOURCEW lpConnRes;/* Requested Resource info */ DWORD dwFlags; /* flags (see below) */ DWORD dwDevNum; /* number of devices connected to */ } CONNECTDLGSTRUCTW, *LPCONNECTDLGSTRUCTW; typedef CONNECTDLGSTRUCTW CONNECTDLGSTRUCT; typedef LPCONNECTDLGSTRUCTW LPCONNECTDLGSTRUCT; #line 413 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnetwk.h" /* * NOTE: Set at most ONE of the below flags. If neither flag is set, * then the persistence is set to whatever the user chose during * a previous connection */ DWORD __stdcall WNetConnectionDialog1A( LPCONNECTDLGSTRUCTA lpConnDlgStruct ); DWORD __stdcall WNetConnectionDialog1W( LPCONNECTDLGSTRUCTW lpConnDlgStruct ); #line 440 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnetwk.h" typedef struct _DISCDLGSTRUCTA{ DWORD cbStructure; /* size of this structure in bytes */ HWND hwndOwner; /* owner window for the dialog */ LPSTR lpLocalName; /* local device name */ LPSTR lpRemoteName; /* network resource name */ DWORD dwFlags; /* flags */ } DISCDLGSTRUCTA, *LPDISCDLGSTRUCTA; typedef struct _DISCDLGSTRUCTW{ DWORD cbStructure; /* size of this structure in bytes */ HWND hwndOwner; /* owner window for the dialog */ LPWSTR lpLocalName; /* local device name */ LPWSTR lpRemoteName; /* network resource name */ DWORD dwFlags; /* flags */ } DISCDLGSTRUCTW, *LPDISCDLGSTRUCTW; typedef DISCDLGSTRUCTW DISCDLGSTRUCT; typedef LPDISCDLGSTRUCTW LPDISCDLGSTRUCT; #line 462 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnetwk.h" DWORD __stdcall WNetDisconnectDialog1A( LPDISCDLGSTRUCTA lpConnDlgStruct ); DWORD __stdcall WNetDisconnectDialog1W( LPDISCDLGSTRUCTW lpConnDlgStruct ); #line 479 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnetwk.h" #line 480 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnetwk.h" // // Network Browsing. // DWORD __stdcall WNetOpenEnumA( DWORD dwScope, DWORD dwType, DWORD dwUsage, LPNETRESOURCEA lpNetResource, LPHANDLE lphEnum ); DWORD __stdcall WNetOpenEnumW( DWORD dwScope, DWORD dwType, DWORD dwUsage, LPNETRESOURCEW lpNetResource, LPHANDLE lphEnum ); #line 506 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnetwk.h" DWORD __stdcall WNetEnumResourceA( HANDLE hEnum, LPDWORD lpcCount, LPVOID lpBuffer, LPDWORD lpBufferSize ); DWORD __stdcall WNetEnumResourceW( HANDLE hEnum, LPDWORD lpcCount, LPVOID lpBuffer, LPDWORD lpBufferSize ); #line 526 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnetwk.h" DWORD __stdcall WNetCloseEnum( HANDLE hEnum ); DWORD __stdcall WNetGetResourceParentA( LPNETRESOURCEA lpNetResource, LPVOID lpBuffer, LPDWORD lpcbBuffer ); DWORD __stdcall WNetGetResourceParentW( LPNETRESOURCEW lpNetResource, LPVOID lpBuffer, LPDWORD lpcbBuffer ); #line 550 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnetwk.h" DWORD __stdcall WNetGetResourceInformationA( LPNETRESOURCEA lpNetResource, LPVOID lpBuffer, LPDWORD lpcbBuffer, LPSTR *lplpSystem ); DWORD __stdcall WNetGetResourceInformationW( LPNETRESOURCEW lpNetResource, LPVOID lpBuffer, LPDWORD lpcbBuffer, LPWSTR *lplpSystem ); #line 570 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnetwk.h" #line 571 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnetwk.h" // // Universal Naming. // typedef struct _UNIVERSAL_NAME_INFOA { LPSTR lpUniversalName; }UNIVERSAL_NAME_INFOA, *LPUNIVERSAL_NAME_INFOA; typedef struct _UNIVERSAL_NAME_INFOW { LPWSTR lpUniversalName; }UNIVERSAL_NAME_INFOW, *LPUNIVERSAL_NAME_INFOW; typedef UNIVERSAL_NAME_INFOW UNIVERSAL_NAME_INFO; typedef LPUNIVERSAL_NAME_INFOW LPUNIVERSAL_NAME_INFO; #line 592 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnetwk.h" typedef struct _REMOTE_NAME_INFOA { LPSTR lpUniversalName; LPSTR lpConnectionName; LPSTR lpRemainingPath; }REMOTE_NAME_INFOA, *LPREMOTE_NAME_INFOA; typedef struct _REMOTE_NAME_INFOW { LPWSTR lpUniversalName; LPWSTR lpConnectionName; LPWSTR lpRemainingPath; }REMOTE_NAME_INFOW, *LPREMOTE_NAME_INFOW; typedef REMOTE_NAME_INFOW REMOTE_NAME_INFO; typedef LPREMOTE_NAME_INFOW LPREMOTE_NAME_INFO; #line 610 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnetwk.h" DWORD __stdcall WNetGetUniversalNameA( LPCSTR lpLocalPath, DWORD dwInfoLevel, LPVOID lpBuffer, LPDWORD lpBufferSize ); DWORD __stdcall WNetGetUniversalNameW( LPCWSTR lpLocalPath, DWORD dwInfoLevel, LPVOID lpBuffer, LPDWORD lpBufferSize ); #line 630 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnetwk.h" // // Authentication and Logon/Logoff. // DWORD __stdcall WNetGetUserA( LPCSTR lpName, LPSTR lpUserName, LPDWORD lpnLength ); DWORD __stdcall WNetGetUserW( LPCWSTR lpName, LPWSTR lpUserName, LPDWORD lpnLength ); #line 652 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnetwk.h" // // Other. // #line 665 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnetwk.h" DWORD __stdcall WNetGetProviderNameA( DWORD dwNetType, LPSTR lpProviderName, LPDWORD lpBufferSize ); DWORD __stdcall WNetGetProviderNameW( DWORD dwNetType, LPWSTR lpProviderName, LPDWORD lpBufferSize ); #line 685 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnetwk.h" typedef struct _NETINFOSTRUCT{ DWORD cbStructure; DWORD dwProviderVersion; DWORD dwStatus; DWORD dwCharacteristics; ULONG_PTR dwHandle; WORD wNetType; DWORD dwPrinters; DWORD dwDrives; } NETINFOSTRUCT, *LPNETINFOSTRUCT; DWORD __stdcall WNetGetNetworkInformationA( LPCSTR lpProvider, LPNETINFOSTRUCT lpNetInfoStruct ); DWORD __stdcall WNetGetNetworkInformationW( LPCWSTR lpProvider, LPNETINFOSTRUCT lpNetInfoStruct ); #line 716 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnetwk.h" #line 718 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnetwk.h" // // Error handling. // DWORD __stdcall WNetGetLastErrorA( LPDWORD lpError, LPSTR lpErrorBuf, DWORD nErrorBufSize, LPSTR lpNameBuf, DWORD nNameBufSize ); DWORD __stdcall WNetGetLastErrorW( LPDWORD lpError, LPWSTR lpErrorBuf, DWORD nErrorBufSize, LPWSTR lpNameBuf, DWORD nNameBufSize ); #line 744 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnetwk.h" // // STATUS CODES // // General #line 774 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnetwk.h" // Connection #line 795 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnetwk.h" // Enumeration // Authentication #line 808 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnetwk.h" // // For Shell // typedef struct _NETCONNECTINFOSTRUCT{ DWORD cbStructure; DWORD dwFlags; DWORD dwSpeed; DWORD dwDelay; DWORD dwOptDataSize; } NETCONNECTINFOSTRUCT, *LPNETCONNECTINFOSTRUCT; DWORD __stdcall MultinetGetConnectionPerformanceA( LPNETRESOURCEA lpNetResource, LPNETCONNECTINFOSTRUCT lpNetConnectInfoStruct ); DWORD __stdcall MultinetGetConnectionPerformanceW( LPNETRESOURCEW lpNetResource, LPNETCONNECTINFOSTRUCT lpNetConnectInfoStruct ); #line 842 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnetwk.h" #line 843 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnetwk.h" } #line 848 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnetwk.h" #line 850 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winnetwk.h" #line 171 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windows.h" #line 172 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windows.h" #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\stralign.h" /*++ Copyright (c) 2000 Microsoft Corporation Module Name: stralign.h Abstract: This module contains macros and prototypes to expose the unaligned wide character interfaces. Public interfaces created or declared here include: ua_CharUpper() ua_CharUpperW() ua_lstrcmp() ua_lstrcmpW() ua_lstrcmpi() ua_lstrcmpiW() ua_lstrlen() ua_lstrlenW() ua_tcscpy() ua_tcscpy_s() ua_wcschr() ua_wcscpy() ua_wcscpy_s() ua_wcsicmp() ua_wcslen() ua_wcsrchr() STRUC_ALIGNED_STACK_COPY() TSTR_ALIGNED() TSTR_ALIGNED_STACK_COPY() WSTR_ALIGNED() WSTR_ALIGNED_STACK_COPY() Author: --*/ #line 52 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\stralign.h" #line 53 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\stralign.h" #line 58 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\stralign.h" #line 60 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\stralign.h" #line 61 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\stralign.h" extern "C" { #line 65 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\stralign.h" // // N.B. On AMD64 platforms the key word __unaligned is enabled, but has no // effect and strings can be unaligned exactly as they are on the x86. // Therefore, all AMD64 alignment macros are forced to produce values // that make the subject arguments appear as it they are aligned. // #line 77 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\stralign.h" // // Alignment of unicode strings is not necessary on X86. // #line 97 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\stralign.h" __inline PUWSTR static __declspec(deprecated) ua_wcscpy( PUWSTR Destination, PCUWSTR Source ) { #pragma warning(push) #pragma warning(disable:4995) #pragma warning(disable:4996) return wcscpy(Destination, Source); #pragma warning(pop) } #line 474 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\stralign.h" //++ // // VOID // WSTR_ALIGNED_STACK_COPY ( // OUT PCWSTR *TargetString, // IN PCUWSTR SourceString OPTIONAL // ) // // VOID // TSTR_ALIGNED_STACK_COPY ( // OUT PCTSTR *TargetString, // IN PCUTSTR SourceString OPTIONAL // ) // // Routine Description: // // These macros set TargetString to an aligned pointer to the string // represented by SourceString. If necessary, an aligned copy of // SourceString is copied onto the stack. // // Arguments: // // TargetString - Supplies a pointer to a pointer to the resultant // string. This may be the same as SourceString if // that argument is aligned. // // SourceString - Supplies a pointer to the possibly unaligned UNICODE // string. // // Return Value: // // None. // // Note: // // These macros may allocate memory on the stack via the CRT function // _alloca(). This memory is "freed" when the calling function exits. // As a result, do not use these macros inside of a loop that may execute // a large number of times - instead, use a wrapper function, or use // an explicit buffer like this: // // TCHAR AlignedStringBuffer[ MAX_FOOSTR_CHARS ]; // PTSTR AlignedString; // // while (a < b) { // ... // if (TSTR_ALIGNED(s) { // AlignedString = s; // } else { // AlignedString = (PTSTR)ua_tcscpy(AlignedStringBuffer,s); // } // SomeSystemFunction(AlignedString); // ... // } // // //-- // // __UA_WSTRSIZE returns the number of bytes required to store the // supplied null-terminated UNICODE string. // // __UA_LOCALCOPY accepts a pointer to unaligned data and a size. It // allocates an aligned buffer on the stack and copies the data into // it, returning a pointer to the buffer. // #line 545 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\stralign.h" // // Note that NULL is aligned. // #line 582 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\stralign.h" //++ // // CONST * // STRUC_ALIGNED_STACK_COPY ( // IN , // IN PVOID Struc OPTIONAL // ) // // Routine Description: // // This macro returns an aligned pointer to Struc, creating a local // copy on the stack if necessary. // // This should be used only for relatively small structures, and efforts // should be made to align the structure properly in the first place. Use // this macro only as a last resort. // // Arguments: // // - The type specifier of Struc // // Struc - Supplies a pointer to the structure in question. // // Return Value: // // Returns a const pointer to Struc if it is properly aligned, or a pointer // to a stack-allocated copy of Struc if it is not. // //-- #line 626 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\stralign.h" #line 630 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\stralign.h" #line 643 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\stralign.h" #line 658 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\stralign.h" #line 662 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\stralign.h" } #line 666 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\stralign.h" #line 668 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\stralign.h" #line 209 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windows.h" #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winsvc.h" /*++ BUILD Version: 0010 // Increment this if a change has global effects Copyright (c) 1995-1998 Microsoft Corporation Module Name: winsvc.h Abstract: Header file for the Service Control Manager Environment: User Mode - Win32 --*/ // // Define API decoration for direct importing of DLL references. // #line 32 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winsvc.h" extern "C" { #line 36 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winsvc.h" // // Constants // // // Service database names // // // Character to designate that a name is a group // #line 73 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winsvc.h" // // Value to indicate no change to an optional parameter // // // Service State -- for Enum Requests (Bit Mask) // // // Controls // // // Service State -- for CurrentState // // // Controls Accepted (Bit Mask) // // // Service Control Manager object specific access types // // // Service object specific access type // // // Service flags for QueryServiceStatusEx // // // Info levels for ChangeServiceConfig2 and QueryServiceConfig2 // // // Info levels for NotifyServiceStatusChange // // // Service notification masks // // // The following defines are for service stop reason codes // // // Stop reason flags. Update SERVICE_STOP_REASON_FLAG_MAX when // new flags are added. // // // Microsoft major reasons. Update SERVICE_STOP_REASON_MAJOR_MAX when // new codes are added. // // // Microsoft minor reasons. Update SERVICE_STOP_REASON_MINOR_MAX when // new codes are added. // // // Info levels for ControlServiceEx // // // Service SID types supported // // // Service description string // typedef struct _SERVICE_DESCRIPTIONA { LPSTR lpDescription; } SERVICE_DESCRIPTIONA, *LPSERVICE_DESCRIPTIONA; // // Service description string // typedef struct _SERVICE_DESCRIPTIONW { LPWSTR lpDescription; } SERVICE_DESCRIPTIONW, *LPSERVICE_DESCRIPTIONW; typedef SERVICE_DESCRIPTIONW SERVICE_DESCRIPTION; typedef LPSERVICE_DESCRIPTIONW LPSERVICE_DESCRIPTION; #line 305 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winsvc.h" // // Actions to take on service failure // typedef enum _SC_ACTION_TYPE { SC_ACTION_NONE = 0, SC_ACTION_RESTART = 1, SC_ACTION_REBOOT = 2, SC_ACTION_RUN_COMMAND = 3 } SC_ACTION_TYPE; typedef struct _SC_ACTION { SC_ACTION_TYPE Type; DWORD Delay; } SC_ACTION, *LPSC_ACTION; typedef struct _SERVICE_FAILURE_ACTIONSA { DWORD dwResetPeriod; LPSTR lpRebootMsg; LPSTR lpCommand; DWORD cActions; SC_ACTION * lpsaActions; } SERVICE_FAILURE_ACTIONSA, *LPSERVICE_FAILURE_ACTIONSA; typedef struct _SERVICE_FAILURE_ACTIONSW { DWORD dwResetPeriod; LPWSTR lpRebootMsg; LPWSTR lpCommand; DWORD cActions; SC_ACTION * lpsaActions; } SERVICE_FAILURE_ACTIONSW, *LPSERVICE_FAILURE_ACTIONSW; typedef SERVICE_FAILURE_ACTIONSW SERVICE_FAILURE_ACTIONS; typedef LPSERVICE_FAILURE_ACTIONSW LPSERVICE_FAILURE_ACTIONS; #line 354 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winsvc.h" // // Service delayed autostart info setting // typedef struct _SERVICE_DELAYED_AUTO_START_INFO { BOOL fDelayedAutostart; // Delayed autostart flag } SERVICE_DELAYED_AUTO_START_INFO, *LPSERVICE_DELAYED_AUTO_START_INFO; // // Service failure actions flag setting // typedef struct _SERVICE_FAILURE_ACTIONS_FLAG { BOOL fFailureActionsOnNonCrashFailures; // Failure actions flag } SERVICE_FAILURE_ACTIONS_FLAG, *LPSERVICE_FAILURE_ACTIONS_FLAG; // // Service SID info setting // typedef struct _SERVICE_SID_INFO { DWORD dwServiceSidType; // Service SID type } SERVICE_SID_INFO, *LPSERVICE_SID_INFO; // // Service required privileges information // typedef struct _SERVICE_REQUIRED_PRIVILEGES_INFOA { LPSTR pmszRequiredPrivileges; // Required privileges multi-sz } SERVICE_REQUIRED_PRIVILEGES_INFOA, *LPSERVICE_REQUIRED_PRIVILEGES_INFOA; // // Service required privileges information // typedef struct _SERVICE_REQUIRED_PRIVILEGES_INFOW { LPWSTR pmszRequiredPrivileges; // Required privileges multi-sz } SERVICE_REQUIRED_PRIVILEGES_INFOW, *LPSERVICE_REQUIRED_PRIVILEGES_INFOW; typedef SERVICE_REQUIRED_PRIVILEGES_INFOW SERVICE_REQUIRED_PRIVILEGES_INFO; typedef LPSERVICE_REQUIRED_PRIVILEGES_INFOW LPSERVICE_REQUIRED_PRIVILEGES_INFO; #line 395 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winsvc.h" // // Service preshutdown timeout setting // typedef struct _SERVICE_PRESHUTDOWN_INFO { DWORD dwPreshutdownTimeout; // Timeout in msecs } SERVICE_PRESHUTDOWN_INFO, *LPSERVICE_PRESHUTDOWN_INFO; // // Handle Types // struct SC_HANDLE__ { int unused; }; typedef struct SC_HANDLE__ *SC_HANDLE; typedef SC_HANDLE *LPSC_HANDLE; struct SERVICE_STATUS_HANDLE__ { int unused; }; typedef struct SERVICE_STATUS_HANDLE__ *SERVICE_STATUS_HANDLE; // // Info levels for QueryServiceStatusEx // typedef enum _SC_STATUS_TYPE { SC_STATUS_PROCESS_INFO = 0 } SC_STATUS_TYPE; // // Info levels for EnumServicesStatusEx // typedef enum _SC_ENUM_TYPE { SC_ENUM_PROCESS_INFO = 0 } SC_ENUM_TYPE; // // Service Status Structures // typedef struct _SERVICE_STATUS { DWORD dwServiceType; DWORD dwCurrentState; DWORD dwControlsAccepted; DWORD dwWin32ExitCode; DWORD dwServiceSpecificExitCode; DWORD dwCheckPoint; DWORD dwWaitHint; } SERVICE_STATUS, *LPSERVICE_STATUS; typedef struct _SERVICE_STATUS_PROCESS { DWORD dwServiceType; DWORD dwCurrentState; DWORD dwControlsAccepted; DWORD dwWin32ExitCode; DWORD dwServiceSpecificExitCode; DWORD dwCheckPoint; DWORD dwWaitHint; DWORD dwProcessId; DWORD dwServiceFlags; } SERVICE_STATUS_PROCESS, *LPSERVICE_STATUS_PROCESS; // // Service Status Enumeration Structure // typedef struct _ENUM_SERVICE_STATUSA { LPSTR lpServiceName; LPSTR lpDisplayName; SERVICE_STATUS ServiceStatus; } ENUM_SERVICE_STATUSA, *LPENUM_SERVICE_STATUSA; typedef struct _ENUM_SERVICE_STATUSW { LPWSTR lpServiceName; LPWSTR lpDisplayName; SERVICE_STATUS ServiceStatus; } ENUM_SERVICE_STATUSW, *LPENUM_SERVICE_STATUSW; typedef ENUM_SERVICE_STATUSW ENUM_SERVICE_STATUS; typedef LPENUM_SERVICE_STATUSW LPENUM_SERVICE_STATUS; #line 476 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winsvc.h" typedef struct _ENUM_SERVICE_STATUS_PROCESSA { LPSTR lpServiceName; LPSTR lpDisplayName; SERVICE_STATUS_PROCESS ServiceStatusProcess; } ENUM_SERVICE_STATUS_PROCESSA, *LPENUM_SERVICE_STATUS_PROCESSA; typedef struct _ENUM_SERVICE_STATUS_PROCESSW { LPWSTR lpServiceName; LPWSTR lpDisplayName; SERVICE_STATUS_PROCESS ServiceStatusProcess; } ENUM_SERVICE_STATUS_PROCESSW, *LPENUM_SERVICE_STATUS_PROCESSW; typedef ENUM_SERVICE_STATUS_PROCESSW ENUM_SERVICE_STATUS_PROCESS; typedef LPENUM_SERVICE_STATUS_PROCESSW LPENUM_SERVICE_STATUS_PROCESS; #line 494 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winsvc.h" // // Structures for the Lock API functions // typedef LPVOID SC_LOCK; typedef struct _QUERY_SERVICE_LOCK_STATUSA { DWORD fIsLocked; LPSTR lpLockOwner; DWORD dwLockDuration; } QUERY_SERVICE_LOCK_STATUSA, *LPQUERY_SERVICE_LOCK_STATUSA; typedef struct _QUERY_SERVICE_LOCK_STATUSW { DWORD fIsLocked; LPWSTR lpLockOwner; DWORD dwLockDuration; } QUERY_SERVICE_LOCK_STATUSW, *LPQUERY_SERVICE_LOCK_STATUSW; typedef QUERY_SERVICE_LOCK_STATUSW QUERY_SERVICE_LOCK_STATUS; typedef LPQUERY_SERVICE_LOCK_STATUSW LPQUERY_SERVICE_LOCK_STATUS; #line 518 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winsvc.h" // // Query Service Configuration Structure // typedef struct _QUERY_SERVICE_CONFIGA { DWORD dwServiceType; DWORD dwStartType; DWORD dwErrorControl; LPSTR lpBinaryPathName; LPSTR lpLoadOrderGroup; DWORD dwTagId; LPSTR lpDependencies; LPSTR lpServiceStartName; LPSTR lpDisplayName; } QUERY_SERVICE_CONFIGA, *LPQUERY_SERVICE_CONFIGA; typedef struct _QUERY_SERVICE_CONFIGW { DWORD dwServiceType; DWORD dwStartType; DWORD dwErrorControl; LPWSTR lpBinaryPathName; LPWSTR lpLoadOrderGroup; DWORD dwTagId; LPWSTR lpDependencies; LPWSTR lpServiceStartName; LPWSTR lpDisplayName; } QUERY_SERVICE_CONFIGW, *LPQUERY_SERVICE_CONFIGW; typedef QUERY_SERVICE_CONFIGW QUERY_SERVICE_CONFIG; typedef LPQUERY_SERVICE_CONFIGW LPQUERY_SERVICE_CONFIG; #line 554 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winsvc.h" // // Function Prototype for the Service Main Function // typedef void (__stdcall *LPSERVICE_MAIN_FUNCTIONW)( DWORD dwNumServicesArgs, LPWSTR *lpServiceArgVectors ); typedef void (__stdcall *LPSERVICE_MAIN_FUNCTIONA)( DWORD dwNumServicesArgs, LPSTR *lpServiceArgVectors ); #line 576 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winsvc.h" // // Service Start Table // typedef struct _SERVICE_TABLE_ENTRYA { LPSTR lpServiceName; LPSERVICE_MAIN_FUNCTIONA lpServiceProc; }SERVICE_TABLE_ENTRYA, *LPSERVICE_TABLE_ENTRYA; typedef struct _SERVICE_TABLE_ENTRYW { LPWSTR lpServiceName; LPSERVICE_MAIN_FUNCTIONW lpServiceProc; }SERVICE_TABLE_ENTRYW, *LPSERVICE_TABLE_ENTRYW; typedef SERVICE_TABLE_ENTRYW SERVICE_TABLE_ENTRY; typedef LPSERVICE_TABLE_ENTRYW LPSERVICE_TABLE_ENTRY; #line 597 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winsvc.h" // // Prototype for the Service Control Handler Function // typedef void (__stdcall *LPHANDLER_FUNCTION)( DWORD dwControl ); typedef DWORD (__stdcall *LPHANDLER_FUNCTION_EX)( DWORD dwControl, DWORD dwEventType, LPVOID lpEventData, LPVOID lpContext ); // // Service notification parameters // typedef void ( __stdcall * PFN_SC_NOTIFY_CALLBACK ) ( PVOID pParameter ); // // Each new notify structure is a superset of the older version // typedef struct _SERVICE_NOTIFY_1 { DWORD dwVersion; PFN_SC_NOTIFY_CALLBACK pfnNotifyCallback; PVOID pContext; DWORD dwNotificationStatus; SERVICE_STATUS_PROCESS ServiceStatus; } SERVICE_NOTIFY_1, *PSERVICE_NOTIFY_1; typedef struct _SERVICE_NOTIFY_2A { DWORD dwVersion; PFN_SC_NOTIFY_CALLBACK pfnNotifyCallback; PVOID pContext; DWORD dwNotificationStatus; SERVICE_STATUS_PROCESS ServiceStatus; DWORD dwNotificationTriggered; LPSTR pszServiceNames; } SERVICE_NOTIFY_2A, *PSERVICE_NOTIFY_2A; typedef struct _SERVICE_NOTIFY_2W { DWORD dwVersion; PFN_SC_NOTIFY_CALLBACK pfnNotifyCallback; PVOID pContext; DWORD dwNotificationStatus; SERVICE_STATUS_PROCESS ServiceStatus; DWORD dwNotificationTriggered; LPWSTR pszServiceNames; } SERVICE_NOTIFY_2W, *PSERVICE_NOTIFY_2W; typedef SERVICE_NOTIFY_2W SERVICE_NOTIFY_2; typedef PSERVICE_NOTIFY_2W PSERVICE_NOTIFY_2; #line 658 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winsvc.h" typedef SERVICE_NOTIFY_2A SERVICE_NOTIFYA, *PSERVICE_NOTIFYA; typedef SERVICE_NOTIFY_2W SERVICE_NOTIFYW, *PSERVICE_NOTIFYW; typedef SERVICE_NOTIFYW SERVICE_NOTIFY; typedef PSERVICE_NOTIFYW PSERVICE_NOTIFY; #line 668 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winsvc.h" // // Service control status reason parameters // typedef struct _SERVICE_CONTROL_STATUS_REASON_PARAMSA { DWORD dwReason; LPSTR pszComment; SERVICE_STATUS_PROCESS ServiceStatus; } SERVICE_CONTROL_STATUS_REASON_PARAMSA, *PSERVICE_CONTROL_STATUS_REASON_PARAMSA; // // Service control status reason parameters // typedef struct _SERVICE_CONTROL_STATUS_REASON_PARAMSW { DWORD dwReason; LPWSTR pszComment; SERVICE_STATUS_PROCESS ServiceStatus; } SERVICE_CONTROL_STATUS_REASON_PARAMSW, *PSERVICE_CONTROL_STATUS_REASON_PARAMSW; typedef SERVICE_CONTROL_STATUS_REASON_PARAMSW SERVICE_CONTROL_STATUS_REASON_PARAMS; typedef PSERVICE_CONTROL_STATUS_REASON_PARAMSW PSERVICE_CONTROL_STATUS_REASON_PARAMS; #line 692 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winsvc.h" /////////////////////////////////////////////////////////////////////////// // API Function Prototypes /////////////////////////////////////////////////////////////////////////// __declspec(dllimport) BOOL __stdcall ChangeServiceConfigA( SC_HANDLE hService, DWORD dwServiceType, DWORD dwStartType, DWORD dwErrorControl, LPCSTR lpBinaryPathName, LPCSTR lpLoadOrderGroup, LPDWORD lpdwTagId, LPCSTR lpDependencies, LPCSTR lpServiceStartName, LPCSTR lpPassword, LPCSTR lpDisplayName ); __declspec(dllimport) BOOL __stdcall ChangeServiceConfigW( SC_HANDLE hService, DWORD dwServiceType, DWORD dwStartType, DWORD dwErrorControl, LPCWSTR lpBinaryPathName, LPCWSTR lpLoadOrderGroup, LPDWORD lpdwTagId, LPCWSTR lpDependencies, LPCWSTR lpServiceStartName, LPCWSTR lpPassword, LPCWSTR lpDisplayName ); #line 735 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winsvc.h" __declspec(dllimport) BOOL __stdcall ChangeServiceConfig2A( SC_HANDLE hService, DWORD dwInfoLevel, LPVOID lpInfo ); __declspec(dllimport) BOOL __stdcall ChangeServiceConfig2W( SC_HANDLE hService, DWORD dwInfoLevel, LPVOID lpInfo ); #line 757 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winsvc.h" __declspec(dllimport) BOOL __stdcall CloseServiceHandle( SC_HANDLE hSCObject ); __declspec(dllimport) BOOL __stdcall ControlService( SC_HANDLE hService, DWORD dwControl, LPSERVICE_STATUS lpServiceStatus ); __declspec(dllimport) SC_HANDLE __stdcall CreateServiceA( SC_HANDLE hSCManager, LPCSTR lpServiceName, LPCSTR lpDisplayName, DWORD dwDesiredAccess, DWORD dwServiceType, DWORD dwStartType, DWORD dwErrorControl, LPCSTR lpBinaryPathName, LPCSTR lpLoadOrderGroup, LPDWORD lpdwTagId, LPCSTR lpDependencies, LPCSTR lpServiceStartName, LPCSTR lpPassword ); __declspec(dllimport) SC_HANDLE __stdcall CreateServiceW( SC_HANDLE hSCManager, LPCWSTR lpServiceName, LPCWSTR lpDisplayName, DWORD dwDesiredAccess, DWORD dwServiceType, DWORD dwStartType, DWORD dwErrorControl, LPCWSTR lpBinaryPathName, LPCWSTR lpLoadOrderGroup, LPDWORD lpdwTagId, LPCWSTR lpDependencies, LPCWSTR lpServiceStartName, LPCWSTR lpPassword ); #line 817 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winsvc.h" __declspec(dllimport) BOOL __stdcall DeleteService( SC_HANDLE hService ); __declspec(dllimport) BOOL __stdcall EnumDependentServicesA( SC_HANDLE hService, DWORD dwServiceState, LPENUM_SERVICE_STATUSA lpServices, DWORD cbBufSize, LPDWORD pcbBytesNeeded, LPDWORD lpServicesReturned ); __declspec(dllimport) BOOL __stdcall EnumDependentServicesW( SC_HANDLE hService, DWORD dwServiceState, LPENUM_SERVICE_STATUSW lpServices, DWORD cbBufSize, LPDWORD pcbBytesNeeded, LPDWORD lpServicesReturned ); #line 856 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winsvc.h" __declspec(dllimport) BOOL __stdcall EnumServicesStatusA( SC_HANDLE hSCManager, DWORD dwServiceType, DWORD dwServiceState, LPENUM_SERVICE_STATUSA lpServices, DWORD cbBufSize, LPDWORD pcbBytesNeeded, LPDWORD lpServicesReturned, LPDWORD lpResumeHandle ); __declspec(dllimport) BOOL __stdcall EnumServicesStatusW( SC_HANDLE hSCManager, DWORD dwServiceType, DWORD dwServiceState, LPENUM_SERVICE_STATUSW lpServices, DWORD cbBufSize, LPDWORD pcbBytesNeeded, LPDWORD lpServicesReturned, LPDWORD lpResumeHandle ); #line 892 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winsvc.h" __declspec(dllimport) BOOL __stdcall EnumServicesStatusExA( SC_HANDLE hSCManager, SC_ENUM_TYPE InfoLevel, DWORD dwServiceType, DWORD dwServiceState, LPBYTE lpServices, DWORD cbBufSize, LPDWORD pcbBytesNeeded, LPDWORD lpServicesReturned, LPDWORD lpResumeHandle, LPCSTR pszGroupName ); __declspec(dllimport) BOOL __stdcall EnumServicesStatusExW( SC_HANDLE hSCManager, SC_ENUM_TYPE InfoLevel, DWORD dwServiceType, DWORD dwServiceState, LPBYTE lpServices, DWORD cbBufSize, LPDWORD pcbBytesNeeded, LPDWORD lpServicesReturned, LPDWORD lpResumeHandle, LPCWSTR pszGroupName ); #line 932 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winsvc.h" __declspec(dllimport) BOOL __stdcall GetServiceKeyNameA( SC_HANDLE hSCManager, LPCSTR lpDisplayName, LPSTR lpServiceName, LPDWORD lpcchBuffer ); __declspec(dllimport) BOOL __stdcall GetServiceKeyNameW( SC_HANDLE hSCManager, LPCWSTR lpDisplayName, LPWSTR lpServiceName, LPDWORD lpcchBuffer ); #line 960 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winsvc.h" __declspec(dllimport) BOOL __stdcall GetServiceDisplayNameA( SC_HANDLE hSCManager, LPCSTR lpServiceName, LPSTR lpDisplayName, LPDWORD lpcchBuffer ); __declspec(dllimport) BOOL __stdcall GetServiceDisplayNameW( SC_HANDLE hSCManager, LPCWSTR lpServiceName, LPWSTR lpDisplayName, LPDWORD lpcchBuffer ); #line 988 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winsvc.h" __declspec(dllimport) SC_LOCK __stdcall LockServiceDatabase( SC_HANDLE hSCManager ); __declspec(dllimport) BOOL __stdcall NotifyBootConfigStatus( BOOL BootAcceptable ); __declspec(dllimport) SC_HANDLE __stdcall OpenSCManagerA( LPCSTR lpMachineName, LPCSTR lpDatabaseName, DWORD dwDesiredAccess ); __declspec(dllimport) SC_HANDLE __stdcall OpenSCManagerW( LPCWSTR lpMachineName, LPCWSTR lpDatabaseName, DWORD dwDesiredAccess ); #line 1026 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winsvc.h" __declspec(dllimport) SC_HANDLE __stdcall OpenServiceA( SC_HANDLE hSCManager, LPCSTR lpServiceName, DWORD dwDesiredAccess ); __declspec(dllimport) SC_HANDLE __stdcall OpenServiceW( SC_HANDLE hSCManager, LPCWSTR lpServiceName, DWORD dwDesiredAccess ); #line 1050 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winsvc.h" __declspec(dllimport) BOOL __stdcall QueryServiceConfigA( SC_HANDLE hService, LPQUERY_SERVICE_CONFIGA lpServiceConfig, DWORD cbBufSize, LPDWORD pcbBytesNeeded ); __declspec(dllimport) BOOL __stdcall QueryServiceConfigW( SC_HANDLE hService, LPQUERY_SERVICE_CONFIGW lpServiceConfig, DWORD cbBufSize, LPDWORD pcbBytesNeeded ); #line 1078 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winsvc.h" __declspec(dllimport) BOOL __stdcall QueryServiceConfig2A( SC_HANDLE hService, DWORD dwInfoLevel, LPBYTE lpBuffer, DWORD cbBufSize, LPDWORD pcbBytesNeeded ); __declspec(dllimport) BOOL __stdcall QueryServiceConfig2W( SC_HANDLE hService, DWORD dwInfoLevel, LPBYTE lpBuffer, DWORD cbBufSize, LPDWORD pcbBytesNeeded ); #line 1108 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winsvc.h" __declspec(dllimport) BOOL __stdcall QueryServiceLockStatusA( SC_HANDLE hSCManager, LPQUERY_SERVICE_LOCK_STATUSA lpLockStatus, DWORD cbBufSize, LPDWORD pcbBytesNeeded ); __declspec(dllimport) BOOL __stdcall QueryServiceLockStatusW( SC_HANDLE hSCManager, LPQUERY_SERVICE_LOCK_STATUSW lpLockStatus, DWORD cbBufSize, LPDWORD pcbBytesNeeded ); #line 1136 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winsvc.h" __declspec(dllimport) BOOL __stdcall QueryServiceObjectSecurity( SC_HANDLE hService, SECURITY_INFORMATION dwSecurityInformation, PSECURITY_DESCRIPTOR lpSecurityDescriptor, DWORD cbBufSize, LPDWORD pcbBytesNeeded ); __declspec(dllimport) BOOL __stdcall QueryServiceStatus( SC_HANDLE hService, LPSERVICE_STATUS lpServiceStatus ); __declspec(dllimport) BOOL __stdcall QueryServiceStatusEx( SC_HANDLE hService, SC_STATUS_TYPE InfoLevel, LPBYTE lpBuffer, DWORD cbBufSize, LPDWORD pcbBytesNeeded ); __declspec(dllimport) SERVICE_STATUS_HANDLE __stdcall RegisterServiceCtrlHandlerA( LPCSTR lpServiceName, LPHANDLER_FUNCTION lpHandlerProc ); __declspec(dllimport) SERVICE_STATUS_HANDLE __stdcall RegisterServiceCtrlHandlerW( LPCWSTR lpServiceName, LPHANDLER_FUNCTION lpHandlerProc ); #line 1195 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winsvc.h" __declspec(dllimport) SERVICE_STATUS_HANDLE __stdcall RegisterServiceCtrlHandlerExA( LPCSTR lpServiceName, LPHANDLER_FUNCTION_EX lpHandlerProc, LPVOID lpContext ); __declspec(dllimport) SERVICE_STATUS_HANDLE __stdcall RegisterServiceCtrlHandlerExW( LPCWSTR lpServiceName, LPHANDLER_FUNCTION_EX lpHandlerProc, LPVOID lpContext ); #line 1221 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winsvc.h" __declspec(dllimport) BOOL __stdcall SetServiceObjectSecurity( SC_HANDLE hService, SECURITY_INFORMATION dwSecurityInformation, PSECURITY_DESCRIPTOR lpSecurityDescriptor ); __declspec(dllimport) BOOL __stdcall SetServiceStatus( SERVICE_STATUS_HANDLE hServiceStatus, LPSERVICE_STATUS lpServiceStatus ); __declspec(dllimport) BOOL __stdcall StartServiceCtrlDispatcherA( const SERVICE_TABLE_ENTRYA *lpServiceStartTable ); __declspec(dllimport) BOOL __stdcall StartServiceCtrlDispatcherW( const SERVICE_TABLE_ENTRYW *lpServiceStartTable ); #line 1256 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winsvc.h" __declspec(dllimport) BOOL __stdcall StartServiceA( SC_HANDLE hService, DWORD dwNumServiceArgs, LPCSTR *lpServiceArgVectors ); __declspec(dllimport) BOOL __stdcall StartServiceW( SC_HANDLE hService, DWORD dwNumServiceArgs, LPCWSTR *lpServiceArgVectors ); #line 1281 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winsvc.h" __declspec(dllimport) BOOL __stdcall UnlockServiceDatabase( SC_LOCK ScLock ); __declspec(dllimport) DWORD __stdcall NotifyServiceStatusChangeA ( SC_HANDLE hService, DWORD dwNotifyMask, PSERVICE_NOTIFYA pNotifyBuffer ); __declspec(dllimport) DWORD __stdcall NotifyServiceStatusChangeW ( SC_HANDLE hService, DWORD dwNotifyMask, PSERVICE_NOTIFYW pNotifyBuffer ); #line 1310 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winsvc.h" __declspec(dllimport) BOOL __stdcall ControlServiceExA( SC_HANDLE hService, DWORD dwControl, DWORD dwInfoLevel, PVOID pControlParams ); __declspec(dllimport) BOOL __stdcall ControlServiceExW( SC_HANDLE hService, DWORD dwControl, DWORD dwInfoLevel, PVOID pControlParams ); #line 1334 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winsvc.h" } #line 1338 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winsvc.h" #line 1340 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\winsvc.h" #line 222 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windows.h" #line 223 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windows.h" #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\mcx.h" /************************************************************************ * * * mcx.h -- This module defines the 32-Bit Windows MCX APIs * * * * Copyright (c) 1990-1999, Microsoft Corp. All rights reserved. * * * ************************************************************************/ #pragma once #line 15 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\mcx.h" typedef struct _MODEMDEVCAPS { DWORD dwActualSize; DWORD dwRequiredSize; DWORD dwDevSpecificOffset; DWORD dwDevSpecificSize; // product and version identification DWORD dwModemProviderVersion; DWORD dwModemManufacturerOffset; DWORD dwModemManufacturerSize; DWORD dwModemModelOffset; DWORD dwModemModelSize; DWORD dwModemVersionOffset; DWORD dwModemVersionSize; // local option capabilities DWORD dwDialOptions; // bitmap of supported values DWORD dwCallSetupFailTimer; // maximum in seconds DWORD dwInactivityTimeout; // maximum in seconds DWORD dwSpeakerVolume; // bitmap of supported values DWORD dwSpeakerMode; // bitmap of supported values DWORD dwModemOptions; // bitmap of supported values DWORD dwMaxDTERate; // maximum value in bit/s DWORD dwMaxDCERate; // maximum value in bit/s // Variable portion for proprietary expansion BYTE abVariablePortion [1]; } MODEMDEVCAPS, *PMODEMDEVCAPS, *LPMODEMDEVCAPS; typedef struct _MODEMSETTINGS { DWORD dwActualSize; DWORD dwRequiredSize; DWORD dwDevSpecificOffset; DWORD dwDevSpecificSize; // static local options (read/write) DWORD dwCallSetupFailTimer; // seconds DWORD dwInactivityTimeout; // seconds DWORD dwSpeakerVolume; // level DWORD dwSpeakerMode; // mode DWORD dwPreferredModemOptions; // bitmap // negotiated options (read only) for current or last call DWORD dwNegotiatedModemOptions; // bitmap DWORD dwNegotiatedDCERate; // bit/s // Variable portion for proprietary expansion BYTE abVariablePortion [1]; } MODEMSETTINGS, *PMODEMSETTINGS, *LPMODEMSETTINGS; // Dial Options // SpeakerVolume for MODEMDEVCAPS // SpeakerVolume for MODEMSETTINGS // SpeakerMode for MODEMDEVCAPS // SpeakerMode for MODEMSETTINGS // Modem Options //========================================================================= // // // EXTENDED MODEM OPTIONS INFORMATION // // THE following macros define additional bits in dwPreferredModemOptions. // // These bits specify information relevant to making ISDN and GSM // calls, such as which protocol to use. // //========================================================================= // // PROTOCOLINFO is the union of PROTOCOLID and PROTOCOLDATA ... // // // EXTENDEDINFO is the union of BEARERMODE and PROTOCOLINFO // // // MDM_GET_PROTOCOLINFO gets the protocol-id and info bits in // their IN-PLACE form (preserving their place in dwModemPreferredOptions) // // // MDM_SET_PROTOCOLINFO takes as its argument the protocol-id and info bits in // their IN-PLACE form (final position within dwModemPreferredOptions) // // // MDM_GEN_PROTOCOLINFO generates the the protocol-id and info bits in // their IN-PLACE form (final position within dwModemPreferredOptions). // // // MDM_GET_EXTENDEDIONFO gets the bearermode and protocol information in // their IN-PLACE form (preserving their place in dwModemPreferredOptions) // // // MDM_SET_PROTOCOLINFO takes as its argument the bearermode and // protocol bits in their IN-PLACE form (final position within // dwModemPreferredOptions) // // // MDM_GEN_EXTENDEDINFO generates the bearermode and protocol information // in their IN-PLACE form (final position within dwModemPreferredOptions0. // //========================================================================= // BEARER MODES //========================================================================= // //========================================================================= // PROTOCOL IDs //========================================================================= // //========================================================================= // HDLC PPP PROTOCOL INFORMATION //========================================================================= // // Following are specific to the HDLC-PPP protocol. // The shifts are w.r.t. the start of the PROTOCOLDATA field. //========================================================================= // V120 PROTOCOL INFORMATION // // The shifts are w.r.t. the start of the PROTOCOLDATA field. // //========================================================================= //========================================================================= // X75 PROTOCOL INFORMATION // // The shifts are w.r.t. the start of the PROTOCOLDATA field. // //========================================================================= //========================================================================= // V110 PROTOCOL INFORMATION // // The shifts are w.r.t. the start of the PROTOCOLDATA field. // //========================================================================= //========================================================================= // AUTO PROTOCOL INFORMATION (ie, when the protocol is detected automatically) // // The shifts are w.r.t. the start of the PROTOCOLDATA field. // //========================================================================= // // Following are specific to the AUTO-protocol // //========================================================================= // ANALOG PROTOCOL INFORMATION (Applicable only to GSM) //========================================================================= // // Following are specific to GSM Analog protocol // // // v34 anolog for isdn // //========================================================================= // GPRS PROTOCOL INFORMATION (Applicable only to GSM) //========================================================================= // // Following are specific to GPRS protocol // //========================================================================= // PIAFS PROTOCOL INFORMATION //========================================================================= // // Following are specific to PIAFS protocol // #line 723 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\mcx.h" #line 227 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windows.h" #line 228 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windows.h" #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\imm.h" /**********************************************************************/ /* imm.h - Input Method Manager definitions */ /* */ /* Copyright (c) Microsoft Corporation. All rights reserved. */ /**********************************************************************/ extern "C" { #line 14 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\imm.h" struct HIMC__ { int unused; }; typedef struct HIMC__ *HIMC; struct HIMCC__ { int unused; }; typedef struct HIMCC__ *HIMCC; #line 26 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\imm.h" typedef HKL *LPHKL; typedef UINT *LPUINT; typedef struct tagCOMPOSITIONFORM { DWORD dwStyle; POINT ptCurrentPos; RECT rcArea; } COMPOSITIONFORM, *PCOMPOSITIONFORM, *NPCOMPOSITIONFORM, *LPCOMPOSITIONFORM; typedef struct tagCANDIDATEFORM { DWORD dwIndex; DWORD dwStyle; POINT ptCurrentPos; RECT rcArea; } CANDIDATEFORM, *PCANDIDATEFORM, *NPCANDIDATEFORM, *LPCANDIDATEFORM; typedef struct tagCANDIDATELIST { DWORD dwSize; DWORD dwStyle; DWORD dwCount; DWORD dwSelection; DWORD dwPageStart; DWORD dwPageSize; DWORD dwOffset[1]; } CANDIDATELIST, *PCANDIDATELIST, *NPCANDIDATELIST, *LPCANDIDATELIST; typedef struct tagREGISTERWORDA { LPSTR lpReading; LPSTR lpWord; } REGISTERWORDA, *PREGISTERWORDA, *NPREGISTERWORDA, *LPREGISTERWORDA; typedef struct tagREGISTERWORDW { LPWSTR lpReading; LPWSTR lpWord; } REGISTERWORDW, *PREGISTERWORDW, *NPREGISTERWORDW, *LPREGISTERWORDW; typedef REGISTERWORDW REGISTERWORD; typedef PREGISTERWORDW PREGISTERWORD; typedef NPREGISTERWORDW NPREGISTERWORD; typedef LPREGISTERWORDW LPREGISTERWORD; #line 74 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\imm.h" typedef struct tagRECONVERTSTRING { DWORD dwSize; DWORD dwVersion; DWORD dwStrLen; DWORD dwStrOffset; DWORD dwCompStrLen; DWORD dwCompStrOffset; DWORD dwTargetStrLen; DWORD dwTargetStrOffset; } RECONVERTSTRING, *PRECONVERTSTRING, *NPRECONVERTSTRING, *LPRECONVERTSTRING; #line 89 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\imm.h" typedef struct tagSTYLEBUFA { DWORD dwStyle; CHAR szDescription[32]; } STYLEBUFA, *PSTYLEBUFA, *NPSTYLEBUFA, *LPSTYLEBUFA; typedef struct tagSTYLEBUFW { DWORD dwStyle; WCHAR szDescription[32]; } STYLEBUFW, *PSTYLEBUFW, *NPSTYLEBUFW, *LPSTYLEBUFW; typedef STYLEBUFW STYLEBUF; typedef PSTYLEBUFW PSTYLEBUF; typedef NPSTYLEBUFW NPSTYLEBUF; typedef LPSTYLEBUFW LPSTYLEBUF; #line 111 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\imm.h" typedef struct tagIMEMENUITEMINFOA { UINT cbSize; UINT fType; UINT fState; UINT wID; HBITMAP hbmpChecked; HBITMAP hbmpUnchecked; DWORD dwItemData; CHAR szString[80]; HBITMAP hbmpItem; } IMEMENUITEMINFOA, *PIMEMENUITEMINFOA, *NPIMEMENUITEMINFOA, *LPIMEMENUITEMINFOA; typedef struct tagIMEMENUITEMINFOW { UINT cbSize; UINT fType; UINT fState; UINT wID; HBITMAP hbmpChecked; HBITMAP hbmpUnchecked; DWORD dwItemData; WCHAR szString[80]; HBITMAP hbmpItem; } IMEMENUITEMINFOW, *PIMEMENUITEMINFOW, *NPIMEMENUITEMINFOW, *LPIMEMENUITEMINFOW; typedef IMEMENUITEMINFOW IMEMENUITEMINFO; typedef PIMEMENUITEMINFOW PIMEMENUITEMINFO; typedef NPIMEMENUITEMINFOW NPIMEMENUITEMINFO; typedef LPIMEMENUITEMINFOW LPIMEMENUITEMINFO; #line 150 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\imm.h" typedef struct tagIMECHARPOSITION { DWORD dwSize; DWORD dwCharPos; POINT pt; UINT cLineHeight; RECT rcDocument; } IMECHARPOSITION, *PIMECHARPOSITION, *NPIMECHARPOSITION, *LPIMECHARPOSITION; typedef BOOL (__stdcall* IMCENUMPROC)(HIMC, LPARAM); #line 162 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\imm.h" // prototype of IMM API HKL __stdcall ImmInstallIMEA( LPCSTR lpszIMEFileName, LPCSTR lpszLayoutText); HKL __stdcall ImmInstallIMEW( LPCWSTR lpszIMEFileName, LPCWSTR lpszLayoutText); #line 174 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\imm.h" HWND __stdcall ImmGetDefaultIMEWnd( HWND); UINT __stdcall ImmGetDescriptionA( HKL, LPSTR lpszDescription, UINT uBufLen); UINT __stdcall ImmGetDescriptionW( HKL, LPWSTR lpszDescription, UINT uBufLen); #line 184 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\imm.h" UINT __stdcall ImmGetIMEFileNameA( HKL, LPSTR lpszFileName, UINT uBufLen); UINT __stdcall ImmGetIMEFileNameW( HKL, LPWSTR lpszFileName, UINT uBufLen); #line 192 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\imm.h" DWORD __stdcall ImmGetProperty( HKL, DWORD); BOOL __stdcall ImmIsIME( HKL); BOOL __stdcall ImmSimulateHotKey( HWND, DWORD); HIMC __stdcall ImmCreateContext(void); BOOL __stdcall ImmDestroyContext( HIMC); HIMC __stdcall ImmGetContext( HWND); BOOL __stdcall ImmReleaseContext( HWND, HIMC); HIMC __stdcall ImmAssociateContext( HWND, HIMC); BOOL __stdcall ImmAssociateContextEx( HWND, HIMC, DWORD); #line 207 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\imm.h" LONG __stdcall ImmGetCompositionStringA( HIMC, DWORD, LPVOID lpBuf, DWORD dwBufLen); LONG __stdcall ImmGetCompositionStringW( HIMC, DWORD, LPVOID lpBuf, DWORD dwBufLen); #line 215 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\imm.h" BOOL __stdcall ImmSetCompositionStringA( HIMC, DWORD dwIndex, LPVOID lpComp, DWORD dwCompLen, LPVOID lpRead, DWORD dwReadLen); BOOL __stdcall ImmSetCompositionStringW( HIMC, DWORD dwIndex, LPVOID lpComp, DWORD dwCompLen, LPVOID lpRead, DWORD dwReadLen); #line 223 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\imm.h" DWORD __stdcall ImmGetCandidateListCountA( HIMC, LPDWORD lpdwListCount); DWORD __stdcall ImmGetCandidateListCountW( HIMC, LPDWORD lpdwListCount); #line 231 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\imm.h" DWORD __stdcall ImmGetCandidateListA( HIMC, DWORD deIndex, LPCANDIDATELIST lpCandList, DWORD dwBufLen); DWORD __stdcall ImmGetCandidateListW( HIMC, DWORD deIndex, LPCANDIDATELIST lpCandList, DWORD dwBufLen); #line 239 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\imm.h" DWORD __stdcall ImmGetGuideLineA( HIMC, DWORD dwIndex, LPSTR lpBuf, DWORD dwBufLen); DWORD __stdcall ImmGetGuideLineW( HIMC, DWORD dwIndex, LPWSTR lpBuf, DWORD dwBufLen); #line 247 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\imm.h" BOOL __stdcall ImmGetConversionStatus( HIMC, LPDWORD lpfdwConversion, LPDWORD lpfdwSentence); BOOL __stdcall ImmSetConversionStatus( HIMC, DWORD, DWORD); BOOL __stdcall ImmGetOpenStatus( HIMC); BOOL __stdcall ImmSetOpenStatus( HIMC, BOOL); BOOL __stdcall ImmGetCompositionFontA( HIMC, LPLOGFONTA lplf); BOOL __stdcall ImmGetCompositionFontW( HIMC, LPLOGFONTW lplf); #line 261 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\imm.h" BOOL __stdcall ImmSetCompositionFontA( HIMC, LPLOGFONTA lplf); BOOL __stdcall ImmSetCompositionFontW( HIMC, LPLOGFONTW lplf); #line 269 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\imm.h" #line 270 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\imm.h" BOOL __stdcall ImmConfigureIMEA( HKL, HWND, DWORD, LPVOID); BOOL __stdcall ImmConfigureIMEW( HKL, HWND, DWORD, LPVOID); #line 278 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\imm.h" LRESULT __stdcall ImmEscapeA( HKL, HIMC, UINT, LPVOID); LRESULT __stdcall ImmEscapeW( HKL, HIMC, UINT, LPVOID); #line 286 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\imm.h" DWORD __stdcall ImmGetConversionListA( HKL, HIMC, LPCSTR lpSrc, LPCANDIDATELIST lpDst, DWORD dwBufLen, UINT uFlag); DWORD __stdcall ImmGetConversionListW( HKL, HIMC, LPCWSTR lpSrc, LPCANDIDATELIST lpDst, DWORD dwBufLen, UINT uFlag); #line 294 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\imm.h" BOOL __stdcall ImmNotifyIME( HIMC, DWORD dwAction, DWORD dwIndex, DWORD dwValue); BOOL __stdcall ImmGetStatusWindowPos( HIMC, LPPOINT lpptPos); BOOL __stdcall ImmSetStatusWindowPos( HIMC, LPPOINT lpptPos); BOOL __stdcall ImmGetCompositionWindow( HIMC, LPCOMPOSITIONFORM lpCompForm); BOOL __stdcall ImmSetCompositionWindow( HIMC, LPCOMPOSITIONFORM lpCompForm); BOOL __stdcall ImmGetCandidateWindow( HIMC, DWORD, LPCANDIDATEFORM lpCandidate); BOOL __stdcall ImmSetCandidateWindow( HIMC, LPCANDIDATEFORM lpCandidate); BOOL __stdcall ImmIsUIMessageA( HWND, UINT, WPARAM, LPARAM); BOOL __stdcall ImmIsUIMessageW( HWND, UINT, WPARAM, LPARAM); #line 311 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\imm.h" UINT __stdcall ImmGetVirtualKey( HWND); typedef int (__stdcall *REGISTERWORDENUMPROCA)( LPCSTR lpszReading, DWORD, LPCSTR lpszString, LPVOID); typedef int (__stdcall *REGISTERWORDENUMPROCW)( LPCWSTR lpszReading, DWORD, LPCWSTR lpszString, LPVOID); #line 322 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\imm.h" BOOL __stdcall ImmRegisterWordA( HKL, LPCSTR lpszReading, DWORD, LPCSTR lpszRegister); BOOL __stdcall ImmRegisterWordW( HKL, LPCWSTR lpszReading, DWORD, LPCWSTR lpszRegister); #line 330 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\imm.h" BOOL __stdcall ImmUnregisterWordA( HKL, LPCSTR lpszReading, DWORD, LPCSTR lpszUnregister); BOOL __stdcall ImmUnregisterWordW( HKL, LPCWSTR lpszReading, DWORD, LPCWSTR lpszUnregister); #line 338 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\imm.h" UINT __stdcall ImmGetRegisterWordStyleA( HKL, UINT nItem, LPSTYLEBUFA lpStyleBuf); UINT __stdcall ImmGetRegisterWordStyleW( HKL, UINT nItem, LPSTYLEBUFW lpStyleBuf); #line 346 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\imm.h" UINT __stdcall ImmEnumRegisterWordA( HKL, REGISTERWORDENUMPROCA, LPCSTR lpszReading, DWORD, LPCSTR lpszRegister, LPVOID); UINT __stdcall ImmEnumRegisterWordW( HKL, REGISTERWORDENUMPROCW, LPCWSTR lpszReading, DWORD, LPCWSTR lpszRegister, LPVOID); #line 354 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\imm.h" BOOL __stdcall ImmDisableIME( DWORD); BOOL __stdcall ImmEnumInputContext(DWORD idThread, IMCENUMPROC lpfn, LPARAM lParam); DWORD __stdcall ImmGetImeMenuItemsA( HIMC, DWORD, DWORD, LPIMEMENUITEMINFOA lpImeParentMenu, LPIMEMENUITEMINFOA lpImeMenu, DWORD dwSize); DWORD __stdcall ImmGetImeMenuItemsW( HIMC, DWORD, DWORD, LPIMEMENUITEMINFOW lpImeParentMenu, LPIMEMENUITEMINFOW lpImeMenu, DWORD dwSize); #line 365 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\imm.h" BOOL __stdcall ImmDisableTextFrameService(DWORD idThread); #line 368 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\imm.h" // wParam for WM_IME_CONTROL // dwAction for ImmNotifyIME // lParam for WM_IME_SETCONTEXT // dwIndex for ImmNotifyIME/NI_COMPOSITIONSTR // the modifiers of hot key // Windows for Simplified Chinese Edition hot key ID from 0x10 - 0x2F // Windows for Japanese Edition hot key ID from 0x30 - 0x4F // Windows for Korean Edition hot key ID from 0x50 - 0x6F // Windows for Traditional Chinese Edition hot key ID from 0x70 - 0x8F // direct switch hot key ID from 0x100 - 0x11F // IME private hot key from 0x200 - 0x21F // parameter of ImmGetCompositionString // style bit flags for WM_IME_COMPOSITION // IME version constants // IME property bits // IME UICapability bits // ImmSetCompositionString Capability bits // IME WM_IME_SELECT inheritance Capability bits // ID for deIndex of ImmGetGuideLine // ID for dwLevel of GUIDELINE Structure // ID for dwIndex of GUIDELINE Structure // ID for dwIndex of ImmGetProperty // dwIndex for ImmSetCompositionString API // attribute for COMPOSITIONSTRING Structure // bit field for IMC_SETCOMPOSITIONWINDOW, IMC_SETCANDIDATEWINDOW // conversion direction for ImmGetConversionList // bit field for conversion mode // IME_CMODE_HANGEUL is old name of IME_CMODE_HANGUL. It will be gone eventually. // bit field for sentence mode // style of candidate // wParam of report message WM_IME_NOTIFY // wParam of report message WM_IME_REQUEST #line 633 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\imm.h" // error code of ImmGetCompositionString // dialog mode of ImmConfigureIME // flags for ImmEscape // style of word registration // dwFlags for ImmAssociateContextEx // dwFlags for ImmGetImeMenuItems // dwType for ImmGetImeMenuItems // fType of IMEMENUITEMINFO structure // fState of IMEMENUITEMINFO structure #line 704 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\imm.h" // type of soft keyboard // for Windows Tranditional Chinese Edition // for Windows Simplified Chinese Edition #line 713 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\imm.h" } #line 717 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\imm.h" #line 719 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\imm.h" #line 231 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windows.h" #line 232 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windows.h" #line 233 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windows.h" #line 234 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windows.h" #pragma warning(pop) #line 245 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windows.h" #line 246 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windows.h" #line 247 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windows.h" #line 249 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windows.h" #line 251 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windows.h" #line 252 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\windows.h" #line 44 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\LayerManagerD3D9.h" #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" /*==========================================================================; * * Copyright (C) Microsoft Corporation. All Rights Reserved. * * File: d3d9.h * Content: Direct3D include file * ****************************************************************************/ #line 16 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" // include this file content only if compiling for DX9 interfaces /* This identifier is passed to Direct3DCreate9 in order to ensure that an * application was built against the correct header files. This number is * incremented whenever a header (or other) change would require applications * to be rebuilt. If the version doesn't match, Direct3DCreate9 will fail. * (The number itself has no meaning.)*/ #line 35 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" //+--------------------------------------------------------------------------- // // Microsoft Windows // Copyright (c) Microsoft Corporation. All rights reserved. // // File: objbase.h // // Contents: Component object model defintions. // //---------------------------------------------------------------------------- #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpc.h" /*++ Copyright (c) Microsoft Corporation. All rights reserved. Module Name: rpc.h Abstract: Master include file for RPC applications. --*/ #line 18 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpc.h" #pragma once #line 25 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpc.h" extern "C" { #line 29 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpc.h" //------------------------------------------------------------- // platform specific defines //------------------------------------------------------------- //------------------- MAC --------------------------- #line 44 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpc.h" #line 50 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpc.h" #line 52 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpc.h" #line 54 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpc.h" #line 58 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpc.h" #line 64 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpc.h" typedef void * I_RPC_HANDLE; // NTSTATUS is also long, so this definition is valid // for both user mode and kernel mode typedef long RPC_STATUS; #line 74 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpc.h" #line 86 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpc.h" // Some RPC platforms don't define DECLSPEC_IMPORT #line 97 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpc.h" #line 103 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpc.h" #line 109 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpc.h" #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" /*++ Copyright (c) Microsoft Corporation. All rights reserved. Module Name: rpcdce.h Abstract: This module contains the DCE RPC runtime APIs. --*/ #pragma once #line 21 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" extern "C" { #line 25 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" /*typedef char small;*/ /*typedef unsigned char byte;*/ /*typedef unsigned char boolean;*/ typedef unsigned char * RPC_CSTR; #line 56 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" typedef unsigned short * RPC_WSTR; #line 58 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" typedef I_RPC_HANDLE RPC_BINDING_HANDLE; typedef RPC_BINDING_HANDLE handle_t; typedef GUID UUID; #line 73 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" #line 74 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" typedef struct _RPC_BINDING_VECTOR { unsigned long Count; RPC_BINDING_HANDLE BindingH[1]; } RPC_BINDING_VECTOR; #line 83 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" typedef struct _UUID_VECTOR { unsigned long Count; UUID *Uuid[1]; } UUID_VECTOR; #line 92 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" typedef void * RPC_IF_HANDLE; typedef struct _RPC_IF_ID { UUID Uuid; unsigned short VersMajor; unsigned short VersMinor; } RPC_IF_ID; #line 104 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" // RPC_POLICY EndpointFlags. // RPC_POLICY EndpointFlags specific to the Falcon/RPC transport (deprecated for LONGHORN) // Falcon/Rpc options are deprecated from LONGHORN // Client: RpcBindingSetOption() values for the Falcon/RPC transport (some are deprecated from LONGHORN) #line 151 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" #line 160 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" #line 173 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" // flags for RpcServerInqAuthClientEx // typedef struct _RPC_PROTSEQ_VECTORA { unsigned int Count; unsigned char * Protseq[1]; } RPC_PROTSEQ_VECTORA; typedef struct _RPC_PROTSEQ_VECTORW { unsigned int Count; unsigned short * Protseq[1]; } RPC_PROTSEQ_VECTORW; #line 198 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" #line 208 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" typedef struct _RPC_POLICY { unsigned int Length ; unsigned long EndpointFlags ; unsigned long NICFlags ; } RPC_POLICY, *PRPC_POLICY ; typedef void __stdcall RPC_OBJECT_INQ_FN ( UUID * ObjectUuid, UUID * TypeUuid, RPC_STATUS * Status ); /*RPC_S_OK*/ typedef RPC_STATUS __stdcall RPC_IF_CALLBACK_FN ( RPC_IF_HANDLE InterfaceUuid, void *Context ) ; typedef void __stdcall RPC_SECURITY_CALLBACK_FN ( void *Context ) ; typedef struct { unsigned int Count; unsigned long Stats[1]; } RPC_STATS_VECTOR; typedef struct { unsigned long Count; RPC_IF_ID * IfId[1]; } RPC_IF_ID_VECTOR; /* client */ __declspec(dllimport) RPC_STATUS __stdcall RpcBindingCopy ( RPC_BINDING_HANDLE SourceBinding, RPC_BINDING_HANDLE * DestinationBinding ); /* client */ __declspec(dllimport) RPC_STATUS __stdcall RpcBindingFree ( RPC_BINDING_HANDLE * Binding ); /* client */ __declspec(dllimport) RPC_STATUS __stdcall RpcBindingSetOption ( RPC_BINDING_HANDLE hBinding, unsigned long option, ULONG_PTR optionValue ); /* client */ __declspec(dllimport) RPC_STATUS __stdcall RpcBindingInqOption ( RPC_BINDING_HANDLE hBinding, unsigned long option, ULONG_PTR *pOptionValue ); /* client */ __declspec(dllimport) RPC_STATUS __stdcall RpcBindingFromStringBindingA ( RPC_CSTR StringBinding, RPC_BINDING_HANDLE * Binding ); __declspec(dllimport) RPC_STATUS __stdcall RpcBindingFromStringBindingW ( RPC_WSTR StringBinding, RPC_BINDING_HANDLE * Binding ); #line 316 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" #line 328 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" #line 330 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" /* client */ __declspec(dllimport) RPC_STATUS __stdcall RpcSsGetContextBinding ( void *ContextHandle, RPC_BINDING_HANDLE * Binding ); /* client/server */ __declspec(dllimport) RPC_STATUS __stdcall RpcBindingInqObject ( RPC_BINDING_HANDLE Binding, UUID * ObjectUuid ); /* client */ __declspec(dllimport) RPC_STATUS __stdcall RpcBindingReset ( RPC_BINDING_HANDLE Binding ); /* RpcBindingServerFromClient : UNSUPPORTED */ /* RpcBindingSetAuthInfo */ /* client */ __declspec(dllimport) RPC_STATUS __stdcall RpcBindingSetObject ( RPC_BINDING_HANDLE Binding, UUID * ObjectUuid ); /* client/server */ __declspec(dllimport) RPC_STATUS __stdcall RpcMgmtInqDefaultProtectLevel ( unsigned long AuthnSvc, unsigned long *AuthnLevel ); /* client/server */ __declspec(dllimport) RPC_STATUS __stdcall RpcBindingToStringBindingA ( RPC_BINDING_HANDLE Binding, RPC_CSTR * StringBinding ); __declspec(dllimport) RPC_STATUS __stdcall RpcBindingToStringBindingW ( RPC_BINDING_HANDLE Binding, RPC_WSTR * StringBinding ); #line 403 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" #line 415 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" /* client/server */ __declspec(dllimport) RPC_STATUS __stdcall RpcBindingVectorFree ( RPC_BINDING_VECTOR * * BindingVector ); /* client/server */ __declspec(dllimport) RPC_STATUS __stdcall RpcStringBindingComposeA ( RPC_CSTR ObjUuid, RPC_CSTR ProtSeq, RPC_CSTR NetworkAddr, RPC_CSTR Endpoint, RPC_CSTR Options, RPC_CSTR * StringBinding ); __declspec(dllimport) RPC_STATUS __stdcall RpcStringBindingComposeW ( RPC_WSTR ObjUuid, RPC_WSTR ProtSeq, RPC_WSTR NetworkAddr, RPC_WSTR Endpoint, RPC_WSTR Options, RPC_WSTR * StringBinding ); #line 459 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" #line 475 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" /* client/server */ __declspec(dllimport) RPC_STATUS __stdcall RpcStringBindingParseA ( RPC_CSTR StringBinding, RPC_CSTR * ObjUuid, RPC_CSTR * Protseq, RPC_CSTR * NetworkAddr, RPC_CSTR * Endpoint, RPC_CSTR * NetworkOptions ); __declspec(dllimport) RPC_STATUS __stdcall RpcStringBindingParseW ( RPC_WSTR StringBinding, RPC_WSTR * ObjUuid, RPC_WSTR * Protseq, RPC_WSTR * NetworkAddr, RPC_WSTR * Endpoint, RPC_WSTR * NetworkOptions ); #line 509 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" #line 525 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" #line 527 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" /* client/server */ __declspec(dllimport) RPC_STATUS __stdcall RpcStringFreeA ( RPC_CSTR * String ); __declspec(dllimport) RPC_STATUS __stdcall RpcStringFreeW ( RPC_WSTR * String ); #line 551 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" #line 562 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" /* client/server */ __declspec(dllimport) RPC_STATUS __stdcall RpcIfInqId ( RPC_IF_HANDLE RpcIfHandle, RPC_IF_ID * RpcIfId ); /* client/server */ __declspec(dllimport) RPC_STATUS __stdcall RpcNetworkIsProtseqValidA ( RPC_CSTR Protseq ); __declspec(dllimport) RPC_STATUS __stdcall RpcNetworkIsProtseqValidW ( RPC_WSTR Protseq ); #line 595 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" #line 606 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" /* client */ __declspec(dllimport) RPC_STATUS __stdcall RpcMgmtInqComTimeout ( RPC_BINDING_HANDLE Binding, unsigned int * Timeout ); /* client */ __declspec(dllimport) RPC_STATUS __stdcall RpcMgmtSetComTimeout ( RPC_BINDING_HANDLE Binding, unsigned int Timeout ); /* client */ __declspec(dllimport) RPC_STATUS __stdcall RpcMgmtSetCancelTimeout( long Timeout ); /* server */ __declspec(dllimport) RPC_STATUS __stdcall RpcNetworkInqProtseqsA ( RPC_PROTSEQ_VECTORA * * ProtseqVector ); __declspec(dllimport) RPC_STATUS __stdcall RpcNetworkInqProtseqsW ( RPC_PROTSEQ_VECTORW * * ProtseqVector ); #line 657 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" #line 668 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" /* server */ __declspec(dllimport) RPC_STATUS __stdcall RpcObjectInqType ( UUID * ObjUuid, UUID * TypeUuid ); /* server */ __declspec(dllimport) RPC_STATUS __stdcall RpcObjectSetInqFn ( RPC_OBJECT_INQ_FN * InquiryFn ); /* server */ __declspec(dllimport) RPC_STATUS __stdcall RpcObjectSetType ( UUID * ObjUuid, UUID * TypeUuid ); /* server */ __declspec(dllimport) RPC_STATUS __stdcall RpcProtseqVectorFreeA ( RPC_PROTSEQ_VECTORA * * ProtseqVector ); __declspec(dllimport) RPC_STATUS __stdcall RpcProtseqVectorFreeW ( RPC_PROTSEQ_VECTORW * * ProtseqVector ); #line 718 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" #line 729 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" /* server */ __declspec(dllimport) RPC_STATUS __stdcall RpcServerInqBindings ( RPC_BINDING_VECTOR * * BindingVector ); /* server */ __declspec(dllimport) RPC_STATUS __stdcall RpcServerInqIf ( RPC_IF_HANDLE IfSpec, UUID * MgrTypeUuid, void * * MgrEpv ); /* server */ __declspec(dllimport) RPC_STATUS __stdcall RpcServerListen ( unsigned int MinimumCallThreads, unsigned int MaxCalls, unsigned int DontWait ); /* server */ __declspec(dllimport) RPC_STATUS __stdcall RpcServerRegisterIf ( RPC_IF_HANDLE IfSpec, UUID * MgrTypeUuid, void * MgrEpv ); /* server */ __declspec(dllimport) RPC_STATUS __stdcall RpcServerRegisterIfEx ( RPC_IF_HANDLE IfSpec, UUID * MgrTypeUuid, void * MgrEpv, unsigned int Flags, unsigned int MaxCalls, RPC_IF_CALLBACK_FN *IfCallback ); /* server */ __declspec(dllimport) RPC_STATUS __stdcall RpcServerRegisterIf2 ( RPC_IF_HANDLE IfSpec, UUID * MgrTypeUuid, void * MgrEpv, unsigned int Flags, unsigned int MaxCalls, unsigned int MaxRpcSize, RPC_IF_CALLBACK_FN *IfCallbackFn ); /* server */ __declspec(dllimport) RPC_STATUS __stdcall RpcServerUnregisterIf ( RPC_IF_HANDLE IfSpec, UUID * MgrTypeUuid, unsigned int WaitForCallsToComplete ); /* server */ __declspec(dllimport) RPC_STATUS __stdcall RpcServerUnregisterIfEx ( RPC_IF_HANDLE IfSpec, UUID * MgrTypeUuid, int RundownContextHandles ); #line 817 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" /* server */ __declspec(dllimport) RPC_STATUS __stdcall RpcServerUseAllProtseqs ( unsigned int MaxCalls, void * SecurityDescriptor ); /* server */ __declspec(dllimport) RPC_STATUS __stdcall RpcServerUseAllProtseqsEx ( unsigned int MaxCalls, void * SecurityDescriptor, PRPC_POLICY Policy ); /* server */ __declspec(dllimport) RPC_STATUS __stdcall RpcServerUseAllProtseqsIf ( unsigned int MaxCalls, RPC_IF_HANDLE IfSpec, void * SecurityDescriptor ); /* server */ __declspec(dllimport) RPC_STATUS __stdcall RpcServerUseAllProtseqsIfEx ( unsigned int MaxCalls, RPC_IF_HANDLE IfSpec, void * SecurityDescriptor, PRPC_POLICY Policy ); /* server */ __declspec(dllimport) RPC_STATUS __stdcall RpcServerUseProtseqA ( RPC_CSTR Protseq, unsigned int MaxCalls, void * SecurityDescriptor ); __declspec(dllimport) RPC_STATUS __stdcall RpcServerUseProtseqExA ( RPC_CSTR Protseq, unsigned int MaxCalls, void * SecurityDescriptor, PRPC_POLICY Policy ); __declspec(dllimport) RPC_STATUS __stdcall RpcServerUseProtseqW ( RPC_WSTR Protseq, unsigned int MaxCalls, void * SecurityDescriptor ); __declspec(dllimport) RPC_STATUS __stdcall RpcServerUseProtseqExW ( RPC_WSTR Protseq, unsigned int MaxCalls, void * SecurityDescriptor, PRPC_POLICY Policy ); #line 908 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" #line 931 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" /* server */ __declspec(dllimport) RPC_STATUS __stdcall RpcServerUseProtseqEpA ( RPC_CSTR Protseq, unsigned int MaxCalls, RPC_CSTR Endpoint, void * SecurityDescriptor ); __declspec(dllimport) RPC_STATUS __stdcall RpcServerUseProtseqEpExA ( RPC_CSTR Protseq, unsigned int MaxCalls, RPC_CSTR Endpoint, void * SecurityDescriptor, PRPC_POLICY Policy ); __declspec(dllimport) RPC_STATUS __stdcall RpcServerUseProtseqEpW ( RPC_WSTR Protseq, unsigned int MaxCalls, RPC_WSTR Endpoint, void * SecurityDescriptor ); __declspec(dllimport) RPC_STATUS __stdcall RpcServerUseProtseqEpExW ( RPC_WSTR Protseq, unsigned int MaxCalls, RPC_WSTR Endpoint, void * SecurityDescriptor, PRPC_POLICY Policy ); #line 985 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" #line 1010 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" /* server */ __declspec(dllimport) RPC_STATUS __stdcall RpcServerUseProtseqIfA ( RPC_CSTR Protseq, unsigned int MaxCalls, RPC_IF_HANDLE IfSpec, void * SecurityDescriptor ); __declspec(dllimport) RPC_STATUS __stdcall RpcServerUseProtseqIfExA ( RPC_CSTR Protseq, unsigned int MaxCalls, RPC_IF_HANDLE IfSpec, void * SecurityDescriptor, PRPC_POLICY Policy ); __declspec(dllimport) RPC_STATUS __stdcall RpcServerUseProtseqIfW ( RPC_WSTR Protseq, unsigned int MaxCalls, RPC_IF_HANDLE IfSpec, void * SecurityDescriptor ); __declspec(dllimport) RPC_STATUS __stdcall RpcServerUseProtseqIfExW ( RPC_WSTR Protseq, unsigned int MaxCalls, RPC_IF_HANDLE IfSpec, void * SecurityDescriptor, PRPC_POLICY Policy ); #line 1064 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" #line 1089 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" __declspec(dllimport) void __stdcall RpcServerYield ( void ); /* server */ __declspec(dllimport) RPC_STATUS __stdcall RpcMgmtStatsVectorFree ( RPC_STATS_VECTOR ** StatsVector ); /* server */ __declspec(dllimport) RPC_STATUS __stdcall RpcMgmtInqStats ( RPC_BINDING_HANDLE Binding, RPC_STATS_VECTOR ** Statistics ); /* server */ __declspec(dllimport) RPC_STATUS __stdcall RpcMgmtIsServerListening ( RPC_BINDING_HANDLE Binding ); /* server */ __declspec(dllimport) RPC_STATUS __stdcall RpcMgmtStopServerListening ( RPC_BINDING_HANDLE Binding ); /* server */ __declspec(dllimport) RPC_STATUS __stdcall RpcMgmtWaitServerListen ( void ); /* server */ __declspec(dllimport) RPC_STATUS __stdcall RpcMgmtSetServerStackSize ( unsigned long ThreadStackSize ); /* server */ __declspec(dllimport) void __stdcall RpcSsDontSerializeContext ( void ); /* client */ __declspec(dllimport) RPC_STATUS __stdcall RpcMgmtEnableIdleCleanup ( void ); __declspec(dllimport) RPC_STATUS __stdcall RpcMgmtInqIfIds ( RPC_BINDING_HANDLE Binding, RPC_IF_ID_VECTOR * * IfIdVector ); __declspec(dllimport) RPC_STATUS __stdcall RpcIfIdVectorFree ( RPC_IF_ID_VECTOR * * IfIdVector ); __declspec(dllimport) RPC_STATUS __stdcall RpcMgmtInqServerPrincNameA ( RPC_BINDING_HANDLE Binding, unsigned long AuthnSvc, RPC_CSTR * ServerPrincName ); __declspec(dllimport) RPC_STATUS __stdcall RpcMgmtInqServerPrincNameW ( RPC_BINDING_HANDLE Binding, unsigned long AuthnSvc, RPC_WSTR * ServerPrincName ); #line 1202 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" #line 1215 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" __declspec(dllimport) RPC_STATUS __stdcall RpcServerInqDefaultPrincNameA ( unsigned long AuthnSvc, RPC_CSTR * PrincName ); __declspec(dllimport) RPC_STATUS __stdcall RpcServerInqDefaultPrincNameW ( unsigned long AuthnSvc, RPC_WSTR * PrincName ); #line 1239 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" #line 1251 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" /* client */ __declspec(dllimport) RPC_STATUS __stdcall RpcEpResolveBinding ( RPC_BINDING_HANDLE Binding, RPC_IF_HANDLE IfSpec ); /* client */ __declspec(dllimport) RPC_STATUS __stdcall RpcNsBindingInqEntryNameA ( RPC_BINDING_HANDLE Binding, unsigned long EntryNameSyntax, RPC_CSTR * EntryName ); __declspec(dllimport) RPC_STATUS __stdcall RpcNsBindingInqEntryNameW ( RPC_BINDING_HANDLE Binding, unsigned long EntryNameSyntax, RPC_WSTR * EntryName ); #line 1288 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" #line 1301 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" typedef void * RPC_AUTH_IDENTITY_HANDLE; typedef void * RPC_AUTHZ_HANDLE; #line 1331 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" #line 1335 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" #line 1357 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" typedef struct _RPC_SECURITY_QOS { unsigned long Version; unsigned long Capabilities; unsigned long IdentityTracking; unsigned long ImpersonationType; } RPC_SECURITY_QOS, *PRPC_SECURITY_QOS; typedef struct _SEC_WINNT_AUTH_IDENTITY_W { unsigned short *User; unsigned long UserLength; unsigned short *Domain; unsigned long DomainLength; unsigned short *Password; unsigned long PasswordLength; unsigned long Flags; } SEC_WINNT_AUTH_IDENTITY_W, *PSEC_WINNT_AUTH_IDENTITY_W; #line 1391 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" typedef struct _SEC_WINNT_AUTH_IDENTITY_A { unsigned char *User; unsigned long UserLength; unsigned char *Domain; unsigned long DomainLength; unsigned char *Password; unsigned long PasswordLength; unsigned long Flags; } SEC_WINNT_AUTH_IDENTITY_A, *PSEC_WINNT_AUTH_IDENTITY_A; #line 1411 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" #line 1422 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" // 0x00020000 & 0x00040000 are reserved #line 1432 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" #line 1438 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_W { SEC_WINNT_AUTH_IDENTITY_W *TransportCredentials; unsigned long Flags; unsigned long AuthenticationTarget; unsigned long NumberOfAuthnSchemes; unsigned long *AuthnSchemes; unsigned short *ServerCertificateSubject; } RPC_HTTP_TRANSPORT_CREDENTIALS_W, *PRPC_HTTP_TRANSPORT_CREDENTIALS_W; typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_A { SEC_WINNT_AUTH_IDENTITY_A *TransportCredentials; unsigned long Flags; unsigned long AuthenticationTarget; unsigned long NumberOfAuthnSchemes; unsigned long *AuthnSchemes; unsigned char *ServerCertificateSubject; } RPC_HTTP_TRANSPORT_CREDENTIALS_A, *PRPC_HTTP_TRANSPORT_CREDENTIALS_A; #line 1488 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" typedef struct _RPC_SECURITY_QOS_V2_W { unsigned long Version; unsigned long Capabilities; unsigned long IdentityTracking; unsigned long ImpersonationType; unsigned long AdditionalSecurityInfoType; union { RPC_HTTP_TRANSPORT_CREDENTIALS_W *HttpCredentials; } u; } RPC_SECURITY_QOS_V2_W, *PRPC_SECURITY_QOS_V2_W; typedef struct _RPC_SECURITY_QOS_V2_A { unsigned long Version; unsigned long Capabilities; unsigned long IdentityTracking; unsigned long ImpersonationType; unsigned long AdditionalSecurityInfoType; union { RPC_HTTP_TRANSPORT_CREDENTIALS_A *HttpCredentials; } u; } RPC_SECURITY_QOS_V2_A, *PRPC_SECURITY_QOS_V2_A; typedef struct _RPC_SECURITY_QOS_V3_W { unsigned long Version; unsigned long Capabilities; unsigned long IdentityTracking; unsigned long ImpersonationType; unsigned long AdditionalSecurityInfoType; union { RPC_HTTP_TRANSPORT_CREDENTIALS_W *HttpCredentials; } u; void *Sid; } RPC_SECURITY_QOS_V3_W, *PRPC_SECURITY_QOS_V3_W; typedef struct _RPC_SECURITY_QOS_V3_A { unsigned long Version; unsigned long Capabilities; unsigned long IdentityTracking; unsigned long ImpersonationType; unsigned long AdditionalSecurityInfoType; union { RPC_HTTP_TRANSPORT_CREDENTIALS_A *HttpCredentials; } u; void *Sid; } RPC_SECURITY_QOS_V3_A, *PRPC_SECURITY_QOS_V3_A; #line 1542 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" #line 1576 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" #line 1577 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" #line 1578 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" #line 1595 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" #line 1601 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" #line 1607 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" #line 1637 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" #line 1773 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" typedef enum _RPC_HTTP_REDIRECTOR_STAGE { RPCHTTP_RS_REDIRECT = 1, RPCHTTP_RS_ACCESS_1, RPCHTTP_RS_SESSION, RPCHTTP_RS_ACCESS_2, RPCHTTP_RS_INTERFACE } RPC_HTTP_REDIRECTOR_STAGE; #line 1784 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" typedef RPC_STATUS (__stdcall * RPC_NEW_HTTP_PROXY_CHANNEL) ( RPC_HTTP_REDIRECTOR_STAGE RedirectorStage, RPC_WSTR ServerName, RPC_WSTR ServerPort, RPC_WSTR RemoteUser, RPC_WSTR AuthType, void * ResourceUuid, void * Metadata, void * SessionId, void * Interface, void * Reserved, unsigned long Flags, RPC_WSTR * NewServerName, RPC_WSTR * NewServerPort ); #line 1813 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" typedef void (__stdcall * RPC_HTTP_PROXY_FREE_STRING) ( RPC_WSTR String ); #line 1819 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" __declspec(dllimport) RPC_STATUS __stdcall RpcImpersonateClient ( RPC_BINDING_HANDLE BindingHandle ); __declspec(dllimport) RPC_STATUS __stdcall RpcRevertToSelfEx ( RPC_BINDING_HANDLE BindingHandle ); __declspec(dllimport) RPC_STATUS __stdcall RpcRevertToSelf ( void ); __declspec(dllimport) RPC_STATUS __stdcall RpcBindingInqAuthClientA ( RPC_BINDING_HANDLE ClientBinding, RPC_AUTHZ_HANDLE * Privs, RPC_CSTR * ServerPrincName, unsigned long * AuthnLevel, unsigned long * AuthnSvc, unsigned long * AuthzSvc ); __declspec(dllimport) RPC_STATUS __stdcall RpcBindingInqAuthClientW ( RPC_BINDING_HANDLE ClientBinding, RPC_AUTHZ_HANDLE * Privs, RPC_WSTR * ServerPrincName, unsigned long * AuthnLevel, unsigned long * AuthnSvc, unsigned long * AuthzSvc ); __declspec(dllimport) RPC_STATUS __stdcall RpcBindingInqAuthClientExA ( RPC_BINDING_HANDLE ClientBinding, RPC_AUTHZ_HANDLE * Privs, RPC_CSTR * ServerPrincName, unsigned long * AuthnLevel, unsigned long * AuthnSvc, unsigned long * AuthzSvc, unsigned long Flags ); __declspec(dllimport) RPC_STATUS __stdcall RpcBindingInqAuthClientExW ( RPC_BINDING_HANDLE ClientBinding, RPC_AUTHZ_HANDLE * Privs, RPC_WSTR * ServerPrincName, unsigned long * AuthnLevel, unsigned long * AuthnSvc, unsigned long * AuthzSvc, unsigned long Flags ); __declspec(dllimport) RPC_STATUS __stdcall RpcBindingInqAuthInfoA ( RPC_BINDING_HANDLE Binding, RPC_CSTR * ServerPrincName, unsigned long * AuthnLevel, unsigned long * AuthnSvc, RPC_AUTH_IDENTITY_HANDLE * AuthIdentity, unsigned long * AuthzSvc ); __declspec(dllimport) RPC_STATUS __stdcall RpcBindingInqAuthInfoW ( RPC_BINDING_HANDLE Binding, RPC_WSTR * ServerPrincName, unsigned long * AuthnLevel, unsigned long * AuthnSvc, RPC_AUTH_IDENTITY_HANDLE * AuthIdentity, unsigned long * AuthzSvc ); __declspec(dllimport) RPC_STATUS __stdcall RpcBindingSetAuthInfoA ( RPC_BINDING_HANDLE Binding, RPC_CSTR ServerPrincName, unsigned long AuthnLevel, unsigned long AuthnSvc, RPC_AUTH_IDENTITY_HANDLE AuthIdentity, unsigned long AuthzSvc ); __declspec(dllimport) RPC_STATUS __stdcall RpcBindingSetAuthInfoExA ( RPC_BINDING_HANDLE Binding, RPC_CSTR ServerPrincName, unsigned long AuthnLevel, unsigned long AuthnSvc, RPC_AUTH_IDENTITY_HANDLE AuthIdentity, unsigned long AuthzSvc, RPC_SECURITY_QOS * SecurityQos ); __declspec(dllimport) RPC_STATUS __stdcall RpcBindingSetAuthInfoW ( RPC_BINDING_HANDLE Binding, RPC_WSTR ServerPrincName, unsigned long AuthnLevel, unsigned long AuthnSvc, RPC_AUTH_IDENTITY_HANDLE AuthIdentity, unsigned long AuthzSvc ); __declspec(dllimport) RPC_STATUS __stdcall RpcBindingSetAuthInfoExW ( RPC_BINDING_HANDLE Binding, RPC_WSTR ServerPrincName, unsigned long AuthnLevel, unsigned long AuthnSvc, RPC_AUTH_IDENTITY_HANDLE AuthIdentity, unsigned long AuthzSvc, RPC_SECURITY_QOS * SecurityQOS ); __declspec(dllimport) RPC_STATUS __stdcall RpcBindingInqAuthInfoExA ( RPC_BINDING_HANDLE Binding, RPC_CSTR * ServerPrincName, unsigned long * AuthnLevel, unsigned long * AuthnSvc, RPC_AUTH_IDENTITY_HANDLE * AuthIdentity, unsigned long * AuthzSvc, unsigned long RpcQosVersion, RPC_SECURITY_QOS *SecurityQOS ); __declspec(dllimport) RPC_STATUS __stdcall RpcBindingInqAuthInfoExW ( RPC_BINDING_HANDLE Binding, RPC_WSTR * ServerPrincName, unsigned long * AuthnLevel, unsigned long * AuthnSvc, RPC_AUTH_IDENTITY_HANDLE * AuthIdentity, unsigned long * AuthzSvc, unsigned long RpcQosVersion, RPC_SECURITY_QOS * SecurityQOS ); typedef void (__stdcall * RPC_AUTH_KEY_RETRIEVAL_FN) ( void * Arg, RPC_WSTR ServerPrincName, unsigned long KeyVer, void * * Key, RPC_STATUS * Status ); __declspec(dllimport) RPC_STATUS __stdcall RpcServerCompleteSecurityCallback( RPC_BINDING_HANDLE BindingHandle, RPC_STATUS Status ); __declspec(dllimport) RPC_STATUS __stdcall RpcServerRegisterAuthInfoA ( RPC_CSTR ServerPrincName, unsigned long AuthnSvc, RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn, void * Arg ); __declspec(dllimport) RPC_STATUS __stdcall RpcServerRegisterAuthInfoW ( RPC_WSTR ServerPrincName, unsigned long AuthnSvc, RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn, void * Arg ); #line 2054 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" #line 2126 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" typedef struct { unsigned char * UserName; unsigned char * ComputerName; unsigned short Privilege; unsigned long AuthFlags; } RPC_CLIENT_INFORMATION1, * PRPC_CLIENT_INFORMATION1; #line 2136 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" #line 2137 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" __declspec(dllimport) RPC_STATUS __stdcall RpcBindingServerFromClient ( RPC_BINDING_HANDLE ClientBinding, RPC_BINDING_HANDLE * ServerBinding ); __declspec(dllimport) __declspec(noreturn) void __stdcall RpcRaiseException ( RPC_STATUS exception ); __declspec(dllimport) RPC_STATUS __stdcall RpcTestCancel( void ); __declspec(dllimport) RPC_STATUS __stdcall RpcServerTestCancel ( RPC_BINDING_HANDLE BindingHandle ); __declspec(dllimport) RPC_STATUS __stdcall RpcCancelThread( void * Thread ); __declspec(dllimport) RPC_STATUS __stdcall RpcCancelThreadEx( void * Thread, long Timeout ); /* client/server */ __declspec(dllimport) RPC_STATUS __stdcall UuidCreate ( UUID * Uuid ); /* client/server */ __declspec(dllimport) RPC_STATUS __stdcall UuidCreateSequential ( UUID * Uuid ); /* client/server */ __declspec(dllimport) RPC_STATUS __stdcall UuidToStringA ( const UUID * Uuid, RPC_CSTR * StringUuid ); /* client/server */ __declspec(dllimport) RPC_STATUS __stdcall UuidFromStringA ( RPC_CSTR StringUuid, UUID * Uuid ); /* client/server */ __declspec(dllimport) RPC_STATUS __stdcall UuidToStringW ( const UUID * Uuid, RPC_WSTR * StringUuid ); /* client/server */ __declspec(dllimport) RPC_STATUS __stdcall UuidFromStringW ( RPC_WSTR StringUuid, UUID * Uuid ); #line 2244 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" #line 2266 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" __declspec(dllimport) signed int __stdcall UuidCompare ( UUID * Uuid1, UUID * Uuid2, RPC_STATUS * Status ); __declspec(dllimport) RPC_STATUS __stdcall UuidCreateNil ( UUID * NilUuid ); __declspec(dllimport) int __stdcall UuidEqual ( UUID * Uuid1, UUID * Uuid2, RPC_STATUS * Status ); __declspec(dllimport) unsigned short __stdcall UuidHash ( UUID * Uuid, RPC_STATUS * Status ); __declspec(dllimport) int __stdcall UuidIsNil ( UUID * Uuid, RPC_STATUS * Status ); __declspec(dllimport) RPC_STATUS __stdcall RpcEpRegisterNoReplaceA ( RPC_IF_HANDLE IfSpec, RPC_BINDING_VECTOR * BindingVector, UUID_VECTOR * UuidVector, RPC_CSTR Annotation ); __declspec(dllimport) RPC_STATUS __stdcall RpcEpRegisterNoReplaceW ( RPC_IF_HANDLE IfSpec, RPC_BINDING_VECTOR * BindingVector, UUID_VECTOR * UuidVector, RPC_WSTR Annotation ); __declspec(dllimport) RPC_STATUS __stdcall RpcEpRegisterA ( RPC_IF_HANDLE IfSpec, RPC_BINDING_VECTOR * BindingVector, UUID_VECTOR * UuidVector, RPC_CSTR Annotation ); __declspec(dllimport) RPC_STATUS __stdcall RpcEpRegisterW ( RPC_IF_HANDLE IfSpec, RPC_BINDING_VECTOR * BindingVector, UUID_VECTOR * UuidVector, RPC_WSTR Annotation ); #line 2357 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" #line 2381 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" __declspec(dllimport) RPC_STATUS __stdcall RpcEpUnregister( RPC_IF_HANDLE IfSpec, RPC_BINDING_VECTOR * BindingVector, UUID_VECTOR * UuidVector ); __declspec(dllimport) RPC_STATUS __stdcall DceErrorInqTextA ( RPC_STATUS RpcStatus, RPC_CSTR ErrorText ); __declspec(dllimport) RPC_STATUS __stdcall DceErrorInqTextW ( RPC_STATUS RpcStatus, RPC_WSTR ErrorText ); #line 2417 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" #line 2429 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" typedef I_RPC_HANDLE * RPC_EP_INQ_HANDLE; __declspec(dllimport) RPC_STATUS __stdcall RpcMgmtEpEltInqBegin ( RPC_BINDING_HANDLE EpBinding, unsigned long InquiryType, RPC_IF_ID * IfId, unsigned long VersOption, UUID * ObjectUuid, RPC_EP_INQ_HANDLE * InquiryContext ); __declspec(dllimport) RPC_STATUS __stdcall RpcMgmtEpEltInqDone ( RPC_EP_INQ_HANDLE * InquiryContext ); __declspec(dllimport) RPC_STATUS __stdcall RpcMgmtEpEltInqNextA ( RPC_EP_INQ_HANDLE InquiryContext, RPC_IF_ID * IfId, RPC_BINDING_HANDLE * Binding, UUID * ObjectUuid, RPC_CSTR * Annotation ); __declspec(dllimport) RPC_STATUS __stdcall RpcMgmtEpEltInqNextW ( RPC_EP_INQ_HANDLE InquiryContext, RPC_IF_ID * IfId, RPC_BINDING_HANDLE * Binding, UUID * ObjectUuid, RPC_WSTR * Annotation ); #line 2491 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" #line 2505 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" __declspec(dllimport) RPC_STATUS __stdcall RpcMgmtEpUnregister ( RPC_BINDING_HANDLE EpBinding, RPC_IF_ID * IfId, RPC_BINDING_HANDLE Binding, UUID * ObjectUuid ); typedef int (__stdcall * RPC_MGMT_AUTHORIZATION_FN) ( RPC_BINDING_HANDLE ClientBinding, unsigned long RequestedMgmtOperation, RPC_STATUS * Status ); __declspec(dllimport) RPC_STATUS __stdcall RpcMgmtSetAuthorizationFn ( RPC_MGMT_AUTHORIZATION_FN AuthorizationFn ); #line 2544 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" #line 2559 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" #line 2563 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdcep.h" /*++ Copyright (c) Microsoft Corporation. All rights reserved. Module Name: rpcdcep.h Abstract: This module contains the private RPC runtime APIs for use by the stubs and by support libraries. Applications must not call these routines. --*/ #pragma once #line 23 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdcep.h" extern "C" { #line 27 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdcep.h" typedef struct _RPC_VERSION { unsigned short MajorVersion; unsigned short MinorVersion; } RPC_VERSION; typedef struct _RPC_SYNTAX_IDENTIFIER { GUID SyntaxGUID; RPC_VERSION SyntaxVersion; } RPC_SYNTAX_IDENTIFIER, * PRPC_SYNTAX_IDENTIFIER; typedef struct _RPC_MESSAGE { RPC_BINDING_HANDLE Handle; unsigned long DataRepresentation; void * Buffer; unsigned int BufferLength; unsigned int ProcNum; PRPC_SYNTAX_IDENTIFIER TransferSyntax; void * RpcInterfaceInformation; void * ReservedForRuntime; void * ManagerEpv; void * ImportContext; unsigned long RpcFlags; } RPC_MESSAGE, * PRPC_MESSAGE; typedef RPC_STATUS __stdcall RPC_FORWARD_FUNCTION( UUID * InterfaceId, RPC_VERSION * InterfaceVersion, UUID * ObjectId, unsigned char * Rpcpro, void * * ppDestEndpoint); enum RPC_ADDRESS_CHANGE_TYPE { PROTOCOL_NOT_LOADED = 1, PROTOCOL_LOADED, PROTOCOL_ADDRESS_CHANGE }; typedef void __stdcall RPC_ADDRESS_CHANGE_FN( void * arg ); /* * New context handle flavors. */ #line 86 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdcep.h" /* * Types of function calls for datagram rpc */ #line 99 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdcep.h" #line 118 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdcep.h" #line 130 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdcep.h" typedef void (__stdcall * RPC_DISPATCH_FUNCTION) ( PRPC_MESSAGE Message ); typedef struct { unsigned int DispatchTableCount; RPC_DISPATCH_FUNCTION * DispatchTable; LONG_PTR Reserved; } RPC_DISPATCH_TABLE, * PRPC_DISPATCH_TABLE; typedef struct _RPC_PROTSEQ_ENDPOINT { unsigned char * RpcProtocolSequence; unsigned char * Endpoint; } RPC_PROTSEQ_ENDPOINT, * PRPC_PROTSEQ_ENDPOINT; /* Both of these types MUST start with the InterfaceId and TransferSyntax. Look at RpcIfInqId and I_RpcIfInqTransferSyntaxes to see why. */ typedef struct _RPC_SERVER_INTERFACE { unsigned int Length; RPC_SYNTAX_IDENTIFIER InterfaceId; RPC_SYNTAX_IDENTIFIER TransferSyntax; PRPC_DISPATCH_TABLE DispatchTable; unsigned int RpcProtseqEndpointCount; PRPC_PROTSEQ_ENDPOINT RpcProtseqEndpoint; void *DefaultManagerEpv; void const *InterpreterInfo; unsigned int Flags ; } RPC_SERVER_INTERFACE, * PRPC_SERVER_INTERFACE; typedef struct _RPC_CLIENT_INTERFACE { unsigned int Length; RPC_SYNTAX_IDENTIFIER InterfaceId; RPC_SYNTAX_IDENTIFIER TransferSyntax; PRPC_DISPATCH_TABLE DispatchTable; unsigned int RpcProtseqEndpointCount; PRPC_PROTSEQ_ENDPOINT RpcProtseqEndpoint; ULONG_PTR Reserved; void const * InterpreterInfo; unsigned int Flags ; } RPC_CLIENT_INTERFACE, * PRPC_CLIENT_INTERFACE; __declspec(dllimport) RPC_STATUS __stdcall I_RpcNegotiateTransferSyntax ( RPC_MESSAGE * Message ); #line 192 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdcep.h" __declspec(dllimport) RPC_STATUS __stdcall I_RpcGetBuffer ( RPC_MESSAGE * Message ); __declspec(dllimport) RPC_STATUS __stdcall I_RpcGetBufferWithObject ( RPC_MESSAGE * Message, UUID * ObjectUuid ); __declspec(dllimport) RPC_STATUS __stdcall I_RpcSendReceive ( RPC_MESSAGE * Message ); __declspec(dllimport) RPC_STATUS __stdcall I_RpcFreeBuffer ( RPC_MESSAGE * Message ); __declspec(dllimport) RPC_STATUS __stdcall I_RpcSend ( PRPC_MESSAGE Message ); __declspec(dllimport) RPC_STATUS __stdcall I_RpcReceive ( PRPC_MESSAGE Message, unsigned int Size ); __declspec(dllimport) RPC_STATUS __stdcall I_RpcFreePipeBuffer ( RPC_MESSAGE * Message ); __declspec(dllimport) RPC_STATUS __stdcall I_RpcReallocPipeBuffer ( PRPC_MESSAGE Message, unsigned int NewSize ); typedef void * I_RPC_MUTEX; __declspec(dllimport) void __stdcall I_RpcRequestMutex ( I_RPC_MUTEX * Mutex ); __declspec(dllimport) void __stdcall I_RpcClearMutex ( I_RPC_MUTEX Mutex ); __declspec(dllimport) void __stdcall I_RpcDeleteMutex ( I_RPC_MUTEX Mutex ); __declspec(dllimport) void * __stdcall I_RpcAllocate ( unsigned int Size ); __declspec(dllimport) void __stdcall I_RpcFree ( void * Object ); __declspec(dllimport) void __stdcall I_RpcPauseExecution ( unsigned long Milliseconds ); __declspec(dllimport) RPC_STATUS __stdcall I_RpcGetExtendedError ( void ); typedef void (__stdcall * PRPC_RUNDOWN) ( void * AssociationContext ); __declspec(dllimport) RPC_STATUS __stdcall I_RpcMonitorAssociation ( RPC_BINDING_HANDLE Handle, PRPC_RUNDOWN RundownRoutine, void * Context ); __declspec(dllimport) RPC_STATUS __stdcall I_RpcStopMonitorAssociation ( RPC_BINDING_HANDLE Handle ); __declspec(dllimport) RPC_BINDING_HANDLE __stdcall I_RpcGetCurrentCallHandle( void ); __declspec(dllimport) RPC_STATUS __stdcall I_RpcGetAssociationContext ( RPC_BINDING_HANDLE BindingHandle, void * * AssociationContext ); __declspec(dllimport) void * __stdcall I_RpcGetServerContextList ( RPC_BINDING_HANDLE BindingHandle ); __declspec(dllimport) void __stdcall I_RpcSetServerContextList ( RPC_BINDING_HANDLE BindingHandle, void * ServerContextList ); __declspec(dllimport) RPC_STATUS __stdcall I_RpcNsInterfaceExported ( unsigned long EntryNameSyntax, unsigned short *EntryName, RPC_SERVER_INTERFACE * RpcInterfaceInformation ); __declspec(dllimport) RPC_STATUS __stdcall I_RpcNsInterfaceUnexported ( unsigned long EntryNameSyntax, unsigned short *EntryName, RPC_SERVER_INTERFACE * RpcInterfaceInformation ); __declspec(dllimport) RPC_STATUS __stdcall I_RpcBindingToStaticStringBindingW ( RPC_BINDING_HANDLE Binding, unsigned short **StringBinding ); __declspec(dllimport) RPC_STATUS __stdcall I_RpcBindingInqSecurityContext ( RPC_BINDING_HANDLE Binding, void **SecurityContextHandle ); #line 398 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdcep.h" __declspec(dllimport) RPC_STATUS __stdcall I_RpcBindingInqWireIdForSnego ( RPC_BINDING_HANDLE Binding, RPC_CSTR WireId ); __declspec(dllimport) RPC_STATUS __stdcall I_RpcBindingInqMarshalledTargetInfo ( RPC_BINDING_HANDLE Binding, unsigned long * MarshalledTargetInfoSize, RPC_CSTR * MarshalledTargetInfo ); #line 417 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdcep.h" __declspec(dllimport) RPC_STATUS __stdcall I_RpcBindingInqLocalClientPID ( RPC_BINDING_HANDLE Binding, unsigned long *Pid ); __declspec(dllimport) RPC_STATUS __stdcall I_RpcBindingHandleToAsyncHandle ( RPC_BINDING_HANDLE Binding, void **AsyncHandle ); #line 435 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdcep.h" __declspec(dllimport) RPC_STATUS __stdcall I_RpcNsBindingSetEntryNameW ( RPC_BINDING_HANDLE Binding, unsigned long EntryNameSyntax, RPC_WSTR EntryName ); __declspec(dllimport) RPC_STATUS __stdcall I_RpcNsBindingSetEntryNameA ( RPC_BINDING_HANDLE Binding, unsigned long EntryNameSyntax, RPC_CSTR EntryName ); __declspec(dllimport) RPC_STATUS __stdcall I_RpcServerUseProtseqEp2A ( RPC_CSTR NetworkAddress, RPC_CSTR Protseq, unsigned int MaxCalls, RPC_CSTR Endpoint, void * SecurityDescriptor, void * Policy ); __declspec(dllimport) RPC_STATUS __stdcall I_RpcServerUseProtseqEp2W ( RPC_WSTR NetworkAddress, RPC_WSTR Protseq, unsigned int MaxCalls, RPC_WSTR Endpoint, void * SecurityDescriptor, void * Policy ); __declspec(dllimport) RPC_STATUS __stdcall I_RpcServerUseProtseq2W ( RPC_WSTR NetworkAddress, RPC_WSTR Protseq, unsigned int MaxCalls, void * SecurityDescriptor, void * Policy ); __declspec(dllimport) RPC_STATUS __stdcall I_RpcServerUseProtseq2A ( RPC_CSTR NetworkAddress, RPC_CSTR Protseq, unsigned int MaxCalls, void * SecurityDescriptor, void * Policy ); #line 512 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdcep.h" #line 547 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdcep.h" __declspec(dllimport) RPC_STATUS __stdcall I_RpcServerStartService ( RPC_WSTR Protseq, RPC_WSTR Endpoint, RPC_IF_HANDLE IfSpec ); __declspec(dllimport) RPC_STATUS __stdcall I_RpcBindingInqDynamicEndpointW ( RPC_BINDING_HANDLE Binding, RPC_WSTR *DynamicEndpoint ); __declspec(dllimport) RPC_STATUS __stdcall I_RpcBindingInqDynamicEndpointA ( RPC_BINDING_HANDLE Binding, RPC_CSTR *DynamicEndpoint ); #line 580 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdcep.h" #line 592 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdcep.h" __declspec(dllimport) RPC_STATUS __stdcall I_RpcServerCheckClientRestriction ( RPC_BINDING_HANDLE Context ); #line 601 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdcep.h" __declspec(dllimport) RPC_STATUS __stdcall I_RpcBindingInqTransportType ( RPC_BINDING_HANDLE Binding, unsigned int * Type ); typedef struct _RPC_TRANSFER_SYNTAX { UUID Uuid; unsigned short VersMajor; unsigned short VersMinor; } RPC_TRANSFER_SYNTAX; __declspec(dllimport) RPC_STATUS __stdcall I_RpcIfInqTransferSyntaxes ( RPC_IF_HANDLE RpcIfHandle, RPC_TRANSFER_SYNTAX * TransferSyntaxes, unsigned int TransferSyntaxSize, unsigned int * TransferSyntaxCount ); __declspec(dllimport) RPC_STATUS __stdcall I_UuidCreate ( UUID * Uuid ); __declspec(dllimport) RPC_STATUS __stdcall I_RpcBindingCopy ( RPC_BINDING_HANDLE SourceBinding, RPC_BINDING_HANDLE * DestinationBinding ); __declspec(dllimport) RPC_STATUS __stdcall I_RpcBindingIsClientLocal ( RPC_BINDING_HANDLE BindingHandle, unsigned int * ClientLocalFlag ); __declspec(dllimport) RPC_STATUS __stdcall I_RpcBindingInqConnId ( RPC_BINDING_HANDLE Binding, void **ConnId, int *pfFirstCall ); __declspec(dllimport) RPC_STATUS __stdcall I_RpcBindingCreateNP ( RPC_WSTR ServerName, RPC_WSTR ServiceName, RPC_WSTR NetworkOptions, RPC_BINDING_HANDLE *Binding ); __declspec(dllimport) void __stdcall I_RpcSsDontSerializeContext ( void ); __declspec(dllimport) RPC_STATUS __stdcall I_RpcLaunchDatagramReceiveThread( void * pAddress ); __declspec(dllimport) RPC_STATUS __stdcall I_RpcServerRegisterForwardFunction ( RPC_FORWARD_FUNCTION * pForwardFunction ); RPC_ADDRESS_CHANGE_FN * __stdcall I_RpcServerInqAddressChangeFn( void ); RPC_STATUS __stdcall I_RpcServerSetAddressChangeFn( RPC_ADDRESS_CHANGE_FN * pAddressChangeFn ); /* The return buffer will contain SOCKADDR_IN for IPv4 */ /* The return buffer will contain SOCKADDR_STORAGE for IPv6 */ __declspec(dllimport) RPC_STATUS __stdcall I_RpcServerInqLocalConnAddress ( RPC_BINDING_HANDLE Binding, void *Buffer, unsigned long *BufferSize, unsigned long *AddressFormat ); __declspec(dllimport) RPC_STATUS __stdcall I_RpcServerInqRemoteConnAddress ( RPC_BINDING_HANDLE Binding, void *Buffer, unsigned long *BufferSize, unsigned long *AddressFormat ); __declspec(dllimport) void __stdcall I_RpcSessionStrictContextHandle ( void ); __declspec(dllimport) RPC_STATUS __stdcall I_RpcTurnOnEEInfoPropagation ( void ); #line 746 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdcep.h" __declspec(dllimport) RPC_STATUS __stdcall I_RpcConnectionInqSockBuffSize( unsigned long * RecvBuffSize, unsigned long * SendBuffSize ); __declspec(dllimport) RPC_STATUS __stdcall I_RpcConnectionSetSockBuffSize( unsigned long RecvBuffSize, unsigned long SendBuffSize ); typedef void (*RPCLT_PDU_FILTER_FUNC) ( void *Buffer, unsigned int BufferLength, int fDatagram ); typedef void (__cdecl *RPC_SETFILTER_FUNC) ( RPCLT_PDU_FILTER_FUNC pfnFilter ); __declspec(dllimport) RPC_STATUS __stdcall I_RpcServerStartListening( void * hWnd ); __declspec(dllimport) RPC_STATUS __stdcall I_RpcServerStopListening( void ); typedef RPC_STATUS (*RPC_BLOCKING_FN) ( void * hWnd, void * Context, void * hSyncEvent ); __declspec(dllimport) RPC_STATUS __stdcall I_RpcBindingSetAsync( RPC_BINDING_HANDLE Binding, RPC_BLOCKING_FN BlockingFn, unsigned long ServerTid ); __declspec(dllimport) RPC_STATUS __stdcall I_RpcSetThreadParams( int fClientFree, void *Context, void * hWndClient ); __declspec(dllimport) unsigned int __stdcall I_RpcWindowProc( void * hWnd, unsigned int Message, unsigned int wParam, unsigned long lParam ); __declspec(dllimport) RPC_STATUS __stdcall I_RpcServerUnregisterEndpointA ( RPC_CSTR Protseq, RPC_CSTR Endpoint ); __declspec(dllimport) RPC_STATUS __stdcall I_RpcServerUnregisterEndpointW ( RPC_WSTR Protseq, RPC_WSTR Endpoint ); #line 847 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdcep.h" #line 848 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdcep.h" __declspec(dllimport) RPC_STATUS __stdcall I_RpcServerInqTransportType( unsigned int * Type ); __declspec(dllimport) long __stdcall I_RpcMapWin32Status ( RPC_STATUS Status ); typedef struct _RPC_C_OPT_METADATA_DESCRIPTOR { unsigned long BufferSize; // Length of the buffer in bytes char *Buffer; // Zero-terminated string } RPC_C_OPT_METADATA_DESCRIPTOR; typedef struct _RDR_CALLOUT_STATE { // LastError is used for debugging only - don't use it for processing RPC_STATUS LastError; void *LastEEInfo; RPC_HTTP_REDIRECTOR_STAGE LastCalledStage; // the information accumulated throughout the stages unsigned short *ServerName; // Allocated with MemAllocate unsigned short *ServerPort; // Allocated with MemAllocate unsigned short *RemoteUser; // Allocated with MemAllocate unsigned short *AuthType; // Allocated with MemAllocate unsigned char ResourceTypePresent; unsigned char MetadataPresent; unsigned char SessionIdPresent; unsigned char InterfacePresent; UUID ResourceType; RPC_C_OPT_METADATA_DESCRIPTOR Metadata; // Allocated with MemAllocate UUID SessionId; RPC_SYNTAX_IDENTIFIER Interface; void *CertContext; // Contains PCCERT_CONTEXT if cert is used for authentication. // NULL otherwise. If allocated, CertFreeCertificateContext // needs to be called on it when done } RDR_CALLOUT_STATE; #line 896 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdcep.h" typedef RPC_STATUS (__stdcall *I_RpcProxyIsValidMachineFn) ( char *pszMachine, char *pszDotMachine, unsigned long dwPortNumber ); typedef RPC_STATUS (__stdcall *I_RpcProxyGetClientAddressFn) ( void *Context, char *Buffer, unsigned long *BufferLength ); typedef RPC_STATUS (__stdcall *I_RpcProxyGetConnectionTimeoutFn) ( unsigned long *ConnectionTimeout ); typedef RPC_STATUS (__stdcall *I_RpcPerformCalloutFn) ( void *Context, RDR_CALLOUT_STATE *CallOutState, RPC_HTTP_REDIRECTOR_STAGE Stage ); typedef void (__stdcall *I_RpcFreeCalloutStateFn) ( RDR_CALLOUT_STATE *CallOutState ); typedef RPC_STATUS (__stdcall *I_RpcProxyGetClientSessionAndResourceUUID) ( void *Context, int *SessionIdPresent, UUID *SessionId, int *ResourceIdPresent, UUID *ResourceId ); #line 946 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdcep.h" #line 957 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdcep.h" typedef struct tagI_RpcProxyCallbackInterface { I_RpcProxyIsValidMachineFn IsValidMachineFn; I_RpcProxyGetClientAddressFn GetClientAddressFn; I_RpcProxyGetConnectionTimeoutFn GetConnectionTimeoutFn; I_RpcPerformCalloutFn PerformCalloutFn; I_RpcFreeCalloutStateFn FreeCalloutStateFn; I_RpcProxyGetClientSessionAndResourceUUID GetClientSessionAndResourceUUIDFn; #line 973 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdcep.h" } I_RpcProxyCallbackInterface; __declspec(dllimport) RPC_STATUS __stdcall I_RpcProxyNewConnection ( unsigned long ConnectionType, unsigned short *ServerAddress, unsigned short *ServerPort, unsigned short *MinConnTimeout, void *ConnectionParameter, RDR_CALLOUT_STATE *CallOutState, I_RpcProxyCallbackInterface *ProxyCallbackInterface ); #line 1008 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdcep.h" #line 1010 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdcep.h" __declspec(dllimport) RPC_STATUS __stdcall I_RpcReplyToClientWithStatus ( void *ConnectionParameter, RPC_STATUS RpcStatus ); __declspec(dllimport) void __stdcall I_RpcRecordCalloutFailure ( RPC_STATUS RpcStatus, RDR_CALLOUT_STATE *CallOutState, unsigned short *DllName ); #line 1029 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdcep.h" } #line 1033 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdcep.h" #line 1035 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdcep.h" #line 2565 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" } #line 2569 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" #line 2571 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcdce.h" #line 144 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpc.h" #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcnsi.h" /*++ Copyright (c) Microsoft Corporation. All rights reserved. Module Name: rpcnsi.h Abstract: This file contains the types and function definitions to use the Name Service Independent APIs. --*/ #pragma once #line 22 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcnsi.h" typedef void * RPC_NS_HANDLE; /* Server APIs */ __declspec(dllimport) RPC_STATUS __stdcall RpcNsBindingExportA( unsigned long EntryNameSyntax, RPC_CSTR EntryName, RPC_IF_HANDLE IfSpec, RPC_BINDING_VECTOR *BindingVec, UUID_VECTOR *ObjectUuidVec ); __declspec(dllimport) RPC_STATUS __stdcall RpcNsBindingUnexportA( unsigned long EntryNameSyntax, RPC_CSTR EntryName, RPC_IF_HANDLE IfSpec, UUID_VECTOR *ObjectUuidVec ); __declspec(dllimport) RPC_STATUS __stdcall RpcNsBindingExportW( unsigned long EntryNameSyntax, RPC_WSTR EntryName, RPC_IF_HANDLE IfSpec, RPC_BINDING_VECTOR *BindingVec, UUID_VECTOR *ObjectUuidVec ); __declspec(dllimport) RPC_STATUS __stdcall RpcNsBindingUnexportW( unsigned long EntryNameSyntax, RPC_WSTR EntryName, RPC_IF_HANDLE IfSpec, UUID_VECTOR *ObjectUuidVec ); #line 77 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcnsi.h" /* Server PnP APIs */ RPC_STATUS __stdcall RpcNsBindingExportPnPA( unsigned long EntryNameSyntax, RPC_CSTR EntryName, RPC_IF_HANDLE IfSpec, UUID_VECTOR *ObjectVector ); RPC_STATUS __stdcall RpcNsBindingUnexportPnPA( unsigned long EntryNameSyntax, RPC_CSTR EntryName, RPC_IF_HANDLE IfSpec, UUID_VECTOR *ObjectVector ); RPC_STATUS __stdcall RpcNsBindingExportPnPW( unsigned long EntryNameSyntax, RPC_WSTR EntryName, RPC_IF_HANDLE IfSpec, UUID_VECTOR *ObjectVector ); RPC_STATUS __stdcall RpcNsBindingUnexportPnPW( unsigned long EntryNameSyntax, RPC_WSTR EntryName, RPC_IF_HANDLE IfSpec, UUID_VECTOR *ObjectVector ); #line 115 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcnsi.h" /* Client APIs */ __declspec(dllimport) RPC_STATUS __stdcall RpcNsBindingLookupBeginA( unsigned long EntryNameSyntax, RPC_CSTR EntryName, RPC_IF_HANDLE IfSpec, UUID *ObjUuid, unsigned long BindingMaxCount, RPC_NS_HANDLE *LookupContext ); __declspec(dllimport) RPC_STATUS __stdcall RpcNsBindingLookupBeginW( unsigned long EntryNameSyntax, RPC_WSTR EntryName, RPC_IF_HANDLE IfSpec, UUID *ObjUuid, unsigned long BindingMaxCount, RPC_NS_HANDLE *LookupContext ); #line 140 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcnsi.h" __declspec(dllimport) RPC_STATUS __stdcall RpcNsBindingLookupNext( RPC_NS_HANDLE LookupContext, RPC_BINDING_VECTOR * * BindingVec ); __declspec(dllimport) RPC_STATUS __stdcall RpcNsBindingLookupDone( RPC_NS_HANDLE * LookupContext ); /* Group APIs */ __declspec(dllimport) RPC_STATUS __stdcall RpcNsGroupDeleteA( unsigned long GroupNameSyntax, RPC_CSTR GroupName ); __declspec(dllimport) RPC_STATUS __stdcall RpcNsGroupMbrAddA( unsigned long GroupNameSyntax, RPC_CSTR GroupName, unsigned long MemberNameSyntax, RPC_CSTR MemberName ); __declspec(dllimport) RPC_STATUS __stdcall RpcNsGroupMbrRemoveA( unsigned long GroupNameSyntax, RPC_CSTR GroupName, unsigned long MemberNameSyntax, RPC_CSTR MemberName ); __declspec(dllimport) RPC_STATUS __stdcall RpcNsGroupMbrInqBeginA( unsigned long GroupNameSyntax, RPC_CSTR GroupName, unsigned long MemberNameSyntax, RPC_NS_HANDLE *InquiryContext ); __declspec(dllimport) RPC_STATUS __stdcall RpcNsGroupMbrInqNextA( RPC_NS_HANDLE InquiryContext, RPC_CSTR *MemberName ); __declspec(dllimport) RPC_STATUS __stdcall RpcNsGroupDeleteW( unsigned long GroupNameSyntax, RPC_WSTR GroupName ); __declspec(dllimport) RPC_STATUS __stdcall RpcNsGroupMbrAddW( unsigned long GroupNameSyntax, RPC_WSTR GroupName, unsigned long MemberNameSyntax, RPC_WSTR MemberName ); __declspec(dllimport) RPC_STATUS __stdcall RpcNsGroupMbrRemoveW( unsigned long GroupNameSyntax, RPC_WSTR GroupName, unsigned long MemberNameSyntax, RPC_WSTR MemberName ); __declspec(dllimport) RPC_STATUS __stdcall RpcNsGroupMbrInqBeginW( unsigned long GroupNameSyntax, RPC_WSTR GroupName, unsigned long MemberNameSyntax, RPC_NS_HANDLE *InquiryContext ); __declspec(dllimport) RPC_STATUS __stdcall RpcNsGroupMbrInqNextW( RPC_NS_HANDLE InquiryContext, RPC_WSTR *MemberName ); #line 229 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcnsi.h" __declspec(dllimport) RPC_STATUS __stdcall RpcNsGroupMbrInqDone( RPC_NS_HANDLE * InquiryContext ); /* Profile APIs */ __declspec(dllimport) RPC_STATUS __stdcall RpcNsProfileDeleteA( unsigned long ProfileNameSyntax, RPC_CSTR ProfileName ); __declspec(dllimport) RPC_STATUS __stdcall RpcNsProfileEltAddA( unsigned long ProfileNameSyntax, RPC_CSTR ProfileName, RPC_IF_ID *IfId, unsigned long MemberNameSyntax, RPC_CSTR MemberName, unsigned long Priority, RPC_CSTR Annotation ); __declspec(dllimport) RPC_STATUS __stdcall RpcNsProfileEltRemoveA( unsigned long ProfileNameSyntax, RPC_CSTR ProfileName, RPC_IF_ID *IfId, unsigned long MemberNameSyntax, RPC_CSTR MemberName ); __declspec(dllimport) RPC_STATUS __stdcall RpcNsProfileEltInqBeginA( unsigned long ProfileNameSyntax, RPC_CSTR ProfileName, unsigned long InquiryType, RPC_IF_ID *IfId, unsigned long VersOption, unsigned long MemberNameSyntax, RPC_CSTR MemberName, RPC_NS_HANDLE *InquiryContext ); __declspec(dllimport) RPC_STATUS __stdcall RpcNsProfileEltInqNextA( RPC_NS_HANDLE InquiryContext, RPC_IF_ID *IfId, RPC_CSTR *MemberName, unsigned long *Priority, RPC_CSTR *Annotation ); __declspec(dllimport) RPC_STATUS __stdcall RpcNsProfileDeleteW( unsigned long ProfileNameSyntax, RPC_WSTR ProfileName ); __declspec(dllimport) RPC_STATUS __stdcall RpcNsProfileEltAddW( unsigned long ProfileNameSyntax, RPC_WSTR ProfileName, RPC_IF_ID *IfId, unsigned long MemberNameSyntax, RPC_WSTR MemberName, unsigned long Priority, RPC_WSTR Annotation ); __declspec(dllimport) RPC_STATUS __stdcall RpcNsProfileEltRemoveW( unsigned long ProfileNameSyntax, RPC_WSTR ProfileName, RPC_IF_ID *IfId, unsigned long MemberNameSyntax, RPC_WSTR MemberName ); __declspec(dllimport) RPC_STATUS __stdcall RpcNsProfileEltInqBeginW( unsigned long ProfileNameSyntax, RPC_WSTR ProfileName, unsigned long InquiryType, RPC_IF_ID *IfId, unsigned long VersOption, unsigned long MemberNameSyntax, RPC_WSTR MemberName, RPC_NS_HANDLE *InquiryContext ); __declspec(dllimport) RPC_STATUS __stdcall RpcNsProfileEltInqNextW( RPC_NS_HANDLE InquiryContext, RPC_IF_ID *IfId, RPC_WSTR *MemberName, unsigned long *Priority, RPC_WSTR *Annotation ); #line 334 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcnsi.h" __declspec(dllimport) RPC_STATUS __stdcall RpcNsProfileEltInqDone( RPC_NS_HANDLE * InquiryContext ); /* Entry object APIs */ __declspec(dllimport) RPC_STATUS __stdcall RpcNsEntryObjectInqBeginA( unsigned long EntryNameSyntax, RPC_CSTR EntryName, RPC_NS_HANDLE *InquiryContext ); __declspec(dllimport) RPC_STATUS __stdcall RpcNsEntryObjectInqBeginW( unsigned long EntryNameSyntax, RPC_WSTR EntryName, RPC_NS_HANDLE *InquiryContext ); #line 359 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcnsi.h" __declspec(dllimport) RPC_STATUS __stdcall RpcNsEntryObjectInqNext( RPC_NS_HANDLE InquiryContext, UUID * ObjUuid ); __declspec(dllimport) RPC_STATUS __stdcall RpcNsEntryObjectInqDone( RPC_NS_HANDLE * InquiryContext ); /* Management and MISC APIs */ __declspec(dllimport) RPC_STATUS __stdcall RpcNsEntryExpandNameA( unsigned long EntryNameSyntax, RPC_CSTR EntryName, RPC_CSTR *ExpandedName ); __declspec(dllimport) RPC_STATUS __stdcall RpcNsMgmtBindingUnexportA( unsigned long EntryNameSyntax, RPC_CSTR EntryName, RPC_IF_ID *IfId, unsigned long VersOption, UUID_VECTOR *ObjectUuidVec ); __declspec(dllimport) RPC_STATUS __stdcall RpcNsMgmtEntryCreateA( unsigned long EntryNameSyntax, RPC_CSTR EntryName ); __declspec(dllimport) RPC_STATUS __stdcall RpcNsMgmtEntryDeleteA( unsigned long EntryNameSyntax, RPC_CSTR EntryName ); __declspec(dllimport) RPC_STATUS __stdcall RpcNsMgmtEntryInqIfIdsA( unsigned long EntryNameSyntax, RPC_CSTR EntryName, RPC_IF_ID_VECTOR * *IfIdVec ); __declspec(dllimport) RPC_STATUS __stdcall RpcNsMgmtHandleSetExpAge( RPC_NS_HANDLE NsHandle, unsigned long ExpirationAge ); __declspec(dllimport) RPC_STATUS __stdcall RpcNsMgmtInqExpAge( unsigned long * ExpirationAge ); __declspec(dllimport) RPC_STATUS __stdcall RpcNsMgmtSetExpAge( unsigned long ExpirationAge ); __declspec(dllimport) RPC_STATUS __stdcall RpcNsEntryExpandNameW( unsigned long EntryNameSyntax, RPC_WSTR EntryName, RPC_WSTR *ExpandedName ); __declspec(dllimport) RPC_STATUS __stdcall RpcNsMgmtBindingUnexportW( unsigned long EntryNameSyntax, RPC_WSTR EntryName, RPC_IF_ID *IfId, unsigned long VersOption, UUID_VECTOR *ObjectUuidVec ); __declspec(dllimport) RPC_STATUS __stdcall RpcNsMgmtEntryCreateW( unsigned long EntryNameSyntax, RPC_WSTR EntryName ); __declspec(dllimport) RPC_STATUS __stdcall RpcNsMgmtEntryDeleteW( unsigned long EntryNameSyntax, RPC_WSTR EntryName ); __declspec(dllimport) RPC_STATUS __stdcall RpcNsMgmtEntryInqIfIdsW( unsigned long EntryNameSyntax, RPC_WSTR EntryName, RPC_IF_ID_VECTOR * *IfIdVec ); #line 462 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcnsi.h" /* Client API's implemented in wrappers. */ __declspec(dllimport) RPC_STATUS __stdcall RpcNsBindingImportBeginA( unsigned long EntryNameSyntax, RPC_CSTR EntryName, RPC_IF_HANDLE IfSpec, UUID *ObjUuid, RPC_NS_HANDLE *ImportContext ); __declspec(dllimport) RPC_STATUS __stdcall RpcNsBindingImportBeginW( unsigned long EntryNameSyntax, RPC_WSTR EntryName, RPC_IF_HANDLE IfSpec, UUID *ObjUuid, RPC_NS_HANDLE *ImportContext ); #line 486 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcnsi.h" __declspec(dllimport) RPC_STATUS __stdcall RpcNsBindingImportNext( RPC_NS_HANDLE ImportContext, RPC_BINDING_HANDLE * Binding ); __declspec(dllimport) RPC_STATUS __stdcall RpcNsBindingImportDone( RPC_NS_HANDLE * ImportContext ); __declspec(dllimport) RPC_STATUS __stdcall RpcNsBindingSelect( RPC_BINDING_VECTOR * BindingVec, RPC_BINDING_HANDLE * Binding ); #line 554 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcnsi.h" #line 556 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcnsi.h" #line 146 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpc.h" #line 147 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpc.h" #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcnterr.h" /*++ Copyright (c) Microsoft Corporation. All rights reserved. Module Name: rpcnterr.h Abstract: Rpc Error Codes from the compiler and runtime --*/ #pragma once #line 18 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcnterr.h" #line 39 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcnterr.h" #line 542 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcnterr.h" #line 544 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcnterr.h" #line 148 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpc.h" #line 152 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpc.h" // trystmts // exceptstmts // trystmts // finallystmts #line 189 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpc.h" // Definitions which depend on windows.h #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcasync.h" /*++ Copyright (c) Microsoft Corporation. All rights reserved. Module Name: rpcasync.h Abstract: This module contains the RPC runtime APIs needed to use [async] RPC features. --*/ #pragma once #line 22 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcasync.h" #line 26 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcasync.h" extern "C" { #line 30 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcasync.h" #line 37 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcasync.h" typedef enum _RPC_NOTIFICATION_TYPES { RpcNotificationTypeNone, RpcNotificationTypeEvent, RpcNotificationTypeApc, RpcNotificationTypeIoc, RpcNotificationTypeHwnd, #line 50 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcasync.h" RpcNotificationTypeCallback } RPC_NOTIFICATION_TYPES; #line 64 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcasync.h" typedef enum _RPC_ASYNC_EVENT { RpcCallComplete, RpcSendComplete, RpcReceiveComplete, RpcClientDisconnect } RPC_ASYNC_EVENT; #line 73 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcasync.h" struct _RPC_ASYNC_STATE; typedef void __stdcall RPCNOTIFICATION_ROUTINE ( struct _RPC_ASYNC_STATE *pAsync, void *Context, RPC_ASYNC_EVENT Event); typedef RPCNOTIFICATION_ROUTINE *PFN_RPCNOTIFICATION_ROUTINE; typedef union _RPC_ASYNC_NOTIFICATION_INFO { // // Notification by APC // struct { PFN_RPCNOTIFICATION_ROUTINE NotificationRoutine; HANDLE hThread; } APC; // // Notification by IO completion port // struct { HANDLE hIOPort; DWORD dwNumberOfBytesTransferred; DWORD_PTR dwCompletionKey; LPOVERLAPPED lpOverlapped; } IOC; // // Notification by window message // struct { HWND hWnd; UINT Msg; } HWND; #line 111 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcasync.h" // // Notification by event // HANDLE hEvent; #line 124 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcasync.h" // // Notification by callback function // // This option is available only to OLE // PFN_RPCNOTIFICATION_ROUTINE NotificationRoutine; } RPC_ASYNC_NOTIFICATION_INFO, *PRPC_ASYNC_NOTIFICATION_INFO; typedef struct _RPC_ASYNC_STATE { unsigned int Size; // size of this structure unsigned long Signature; long Lock; unsigned long Flags; void *StubInfo; void *UserInfo; void *RuntimeInfo; RPC_ASYNC_EVENT Event; RPC_NOTIFICATION_TYPES NotificationType; RPC_ASYNC_NOTIFICATION_INFO u; LONG_PTR Reserved[4]; } RPC_ASYNC_STATE, *PRPC_ASYNC_STATE; // Possible values for Flags __declspec(dllimport) RPC_STATUS __stdcall RpcAsyncInitializeHandle ( PRPC_ASYNC_STATE pAsync, unsigned int Size ); __declspec(dllimport) RPC_STATUS __stdcall RpcAsyncRegisterInfo ( PRPC_ASYNC_STATE pAsync ) ; #line 171 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcasync.h" __declspec(dllimport) RPC_STATUS __stdcall RpcAsyncGetCallStatus ( PRPC_ASYNC_STATE pAsync ) ; __declspec(dllimport) RPC_STATUS __stdcall RpcAsyncCompleteCall ( PRPC_ASYNC_STATE pAsync, void *Reply ) ; __declspec(dllimport) RPC_STATUS __stdcall RpcAsyncAbortCall ( PRPC_ASYNC_STATE pAsync, unsigned long ExceptionCode ) ; __declspec(dllimport) RPC_STATUS __stdcall RpcAsyncCancelCall ( PRPC_ASYNC_STATE pAsync, BOOL fAbort ) ; typedef enum tagExtendedErrorParamTypes { eeptAnsiString = 1, eeptUnicodeString, eeptLongVal, eeptShortVal, eeptPointerVal, eeptNone, eeptBinary } ExtendedErrorParamTypes; typedef struct tagBinaryParam { void *Buffer; short Size; } BinaryParam; typedef struct tagRPC_EE_INFO_PARAM { ExtendedErrorParamTypes ParameterType; union { LPSTR AnsiString; LPWSTR UnicodeString; long LVal; short SVal; ULONGLONG PVal; BinaryParam BVal; } u; } RPC_EE_INFO_PARAM; #line 246 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcasync.h" typedef struct tagRPC_EXTENDED_ERROR_INFO { ULONG Version; LPWSTR ComputerName; ULONG ProcessID; union { SYSTEMTIME SystemTime; FILETIME FileTime; #line 260 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcasync.h" } u; ULONG GeneratingComponent; ULONG Status; USHORT DetectionLocation; USHORT Flags; int NumberOfParameters; RPC_EE_INFO_PARAM Parameters[4]; } RPC_EXTENDED_ERROR_INFO; typedef struct tagRPC_ERROR_ENUM_HANDLE { ULONG Signature; void *CurrentPos; void *Head; } RPC_ERROR_ENUM_HANDLE; __declspec(dllimport) RPC_STATUS __stdcall RpcErrorStartEnumeration ( RPC_ERROR_ENUM_HANDLE *EnumHandle ); __declspec(dllimport) RPC_STATUS __stdcall RpcErrorGetNextRecord ( RPC_ERROR_ENUM_HANDLE *EnumHandle, BOOL CopyStrings, RPC_EXTENDED_ERROR_INFO *ErrorInfo ); __declspec(dllimport) RPC_STATUS __stdcall RpcErrorEndEnumeration ( RPC_ERROR_ENUM_HANDLE *EnumHandle ); __declspec(dllimport) RPC_STATUS __stdcall RpcErrorResetEnumeration ( RPC_ERROR_ENUM_HANDLE *EnumHandle ); __declspec(dllimport) RPC_STATUS __stdcall RpcErrorGetNumberOfRecords ( RPC_ERROR_ENUM_HANDLE *EnumHandle, int *Records ); __declspec(dllimport) RPC_STATUS __stdcall RpcErrorSaveErrorInfo ( RPC_ERROR_ENUM_HANDLE *EnumHandle, PVOID *ErrorBlob, size_t *BlobSize ); __declspec(dllimport) RPC_STATUS __stdcall RpcErrorLoadErrorInfo ( PVOID ErrorBlob, size_t BlobSize, RPC_ERROR_ENUM_HANDLE *EnumHandle ); __declspec(dllimport) RPC_STATUS __stdcall RpcErrorAddRecord ( RPC_EXTENDED_ERROR_INFO *ErrorInfo ); __declspec(dllimport) void __stdcall RpcErrorClearInformation ( void ); __declspec(dllimport) RPC_STATUS __stdcall RpcAsyncCleanupThread ( DWORD dwTimeout ); __declspec(dllimport) RPC_STATUS __stdcall RpcGetAuthorizationContextForClient ( RPC_BINDING_HANDLE ClientBinding, BOOL ImpersonateOnReturn, PVOID Reserved1, PLARGE_INTEGER pExpirationTime, LUID Reserved2, DWORD Reserved3, PVOID Reserved4, PVOID *pAuthzClientContext ); __declspec(dllimport) RPC_STATUS __stdcall RpcFreeAuthorizationContext ( PVOID *pAuthzClientContext ); __declspec(dllimport) RPC_STATUS __stdcall RpcSsContextLockExclusive ( RPC_BINDING_HANDLE ServerBindingHandle, PVOID UserContext ); __declspec(dllimport) RPC_STATUS __stdcall RpcSsContextLockShared ( RPC_BINDING_HANDLE ServerBindingHandle, PVOID UserContext ); #line 417 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcasync.h" #line 423 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcasync.h" typedef struct tagRPC_CALL_ATTRIBUTES_V1_W { unsigned int Version; unsigned long Flags; unsigned long ServerPrincipalNameBufferLength; unsigned short *ServerPrincipalName; unsigned long ClientPrincipalNameBufferLength; unsigned short *ClientPrincipalName; unsigned long AuthenticationLevel; unsigned long AuthenticationService; BOOL NullSession; } RPC_CALL_ATTRIBUTES_V1_W; typedef struct tagRPC_CALL_ATTRIBUTES_V1_A { unsigned int Version; unsigned long Flags; unsigned long ServerPrincipalNameBufferLength; unsigned char *ServerPrincipalName; unsigned long ClientPrincipalNameBufferLength; unsigned char *ClientPrincipalName; unsigned long AuthenticationLevel; unsigned long AuthenticationService; BOOL NullSession; } RPC_CALL_ATTRIBUTES_V1_A; #line 516 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcasync.h" __declspec(dllimport) RPC_STATUS __stdcall RpcServerInqCallAttributesW ( RPC_BINDING_HANDLE ClientBinding, void *RpcCallAttributes ); __declspec(dllimport) RPC_STATUS __stdcall RpcServerInqCallAttributesA ( RPC_BINDING_HANDLE ClientBinding, void *RpcCallAttributes ); #line 538 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcasync.h" #line 546 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcasync.h" #line 550 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcasync.h" typedef RPC_CALL_ATTRIBUTES_V1_W RPC_CALL_ATTRIBUTES; #line 552 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcasync.h" #line 584 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcasync.h" #line 585 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcasync.h" #line 618 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcasync.h" #line 619 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcasync.h" // // Internal APIs // RPC_STATUS __stdcall I_RpcAsyncSetHandle ( PRPC_MESSAGE Message, PRPC_ASYNC_STATE pAsync ); RPC_STATUS __stdcall I_RpcAsyncAbortCall ( PRPC_ASYNC_STATE pAsync, unsigned long ExceptionCode ) ; int __stdcall I_RpcExceptionFilter ( unsigned long ExceptionCode ); #line 641 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcasync.h" } #line 645 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcasync.h" #line 649 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcasync.h" #line 651 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcasync.h" #line 194 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpc.h" #line 196 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpc.h" #line 200 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpc.h" } #line 204 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpc.h" #line 206 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpc.h" #line 14 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcndr.h" /*++ Copyright (c) Microsoft Corporation. All rights reserved. Module Name: rpcndr.h Abstract: Definitions for stub data structures and prototypes of helper functions. --*/ // This version of the rpcndr.h file corresponds to MIDL version 5.0.+ // used with Windows 2000/XP build 1700+ #line 22 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcndr.h" #pragma once #line 30 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcndr.h" #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\pshpack8.h" /*++ Copyright (c) Microsoft Corporation. All rights reserved. Module Name: pshpack8.h Abstract: This file turns 8 byte packing of structures on. (That is, it disables automatic alignment of structure fields.) An include file is needed because various compilers do this in different ways. For Microsoft compatible compilers, this files uses the push option to the pack pragma so that the poppack.h include file can restore the previous packing reliably. The file poppack.h is the complement to this file. --*/ #pragma warning(disable:4103) #pragma pack(push,8) #line 30 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\pshpack8.h" #line 33 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\pshpack8.h" #line 34 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\pshpack8.h" #line 39 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcndr.h" #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcnsip.h" /*++ Copyright (c) Microsoft Corporation. All rights reserved. Module Name: rpcnsip.h Abstract: This file contains the types and function definitions to use the to implement the autohandle features of the runtime. --*/ #pragma once #line 22 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcnsip.h" extern "C" { #line 26 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcnsip.h" typedef struct { RPC_NS_HANDLE LookupContext; RPC_BINDING_HANDLE ProposedHandle; RPC_BINDING_VECTOR * Bindings; } RPC_IMPORT_CONTEXT_P, * PRPC_IMPORT_CONTEXT_P; /* Stub Auto Binding routines. */ __declspec(dllimport) RPC_STATUS __stdcall I_RpcNsGetBuffer( PRPC_MESSAGE Message ); __declspec(dllimport) RPC_STATUS __stdcall I_RpcNsSendReceive( PRPC_MESSAGE Message, RPC_BINDING_HANDLE * Handle ); __declspec(dllimport) void __stdcall I_RpcNsRaiseException( PRPC_MESSAGE Message, RPC_STATUS Status ); __declspec(dllimport) RPC_STATUS __stdcall I_RpcReBindBuffer( PRPC_MESSAGE Message ); __declspec(dllimport) RPC_STATUS __stdcall I_NsServerBindSearch( void ); __declspec(dllimport) RPC_STATUS __stdcall I_NsClientBindSearch( void ); __declspec(dllimport) void __stdcall I_NsClientBindDone( void ); } #line 92 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcnsip.h" #line 94 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcnsip.h" #line 42 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcndr.h" #line 43 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcndr.h" #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcsal.h" /*************************************************************** ** * * rpcsal.h - markers for documenting the semantics of RPC APIs * * * * Version 1.0 * * * * Copyright (c) 2004 Microsoft Corporation. All rights reserved. * * * \****************************************************************/ // ------------------------------------------------------------------------------- // Introduction // // rpcsal.h provides a set of annotations to describe how RPC functions use their // parameters - the assumptions it makes about them, adn the guarantees it makes // upon finishing. These annotations are similar to those found in specstrings.h, // but are designed to be used by the MIDL compiler when it generates annotations // enabled header files. // // IDL authors do not need to annotate their functions declarations. The MIDL compiler // will interpret the IDL directives and use one of the annotations contained // in this header. This documentation is intended to help those trying to understand // the MIDL-generated header files or those who maintain their own copies of these files. // // ------------------------------------------------------------------------------- // Differences between rpcsal.h and specstrings.h // // There are a few important differences between the annotations found in rpcsal.h and // those in specstrings.h: // // 1. [in] parameters are not marked as read-only. They may be used for scratch space // at the server and changes will not affect the client. // 2. String versions of each macro alleviates the need for a special type definition // // ------------------------------------------------------------------------------- // Interpreting RPC Annotations // // These annotations are interpreted precisely in the same way as those in specstrings.h. // Please refer to that header for information related to general usage in annotations. // // To construct an RPC annotation, concatenate the appropriate value from each category // along with a leading __RPC_. A typical annotation looks like "__RPC__in_string". // // |----------------------------------------------------------------------------------| // | RPC Annotations | // |------------|------------|---------|--------|----------|----------|---------------| // | Level | Usage | Size | Output | Optional | String | Parameters | // |------------|------------|---------|--------|----------|----------|---------------| // | <> | <> | <> | <> | <> | <> | <> | // | _deref | _in | _ecount | _full | _opt | _string | (size) | // | _deref_opt | _out | _bcount | _part | | | (size,length) | // | | _inout | | | | | | // | | | | | | | | // |------------|------------|---------|--------|----------|----------|---------------| // // Level: Describes the buffer pointer's level of indirection from the parameter or // return value 'p'. // // <> : p is the buffer pointer. // _deref : *p is the buffer pointer. p must not be NULL. // _deref_opt : *p may be the buffer pointer. p may be NULL, in which case the rest of // the annotation is ignored. // // Usage: Describes how the function uses the buffer. // // <> : The buffer is not accessed. If used on the return value or with _deref, the // function will provide the buffer, and it will be uninitialized at exit. // Otherwise, the caller must provide the buffer. This should only be used // for alloc and free functions. // _in : The function will only read from the buffer. The caller must provide the // buffer and initialize it. Cannot be used with _deref. // _out : The function will only write to the buffer. If used on the return value or // with _deref, the function will provide the buffer and initialize it. // Otherwise, the caller must provide the buffer, and the function will // initialize it. // _inout : The function may freely read from and write to the buffer. The caller must // provide the buffer and initialize it. If used with _deref, the buffer may // be reallocated by the function. // // Size: Describes the total size of the buffer. This may be less than the space actually // allocated for the buffer, in which case it describes the accessible amount. // // <> : No buffer size is given. If the type specifies the buffer size (such as // with LPSTR and LPWSTR), that amount is used. Otherwise, the buffer is one // element long. Must be used with _in, _out, or _inout. // _ecount : The buffer size is an explicit element count. // _bcount : The buffer size is an explicit byte count. // // Output: Describes how much of the buffer will be initialized by the function. For // _inout buffers, this also describes how much is initialized at entry. Omit this // category for _in buffers; they must be fully initialized by the caller. // // <> : The type specifies how much is initialized. For instance, a function initializing // an LPWSTR must NULL-terminate the string. // _full : The function initializes the entire buffer. // _part : The function initializes part of the buffer, and explicitly indicates how much. // // Optional: Describes if the buffer itself is optional. // // <> : The pointer to the buffer must not be NULL. // _opt : The pointer to the buffer might be NULL. It will be checked before being dereferenced. // // String: Describes if the buffer is NULL terminated // // <> : The buffer is not assumed to be NULL terminated // _string : The buffer is assumed to be NULL terminated once it has been initialized // // Parameters: Gives explicit counts for the size and length of the buffer. // // <> : There is no explicit count. Use when neither _ecount nor _bcount is used. // (size) : Only the buffer's total size is given. Use with _ecount or _bcount but not _part. // (size,length) : The buffer's total size and initialized length are given. Use with _ecount_part // and _bcount_part. // // Notes: // // 1. Specifying two buffer annotations on a single parameter results in unspecified behavior // (e.g. __RPC__in_bcount(5) __RPC__out_bcount(6) // // 2. The size of the buffer and the amount that has been initialized are separate concepts. // Specify the size using _ecount or _bcount. Specify the amount that is initialized using // _full, _part, or _string. As a special case, a single element buffer does not need // _ecount, _bcount, _full, or _part // // 3. The count may be less than the total size of the buffer in which case it describes the // accessible portion. // // 4. "__RPC__opt" and "__RPC_deref" are not valid annotations. // // 5. The placement of _opt when using _deref is important: // __RPC__deref_opt_... : Input may be NULL // __RPC__deref_..._opt : Output may be NULL // __RPC__deref_opt_..._opt : Both input and output may be NULL // #pragma once #line 143 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcsal.h" extern "C" { #line 154 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcsal.h" #line 271 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcsal.h" // [out] // [in,out] // [in,unique] // [in,out,unique] // [out] ** // [in,out] **, second pointer decoration. // #define __RPC_out_opt out_opt is not allowed in rpc // [in,out,unique] #line 382 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcsal.h" } #line 386 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcsal.h" #line 45 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcndr.h" extern "C" { #line 49 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcndr.h" /**************************************************************************** Network Computing Architecture (NCA) definition: Network Data Representation: (NDR) Label format: An unsigned long (32 bits) with the following layout: 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 +---------------+---------------+---------------+-------+-------+ | Reserved | Reserved |Floating point | Int | Char | | | |Representation | Rep. | Rep. | +---------------+---------------+---------------+-------+-------+ Where Reserved: Must be zero (0) for NCA 1.5 and NCA 2.0. Floating point Representation is: 0 - IEEE 1 - VAX 2 - Cray 3 - IBM Int Rep. is Integer Representation: 0 - Big Endian 1 - Little Endian Char Rep. is Character Representation: 0 - ASCII 1 - EBCDIC The Microsoft Local Data Representation (for all platforms which are of interest currently is edefined below: ****************************************************************************/ #line 110 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcndr.h" #line 113 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcndr.h" /**************************************************************************** * Macros for targeted platforms ****************************************************************************/ #line 122 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcndr.h" #line 124 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcndr.h" #line 130 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcndr.h" #line 136 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcndr.h" #line 142 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcndr.h" #line 148 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcndr.h" /**************************************************************************** * Other MIDL base types / predefined types: ****************************************************************************/ typedef unsigned char byte; typedef byte cs_byte; typedef unsigned char boolean; #line 168 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcndr.h" #line 170 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcndr.h" #line 191 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcndr.h" #line 192 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcndr.h" void * __stdcall MIDL_user_allocate(size_t size); void __stdcall MIDL_user_free( void * ); void * __stdcall I_RpcDefaultAllocate( handle_t bh, size_t size, void * (* RealAlloc)(size_t) ); void __stdcall I_RpcDefaultFree( handle_t bh, void *, void (*RealFree)(void *) ); /* winnt only */ #line 224 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcndr.h" /**************************************************************************** * Context handle management related definitions: * * Client and Server Contexts. * ****************************************************************************/ typedef void * NDR_CCONTEXT; typedef struct { void * pad[2]; void * userContext; } * NDR_SCONTEXT; typedef void (__stdcall * NDR_RUNDOWN)(void * context); typedef void (__stdcall * NDR_NOTIFY_ROUTINE)(void); typedef void (__stdcall * NDR_NOTIFY2_ROUTINE)(boolean flag); typedef struct _SCONTEXT_QUEUE { unsigned long NumberOfObjects; NDR_SCONTEXT * ArrayOfObjects; } SCONTEXT_QUEUE, * PSCONTEXT_QUEUE; __declspec(dllimport) RPC_BINDING_HANDLE __stdcall NDRCContextBinding ( NDR_CCONTEXT CContext ); __declspec(dllimport) void __stdcall NDRCContextMarshall ( NDR_CCONTEXT CContext, void *pBuff ); __declspec(dllimport) void __stdcall NDRCContextUnmarshall ( NDR_CCONTEXT * pCContext, RPC_BINDING_HANDLE hBinding, void * pBuff, unsigned long DataRepresentation ); __declspec(dllimport) void __stdcall NDRCContextUnmarshall2 ( NDR_CCONTEXT * pCContext, RPC_BINDING_HANDLE hBinding, void * pBuff, unsigned long DataRepresentation ); __declspec(dllimport) void __stdcall NDRSContextMarshall ( NDR_SCONTEXT CContext, void * pBuff, NDR_RUNDOWN userRunDownIn ); __declspec(dllimport) NDR_SCONTEXT __stdcall NDRSContextUnmarshall ( void * pBuff, unsigned long DataRepresentation ); __declspec(dllimport) void __stdcall NDRSContextMarshallEx ( RPC_BINDING_HANDLE BindingHandle, NDR_SCONTEXT CContext, void * pBuff, NDR_RUNDOWN userRunDownIn ); __declspec(dllimport) void __stdcall NDRSContextMarshall2 ( RPC_BINDING_HANDLE BindingHandle, NDR_SCONTEXT CContext, void * pBuff, NDR_RUNDOWN userRunDownIn, void * CtxGuard, unsigned long Flags ); __declspec(dllimport) NDR_SCONTEXT __stdcall NDRSContextUnmarshallEx ( RPC_BINDING_HANDLE BindingHandle, void * pBuff, unsigned long DataRepresentation ); __declspec(dllimport) NDR_SCONTEXT __stdcall NDRSContextUnmarshall2( RPC_BINDING_HANDLE BindingHandle, void * pBuff, unsigned long DataRepresentation, void * CtxGuard, unsigned long Flags ); __declspec(dllimport) void __stdcall RpcSsDestroyClientContext ( void * * ContextHandle ); /**************************************************************************** NDR conversion related definitions. ****************************************************************************/ /**************************************************************************** Platform specific mapping of c-runtime functions. ****************************************************************************/ #line 422 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcndr.h" /**************************************************************************** MIDL 2.0 ndr definitions. ****************************************************************************/ typedef unsigned long error_status_t; // Some alignment specific macros. // RKK64 // these appear to be used in fossils inside MIDL // Marshalling macros //////////////////////////////////////////////////////////////////////////// // Ndr macros. //////////////////////////////////////////////////////////////////////////// // RKK64 // these appear to be used in fossils inside MIDL // end of unused // // On the server side, the following exceptions are mapped to // the bad stub data exception if -error stub_data is used. // ///////////////////////////////////////////////////////////////////////////// // Some stub helper functions. ///////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// // Stub helper structures. //////////////////////////////////////////////////////////////////////////// struct _MIDL_STUB_MESSAGE; struct _MIDL_STUB_DESC; struct _FULL_PTR_XLAT_TABLES; typedef unsigned char * RPC_BUFPTR; typedef unsigned long RPC_LENGTH; // Expression evaluation callback routine prototype. typedef void (__stdcall * EXPR_EVAL)( struct _MIDL_STUB_MESSAGE * ); typedef const unsigned char * PFORMAT_STRING; /* * Multidimensional conformant/varying array struct. */ typedef struct { long Dimension; /* These fields MUST be (unsigned long *) */ unsigned long * BufferConformanceMark; unsigned long * BufferVarianceMark; /* Count arrays, used for top level arrays in -Os stubs */ unsigned long * MaxCountArray; unsigned long * OffsetArray; unsigned long * ActualCountArray; } ARRAY_INFO, *PARRAY_INFO; typedef struct _NDR_ASYNC_MESSAGE * PNDR_ASYNC_MESSAGE; typedef struct _NDR_CORRELATION_INFO *PNDR_CORRELATION_INFO; /* * MIDL Stub Message */ typedef const unsigned char * PFORMAT_STRING; typedef struct _MIDL_SYNTAX_INFO MIDL_SYNTAX_INFO, *PMIDL_SYNTAX_INFO; struct NDR_ALLOC_ALL_NODES_CONTEXT; struct NDR_POINTER_QUEUE_STATE; struct _NDR_PROC_CONTEXT; typedef struct _MIDL_STUB_MESSAGE { /* RPC message structure. */ PRPC_MESSAGE RpcMsg; /* Pointer into RPC message buffer. */ unsigned char * Buffer; /* * These are used internally by the Ndr routines to mark the beginning * and end of an incoming RPC buffer. */ unsigned char * BufferStart; unsigned char * BufferEnd; /* * Used internally by the Ndr routines as a place holder in the buffer. * On the marshalling side it's used to mark the location where conformance * size should be marshalled. * On the unmarshalling side it's used to mark the location in the buffer * used during pointer unmarshalling to base pointer offsets off of. */ unsigned char * BufferMark; /* Set by the buffer sizing routines. */ unsigned long BufferLength; /* Set by the memory sizing routines. */ unsigned long MemorySize; /* Pointer to user memory. */ unsigned char * Memory; /* Is the Ndr routine begin called from a client side stub. */ unsigned char IsClient; unsigned char Pad; unsigned short uFlags2; /* Can the buffer be re-used for memory on unmarshalling. */ int ReuseBuffer; /* Hold the context for allocate all nodes */ struct NDR_ALLOC_ALL_NODES_CONTEXT *pAllocAllNodesContext; struct NDR_POINTER_QUEUE_STATE *pPointerQueueState; /* * Stuff needed while handling complex structures */ /* Ignore imbeded pointers while computing buffer or memory sizes. */ int IgnoreEmbeddedPointers; /* * This marks the location in the buffer where pointees of a complex * struct reside. */ unsigned char * PointerBufferMark; /* * Used to catch errors in SendReceive. */ unsigned char CorrDespIncrement; unsigned char uFlags; unsigned short UniquePtrCount; /* * Used internally by the Ndr routines. Holds the max counts for * a conformant array. */ ULONG_PTR MaxCount; /* * Used internally by the Ndr routines. Holds the offsets for a varying * array. */ unsigned long Offset; /* * Used internally by the Ndr routines. Holds the actual counts for * a varying array. */ unsigned long ActualCount; /* Allocation and Free routine to be used by the Ndr routines. */ void * ( __stdcall * pfnAllocate)( size_t ); void ( __stdcall * pfnFree)(void *); /* * Top of parameter stack. Used for "single call" stubs during marshalling * to hold the beginning of the parameter list on the stack. Needed to * extract parameters which hold attribute values for top level arrays and * pointers. */ unsigned char * StackTop; /* * Fields used for the transmit_as and represent_as objects. * For represent_as the mapping is: presented=local, transmit=named. */ unsigned char * pPresentedType; unsigned char * pTransmitType; /* * When we first construct a binding on the client side, stick it * in the rpcmessage and later call RpcGetBuffer, the handle field * in the rpcmessage is changed. That's fine except that we need to * have that original handle for use in unmarshalling context handles * (the second argument in NDRCContextUnmarshall to be exact). So * stash the contructed handle here and extract it when needed. */ handle_t SavedHandle; /* * Pointer back to the stub descriptor. Use this to get all handle info. */ const struct _MIDL_STUB_DESC * StubDesc; /* * Full pointer stuff. */ struct _FULL_PTR_XLAT_TABLES * FullPtrXlatTables; unsigned long FullPtrRefId; unsigned long PointerLength; int fInDontFree :1; int fDontCallFreeInst :1; int fInOnlyParam :1; int fHasReturn :1; int fHasExtensions :1; int fHasNewCorrDesc :1; int fIsIn :1; int fIsOut :1; int fIsOicf :1; int fBufferValid :1; int fHasMemoryValidateCallback: 1; int fInFree :1; int fNeedMCCP :1; int fUnused :3; int fUnused2 :16; unsigned long dwDestContext; void * pvDestContext; NDR_SCONTEXT * SavedContextHandles; long ParamNumber; struct IRpcChannelBuffer * pRpcChannelBuffer; PARRAY_INFO pArrayInfo; unsigned long * SizePtrCountArray; unsigned long * SizePtrOffsetArray; unsigned long * SizePtrLengthArray; /* * Interpreter argument queue. Used on server side only. */ void * pArgQueue; unsigned long dwStubPhase; void * LowStackMark; /* * Async message pointer, correlation data - NT 5.0 features. */ PNDR_ASYNC_MESSAGE pAsyncMsg; PNDR_CORRELATION_INFO pCorrInfo; unsigned char * pCorrMemory; void * pMemoryList; /* * Reserved fields up to this point present since the 3.50 release. * Reserved fields below were introduced for Windows 2000 release. * (but not used). */ /* * International character support information - NT 5.1 feature. */ INT_PTR pCSInfo; unsigned char * ConformanceMark; unsigned char * VarianceMark; #line 748 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcndr.h" INT_PTR Unused; #line 750 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcndr.h" struct _NDR_PROC_CONTEXT * pContext; /* * Reserved fields up to this point present since Windows 2000 release. * Fields added for NT5.1 * * pUserMarshalList is used to keep a linked list of nodes pointing to * marshalled data to be freed. This list can contain (as the name * implies) User Marshalled data, but also can contain Interface Pointer * data. */ void * ContextHandleHash; void * pUserMarshalList; INT_PTR Reserved51_3; INT_PTR Reserved51_4; INT_PTR Reserved51_5; /* * Reserved fields up to this point present since NT5.1 release. */ #line 774 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcndr.h" } MIDL_STUB_MESSAGE, *PMIDL_STUB_MESSAGE; typedef struct _MIDL_STUB_MESSAGE MIDL_STUB_MESSAGE, *PMIDL_STUB_MESSAGE; /* * Generic handle bind/unbind routine pair. */ typedef void * ( __stdcall * GENERIC_BINDING_ROUTINE) (void *); typedef void ( __stdcall * GENERIC_UNBIND_ROUTINE) (void *, unsigned char *); typedef struct _GENERIC_BINDING_ROUTINE_PAIR { GENERIC_BINDING_ROUTINE pfnBind; GENERIC_UNBIND_ROUTINE pfnUnbind; } GENERIC_BINDING_ROUTINE_PAIR, *PGENERIC_BINDING_ROUTINE_PAIR; typedef struct __GENERIC_BINDING_INFO { void * pObj; unsigned int Size; GENERIC_BINDING_ROUTINE pfnBind; GENERIC_UNBIND_ROUTINE pfnUnbind; } GENERIC_BINDING_INFO, *PGENERIC_BINDING_INFO; // typedef EXPR_EVAL - see above // typedefs for xmit_as // a Microsoft C++ compiler #line 812 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcndr.h" typedef void ( __stdcall * XMIT_HELPER_ROUTINE) ( PMIDL_STUB_MESSAGE ); typedef struct _XMIT_ROUTINE_QUINTUPLE { XMIT_HELPER_ROUTINE pfnTranslateToXmit; XMIT_HELPER_ROUTINE pfnTranslateFromXmit; XMIT_HELPER_ROUTINE pfnFreeXmit; XMIT_HELPER_ROUTINE pfnFreeInst; } XMIT_ROUTINE_QUINTUPLE, *PXMIT_ROUTINE_QUINTUPLE; typedef unsigned long ( __stdcall * USER_MARSHAL_SIZING_ROUTINE) (unsigned long *, unsigned long, void * ); typedef unsigned char * ( __stdcall * USER_MARSHAL_MARSHALLING_ROUTINE) (unsigned long *, unsigned char * , void * ); typedef unsigned char * ( __stdcall * USER_MARSHAL_UNMARSHALLING_ROUTINE) (unsigned long *, unsigned char *, void * ); typedef void ( __stdcall * USER_MARSHAL_FREEING_ROUTINE) (unsigned long *, void * ); typedef struct _USER_MARSHAL_ROUTINE_QUADRUPLE { USER_MARSHAL_SIZING_ROUTINE pfnBufferSize; USER_MARSHAL_MARSHALLING_ROUTINE pfnMarshall; USER_MARSHAL_UNMARSHALLING_ROUTINE pfnUnmarshall; USER_MARSHAL_FREEING_ROUTINE pfnFree; } USER_MARSHAL_ROUTINE_QUADRUPLE; typedef enum _USER_MARSHAL_CB_TYPE { USER_MARSHAL_CB_BUFFER_SIZE, USER_MARSHAL_CB_MARSHALL, USER_MARSHAL_CB_UNMARSHALL, USER_MARSHAL_CB_FREE } USER_MARSHAL_CB_TYPE; typedef struct _USER_MARSHAL_CB { unsigned long Flags; PMIDL_STUB_MESSAGE pStubMsg; PFORMAT_STRING pReserve; unsigned long Signature; USER_MARSHAL_CB_TYPE CBType; PFORMAT_STRING pFormat; PFORMAT_STRING pTypeFormat; } USER_MARSHAL_CB; typedef struct _MALLOC_FREE_STRUCT { void * ( __stdcall * pfnAllocate)(size_t); void ( __stdcall * pfnFree)(void *); } MALLOC_FREE_STRUCT; typedef struct _COMM_FAULT_OFFSETS { short CommOffset; short FaultOffset; } COMM_FAULT_OFFSETS; /* * International character support definitions */ typedef enum _IDL_CS_CONVERT { IDL_CS_NO_CONVERT, IDL_CS_IN_PLACE_CONVERT, IDL_CS_NEW_BUFFER_CONVERT } IDL_CS_CONVERT; typedef void ( __stdcall * CS_TYPE_NET_SIZE_ROUTINE) (RPC_BINDING_HANDLE hBinding, unsigned long ulNetworkCodeSet, unsigned long ulLocalBufferSize, IDL_CS_CONVERT * conversionType, unsigned long * pulNetworkBufferSize, error_status_t * pStatus); typedef void ( __stdcall * CS_TYPE_LOCAL_SIZE_ROUTINE) (RPC_BINDING_HANDLE hBinding, unsigned long ulNetworkCodeSet, unsigned long ulNetworkBufferSize, IDL_CS_CONVERT * conversionType, unsigned long * pulLocalBufferSize, error_status_t * pStatus); typedef void ( __stdcall * CS_TYPE_TO_NETCS_ROUTINE) (RPC_BINDING_HANDLE hBinding, unsigned long ulNetworkCodeSet, void * pLocalData, unsigned long ulLocalDataLength, byte * pNetworkData, unsigned long * pulNetworkDataLength, error_status_t * pStatus); typedef void ( __stdcall * CS_TYPE_FROM_NETCS_ROUTINE) (RPC_BINDING_HANDLE hBinding, unsigned long ulNetworkCodeSet, byte * pNetworkData, unsigned long ulNetworkDataLength, unsigned long ulLocalBufferSize, void * pLocalData, unsigned long * pulLocalDataLength, error_status_t * pStatus); typedef void ( __stdcall * CS_TAG_GETTING_ROUTINE) (RPC_BINDING_HANDLE hBinding, int fServerSide, unsigned long * pulSendingTag, unsigned long * pulDesiredReceivingTag, unsigned long * pulReceivingTag, error_status_t * pStatus); void __stdcall RpcCsGetTags( RPC_BINDING_HANDLE hBinding, int fServerSide, unsigned long * pulSendingTag, unsigned long * pulDesiredReceivingTag, unsigned long * pulReceivingTag, error_status_t * pStatus); typedef struct _NDR_CS_SIZE_CONVERT_ROUTINES { CS_TYPE_NET_SIZE_ROUTINE pfnNetSize; CS_TYPE_TO_NETCS_ROUTINE pfnToNetCs; CS_TYPE_LOCAL_SIZE_ROUTINE pfnLocalSize; CS_TYPE_FROM_NETCS_ROUTINE pfnFromNetCs; } NDR_CS_SIZE_CONVERT_ROUTINES; typedef struct _NDR_CS_ROUTINES { NDR_CS_SIZE_CONVERT_ROUTINES *pSizeConvertRoutines; CS_TAG_GETTING_ROUTINE *pTagGettingRoutines; } NDR_CS_ROUTINES; typedef struct _NDR_EXPR_DESC { const unsigned short * pOffset; PFORMAT_STRING pFormatExpr; } NDR_EXPR_DESC; /* * MIDL Stub Descriptor */ typedef struct _MIDL_STUB_DESC { void * RpcInterfaceInformation; void * ( __stdcall * pfnAllocate)(size_t); void ( __stdcall * pfnFree)(void *); union { handle_t * pAutoHandle; handle_t * pPrimitiveHandle; PGENERIC_BINDING_INFO pGenericBindingInfo; } IMPLICIT_HANDLE_INFO; const NDR_RUNDOWN * apfnNdrRundownRoutines; const GENERIC_BINDING_ROUTINE_PAIR * aGenericBindingRoutinePairs; const EXPR_EVAL * apfnExprEval; const XMIT_ROUTINE_QUINTUPLE * aXmitQuintuple; const unsigned char * pFormatTypes; int fCheckBounds; /* Ndr library version. */ unsigned long Version; MALLOC_FREE_STRUCT * pMallocFreeStruct; long MIDLVersion; const COMM_FAULT_OFFSETS * CommFaultOffsets; // New fields for version 3.0+ const USER_MARSHAL_ROUTINE_QUADRUPLE * aUserMarshalQuadruple; // Notify routines - added for NT5, MIDL 5.0 const NDR_NOTIFY_ROUTINE * NotifyRoutineTable; /* * Reserved for future use. */ ULONG_PTR mFlags; // International support routines - added for 64bit post NT5 const NDR_CS_ROUTINES * CsRoutineTables; void * ProxyServerInfo; const NDR_EXPR_DESC * pExprInfo; // Fields up to now present in win2000 release. } MIDL_STUB_DESC; typedef const MIDL_STUB_DESC * PMIDL_STUB_DESC; typedef void * PMIDL_XMIT_TYPE; /* * MIDL Stub Format String. This is a const in the stub. */ #pragma warning(push) #line 1053 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcndr.h" #pragma warning( disable:4200 ) #line 1055 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcndr.h" typedef struct _MIDL_FORMAT_STRING { short Pad; unsigned char Format[]; } MIDL_FORMAT_STRING; #pragma warning(pop) #line 1066 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcndr.h" #line 1067 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcndr.h" /* * Stub thunk used for some interpreted server stubs. */ typedef void ( __stdcall * STUB_THUNK)( PMIDL_STUB_MESSAGE ); typedef long ( __stdcall * SERVER_ROUTINE)(); #line 1078 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcndr.h" /* * Server Interpreter's information strucuture. */ typedef struct _MIDL_SERVER_INFO_ { PMIDL_STUB_DESC pStubDesc; const SERVER_ROUTINE * DispatchTable; PFORMAT_STRING ProcString; const unsigned short * FmtStringOffset; const STUB_THUNK * ThunkTable; PRPC_SYNTAX_IDENTIFIER pTransferSyntax; ULONG_PTR nCount; PMIDL_SYNTAX_INFO pSyntaxInfo; } MIDL_SERVER_INFO, *PMIDL_SERVER_INFO; /* * Stubless object proxy information structure. */ typedef struct _MIDL_STUBLESS_PROXY_INFO { PMIDL_STUB_DESC pStubDesc; PFORMAT_STRING ProcFormatString; const unsigned short * FormatStringOffset; PRPC_SYNTAX_IDENTIFIER pTransferSyntax; ULONG_PTR nCount; PMIDL_SYNTAX_INFO pSyntaxInfo; } MIDL_STUBLESS_PROXY_INFO; typedef MIDL_STUBLESS_PROXY_INFO * PMIDL_STUBLESS_PROXY_INFO; /* * Multiple transfer syntax information. */ typedef struct _MIDL_SYNTAX_INFO { RPC_SYNTAX_IDENTIFIER TransferSyntax; RPC_DISPATCH_TABLE * DispatchTable; PFORMAT_STRING ProcString; const unsigned short * FmtStringOffset; PFORMAT_STRING TypeString; const void * aUserMarshalQuadruple; ULONG_PTR pReserved1; ULONG_PTR pReserved2; } MIDL_SYNTAX_INFO, *PMIDL_SYNTAX_INFO; typedef unsigned short * PARAM_OFFSETTABLE, *PPARAM_OFFSETTABLE; /* * This is the return value from NdrClientCall. */ typedef union _CLIENT_CALL_RETURN { void * Pointer; LONG_PTR Simple; } CLIENT_CALL_RETURN; // BUGBUG: can we get rid of this defintion altogether, just leave void * here? typedef enum { XLAT_SERVER = 1, XLAT_CLIENT } XLAT_SIDE; typedef struct _FULL_PTR_XLAT_TABLES { void * RefIdToPointer; void * PointerToRefId; unsigned long NextRefId; XLAT_SIDE XlatSide; } FULL_PTR_XLAT_TABLES, *PFULL_PTR_XLAT_TABLES; /*************************************************************************** ** New MIDL 2.0 Ndr routine templates ***************************************************************************/ RPC_STATUS __stdcall NdrClientGetSupportedSyntaxes( RPC_CLIENT_INTERFACE * pInf, unsigned long * pCount, MIDL_SYNTAX_INFO ** pArr ); RPC_STATUS __stdcall NdrServerGetSupportedSyntaxes( RPC_SERVER_INTERFACE * pInf, unsigned long * pCount, MIDL_SYNTAX_INFO ** pArr, unsigned long * pPreferSyntaxIndex); /* * Marshall routines */ __declspec(dllimport) void __stdcall NdrSimpleTypeMarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, unsigned char FormatChar ); __declspec(dllimport) unsigned char * __stdcall NdrPointerMarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); __declspec(dllimport) unsigned char * __stdcall NdrCsArrayMarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); __declspec(dllimport) unsigned char * __stdcall NdrCsTagMarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); /* Structures */ __declspec(dllimport) unsigned char * __stdcall NdrSimpleStructMarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); __declspec(dllimport) unsigned char * __stdcall NdrConformantStructMarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); __declspec(dllimport) unsigned char * __stdcall NdrConformantVaryingStructMarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); __declspec(dllimport) unsigned char * __stdcall NdrComplexStructMarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); /* Arrays */ __declspec(dllimport) unsigned char * __stdcall NdrFixedArrayMarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); __declspec(dllimport) unsigned char * __stdcall NdrConformantArrayMarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); __declspec(dllimport) unsigned char * __stdcall NdrConformantVaryingArrayMarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); __declspec(dllimport) unsigned char * __stdcall NdrVaryingArrayMarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); __declspec(dllimport) unsigned char * __stdcall NdrComplexArrayMarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); /* Strings */ __declspec(dllimport) unsigned char * __stdcall NdrNonConformantStringMarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); __declspec(dllimport) unsigned char * __stdcall NdrConformantStringMarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); /* Unions */ __declspec(dllimport) unsigned char * __stdcall NdrEncapsulatedUnionMarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); __declspec(dllimport) unsigned char * __stdcall NdrNonEncapsulatedUnionMarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); /* Byte count pointer */ __declspec(dllimport) unsigned char * __stdcall NdrByteCountPointerMarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); /* Transmit as and represent as*/ __declspec(dllimport) unsigned char * __stdcall NdrXmitOrRepAsMarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); /* User_marshal */ __declspec(dllimport) unsigned char * __stdcall NdrUserMarshalMarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); /* Interface pointer */ __declspec(dllimport) unsigned char * __stdcall NdrInterfacePointerMarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); /* Context handles */ __declspec(dllimport) void __stdcall NdrClientContextMarshall( PMIDL_STUB_MESSAGE pStubMsg, NDR_CCONTEXT ContextHandle, int fCheck ); __declspec(dllimport) void __stdcall NdrServerContextMarshall( PMIDL_STUB_MESSAGE pStubMsg, NDR_SCONTEXT ContextHandle, NDR_RUNDOWN RundownRoutine ); __declspec(dllimport) void __stdcall NdrServerContextNewMarshall( PMIDL_STUB_MESSAGE pStubMsg, NDR_SCONTEXT ContextHandle, NDR_RUNDOWN RundownRoutine, PFORMAT_STRING pFormat ); /* * Unmarshall routines */ __declspec(dllimport) void __stdcall NdrSimpleTypeUnmarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, unsigned char FormatChar ); __declspec(dllimport) unsigned char * __stdcall __stdcall NdrCsArrayUnmarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char ** ppMemory, PFORMAT_STRING pFormat, unsigned char fMustAlloc ); __declspec(dllimport) unsigned char * __stdcall __stdcall NdrCsTagUnmarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char ** ppMemory, PFORMAT_STRING pFormat, unsigned char fMustAlloc ); __declspec(dllimport) unsigned char * __stdcall NdrRangeUnmarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char ** ppMemory, PFORMAT_STRING pFormat, unsigned char fMustAlloc ); __declspec(dllimport) void __stdcall NdrCorrelationInitialize( PMIDL_STUB_MESSAGE pStubMsg, void * pMemory, unsigned long CacheSize, unsigned long flags ); __declspec(dllimport) void __stdcall NdrCorrelationPass( PMIDL_STUB_MESSAGE pStubMsg ); __declspec(dllimport) void __stdcall NdrCorrelationFree( PMIDL_STUB_MESSAGE pStubMsg ); __declspec(dllimport) unsigned char * __stdcall NdrPointerUnmarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * * ppMemory, PFORMAT_STRING pFormat, unsigned char fMustAlloc ); /* Structures */ __declspec(dllimport) unsigned char * __stdcall NdrSimpleStructUnmarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * * ppMemory, PFORMAT_STRING pFormat, unsigned char fMustAlloc ); __declspec(dllimport) unsigned char * __stdcall NdrConformantStructUnmarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * * ppMemory, PFORMAT_STRING pFormat, unsigned char fMustAlloc ); __declspec(dllimport) unsigned char * __stdcall NdrConformantVaryingStructUnmarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * * ppMemory, PFORMAT_STRING pFormat, unsigned char fMustAlloc ); __declspec(dllimport) unsigned char * __stdcall NdrComplexStructUnmarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * * ppMemory, PFORMAT_STRING pFormat, unsigned char fMustAlloc ); /* Arrays */ __declspec(dllimport) unsigned char * __stdcall NdrFixedArrayUnmarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * * ppMemory, PFORMAT_STRING pFormat, unsigned char fMustAlloc ); __declspec(dllimport) unsigned char * __stdcall NdrConformantArrayUnmarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * * ppMemory, PFORMAT_STRING pFormat, unsigned char fMustAlloc ); __declspec(dllimport) unsigned char * __stdcall NdrConformantVaryingArrayUnmarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * * ppMemory, PFORMAT_STRING pFormat, unsigned char fMustAlloc ); __declspec(dllimport) unsigned char * __stdcall NdrVaryingArrayUnmarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * * ppMemory, PFORMAT_STRING pFormat, unsigned char fMustAlloc ); __declspec(dllimport) unsigned char * __stdcall NdrComplexArrayUnmarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * * ppMemory, PFORMAT_STRING pFormat, unsigned char fMustAlloc ); /* Strings */ __declspec(dllimport) unsigned char * __stdcall NdrNonConformantStringUnmarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * * ppMemory, PFORMAT_STRING pFormat, unsigned char fMustAlloc ); __declspec(dllimport) unsigned char * __stdcall NdrConformantStringUnmarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * * ppMemory, PFORMAT_STRING pFormat, unsigned char fMustAlloc ); /* Unions */ __declspec(dllimport) unsigned char * __stdcall NdrEncapsulatedUnionUnmarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * * ppMemory, PFORMAT_STRING pFormat, unsigned char fMustAlloc ); __declspec(dllimport) unsigned char * __stdcall NdrNonEncapsulatedUnionUnmarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * * ppMemory, PFORMAT_STRING pFormat, unsigned char fMustAlloc ); /* Byte count pointer */ __declspec(dllimport) unsigned char * __stdcall NdrByteCountPointerUnmarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * * ppMemory, PFORMAT_STRING pFormat, unsigned char fMustAlloc ); /* Transmit as and represent as*/ __declspec(dllimport) unsigned char * __stdcall NdrXmitOrRepAsUnmarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * * ppMemory, PFORMAT_STRING pFormat, unsigned char fMustAlloc ); /* User_marshal */ __declspec(dllimport) unsigned char * __stdcall NdrUserMarshalUnmarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * * ppMemory, PFORMAT_STRING pFormat, unsigned char fMustAlloc ); /* Interface pointer */ __declspec(dllimport) unsigned char * __stdcall NdrInterfacePointerUnmarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * * ppMemory, PFORMAT_STRING pFormat, unsigned char fMustAlloc ); /* Context handles */ __declspec(dllimport) void __stdcall NdrClientContextUnmarshall( PMIDL_STUB_MESSAGE pStubMsg, NDR_CCONTEXT * pContextHandle, RPC_BINDING_HANDLE BindHandle ); __declspec(dllimport) NDR_SCONTEXT __stdcall NdrServerContextUnmarshall( PMIDL_STUB_MESSAGE pStubMsg ); /* New context handle flavors */ __declspec(dllimport) NDR_SCONTEXT __stdcall NdrContextHandleInitialize( PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat ); __declspec(dllimport) NDR_SCONTEXT __stdcall NdrServerContextNewUnmarshall( PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat ); /* * Buffer sizing routines */ __declspec(dllimport) void __stdcall NdrPointerBufferSize( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); __declspec(dllimport) void __stdcall NdrCsArrayBufferSize( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); __declspec(dllimport) void __stdcall NdrCsTagBufferSize( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); /* Structures */ __declspec(dllimport) void __stdcall NdrSimpleStructBufferSize( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); __declspec(dllimport) void __stdcall NdrConformantStructBufferSize( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); __declspec(dllimport) void __stdcall NdrConformantVaryingStructBufferSize( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); __declspec(dllimport) void __stdcall NdrComplexStructBufferSize( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); /* Arrays */ __declspec(dllimport) void __stdcall NdrFixedArrayBufferSize( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); __declspec(dllimport) void __stdcall NdrConformantArrayBufferSize( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); __declspec(dllimport) void __stdcall NdrConformantVaryingArrayBufferSize( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); __declspec(dllimport) void __stdcall NdrVaryingArrayBufferSize( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); __declspec(dllimport) void __stdcall NdrComplexArrayBufferSize( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); /* Strings */ __declspec(dllimport) void __stdcall NdrConformantStringBufferSize( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); __declspec(dllimport) void __stdcall NdrNonConformantStringBufferSize( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); /* Unions */ __declspec(dllimport) void __stdcall NdrEncapsulatedUnionBufferSize( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); __declspec(dllimport) void __stdcall NdrNonEncapsulatedUnionBufferSize( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); /* Byte count pointer */ __declspec(dllimport) void __stdcall NdrByteCountPointerBufferSize( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); /* Transmit as and represent as*/ __declspec(dllimport) void __stdcall NdrXmitOrRepAsBufferSize( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); /* User_marshal */ __declspec(dllimport) void __stdcall NdrUserMarshalBufferSize( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); /* Interface pointer */ __declspec(dllimport) void __stdcall NdrInterfacePointerBufferSize( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); // Context Handle size // __declspec(dllimport) void __stdcall NdrContextHandleSize( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); /* * Memory sizing routines */ __declspec(dllimport) unsigned long __stdcall NdrPointerMemorySize( PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat ); __declspec(dllimport) unsigned long __stdcall NdrContextHandleMemorySize( PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat ); /* cs_char things */ __declspec(dllimport) unsigned long __stdcall NdrCsArrayMemorySize( PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat ); __declspec(dllimport) unsigned long __stdcall NdrCsTagMemorySize( PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat ); /* Structures */ __declspec(dllimport) unsigned long __stdcall NdrSimpleStructMemorySize( PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat ); __declspec(dllimport) unsigned long __stdcall NdrConformantStructMemorySize( PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat ); __declspec(dllimport) unsigned long __stdcall NdrConformantVaryingStructMemorySize( PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat ); __declspec(dllimport) unsigned long __stdcall NdrComplexStructMemorySize( PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat ); /* Arrays */ __declspec(dllimport) unsigned long __stdcall NdrFixedArrayMemorySize( PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat ); __declspec(dllimport) unsigned long __stdcall NdrConformantArrayMemorySize( PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat ); __declspec(dllimport) unsigned long __stdcall NdrConformantVaryingArrayMemorySize( PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat ); __declspec(dllimport) unsigned long __stdcall NdrVaryingArrayMemorySize( PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat ); __declspec(dllimport) unsigned long __stdcall NdrComplexArrayMemorySize( PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat ); /* Strings */ __declspec(dllimport) unsigned long __stdcall NdrConformantStringMemorySize( PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat ); __declspec(dllimport) unsigned long __stdcall NdrNonConformantStringMemorySize( PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat ); /* Unions */ __declspec(dllimport) unsigned long __stdcall NdrEncapsulatedUnionMemorySize( PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat ); __declspec(dllimport) unsigned long __stdcall NdrNonEncapsulatedUnionMemorySize( PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat ); /* Transmit as and represent as*/ __declspec(dllimport) unsigned long __stdcall NdrXmitOrRepAsMemorySize( PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat ); /* User_marshal */ __declspec(dllimport) unsigned long __stdcall NdrUserMarshalMemorySize( PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat ); /* Interface pointer */ __declspec(dllimport) unsigned long __stdcall NdrInterfacePointerMemorySize( PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat ); /* * Freeing routines */ __declspec(dllimport) void __stdcall NdrPointerFree( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); __declspec(dllimport) void __stdcall NdrCsArrayFree( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); /* Structures */ __declspec(dllimport) void __stdcall NdrSimpleStructFree( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); __declspec(dllimport) void __stdcall NdrConformantStructFree( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); __declspec(dllimport) void __stdcall NdrConformantVaryingStructFree( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); __declspec(dllimport) void __stdcall NdrComplexStructFree( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); /* Arrays */ __declspec(dllimport) void __stdcall NdrFixedArrayFree( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); __declspec(dllimport) void __stdcall NdrConformantArrayFree( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); __declspec(dllimport) void __stdcall NdrConformantVaryingArrayFree( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); __declspec(dllimport) void __stdcall NdrVaryingArrayFree( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); __declspec(dllimport) void __stdcall NdrComplexArrayFree( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); /* Unions */ __declspec(dllimport) void __stdcall NdrEncapsulatedUnionFree( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); __declspec(dllimport) void __stdcall NdrNonEncapsulatedUnionFree( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); /* Byte count */ __declspec(dllimport) void __stdcall NdrByteCountPointerFree( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); /* Transmit as and represent as*/ __declspec(dllimport) void __stdcall NdrXmitOrRepAsFree( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); /* User_marshal */ __declspec(dllimport) void __stdcall NdrUserMarshalFree( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); /* Interface pointer */ __declspec(dllimport) void __stdcall NdrInterfacePointerFree( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pMemory, PFORMAT_STRING pFormat ); /* * Endian conversion routine. */ __declspec(dllimport) void __stdcall NdrConvert2( PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat, long NumberParams ); __declspec(dllimport) void __stdcall NdrConvert( PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat ); __declspec(dllimport) unsigned char * __stdcall NdrUserMarshalSimpleTypeConvert( unsigned long * pFlags, unsigned char * pBuffer, unsigned char FormatChar ); /* * Auxilary routines */ __declspec(dllimport) void __stdcall NdrClientInitializeNew( PRPC_MESSAGE pRpcMsg, PMIDL_STUB_MESSAGE pStubMsg, PMIDL_STUB_DESC pStubDescriptor, unsigned int ProcNum ); __declspec(dllimport) unsigned char * __stdcall NdrServerInitializeNew( PRPC_MESSAGE pRpcMsg, PMIDL_STUB_MESSAGE pStubMsg, PMIDL_STUB_DESC pStubDescriptor ); __declspec(dllimport) void __stdcall NdrServerInitializePartial( PRPC_MESSAGE pRpcMsg, PMIDL_STUB_MESSAGE pStubMsg, PMIDL_STUB_DESC pStubDescriptor, unsigned long RequestedBufferSize ); __declspec(dllimport) void __stdcall NdrClientInitialize( PRPC_MESSAGE pRpcMsg, PMIDL_STUB_MESSAGE pStubMsg, PMIDL_STUB_DESC pStubDescriptor, unsigned int ProcNum ); __declspec(dllimport) unsigned char * __stdcall NdrServerInitialize( PRPC_MESSAGE pRpcMsg, PMIDL_STUB_MESSAGE pStubMsg, PMIDL_STUB_DESC pStubDescriptor ); __declspec(dllimport) unsigned char * __stdcall NdrServerInitializeUnmarshall ( PMIDL_STUB_MESSAGE pStubMsg, PMIDL_STUB_DESC pStubDescriptor, PRPC_MESSAGE pRpcMsg ); __declspec(dllimport) void __stdcall NdrServerInitializeMarshall ( PRPC_MESSAGE pRpcMsg, PMIDL_STUB_MESSAGE pStubMsg ); __declspec(dllimport) unsigned char * __stdcall NdrGetBuffer( PMIDL_STUB_MESSAGE pStubMsg, unsigned long BufferLength, RPC_BINDING_HANDLE Handle ); __declspec(dllimport) unsigned char * __stdcall NdrNsGetBuffer( PMIDL_STUB_MESSAGE pStubMsg, unsigned long BufferLength, RPC_BINDING_HANDLE Handle ); __declspec(dllimport) unsigned char * __stdcall NdrSendReceive( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pBufferEnd ); __declspec(dllimport) unsigned char * __stdcall NdrNsSendReceive( PMIDL_STUB_MESSAGE pStubMsg, unsigned char * pBufferEnd, RPC_BINDING_HANDLE * pAutoHandle ); __declspec(dllimport) void __stdcall NdrFreeBuffer( PMIDL_STUB_MESSAGE pStubMsg ); __declspec(dllimport) RPC_STATUS __stdcall NdrGetDcomProtocolVersion( PMIDL_STUB_MESSAGE pStubMsg, RPC_VERSION * pVersion ); /* * Interpreter calls. */ /* client */ CLIENT_CALL_RETURN __cdecl NdrClientCall2( PMIDL_STUB_DESC pStubDescriptor, PFORMAT_STRING pFormat, ... ); CLIENT_CALL_RETURN __cdecl NdrClientCall( PMIDL_STUB_DESC pStubDescriptor, PFORMAT_STRING pFormat, ... ); CLIENT_CALL_RETURN __cdecl NdrAsyncClientCall( PMIDL_STUB_DESC pStubDescriptor, PFORMAT_STRING pFormat, ... ); CLIENT_CALL_RETURN __cdecl NdrDcomAsyncClientCall( PMIDL_STUB_DESC pStubDescriptor, PFORMAT_STRING pFormat, ... ); /* server */ typedef enum { STUB_UNMARSHAL, STUB_CALL_SERVER, STUB_MARSHAL, STUB_CALL_SERVER_NO_HRESULT }STUB_PHASE; typedef enum { PROXY_CALCSIZE, PROXY_GETBUFFER, PROXY_MARSHAL, PROXY_SENDRECEIVE, PROXY_UNMARSHAL }PROXY_PHASE; struct IRpcStubBuffer; // Forward declaration // Raw RPC only __declspec(dllimport) void __stdcall NdrAsyncServerCall( PRPC_MESSAGE pRpcMsg ); // old dcom async scheme __declspec(dllimport) long __stdcall NdrAsyncStubCall( struct IRpcStubBuffer * pThis, struct IRpcChannelBuffer * pChannel, PRPC_MESSAGE pRpcMsg, unsigned long * pdwStubPhase ); // async uuid __declspec(dllimport) long __stdcall NdrDcomAsyncStubCall( struct IRpcStubBuffer * pThis, struct IRpcChannelBuffer * pChannel, PRPC_MESSAGE pRpcMsg, unsigned long * pdwStubPhase ); __declspec(dllimport) long __stdcall NdrStubCall2( struct IRpcStubBuffer * pThis, struct IRpcChannelBuffer * pChannel, PRPC_MESSAGE pRpcMsg, unsigned long * pdwStubPhase ); __declspec(dllimport) void __stdcall NdrServerCall2( PRPC_MESSAGE pRpcMsg ); __declspec(dllimport) long __stdcall NdrStubCall ( struct IRpcStubBuffer * pThis, struct IRpcChannelBuffer * pChannel, PRPC_MESSAGE pRpcMsg, unsigned long * pdwStubPhase ); __declspec(dllimport) void __stdcall NdrServerCall( PRPC_MESSAGE pRpcMsg ); __declspec(dllimport) int __stdcall NdrServerUnmarshall( struct IRpcChannelBuffer * pChannel, PRPC_MESSAGE pRpcMsg, PMIDL_STUB_MESSAGE pStubMsg, PMIDL_STUB_DESC pStubDescriptor, PFORMAT_STRING pFormat, void * pParamList ); __declspec(dllimport) void __stdcall NdrServerMarshall( struct IRpcStubBuffer * pThis, struct IRpcChannelBuffer * pChannel, PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat ); /* Comm and Fault status */ __declspec(dllimport) RPC_STATUS __stdcall NdrMapCommAndFaultStatus( PMIDL_STUB_MESSAGE pStubMsg, unsigned long * pCommStatus, unsigned long * pFaultStatus, RPC_STATUS Status ); /**************************************************************************** MIDL 2.0 memory package: rpc_ss_* rpc_sm_* ****************************************************************************/ typedef void * RPC_SS_THREAD_HANDLE; typedef void * __stdcall RPC_CLIENT_ALLOC ( size_t Size ); typedef void __stdcall RPC_CLIENT_FREE ( void * Ptr ); /*++ RpcSs* package --*/ __declspec(dllimport) void * __stdcall RpcSsAllocate ( size_t Size ); __declspec(dllimport) void __stdcall RpcSsDisableAllocate ( void ); __declspec(dllimport) void __stdcall RpcSsEnableAllocate ( void ); __declspec(dllimport) void __stdcall RpcSsFree ( void * NodeToFree ); __declspec(dllimport) RPC_SS_THREAD_HANDLE __stdcall RpcSsGetThreadHandle ( void ); __declspec(dllimport) void __stdcall RpcSsSetClientAllocFree ( RPC_CLIENT_ALLOC * ClientAlloc, RPC_CLIENT_FREE * ClientFree ); __declspec(dllimport) void __stdcall RpcSsSetThreadHandle ( RPC_SS_THREAD_HANDLE Id ); __declspec(dllimport) void __stdcall RpcSsSwapClientAllocFree ( RPC_CLIENT_ALLOC * ClientAlloc, RPC_CLIENT_FREE * ClientFree, RPC_CLIENT_ALLOC * * OldClientAlloc, RPC_CLIENT_FREE * * OldClientFree ); /*++ RpcSm* package --*/ __declspec(dllimport) void * __stdcall RpcSmAllocate ( size_t Size, RPC_STATUS * pStatus ); __declspec(dllimport) RPC_STATUS __stdcall RpcSmClientFree ( void * pNodeToFree ); __declspec(dllimport) RPC_STATUS __stdcall RpcSmDestroyClientContext ( void * * ContextHandle ); __declspec(dllimport) RPC_STATUS __stdcall RpcSmDisableAllocate ( void ); __declspec(dllimport) RPC_STATUS __stdcall RpcSmEnableAllocate ( void ); __declspec(dllimport) RPC_STATUS __stdcall RpcSmFree ( void * NodeToFree ); __declspec(dllimport) RPC_SS_THREAD_HANDLE __stdcall RpcSmGetThreadHandle ( RPC_STATUS * pStatus ); __declspec(dllimport) RPC_STATUS __stdcall RpcSmSetClientAllocFree ( RPC_CLIENT_ALLOC * ClientAlloc, RPC_CLIENT_FREE * ClientFree ); __declspec(dllimport) RPC_STATUS __stdcall RpcSmSetThreadHandle ( RPC_SS_THREAD_HANDLE Id ); __declspec(dllimport) RPC_STATUS __stdcall RpcSmSwapClientAllocFree ( RPC_CLIENT_ALLOC * ClientAlloc, RPC_CLIENT_FREE * ClientFree, RPC_CLIENT_ALLOC * * OldClientAlloc, RPC_CLIENT_FREE * * OldClientFree ); /*++ Ndr stub entry points --*/ __declspec(dllimport) void __stdcall NdrRpcSsEnableAllocate( PMIDL_STUB_MESSAGE pMessage ); __declspec(dllimport) void __stdcall NdrRpcSsDisableAllocate( PMIDL_STUB_MESSAGE pMessage ); __declspec(dllimport) void __stdcall NdrRpcSmSetClientToOsf( PMIDL_STUB_MESSAGE pMessage ); __declspec(dllimport) void * __stdcall NdrRpcSmClientAllocate ( size_t Size ); __declspec(dllimport) void __stdcall NdrRpcSmClientFree ( void * NodeToFree ); __declspec(dllimport) void * __stdcall NdrRpcSsDefaultAllocate ( size_t Size ); __declspec(dllimport) void __stdcall NdrRpcSsDefaultFree ( void * NodeToFree ); /**************************************************************************** end of memory package: rpc_ss_* rpc_sm_* ****************************************************************************/ /**************************************************************************** * Full Pointer APIs ****************************************************************************/ __declspec(dllimport) PFULL_PTR_XLAT_TABLES __stdcall NdrFullPointerXlatInit( unsigned long NumberOfPointers, XLAT_SIDE XlatSide ); __declspec(dllimport) void __stdcall NdrFullPointerXlatFree( PFULL_PTR_XLAT_TABLES pXlatTables ); __declspec(dllimport) void * __stdcall NdrAllocate( PMIDL_STUB_MESSAGE pStubMsg, size_t Len ); __declspec(dllimport) void __stdcall NdrClearOutParameters( PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat, void * ArgAddr ); /**************************************************************************** * Proxy APIs ****************************************************************************/ __declspec(dllimport) void * __stdcall NdrOleAllocate ( size_t Size ); __declspec(dllimport) void __stdcall NdrOleFree ( void * NodeToFree ); #line 2859 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcndr.h" /**************************************************************************** * VC COM support ****************************************************************************/ #line 2896 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcndr.h" /**************************************************************************** * UserMarshal information ****************************************************************************/ typedef struct _NDR_USER_MARSHAL_INFO_LEVEL1 { void * Buffer; unsigned long BufferSize; void *(__stdcall * pfnAllocate)(size_t); void (__stdcall * pfnFree)(void *); struct IRpcChannelBuffer * pRpcChannelBuffer; ULONG_PTR Reserved[5]; } NDR_USER_MARSHAL_INFO_LEVEL1; #pragma warning(push) #line 2915 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcndr.h" #pragma warning(disable:4201) #line 2917 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcndr.h" typedef struct _NDR_USER_MARSHAL_INFO { unsigned long InformationLevel; union { NDR_USER_MARSHAL_INFO_LEVEL1 Level1; }; } NDR_USER_MARSHAL_INFO; #pragma warning(pop) #line 2932 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcndr.h" #line 2933 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcndr.h" RPC_STATUS __stdcall NdrGetUserMarshalInfo ( unsigned long * pFlags, unsigned long InformationLevel, NDR_USER_MARSHAL_INFO * pMarshalInfo ); /**************************************************************************** * 64bit APIs ****************************************************************************/ RPC_STATUS __stdcall NdrCreateServerInterfaceFromStub( struct IRpcStubBuffer* pStub, RPC_SERVER_INTERFACE *pServerIf ); /* * Interpreter calls */ CLIENT_CALL_RETURN __cdecl NdrClientCall3( MIDL_STUBLESS_PROXY_INFO *pProxyInfo, unsigned long nProcNum, void * pReturnValue, ... ); CLIENT_CALL_RETURN __cdecl Ndr64AsyncClientCall( MIDL_STUBLESS_PROXY_INFO *pProxyInfo, unsigned long nProcNum, void * pReturnValue, ... ); CLIENT_CALL_RETURN __cdecl Ndr64DcomAsyncClientCall( MIDL_STUBLESS_PROXY_INFO *pProxyInfo, unsigned long nProcNum, void * pReturnValue, ... ); struct IRpcStubBuffer; // Forward declaration __declspec(dllimport) void __stdcall Ndr64AsyncServerCall( PRPC_MESSAGE pRpcMsg ); __declspec(dllimport) void __stdcall Ndr64AsyncServerCall64( PRPC_MESSAGE pRpcMsg ); __declspec(dllimport) void __stdcall Ndr64AsyncServerCallAll( PRPC_MESSAGE pRpcMsg ); __declspec(dllimport) long __stdcall Ndr64AsyncStubCall( struct IRpcStubBuffer * pThis, struct IRpcChannelBuffer * pChannel, PRPC_MESSAGE pRpcMsg, unsigned long * pdwStubPhase ); /* async uuid */ __declspec(dllimport) long __stdcall Ndr64DcomAsyncStubCall( struct IRpcStubBuffer * pThis, struct IRpcChannelBuffer * pChannel, PRPC_MESSAGE pRpcMsg, unsigned long * pdwStubPhase ); __declspec(dllimport) long __stdcall NdrStubCall3 ( struct IRpcStubBuffer * pThis, struct IRpcChannelBuffer * pChannel, PRPC_MESSAGE pRpcMsg, unsigned long * pdwStubPhase ); __declspec(dllimport) void __stdcall NdrServerCallAll( PRPC_MESSAGE pRpcMsg ); __declspec(dllimport) void __stdcall NdrServerCallNdr64( PRPC_MESSAGE pRpcMsg ); __declspec(dllimport) void __stdcall NdrServerCall3( PRPC_MESSAGE pRpcMsg ); /* [partial_ignore] functions*/ __declspec(dllimport) void __stdcall NdrPartialIgnoreClientMarshall( PMIDL_STUB_MESSAGE pStubMsg, void * pMemory ); __declspec(dllimport) void __stdcall NdrPartialIgnoreServerUnmarshall( PMIDL_STUB_MESSAGE pStubMsg, void ** ppMemory ); __declspec(dllimport) void __stdcall NdrPartialIgnoreClientBufferSize( PMIDL_STUB_MESSAGE pStubMsg, void * pMemory ); __declspec(dllimport) void __stdcall NdrPartialIgnoreServerInitialize( PMIDL_STUB_MESSAGE pStubMsg, void ** ppMemory, PFORMAT_STRING pFormat ); void __stdcall RpcUserFree( handle_t AsyncHandle, void * pBuffer ); } #line 3095 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcndr.h" #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\poppack.h" /*++ Copyright (c) Microsoft Corporation. All rights reserved. Module Name: poppack.h Abstract: This file turns packing of structures off. (That is, it enables automatic alignment of structure fields.) An include file is needed because various compilers do this in different ways. poppack.h is the complement to pshpack?.h. An inclusion of poppack.h MUST ALWAYS be preceded by an inclusion of one of pshpack?.h, in one-to-one correspondence. For Microsoft compatible compilers, this file uses the pop option to the pack pragma so that it can restore the previous saved by the pshpack?.h include file. --*/ #pragma warning(disable:4103) #pragma pack(pop) #line 33 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\poppack.h" #line 36 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\poppack.h" #line 37 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\poppack.h" #line 3097 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcndr.h" #line 3099 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\rpcndr.h" #line 15 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" #line 20 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" #line 24 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" #line 28 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" #line 32 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" #pragma once #line 40 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\pshpack8.h" /*++ Copyright (c) Microsoft Corporation. All rights reserved. Module Name: pshpack8.h Abstract: This file turns 8 byte packing of structures on. (That is, it disables automatic alignment of structure fields.) An include file is needed because various compilers do this in different ways. For Microsoft compatible compilers, this files uses the push option to the pack pragma so that the poppack.h include file can restore the previous packing reliably. The file poppack.h is the complement to this file. --*/ #pragma warning(disable:4103) #pragma pack(push,8) #line 30 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\pshpack8.h" #line 33 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\pshpack8.h" #line 34 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\pshpack8.h" #line 42 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" #line 97 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" #line 99 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" /****** Interface Declaration ***********************************************/ /* * These are macros for declaring interfaces. They exist so that * a single definition of the interface is simulataneously a proper * declaration of the interface structures (C++ abstract classes) * for both C and C++. * * DECLARE_INTERFACE(iface) is used to declare an interface that does * not derive from a base interface. * DECLARE_INTERFACE_(iface, baseiface) is used to declare an interface * that does derive from a base interface. * * By default if the source file has a .c extension the C version of * the interface declaratations will be expanded; if it has a .cpp * extension the C++ version will be expanded. if you want to force * the C version expansion even though the source file has a .cpp * extension, then define the macro "CINTERFACE". * eg. cl -DCINTERFACE file.cpp * * Example Interface declaration: * * #undef INTERFACE * #define INTERFACE IClassFactory * * DECLARE_INTERFACE_(IClassFactory, IUnknown) * { * // *** IUnknown methods *** * STDMETHOD(QueryInterface) (THIS_ * REFIID riid, * LPVOID FAR* ppvObj) PURE; * STDMETHOD_(ULONG,AddRef) (THIS) PURE; * STDMETHOD_(ULONG,Release) (THIS) PURE; * * // *** IClassFactory methods *** * STDMETHOD(CreateInstance) (THIS_ * LPUNKNOWN pUnkOuter, * REFIID riid, * LPVOID FAR* ppvObject) PURE; * }; * * Example C++ expansion: * * struct FAR IClassFactory : public IUnknown * { * virtual HRESULT STDMETHODCALLTYPE QueryInterface( * IID FAR& riid, * LPVOID FAR* ppvObj) = 0; * virtual HRESULT STDMETHODCALLTYPE AddRef(void) = 0; * virtual HRESULT STDMETHODCALLTYPE Release(void) = 0; * virtual HRESULT STDMETHODCALLTYPE CreateInstance( * LPUNKNOWN pUnkOuter, * IID FAR& riid, * LPVOID FAR* ppvObject) = 0; * }; * * NOTE: Our documentation says '#define interface class' but we use * 'struct' instead of 'class' to keep a lot of 'public:' lines * out of the interfaces. The 'FAR' forces the 'this' pointers to * be far, which is what we need. * * Example C expansion: * * typedef struct IClassFactory * { * const struct IClassFactoryVtbl FAR* lpVtbl; * } IClassFactory; * * typedef struct IClassFactoryVtbl IClassFactoryVtbl; * * struct IClassFactoryVtbl * { * HRESULT (STDMETHODCALLTYPE * QueryInterface) ( * IClassFactory FAR* This, * IID FAR* riid, * LPVOID FAR* ppvObj) ; * HRESULT (STDMETHODCALLTYPE * AddRef) (IClassFactory FAR* This) ; * HRESULT (STDMETHODCALLTYPE * Release) (IClassFactory FAR* This) ; * HRESULT (STDMETHODCALLTYPE * CreateInstance) ( * IClassFactory FAR* This, * LPUNKNOWN pUnkOuter, * IID FAR* riid, * LPVOID FAR* ppvObject); * HRESULT (STDMETHODCALLTYPE * LockServer) ( * IClassFactory FAR* This, * BOOL fLock); * }; */ //#define interface struct FAR #line 197 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" #line 224 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" #line 227 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" #line 228 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" // IID_PPV_ARGS(ppType) // ppType is the variable of type IType that will be filled // // RESULTS in: IID_IType, ppvType // will create a compiler error if wrong level of indirection is used. // extern "C++" { template void** IID_PPV_ARGS_Helper(T** pp) { // make sure everyone derives from IUnknown static_cast(*pp); return reinterpret_cast(pp); } } #line 297 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" /****** Additional basic types **********************************************/ #line 310 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" #line 311 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" #line 320 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" #line 321 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" // With DCOM, CLSCTX_REMOTE_SERVER should be included #line 357 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" // class registration flags; passed to CoRegisterClassObject typedef enum tagREGCLS { REGCLS_SINGLEUSE = 0, // class object only generates one instance REGCLS_MULTIPLEUSE = 1, // same class object genereates multiple inst. // and local automatically goes into inproc tbl. REGCLS_MULTI_SEPARATE = 2, // multiple use, but separate control over each // context. REGCLS_SUSPENDED = 4, // register is as suspended, will be activated // when app calls CoResumeClassObjects REGCLS_SURROGATE = 8 // must be used when a surrogate process // is registering a class object that will be // loaded in the surrogate } REGCLS; // interface marshaling definitions // // Common typedefs for paramaters used in Storage API's, gleamed from storage.h // Also contains Storage error codes, which should be moved into the storage // idl files. // /* Storage instantiation modes */ #line 406 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" #line 415 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" /* flags for internet asyncronous and layout docfile */ typedef DWORD STGFMT; // This is a legacy define to allow old component to builds /* here is where we pull in the MIDL generated headers for the interfaces */ typedef struct IRpcStubBuffer IRpcStubBuffer; typedef struct IRpcChannelBuffer IRpcChannelBuffer; #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wtypes.h" /* this ALWAYS GENERATED file contains the definitions for the interfaces */ /* File created by MIDL compiler version 7.00.0499 */ /* Compiler settings for wtypes.idl: Oicf, W1, Zp8, env=Win32 (32b run) protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level: __declspec(uuid()), __declspec(selectany), __declspec(novtable) DECLSPEC_UUID(), MIDL_INTERFACE() */ //@@MIDL_FILE_HEADING( ) #pragma warning( disable: 4049 ) /* verify that the version is high enough to compile this file*/ #line 24 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wtypes.h" /* verify that the version is high enough to compile this file*/ #line 29 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wtypes.h" #pragma once #line 44 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wtypes.h" /* Forward Declarations */ /* header files for imported files */ #line 1 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\guiddef.h" //+--------------------------------------------------------------------------- // // Microsoft Windows // Copyright (c) Microsoft Corporation. All rights reserved. // // File: guiddef.h // // Contents: GUID definition // //---------------------------------------------------------------------------- #line 58 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\guiddef.h" #line 67 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\guiddef.h" #line 50 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wtypes.h" extern "C"{ #line 54 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wtypes.h" /* interface __MIDL_itf_wtypes_0000_0000 */ /* [local] */ //+------------------------------------------------------------------------- // // Microsoft Windows // Copyright (c) Microsoft Corporation. All rights reserved. // //-------------------------------------------------------------------------- #pragma once #line 68 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wtypes.h" extern RPC_IF_HANDLE __MIDL_itf_wtypes_0000_0000_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_wtypes_0000_0000_v0_0_s_ifspec; /* interface IWinTypes */ /* [unique][version][uuid] */ typedef struct tagRemHGLOBAL { long fNullHGlobal; unsigned long cbData; byte data[ 1 ]; } RemHGLOBAL; typedef struct tagRemHMETAFILEPICT { long mm; long xExt; long yExt; unsigned long cbData; byte data[ 1 ]; } RemHMETAFILEPICT; typedef struct tagRemHENHMETAFILE { unsigned long cbData; byte data[ 1 ]; } RemHENHMETAFILE; typedef struct tagRemHBITMAP { unsigned long cbData; byte data[ 1 ]; } RemHBITMAP; typedef struct tagRemHPALETTE { unsigned long cbData; byte data[ 1 ]; } RemHPALETTE; typedef struct tagRemBRUSH { unsigned long cbData; byte data[ 1 ]; } RemHBRUSH; #line 311 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wtypes.h" typedef WCHAR OLECHAR; typedef /* [string] */ OLECHAR *LPOLESTR; typedef /* [string] */ const OLECHAR *LPCOLESTR; #line 356 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wtypes.h" typedef unsigned char UCHAR; typedef short SHORT; typedef unsigned short USHORT; typedef DWORD ULONG; typedef double DOUBLE; #line 420 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wtypes.h" typedef struct _COAUTHIDENTITY { USHORT *User; ULONG UserLength; USHORT *Domain; ULONG DomainLength; USHORT *Password; ULONG PasswordLength; ULONG Flags; } COAUTHIDENTITY; typedef struct _COAUTHINFO { DWORD dwAuthnSvc; DWORD dwAuthzSvc; LPWSTR pwszServerPrincName; DWORD dwAuthnLevel; DWORD dwImpersonationLevel; COAUTHIDENTITY *pAuthIdentityData; DWORD dwCapabilities; } COAUTHINFO; typedef LONG SCODE; typedef SCODE *PSCODE; #line 556 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wtypes.h" typedef enum tagMEMCTX { MEMCTX_TASK = 1, MEMCTX_SHARED = 2, MEMCTX_MACSYSTEM = 3, MEMCTX_UNKNOWN = -1, MEMCTX_SAME = -2 } MEMCTX; #line 570 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wtypes.h" #line 574 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wtypes.h" #line 578 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wtypes.h" #line 587 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wtypes.h" typedef enum tagCLSCTX { CLSCTX_INPROC_SERVER = 0x1, CLSCTX_INPROC_HANDLER = 0x2, CLSCTX_LOCAL_SERVER = 0x4, CLSCTX_INPROC_SERVER16 = 0x8, CLSCTX_REMOTE_SERVER = 0x10, CLSCTX_INPROC_HANDLER16 = 0x20, CLSCTX_RESERVED1 = 0x40, CLSCTX_RESERVED2 = 0x80, CLSCTX_RESERVED3 = 0x100, CLSCTX_RESERVED4 = 0x200, CLSCTX_NO_CODE_DOWNLOAD = 0x400, CLSCTX_RESERVED5 = 0x800, CLSCTX_NO_CUSTOM_MARSHAL = 0x1000, CLSCTX_ENABLE_CODE_DOWNLOAD = 0x2000, CLSCTX_NO_FAILURE_LOG = 0x4000, CLSCTX_DISABLE_AAA = 0x8000, CLSCTX_ENABLE_AAA = 0x10000, CLSCTX_FROM_DEFAULT_CONTEXT = 0x20000, CLSCTX_ACTIVATE_32_BIT_SERVER = 0x40000, CLSCTX_ACTIVATE_64_BIT_SERVER = 0x80000, CLSCTX_ENABLE_CLOAKING = 0x100000, CLSCTX_PS_DLL = 0x80000000 } CLSCTX; typedef enum tagMSHLFLAGS { MSHLFLAGS_NORMAL = 0, MSHLFLAGS_TABLESTRONG = 1, MSHLFLAGS_TABLEWEAK = 2, MSHLFLAGS_NOPING = 4, MSHLFLAGS_RESERVED1 = 8, MSHLFLAGS_RESERVED2 = 16, MSHLFLAGS_RESERVED3 = 32, MSHLFLAGS_RESERVED4 = 64 } MSHLFLAGS; typedef enum tagMSHCTX { MSHCTX_LOCAL = 0, MSHCTX_NOSHAREDMEM = 1, MSHCTX_DIFFERENTMACHINE = 2, MSHCTX_INPROC = 3, MSHCTX_CROSSCTX = 4 } MSHCTX; typedef enum tagDVASPECT { DVASPECT_CONTENT = 1, DVASPECT_THUMBNAIL = 2, DVASPECT_ICON = 4, DVASPECT_DOCPRINT = 8 } DVASPECT; typedef enum tagSTGC { STGC_DEFAULT = 0, STGC_OVERWRITE = 1, STGC_ONLYIFCURRENT = 2, STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE = 4, STGC_CONSOLIDATE = 8 } STGC; typedef enum tagSTGMOVE { STGMOVE_MOVE = 0, STGMOVE_COPY = 1, STGMOVE_SHALLOWCOPY = 2 } STGMOVE; typedef enum tagSTATFLAG { STATFLAG_DEFAULT = 0, STATFLAG_NONAME = 1, STATFLAG_NOOPEN = 2 } STATFLAG; typedef /* [context_handle] */ void *HCONTEXT; typedef DWORD LCID; #line 689 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wtypes.h" typedef USHORT LANGID; #line 694 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wtypes.h" typedef struct _BYTE_BLOB { unsigned long clSize; byte abData[ 1 ]; } BYTE_BLOB; typedef /* [unique] */ BYTE_BLOB *UP_BYTE_BLOB; typedef struct _WORD_BLOB { unsigned long clSize; unsigned short asData[ 1 ]; } WORD_BLOB; typedef /* [unique] */ WORD_BLOB *UP_WORD_BLOB; typedef struct _DWORD_BLOB { unsigned long clSize; unsigned long alData[ 1 ]; } DWORD_BLOB; typedef /* [unique] */ DWORD_BLOB *UP_DWORD_BLOB; typedef struct _FLAGGED_BYTE_BLOB { unsigned long fFlags; unsigned long clSize; byte abData[ 1 ]; } FLAGGED_BYTE_BLOB; typedef /* [unique] */ FLAGGED_BYTE_BLOB *UP_FLAGGED_BYTE_BLOB; typedef struct _FLAGGED_WORD_BLOB { unsigned long fFlags; unsigned long clSize; unsigned short asData[ 1 ]; } FLAGGED_WORD_BLOB; typedef /* [unique] */ FLAGGED_WORD_BLOB *UP_FLAGGED_WORD_BLOB; typedef struct _BYTE_SIZEDARR { unsigned long clSize; byte *pData; } BYTE_SIZEDARR; typedef struct _SHORT_SIZEDARR { unsigned long clSize; unsigned short *pData; } WORD_SIZEDARR; typedef struct _LONG_SIZEDARR { unsigned long clSize; unsigned long *pData; } DWORD_SIZEDARR; typedef struct _HYPER_SIZEDARR { unsigned long clSize; __int64 *pData; } HYPER_SIZEDARR; typedef struct _userCLIPFORMAT { long fContext; /* [switch_type] */ union __MIDL_IWinTypes_0001 { DWORD dwValue; wchar_t *pwszName; } u; } userCLIPFORMAT; typedef /* [unique] */ userCLIPFORMAT *wireCLIPFORMAT; typedef /* [wire_marshal] */ WORD CLIPFORMAT; typedef struct _GDI_NONREMOTE { long fContext; /* [switch_type] */ union __MIDL_IWinTypes_0002 { long hInproc; DWORD_BLOB *hRemote; } u; } GDI_NONREMOTE; typedef struct _userHGLOBAL { long fContext; /* [switch_type] */ union __MIDL_IWinTypes_0003 { long hInproc; FLAGGED_BYTE_BLOB *hRemote; __int64 hInproc64; } u; } userHGLOBAL; typedef /* [unique] */ userHGLOBAL *wireHGLOBAL; typedef struct _userHMETAFILE { long fContext; /* [switch_type] */ union __MIDL_IWinTypes_0004 { long hInproc; BYTE_BLOB *hRemote; __int64 hInproc64; } u; } userHMETAFILE; typedef struct _remoteMETAFILEPICT { long mm; long xExt; long yExt; userHMETAFILE *hMF; } remoteMETAFILEPICT; typedef struct _userHMETAFILEPICT { long fContext; /* [switch_type] */ union __MIDL_IWinTypes_0005 { long hInproc; remoteMETAFILEPICT *hRemote; __int64 hInproc64; } u; } userHMETAFILEPICT; typedef struct _userHENHMETAFILE { long fContext; /* [switch_type] */ union __MIDL_IWinTypes_0006 { long hInproc; BYTE_BLOB *hRemote; __int64 hInproc64; } u; } userHENHMETAFILE; typedef struct _userBITMAP { LONG bmType; LONG bmWidth; LONG bmHeight; LONG bmWidthBytes; WORD bmPlanes; WORD bmBitsPixel; ULONG cbSize; byte pBuffer[ 1 ]; } userBITMAP; typedef struct _userHBITMAP { long fContext; /* [switch_type] */ union __MIDL_IWinTypes_0007 { long hInproc; userBITMAP *hRemote; __int64 hInproc64; } u; } userHBITMAP; typedef struct _userHPALETTE { long fContext; /* [switch_type] */ union __MIDL_IWinTypes_0008 { long hInproc; LOGPALETTE *hRemote; __int64 hInproc64; } u; } userHPALETTE; typedef struct _RemotableHandle { long fContext; /* [switch_type] */ union __MIDL_IWinTypes_0009 { long hInproc; long hRemote; } u; } RemotableHandle; typedef /* [unique] */ RemotableHandle *wireHWND; typedef /* [unique] */ RemotableHandle *wireHMENU; typedef /* [unique] */ RemotableHandle *wireHACCEL; typedef /* [unique] */ RemotableHandle *wireHBRUSH; typedef /* [unique] */ RemotableHandle *wireHFONT; typedef /* [unique] */ RemotableHandle *wireHDC; typedef /* [unique] */ RemotableHandle *wireHICON; typedef /* [unique] */ RemotableHandle *wireHRGN; #line 927 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wtypes.h" typedef /* [unique] */ userHBITMAP *wireHBITMAP; typedef /* [unique] */ userHPALETTE *wireHPALETTE; typedef /* [unique] */ userHENHMETAFILE *wireHENHMETAFILE; typedef /* [unique] */ userHMETAFILE *wireHMETAFILE; typedef /* [unique] */ userHMETAFILEPICT *wireHMETAFILEPICT; #line 1002 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wtypes.h" typedef /* [wire_marshal] */ void *HMETAFILEPICT; extern RPC_IF_HANDLE IWinTypes_v0_1_c_ifspec; extern RPC_IF_HANDLE IWinTypes_v0_1_s_ifspec; #line 1009 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wtypes.h" /* interface __MIDL_itf_wtypes_0000_0001 */ /* [local] */ #pragma warning(push) #line 1017 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wtypes.h" #pragma warning(disable:4201) #line 1019 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wtypes.h" typedef double DATE; #line 1033 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wtypes.h" /* real definition that makes the C++ compiler happy */ typedef union tagCY { struct { unsigned long Lo; long Hi; #line 1043 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wtypes.h" }; LONGLONG int64; } CY; #line 1047 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wtypes.h" #line 1048 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wtypes.h" typedef CY *LPCY; #line 1063 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wtypes.h" /* real definition that makes the C++ compiler happy */ typedef struct tagDEC { USHORT wReserved; union { struct { BYTE scale; BYTE sign; }; USHORT signscale; }; ULONG Hi32; union { struct { ULONG Lo32; ULONG Mid32; #line 1083 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wtypes.h" }; ULONGLONG Lo64; }; } DECIMAL; #line 1091 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wtypes.h" typedef DECIMAL *LPDECIMAL; #pragma warning(pop) #line 1099 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wtypes.h" #line 1100 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wtypes.h" typedef /* [unique] */ FLAGGED_WORD_BLOB *wireBSTR; typedef /* [wire_marshal] */ OLECHAR *BSTR; typedef BSTR *LPBSTR; /* 0 == FALSE, -1 == TRUE */ typedef short VARIANT_BOOL; #line 1114 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wtypes.h" /* ANSI C/C++ reserve bool as keyword */ #line 1117 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wtypes.h" typedef boolean BOOLEAN; /* The BSTRBLOB structure is used by some implementations */ /* of the IPropertyStorage interface when marshaling BSTRs */ /* on systems which don't support BSTR marshaling. */ typedef struct tagBSTRBLOB { ULONG cbSize; BYTE *pData; } BSTRBLOB; typedef struct tagBSTRBLOB *LPBSTRBLOB; #line 1133 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wtypes.h" typedef struct tagBLOB { ULONG cbSize; BYTE *pBlobData; } BLOB; typedef struct tagBLOB *LPBLOB; #line 1148 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wtypes.h" typedef struct tagCLIPDATA { ULONG cbSize; long ulClipFmt; BYTE *pClipData; } CLIPDATA; // Macro to calculate the size of the above pClipData typedef unsigned short VARTYPE; /* * VARENUM usage key, * * * [V] - may appear in a VARIANT * * [T] - may appear in a TYPEDESC * * [P] - may appear in an OLE property set * * [S] - may appear in a Safe Array * * * VT_EMPTY [V] [P] nothing * VT_NULL [V] [P] SQL style Null * VT_I2 [V][T][P][S] 2 byte signed int * VT_I4 [V][T][P][S] 4 byte signed int * VT_R4 [V][T][P][S] 4 byte real * VT_R8 [V][T][P][S] 8 byte real * VT_CY [V][T][P][S] currency * VT_DATE [V][T][P][S] date * VT_BSTR [V][T][P][S] OLE Automation string * VT_DISPATCH [V][T] [S] IDispatch * * VT_ERROR [V][T][P][S] SCODE * VT_BOOL [V][T][P][S] True=-1, False=0 * VT_VARIANT [V][T][P][S] VARIANT * * VT_UNKNOWN [V][T] [S] IUnknown * * VT_DECIMAL [V][T] [S] 16 byte fixed point * VT_RECORD [V] [P][S] user defined type * VT_I1 [V][T][P][s] signed char * VT_UI1 [V][T][P][S] unsigned char * VT_UI2 [V][T][P][S] unsigned short * VT_UI4 [V][T][P][S] unsigned long * VT_I8 [T][P] signed 64-bit int * VT_UI8 [T][P] unsigned 64-bit int * VT_INT [V][T][P][S] signed machine int * VT_UINT [V][T] [S] unsigned machine int * VT_INT_PTR [T] signed machine register size width * VT_UINT_PTR [T] unsigned machine register size width * VT_VOID [T] C style void * VT_HRESULT [T] Standard return type * VT_PTR [T] pointer type * VT_SAFEARRAY [T] (use VT_ARRAY in VARIANT) * VT_CARRAY [T] C style array * VT_USERDEFINED [T] user defined type * VT_LPSTR [T][P] null terminated string * VT_LPWSTR [T][P] wide null terminated string * VT_FILETIME [P] FILETIME * VT_BLOB [P] Length prefixed bytes * VT_STREAM [P] Name of the stream follows * VT_STORAGE [P] Name of the storage follows * VT_STREAMED_OBJECT [P] Stream contains an object * VT_STORED_OBJECT [P] Storage contains an object * VT_VERSIONED_STREAM [P] Stream with a GUID version * VT_BLOB_OBJECT [P] Blob contains an object * VT_CF [P] Clipboard format * VT_CLSID [P] A Class ID * VT_VECTOR [P] simple counted array * VT_ARRAY [V] SAFEARRAY* * VT_BYREF [V] void* for local use * VT_BSTR_BLOB Reserved for system use */ enum VARENUM { VT_EMPTY = 0, VT_NULL = 1, VT_I2 = 2, VT_I4 = 3, VT_R4 = 4, VT_R8 = 5, VT_CY = 6, VT_DATE = 7, VT_BSTR = 8, VT_DISPATCH = 9, VT_ERROR = 10, VT_BOOL = 11, VT_VARIANT = 12, VT_UNKNOWN = 13, VT_DECIMAL = 14, VT_I1 = 16, VT_UI1 = 17, VT_UI2 = 18, VT_UI4 = 19, VT_I8 = 20, VT_UI8 = 21, VT_INT = 22, VT_UINT = 23, VT_VOID = 24, VT_HRESULT = 25, VT_PTR = 26, VT_SAFEARRAY = 27, VT_CARRAY = 28, VT_USERDEFINED = 29, VT_LPSTR = 30, VT_LPWSTR = 31, VT_RECORD = 36, VT_INT_PTR = 37, VT_UINT_PTR = 38, VT_FILETIME = 64, VT_BLOB = 65, VT_STREAM = 66, VT_STORAGE = 67, VT_STREAMED_OBJECT = 68, VT_STORED_OBJECT = 69, VT_BLOB_OBJECT = 70, VT_CF = 71, VT_CLSID = 72, VT_VERSIONED_STREAM = 73, VT_BSTR_BLOB = 0xfff, VT_VECTOR = 0x1000, VT_ARRAY = 0x2000, VT_BYREF = 0x4000, VT_RESERVED = 0x8000, VT_ILLEGAL = 0xffff, VT_ILLEGALMASKED = 0xfff, VT_TYPEMASK = 0xfff } ; typedef ULONG PROPID; typedef struct _tagpropertykey { GUID fmtid; DWORD pid; } PROPERTYKEY; #line 1283 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wtypes.h" typedef struct tagCSPLATFORM { DWORD dwPlatformId; DWORD dwVersionHi; DWORD dwVersionLo; DWORD dwProcessorArch; } CSPLATFORM; typedef struct tagQUERYCONTEXT { DWORD dwContext; CSPLATFORM Platform; LCID Locale; DWORD dwVersionHi; DWORD dwVersionLo; } QUERYCONTEXT; typedef /* [v1_enum] */ enum tagTYSPEC { TYSPEC_CLSID = 0, TYSPEC_FILEEXT = ( TYSPEC_CLSID + 1 ) , TYSPEC_MIMETYPE = ( TYSPEC_FILEEXT + 1 ) , TYSPEC_FILENAME = ( TYSPEC_MIMETYPE + 1 ) , TYSPEC_PROGID = ( TYSPEC_FILENAME + 1 ) , TYSPEC_PACKAGENAME = ( TYSPEC_PROGID + 1 ) , TYSPEC_OBJECTID = ( TYSPEC_PACKAGENAME + 1 ) } TYSPEC; typedef /* [public] */ struct __MIDL___MIDL_itf_wtypes_0000_0001_0001 { DWORD tyspec; /* [switch_type] */ union __MIDL___MIDL_itf_wtypes_0000_0001_0005 { CLSID clsid; LPOLESTR pFileExt; LPOLESTR pMimeType; LPOLESTR pProgId; LPOLESTR pFileName; struct { LPOLESTR pPackageName; GUID PolicyId; } ByName; struct { GUID ObjectId; GUID PolicyId; } ByObjectId; } tagged_union; } uCLSSPEC; extern RPC_IF_HANDLE __MIDL_itf_wtypes_0000_0001_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_wtypes_0000_0001_v0_0_s_ifspec; /* Additional Prototypes for ALL interfaces */ /* end of Additional Prototypes */ } #line 1377 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wtypes.h" #line 1379 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\wtypes.h" #line 442 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\unknwn.h" /* this ALWAYS GENERATED file contains the definitions for the interfaces */ /* File created by MIDL compiler version 7.00.0499 */ /* Compiler settings for unknwn.idl: Oicf, W1, Zp8, env=Win32 (32b run) protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level: __declspec(uuid()), __declspec(selectany), __declspec(novtable) DECLSPEC_UUID(), MIDL_INTERFACE() */ //@@MIDL_FILE_HEADING( ) #pragma warning( disable: 4049 ) /* verify that the version is high enough to compile this file*/ /* verify that the version is high enough to compile this file*/ #pragma once #line 48 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\unknwn.h" /* Forward Declarations */ typedef struct IUnknown IUnknown; #line 55 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\unknwn.h" typedef struct AsyncIUnknown AsyncIUnknown; #line 61 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\unknwn.h" typedef struct IClassFactory IClassFactory; #line 67 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\unknwn.h" /* header files for imported files */ extern "C"{ #line 75 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\unknwn.h" /* interface __MIDL_itf_unknwn_0000_0000 */ /* [local] */ //+------------------------------------------------------------------------- // // Microsoft Windows // Copyright (c) Microsoft Corporation. All rights reserved. // //-------------------------------------------------------------------------- #pragma once #line 89 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\unknwn.h" extern RPC_IF_HANDLE __MIDL_itf_unknwn_0000_0000_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_unknwn_0000_0000_v0_0_s_ifspec; /* interface IUnknown */ /* [unique][uuid][object][local] */ typedef /* [unique] */ IUnknown *LPUNKNOWN; ////////////////////////////////////////////////////////////////// // IID_IUnknown and all other system IIDs are provided in UUID.LIB // Link that library in with your proxies, clients and servers ////////////////////////////////////////////////////////////////// extern "C" const IID IID_IUnknown; extern "C++" { struct __declspec(uuid("00000000-0000-0000-C000-000000000046")) __declspec(novtable) IUnknown { public: virtual HRESULT __stdcall QueryInterface( /* [in] */ const IID & riid, /* [iid_is][out] */ void * *ppvObject) = 0; virtual ULONG __stdcall AddRef( void) = 0; virtual ULONG __stdcall Release( void) = 0; template HRESULT __stdcall #line 131 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\unknwn.h" QueryInterface(Q** pp) { return QueryInterface(__uuidof(Q), (void **)pp); } }; } // extern C++ HRESULT __stdcall IUnknown_QueryInterface_Proxy( IUnknown * This, /* [in] */ const IID & riid, /* [iid_is][out] */ void * *ppvObject); void __stdcall IUnknown_QueryInterface_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); ULONG __stdcall IUnknown_AddRef_Proxy( IUnknown * This); void __stdcall IUnknown_AddRef_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); ULONG __stdcall IUnknown_Release_Proxy( IUnknown * This); void __stdcall IUnknown_Release_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #line 275 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\unknwn.h" /* interface __MIDL_itf_unknwn_0000_0001 */ /* [local] */ #line 281 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\unknwn.h" extern RPC_IF_HANDLE __MIDL_itf_unknwn_0000_0001_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_unknwn_0000_0001_v0_0_s_ifspec; /* interface AsyncIUnknown */ /* [unique][uuid][object][local] */ extern "C" const IID IID_AsyncIUnknown; struct __declspec(uuid("000e0000-0000-0000-C000-000000000046")) __declspec(novtable) AsyncIUnknown : public IUnknown { public: virtual HRESULT __stdcall Begin_QueryInterface( /* [in] */ const IID & riid) = 0; virtual HRESULT __stdcall Finish_QueryInterface( /* [out] */ void **ppvObject) = 0; virtual HRESULT __stdcall Begin_AddRef( void) = 0; virtual ULONG __stdcall Finish_AddRef( void) = 0; virtual HRESULT __stdcall Begin_Release( void) = 0; virtual ULONG __stdcall Finish_Release( void) = 0; }; #line 402 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\unknwn.h" #line 407 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\unknwn.h" /* interface IClassFactory */ /* [unique][uuid][object] */ typedef /* [unique] */ IClassFactory *LPCLASSFACTORY; extern "C" const IID IID_IClassFactory; struct __declspec(uuid("00000001-0000-0000-C000-000000000046")) __declspec(novtable) IClassFactory : public IUnknown { public: virtual /* [local] */ HRESULT __stdcall CreateInstance( /* [unique][in] */ IUnknown *pUnkOuter, /* [in] */ const IID & riid, /* [iid_is][out] */ void **ppvObject) = 0; virtual /* [local] */ HRESULT __stdcall LockServer( /* [in] */ BOOL fLock) = 0; }; #line 497 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\unknwn.h" /* [call_as] */ HRESULT __stdcall IClassFactory_RemoteCreateInstance_Proxy( IClassFactory * This, /* [in] */ const IID & riid, /* [iid_is][out] */ IUnknown **ppvObject); void __stdcall IClassFactory_RemoteCreateInstance_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [call_as] */ HRESULT __stdcall IClassFactory_RemoteLockServer_Proxy( IClassFactory * This, /* [in] */ BOOL fLock); void __stdcall IClassFactory_RemoteLockServer_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #line 527 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\unknwn.h" /* Additional Prototypes for ALL interfaces */ /* [local] */ HRESULT __stdcall IClassFactory_CreateInstance_Proxy( IClassFactory * This, /* [unique][in] */ IUnknown *pUnkOuter, /* [in] */ const IID & riid, /* [iid_is][out] */ void **ppvObject); /* [call_as] */ HRESULT __stdcall IClassFactory_CreateInstance_Stub( IClassFactory * This, /* [in] */ const IID & riid, /* [iid_is][out] */ IUnknown **ppvObject); /* [local] */ HRESULT __stdcall IClassFactory_LockServer_Proxy( IClassFactory * This, /* [in] */ BOOL fLock); /* [call_as] */ HRESULT __stdcall IClassFactory_LockServer_Stub( IClassFactory * This, /* [in] */ BOOL fLock); /* end of Additional Prototypes */ } #line 559 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\unknwn.h" #line 561 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\unknwn.h" #line 443 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* this ALWAYS GENERATED file contains the definitions for the interfaces */ /* File created by MIDL compiler version 7.00.0499 */ /* Compiler settings for objidl.idl: Oicf, W1, Zp8, env=Win32 (32b run) protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level: __declspec(uuid()), __declspec(selectany), __declspec(novtable) DECLSPEC_UUID(), MIDL_INTERFACE() */ //@@MIDL_FILE_HEADING( ) #pragma warning( disable: 4049 ) /* verify that the version is high enough to compile this file*/ /* verify that the version is high enough to compile this file*/ #pragma once #line 48 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* Forward Declarations */ typedef struct IMarshal IMarshal; #line 55 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IMarshal2 IMarshal2; #line 61 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IMalloc IMalloc; #line 67 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IMallocSpy IMallocSpy; #line 73 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IStdMarshalInfo IStdMarshalInfo; #line 79 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IExternalConnection IExternalConnection; #line 85 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IMultiQI IMultiQI; #line 91 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct AsyncIMultiQI AsyncIMultiQI; #line 97 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IInternalUnknown IInternalUnknown; #line 103 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IEnumUnknown IEnumUnknown; #line 109 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IBindCtx IBindCtx; #line 115 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IEnumMoniker IEnumMoniker; #line 121 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IRunnableObject IRunnableObject; #line 127 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IRunningObjectTable IRunningObjectTable; #line 133 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IPersist IPersist; #line 139 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IPersistStream IPersistStream; #line 145 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IMoniker IMoniker; #line 151 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IROTData IROTData; #line 157 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IEnumString IEnumString; #line 163 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct ISequentialStream ISequentialStream; #line 169 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IStream IStream; #line 175 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IEnumSTATSTG IEnumSTATSTG; #line 181 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IStorage IStorage; #line 187 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IPersistFile IPersistFile; #line 193 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IPersistStorage IPersistStorage; #line 199 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct ILockBytes ILockBytes; #line 205 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IEnumFORMATETC IEnumFORMATETC; #line 211 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IEnumSTATDATA IEnumSTATDATA; #line 217 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IRootStorage IRootStorage; #line 223 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IAdviseSink IAdviseSink; #line 229 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct AsyncIAdviseSink AsyncIAdviseSink; #line 235 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IAdviseSink2 IAdviseSink2; #line 241 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct AsyncIAdviseSink2 AsyncIAdviseSink2; #line 247 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IDataObject IDataObject; #line 253 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IDataAdviseHolder IDataAdviseHolder; #line 259 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IMessageFilter IMessageFilter; #line 265 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IRpcChannelBuffer IRpcChannelBuffer; #line 271 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IRpcChannelBuffer2 IRpcChannelBuffer2; #line 277 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IAsyncRpcChannelBuffer IAsyncRpcChannelBuffer; #line 283 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IRpcChannelBuffer3 IRpcChannelBuffer3; #line 289 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IRpcSyntaxNegotiate IRpcSyntaxNegotiate; #line 295 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IRpcProxyBuffer IRpcProxyBuffer; #line 301 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IRpcStubBuffer IRpcStubBuffer; #line 307 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IPSFactoryBuffer IPSFactoryBuffer; #line 313 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IChannelHook IChannelHook; #line 319 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IClientSecurity IClientSecurity; #line 325 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IServerSecurity IServerSecurity; #line 331 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IClassActivator IClassActivator; #line 337 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IRpcOptions IRpcOptions; #line 343 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IFillLockBytes IFillLockBytes; #line 349 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IProgressNotify IProgressNotify; #line 355 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct ILayoutStorage ILayoutStorage; #line 361 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IBlockingLock IBlockingLock; #line 367 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct ITimeAndNoticeControl ITimeAndNoticeControl; #line 373 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IOplockStorage IOplockStorage; #line 379 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct ISurrogate ISurrogate; #line 385 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IGlobalInterfaceTable IGlobalInterfaceTable; #line 391 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IDirectWriterLock IDirectWriterLock; #line 397 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct ISynchronize ISynchronize; #line 403 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct ISynchronizeHandle ISynchronizeHandle; #line 409 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct ISynchronizeEvent ISynchronizeEvent; #line 415 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct ISynchronizeContainer ISynchronizeContainer; #line 421 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct ISynchronizeMutex ISynchronizeMutex; #line 427 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct ICancelMethodCalls ICancelMethodCalls; #line 433 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IAsyncManager IAsyncManager; #line 439 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct ICallFactory ICallFactory; #line 445 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IRpcHelper IRpcHelper; #line 451 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IReleaseMarshalBuffers IReleaseMarshalBuffers; #line 457 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IWaitMultiple IWaitMultiple; #line 463 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IUrlMon IUrlMon; #line 469 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IForegroundTransfer IForegroundTransfer; #line 475 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IAddrTrackingControl IAddrTrackingControl; #line 481 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IAddrExclusionControl IAddrExclusionControl; #line 487 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IPipeByte IPipeByte; #line 493 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct AsyncIPipeByte AsyncIPipeByte; #line 499 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IPipeLong IPipeLong; #line 505 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct AsyncIPipeLong AsyncIPipeLong; #line 511 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IPipeDouble IPipeDouble; #line 517 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct AsyncIPipeDouble AsyncIPipeDouble; #line 523 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IThumbnailExtractor IThumbnailExtractor; #line 529 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IDummyHICONIncluder IDummyHICONIncluder; #line 535 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IEnumContextProps IEnumContextProps; #line 541 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IContext IContext; #line 547 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IObjContext IObjContext; #line 553 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IProcessLock IProcessLock; #line 559 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct ISurrogateService ISurrogateService; #line 565 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IComThreadingInfo IComThreadingInfo; #line 571 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IProcessInitControl IProcessInitControl; #line 577 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct IInitializeSpy IInitializeSpy; #line 583 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* header files for imported files */ extern "C"{ #line 591 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface __MIDL_itf_objidl_0000_0000 */ /* [local] */ //+------------------------------------------------------------------------- //+------------------------------------------------------------------------- // // Microsoft Windows // Copyright (c) Microsoft Corporation. All rights reserved. // //-------------------------------------------------------------------------- #line 606 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 609 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 612 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 615 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #pragma warning(push) #line 622 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #pragma warning(disable:4201) #line 624 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #pragma once #line 627 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct _COSERVERINFO { DWORD dwReserved1; LPWSTR pwszName; COAUTHINFO *pAuthInfo; DWORD dwReserved2; } COSERVERINFO; extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0000_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0000_v0_0_s_ifspec; /* interface IMarshal */ /* [uuid][object][local] */ typedef /* [unique] */ IMarshal *LPMARSHAL; extern "C" const IID IID_IMarshal; struct __declspec(uuid("00000003-0000-0000-C000-000000000046")) __declspec(novtable) IMarshal : public IUnknown { public: virtual HRESULT __stdcall GetUnmarshalClass( /* [in] */ const IID & riid, /* [unique][in] */ void *pv, /* [in] */ DWORD dwDestContext, /* [unique][in] */ void *pvDestContext, /* [in] */ DWORD mshlflags, /* [out] */ CLSID *pCid) = 0; virtual HRESULT __stdcall GetMarshalSizeMax( /* [in] */ const IID & riid, /* [unique][in] */ void *pv, /* [in] */ DWORD dwDestContext, /* [unique][in] */ void *pvDestContext, /* [in] */ DWORD mshlflags, /* [out] */ DWORD *pSize) = 0; virtual HRESULT __stdcall MarshalInterface( /* [unique][in] */ IStream *pStm, /* [in] */ const IID & riid, /* [unique][in] */ void *pv, /* [in] */ DWORD dwDestContext, /* [unique][in] */ void *pvDestContext, /* [in] */ DWORD mshlflags) = 0; virtual HRESULT __stdcall UnmarshalInterface( /* [unique][in] */ IStream *pStm, /* [in] */ const IID & riid, /* [out] */ void **ppv) = 0; virtual HRESULT __stdcall ReleaseMarshalData( /* [unique][in] */ IStream *pStm) = 0; virtual HRESULT __stdcall DisconnectObject( /* [in] */ DWORD dwReserved) = 0; }; #line 813 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 818 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IMarshal2 */ /* [uuid][object][local] */ typedef /* [unique] */ IMarshal2 *LPMARSHAL2; extern "C" const IID IID_IMarshal2; struct __declspec(uuid("000001cf-0000-0000-C000-000000000046")) __declspec(novtable) IMarshal2 : public IMarshal { public: }; #line 944 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 949 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IMalloc */ /* [uuid][object][local] */ typedef /* [unique] */ IMalloc *LPMALLOC; extern "C" const IID IID_IMalloc; struct __declspec(uuid("00000002-0000-0000-C000-000000000046")) __declspec(novtable) IMalloc : public IUnknown { public: virtual void *__stdcall Alloc( /* [in] */ SIZE_T cb) = 0; virtual void *__stdcall Realloc( /* [in] */ void *pv, /* [in] */ SIZE_T cb) = 0; virtual void __stdcall Free( /* [in] */ void *pv) = 0; virtual SIZE_T __stdcall GetSize( /* [in] */ void *pv) = 0; virtual int __stdcall DidAlloc( void *pv) = 0; virtual void __stdcall HeapMinimize( void) = 0; }; #line 1075 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 1080 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IMallocSpy */ /* [uuid][object][local] */ typedef /* [unique] */ IMallocSpy *LPMALLOCSPY; extern "C" const IID IID_IMallocSpy; struct __declspec(uuid("0000001d-0000-0000-C000-000000000046")) __declspec(novtable) IMallocSpy : public IUnknown { public: virtual SIZE_T __stdcall PreAlloc( /* [in] */ SIZE_T cbRequest) = 0; virtual void *__stdcall PostAlloc( /* [in] */ void *pActual) = 0; virtual void *__stdcall PreFree( /* [in] */ void *pRequest, /* [in] */ BOOL fSpyed) = 0; virtual void __stdcall PostFree( /* [in] */ BOOL fSpyed) = 0; virtual SIZE_T __stdcall PreRealloc( /* [in] */ void *pRequest, /* [in] */ SIZE_T cbRequest, /* [out] */ void **ppNewRequest, /* [in] */ BOOL fSpyed) = 0; virtual void *__stdcall PostRealloc( /* [in] */ void *pActual, /* [in] */ BOOL fSpyed) = 0; virtual void *__stdcall PreGetSize( /* [in] */ void *pRequest, /* [in] */ BOOL fSpyed) = 0; virtual SIZE_T __stdcall PostGetSize( /* [in] */ SIZE_T cbActual, /* [in] */ BOOL fSpyed) = 0; virtual void *__stdcall PreDidAlloc( /* [in] */ void *pRequest, /* [in] */ BOOL fSpyed) = 0; virtual int __stdcall PostDidAlloc( /* [in] */ void *pRequest, /* [in] */ BOOL fSpyed, /* [in] */ int fActual) = 0; virtual void __stdcall PreHeapMinimize( void) = 0; virtual void __stdcall PostHeapMinimize( void) = 0; }; #line 1282 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 1287 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IStdMarshalInfo */ /* [uuid][object][local] */ typedef /* [unique] */ IStdMarshalInfo *LPSTDMARSHALINFO; extern "C" const IID IID_IStdMarshalInfo; struct __declspec(uuid("00000018-0000-0000-C000-000000000046")) __declspec(novtable) IStdMarshalInfo : public IUnknown { public: virtual HRESULT __stdcall GetClassForHandler( /* [in] */ DWORD dwDestContext, /* [unique][in] */ void *pvDestContext, /* [out] */ CLSID *pClsid) = 0; }; #line 1367 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 1372 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IExternalConnection */ /* [uuid][local][object] */ typedef /* [unique] */ IExternalConnection *LPEXTERNALCONNECTION; typedef enum tagEXTCONN { EXTCONN_STRONG = 0x1, EXTCONN_WEAK = 0x2, EXTCONN_CALLABLE = 0x4 } EXTCONN; extern "C" const IID IID_IExternalConnection; struct __declspec(uuid("00000019-0000-0000-C000-000000000046")) __declspec(novtable) IExternalConnection : public IUnknown { public: virtual DWORD __stdcall AddConnection( /* [in] */ DWORD extconn, /* [in] */ DWORD reserved) = 0; virtual DWORD __stdcall ReleaseConnection( /* [in] */ DWORD extconn, /* [in] */ DWORD reserved, /* [in] */ BOOL fLastReleaseCloses) = 0; }; #line 1471 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 1476 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface __MIDL_itf_objidl_0000_0006 */ /* [local] */ typedef /* [unique] */ IMultiQI *LPMULTIQI; typedef struct tagMULTI_QI { const IID *pIID; IUnknown *pItf; HRESULT hr; } MULTI_QI; extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0006_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0006_v0_0_s_ifspec; /* interface IMultiQI */ /* [async_uuid][uuid][local][object] */ extern "C" const IID IID_IMultiQI; struct __declspec(uuid("00000020-0000-0000-C000-000000000046")) __declspec(novtable) IMultiQI : public IUnknown { public: virtual HRESULT __stdcall QueryMultipleInterfaces( /* [in] */ ULONG cMQIs, /* [out][in] */ MULTI_QI *pMQIs) = 0; }; #line 1569 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 1574 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface AsyncIMultiQI */ /* [uuid][local][object] */ extern "C" const IID IID_AsyncIMultiQI; struct __declspec(uuid("000e0020-0000-0000-C000-000000000046")) __declspec(novtable) AsyncIMultiQI : public IUnknown { public: virtual HRESULT __stdcall Begin_QueryMultipleInterfaces( /* [in] */ ULONG cMQIs, /* [out][in] */ MULTI_QI *pMQIs) = 0; virtual HRESULT __stdcall Finish_QueryMultipleInterfaces( /* [out][in] */ MULTI_QI *pMQIs) = 0; }; #line 1660 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 1665 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IInternalUnknown */ /* [uuid][local][object] */ extern "C" const IID IID_IInternalUnknown; struct __declspec(uuid("00000021-0000-0000-C000-000000000046")) __declspec(novtable) IInternalUnknown : public IUnknown { public: virtual HRESULT __stdcall QueryInternalInterface( /* [in] */ const IID & riid, /* [out] */ void **ppv) = 0; }; #line 1741 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 1746 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IEnumUnknown */ /* [unique][uuid][object] */ typedef /* [unique] */ IEnumUnknown *LPENUMUNKNOWN; extern "C" const IID IID_IEnumUnknown; struct __declspec(uuid("00000100-0000-0000-C000-000000000046")) __declspec(novtable) IEnumUnknown : public IUnknown { public: virtual /* [local] */ HRESULT __stdcall Next( /* [in] */ ULONG celt, /* [out] */ IUnknown **rgelt, /* [out] */ ULONG *pceltFetched) = 0; virtual HRESULT __stdcall Skip( /* [in] */ ULONG celt) = 0; virtual HRESULT __stdcall Reset( void) = 0; virtual HRESULT __stdcall Clone( /* [out] */ IEnumUnknown **ppenum) = 0; }; #line 1854 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* [call_as] */ HRESULT __stdcall IEnumUnknown_RemoteNext_Proxy( IEnumUnknown * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ IUnknown **rgelt, /* [out] */ ULONG *pceltFetched); void __stdcall IEnumUnknown_RemoteNext_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #line 1873 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IBindCtx */ /* [unique][uuid][object] */ typedef /* [unique] */ IBindCtx *LPBC; typedef /* [unique] */ IBindCtx *LPBINDCTX; typedef struct tagBIND_OPTS { DWORD cbStruct; DWORD grfFlags; DWORD grfMode; DWORD dwTickCountDeadline; } BIND_OPTS, * LPBIND_OPTS; #line 1904 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct tagBIND_OPTS2 : tagBIND_OPTS { DWORD dwTrackFlags; DWORD dwClassContext; LCID locale; COSERVERINFO * pServerInfo; } BIND_OPTS2, * LPBIND_OPTS2; #line 1928 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct tagBIND_OPTS3 : tagBIND_OPTS2 { HWND hwnd; } BIND_OPTS3, * LPBIND_OPTS3; #line 1949 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef enum tagBIND_FLAGS { BIND_MAYBOTHERUSER = 1, BIND_JUSTTESTEXISTENCE = 2 } BIND_FLAGS; extern "C" const IID IID_IBindCtx; struct __declspec(uuid("0000000e-0000-0000-C000-000000000046")) __declspec(novtable) IBindCtx : public IUnknown { public: virtual HRESULT __stdcall RegisterObjectBound( /* [unique][in] */ IUnknown *punk) = 0; virtual HRESULT __stdcall RevokeObjectBound( /* [unique][in] */ IUnknown *punk) = 0; virtual HRESULT __stdcall ReleaseBoundObjects( void) = 0; virtual /* [local] */ HRESULT __stdcall SetBindOptions( /* [in] */ BIND_OPTS *pbindopts) = 0; virtual /* [local] */ HRESULT __stdcall GetBindOptions( /* [out][in] */ BIND_OPTS *pbindopts) = 0; virtual HRESULT __stdcall GetRunningObjectTable( /* [out] */ IRunningObjectTable **pprot) = 0; virtual HRESULT __stdcall RegisterObjectParam( /* [in] */ LPOLESTR pszKey, /* [unique][in] */ IUnknown *punk) = 0; virtual HRESULT __stdcall GetObjectParam( /* [in] */ LPOLESTR pszKey, /* [out] */ IUnknown **ppunk) = 0; virtual HRESULT __stdcall EnumObjectParam( /* [out] */ IEnumString **ppenum) = 0; virtual HRESULT __stdcall RevokeObjectParam( /* [in] */ LPOLESTR pszKey) = 0; }; #line 2113 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* [call_as] */ HRESULT __stdcall IBindCtx_RemoteSetBindOptions_Proxy( IBindCtx * This, /* [in] */ BIND_OPTS2 *pbindopts); void __stdcall IBindCtx_RemoteSetBindOptions_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [call_as] */ HRESULT __stdcall IBindCtx_RemoteGetBindOptions_Proxy( IBindCtx * This, /* [out][in] */ BIND_OPTS2 *pbindopts); void __stdcall IBindCtx_RemoteGetBindOptions_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #line 2142 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IEnumMoniker */ /* [unique][uuid][object] */ typedef /* [unique] */ IEnumMoniker *LPENUMMONIKER; extern "C" const IID IID_IEnumMoniker; struct __declspec(uuid("00000102-0000-0000-C000-000000000046")) __declspec(novtable) IEnumMoniker : public IUnknown { public: virtual /* [local] */ HRESULT __stdcall Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ IMoniker **rgelt, /* [out] */ ULONG *pceltFetched) = 0; virtual HRESULT __stdcall Skip( /* [in] */ ULONG celt) = 0; virtual HRESULT __stdcall Reset( void) = 0; virtual HRESULT __stdcall Clone( /* [out] */ IEnumMoniker **ppenum) = 0; }; #line 2250 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* [call_as] */ HRESULT __stdcall IEnumMoniker_RemoteNext_Proxy( IEnumMoniker * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ IMoniker **rgelt, /* [out] */ ULONG *pceltFetched); void __stdcall IEnumMoniker_RemoteNext_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #line 2269 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IRunnableObject */ /* [uuid][object] */ typedef /* [unique] */ IRunnableObject *LPRUNNABLEOBJECT; extern "C" const IID IID_IRunnableObject; struct __declspec(uuid("00000126-0000-0000-C000-000000000046")) __declspec(novtable) IRunnableObject : public IUnknown { public: virtual HRESULT __stdcall GetRunningClass( /* [out] */ LPCLSID lpClsid) = 0; virtual HRESULT __stdcall Run( /* [in] */ LPBINDCTX pbc) = 0; virtual /* [local] */ BOOL __stdcall IsRunning( void) = 0; virtual HRESULT __stdcall LockRunning( /* [in] */ BOOL fLock, /* [in] */ BOOL fLastUnlockCloses) = 0; virtual HRESULT __stdcall SetContainedObject( /* [in] */ BOOL fContained) = 0; }; #line 2385 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* [call_as] */ HRESULT __stdcall IRunnableObject_RemoteIsRunning_Proxy( IRunnableObject * This); void __stdcall IRunnableObject_RemoteIsRunning_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #line 2401 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IRunningObjectTable */ /* [uuid][object] */ typedef /* [unique] */ IRunningObjectTable *LPRUNNINGOBJECTTABLE; extern "C" const IID IID_IRunningObjectTable; struct __declspec(uuid("00000010-0000-0000-C000-000000000046")) __declspec(novtable) IRunningObjectTable : public IUnknown { public: virtual HRESULT __stdcall Register( /* [in] */ DWORD grfFlags, /* [unique][in] */ IUnknown *punkObject, /* [unique][in] */ IMoniker *pmkObjectName, /* [out] */ DWORD *pdwRegister) = 0; virtual HRESULT __stdcall Revoke( /* [in] */ DWORD dwRegister) = 0; virtual HRESULT __stdcall IsRunning( /* [unique][in] */ IMoniker *pmkObjectName) = 0; virtual HRESULT __stdcall GetObjectW( /* [unique][in] */ IMoniker *pmkObjectName, /* [out] */ IUnknown **ppunkObject) = 0; virtual HRESULT __stdcall NoteChangeTime( /* [in] */ DWORD dwRegister, /* [in] */ FILETIME *pfiletime) = 0; virtual HRESULT __stdcall GetTimeOfLastChange( /* [unique][in] */ IMoniker *pmkObjectName, /* [out] */ FILETIME *pfiletime) = 0; virtual HRESULT __stdcall EnumRunning( /* [out] */ IEnumMoniker **ppenumMoniker) = 0; }; #line 2549 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 2554 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IPersist */ /* [uuid][object] */ typedef /* [unique] */ IPersist *LPPERSIST; extern "C" const IID IID_IPersist; struct __declspec(uuid("0000010c-0000-0000-C000-000000000046")) __declspec(novtable) IPersist : public IUnknown { public: virtual HRESULT __stdcall GetClassID( /* [out] */ CLSID *pClassID) = 0; }; #line 2630 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 2635 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IPersistStream */ /* [unique][uuid][object] */ typedef /* [unique] */ IPersistStream *LPPERSISTSTREAM; extern "C" const IID IID_IPersistStream; struct __declspec(uuid("00000109-0000-0000-C000-000000000046")) __declspec(novtable) IPersistStream : public IPersist { public: virtual HRESULT __stdcall IsDirty( void) = 0; virtual HRESULT __stdcall Load( /* [unique][in] */ IStream *pStm) = 0; virtual HRESULT __stdcall Save( /* [unique][in] */ IStream *pStm, /* [in] */ BOOL fClearDirty) = 0; virtual HRESULT __stdcall GetSizeMax( /* [out] */ ULARGE_INTEGER *pcbSize) = 0; }; #line 2749 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 2754 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IMoniker */ /* [unique][uuid][object] */ typedef /* [unique] */ IMoniker *LPMONIKER; typedef enum tagMKSYS { MKSYS_NONE = 0, MKSYS_GENERICCOMPOSITE = 1, MKSYS_FILEMONIKER = 2, MKSYS_ANTIMONIKER = 3, MKSYS_ITEMMONIKER = 4, MKSYS_POINTERMONIKER = 5, MKSYS_CLASSMONIKER = 7, MKSYS_OBJREFMONIKER = 8, MKSYS_SESSIONMONIKER = 9, MKSYS_LUAMONIKER = 10 } MKSYS; typedef /* [v1_enum] */ enum tagMKREDUCE { MKRREDUCE_ONE = ( 3 << 16 ) , MKRREDUCE_TOUSER = ( 2 << 16 ) , MKRREDUCE_THROUGHUSER = ( 1 << 16 ) , MKRREDUCE_ALL = 0 } MKRREDUCE; extern "C" const IID IID_IMoniker; struct __declspec(uuid("0000000f-0000-0000-C000-000000000046")) __declspec(novtable) IMoniker : public IPersistStream { public: virtual /* [local] */ HRESULT __stdcall BindToObject( /* [unique][in] */ IBindCtx *pbc, /* [unique][in] */ IMoniker *pmkToLeft, /* [in] */ const IID & riidResult, /* [iid_is][out] */ void **ppvResult) = 0; virtual /* [local] */ HRESULT __stdcall BindToStorage( /* [unique][in] */ IBindCtx *pbc, /* [unique][in] */ IMoniker *pmkToLeft, /* [in] */ const IID & riid, /* [iid_is][out] */ void **ppvObj) = 0; virtual HRESULT __stdcall Reduce( /* [unique][in] */ IBindCtx *pbc, /* [in] */ DWORD dwReduceHowFar, /* [unique][out][in] */ IMoniker **ppmkToLeft, /* [out] */ IMoniker **ppmkReduced) = 0; virtual HRESULT __stdcall ComposeWith( /* [unique][in] */ IMoniker *pmkRight, /* [in] */ BOOL fOnlyIfNotGeneric, /* [out] */ IMoniker **ppmkComposite) = 0; virtual HRESULT __stdcall Enum( /* [in] */ BOOL fForward, /* [out] */ IEnumMoniker **ppenumMoniker) = 0; virtual HRESULT __stdcall IsEqual( /* [unique][in] */ IMoniker *pmkOtherMoniker) = 0; virtual HRESULT __stdcall Hash( /* [out] */ DWORD *pdwHash) = 0; virtual HRESULT __stdcall IsRunning( /* [unique][in] */ IBindCtx *pbc, /* [unique][in] */ IMoniker *pmkToLeft, /* [unique][in] */ IMoniker *pmkNewlyRunning) = 0; virtual HRESULT __stdcall GetTimeOfLastChange( /* [unique][in] */ IBindCtx *pbc, /* [unique][in] */ IMoniker *pmkToLeft, /* [out] */ FILETIME *pFileTime) = 0; virtual HRESULT __stdcall Inverse( /* [out] */ IMoniker **ppmk) = 0; virtual HRESULT __stdcall CommonPrefixWith( /* [unique][in] */ IMoniker *pmkOther, /* [out] */ IMoniker **ppmkPrefix) = 0; virtual HRESULT __stdcall RelativePathTo( /* [unique][in] */ IMoniker *pmkOther, /* [out] */ IMoniker **ppmkRelPath) = 0; virtual HRESULT __stdcall GetDisplayName( /* [unique][in] */ IBindCtx *pbc, /* [unique][in] */ IMoniker *pmkToLeft, /* [out] */ LPOLESTR *ppszDisplayName) = 0; virtual HRESULT __stdcall ParseDisplayName( /* [unique][in] */ IBindCtx *pbc, /* [unique][in] */ IMoniker *pmkToLeft, /* [in] */ LPOLESTR pszDisplayName, /* [out] */ ULONG *pchEaten, /* [out] */ IMoniker **ppmkOut) = 0; virtual HRESULT __stdcall IsSystemMoniker( /* [out] */ DWORD *pdwMksys) = 0; }; #line 3077 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* [call_as] */ HRESULT __stdcall IMoniker_RemoteBindToObject_Proxy( IMoniker * This, /* [unique][in] */ IBindCtx *pbc, /* [unique][in] */ IMoniker *pmkToLeft, /* [in] */ const IID & riidResult, /* [iid_is][out] */ IUnknown **ppvResult); void __stdcall IMoniker_RemoteBindToObject_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [call_as] */ HRESULT __stdcall IMoniker_RemoteBindToStorage_Proxy( IMoniker * This, /* [unique][in] */ IBindCtx *pbc, /* [unique][in] */ IMoniker *pmkToLeft, /* [in] */ const IID & riid, /* [iid_is][out] */ IUnknown **ppvObj); void __stdcall IMoniker_RemoteBindToStorage_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #line 3112 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IROTData */ /* [unique][uuid][object] */ extern "C" const IID IID_IROTData; struct __declspec(uuid("f29f6bc0-5021-11ce-aa15-00006901293f")) __declspec(novtable) IROTData : public IUnknown { public: virtual HRESULT __stdcall GetComparisonData( /* [size_is][out] */ byte *pbData, /* [in] */ ULONG cbMax, /* [out] */ ULONG *pcbData) = 0; }; #line 3190 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 3195 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IEnumString */ /* [unique][uuid][object] */ typedef /* [unique] */ IEnumString *LPENUMSTRING; extern "C" const IID IID_IEnumString; struct __declspec(uuid("00000101-0000-0000-C000-000000000046")) __declspec(novtable) IEnumString : public IUnknown { public: virtual /* [local] */ HRESULT __stdcall Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ LPOLESTR *rgelt, /* [out] */ ULONG *pceltFetched) = 0; virtual HRESULT __stdcall Skip( /* [in] */ ULONG celt) = 0; virtual HRESULT __stdcall Reset( void) = 0; virtual HRESULT __stdcall Clone( /* [out] */ IEnumString **ppenum) = 0; }; #line 3305 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* [call_as] */ HRESULT __stdcall IEnumString_RemoteNext_Proxy( IEnumString * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ LPOLESTR *rgelt, /* [out] */ ULONG *pceltFetched); void __stdcall IEnumString_RemoteNext_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #line 3324 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface ISequentialStream */ /* [unique][uuid][object] */ extern "C" const IID IID_ISequentialStream; struct __declspec(uuid("0c733a30-2a1c-11ce-ade5-00aa0044773d")) __declspec(novtable) ISequentialStream : public IUnknown { public: virtual /* [local] */ HRESULT __stdcall Read( /* [length_is][size_is][out] */ void *pv, /* [in] */ ULONG cb, /* [out] */ ULONG *pcbRead) = 0; virtual /* [local] */ HRESULT __stdcall Write( /* [size_is][in] */ const void *pv, /* [in] */ ULONG cb, /* [out] */ ULONG *pcbWritten) = 0; }; #line 3416 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* [call_as] */ HRESULT __stdcall ISequentialStream_RemoteRead_Proxy( ISequentialStream * This, /* [length_is][size_is][out] */ byte *pv, /* [in] */ ULONG cb, /* [out] */ ULONG *pcbRead); void __stdcall ISequentialStream_RemoteRead_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [call_as] */ HRESULT __stdcall ISequentialStream_RemoteWrite_Proxy( ISequentialStream * This, /* [size_is][in] */ const byte *pv, /* [in] */ ULONG cb, /* [out] */ ULONG *pcbWritten); void __stdcall ISequentialStream_RemoteWrite_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #line 3449 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IStream */ /* [unique][uuid][object] */ typedef /* [unique] */ IStream *LPSTREAM; //FSSpec is Macintosh only, defined in macos\files.h typedef struct tagSTATSTG { LPOLESTR pwcsName; DWORD type; ULARGE_INTEGER cbSize; FILETIME mtime; FILETIME ctime; FILETIME atime; DWORD grfMode; DWORD grfLocksSupported; CLSID clsid; DWORD grfStateBits; DWORD reserved; } STATSTG; #line 3493 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef enum tagSTGTY { STGTY_STORAGE = 1, STGTY_STREAM = 2, STGTY_LOCKBYTES = 3, STGTY_PROPERTY = 4 } STGTY; typedef enum tagSTREAM_SEEK { STREAM_SEEK_SET = 0, STREAM_SEEK_CUR = 1, STREAM_SEEK_END = 2 } STREAM_SEEK; typedef enum tagLOCKTYPE { LOCK_WRITE = 1, LOCK_EXCLUSIVE = 2, LOCK_ONLYONCE = 4 } LOCKTYPE; extern "C" const IID IID_IStream; struct __declspec(uuid("0000000c-0000-0000-C000-000000000046")) __declspec(novtable) IStream : public ISequentialStream { public: virtual /* [local] */ HRESULT __stdcall Seek( /* [in] */ LARGE_INTEGER dlibMove, /* [in] */ DWORD dwOrigin, /* [out] */ ULARGE_INTEGER *plibNewPosition) = 0; virtual HRESULT __stdcall SetSize( /* [in] */ ULARGE_INTEGER libNewSize) = 0; virtual /* [local] */ HRESULT __stdcall CopyTo( /* [unique][in] */ IStream *pstm, /* [in] */ ULARGE_INTEGER cb, /* [out] */ ULARGE_INTEGER *pcbRead, /* [out] */ ULARGE_INTEGER *pcbWritten) = 0; virtual HRESULT __stdcall Commit( /* [in] */ DWORD grfCommitFlags) = 0; virtual HRESULT __stdcall Revert( void) = 0; virtual HRESULT __stdcall LockRegion( /* [in] */ ULARGE_INTEGER libOffset, /* [in] */ ULARGE_INTEGER cb, /* [in] */ DWORD dwLockType) = 0; virtual HRESULT __stdcall UnlockRegion( /* [in] */ ULARGE_INTEGER libOffset, /* [in] */ ULARGE_INTEGER cb, /* [in] */ DWORD dwLockType) = 0; virtual HRESULT __stdcall Stat( /* [out] */ STATSTG *pstatstg, /* [in] */ DWORD grfStatFlag) = 0; virtual HRESULT __stdcall Clone( /* [out] */ IStream **ppstm) = 0; }; #line 3698 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* [call_as] */ HRESULT __stdcall IStream_RemoteSeek_Proxy( IStream * This, /* [in] */ LARGE_INTEGER dlibMove, /* [in] */ DWORD dwOrigin, /* [out] */ ULARGE_INTEGER *plibNewPosition); void __stdcall IStream_RemoteSeek_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [call_as] */ HRESULT __stdcall IStream_RemoteCopyTo_Proxy( IStream * This, /* [unique][in] */ IStream *pstm, /* [in] */ ULARGE_INTEGER cb, /* [out] */ ULARGE_INTEGER *pcbRead, /* [out] */ ULARGE_INTEGER *pcbWritten); void __stdcall IStream_RemoteCopyTo_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #line 3732 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IEnumSTATSTG */ /* [unique][uuid][object] */ typedef /* [unique] */ IEnumSTATSTG *LPENUMSTATSTG; extern "C" const IID IID_IEnumSTATSTG; struct __declspec(uuid("0000000d-0000-0000-C000-000000000046")) __declspec(novtable) IEnumSTATSTG : public IUnknown { public: virtual /* [local] */ HRESULT __stdcall Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ STATSTG *rgelt, /* [out] */ ULONG *pceltFetched) = 0; virtual HRESULT __stdcall Skip( /* [in] */ ULONG celt) = 0; virtual HRESULT __stdcall Reset( void) = 0; virtual HRESULT __stdcall Clone( /* [out] */ IEnumSTATSTG **ppenum) = 0; }; #line 3840 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* [call_as] */ HRESULT __stdcall IEnumSTATSTG_RemoteNext_Proxy( IEnumSTATSTG * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ STATSTG *rgelt, /* [out] */ ULONG *pceltFetched); void __stdcall IEnumSTATSTG_RemoteNext_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #line 3859 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IStorage */ /* [unique][uuid][object] */ typedef /* [unique] */ IStorage *LPSTORAGE; typedef struct tagRemSNB { unsigned long ulCntStr; unsigned long ulCntChar; OLECHAR rgString[ 1 ]; } RemSNB; typedef /* [unique] */ RemSNB *wireSNB; typedef /* [wire_marshal] */ OLECHAR **SNB; extern "C" const IID IID_IStorage; struct __declspec(uuid("0000000b-0000-0000-C000-000000000046")) __declspec(novtable) IStorage : public IUnknown { public: virtual HRESULT __stdcall CreateStream( /* [string][in] */ const OLECHAR *pwcsName, /* [in] */ DWORD grfMode, /* [in] */ DWORD reserved1, /* [in] */ DWORD reserved2, /* [out] */ IStream **ppstm) = 0; virtual /* [local] */ HRESULT __stdcall OpenStream( /* [string][in] */ const OLECHAR *pwcsName, /* [unique][in] */ void *reserved1, /* [in] */ DWORD grfMode, /* [in] */ DWORD reserved2, /* [out] */ IStream **ppstm) = 0; virtual HRESULT __stdcall CreateStorage( /* [string][in] */ const OLECHAR *pwcsName, /* [in] */ DWORD grfMode, /* [in] */ DWORD reserved1, /* [in] */ DWORD reserved2, /* [out] */ IStorage **ppstg) = 0; virtual HRESULT __stdcall OpenStorage( /* [string][unique][in] */ const OLECHAR *pwcsName, /* [unique][in] */ IStorage *pstgPriority, /* [in] */ DWORD grfMode, /* [unique][in] */ SNB snbExclude, /* [in] */ DWORD reserved, /* [out] */ IStorage **ppstg) = 0; virtual /* [local] */ HRESULT __stdcall CopyTo( /* [in] */ DWORD ciidExclude, /* [size_is][unique][in] */ const IID *rgiidExclude, /* [unique][in] */ SNB snbExclude, /* [unique][in] */ IStorage *pstgDest) = 0; virtual HRESULT __stdcall MoveElementTo( /* [string][in] */ const OLECHAR *pwcsName, /* [unique][in] */ IStorage *pstgDest, /* [string][in] */ const OLECHAR *pwcsNewName, /* [in] */ DWORD grfFlags) = 0; virtual HRESULT __stdcall Commit( /* [in] */ DWORD grfCommitFlags) = 0; virtual HRESULT __stdcall Revert( void) = 0; virtual /* [local] */ HRESULT __stdcall EnumElements( /* [in] */ DWORD reserved1, /* [size_is][unique][in] */ void *reserved2, /* [in] */ DWORD reserved3, /* [out] */ IEnumSTATSTG **ppenum) = 0; virtual HRESULT __stdcall DestroyElement( /* [string][in] */ const OLECHAR *pwcsName) = 0; virtual HRESULT __stdcall RenameElement( /* [string][in] */ const OLECHAR *pwcsOldName, /* [string][in] */ const OLECHAR *pwcsNewName) = 0; virtual HRESULT __stdcall SetElementTimes( /* [string][unique][in] */ const OLECHAR *pwcsName, /* [unique][in] */ const FILETIME *pctime, /* [unique][in] */ const FILETIME *patime, /* [unique][in] */ const FILETIME *pmtime) = 0; virtual HRESULT __stdcall SetClass( /* [in] */ const IID & clsid) = 0; virtual HRESULT __stdcall SetStateBits( /* [in] */ DWORD grfStateBits, /* [in] */ DWORD grfMask) = 0; virtual HRESULT __stdcall Stat( /* [out] */ STATSTG *pstatstg, /* [in] */ DWORD grfStatFlag) = 0; }; #line 4148 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* [call_as] */ HRESULT __stdcall IStorage_RemoteOpenStream_Proxy( IStorage * This, /* [string][in] */ const OLECHAR *pwcsName, /* [in] */ unsigned long cbReserved1, /* [size_is][unique][in] */ byte *reserved1, /* [in] */ DWORD grfMode, /* [in] */ DWORD reserved2, /* [out] */ IStream **ppstm); void __stdcall IStorage_RemoteOpenStream_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [call_as] */ HRESULT __stdcall IStorage_RemoteCopyTo_Proxy( IStorage * This, /* [in] */ DWORD ciidExclude, /* [size_is][unique][in] */ const IID *rgiidExclude, /* [unique][in] */ SNB snbExclude, /* [unique][in] */ IStorage *pstgDest); void __stdcall IStorage_RemoteCopyTo_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [call_as] */ HRESULT __stdcall IStorage_RemoteEnumElements_Proxy( IStorage * This, /* [in] */ DWORD reserved1, /* [in] */ unsigned long cbReserved2, /* [size_is][unique][in] */ byte *reserved2, /* [in] */ DWORD reserved3, /* [out] */ IEnumSTATSTG **ppenum); void __stdcall IStorage_RemoteEnumElements_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #line 4201 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IPersistFile */ /* [unique][uuid][object] */ typedef /* [unique] */ IPersistFile *LPPERSISTFILE; extern "C" const IID IID_IPersistFile; struct __declspec(uuid("0000010b-0000-0000-C000-000000000046")) __declspec(novtable) IPersistFile : public IPersist { public: virtual HRESULT __stdcall IsDirty( void) = 0; virtual HRESULT __stdcall Load( /* [in] */ LPCOLESTR pszFileName, /* [in] */ DWORD dwMode) = 0; virtual HRESULT __stdcall Save( /* [unique][in] */ LPCOLESTR pszFileName, /* [in] */ BOOL fRemember) = 0; virtual HRESULT __stdcall SaveCompleted( /* [unique][in] */ LPCOLESTR pszFileName) = 0; virtual HRESULT __stdcall GetCurFile( /* [out] */ LPOLESTR *ppszFileName) = 0; }; #line 4327 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 4332 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IPersistStorage */ /* [unique][uuid][object] */ typedef /* [unique] */ IPersistStorage *LPPERSISTSTORAGE; extern "C" const IID IID_IPersistStorage; struct __declspec(uuid("0000010a-0000-0000-C000-000000000046")) __declspec(novtable) IPersistStorage : public IPersist { public: virtual HRESULT __stdcall IsDirty( void) = 0; virtual HRESULT __stdcall InitNew( /* [unique][in] */ IStorage *pStg) = 0; virtual HRESULT __stdcall Load( /* [unique][in] */ IStorage *pStg) = 0; virtual HRESULT __stdcall Save( /* [unique][in] */ IStorage *pStgSave, /* [in] */ BOOL fSameAsLoad) = 0; virtual HRESULT __stdcall SaveCompleted( /* [unique][in] */ IStorage *pStgNew) = 0; virtual HRESULT __stdcall HandsOffStorage( void) = 0; }; #line 4464 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 4469 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface ILockBytes */ /* [unique][uuid][object] */ typedef /* [unique] */ ILockBytes *LPLOCKBYTES; extern "C" const IID IID_ILockBytes; struct __declspec(uuid("0000000a-0000-0000-C000-000000000046")) __declspec(novtable) ILockBytes : public IUnknown { public: virtual /* [local] */ HRESULT __stdcall ReadAt( /* [in] */ ULARGE_INTEGER ulOffset, /* [length_is][size_is][out] */ void *pv, /* [in] */ ULONG cb, /* [out] */ ULONG *pcbRead) = 0; virtual /* [local] */ HRESULT __stdcall WriteAt( /* [in] */ ULARGE_INTEGER ulOffset, /* [size_is][in] */ const void *pv, /* [in] */ ULONG cb, /* [out] */ ULONG *pcbWritten) = 0; virtual HRESULT __stdcall Flush( void) = 0; virtual HRESULT __stdcall SetSize( /* [in] */ ULARGE_INTEGER cb) = 0; virtual HRESULT __stdcall LockRegion( /* [in] */ ULARGE_INTEGER libOffset, /* [in] */ ULARGE_INTEGER cb, /* [in] */ DWORD dwLockType) = 0; virtual HRESULT __stdcall UnlockRegion( /* [in] */ ULARGE_INTEGER libOffset, /* [in] */ ULARGE_INTEGER cb, /* [in] */ DWORD dwLockType) = 0; virtual HRESULT __stdcall Stat( /* [out] */ STATSTG *pstatstg, /* [in] */ DWORD grfStatFlag) = 0; }; #line 4625 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* [call_as] */ HRESULT __stdcall ILockBytes_RemoteReadAt_Proxy( ILockBytes * This, /* [in] */ ULARGE_INTEGER ulOffset, /* [length_is][size_is][out] */ byte *pv, /* [in] */ ULONG cb, /* [out] */ ULONG *pcbRead); void __stdcall ILockBytes_RemoteReadAt_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [call_as] */ HRESULT __stdcall ILockBytes_RemoteWriteAt_Proxy( ILockBytes * This, /* [in] */ ULARGE_INTEGER ulOffset, /* [size_is][in] */ const byte *pv, /* [in] */ ULONG cb, /* [out] */ ULONG *pcbWritten); void __stdcall ILockBytes_RemoteWriteAt_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #line 4660 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IEnumFORMATETC */ /* [unique][uuid][object] */ typedef /* [unique] */ IEnumFORMATETC *LPENUMFORMATETC; typedef struct tagDVTARGETDEVICE { DWORD tdSize; WORD tdDriverNameOffset; WORD tdDeviceNameOffset; WORD tdPortNameOffset; WORD tdExtDevmodeOffset; BYTE tdData[ 1 ]; } DVTARGETDEVICE; typedef CLIPFORMAT *LPCLIPFORMAT; typedef struct tagFORMATETC { CLIPFORMAT cfFormat; DVTARGETDEVICE *ptd; DWORD dwAspect; LONG lindex; DWORD tymed; } FORMATETC; typedef struct tagFORMATETC *LPFORMATETC; extern "C" const IID IID_IEnumFORMATETC; struct __declspec(uuid("00000103-0000-0000-C000-000000000046")) __declspec(novtable) IEnumFORMATETC : public IUnknown { public: virtual /* [local] */ HRESULT __stdcall Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ FORMATETC *rgelt, /* [out] */ ULONG *pceltFetched) = 0; virtual HRESULT __stdcall Skip( /* [in] */ ULONG celt) = 0; virtual HRESULT __stdcall Reset( void) = 0; virtual HRESULT __stdcall Clone( /* [out] */ IEnumFORMATETC **ppenum) = 0; }; #line 4793 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* [call_as] */ HRESULT __stdcall IEnumFORMATETC_RemoteNext_Proxy( IEnumFORMATETC * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ FORMATETC *rgelt, /* [out] */ ULONG *pceltFetched); void __stdcall IEnumFORMATETC_RemoteNext_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #line 4812 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IEnumSTATDATA */ /* [unique][uuid][object] */ typedef /* [unique] */ IEnumSTATDATA *LPENUMSTATDATA; typedef enum tagADVF { ADVF_NODATA = 1, ADVF_PRIMEFIRST = 2, ADVF_ONLYONCE = 4, ADVF_DATAONSTOP = 64, ADVFCACHE_NOHANDLER = 8, ADVFCACHE_FORCEBUILTIN = 16, ADVFCACHE_ONSAVE = 32 } ADVF; typedef struct tagSTATDATA { FORMATETC formatetc; DWORD advf; IAdviseSink *pAdvSink; DWORD dwConnection; } STATDATA; typedef STATDATA *LPSTATDATA; extern "C" const IID IID_IEnumSTATDATA; struct __declspec(uuid("00000105-0000-0000-C000-000000000046")) __declspec(novtable) IEnumSTATDATA : public IUnknown { public: virtual /* [local] */ HRESULT __stdcall Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ STATDATA *rgelt, /* [out] */ ULONG *pceltFetched) = 0; virtual HRESULT __stdcall Skip( /* [in] */ ULONG celt) = 0; virtual HRESULT __stdcall Reset( void) = 0; virtual HRESULT __stdcall Clone( /* [out] */ IEnumSTATDATA **ppenum) = 0; }; #line 4941 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* [call_as] */ HRESULT __stdcall IEnumSTATDATA_RemoteNext_Proxy( IEnumSTATDATA * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ STATDATA *rgelt, /* [out] */ ULONG *pceltFetched); void __stdcall IEnumSTATDATA_RemoteNext_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #line 4960 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IRootStorage */ /* [unique][uuid][object] */ typedef /* [unique] */ IRootStorage *LPROOTSTORAGE; extern "C" const IID IID_IRootStorage; struct __declspec(uuid("00000012-0000-0000-C000-000000000046")) __declspec(novtable) IRootStorage : public IUnknown { public: virtual HRESULT __stdcall SwitchToFile( /* [in] */ LPOLESTR pszFile) = 0; }; #line 5036 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 5041 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IAdviseSink */ /* [unique][async_uuid][uuid][object] */ typedef IAdviseSink *LPADVISESINK; typedef /* [v1_enum] */ enum tagTYMED { TYMED_HGLOBAL = 1, TYMED_FILE = 2, TYMED_ISTREAM = 4, TYMED_ISTORAGE = 8, TYMED_GDI = 16, TYMED_MFPICT = 32, TYMED_ENHMF = 64, TYMED_NULL = 0 } TYMED; #pragma warning(push) #line 5067 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #pragma warning(disable:4200) #line 5069 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct tagRemSTGMEDIUM { DWORD tymed; DWORD dwHandleType; unsigned long pData; unsigned long pUnkForRelease; unsigned long cbData; byte data[ 1 ]; } RemSTGMEDIUM; #pragma warning(pop) #line 5085 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 5086 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct tagSTGMEDIUM { DWORD tymed; union { HBITMAP hBitmap; HMETAFILEPICT hMetaFilePict; HENHMETAFILE hEnhMetaFile; HGLOBAL hGlobal; LPOLESTR lpszFileName; IStream *pstm; IStorage *pstg; /* Empty union arm */ } ; IUnknown *pUnkForRelease; } uSTGMEDIUM; #line 5119 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef struct _GDI_OBJECT { DWORD ObjectType; /* [switch_type] */ union __MIDL_IAdviseSink_0002 { wireHBITMAP hBitmap; wireHPALETTE hPalette; wireHGLOBAL hGeneric; } u; } GDI_OBJECT; typedef struct _userSTGMEDIUM { struct _STGMEDIUM_UNION { DWORD tymed; /* [switch_type] */ union __MIDL_IAdviseSink_0003 { /* Empty union arm */ wireHMETAFILEPICT hMetaFilePict; wireHENHMETAFILE hHEnhMetaFile; GDI_OBJECT *hGdiHandle; wireHGLOBAL hGlobal; LPOLESTR lpszFileName; BYTE_BLOB *pstm; BYTE_BLOB *pstg; } u; } ; IUnknown *pUnkForRelease; } userSTGMEDIUM; typedef /* [unique] */ userSTGMEDIUM *wireSTGMEDIUM; typedef /* [wire_marshal] */ uSTGMEDIUM STGMEDIUM; typedef /* [unique] */ userSTGMEDIUM *wireASYNC_STGMEDIUM; typedef /* [wire_marshal] */ STGMEDIUM ASYNC_STGMEDIUM; typedef STGMEDIUM *LPSTGMEDIUM; typedef struct _userFLAG_STGMEDIUM { long ContextFlags; long fPassOwnership; userSTGMEDIUM Stgmed; } userFLAG_STGMEDIUM; typedef /* [unique] */ userFLAG_STGMEDIUM *wireFLAG_STGMEDIUM; typedef /* [wire_marshal] */ struct _FLAG_STGMEDIUM { long ContextFlags; long fPassOwnership; STGMEDIUM Stgmed; } FLAG_STGMEDIUM; extern "C" const IID IID_IAdviseSink; struct __declspec(uuid("0000010f-0000-0000-C000-000000000046")) __declspec(novtable) IAdviseSink : public IUnknown { public: virtual /* [local] */ void __stdcall OnDataChange( /* [unique][in] */ FORMATETC *pFormatetc, /* [unique][in] */ STGMEDIUM *pStgmed) = 0; virtual /* [local] */ void __stdcall OnViewChange( /* [in] */ DWORD dwAspect, /* [in] */ LONG lindex) = 0; virtual /* [local] */ void __stdcall OnRename( /* [in] */ IMoniker *pmk) = 0; virtual /* [local] */ void __stdcall OnSave( void) = 0; virtual /* [local] */ void __stdcall OnClose( void) = 0; }; #line 5282 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* [call_as] */ HRESULT __stdcall IAdviseSink_RemoteOnDataChange_Proxy( IAdviseSink * This, /* [unique][in] */ FORMATETC *pFormatetc, /* [unique][in] */ ASYNC_STGMEDIUM *pStgmed); void __stdcall IAdviseSink_RemoteOnDataChange_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [call_as] */ HRESULT __stdcall IAdviseSink_RemoteOnViewChange_Proxy( IAdviseSink * This, /* [in] */ DWORD dwAspect, /* [in] */ LONG lindex); void __stdcall IAdviseSink_RemoteOnViewChange_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [call_as] */ HRESULT __stdcall IAdviseSink_RemoteOnRename_Proxy( IAdviseSink * This, /* [in] */ IMoniker *pmk); void __stdcall IAdviseSink_RemoteOnRename_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [call_as] */ HRESULT __stdcall IAdviseSink_RemoteOnSave_Proxy( IAdviseSink * This); void __stdcall IAdviseSink_RemoteOnSave_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [call_as] */ HRESULT __stdcall IAdviseSink_RemoteOnClose_Proxy( IAdviseSink * This); void __stdcall IAdviseSink_RemoteOnClose_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #line 5347 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface AsyncIAdviseSink */ /* [uuid][unique][object] */ extern "C" const IID IID_AsyncIAdviseSink; struct __declspec(uuid("00000150-0000-0000-C000-000000000046")) __declspec(novtable) AsyncIAdviseSink : public IUnknown { public: virtual /* [local] */ void __stdcall Begin_OnDataChange( /* [unique][in] */ FORMATETC *pFormatetc, /* [unique][in] */ STGMEDIUM *pStgmed) = 0; virtual /* [local] */ void __stdcall Finish_OnDataChange( void) = 0; virtual /* [local] */ void __stdcall Begin_OnViewChange( /* [in] */ DWORD dwAspect, /* [in] */ LONG lindex) = 0; virtual /* [local] */ void __stdcall Finish_OnViewChange( void) = 0; virtual /* [local] */ void __stdcall Begin_OnRename( /* [in] */ IMoniker *pmk) = 0; virtual /* [local] */ void __stdcall Finish_OnRename( void) = 0; virtual /* [local] */ void __stdcall Begin_OnSave( void) = 0; virtual /* [local] */ void __stdcall Finish_OnSave( void) = 0; virtual /* [local] */ void __stdcall Begin_OnClose( void) = 0; virtual /* [local] */ void __stdcall Finish_OnClose( void) = 0; }; #line 5501 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* [call_as] */ HRESULT __stdcall AsyncIAdviseSink_Begin_RemoteOnDataChange_Proxy( AsyncIAdviseSink * This, /* [unique][in] */ FORMATETC *pFormatetc, /* [unique][in] */ ASYNC_STGMEDIUM *pStgmed); void __stdcall AsyncIAdviseSink_Begin_RemoteOnDataChange_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [call_as] */ HRESULT __stdcall AsyncIAdviseSink_Finish_RemoteOnDataChange_Proxy( AsyncIAdviseSink * This); void __stdcall AsyncIAdviseSink_Finish_RemoteOnDataChange_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [call_as] */ HRESULT __stdcall AsyncIAdviseSink_Begin_RemoteOnViewChange_Proxy( AsyncIAdviseSink * This, /* [in] */ DWORD dwAspect, /* [in] */ LONG lindex); void __stdcall AsyncIAdviseSink_Begin_RemoteOnViewChange_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [call_as] */ HRESULT __stdcall AsyncIAdviseSink_Finish_RemoteOnViewChange_Proxy( AsyncIAdviseSink * This); void __stdcall AsyncIAdviseSink_Finish_RemoteOnViewChange_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [call_as] */ HRESULT __stdcall AsyncIAdviseSink_Begin_RemoteOnRename_Proxy( AsyncIAdviseSink * This, /* [in] */ IMoniker *pmk); void __stdcall AsyncIAdviseSink_Begin_RemoteOnRename_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [call_as] */ HRESULT __stdcall AsyncIAdviseSink_Finish_RemoteOnRename_Proxy( AsyncIAdviseSink * This); void __stdcall AsyncIAdviseSink_Finish_RemoteOnRename_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [call_as] */ HRESULT __stdcall AsyncIAdviseSink_Begin_RemoteOnSave_Proxy( AsyncIAdviseSink * This); void __stdcall AsyncIAdviseSink_Begin_RemoteOnSave_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [call_as] */ HRESULT __stdcall AsyncIAdviseSink_Finish_RemoteOnSave_Proxy( AsyncIAdviseSink * This); void __stdcall AsyncIAdviseSink_Finish_RemoteOnSave_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [call_as] */ HRESULT __stdcall AsyncIAdviseSink_Begin_RemoteOnClose_Proxy( AsyncIAdviseSink * This); void __stdcall AsyncIAdviseSink_Begin_RemoteOnClose_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [call_as] */ HRESULT __stdcall AsyncIAdviseSink_Finish_RemoteOnClose_Proxy( AsyncIAdviseSink * This); void __stdcall AsyncIAdviseSink_Finish_RemoteOnClose_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #line 5621 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IAdviseSink2 */ /* [unique][async_uuid][uuid][object] */ typedef /* [unique] */ IAdviseSink2 *LPADVISESINK2; extern "C" const IID IID_IAdviseSink2; struct __declspec(uuid("00000125-0000-0000-C000-000000000046")) __declspec(novtable) IAdviseSink2 : public IAdviseSink { public: virtual /* [local] */ void __stdcall OnLinkSrcChange( /* [unique][in] */ IMoniker *pmk) = 0; }; #line 5733 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* [call_as] */ HRESULT __stdcall IAdviseSink2_RemoteOnLinkSrcChange_Proxy( IAdviseSink2 * This, /* [unique][in] */ IMoniker *pmk); void __stdcall IAdviseSink2_RemoteOnLinkSrcChange_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #line 5750 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface AsyncIAdviseSink2 */ /* [uuid][unique][object] */ extern "C" const IID IID_AsyncIAdviseSink2; struct __declspec(uuid("00000151-0000-0000-C000-000000000046")) __declspec(novtable) AsyncIAdviseSink2 : public AsyncIAdviseSink { public: virtual /* [local] */ void __stdcall Begin_OnLinkSrcChange( /* [unique][in] */ IMoniker *pmk) = 0; virtual /* [local] */ void __stdcall Finish_OnLinkSrcChange( void) = 0; }; #line 5898 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* [call_as] */ HRESULT __stdcall AsyncIAdviseSink2_Begin_RemoteOnLinkSrcChange_Proxy( AsyncIAdviseSink2 * This, /* [unique][in] */ IMoniker *pmk); void __stdcall AsyncIAdviseSink2_Begin_RemoteOnLinkSrcChange_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [call_as] */ HRESULT __stdcall AsyncIAdviseSink2_Finish_RemoteOnLinkSrcChange_Proxy( AsyncIAdviseSink2 * This); void __stdcall AsyncIAdviseSink2_Finish_RemoteOnLinkSrcChange_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #line 5926 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IDataObject */ /* [unique][uuid][object] */ typedef /* [unique] */ IDataObject *LPDATAOBJECT; typedef enum tagDATADIR { DATADIR_GET = 1, DATADIR_SET = 2 } DATADIR; extern "C" const IID IID_IDataObject; struct __declspec(uuid("0000010e-0000-0000-C000-000000000046")) __declspec(novtable) IDataObject : public IUnknown { public: virtual /* [local] */ HRESULT __stdcall GetData( /* [unique][in] */ FORMATETC *pformatetcIn, /* [out] */ STGMEDIUM *pmedium) = 0; virtual /* [local] */ HRESULT __stdcall GetDataHere( /* [unique][in] */ FORMATETC *pformatetc, /* [out][in] */ STGMEDIUM *pmedium) = 0; virtual HRESULT __stdcall QueryGetData( /* [unique][in] */ FORMATETC *pformatetc) = 0; virtual HRESULT __stdcall GetCanonicalFormatEtc( /* [unique][in] */ FORMATETC *pformatectIn, /* [out] */ FORMATETC *pformatetcOut) = 0; virtual /* [local] */ HRESULT __stdcall SetData( /* [unique][in] */ FORMATETC *pformatetc, /* [unique][in] */ STGMEDIUM *pmedium, /* [in] */ BOOL fRelease) = 0; virtual HRESULT __stdcall EnumFormatEtc( /* [in] */ DWORD dwDirection, /* [out] */ IEnumFORMATETC **ppenumFormatEtc) = 0; virtual HRESULT __stdcall DAdvise( /* [in] */ FORMATETC *pformatetc, /* [in] */ DWORD advf, /* [unique][in] */ IAdviseSink *pAdvSink, /* [out] */ DWORD *pdwConnection) = 0; virtual HRESULT __stdcall DUnadvise( /* [in] */ DWORD dwConnection) = 0; virtual HRESULT __stdcall EnumDAdvise( /* [out] */ IEnumSTATDATA **ppenumAdvise) = 0; }; #line 6106 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* [call_as] */ HRESULT __stdcall IDataObject_RemoteGetData_Proxy( IDataObject * This, /* [unique][in] */ FORMATETC *pformatetcIn, /* [out] */ STGMEDIUM *pRemoteMedium); void __stdcall IDataObject_RemoteGetData_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [call_as] */ HRESULT __stdcall IDataObject_RemoteGetDataHere_Proxy( IDataObject * This, /* [unique][in] */ FORMATETC *pformatetc, /* [out][in] */ STGMEDIUM *pRemoteMedium); void __stdcall IDataObject_RemoteGetDataHere_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [call_as] */ HRESULT __stdcall IDataObject_RemoteSetData_Proxy( IDataObject * This, /* [unique][in] */ FORMATETC *pformatetc, /* [unique][in] */ FLAG_STGMEDIUM *pmedium, /* [in] */ BOOL fRelease); void __stdcall IDataObject_RemoteSetData_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #line 6151 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IDataAdviseHolder */ /* [uuid][object][local] */ typedef /* [unique] */ IDataAdviseHolder *LPDATAADVISEHOLDER; extern "C" const IID IID_IDataAdviseHolder; struct __declspec(uuid("00000110-0000-0000-C000-000000000046")) __declspec(novtable) IDataAdviseHolder : public IUnknown { public: virtual HRESULT __stdcall Advise( /* [unique][in] */ IDataObject *pDataObject, /* [unique][in] */ FORMATETC *pFetc, /* [in] */ DWORD advf, /* [unique][in] */ IAdviseSink *pAdvise, /* [out] */ DWORD *pdwConnection) = 0; virtual HRESULT __stdcall Unadvise( /* [in] */ DWORD dwConnection) = 0; virtual HRESULT __stdcall EnumAdvise( /* [out] */ IEnumSTATDATA **ppenumAdvise) = 0; virtual HRESULT __stdcall SendOnDataChange( /* [unique][in] */ IDataObject *pDataObject, /* [in] */ DWORD dwReserved, /* [in] */ DWORD advf) = 0; }; #line 6269 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 6274 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IMessageFilter */ /* [uuid][object][local] */ typedef /* [unique] */ IMessageFilter *LPMESSAGEFILTER; typedef enum tagCALLTYPE { CALLTYPE_TOPLEVEL = 1, CALLTYPE_NESTED = 2, CALLTYPE_ASYNC = 3, CALLTYPE_TOPLEVEL_CALLPENDING = 4, CALLTYPE_ASYNC_CALLPENDING = 5 } CALLTYPE; typedef enum tagSERVERCALL { SERVERCALL_ISHANDLED = 0, SERVERCALL_REJECTED = 1, SERVERCALL_RETRYLATER = 2 } SERVERCALL; typedef enum tagPENDINGTYPE { PENDINGTYPE_TOPLEVEL = 1, PENDINGTYPE_NESTED = 2 } PENDINGTYPE; typedef enum tagPENDINGMSG { PENDINGMSG_CANCELCALL = 0, PENDINGMSG_WAITNOPROCESS = 1, PENDINGMSG_WAITDEFPROCESS = 2 } PENDINGMSG; typedef struct tagINTERFACEINFO { IUnknown *pUnk; IID iid; WORD wMethod; } INTERFACEINFO; typedef struct tagINTERFACEINFO *LPINTERFACEINFO; extern "C" const IID IID_IMessageFilter; struct __declspec(uuid("00000016-0000-0000-C000-000000000046")) __declspec(novtable) IMessageFilter : public IUnknown { public: virtual DWORD __stdcall HandleInComingCall( /* [in] */ DWORD dwCallType, /* [in] */ HTASK htaskCaller, /* [in] */ DWORD dwTickCount, /* [in] */ LPINTERFACEINFO lpInterfaceInfo) = 0; virtual DWORD __stdcall RetryRejectedCall( /* [in] */ HTASK htaskCallee, /* [in] */ DWORD dwTickCount, /* [in] */ DWORD dwRejectType) = 0; virtual DWORD __stdcall MessagePending( /* [in] */ HTASK htaskCallee, /* [in] */ DWORD dwTickCount, /* [in] */ DWORD dwPendingType) = 0; }; #line 6422 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 6427 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IRpcChannelBuffer */ /* [uuid][object][local] */ typedef unsigned long RPCOLEDATAREP; typedef struct tagRPCOLEMESSAGE { void *reserved1; RPCOLEDATAREP dataRepresentation; void *Buffer; ULONG cbBuffer; ULONG iMethod; void *reserved2[ 5 ]; ULONG rpcFlags; } RPCOLEMESSAGE; typedef RPCOLEMESSAGE *PRPCOLEMESSAGE; extern "C" const IID IID_IRpcChannelBuffer; struct __declspec(uuid("D5F56B60-593B-101A-B569-08002B2DBF7A")) __declspec(novtable) IRpcChannelBuffer : public IUnknown { public: virtual HRESULT __stdcall GetBuffer( /* [in] */ RPCOLEMESSAGE *pMessage, /* [in] */ const IID & riid) = 0; virtual HRESULT __stdcall SendReceive( /* [out][in] */ RPCOLEMESSAGE *pMessage, /* [out] */ ULONG *pStatus) = 0; virtual HRESULT __stdcall FreeBuffer( /* [in] */ RPCOLEMESSAGE *pMessage) = 0; virtual HRESULT __stdcall GetDestCtx( /* [out] */ DWORD *pdwDestContext, /* [out] */ void **ppvDestContext) = 0; virtual HRESULT __stdcall IsConnected( void) = 0; }; #line 6560 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 6565 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IRpcChannelBuffer2 */ /* [uuid][object][local] */ extern "C" const IID IID_IRpcChannelBuffer2; struct __declspec(uuid("594f31d0-7f19-11d0-b194-00a0c90dc8bf")) __declspec(novtable) IRpcChannelBuffer2 : public IRpcChannelBuffer { public: virtual HRESULT __stdcall GetProtocolVersion( /* [out][in] */ DWORD *pdwVersion) = 0; }; #line 6677 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 6682 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IAsyncRpcChannelBuffer */ /* [unique][uuid][object][local] */ extern "C" const IID IID_IAsyncRpcChannelBuffer; struct __declspec(uuid("a5029fb6-3c34-11d1-9c99-00c04fb998aa")) __declspec(novtable) IAsyncRpcChannelBuffer : public IRpcChannelBuffer2 { public: virtual HRESULT __stdcall Send( /* [out][in] */ RPCOLEMESSAGE *pMsg, /* [in] */ ISynchronize *pSync, /* [out] */ ULONG *pulStatus) = 0; virtual HRESULT __stdcall Receive( /* [out][in] */ RPCOLEMESSAGE *pMsg, /* [out] */ ULONG *pulStatus) = 0; virtual HRESULT __stdcall GetDestCtxEx( /* [in] */ RPCOLEMESSAGE *pMsg, /* [out] */ DWORD *pdwDestContext, /* [out] */ void **ppvDestContext) = 0; }; #line 6832 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 6837 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IRpcChannelBuffer3 */ /* [uuid][object][local] */ extern "C" const IID IID_IRpcChannelBuffer3; struct __declspec(uuid("25B15600-0115-11d0-BF0D-00AA00B8DFD2")) __declspec(novtable) IRpcChannelBuffer3 : public IRpcChannelBuffer2 { public: virtual HRESULT __stdcall Send( /* [out][in] */ RPCOLEMESSAGE *pMsg, /* [out] */ ULONG *pulStatus) = 0; virtual HRESULT __stdcall Receive( /* [out][in] */ RPCOLEMESSAGE *pMsg, /* [in] */ ULONG ulSize, /* [out] */ ULONG *pulStatus) = 0; virtual HRESULT __stdcall Cancel( /* [in] */ RPCOLEMESSAGE *pMsg) = 0; virtual HRESULT __stdcall GetCallContext( /* [in] */ RPCOLEMESSAGE *pMsg, /* [in] */ const IID & riid, /* [out] */ void **pInterface) = 0; virtual HRESULT __stdcall GetDestCtxEx( /* [in] */ RPCOLEMESSAGE *pMsg, /* [out] */ DWORD *pdwDestContext, /* [out] */ void **ppvDestContext) = 0; virtual HRESULT __stdcall GetState( /* [in] */ RPCOLEMESSAGE *pMsg, /* [out] */ DWORD *pState) = 0; virtual HRESULT __stdcall RegisterAsync( /* [in] */ RPCOLEMESSAGE *pMsg, /* [in] */ IAsyncManager *pAsyncMgr) = 0; }; #line 7035 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 7040 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IRpcSyntaxNegotiate */ /* [uuid][object][local] */ extern "C" const IID IID_IRpcSyntaxNegotiate; struct __declspec(uuid("58a08519-24c8-4935-b482-3fd823333a4f")) __declspec(novtable) IRpcSyntaxNegotiate : public IUnknown { public: virtual HRESULT __stdcall NegotiateSyntax( /* [out][in] */ RPCOLEMESSAGE *pMsg) = 0; }; #line 7114 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 7119 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IRpcProxyBuffer */ /* [uuid][object][local] */ extern "C" const IID IID_IRpcProxyBuffer; struct __declspec(uuid("D5F56A34-593B-101A-B569-08002B2DBF7A")) __declspec(novtable) IRpcProxyBuffer : public IUnknown { public: virtual HRESULT __stdcall Connect( /* [unique][in] */ IRpcChannelBuffer *pRpcChannelBuffer) = 0; virtual void __stdcall Disconnect( void) = 0; }; #line 7201 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 7206 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IRpcStubBuffer */ /* [uuid][object][local] */ extern "C" const IID IID_IRpcStubBuffer; struct __declspec(uuid("D5F56AFC-593B-101A-B569-08002B2DBF7A")) __declspec(novtable) IRpcStubBuffer : public IUnknown { public: virtual HRESULT __stdcall Connect( /* [in] */ IUnknown *pUnkServer) = 0; virtual void __stdcall Disconnect( void) = 0; virtual HRESULT __stdcall Invoke( /* [in] */ RPCOLEMESSAGE *_prpcmsg, /* [in] */ IRpcChannelBuffer *_pRpcChannelBuffer) = 0; virtual IRpcStubBuffer *__stdcall IsIIDSupported( /* [in] */ const IID & riid) = 0; virtual ULONG __stdcall CountRefs( void) = 0; virtual HRESULT __stdcall DebugServerQueryInterface( void **ppv) = 0; virtual void __stdcall DebugServerRelease( void *pv) = 0; }; #line 7338 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 7343 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IPSFactoryBuffer */ /* [uuid][object][local] */ extern "C" const IID IID_IPSFactoryBuffer; struct __declspec(uuid("D5F569D0-593B-101A-B569-08002B2DBF7A")) __declspec(novtable) IPSFactoryBuffer : public IUnknown { public: virtual HRESULT __stdcall CreateProxy( /* [in] */ IUnknown *pUnkOuter, /* [in] */ const IID & riid, /* [out] */ IRpcProxyBuffer **ppProxy, /* [out] */ void **ppv) = 0; virtual HRESULT __stdcall CreateStub( /* [in] */ const IID & riid, /* [unique][in] */ IUnknown *pUnkServer, /* [out] */ IRpcStubBuffer **ppStub) = 0; }; #line 7437 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 7442 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface __MIDL_itf_objidl_0000_0041 */ /* [local] */ // This interface is only valid on Windows NT 4.0 typedef struct SChannelHookCallInfo { IID iid; DWORD cbSize; GUID uCausality; DWORD dwServerPid; DWORD iMethod; void *pObject; } SChannelHookCallInfo; extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0041_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0041_v0_0_s_ifspec; /* interface IChannelHook */ /* [uuid][object][local] */ extern "C" const IID IID_IChannelHook; struct __declspec(uuid("1008c4a0-7613-11cf-9af1-0020af6e72f4")) __declspec(novtable) IChannelHook : public IUnknown { public: virtual void __stdcall ClientGetSize( /* [in] */ const GUID & uExtent, /* [in] */ const IID & riid, /* [out] */ ULONG *pDataSize) = 0; virtual void __stdcall ClientFillBuffer( /* [in] */ const GUID & uExtent, /* [in] */ const IID & riid, /* [out][in] */ ULONG *pDataSize, /* [in] */ void *pDataBuffer) = 0; virtual void __stdcall ClientNotify( /* [in] */ const GUID & uExtent, /* [in] */ const IID & riid, /* [in] */ ULONG cbDataSize, /* [in] */ void *pDataBuffer, /* [in] */ DWORD lDataRep, /* [in] */ HRESULT hrFault) = 0; virtual void __stdcall ServerNotify( /* [in] */ const GUID & uExtent, /* [in] */ const IID & riid, /* [in] */ ULONG cbDataSize, /* [in] */ void *pDataBuffer, /* [in] */ DWORD lDataRep) = 0; virtual void __stdcall ServerGetSize( /* [in] */ const GUID & uExtent, /* [in] */ const IID & riid, /* [in] */ HRESULT hrFault, /* [out] */ ULONG *pDataSize) = 0; virtual void __stdcall ServerFillBuffer( /* [in] */ const GUID & uExtent, /* [in] */ const IID & riid, /* [out][in] */ ULONG *pDataSize, /* [in] */ void *pDataBuffer, /* [in] */ HRESULT hrFault) = 0; }; #line 7628 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 7633 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface __MIDL_itf_objidl_0000_0042 */ /* [local] */ #line 7639 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" // Well-known Property Set Format IDs extern const FMTID FMTID_SummaryInformation; extern const FMTID FMTID_DocSummaryInformation; extern const FMTID FMTID_UserDefinedProperties; extern const FMTID FMTID_DiscardableInformation; extern const FMTID FMTID_ImageSummaryInformation; extern const FMTID FMTID_AudioSummaryInformation; extern const FMTID FMTID_VideoSummaryInformation; extern const FMTID FMTID_MediaFileSummaryInformation; // This interface is only valid on Windows NT 4.0 extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0042_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0042_v0_0_s_ifspec; /* interface IClientSecurity */ /* [uuid][object][local] */ typedef struct tagSOLE_AUTHENTICATION_SERVICE { DWORD dwAuthnSvc; DWORD dwAuthzSvc; OLECHAR *pPrincipalName; HRESULT hr; } SOLE_AUTHENTICATION_SERVICE; typedef SOLE_AUTHENTICATION_SERVICE *PSOLE_AUTHENTICATION_SERVICE; typedef enum tagEOLE_AUTHENTICATION_CAPABILITIES { EOAC_NONE = 0, EOAC_MUTUAL_AUTH = 0x1, EOAC_STATIC_CLOAKING = 0x20, EOAC_DYNAMIC_CLOAKING = 0x40, EOAC_ANY_AUTHORITY = 0x80, EOAC_MAKE_FULLSIC = 0x100, EOAC_DEFAULT = 0x800, EOAC_SECURE_REFS = 0x2, EOAC_ACCESS_CONTROL = 0x4, EOAC_APPID = 0x8, EOAC_DYNAMIC = 0x10, EOAC_REQUIRE_FULLSIC = 0x200, EOAC_AUTO_IMPERSONATE = 0x400, EOAC_NO_CUSTOM_MARSHAL = 0x2000, EOAC_DISABLE_AAA = 0x1000 } EOLE_AUTHENTICATION_CAPABILITIES; typedef struct tagSOLE_AUTHENTICATION_INFO { DWORD dwAuthnSvc; DWORD dwAuthzSvc; void *pAuthInfo; } SOLE_AUTHENTICATION_INFO; typedef struct tagSOLE_AUTHENTICATION_INFO *PSOLE_AUTHENTICATION_INFO; typedef struct tagSOLE_AUTHENTICATION_LIST { DWORD cAuthInfo; SOLE_AUTHENTICATION_INFO *aAuthInfo; } SOLE_AUTHENTICATION_LIST; typedef struct tagSOLE_AUTHENTICATION_LIST *PSOLE_AUTHENTICATION_LIST; extern "C" const IID IID_IClientSecurity; struct __declspec(uuid("0000013D-0000-0000-C000-000000000046")) __declspec(novtable) IClientSecurity : public IUnknown { public: virtual HRESULT __stdcall QueryBlanket( /* [in] */ IUnknown *pProxy, /* [out] */ DWORD *pAuthnSvc, /* [out] */ DWORD *pAuthzSvc, /* [out] */ OLECHAR **pServerPrincName, /* [out] */ DWORD *pAuthnLevel, /* [out] */ DWORD *pImpLevel, /* [out] */ void **pAuthInfo, /* [out] */ DWORD *pCapabilites) = 0; virtual HRESULT __stdcall SetBlanket( /* [in] */ IUnknown *pProxy, /* [in] */ DWORD dwAuthnSvc, /* [in] */ DWORD dwAuthzSvc, /* [in] */ OLECHAR *pServerPrincName, /* [in] */ DWORD dwAuthnLevel, /* [in] */ DWORD dwImpLevel, /* [in] */ void *pAuthInfo, /* [in] */ DWORD dwCapabilities) = 0; virtual HRESULT __stdcall CopyProxy( /* [in] */ IUnknown *pProxy, /* [out] */ IUnknown **ppCopy) = 0; }; #line 7840 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 7845 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IServerSecurity */ /* [uuid][object][local] */ extern "C" const IID IID_IServerSecurity; struct __declspec(uuid("0000013E-0000-0000-C000-000000000046")) __declspec(novtable) IServerSecurity : public IUnknown { public: virtual HRESULT __stdcall QueryBlanket( /* [out] */ DWORD *pAuthnSvc, /* [out] */ DWORD *pAuthzSvc, /* [out] */ OLECHAR **pServerPrincName, /* [out] */ DWORD *pAuthnLevel, /* [out] */ DWORD *pImpLevel, /* [out] */ void **pPrivs, /* [out][in] */ DWORD *pCapabilities) = 0; virtual HRESULT __stdcall ImpersonateClient( void) = 0; virtual HRESULT __stdcall RevertToSelf( void) = 0; virtual BOOL __stdcall IsImpersonating( void) = 0; }; #line 7957 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 7962 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IClassActivator */ /* [uuid][object] */ extern "C" const IID IID_IClassActivator; struct __declspec(uuid("00000140-0000-0000-C000-000000000046")) __declspec(novtable) IClassActivator : public IUnknown { public: virtual HRESULT __stdcall GetClassObject( /* [in] */ const IID & rclsid, /* [in] */ DWORD dwClassContext, /* [in] */ LCID locale, /* [in] */ const IID & riid, /* [iid_is][out] */ void **ppv) = 0; }; #line 8044 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 8049 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IRpcOptions */ /* [uuid][local][object] */ extern "C" const IID IID_IRpcOptions; struct __declspec(uuid("00000144-0000-0000-C000-000000000046")) __declspec(novtable) IRpcOptions : public IUnknown { public: virtual HRESULT __stdcall Set( /* [in] */ IUnknown *pPrx, /* [in] */ DWORD dwProperty, /* [in] */ ULONG_PTR dwValue) = 0; virtual HRESULT __stdcall Query( /* [in] */ IUnknown *pPrx, /* [in] */ DWORD dwProperty, /* [out] */ ULONG_PTR *pdwValue) = 0; }; #line 8141 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 8146 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface __MIDL_itf_objidl_0000_0046 */ /* [local] */ enum __MIDL___MIDL_itf_objidl_0000_0046_0001 { COMBND_RPCTIMEOUT = 0x1, COMBND_SERVER_LOCALITY = 0x2 } ; enum __MIDL___MIDL_itf_objidl_0000_0046_0002 { SERVER_LOCALITY_PROCESS_LOCAL = 0, SERVER_LOCALITY_MACHINE_LOCAL = 1, SERVER_LOCALITY_REMOTE = 2 } ; #line 8163 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0046_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0046_v0_0_s_ifspec; /* interface IFillLockBytes */ /* [unique][uuid][object] */ extern "C" const IID IID_IFillLockBytes; struct __declspec(uuid("99caf010-415e-11cf-8814-00aa00b569f5")) __declspec(novtable) IFillLockBytes : public IUnknown { public: virtual /* [local] */ HRESULT __stdcall FillAppend( /* [size_is][in] */ const void *pv, /* [in] */ ULONG cb, /* [out] */ ULONG *pcbWritten) = 0; virtual /* [local] */ HRESULT __stdcall FillAt( /* [in] */ ULARGE_INTEGER ulOffset, /* [size_is][in] */ const void *pv, /* [in] */ ULONG cb, /* [out] */ ULONG *pcbWritten) = 0; virtual HRESULT __stdcall SetFillSize( /* [in] */ ULARGE_INTEGER ulSize) = 0; virtual HRESULT __stdcall Terminate( /* [in] */ BOOL bCanceled) = 0; }; #line 8280 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* [call_as] */ HRESULT __stdcall IFillLockBytes_RemoteFillAppend_Proxy( IFillLockBytes * This, /* [size_is][in] */ const byte *pv, /* [in] */ ULONG cb, /* [out] */ ULONG *pcbWritten); void __stdcall IFillLockBytes_RemoteFillAppend_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [call_as] */ HRESULT __stdcall IFillLockBytes_RemoteFillAt_Proxy( IFillLockBytes * This, /* [in] */ ULARGE_INTEGER ulOffset, /* [size_is][in] */ const byte *pv, /* [in] */ ULONG cb, /* [out] */ ULONG *pcbWritten); void __stdcall IFillLockBytes_RemoteFillAt_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #line 8314 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IProgressNotify */ /* [unique][uuid][object] */ extern "C" const IID IID_IProgressNotify; struct __declspec(uuid("a9d758a0-4617-11cf-95fc-00aa00680db4")) __declspec(novtable) IProgressNotify : public IUnknown { public: virtual HRESULT __stdcall OnProgress( /* [in] */ DWORD dwProgressCurrent, /* [in] */ DWORD dwProgressMaximum, /* [in] */ BOOL fAccurate, /* [in] */ BOOL fOwner) = 0; }; #line 8394 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 8399 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface ILayoutStorage */ /* [unique][uuid][object][local] */ typedef struct tagStorageLayout { DWORD LayoutType; OLECHAR *pwcsElementName; LARGE_INTEGER cOffset; LARGE_INTEGER cBytes; } StorageLayout; extern "C" const IID IID_ILayoutStorage; struct __declspec(uuid("0e6d4d90-6738-11cf-9608-00aa00680db4")) __declspec(novtable) ILayoutStorage : public IUnknown { public: virtual HRESULT __stdcall LayoutScript( /* [in] */ StorageLayout *pStorageLayout, /* [in] */ DWORD nEntries, /* [in] */ DWORD glfInterleavedFlag) = 0; virtual HRESULT __stdcall BeginMonitor( void) = 0; virtual HRESULT __stdcall EndMonitor( void) = 0; virtual HRESULT __stdcall ReLayoutDocfile( /* [in] */ OLECHAR *pwcsNewDfName) = 0; virtual HRESULT __stdcall ReLayoutDocfileOnILockBytes( /* [in] */ ILockBytes *pILockBytes) = 0; }; #line 8523 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 8528 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IBlockingLock */ /* [uuid][object] */ extern "C" const IID IID_IBlockingLock; struct __declspec(uuid("30f3d47a-6447-11d1-8e3c-00c04fb9386d")) __declspec(novtable) IBlockingLock : public IUnknown { public: virtual HRESULT __stdcall Lock( /* [in] */ DWORD dwTimeout) = 0; virtual HRESULT __stdcall Unlock( void) = 0; }; #line 8610 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 8615 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface ITimeAndNoticeControl */ /* [uuid][object] */ extern "C" const IID IID_ITimeAndNoticeControl; struct __declspec(uuid("bc0bf6ae-8878-11d1-83e9-00c04fc2c6d4")) __declspec(novtable) ITimeAndNoticeControl : public IUnknown { public: virtual HRESULT __stdcall SuppressChanges( /* [in] */ DWORD res1, /* [in] */ DWORD res2) = 0; }; #line 8691 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 8696 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IOplockStorage */ /* [uuid][object] */ extern "C" const IID IID_IOplockStorage; struct __declspec(uuid("8d19c834-8879-11d1-83e9-00c04fc2c6d4")) __declspec(novtable) IOplockStorage : public IUnknown { public: virtual HRESULT __stdcall CreateStorageEx( /* [in] */ LPCWSTR pwcsName, /* [in] */ DWORD grfMode, /* [in] */ DWORD stgfmt, /* [in] */ DWORD grfAttrs, /* [in] */ const IID & riid, /* [iid_is][out] */ void **ppstgOpen) = 0; virtual HRESULT __stdcall OpenStorageEx( /* [in] */ LPCWSTR pwcsName, /* [in] */ DWORD grfMode, /* [in] */ DWORD stgfmt, /* [in] */ DWORD grfAttrs, /* [in] */ const IID & riid, /* [iid_is][out] */ void **ppstgOpen) = 0; }; #line 8800 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 8805 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface ISurrogate */ /* [object][unique][version][uuid] */ typedef /* [unique] */ ISurrogate *LPSURROGATE; extern "C" const IID IID_ISurrogate; struct __declspec(uuid("00000022-0000-0000-C000-000000000046")) __declspec(novtable) ISurrogate : public IUnknown { public: virtual HRESULT __stdcall LoadDllServer( /* [in] */ const IID & Clsid) = 0; virtual HRESULT __stdcall FreeSurrogate( void) = 0; }; #line 8889 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 8894 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IGlobalInterfaceTable */ /* [uuid][object][local] */ typedef /* [unique] */ IGlobalInterfaceTable *LPGLOBALINTERFACETABLE; extern "C" const IID IID_IGlobalInterfaceTable; struct __declspec(uuid("00000146-0000-0000-C000-000000000046")) __declspec(novtable) IGlobalInterfaceTable : public IUnknown { public: virtual HRESULT __stdcall RegisterInterfaceInGlobal( /* [in] */ IUnknown *pUnk, /* [in] */ const IID & riid, /* [out] */ DWORD *pdwCookie) = 0; virtual HRESULT __stdcall RevokeInterfaceFromGlobal( /* [in] */ DWORD dwCookie) = 0; virtual HRESULT __stdcall GetInterfaceFromGlobal( /* [in] */ DWORD dwCookie, /* [in] */ const IID & riid, /* [iid_is][out] */ void **ppv) = 0; }; #line 8998 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 9003 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IDirectWriterLock */ /* [unique][uuid][object] */ extern "C" const IID IID_IDirectWriterLock; struct __declspec(uuid("0e6d4d92-6738-11cf-9608-00aa00680db4")) __declspec(novtable) IDirectWriterLock : public IUnknown { public: virtual HRESULT __stdcall WaitForWriteAccess( /* [in] */ DWORD dwTimeout) = 0; virtual HRESULT __stdcall ReleaseWriteAccess( void) = 0; virtual HRESULT __stdcall HaveWriteAccess( void) = 0; }; #line 9093 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 9098 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface ISynchronize */ /* [uuid][object] */ extern "C" const IID IID_ISynchronize; struct __declspec(uuid("00000030-0000-0000-C000-000000000046")) __declspec(novtable) ISynchronize : public IUnknown { public: virtual HRESULT __stdcall Wait( /* [in] */ DWORD dwFlags, /* [in] */ DWORD dwMilliseconds) = 0; virtual HRESULT __stdcall Signal( void) = 0; virtual HRESULT __stdcall Reset( void) = 0; }; #line 9190 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 9195 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface ISynchronizeHandle */ /* [uuid][object][local] */ extern "C" const IID IID_ISynchronizeHandle; struct __declspec(uuid("00000031-0000-0000-C000-000000000046")) __declspec(novtable) ISynchronizeHandle : public IUnknown { public: virtual HRESULT __stdcall GetHandle( /* [out] */ HANDLE *ph) = 0; }; #line 9269 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 9274 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface ISynchronizeEvent */ /* [uuid][object][local] */ extern "C" const IID IID_ISynchronizeEvent; struct __declspec(uuid("00000032-0000-0000-C000-000000000046")) __declspec(novtable) ISynchronizeEvent : public ISynchronizeHandle { public: virtual HRESULT __stdcall SetEventHandle( /* [in] */ HANDLE *ph) = 0; }; #line 9356 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 9361 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface ISynchronizeContainer */ /* [uuid][object][local] */ extern "C" const IID IID_ISynchronizeContainer; struct __declspec(uuid("00000033-0000-0000-C000-000000000046")) __declspec(novtable) ISynchronizeContainer : public IUnknown { public: virtual HRESULT __stdcall AddSynchronize( /* [in] */ ISynchronize *pSync) = 0; virtual HRESULT __stdcall WaitMultiple( /* [in] */ DWORD dwFlags, /* [in] */ DWORD dwTimeOut, /* [out] */ ISynchronize **ppSync) = 0; }; #line 9449 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 9454 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface ISynchronizeMutex */ /* [uuid][object][local] */ extern "C" const IID IID_ISynchronizeMutex; struct __declspec(uuid("00000025-0000-0000-C000-000000000046")) __declspec(novtable) ISynchronizeMutex : public ISynchronize { public: virtual HRESULT __stdcall ReleaseMutex( void) = 0; }; #line 9547 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 9552 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface ICancelMethodCalls */ /* [uuid][object][local] */ typedef /* [unique] */ ICancelMethodCalls *LPCANCELMETHODCALLS; extern "C" const IID IID_ICancelMethodCalls; struct __declspec(uuid("00000029-0000-0000-C000-000000000046")) __declspec(novtable) ICancelMethodCalls : public IUnknown { public: virtual HRESULT __stdcall Cancel( /* [in] */ ULONG ulSeconds) = 0; virtual HRESULT __stdcall TestCancel( void) = 0; }; #line 9636 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 9641 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IAsyncManager */ /* [uuid][object][local] */ typedef enum tagDCOM_CALL_STATE { DCOM_NONE = 0, DCOM_CALL_COMPLETE = 0x1, DCOM_CALL_CANCELED = 0x2 } DCOM_CALL_STATE; extern "C" const IID IID_IAsyncManager; struct __declspec(uuid("0000002A-0000-0000-C000-000000000046")) __declspec(novtable) IAsyncManager : public IUnknown { public: virtual HRESULT __stdcall CompleteCall( /* [in] */ HRESULT Result) = 0; virtual HRESULT __stdcall GetCallContext( /* [in] */ const IID & riid, /* [out] */ void **pInterface) = 0; virtual HRESULT __stdcall GetState( /* [out] */ ULONG *pulStateFlags) = 0; }; #line 9744 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 9749 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface ICallFactory */ /* [unique][uuid][object][local] */ extern "C" const IID IID_ICallFactory; struct __declspec(uuid("1c733a30-2a1c-11ce-ade5-00aa0044773d")) __declspec(novtable) ICallFactory : public IUnknown { public: virtual HRESULT __stdcall CreateCall( /* [in] */ const IID & riid, /* [in] */ IUnknown *pCtrlUnk, /* [in] */ const IID & riid2, /* [iid_is][out] */ IUnknown **ppv) = 0; }; #line 9829 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 9834 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IRpcHelper */ /* [object][local][unique][version][uuid] */ extern "C" const IID IID_IRpcHelper; struct __declspec(uuid("00000149-0000-0000-C000-000000000046")) __declspec(novtable) IRpcHelper : public IUnknown { public: virtual HRESULT __stdcall GetDCOMProtocolVersion( /* [out] */ DWORD *pComVersion) = 0; virtual HRESULT __stdcall GetIIDFromOBJREF( /* [in] */ void *pObjRef, /* [out] */ IID **piid) = 0; }; #line 9920 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 9925 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IReleaseMarshalBuffers */ /* [uuid][object][local] */ extern "C" const IID IID_IReleaseMarshalBuffers; struct __declspec(uuid("eb0cb9e8-7996-11d2-872e-0000f8080859")) __declspec(novtable) IReleaseMarshalBuffers : public IUnknown { public: virtual HRESULT __stdcall ReleaseMarshalBuffer( /* [in] */ RPCOLEMESSAGE *pMsg, /* [in] */ DWORD dwFlags, /* [unique][in] */ IUnknown *pChnl) = 0; }; #line 10003 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 10008 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IWaitMultiple */ /* [uuid][object][local] */ extern "C" const IID IID_IWaitMultiple; struct __declspec(uuid("0000002B-0000-0000-C000-000000000046")) __declspec(novtable) IWaitMultiple : public IUnknown { public: virtual HRESULT __stdcall WaitMultiple( /* [in] */ DWORD timeout, /* [out] */ ISynchronize **pSync) = 0; virtual HRESULT __stdcall AddSynchronize( /* [in] */ ISynchronize *pSync) = 0; }; #line 10094 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 10099 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IUrlMon */ /* [uuid][object] */ extern "C" const IID IID_IUrlMon; struct __declspec(uuid("00000026-0000-0000-C000-000000000046")) __declspec(novtable) IUrlMon : public IUnknown { public: virtual HRESULT __stdcall AsyncGetClassBits( /* [in] */ const IID & rclsid, /* [unique][in] */ LPCWSTR pszTYPE, /* [unique][in] */ LPCWSTR pszExt, /* [in] */ DWORD dwFileVersionMS, /* [in] */ DWORD dwFileVersionLS, /* [unique][in] */ LPCWSTR pszCodeBase, /* [in] */ IBindCtx *pbc, /* [in] */ DWORD dwClassContext, /* [in] */ const IID & riid, /* [in] */ DWORD flags) = 0; }; #line 10191 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 10196 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IForegroundTransfer */ /* [uuid][object][local] */ extern "C" const IID IID_IForegroundTransfer; struct __declspec(uuid("00000145-0000-0000-C000-000000000046")) __declspec(novtable) IForegroundTransfer : public IUnknown { public: virtual HRESULT __stdcall AllowForegroundTransfer( /* [in] */ void *lpvReserved) = 0; }; #line 10270 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 10275 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IAddrTrackingControl */ /* [uuid][object][local] */ typedef /* [unique] */ IAddrTrackingControl *LPADDRTRACKINGCONTROL; extern "C" const IID IID_IAddrTrackingControl; struct __declspec(uuid("00000147-0000-0000-C000-000000000046")) __declspec(novtable) IAddrTrackingControl : public IUnknown { public: virtual HRESULT __stdcall EnableCOMDynamicAddrTracking( void) = 0; virtual HRESULT __stdcall DisableCOMDynamicAddrTracking( void) = 0; }; #line 10357 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 10362 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IAddrExclusionControl */ /* [uuid][object][local] */ typedef /* [unique] */ IAddrExclusionControl *LPADDREXCLUSIONCONTROL; extern "C" const IID IID_IAddrExclusionControl; struct __declspec(uuid("00000148-0000-0000-C000-000000000046")) __declspec(novtable) IAddrExclusionControl : public IUnknown { public: virtual HRESULT __stdcall GetCurrentAddrExclusionList( /* [in] */ const IID & riid, /* [iid_is][out] */ void **ppEnumerator) = 0; virtual HRESULT __stdcall UpdateAddrExclusionList( /* [in] */ IUnknown *pEnumerator) = 0; }; #line 10450 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 10455 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IPipeByte */ /* [unique][async_uuid][uuid][object] */ extern "C" const IID IID_IPipeByte; struct __declspec(uuid("DB2F3ACA-2F86-11d1-8E04-00C04FB9989A")) __declspec(novtable) IPipeByte : public IUnknown { public: virtual HRESULT __stdcall Pull( /* [length_is][size_is][out] */ BYTE *buf, /* [in] */ ULONG cRequest, /* [out] */ ULONG *pcReturned) = 0; virtual HRESULT __stdcall Push( /* [size_is][in] */ BYTE *buf, /* [in] */ ULONG cSent) = 0; }; #line 10545 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 10550 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface AsyncIPipeByte */ /* [uuid][unique][object] */ extern "C" const IID IID_AsyncIPipeByte; struct __declspec(uuid("DB2F3ACB-2F86-11d1-8E04-00C04FB9989A")) __declspec(novtable) AsyncIPipeByte : public IUnknown { public: virtual HRESULT __stdcall Begin_Pull( /* [in] */ ULONG cRequest) = 0; virtual HRESULT __stdcall Finish_Pull( /* [length_is][size_is][out] */ BYTE *buf, /* [out] */ ULONG *pcReturned) = 0; virtual HRESULT __stdcall Begin_Push( /* [size_is][in] */ BYTE *buf, /* [in] */ ULONG cSent) = 0; virtual HRESULT __stdcall Finish_Push( void) = 0; }; #line 10656 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 10661 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IPipeLong */ /* [unique][async_uuid][uuid][object] */ extern "C" const IID IID_IPipeLong; struct __declspec(uuid("DB2F3ACC-2F86-11d1-8E04-00C04FB9989A")) __declspec(novtable) IPipeLong : public IUnknown { public: virtual HRESULT __stdcall Pull( /* [length_is][size_is][out] */ LONG *buf, /* [in] */ ULONG cRequest, /* [out] */ ULONG *pcReturned) = 0; virtual HRESULT __stdcall Push( /* [size_is][in] */ LONG *buf, /* [in] */ ULONG cSent) = 0; }; #line 10751 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 10756 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface AsyncIPipeLong */ /* [uuid][unique][object] */ extern "C" const IID IID_AsyncIPipeLong; struct __declspec(uuid("DB2F3ACD-2F86-11d1-8E04-00C04FB9989A")) __declspec(novtable) AsyncIPipeLong : public IUnknown { public: virtual HRESULT __stdcall Begin_Pull( /* [in] */ ULONG cRequest) = 0; virtual HRESULT __stdcall Finish_Pull( /* [length_is][size_is][out] */ LONG *buf, /* [out] */ ULONG *pcReturned) = 0; virtual HRESULT __stdcall Begin_Push( /* [size_is][in] */ LONG *buf, /* [in] */ ULONG cSent) = 0; virtual HRESULT __stdcall Finish_Push( void) = 0; }; #line 10862 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 10867 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IPipeDouble */ /* [unique][async_uuid][uuid][object] */ extern "C" const IID IID_IPipeDouble; struct __declspec(uuid("DB2F3ACE-2F86-11d1-8E04-00C04FB9989A")) __declspec(novtable) IPipeDouble : public IUnknown { public: virtual HRESULT __stdcall Pull( /* [length_is][size_is][out] */ DOUBLE *buf, /* [in] */ ULONG cRequest, /* [out] */ ULONG *pcReturned) = 0; virtual HRESULT __stdcall Push( /* [size_is][in] */ DOUBLE *buf, /* [in] */ ULONG cSent) = 0; }; #line 10957 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 10962 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface AsyncIPipeDouble */ /* [uuid][unique][object] */ extern "C" const IID IID_AsyncIPipeDouble; struct __declspec(uuid("DB2F3ACF-2F86-11d1-8E04-00C04FB9989A")) __declspec(novtable) AsyncIPipeDouble : public IUnknown { public: virtual HRESULT __stdcall Begin_Pull( /* [in] */ ULONG cRequest) = 0; virtual HRESULT __stdcall Finish_Pull( /* [length_is][size_is][out] */ DOUBLE *buf, /* [out] */ ULONG *pcReturned) = 0; virtual HRESULT __stdcall Begin_Push( /* [size_is][in] */ DOUBLE *buf, /* [in] */ ULONG cSent) = 0; virtual HRESULT __stdcall Finish_Push( void) = 0; }; #line 11068 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 11073 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IThumbnailExtractor */ /* [object][uuid] */ extern "C" const IID IID_IThumbnailExtractor; struct __declspec(uuid("969dc708-5c76-11d1-8d86-0000f804b057")) __declspec(novtable) IThumbnailExtractor : public IUnknown { public: virtual HRESULT __stdcall ExtractThumbnail( /* [in] */ IStorage *pStg, /* [in] */ ULONG ulLength, /* [in] */ ULONG ulHeight, /* [out] */ ULONG *pulOutputLength, /* [out] */ ULONG *pulOutputHeight, /* [out] */ HBITMAP *phOutputBitmap) = 0; virtual HRESULT __stdcall OnFileUpdated( /* [in] */ IStorage *pStg) = 0; }; #line 11167 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 11172 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IDummyHICONIncluder */ /* [uuid][unique][object] */ extern "C" const IID IID_IDummyHICONIncluder; struct __declspec(uuid("947990de-cc28-11d2-a0f7-00805f858fb1")) __declspec(novtable) IDummyHICONIncluder : public IUnknown { public: virtual HRESULT __stdcall Dummy( /* [in] */ HICON h1, /* [in] */ HDC h2) = 0; }; #line 11248 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 11253 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface __MIDL_itf_objidl_0000_0075 */ /* [local] */ #line 11685 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" typedef enum tagApplicationType { ServerApplication = 0, LibraryApplication = ( ServerApplication + 1 ) } ApplicationType; typedef enum tagShutdownType { IdleShutdown = 0, ForcedShutdown = ( IdleShutdown + 1 ) } ShutdownType; extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0078_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0078_v0_0_s_ifspec; /* interface IProcessLock */ /* [unique][uuid][local][object] */ extern "C" const IID IID_IProcessLock; struct __declspec(uuid("000001d5-0000-0000-C000-000000000046")) __declspec(novtable) IProcessLock : public IUnknown { public: virtual ULONG __stdcall AddRefOnProcess( void) = 0; virtual ULONG __stdcall ReleaseRefOnProcess( void) = 0; }; #line 11780 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 11785 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface ISurrogateService */ /* [unique][uuid][local][object] */ extern "C" const IID IID_ISurrogateService; struct __declspec(uuid("000001d4-0000-0000-C000-000000000046")) __declspec(novtable) ISurrogateService : public IUnknown { public: virtual HRESULT __stdcall Init( /* [in] */ const GUID & rguidProcessID, /* [in] */ IProcessLock *pProcessLock, /* [out] */ BOOL *pfApplicationAware) = 0; virtual HRESULT __stdcall ApplicationLaunch( /* [in] */ const GUID & rguidApplID, /* [in] */ ApplicationType appType) = 0; virtual HRESULT __stdcall ApplicationFree( /* [in] */ const GUID & rguidApplID) = 0; virtual HRESULT __stdcall CatalogRefresh( /* [in] */ ULONG ulReserved) = 0; virtual HRESULT __stdcall ProcessShutdown( /* [in] */ ShutdownType shutdownType) = 0; }; #line 11905 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 11910 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface __MIDL_itf_objidl_0000_0080 */ /* [local] */ typedef enum _APTTYPE { APTTYPE_CURRENT = -1, APTTYPE_STA = 0, APTTYPE_MTA = 1, APTTYPE_NA = 2, APTTYPE_MAINSTA = 3 } APTTYPE; typedef enum _THDTYPE { THDTYPE_BLOCKMESSAGES = 0, THDTYPE_PROCESSMESSAGES = 1 } THDTYPE; typedef DWORD APARTMENTID; extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0080_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0080_v0_0_s_ifspec; /* interface IComThreadingInfo */ /* [unique][uuid][object][local] */ extern "C" const IID IID_IComThreadingInfo; struct __declspec(uuid("000001ce-0000-0000-C000-000000000046")) __declspec(novtable) IComThreadingInfo : public IUnknown { public: virtual HRESULT __stdcall GetCurrentApartmentType( /* [out] */ APTTYPE *pAptType) = 0; virtual HRESULT __stdcall GetCurrentThreadType( /* [out] */ THDTYPE *pThreadType) = 0; virtual HRESULT __stdcall GetCurrentLogicalThreadId( /* [out] */ GUID *pguidLogicalThreadId) = 0; virtual HRESULT __stdcall SetCurrentLogicalThreadId( /* [in] */ const GUID & rguid) = 0; }; #line 12039 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 12044 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface IProcessInitControl */ /* [uuid][unique][object] */ extern "C" const IID IID_IProcessInitControl; struct __declspec(uuid("72380d55-8d2b-43a3-8513-2b6ef31434e9")) __declspec(novtable) IProcessInitControl : public IUnknown { public: virtual HRESULT __stdcall ResetInitializerTimeout( /* [in] */ DWORD dwSecondsRemaining) = 0; }; #line 12118 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 12123 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface __MIDL_itf_objidl_0000_0082 */ /* [local] */ extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0082_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0082_v0_0_s_ifspec; /* interface IInitializeSpy */ /* [unique][uuid][object][local] */ typedef /* [unique] */ IInitializeSpy *LPINITIALIZESPY; extern "C" const IID IID_IInitializeSpy; struct __declspec(uuid("00000034-0000-0000-C000-000000000046")) __declspec(novtable) IInitializeSpy : public IUnknown { public: virtual HRESULT __stdcall PreInitialize( /* [in] */ DWORD dwCoInit, /* [in] */ DWORD dwCurThreadAptRefs) = 0; virtual HRESULT __stdcall PostInitialize( /* [in] */ HRESULT hrCoInit, /* [in] */ DWORD dwCoInit, /* [in] */ DWORD dwNewThreadAptRefs) = 0; virtual HRESULT __stdcall PreUninitialize( /* [in] */ DWORD dwCurThreadAptRefs) = 0; virtual HRESULT __stdcall PostUninitialize( /* [in] */ DWORD dwNewThreadAptRefs) = 0; }; #line 12244 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 12249 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" /* interface __MIDL_itf_objidl_0000_0083 */ /* [local] */ #line 12255 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #pragma warning(pop) #line 12261 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 12262 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0083_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_objidl_0000_0083_v0_0_s_ifspec; /* Additional Prototypes for ALL interfaces */ unsigned long __stdcall ASYNC_STGMEDIUM_UserSize( unsigned long *, unsigned long , ASYNC_STGMEDIUM * ); unsigned char * __stdcall ASYNC_STGMEDIUM_UserMarshal( unsigned long *, unsigned char *, ASYNC_STGMEDIUM * ); unsigned char * __stdcall ASYNC_STGMEDIUM_UserUnmarshal(unsigned long *, unsigned char *, ASYNC_STGMEDIUM * ); void __stdcall ASYNC_STGMEDIUM_UserFree( unsigned long *, ASYNC_STGMEDIUM * ); unsigned long __stdcall CLIPFORMAT_UserSize( unsigned long *, unsigned long , CLIPFORMAT * ); unsigned char * __stdcall CLIPFORMAT_UserMarshal( unsigned long *, unsigned char *, CLIPFORMAT * ); unsigned char * __stdcall CLIPFORMAT_UserUnmarshal(unsigned long *, unsigned char *, CLIPFORMAT * ); void __stdcall CLIPFORMAT_UserFree( unsigned long *, CLIPFORMAT * ); unsigned long __stdcall FLAG_STGMEDIUM_UserSize( unsigned long *, unsigned long , FLAG_STGMEDIUM * ); unsigned char * __stdcall FLAG_STGMEDIUM_UserMarshal( unsigned long *, unsigned char *, FLAG_STGMEDIUM * ); unsigned char * __stdcall FLAG_STGMEDIUM_UserUnmarshal(unsigned long *, unsigned char *, FLAG_STGMEDIUM * ); void __stdcall FLAG_STGMEDIUM_UserFree( unsigned long *, FLAG_STGMEDIUM * ); unsigned long __stdcall HBITMAP_UserSize( unsigned long *, unsigned long , HBITMAP * ); unsigned char * __stdcall HBITMAP_UserMarshal( unsigned long *, unsigned char *, HBITMAP * ); unsigned char * __stdcall HBITMAP_UserUnmarshal(unsigned long *, unsigned char *, HBITMAP * ); void __stdcall HBITMAP_UserFree( unsigned long *, HBITMAP * ); unsigned long __stdcall HDC_UserSize( unsigned long *, unsigned long , HDC * ); unsigned char * __stdcall HDC_UserMarshal( unsigned long *, unsigned char *, HDC * ); unsigned char * __stdcall HDC_UserUnmarshal(unsigned long *, unsigned char *, HDC * ); void __stdcall HDC_UserFree( unsigned long *, HDC * ); unsigned long __stdcall HICON_UserSize( unsigned long *, unsigned long , HICON * ); unsigned char * __stdcall HICON_UserMarshal( unsigned long *, unsigned char *, HICON * ); unsigned char * __stdcall HICON_UserUnmarshal(unsigned long *, unsigned char *, HICON * ); void __stdcall HICON_UserFree( unsigned long *, HICON * ); unsigned long __stdcall SNB_UserSize( unsigned long *, unsigned long , SNB * ); unsigned char * __stdcall SNB_UserMarshal( unsigned long *, unsigned char *, SNB * ); unsigned char * __stdcall SNB_UserUnmarshal(unsigned long *, unsigned char *, SNB * ); void __stdcall SNB_UserFree( unsigned long *, SNB * ); unsigned long __stdcall STGMEDIUM_UserSize( unsigned long *, unsigned long , STGMEDIUM * ); unsigned char * __stdcall STGMEDIUM_UserMarshal( unsigned long *, unsigned char *, STGMEDIUM * ); unsigned char * __stdcall STGMEDIUM_UserUnmarshal(unsigned long *, unsigned char *, STGMEDIUM * ); void __stdcall STGMEDIUM_UserFree( unsigned long *, STGMEDIUM * ); unsigned long __stdcall ASYNC_STGMEDIUM_UserSize64( unsigned long *, unsigned long , ASYNC_STGMEDIUM * ); unsigned char * __stdcall ASYNC_STGMEDIUM_UserMarshal64( unsigned long *, unsigned char *, ASYNC_STGMEDIUM * ); unsigned char * __stdcall ASYNC_STGMEDIUM_UserUnmarshal64(unsigned long *, unsigned char *, ASYNC_STGMEDIUM * ); void __stdcall ASYNC_STGMEDIUM_UserFree64( unsigned long *, ASYNC_STGMEDIUM * ); unsigned long __stdcall CLIPFORMAT_UserSize64( unsigned long *, unsigned long , CLIPFORMAT * ); unsigned char * __stdcall CLIPFORMAT_UserMarshal64( unsigned long *, unsigned char *, CLIPFORMAT * ); unsigned char * __stdcall CLIPFORMAT_UserUnmarshal64(unsigned long *, unsigned char *, CLIPFORMAT * ); void __stdcall CLIPFORMAT_UserFree64( unsigned long *, CLIPFORMAT * ); unsigned long __stdcall FLAG_STGMEDIUM_UserSize64( unsigned long *, unsigned long , FLAG_STGMEDIUM * ); unsigned char * __stdcall FLAG_STGMEDIUM_UserMarshal64( unsigned long *, unsigned char *, FLAG_STGMEDIUM * ); unsigned char * __stdcall FLAG_STGMEDIUM_UserUnmarshal64(unsigned long *, unsigned char *, FLAG_STGMEDIUM * ); void __stdcall FLAG_STGMEDIUM_UserFree64( unsigned long *, FLAG_STGMEDIUM * ); unsigned long __stdcall HBITMAP_UserSize64( unsigned long *, unsigned long , HBITMAP * ); unsigned char * __stdcall HBITMAP_UserMarshal64( unsigned long *, unsigned char *, HBITMAP * ); unsigned char * __stdcall HBITMAP_UserUnmarshal64(unsigned long *, unsigned char *, HBITMAP * ); void __stdcall HBITMAP_UserFree64( unsigned long *, HBITMAP * ); unsigned long __stdcall HDC_UserSize64( unsigned long *, unsigned long , HDC * ); unsigned char * __stdcall HDC_UserMarshal64( unsigned long *, unsigned char *, HDC * ); unsigned char * __stdcall HDC_UserUnmarshal64(unsigned long *, unsigned char *, HDC * ); void __stdcall HDC_UserFree64( unsigned long *, HDC * ); unsigned long __stdcall HICON_UserSize64( unsigned long *, unsigned long , HICON * ); unsigned char * __stdcall HICON_UserMarshal64( unsigned long *, unsigned char *, HICON * ); unsigned char * __stdcall HICON_UserUnmarshal64(unsigned long *, unsigned char *, HICON * ); void __stdcall HICON_UserFree64( unsigned long *, HICON * ); unsigned long __stdcall SNB_UserSize64( unsigned long *, unsigned long , SNB * ); unsigned char * __stdcall SNB_UserMarshal64( unsigned long *, unsigned char *, SNB * ); unsigned char * __stdcall SNB_UserUnmarshal64(unsigned long *, unsigned char *, SNB * ); void __stdcall SNB_UserFree64( unsigned long *, SNB * ); unsigned long __stdcall STGMEDIUM_UserSize64( unsigned long *, unsigned long , STGMEDIUM * ); unsigned char * __stdcall STGMEDIUM_UserMarshal64( unsigned long *, unsigned char *, STGMEDIUM * ); unsigned char * __stdcall STGMEDIUM_UserUnmarshal64(unsigned long *, unsigned char *, STGMEDIUM * ); void __stdcall STGMEDIUM_UserFree64( unsigned long *, STGMEDIUM * ); /* [local] */ HRESULT __stdcall IEnumUnknown_Next_Proxy( IEnumUnknown * This, /* [in] */ ULONG celt, /* [out] */ IUnknown **rgelt, /* [out] */ ULONG *pceltFetched); /* [call_as] */ HRESULT __stdcall IEnumUnknown_Next_Stub( IEnumUnknown * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ IUnknown **rgelt, /* [out] */ ULONG *pceltFetched); /* [local] */ HRESULT __stdcall IBindCtx_SetBindOptions_Proxy( IBindCtx * This, /* [in] */ BIND_OPTS *pbindopts); /* [call_as] */ HRESULT __stdcall IBindCtx_SetBindOptions_Stub( IBindCtx * This, /* [in] */ BIND_OPTS2 *pbindopts); /* [local] */ HRESULT __stdcall IBindCtx_GetBindOptions_Proxy( IBindCtx * This, /* [out][in] */ BIND_OPTS *pbindopts); /* [call_as] */ HRESULT __stdcall IBindCtx_GetBindOptions_Stub( IBindCtx * This, /* [out][in] */ BIND_OPTS2 *pbindopts); /* [local] */ HRESULT __stdcall IEnumMoniker_Next_Proxy( IEnumMoniker * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ IMoniker **rgelt, /* [out] */ ULONG *pceltFetched); /* [call_as] */ HRESULT __stdcall IEnumMoniker_Next_Stub( IEnumMoniker * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ IMoniker **rgelt, /* [out] */ ULONG *pceltFetched); /* [local] */ BOOL __stdcall IRunnableObject_IsRunning_Proxy( IRunnableObject * This); /* [call_as] */ HRESULT __stdcall IRunnableObject_IsRunning_Stub( IRunnableObject * This); /* [local] */ HRESULT __stdcall IMoniker_BindToObject_Proxy( IMoniker * This, /* [unique][in] */ IBindCtx *pbc, /* [unique][in] */ IMoniker *pmkToLeft, /* [in] */ const IID & riidResult, /* [iid_is][out] */ void **ppvResult); /* [call_as] */ HRESULT __stdcall IMoniker_BindToObject_Stub( IMoniker * This, /* [unique][in] */ IBindCtx *pbc, /* [unique][in] */ IMoniker *pmkToLeft, /* [in] */ const IID & riidResult, /* [iid_is][out] */ IUnknown **ppvResult); /* [local] */ HRESULT __stdcall IMoniker_BindToStorage_Proxy( IMoniker * This, /* [unique][in] */ IBindCtx *pbc, /* [unique][in] */ IMoniker *pmkToLeft, /* [in] */ const IID & riid, /* [iid_is][out] */ void **ppvObj); /* [call_as] */ HRESULT __stdcall IMoniker_BindToStorage_Stub( IMoniker * This, /* [unique][in] */ IBindCtx *pbc, /* [unique][in] */ IMoniker *pmkToLeft, /* [in] */ const IID & riid, /* [iid_is][out] */ IUnknown **ppvObj); /* [local] */ HRESULT __stdcall IEnumString_Next_Proxy( IEnumString * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ LPOLESTR *rgelt, /* [out] */ ULONG *pceltFetched); /* [call_as] */ HRESULT __stdcall IEnumString_Next_Stub( IEnumString * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ LPOLESTR *rgelt, /* [out] */ ULONG *pceltFetched); /* [local] */ HRESULT __stdcall ISequentialStream_Read_Proxy( ISequentialStream * This, /* [length_is][size_is][out] */ void *pv, /* [in] */ ULONG cb, /* [out] */ ULONG *pcbRead); /* [call_as] */ HRESULT __stdcall ISequentialStream_Read_Stub( ISequentialStream * This, /* [length_is][size_is][out] */ byte *pv, /* [in] */ ULONG cb, /* [out] */ ULONG *pcbRead); /* [local] */ HRESULT __stdcall ISequentialStream_Write_Proxy( ISequentialStream * This, /* [size_is][in] */ const void *pv, /* [in] */ ULONG cb, /* [out] */ ULONG *pcbWritten); /* [call_as] */ HRESULT __stdcall ISequentialStream_Write_Stub( ISequentialStream * This, /* [size_is][in] */ const byte *pv, /* [in] */ ULONG cb, /* [out] */ ULONG *pcbWritten); /* [local] */ HRESULT __stdcall IStream_Seek_Proxy( IStream * This, /* [in] */ LARGE_INTEGER dlibMove, /* [in] */ DWORD dwOrigin, /* [out] */ ULARGE_INTEGER *plibNewPosition); /* [call_as] */ HRESULT __stdcall IStream_Seek_Stub( IStream * This, /* [in] */ LARGE_INTEGER dlibMove, /* [in] */ DWORD dwOrigin, /* [out] */ ULARGE_INTEGER *plibNewPosition); /* [local] */ HRESULT __stdcall IStream_CopyTo_Proxy( IStream * This, /* [unique][in] */ IStream *pstm, /* [in] */ ULARGE_INTEGER cb, /* [out] */ ULARGE_INTEGER *pcbRead, /* [out] */ ULARGE_INTEGER *pcbWritten); /* [call_as] */ HRESULT __stdcall IStream_CopyTo_Stub( IStream * This, /* [unique][in] */ IStream *pstm, /* [in] */ ULARGE_INTEGER cb, /* [out] */ ULARGE_INTEGER *pcbRead, /* [out] */ ULARGE_INTEGER *pcbWritten); /* [local] */ HRESULT __stdcall IEnumSTATSTG_Next_Proxy( IEnumSTATSTG * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ STATSTG *rgelt, /* [out] */ ULONG *pceltFetched); /* [call_as] */ HRESULT __stdcall IEnumSTATSTG_Next_Stub( IEnumSTATSTG * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ STATSTG *rgelt, /* [out] */ ULONG *pceltFetched); /* [local] */ HRESULT __stdcall IStorage_OpenStream_Proxy( IStorage * This, /* [string][in] */ const OLECHAR *pwcsName, /* [unique][in] */ void *reserved1, /* [in] */ DWORD grfMode, /* [in] */ DWORD reserved2, /* [out] */ IStream **ppstm); /* [call_as] */ HRESULT __stdcall IStorage_OpenStream_Stub( IStorage * This, /* [string][in] */ const OLECHAR *pwcsName, /* [in] */ unsigned long cbReserved1, /* [size_is][unique][in] */ byte *reserved1, /* [in] */ DWORD grfMode, /* [in] */ DWORD reserved2, /* [out] */ IStream **ppstm); /* [local] */ HRESULT __stdcall IStorage_CopyTo_Proxy( IStorage * This, /* [in] */ DWORD ciidExclude, /* [size_is][unique][in] */ const IID *rgiidExclude, /* [unique][in] */ SNB snbExclude, /* [unique][in] */ IStorage *pstgDest); /* [call_as] */ HRESULT __stdcall IStorage_CopyTo_Stub( IStorage * This, /* [in] */ DWORD ciidExclude, /* [size_is][unique][in] */ const IID *rgiidExclude, /* [unique][in] */ SNB snbExclude, /* [unique][in] */ IStorage *pstgDest); /* [local] */ HRESULT __stdcall IStorage_EnumElements_Proxy( IStorage * This, /* [in] */ DWORD reserved1, /* [size_is][unique][in] */ void *reserved2, /* [in] */ DWORD reserved3, /* [out] */ IEnumSTATSTG **ppenum); /* [call_as] */ HRESULT __stdcall IStorage_EnumElements_Stub( IStorage * This, /* [in] */ DWORD reserved1, /* [in] */ unsigned long cbReserved2, /* [size_is][unique][in] */ byte *reserved2, /* [in] */ DWORD reserved3, /* [out] */ IEnumSTATSTG **ppenum); /* [local] */ HRESULT __stdcall ILockBytes_ReadAt_Proxy( ILockBytes * This, /* [in] */ ULARGE_INTEGER ulOffset, /* [length_is][size_is][out] */ void *pv, /* [in] */ ULONG cb, /* [out] */ ULONG *pcbRead); /* [call_as] */ HRESULT __stdcall ILockBytes_ReadAt_Stub( ILockBytes * This, /* [in] */ ULARGE_INTEGER ulOffset, /* [length_is][size_is][out] */ byte *pv, /* [in] */ ULONG cb, /* [out] */ ULONG *pcbRead); /* [local] */ HRESULT __stdcall ILockBytes_WriteAt_Proxy( ILockBytes * This, /* [in] */ ULARGE_INTEGER ulOffset, /* [size_is][in] */ const void *pv, /* [in] */ ULONG cb, /* [out] */ ULONG *pcbWritten); /* [call_as] */ HRESULT __stdcall ILockBytes_WriteAt_Stub( ILockBytes * This, /* [in] */ ULARGE_INTEGER ulOffset, /* [size_is][in] */ const byte *pv, /* [in] */ ULONG cb, /* [out] */ ULONG *pcbWritten); /* [local] */ HRESULT __stdcall IEnumFORMATETC_Next_Proxy( IEnumFORMATETC * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ FORMATETC *rgelt, /* [out] */ ULONG *pceltFetched); /* [call_as] */ HRESULT __stdcall IEnumFORMATETC_Next_Stub( IEnumFORMATETC * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ FORMATETC *rgelt, /* [out] */ ULONG *pceltFetched); /* [local] */ HRESULT __stdcall IEnumSTATDATA_Next_Proxy( IEnumSTATDATA * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ STATDATA *rgelt, /* [out] */ ULONG *pceltFetched); /* [call_as] */ HRESULT __stdcall IEnumSTATDATA_Next_Stub( IEnumSTATDATA * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ STATDATA *rgelt, /* [out] */ ULONG *pceltFetched); /* [local] */ void __stdcall IAdviseSink_OnDataChange_Proxy( IAdviseSink * This, /* [unique][in] */ FORMATETC *pFormatetc, /* [unique][in] */ STGMEDIUM *pStgmed); /* [call_as] */ HRESULT __stdcall IAdviseSink_OnDataChange_Stub( IAdviseSink * This, /* [unique][in] */ FORMATETC *pFormatetc, /* [unique][in] */ ASYNC_STGMEDIUM *pStgmed); /* [local] */ void __stdcall IAdviseSink_OnViewChange_Proxy( IAdviseSink * This, /* [in] */ DWORD dwAspect, /* [in] */ LONG lindex); /* [call_as] */ HRESULT __stdcall IAdviseSink_OnViewChange_Stub( IAdviseSink * This, /* [in] */ DWORD dwAspect, /* [in] */ LONG lindex); /* [local] */ void __stdcall IAdviseSink_OnRename_Proxy( IAdviseSink * This, /* [in] */ IMoniker *pmk); /* [call_as] */ HRESULT __stdcall IAdviseSink_OnRename_Stub( IAdviseSink * This, /* [in] */ IMoniker *pmk); /* [local] */ void __stdcall IAdviseSink_OnSave_Proxy( IAdviseSink * This); /* [call_as] */ HRESULT __stdcall IAdviseSink_OnSave_Stub( IAdviseSink * This); /* [local] */ void __stdcall IAdviseSink_OnClose_Proxy( IAdviseSink * This); /* [call_as] */ HRESULT __stdcall IAdviseSink_OnClose_Stub( IAdviseSink * This); /* [local] */ void __stdcall IAdviseSink2_OnLinkSrcChange_Proxy( IAdviseSink2 * This, /* [unique][in] */ IMoniker *pmk); /* [call_as] */ HRESULT __stdcall IAdviseSink2_OnLinkSrcChange_Stub( IAdviseSink2 * This, /* [unique][in] */ IMoniker *pmk); /* [local] */ HRESULT __stdcall IDataObject_GetData_Proxy( IDataObject * This, /* [unique][in] */ FORMATETC *pformatetcIn, /* [out] */ STGMEDIUM *pmedium); /* [call_as] */ HRESULT __stdcall IDataObject_GetData_Stub( IDataObject * This, /* [unique][in] */ FORMATETC *pformatetcIn, /* [out] */ STGMEDIUM *pRemoteMedium); /* [local] */ HRESULT __stdcall IDataObject_GetDataHere_Proxy( IDataObject * This, /* [unique][in] */ FORMATETC *pformatetc, /* [out][in] */ STGMEDIUM *pmedium); /* [call_as] */ HRESULT __stdcall IDataObject_GetDataHere_Stub( IDataObject * This, /* [unique][in] */ FORMATETC *pformatetc, /* [out][in] */ STGMEDIUM *pRemoteMedium); /* [local] */ HRESULT __stdcall IDataObject_SetData_Proxy( IDataObject * This, /* [unique][in] */ FORMATETC *pformatetc, /* [unique][in] */ STGMEDIUM *pmedium, /* [in] */ BOOL fRelease); /* [call_as] */ HRESULT __stdcall IDataObject_SetData_Stub( IDataObject * This, /* [unique][in] */ FORMATETC *pformatetc, /* [unique][in] */ FLAG_STGMEDIUM *pmedium, /* [in] */ BOOL fRelease); /* [local] */ HRESULT __stdcall IFillLockBytes_FillAppend_Proxy( IFillLockBytes * This, /* [size_is][in] */ const void *pv, /* [in] */ ULONG cb, /* [out] */ ULONG *pcbWritten); /* [call_as] */ HRESULT __stdcall IFillLockBytes_FillAppend_Stub( IFillLockBytes * This, /* [size_is][in] */ const byte *pv, /* [in] */ ULONG cb, /* [out] */ ULONG *pcbWritten); /* [local] */ HRESULT __stdcall IFillLockBytes_FillAt_Proxy( IFillLockBytes * This, /* [in] */ ULARGE_INTEGER ulOffset, /* [size_is][in] */ const void *pv, /* [in] */ ULONG cb, /* [out] */ ULONG *pcbWritten); /* [call_as] */ HRESULT __stdcall IFillLockBytes_FillAt_Stub( IFillLockBytes * This, /* [in] */ ULARGE_INTEGER ulOffset, /* [size_is][in] */ const byte *pv, /* [in] */ ULONG cb, /* [out] */ ULONG *pcbWritten); /* [local] */ void __stdcall AsyncIAdviseSink_Begin_OnDataChange_Proxy( AsyncIAdviseSink * This, /* [unique][in] */ FORMATETC *pFormatetc, /* [unique][in] */ STGMEDIUM *pStgmed); /* [call_as] */ HRESULT __stdcall AsyncIAdviseSink_Begin_OnDataChange_Stub( AsyncIAdviseSink * This, /* [unique][in] */ FORMATETC *pFormatetc, /* [unique][in] */ ASYNC_STGMEDIUM *pStgmed); /* [local] */ void __stdcall AsyncIAdviseSink_Finish_OnDataChange_Proxy( AsyncIAdviseSink * This); /* [call_as] */ HRESULT __stdcall AsyncIAdviseSink_Finish_OnDataChange_Stub( AsyncIAdviseSink * This); /* [local] */ void __stdcall AsyncIAdviseSink_Begin_OnViewChange_Proxy( AsyncIAdviseSink * This, /* [in] */ DWORD dwAspect, /* [in] */ LONG lindex); /* [call_as] */ HRESULT __stdcall AsyncIAdviseSink_Begin_OnViewChange_Stub( AsyncIAdviseSink * This, /* [in] */ DWORD dwAspect, /* [in] */ LONG lindex); /* [local] */ void __stdcall AsyncIAdviseSink_Finish_OnViewChange_Proxy( AsyncIAdviseSink * This); /* [call_as] */ HRESULT __stdcall AsyncIAdviseSink_Finish_OnViewChange_Stub( AsyncIAdviseSink * This); /* [local] */ void __stdcall AsyncIAdviseSink_Begin_OnRename_Proxy( AsyncIAdviseSink * This, /* [in] */ IMoniker *pmk); /* [call_as] */ HRESULT __stdcall AsyncIAdviseSink_Begin_OnRename_Stub( AsyncIAdviseSink * This, /* [in] */ IMoniker *pmk); /* [local] */ void __stdcall AsyncIAdviseSink_Finish_OnRename_Proxy( AsyncIAdviseSink * This); /* [call_as] */ HRESULT __stdcall AsyncIAdviseSink_Finish_OnRename_Stub( AsyncIAdviseSink * This); /* [local] */ void __stdcall AsyncIAdviseSink_Begin_OnSave_Proxy( AsyncIAdviseSink * This); /* [call_as] */ HRESULT __stdcall AsyncIAdviseSink_Begin_OnSave_Stub( AsyncIAdviseSink * This); /* [local] */ void __stdcall AsyncIAdviseSink_Finish_OnSave_Proxy( AsyncIAdviseSink * This); /* [call_as] */ HRESULT __stdcall AsyncIAdviseSink_Finish_OnSave_Stub( AsyncIAdviseSink * This); /* [local] */ void __stdcall AsyncIAdviseSink_Begin_OnClose_Proxy( AsyncIAdviseSink * This); /* [call_as] */ HRESULT __stdcall AsyncIAdviseSink_Begin_OnClose_Stub( AsyncIAdviseSink * This); /* [local] */ void __stdcall AsyncIAdviseSink_Finish_OnClose_Proxy( AsyncIAdviseSink * This); /* [call_as] */ HRESULT __stdcall AsyncIAdviseSink_Finish_OnClose_Stub( AsyncIAdviseSink * This); /* [local] */ void __stdcall AsyncIAdviseSink2_Begin_OnLinkSrcChange_Proxy( AsyncIAdviseSink2 * This, /* [unique][in] */ IMoniker *pmk); /* [call_as] */ HRESULT __stdcall AsyncIAdviseSink2_Begin_OnLinkSrcChange_Stub( AsyncIAdviseSink2 * This, /* [unique][in] */ IMoniker *pmk); /* [local] */ void __stdcall AsyncIAdviseSink2_Finish_OnLinkSrcChange_Proxy( AsyncIAdviseSink2 * This); /* [call_as] */ HRESULT __stdcall AsyncIAdviseSink2_Finish_OnLinkSrcChange_Stub( AsyncIAdviseSink2 * This); /* end of Additional Prototypes */ } #line 12836 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 12838 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objidl.h" #line 444 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\guiddef.h" //+--------------------------------------------------------------------------- // // Microsoft Windows // Copyright (c) Microsoft Corporation. All rights reserved. // // File: guiddef.h // // Contents: GUID definition // //---------------------------------------------------------------------------- #line 58 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\guiddef.h" #line 67 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\guiddef.h" #line 455 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\cguid.h" //+------------------------------------------------------------------------- // // Microsoft Windows // Copyright (c) Microsoft Corporation. All rights reserved. // // File: cguid.h // //-------------------------------------------------------------------------- #pragma once #line 16 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\cguid.h" extern "C" { #line 20 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\cguid.h" extern const IID GUID_NULL; extern const IID CATID_MARSHALER; #line 26 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\cguid.h" extern const IID IID_IRpcChannel; extern const IID IID_IRpcStub; extern const IID IID_IStubManager; extern const IID IID_IRpcProxy; extern const IID IID_IProxyManager; extern const IID IID_IPSFactory; extern const IID IID_IInternalMoniker; extern const IID IID_IDfReserved1; extern const IID IID_IDfReserved2; extern const IID IID_IDfReserved3; extern const CLSID CLSID_StdMarshal; extern const CLSID CLSID_AggStdMarshal; extern const CLSID CLSID_StdAsyncActManager; extern const IID IID_IStub; extern const IID IID_IProxy; extern const IID IID_IEnumGeneric; extern const IID IID_IEnumHolder; extern const IID IID_IEnumCallback; extern const IID IID_IOleManager; extern const IID IID_IOlePresObj; extern const IID IID_IDebug; extern const IID IID_IDebugStream; extern const CLSID CLSID_PSGenObject; extern const CLSID CLSID_PSClientSite; extern const CLSID CLSID_PSClassObject; extern const CLSID CLSID_PSInPlaceActive; extern const CLSID CLSID_PSInPlaceFrame; extern const CLSID CLSID_PSDragDrop; extern const CLSID CLSID_PSBindCtx; extern const CLSID CLSID_PSEnumerators; extern const CLSID CLSID_StaticMetafile; extern const CLSID CLSID_StaticDib; extern const CLSID CID_CDfsVolume; extern const CLSID CLSID_DCOMAccessControl; extern const CLSID CLSID_GlobalOptions; extern const CLSID CLSID_StdGlobalInterfaceTable; extern const CLSID CLSID_ComBinding; extern const CLSID CLSID_StdEvent; extern const CLSID CLSID_ManualResetEvent; extern const CLSID CLSID_SynchronizeContainer; extern const CLSID CLSID_AddrControl; #line 71 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\cguid.h" #line 75 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\cguid.h" //******************************************** // // CD Forms CLSIDs // //******************************************** // // Form Kernel objects // extern const CLSID CLSID_CCDFormKrnl; extern const CLSID CLSID_CCDPropertyPage; extern const CLSID CLSID_CCDFormDialog; // // Control objects // extern const CLSID CLSID_CCDCommandButton; extern const CLSID CLSID_CCDComboBox; extern const CLSID CLSID_CCDTextBox; extern const CLSID CLSID_CCDCheckBox; extern const CLSID CLSID_CCDLabel; extern const CLSID CLSID_CCDOptionButton; extern const CLSID CLSID_CCDListBox; extern const CLSID CLSID_CCDScrollBar; extern const CLSID CLSID_CCDGroupBox; // // Property Pages // extern const CLSID CLSID_CCDGeneralPropertyPage; extern const CLSID CLSID_CCDGenericPropertyPage; extern const CLSID CLSID_CCDFontPropertyPage; extern const CLSID CLSID_CCDColorPropertyPage; extern const CLSID CLSID_CCDLabelPropertyPage; extern const CLSID CLSID_CCDCheckBoxPropertyPage; extern const CLSID CLSID_CCDTextBoxPropertyPage; extern const CLSID CLSID_CCDOptionButtonPropertyPage; extern const CLSID CLSID_CCDListBoxPropertyPage; extern const CLSID CLSID_CCDCommandButtonPropertyPage; extern const CLSID CLSID_CCDComboBoxPropertyPage; extern const CLSID CLSID_CCDScrollBarPropertyPage; extern const CLSID CLSID_CCDGroupBoxPropertyPage; extern const CLSID CLSID_CCDXObjectPropertyPage; extern const CLSID CLSID_CStdPropertyFrame; extern const CLSID CLSID_CFormPropertyPage; extern const CLSID CLSID_CGridPropertyPage; extern const CLSID CLSID_CWSJArticlePage; extern const CLSID CLSID_CSystemPage; extern const CLSID CLSID_IdentityUnmarshal; extern const CLSID CLSID_InProcFreeMarshaler; extern const CLSID CLSID_Picture_Metafile; extern const CLSID CLSID_Picture_EnhMetafile; extern const CLSID CLSID_Picture_Dib; // // Enumerations // extern const GUID GUID_TRISTATE; } #line 143 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\cguid.h" #line 146 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\cguid.h" #line 458 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" #line 459 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" // COM initialization flags; passed to CoInitialize. typedef enum tagCOINIT { COINIT_APARTMENTTHREADED = 0x2, // Apartment model // These constants are only valid on Windows NT 4.0 COINIT_MULTITHREADED = 0x0, // OLE calls objects on any thread. COINIT_DISABLE_OLE1DDE = 0x4, // Don't use DDE for Ole1 support. COINIT_SPEED_OVER_MEMORY = 0x8, // Trade memory for speed. #line 471 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" } COINIT; /****** STD Object API Prototypes *****************************************/ extern "C" __declspec(dllimport) DWORD __stdcall CoBuildVersion( void ); /* init/uninit */ extern "C" __declspec(dllimport) HRESULT __stdcall CoInitialize( LPVOID pvReserved); extern "C" __declspec(dllimport) void __stdcall CoUninitialize(void); extern "C" __declspec(dllimport) HRESULT __stdcall CoGetMalloc( DWORD dwMemContext, LPMALLOC * ppMalloc); extern "C" __declspec(dllimport) DWORD __stdcall CoGetCurrentProcess(void); extern "C" __declspec(dllimport) HRESULT __stdcall CoRegisterMallocSpy( LPMALLOCSPY pMallocSpy); extern "C" __declspec(dllimport) HRESULT __stdcall CoRevokeMallocSpy(void); extern "C" __declspec(dllimport) HRESULT __stdcall CoCreateStandardMalloc( DWORD memctx, IMalloc * * ppMalloc); extern "C" __declspec(dllimport) HRESULT __stdcall CoInitializeEx( LPVOID pvReserved, DWORD dwCoInit); extern "C" __declspec(dllimport) HRESULT __stdcall CoGetCallerTID( LPDWORD lpdwTID ); extern "C" __declspec(dllimport) HRESULT __stdcall CoGetCurrentLogicalThreadId( GUID *pguid); #line 501 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" extern "C" __declspec(dllimport) HRESULT __stdcall CoRegisterInitializeSpy( LPINITIALIZESPY pSpy, ULARGE_INTEGER *puliCookie); extern "C" __declspec(dllimport) HRESULT __stdcall CoRevokeInitializeSpy( ULARGE_INTEGER uliCookie); extern "C" __declspec(dllimport) HRESULT __stdcall CoGetContextToken( ULONG_PTR* pToken); // COM System Security Descriptors (used when the corresponding registry // entries are absent) typedef enum tagCOMSD { SD_LAUNCHPERMISSIONS = 0, // Machine wide launch permissions SD_ACCESSPERMISSIONS = 1, // Machine wide acesss permissions SD_LAUNCHRESTRICTIONS = 2, // Machine wide launch limits SD_ACCESSRESTRICTIONS = 3 // Machine wide access limits } COMSD; extern "C" __declspec(dllimport) HRESULT __stdcall CoGetSystemSecurityPermissions(COMSD comSDType, PSECURITY_DESCRIPTOR *ppSD); #line 522 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" #line 527 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" typedef struct tagSOleTlsDataPublic { void *pvReserved0[2]; DWORD dwReserved0[3]; void *pvReserved1[1]; DWORD dwReserved1[3]; void *pvReserved2[4]; DWORD dwReserved2[1]; void *pCurrentCtx; } SOleTlsDataPublic; #line 542 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" /* COM+ APIs */ extern "C" __declspec(dllimport) HRESULT __stdcall CoGetObjectContext( const IID & riid, LPVOID * ppv); /* register/revoke/get class objects */ extern "C" __declspec(dllimport) HRESULT __stdcall CoGetClassObject( const IID & rclsid, DWORD dwClsContext, LPVOID pvReserved, const IID & riid, LPVOID * ppv); extern "C" __declspec(dllimport) HRESULT __stdcall CoRegisterClassObject( const IID & rclsid, LPUNKNOWN pUnk, DWORD dwClsContext, DWORD flags, LPDWORD lpdwRegister); extern "C" __declspec(dllimport) HRESULT __stdcall CoRevokeClassObject( DWORD dwRegister); extern "C" __declspec(dllimport) HRESULT __stdcall CoResumeClassObjects(void); extern "C" __declspec(dllimport) HRESULT __stdcall CoSuspendClassObjects(void); extern "C" __declspec(dllimport) ULONG __stdcall CoAddRefServerProcess(void); extern "C" __declspec(dllimport) ULONG __stdcall CoReleaseServerProcess(void); extern "C" __declspec(dllimport) HRESULT __stdcall CoGetPSClsid( const IID & riid, CLSID *pClsid); extern "C" __declspec(dllimport) HRESULT __stdcall CoRegisterPSClsid( const IID & riid, const IID & rclsid); // Registering surrogate processes extern "C" __declspec(dllimport) HRESULT __stdcall CoRegisterSurrogate( LPSURROGATE pSurrogate); /* marshaling interface pointers */ extern "C" __declspec(dllimport) HRESULT __stdcall CoGetMarshalSizeMax( ULONG *pulSize, const IID & riid, LPUNKNOWN pUnk, DWORD dwDestContext, LPVOID pvDestContext, DWORD mshlflags); extern "C" __declspec(dllimport) HRESULT __stdcall CoMarshalInterface( LPSTREAM pStm, const IID & riid, LPUNKNOWN pUnk, DWORD dwDestContext, LPVOID pvDestContext, DWORD mshlflags); extern "C" __declspec(dllimport) HRESULT __stdcall CoUnmarshalInterface( LPSTREAM pStm, const IID & riid, LPVOID * ppv); extern "C" __declspec(dllimport) HRESULT __stdcall CoMarshalHresult( LPSTREAM pstm, HRESULT hresult); extern "C" __declspec(dllimport) HRESULT __stdcall CoUnmarshalHresult( LPSTREAM pstm, HRESULT * phresult); extern "C" __declspec(dllimport) HRESULT __stdcall CoReleaseMarshalData( LPSTREAM pStm); extern "C" __declspec(dllimport) HRESULT __stdcall CoDisconnectObject( LPUNKNOWN pUnk, DWORD dwReserved); extern "C" __declspec(dllimport) HRESULT __stdcall CoLockObjectExternal( LPUNKNOWN pUnk, BOOL fLock, BOOL fLastUnlockReleases); extern "C" __declspec(dllimport) HRESULT __stdcall CoGetStandardMarshal( const IID & riid, LPUNKNOWN pUnk, DWORD dwDestContext, LPVOID pvDestContext, DWORD mshlflags, LPMARSHAL * ppMarshal); extern "C" __declspec(dllimport) HRESULT __stdcall CoGetStdMarshalEx( LPUNKNOWN pUnkOuter, DWORD smexflags, LPUNKNOWN * ppUnkInner); /* flags for CoGetStdMarshalEx */ typedef enum tagSTDMSHLFLAGS { SMEXF_SERVER = 0x01, // server side aggregated std marshaler SMEXF_HANDLER = 0x02 // client side (handler) agg std marshaler } STDMSHLFLAGS; extern "C" __declspec(dllimport) BOOL __stdcall CoIsHandlerConnected( LPUNKNOWN pUnk); // Apartment model inter-thread interface passing helpers extern "C" __declspec(dllimport) HRESULT __stdcall CoMarshalInterThreadInterfaceInStream( const IID & riid, LPUNKNOWN pUnk, LPSTREAM *ppStm); extern "C" __declspec(dllimport) HRESULT __stdcall CoGetInterfaceAndReleaseStream( LPSTREAM pStm, const IID & iid, LPVOID * ppv); extern "C" __declspec(dllimport) HRESULT __stdcall CoCreateFreeThreadedMarshaler( LPUNKNOWN punkOuter, LPUNKNOWN *ppunkMarshal); /* dll loading helpers; keeps track of ref counts and unloads all on exit */ extern "C" __declspec(dllimport) HINSTANCE __stdcall CoLoadLibrary( LPOLESTR lpszLibName, BOOL bAutoFree); extern "C" __declspec(dllimport) void __stdcall CoFreeLibrary( HINSTANCE hInst); extern "C" __declspec(dllimport) void __stdcall CoFreeAllLibraries(void); extern "C" __declspec(dllimport) void __stdcall CoFreeUnusedLibraries(void); extern "C" __declspec(dllimport) void __stdcall CoFreeUnusedLibrariesEx( DWORD dwUnloadDelay, DWORD dwReserved); #line 614 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" #line 618 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" /* Call Security. */ extern "C" __declspec(dllimport) HRESULT __stdcall CoInitializeSecurity( PSECURITY_DESCRIPTOR pSecDesc, LONG cAuthSvc, SOLE_AUTHENTICATION_SERVICE *asAuthSvc, void *pReserved1, DWORD dwAuthnLevel, DWORD dwImpLevel, void *pAuthList, DWORD dwCapabilities, void *pReserved3 ); extern "C" __declspec(dllimport) HRESULT __stdcall CoGetCallContext( const IID & riid, void **ppInterface ); extern "C" __declspec(dllimport) HRESULT __stdcall CoQueryProxyBlanket( IUnknown *pProxy, DWORD *pwAuthnSvc, DWORD *pAuthzSvc, OLECHAR **pServerPrincName, DWORD *pAuthnLevel, DWORD *pImpLevel, RPC_AUTH_IDENTITY_HANDLE *pAuthInfo, DWORD *pCapabilites ); extern "C" __declspec(dllimport) HRESULT __stdcall CoSetProxyBlanket( IUnknown *pProxy, DWORD dwAuthnSvc, DWORD dwAuthzSvc, OLECHAR *pServerPrincName, DWORD dwAuthnLevel, DWORD dwImpLevel, RPC_AUTH_IDENTITY_HANDLE pAuthInfo, DWORD dwCapabilities ); extern "C" __declspec(dllimport) HRESULT __stdcall CoCopyProxy( IUnknown *pProxy, IUnknown **ppCopy ); extern "C" __declspec(dllimport) HRESULT __stdcall CoQueryClientBlanket( DWORD *pAuthnSvc, DWORD *pAuthzSvc, OLECHAR **pServerPrincName, DWORD *pAuthnLevel, DWORD *pImpLevel, RPC_AUTHZ_HANDLE *pPrivs, DWORD *pCapabilities ); extern "C" __declspec(dllimport) HRESULT __stdcall CoImpersonateClient(void); extern "C" __declspec(dllimport) HRESULT __stdcall CoRevertToSelf(void); extern "C" __declspec(dllimport) HRESULT __stdcall CoQueryAuthenticationServices( DWORD *pcAuthSvc, SOLE_AUTHENTICATION_SERVICE **asAuthSvc ); extern "C" __declspec(dllimport) HRESULT __stdcall CoSwitchCallContext( IUnknown *pNewObject, IUnknown **ppOldObject ); #line 699 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" /* helper for creating instances */ extern "C" __declspec(dllimport) HRESULT __stdcall CoCreateInstance( const IID & rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, const IID & riid, LPVOID * ppv); extern "C" __declspec(dllimport) HRESULT __stdcall CoGetInstanceFromFile( COSERVERINFO * pServerInfo, CLSID * pClsid, IUnknown * punkOuter, // only relevant locally DWORD dwClsCtx, DWORD grfMode, OLECHAR * pwszName, DWORD dwCount, MULTI_QI * pResults ); extern "C" __declspec(dllimport) HRESULT __stdcall CoGetInstanceFromIStorage( COSERVERINFO * pServerInfo, CLSID * pClsid, IUnknown * punkOuter, // only relevant locally DWORD dwClsCtx, struct IStorage * pstg, DWORD dwCount, MULTI_QI * pResults ); extern "C" __declspec(dllimport) HRESULT __stdcall CoCreateInstanceEx( const IID & Clsid, IUnknown * punkOuter, // only relevant locally DWORD dwClsCtx, COSERVERINFO * pServerInfo, DWORD dwCount, MULTI_QI * pResults ); #line 742 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" /* Call related APIs */ extern "C" __declspec(dllimport) HRESULT __stdcall CoGetCancelObject( DWORD dwThreadId, const IID & iid, void **ppUnk); extern "C" __declspec(dllimport) HRESULT __stdcall CoSetCancelObject( IUnknown *pUnk); extern "C" __declspec(dllimport) HRESULT __stdcall CoCancelCall( DWORD dwThreadId, ULONG ulTimeout); extern "C" __declspec(dllimport) HRESULT __stdcall CoTestCancel(void); extern "C" __declspec(dllimport) HRESULT __stdcall CoEnableCallCancellation( LPVOID pReserved); extern "C" __declspec(dllimport) HRESULT __stdcall CoDisableCallCancellation( LPVOID pReserved); extern "C" __declspec(dllimport) HRESULT __stdcall CoAllowSetForegroundWindow( IUnknown *pUnk, LPVOID lpvReserved); extern "C" __declspec(dllimport) HRESULT __stdcall DcomChannelSetHResult( LPVOID pvReserved, ULONG* pulReserved, HRESULT appsHR); #line 771 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" /* other helpers */ extern "C" __declspec(dllimport) HRESULT __stdcall StringFromCLSID( const IID & rclsid, LPOLESTR * lplpsz); extern "C" __declspec(dllimport) HRESULT __stdcall CLSIDFromString( LPOLESTR lpsz, LPCLSID pclsid); extern "C" __declspec(dllimport) HRESULT __stdcall StringFromIID( const IID & rclsid, LPOLESTR * lplpsz); extern "C" __declspec(dllimport) HRESULT __stdcall IIDFromString( LPOLESTR lpsz, LPIID lpiid); extern "C" __declspec(dllimport) BOOL __stdcall CoIsOle1Class( const IID & rclsid); extern "C" __declspec(dllimport) HRESULT __stdcall ProgIDFromCLSID ( const IID & clsid, LPOLESTR * lplpszProgID); extern "C" __declspec(dllimport) HRESULT __stdcall CLSIDFromProgID ( LPCOLESTR lpszProgID, LPCLSID lpclsid); extern "C" __declspec(dllimport) HRESULT __stdcall CLSIDFromProgIDEx ( LPCOLESTR lpszProgID, LPCLSID lpclsid); extern "C" __declspec(dllimport) int __stdcall StringFromGUID2( const GUID & rguid, LPOLESTR lpsz, int cchMax); extern "C" __declspec(dllimport) HRESULT __stdcall CoCreateGuid( GUID *pguid); extern "C" __declspec(dllimport) BOOL __stdcall CoFileTimeToDosDateTime( FILETIME * lpFileTime, LPWORD lpDosDate, LPWORD lpDosTime); extern "C" __declspec(dllimport) BOOL __stdcall CoDosDateTimeToFileTime( WORD nDosDate, WORD nDosTime, FILETIME * lpFileTime); extern "C" __declspec(dllimport) HRESULT __stdcall CoFileTimeNow( FILETIME * lpFileTime ); extern "C" __declspec(dllimport) HRESULT __stdcall CoRegisterMessageFilter( LPMESSAGEFILTER lpMessageFilter, LPMESSAGEFILTER * lplpMessageFilter ); extern "C" __declspec(dllimport) HRESULT __stdcall CoRegisterChannelHook( const GUID & ExtensionUuid, IChannelHook *pChannelHook ); #line 800 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" /* Synchronization API */ extern "C" __declspec(dllimport) HRESULT __stdcall CoWaitForMultipleHandles ( DWORD dwFlags, DWORD dwTimeout, ULONG cHandles, LPHANDLE pHandles, LPDWORD lpdwindex); /* Flags for Synchronization API and Classes */ typedef enum tagCOWAIT_FLAGS { COWAIT_WAITALL = 1, COWAIT_ALERTABLE = 2, COWAIT_INPUTAVAILABLE = 4 }COWAIT_FLAGS; #line 821 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" /* for flushing OLESCM remote binding handles */ extern "C" __declspec(dllimport) HRESULT __stdcall CoInvalidateRemoteMachineBindings( LPOLESTR pszMachineName); #line 828 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" /* TreatAs APIS */ extern "C" __declspec(dllimport) HRESULT __stdcall CoGetTreatAsClass( const IID & clsidOld, LPCLSID pClsidNew); extern "C" __declspec(dllimport) HRESULT __stdcall CoTreatAsClass( const IID & clsidOld, const IID & clsidNew); /* the server dlls must define their DllGetClassObject and DllCanUnloadNow * to match these; the typedefs are located here to ensure all are changed at * the same time. */ //#ifdef _MAC //typedef STDAPICALLTYPE HRESULT (* LPFNGETCLASSOBJECT) (REFCLSID, REFIID, LPVOID *); //#else typedef HRESULT (__stdcall * LPFNGETCLASSOBJECT) (const IID &, const IID &, LPVOID *); //#endif //#ifdef _MAC //typedef STDAPICALLTYPE HRESULT (* LPFNCANUNLOADNOW)(void); //#else typedef HRESULT (__stdcall * LPFNCANUNLOADNOW)(void); //#endif extern "C" HRESULT __stdcall DllGetClassObject( const IID & rclsid, const IID & riid, LPVOID * ppv); extern "C" HRESULT __stdcall DllCanUnloadNow(void); /****** Default Memory Allocation ******************************************/ extern "C" __declspec(dllimport) LPVOID __stdcall CoTaskMemAlloc( SIZE_T cb); extern "C" __declspec(dllimport) LPVOID __stdcall CoTaskMemRealloc( LPVOID pv, SIZE_T cb); extern "C" __declspec(dllimport) void __stdcall CoTaskMemFree( LPVOID pv); /****** DV APIs ***********************************************************/ /* This function is declared in objbase.h and ole2.h */ extern "C" __declspec(dllimport) HRESULT __stdcall CreateDataAdviseHolder( LPDATAADVISEHOLDER * ppDAHolder); extern "C" __declspec(dllimport) HRESULT __stdcall CreateDataCache( LPUNKNOWN pUnkOuter, const IID & rclsid, const IID & iid, LPVOID * ppv); /****** Storage API Prototypes ********************************************/ extern "C" __declspec(dllimport) HRESULT __stdcall StgCreateDocfile( const WCHAR* pwcsName, DWORD grfMode, DWORD reserved, IStorage** ppstgOpen); extern "C" __declspec(dllimport) HRESULT __stdcall StgCreateDocfileOnILockBytes( ILockBytes* plkbyt, DWORD grfMode, DWORD reserved, IStorage** ppstgOpen); extern "C" __declspec(dllimport) HRESULT __stdcall StgOpenStorage( const WCHAR* pwcsName, IStorage* pstgPriority, DWORD grfMode, SNB snbExclude, DWORD reserved, IStorage** ppstgOpen); extern "C" __declspec(dllimport) HRESULT __stdcall StgOpenStorageOnILockBytes( ILockBytes* plkbyt, IStorage* pstgPriority, DWORD grfMode, SNB snbExclude, DWORD reserved, IStorage** ppstgOpen); extern "C" __declspec(dllimport) HRESULT __stdcall StgIsStorageFile( const WCHAR* pwcsName); extern "C" __declspec(dllimport) HRESULT __stdcall StgIsStorageILockBytes( ILockBytes* plkbyt); extern "C" __declspec(dllimport) HRESULT __stdcall StgSetTimes( const WCHAR* lpszName, const FILETIME* pctime, const FILETIME* patime, const FILETIME* pmtime); extern "C" __declspec(dllimport) HRESULT __stdcall StgOpenAsyncDocfileOnIFillLockBytes( IFillLockBytes *pflb, DWORD grfMode, DWORD asyncFlags, IStorage** ppstgOpen); extern "C" __declspec(dllimport) HRESULT __stdcall StgGetIFillLockBytesOnILockBytes( ILockBytes *pilb, IFillLockBytes** ppflb); extern "C" __declspec(dllimport) HRESULT __stdcall StgGetIFillLockBytesOnFile( OLECHAR const *pwcsName, IFillLockBytes** ppflb); extern "C" __declspec(dllimport) HRESULT __stdcall StgOpenLayoutDocfile( OLECHAR const *pwcsDfName, DWORD grfMode, DWORD reserved, IStorage** ppstgOpen); // STG initialization options for StgCreateStorageEx and StgOpenStorageEx #line 926 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" #line 930 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" typedef struct tagSTGOPTIONS { USHORT usVersion; // Versions 1 and 2 supported USHORT reserved; // must be 0 for padding ULONG ulSectorSize; // docfile header sector size (512) const WCHAR *pwcsTemplateFile; // version 2 or above #line 939 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" } STGOPTIONS; extern "C" __declspec(dllimport) HRESULT __stdcall StgCreateStorageEx ( const WCHAR* pwcsName, DWORD grfMode, DWORD stgfmt, // enum DWORD grfAttrs, STGOPTIONS* pStgOptions, PSECURITY_DESCRIPTOR pSecurityDescriptor, const IID & riid, void** ppObjectOpen); extern "C" __declspec(dllimport) HRESULT __stdcall StgOpenStorageEx ( const WCHAR* pwcsName, DWORD grfMode, DWORD stgfmt, // enum DWORD grfAttrs, STGOPTIONS* pStgOptions, PSECURITY_DESCRIPTOR pSecurityDescriptor, const IID & riid, void** ppObjectOpen); // // Moniker APIs // extern "C" __declspec(dllimport) HRESULT __stdcall BindMoniker( LPMONIKER pmk, DWORD grfOpt, const IID & iidResult, LPVOID * ppvResult); extern "C" __declspec(dllimport) HRESULT __stdcall CoInstall( IBindCtx * pbc, DWORD dwFlags, uCLSSPEC * pClassSpec, QUERYCONTEXT * pQuery, LPWSTR pszCodeBase); extern "C" __declspec(dllimport) HRESULT __stdcall CoGetObject( LPCWSTR pszName, BIND_OPTS *pBindOptions, const IID & riid, void **ppv); extern "C" __declspec(dllimport) HRESULT __stdcall MkParseDisplayName( LPBC pbc, LPCOLESTR szUserName, ULONG * pchEaten, LPMONIKER * ppmk); extern "C" __declspec(dllimport) HRESULT __stdcall MonikerRelativePathTo( LPMONIKER pmkSrc, LPMONIKER pmkDest, LPMONIKER * ppmkRelPath, BOOL dwReserved); extern "C" __declspec(dllimport) HRESULT __stdcall MonikerCommonPrefixWith( LPMONIKER pmkThis, LPMONIKER pmkOther, LPMONIKER * ppmkCommon); extern "C" __declspec(dllimport) HRESULT __stdcall CreateBindCtx( DWORD reserved, LPBC * ppbc); extern "C" __declspec(dllimport) HRESULT __stdcall CreateGenericComposite( LPMONIKER pmkFirst, LPMONIKER pmkRest, LPMONIKER * ppmkComposite); extern "C" __declspec(dllimport) HRESULT __stdcall GetClassFile ( LPCOLESTR szFilename, CLSID * pclsid); extern "C" __declspec(dllimport) HRESULT __stdcall CreateClassMoniker( const IID & rclsid, LPMONIKER * ppmk); extern "C" __declspec(dllimport) HRESULT __stdcall CreateFileMoniker( LPCOLESTR lpszPathName, LPMONIKER * ppmk); extern "C" __declspec(dllimport) HRESULT __stdcall CreateItemMoniker( LPCOLESTR lpszDelim, LPCOLESTR lpszItem, LPMONIKER * ppmk); extern "C" __declspec(dllimport) HRESULT __stdcall CreateAntiMoniker( LPMONIKER * ppmk); extern "C" __declspec(dllimport) HRESULT __stdcall CreatePointerMoniker( LPUNKNOWN punk, LPMONIKER * ppmk); extern "C" __declspec(dllimport) HRESULT __stdcall CreateObjrefMoniker( LPUNKNOWN punk, LPMONIKER * ppmk); extern "C" __declspec(dllimport) HRESULT __stdcall GetRunningObjectTable( DWORD reserved, LPRUNNINGOBJECTTABLE * pprot); #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" /* this ALWAYS GENERATED file contains the definitions for the interfaces */ /* File created by MIDL compiler version 7.00.0499 */ /* Compiler settings for urlmon.idl: Oicf, W1, Zp8, env=Win32 (32b run) protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level: __declspec(uuid()), __declspec(selectany), __declspec(novtable) DECLSPEC_UUID(), MIDL_INTERFACE() */ //@@MIDL_FILE_HEADING( ) #pragma warning( disable: 4049 ) /* verify that the version is high enough to compile this file*/ /* verify that the version is high enough to compile this file*/ #pragma once #line 48 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" /* Forward Declarations */ typedef struct IPersistMoniker IPersistMoniker; #line 55 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" typedef struct IMonikerProp IMonikerProp; #line 61 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" typedef struct IBindProtocol IBindProtocol; #line 67 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" typedef struct IBinding IBinding; #line 73 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" typedef struct IBindStatusCallback IBindStatusCallback; #line 79 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" typedef struct IAuthenticate IAuthenticate; #line 85 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" typedef struct IHttpNegotiate IHttpNegotiate; #line 91 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" typedef struct IHttpNegotiate2 IHttpNegotiate2; #line 97 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" typedef struct IWinInetFileStream IWinInetFileStream; #line 103 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" typedef struct IWindowForBindingUI IWindowForBindingUI; #line 109 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" typedef struct ICodeInstall ICodeInstall; #line 115 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" typedef struct IUri IUri; #line 121 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" typedef struct IUriContainer IUriContainer; #line 127 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" typedef struct IUriBuilder IUriBuilder; #line 133 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" typedef struct IUriBuilderFactory IUriBuilderFactory; #line 139 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" typedef struct IWinInetInfo IWinInetInfo; #line 145 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" typedef struct IHttpSecurity IHttpSecurity; #line 151 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" typedef struct IWinInetHttpInfo IWinInetHttpInfo; #line 157 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" typedef struct IWinInetCacheHints IWinInetCacheHints; #line 163 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" typedef struct IWinInetCacheHints2 IWinInetCacheHints2; #line 169 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" typedef struct IBindHost IBindHost; #line 175 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" typedef struct IInternet IInternet; #line 181 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" typedef struct IInternetBindInfo IInternetBindInfo; #line 187 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" typedef struct IInternetProtocolRoot IInternetProtocolRoot; #line 193 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" typedef struct IInternetProtocol IInternetProtocol; #line 199 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" typedef struct IInternetProtocolEx IInternetProtocolEx; #line 205 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" typedef struct IInternetProtocolSink IInternetProtocolSink; #line 211 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" typedef struct IInternetProtocolSinkStackable IInternetProtocolSinkStackable; #line 217 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" typedef struct IInternetSession IInternetSession; #line 223 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" typedef struct IInternetThreadSwitch IInternetThreadSwitch; #line 229 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" typedef struct IInternetPriority IInternetPriority; #line 235 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" typedef struct IInternetProtocolInfo IInternetProtocolInfo; #line 241 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" typedef struct IInternetSecurityMgrSite IInternetSecurityMgrSite; #line 247 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" typedef struct IInternetSecurityManager IInternetSecurityManager; #line 253 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" typedef struct IInternetSecurityManagerEx IInternetSecurityManagerEx; #line 259 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" typedef struct IInternetSecurityManagerEx2 IInternetSecurityManagerEx2; #line 265 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" typedef struct IZoneIdentifier IZoneIdentifier; #line 271 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" typedef struct IInternetHostSecurityManager IInternetHostSecurityManager; #line 277 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" typedef struct IInternetZoneManager IInternetZoneManager; #line 283 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" typedef struct IInternetZoneManagerEx IInternetZoneManagerEx; #line 289 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" typedef struct IInternetZoneManagerEx2 IInternetZoneManagerEx2; #line 295 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" typedef struct ISoftDistExt ISoftDistExt; #line 301 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" typedef struct ICatalogFileInfo ICatalogFileInfo; #line 307 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" typedef struct IDataFilter IDataFilter; #line 313 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" typedef struct IEncodingFilterFactory IEncodingFilterFactory; #line 319 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" typedef struct IWrappedProtocol IWrappedProtocol; #line 325 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" /* header files for imported files */ #line 1 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" /* this ALWAYS GENERATED file contains the definitions for the interfaces */ /* File created by MIDL compiler version 7.00.0499 */ /* Compiler settings for oleidl.idl: Oicf, W1, Zp8, env=Win32 (32b run) protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level: __declspec(uuid()), __declspec(selectany), __declspec(novtable) DECLSPEC_UUID(), MIDL_INTERFACE() */ //@@MIDL_FILE_HEADING( ) #pragma warning( disable: 4049 ) /* verify that the version is high enough to compile this file*/ /* verify that the version is high enough to compile this file*/ #pragma once #line 48 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" /* Forward Declarations */ typedef struct IOleAdviseHolder IOleAdviseHolder; #line 55 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" typedef struct IOleCache IOleCache; #line 61 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" typedef struct IOleCache2 IOleCache2; #line 67 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" typedef struct IOleCacheControl IOleCacheControl; #line 73 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" typedef struct IParseDisplayName IParseDisplayName; #line 79 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" typedef struct IOleContainer IOleContainer; #line 85 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" typedef struct IOleClientSite IOleClientSite; #line 91 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" typedef struct IOleObject IOleObject; #line 97 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" typedef struct IOleWindow IOleWindow; #line 103 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" typedef struct IOleLink IOleLink; #line 109 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" typedef struct IOleItemContainer IOleItemContainer; #line 115 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" typedef struct IOleInPlaceUIWindow IOleInPlaceUIWindow; #line 121 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" typedef struct IOleInPlaceActiveObject IOleInPlaceActiveObject; #line 127 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" typedef struct IOleInPlaceFrame IOleInPlaceFrame; #line 133 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" typedef struct IOleInPlaceObject IOleInPlaceObject; #line 139 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" typedef struct IOleInPlaceSite IOleInPlaceSite; #line 145 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" typedef struct IContinue IContinue; #line 151 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" typedef struct IViewObject IViewObject; #line 157 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" typedef struct IViewObject2 IViewObject2; #line 163 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" typedef struct IDropSource IDropSource; #line 169 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" typedef struct IDropTarget IDropTarget; #line 175 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" typedef struct IDropSourceNotify IDropSourceNotify; #line 181 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" typedef struct IEnumOLEVERB IEnumOLEVERB; #line 187 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" /* header files for imported files */ extern "C"{ #line 195 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" /* interface __MIDL_itf_oleidl_0000_0000 */ /* [local] */ //+------------------------------------------------------------------------- // // Microsoft Windows // Copyright (c) Microsoft Corporation. All rights reserved. // //-------------------------------------------------------------------------- #pragma once #line 209 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" extern RPC_IF_HANDLE __MIDL_itf_oleidl_0000_0000_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_oleidl_0000_0000_v0_0_s_ifspec; /* interface IOleAdviseHolder */ /* [uuid][object][local] */ typedef /* [unique] */ IOleAdviseHolder *LPOLEADVISEHOLDER; extern "C" const IID IID_IOleAdviseHolder; struct __declspec(uuid("00000111-0000-0000-C000-000000000046")) __declspec(novtable) IOleAdviseHolder : public IUnknown { public: virtual HRESULT __stdcall Advise( /* [unique][in] */ IAdviseSink *pAdvise, /* [out] */ DWORD *pdwConnection) = 0; virtual HRESULT __stdcall Unadvise( /* [in] */ DWORD dwConnection) = 0; virtual HRESULT __stdcall EnumAdvise( /* [out] */ IEnumSTATDATA **ppenumAdvise) = 0; virtual HRESULT __stdcall SendOnRename( /* [unique][in] */ IMoniker *pmk) = 0; virtual HRESULT __stdcall SendOnSave( void) = 0; virtual HRESULT __stdcall SendOnClose( void) = 0; }; #line 338 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" #line 343 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" /* interface IOleCache */ /* [unique][uuid][object] */ typedef /* [unique] */ IOleCache *LPOLECACHE; extern "C" const IID IID_IOleCache; struct __declspec(uuid("0000011e-0000-0000-C000-000000000046")) __declspec(novtable) IOleCache : public IUnknown { public: virtual HRESULT __stdcall Cache( /* [unique][in] */ FORMATETC *pformatetc, /* [in] */ DWORD advf, /* [out] */ DWORD *pdwConnection) = 0; virtual HRESULT __stdcall Uncache( /* [in] */ DWORD dwConnection) = 0; virtual HRESULT __stdcall EnumCache( /* [out] */ IEnumSTATDATA **ppenumSTATDATA) = 0; virtual HRESULT __stdcall InitCache( /* [unique][in] */ IDataObject *pDataObject) = 0; virtual HRESULT __stdcall SetData( /* [unique][in] */ FORMATETC *pformatetc, /* [unique][in] */ STGMEDIUM *pmedium, /* [in] */ BOOL fRelease) = 0; }; #line 467 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" #line 472 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" /* interface IOleCache2 */ /* [unique][uuid][object] */ typedef /* [unique] */ IOleCache2 *LPOLECACHE2; typedef /* [v1_enum] */ enum tagDISCARDCACHE { DISCARDCACHE_SAVEIFDIRTY = 0, DISCARDCACHE_NOSAVE = 1 } DISCARDCACHE; extern "C" const IID IID_IOleCache2; struct __declspec(uuid("00000128-0000-0000-C000-000000000046")) __declspec(novtable) IOleCache2 : public IOleCache { public: virtual /* [local] */ HRESULT __stdcall UpdateCache( /* [in] */ LPDATAOBJECT pDataObject, /* [in] */ DWORD grfUpdf, /* [in] */ LPVOID pReserved) = 0; virtual HRESULT __stdcall DiscardCache( /* [in] */ DWORD dwDiscardOptions) = 0; }; #line 626 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" /* [call_as] */ HRESULT __stdcall IOleCache2_RemoteUpdateCache_Proxy( IOleCache2 * This, /* [in] */ LPDATAOBJECT pDataObject, /* [in] */ DWORD grfUpdf, /* [in] */ LONG_PTR pReserved); void __stdcall IOleCache2_RemoteUpdateCache_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #line 645 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" /* interface IOleCacheControl */ /* [uuid][object] */ typedef /* [unique] */ IOleCacheControl *LPOLECACHECONTROL; extern "C" const IID IID_IOleCacheControl; struct __declspec(uuid("00000129-0000-0000-C000-000000000046")) __declspec(novtable) IOleCacheControl : public IUnknown { public: virtual HRESULT __stdcall OnRun( LPDATAOBJECT pDataObject) = 0; virtual HRESULT __stdcall OnStop( void) = 0; }; #line 729 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" #line 734 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" /* interface IParseDisplayName */ /* [unique][uuid][object] */ typedef /* [unique] */ IParseDisplayName *LPPARSEDISPLAYNAME; extern "C" const IID IID_IParseDisplayName; struct __declspec(uuid("0000011a-0000-0000-C000-000000000046")) __declspec(novtable) IParseDisplayName : public IUnknown { public: virtual HRESULT __stdcall ParseDisplayName( /* [unique][in] */ IBindCtx *pbc, /* [in] */ LPOLESTR pszDisplayName, /* [out] */ ULONG *pchEaten, /* [out] */ IMoniker **ppmkOut) = 0; }; #line 816 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" #line 821 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" /* interface IOleContainer */ /* [unique][uuid][object] */ typedef /* [unique] */ IOleContainer *LPOLECONTAINER; extern "C" const IID IID_IOleContainer; struct __declspec(uuid("0000011b-0000-0000-C000-000000000046")) __declspec(novtable) IOleContainer : public IParseDisplayName { public: virtual HRESULT __stdcall EnumObjects( /* [in] */ DWORD grfFlags, /* [out] */ IEnumUnknown **ppenum) = 0; virtual HRESULT __stdcall LockContainer( /* [in] */ BOOL fLock) = 0; }; #line 920 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" #line 925 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" /* interface IOleClientSite */ /* [unique][uuid][object] */ typedef /* [unique] */ IOleClientSite *LPOLECLIENTSITE; extern "C" const IID IID_IOleClientSite; struct __declspec(uuid("00000118-0000-0000-C000-000000000046")) __declspec(novtable) IOleClientSite : public IUnknown { public: virtual HRESULT __stdcall SaveObject( void) = 0; virtual HRESULT __stdcall GetMoniker( /* [in] */ DWORD dwAssign, /* [in] */ DWORD dwWhichMoniker, /* [out] */ IMoniker **ppmk) = 0; virtual HRESULT __stdcall GetContainer( /* [out] */ IOleContainer **ppContainer) = 0; virtual HRESULT __stdcall ShowObject( void) = 0; virtual HRESULT __stdcall OnShowWindow( /* [in] */ BOOL fShow) = 0; virtual HRESULT __stdcall RequestNewObjectLayout( void) = 0; }; #line 1049 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" #line 1054 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" /* interface IOleObject */ /* [unique][uuid][object] */ typedef /* [unique] */ IOleObject *LPOLEOBJECT; typedef enum tagOLEGETMONIKER { OLEGETMONIKER_ONLYIFTHERE = 1, OLEGETMONIKER_FORCEASSIGN = 2, OLEGETMONIKER_UNASSIGN = 3, OLEGETMONIKER_TEMPFORUSER = 4 } OLEGETMONIKER; typedef enum tagOLEWHICHMK { OLEWHICHMK_CONTAINER = 1, OLEWHICHMK_OBJREL = 2, OLEWHICHMK_OBJFULL = 3 } OLEWHICHMK; typedef enum tagUSERCLASSTYPE { USERCLASSTYPE_FULL = 1, USERCLASSTYPE_SHORT = 2, USERCLASSTYPE_APPNAME = 3 } USERCLASSTYPE; typedef enum tagOLEMISC { OLEMISC_RECOMPOSEONRESIZE = 0x1, OLEMISC_ONLYICONIC = 0x2, OLEMISC_INSERTNOTREPLACE = 0x4, OLEMISC_STATIC = 0x8, OLEMISC_CANTLINKINSIDE = 0x10, OLEMISC_CANLINKBYOLE1 = 0x20, OLEMISC_ISLINKOBJECT = 0x40, OLEMISC_INSIDEOUT = 0x80, OLEMISC_ACTIVATEWHENVISIBLE = 0x100, OLEMISC_RENDERINGISDEVICEINDEPENDENT = 0x200, OLEMISC_INVISIBLEATRUNTIME = 0x400, OLEMISC_ALWAYSRUN = 0x800, OLEMISC_ACTSLIKEBUTTON = 0x1000, OLEMISC_ACTSLIKELABEL = 0x2000, OLEMISC_NOUIACTIVATE = 0x4000, OLEMISC_ALIGNABLE = 0x8000, OLEMISC_SIMPLEFRAME = 0x10000, OLEMISC_SETCLIENTSITEFIRST = 0x20000, OLEMISC_IMEMODE = 0x40000, OLEMISC_IGNOREACTIVATEWHENVISIBLE = 0x80000, OLEMISC_WANTSTOMENUMERGE = 0x100000, OLEMISC_SUPPORTSMULTILEVELUNDO = 0x200000 } OLEMISC; typedef enum tagOLECLOSE { OLECLOSE_SAVEIFDIRTY = 0, OLECLOSE_NOSAVE = 1, OLECLOSE_PROMPTSAVE = 2 } OLECLOSE; extern "C" const IID IID_IOleObject; struct __declspec(uuid("00000112-0000-0000-C000-000000000046")) __declspec(novtable) IOleObject : public IUnknown { public: virtual HRESULT __stdcall SetClientSite( /* [unique][in] */ IOleClientSite *pClientSite) = 0; virtual HRESULT __stdcall GetClientSite( /* [out] */ IOleClientSite **ppClientSite) = 0; virtual HRESULT __stdcall SetHostNames( /* [in] */ LPCOLESTR szContainerApp, /* [unique][in] */ LPCOLESTR szContainerObj) = 0; virtual HRESULT __stdcall Close( /* [in] */ DWORD dwSaveOption) = 0; virtual HRESULT __stdcall SetMoniker( /* [in] */ DWORD dwWhichMoniker, /* [unique][in] */ IMoniker *pmk) = 0; virtual HRESULT __stdcall GetMoniker( /* [in] */ DWORD dwAssign, /* [in] */ DWORD dwWhichMoniker, /* [out] */ IMoniker **ppmk) = 0; virtual HRESULT __stdcall InitFromData( /* [unique][in] */ IDataObject *pDataObject, /* [in] */ BOOL fCreation, /* [in] */ DWORD dwReserved) = 0; virtual HRESULT __stdcall GetClipboardData( /* [in] */ DWORD dwReserved, /* [out] */ IDataObject **ppDataObject) = 0; virtual HRESULT __stdcall DoVerb( /* [in] */ LONG iVerb, /* [unique][in] */ LPMSG lpmsg, /* [unique][in] */ IOleClientSite *pActiveSite, /* [in] */ LONG lindex, /* [in] */ HWND hwndParent, /* [unique][in] */ LPCRECT lprcPosRect) = 0; virtual HRESULT __stdcall EnumVerbs( /* [out] */ IEnumOLEVERB **ppEnumOleVerb) = 0; virtual HRESULT __stdcall Update( void) = 0; virtual HRESULT __stdcall IsUpToDate( void) = 0; virtual HRESULT __stdcall GetUserClassID( /* [out] */ CLSID *pClsid) = 0; virtual HRESULT __stdcall GetUserType( /* [in] */ DWORD dwFormOfType, /* [out] */ LPOLESTR *pszUserType) = 0; virtual HRESULT __stdcall SetExtent( /* [in] */ DWORD dwDrawAspect, /* [in] */ SIZEL *psizel) = 0; virtual HRESULT __stdcall GetExtent( /* [in] */ DWORD dwDrawAspect, /* [out] */ SIZEL *psizel) = 0; virtual HRESULT __stdcall Advise( /* [unique][in] */ IAdviseSink *pAdvSink, /* [out] */ DWORD *pdwConnection) = 0; virtual HRESULT __stdcall Unadvise( /* [in] */ DWORD dwConnection) = 0; virtual HRESULT __stdcall EnumAdvise( /* [out] */ IEnumSTATDATA **ppenumAdvise) = 0; virtual HRESULT __stdcall GetMiscStatus( /* [in] */ DWORD dwAspect, /* [out] */ DWORD *pdwStatus) = 0; virtual HRESULT __stdcall SetColorScheme( /* [in] */ LOGPALETTE *pLogpal) = 0; }; #line 1415 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" #line 1420 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" /* interface IOLETypes */ /* [uuid] */ typedef enum tagOLERENDER { OLERENDER_NONE = 0, OLERENDER_DRAW = 1, OLERENDER_FORMAT = 2, OLERENDER_ASIS = 3 } OLERENDER; typedef OLERENDER *LPOLERENDER; typedef struct tagOBJECTDESCRIPTOR { ULONG cbSize; CLSID clsid; DWORD dwDrawAspect; SIZEL sizel; POINTL pointl; DWORD dwStatus; DWORD dwFullUserTypeName; DWORD dwSrcOfCopy; } OBJECTDESCRIPTOR; typedef struct tagOBJECTDESCRIPTOR *POBJECTDESCRIPTOR; typedef struct tagOBJECTDESCRIPTOR *LPOBJECTDESCRIPTOR; typedef struct tagOBJECTDESCRIPTOR LINKSRCDESCRIPTOR; typedef struct tagOBJECTDESCRIPTOR *PLINKSRCDESCRIPTOR; typedef struct tagOBJECTDESCRIPTOR *LPLINKSRCDESCRIPTOR; extern RPC_IF_HANDLE IOLETypes_v0_0_c_ifspec; extern RPC_IF_HANDLE IOLETypes_v0_0_s_ifspec; #line 1465 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" /* interface IOleWindow */ /* [unique][uuid][object] */ typedef /* [unique] */ IOleWindow *LPOLEWINDOW; extern "C" const IID IID_IOleWindow; struct __declspec(uuid("00000114-0000-0000-C000-000000000046")) __declspec(novtable) IOleWindow : public IUnknown { public: virtual /* [input_sync] */ HRESULT __stdcall GetWindow( /* [out] */ HWND *phwnd) = 0; virtual HRESULT __stdcall ContextSensitiveHelp( /* [in] */ BOOL fEnterMode) = 0; }; #line 1550 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" #line 1555 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" /* interface IOleLink */ /* [uuid][object] */ typedef /* [unique] */ IOleLink *LPOLELINK; typedef enum tagOLEUPDATE { OLEUPDATE_ALWAYS = 1, OLEUPDATE_ONCALL = 3 } OLEUPDATE; typedef OLEUPDATE *LPOLEUPDATE; typedef OLEUPDATE *POLEUPDATE; typedef enum tagOLELINKBIND { OLELINKBIND_EVENIFCLASSDIFF = 1 } OLELINKBIND; extern "C" const IID IID_IOleLink; struct __declspec(uuid("0000011d-0000-0000-C000-000000000046")) __declspec(novtable) IOleLink : public IUnknown { public: virtual HRESULT __stdcall SetUpdateOptions( /* [in] */ DWORD dwUpdateOpt) = 0; virtual HRESULT __stdcall GetUpdateOptions( /* [out] */ DWORD *pdwUpdateOpt) = 0; virtual HRESULT __stdcall SetSourceMoniker( /* [unique][in] */ IMoniker *pmk, /* [in] */ const IID & rclsid) = 0; virtual HRESULT __stdcall GetSourceMoniker( /* [out] */ IMoniker **ppmk) = 0; virtual HRESULT __stdcall SetSourceDisplayName( /* [in] */ LPCOLESTR pszStatusText) = 0; virtual HRESULT __stdcall GetSourceDisplayName( /* [out] */ LPOLESTR *ppszDisplayName) = 0; virtual HRESULT __stdcall BindToSource( /* [in] */ DWORD bindflags, /* [unique][in] */ IBindCtx *pbc) = 0; virtual HRESULT __stdcall BindIfRunning( void) = 0; virtual HRESULT __stdcall GetBoundSource( /* [out] */ IUnknown **ppunk) = 0; virtual HRESULT __stdcall UnbindSource( void) = 0; virtual HRESULT __stdcall Update( /* [unique][in] */ IBindCtx *pbc) = 0; }; #line 1746 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" #line 1751 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" /* interface IOleItemContainer */ /* [unique][uuid][object] */ typedef /* [unique] */ IOleItemContainer *LPOLEITEMCONTAINER; typedef enum tagBINDSPEED { BINDSPEED_INDEFINITE = 1, BINDSPEED_MODERATE = 2, BINDSPEED_IMMEDIATE = 3 } BINDSPEED; typedef /* [v1_enum] */ enum tagOLECONTF { OLECONTF_EMBEDDINGS = 1, OLECONTF_LINKS = 2, OLECONTF_OTHERS = 4, OLECONTF_ONLYUSER = 8, OLECONTF_ONLYIFRUNNING = 16 } OLECONTF; extern "C" const IID IID_IOleItemContainer; struct __declspec(uuid("0000011c-0000-0000-C000-000000000046")) __declspec(novtable) IOleItemContainer : public IOleContainer { public: virtual HRESULT __stdcall GetObjectW( /* [in] */ LPOLESTR pszItem, /* [in] */ DWORD dwSpeedNeeded, /* [unique][in] */ IBindCtx *pbc, /* [in] */ const IID & riid, /* [iid_is][out] */ void **ppvObject) = 0; virtual HRESULT __stdcall GetObjectStorage( /* [in] */ LPOLESTR pszItem, /* [unique][in] */ IBindCtx *pbc, /* [in] */ const IID & riid, /* [iid_is][out] */ void **ppvStorage) = 0; virtual HRESULT __stdcall IsRunning( /* [in] */ LPOLESTR pszItem) = 0; }; #line 1904 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" #line 1909 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" /* interface IOleInPlaceUIWindow */ /* [unique][uuid][object] */ typedef /* [unique] */ IOleInPlaceUIWindow *LPOLEINPLACEUIWINDOW; typedef RECT BORDERWIDTHS; typedef LPRECT LPBORDERWIDTHS; typedef LPCRECT LPCBORDERWIDTHS; extern "C" const IID IID_IOleInPlaceUIWindow; struct __declspec(uuid("00000115-0000-0000-C000-000000000046")) __declspec(novtable) IOleInPlaceUIWindow : public IOleWindow { public: virtual /* [input_sync] */ HRESULT __stdcall GetBorder( /* [out] */ LPRECT lprectBorder) = 0; virtual /* [input_sync] */ HRESULT __stdcall RequestBorderSpace( /* [unique][in] */ LPCBORDERWIDTHS pborderwidths) = 0; virtual /* [input_sync] */ HRESULT __stdcall SetBorderSpace( /* [unique][in] */ LPCBORDERWIDTHS pborderwidths) = 0; virtual HRESULT __stdcall SetActiveObject( /* [unique][in] */ IOleInPlaceActiveObject *pActiveObject, /* [unique][string][in] */ LPCOLESTR pszObjName) = 0; }; #line 2038 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" #line 2043 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" /* interface IOleInPlaceActiveObject */ /* [uuid][object] */ typedef /* [unique] */ IOleInPlaceActiveObject *LPOLEINPLACEACTIVEOBJECT; extern "C" const IID IID_IOleInPlaceActiveObject; struct __declspec(uuid("00000117-0000-0000-C000-000000000046")) __declspec(novtable) IOleInPlaceActiveObject : public IOleWindow { public: virtual /* [local] */ HRESULT __stdcall TranslateAcceleratorW( /* [in] */ LPMSG lpmsg) = 0; virtual /* [input_sync] */ HRESULT __stdcall OnFrameWindowActivate( /* [in] */ BOOL fActivate) = 0; virtual /* [input_sync] */ HRESULT __stdcall OnDocWindowActivate( /* [in] */ BOOL fActivate) = 0; virtual /* [local] */ HRESULT __stdcall ResizeBorder( /* [in] */ LPCRECT prcBorder, /* [unique][in] */ IOleInPlaceUIWindow *pUIWindow, /* [in] */ BOOL fFrameWindow) = 0; virtual HRESULT __stdcall EnableModeless( /* [in] */ BOOL fEnable) = 0; }; #line 2178 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" /* [call_as] */ HRESULT __stdcall IOleInPlaceActiveObject_RemoteTranslateAccelerator_Proxy( IOleInPlaceActiveObject * This); void __stdcall IOleInPlaceActiveObject_RemoteTranslateAccelerator_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [input_sync][call_as] */ HRESULT __stdcall IOleInPlaceActiveObject_RemoteResizeBorder_Proxy( IOleInPlaceActiveObject * This, /* [in] */ LPCRECT prcBorder, /* [in] */ const IID & riid, /* [iid_is][unique][in] */ IOleInPlaceUIWindow *pUIWindow, /* [in] */ BOOL fFrameWindow); void __stdcall IOleInPlaceActiveObject_RemoteResizeBorder_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #line 2209 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" /* interface IOleInPlaceFrame */ /* [unique][uuid][object] */ typedef /* [unique] */ IOleInPlaceFrame *LPOLEINPLACEFRAME; typedef struct tagOIFI { UINT cb; BOOL fMDIApp; HWND hwndFrame; HACCEL haccel; UINT cAccelEntries; } OLEINPLACEFRAMEINFO; typedef struct tagOIFI *LPOLEINPLACEFRAMEINFO; typedef struct tagOleMenuGroupWidths { LONG width[ 6 ]; } OLEMENUGROUPWIDTHS; typedef struct tagOleMenuGroupWidths *LPOLEMENUGROUPWIDTHS; typedef HGLOBAL HOLEMENU; extern "C" const IID IID_IOleInPlaceFrame; struct __declspec(uuid("00000116-0000-0000-C000-000000000046")) __declspec(novtable) IOleInPlaceFrame : public IOleInPlaceUIWindow { public: virtual HRESULT __stdcall InsertMenus( /* [in] */ HMENU hmenuShared, /* [out][in] */ LPOLEMENUGROUPWIDTHS lpMenuWidths) = 0; virtual /* [input_sync] */ HRESULT __stdcall SetMenu( /* [in] */ HMENU hmenuShared, /* [in] */ HOLEMENU holemenu, /* [in] */ HWND hwndActiveObject) = 0; virtual HRESULT __stdcall RemoveMenus( /* [in] */ HMENU hmenuShared) = 0; virtual /* [input_sync] */ HRESULT __stdcall SetStatusText( /* [unique][in] */ LPCOLESTR pszStatusText) = 0; virtual HRESULT __stdcall EnableModeless( /* [in] */ BOOL fEnable) = 0; virtual HRESULT __stdcall TranslateAcceleratorW( /* [in] */ LPMSG lpmsg, /* [in] */ WORD wID) = 0; }; #line 2408 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" #line 2413 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" /* interface IOleInPlaceObject */ /* [unique][uuid][object] */ typedef /* [unique] */ IOleInPlaceObject *LPOLEINPLACEOBJECT; extern "C" const IID IID_IOleInPlaceObject; struct __declspec(uuid("00000113-0000-0000-C000-000000000046")) __declspec(novtable) IOleInPlaceObject : public IOleWindow { public: virtual HRESULT __stdcall InPlaceDeactivate( void) = 0; virtual HRESULT __stdcall UIDeactivate( void) = 0; virtual /* [input_sync] */ HRESULT __stdcall SetObjectRects( /* [in] */ LPCRECT lprcPosRect, /* [in] */ LPCRECT lprcClipRect) = 0; virtual HRESULT __stdcall ReactivateAndUndo( void) = 0; }; #line 2530 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" #line 2535 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" /* interface IOleInPlaceSite */ /* [unique][uuid][object] */ typedef /* [unique] */ IOleInPlaceSite *LPOLEINPLACESITE; extern "C" const IID IID_IOleInPlaceSite; struct __declspec(uuid("00000119-0000-0000-C000-000000000046")) __declspec(novtable) IOleInPlaceSite : public IOleWindow { public: virtual HRESULT __stdcall CanInPlaceActivate( void) = 0; virtual HRESULT __stdcall OnInPlaceActivate( void) = 0; virtual HRESULT __stdcall OnUIActivate( void) = 0; virtual HRESULT __stdcall GetWindowContext( /* [out] */ IOleInPlaceFrame **ppFrame, /* [out] */ IOleInPlaceUIWindow **ppDoc, /* [out] */ LPRECT lprcPosRect, /* [out] */ LPRECT lprcClipRect, /* [out][in] */ LPOLEINPLACEFRAMEINFO lpFrameInfo) = 0; virtual HRESULT __stdcall Scroll( /* [in] */ SIZE scrollExtant) = 0; virtual HRESULT __stdcall OnUIDeactivate( /* [in] */ BOOL fUndoable) = 0; virtual HRESULT __stdcall OnInPlaceDeactivate( void) = 0; virtual HRESULT __stdcall DiscardUndoState( void) = 0; virtual HRESULT __stdcall DeactivateAndUndo( void) = 0; virtual HRESULT __stdcall OnPosRectChange( /* [in] */ LPCRECT lprcPosRect) = 0; }; #line 2712 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" #line 2717 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" /* interface IContinue */ /* [uuid][object] */ extern "C" const IID IID_IContinue; struct __declspec(uuid("0000012a-0000-0000-C000-000000000046")) __declspec(novtable) IContinue : public IUnknown { public: virtual HRESULT __stdcall FContinue( void) = 0; }; #line 2789 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" #line 2794 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" /* interface IViewObject */ /* [uuid][object] */ typedef /* [unique] */ IViewObject *LPVIEWOBJECT; extern "C" const IID IID_IViewObject; struct __declspec(uuid("0000010d-0000-0000-C000-000000000046")) __declspec(novtable) IViewObject : public IUnknown { public: virtual /* [local] */ HRESULT __stdcall Draw( /* [in] */ DWORD dwDrawAspect, /* [in] */ LONG lindex, /* [unique][in] */ void *pvAspect, /* [unique][in] */ DVTARGETDEVICE *ptd, /* [in] */ HDC hdcTargetDev, /* [in] */ HDC hdcDraw, /* [in] */ LPCRECTL lprcBounds, /* [unique][in] */ LPCRECTL lprcWBounds, /* [in] */ BOOL ( __stdcall *pfnContinue )( ULONG_PTR dwContinue), /* [in] */ ULONG_PTR dwContinue) = 0; virtual /* [local] */ HRESULT __stdcall GetColorSet( /* [in] */ DWORD dwDrawAspect, /* [in] */ LONG lindex, /* [unique][in] */ void *pvAspect, /* [unique][in] */ DVTARGETDEVICE *ptd, /* [in] */ HDC hicTargetDev, /* [out] */ LOGPALETTE **ppColorSet) = 0; virtual /* [local] */ HRESULT __stdcall Freeze( /* [in] */ DWORD dwDrawAspect, /* [in] */ LONG lindex, /* [unique][in] */ void *pvAspect, /* [out] */ DWORD *pdwFreeze) = 0; virtual HRESULT __stdcall Unfreeze( /* [in] */ DWORD dwFreeze) = 0; virtual HRESULT __stdcall SetAdvise( /* [in] */ DWORD aspects, /* [in] */ DWORD advf, /* [unique][in] */ IAdviseSink *pAdvSink) = 0; virtual /* [local] */ HRESULT __stdcall GetAdvise( /* [unique][out] */ DWORD *pAspects, /* [unique][out] */ DWORD *pAdvf, /* [out] */ IAdviseSink **ppAdvSink) = 0; }; #line 2964 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" /* [call_as] */ HRESULT __stdcall IViewObject_RemoteDraw_Proxy( IViewObject * This, /* [in] */ DWORD dwDrawAspect, /* [in] */ LONG lindex, /* [in] */ ULONG_PTR pvAspect, /* [unique][in] */ DVTARGETDEVICE *ptd, /* [in] */ HDC hdcTargetDev, /* [in] */ HDC hdcDraw, /* [unique][in] */ LPCRECTL lprcBounds, /* [unique][in] */ LPCRECTL lprcWBounds, /* [in] */ IContinue *pContinue); void __stdcall IViewObject_RemoteDraw_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [call_as] */ HRESULT __stdcall IViewObject_RemoteGetColorSet_Proxy( IViewObject * This, /* [in] */ DWORD dwDrawAspect, /* [in] */ LONG lindex, /* [in] */ ULONG_PTR pvAspect, /* [unique][in] */ DVTARGETDEVICE *ptd, /* [in] */ ULONG_PTR hicTargetDev, /* [out] */ LOGPALETTE **ppColorSet); void __stdcall IViewObject_RemoteGetColorSet_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [call_as] */ HRESULT __stdcall IViewObject_RemoteFreeze_Proxy( IViewObject * This, /* [in] */ DWORD dwDrawAspect, /* [in] */ LONG lindex, /* [in] */ ULONG_PTR pvAspect, /* [out] */ DWORD *pdwFreeze); void __stdcall IViewObject_RemoteFreeze_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [call_as] */ HRESULT __stdcall IViewObject_RemoteGetAdvise_Proxy( IViewObject * This, /* [out] */ DWORD *pAspects, /* [out] */ DWORD *pAdvf, /* [out] */ IAdviseSink **ppAdvSink); void __stdcall IViewObject_RemoteGetAdvise_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #line 3035 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" /* interface IViewObject2 */ /* [uuid][object] */ typedef /* [unique] */ IViewObject2 *LPVIEWOBJECT2; extern "C" const IID IID_IViewObject2; struct __declspec(uuid("00000127-0000-0000-C000-000000000046")) __declspec(novtable) IViewObject2 : public IViewObject { public: virtual HRESULT __stdcall GetExtent( /* [in] */ DWORD dwDrawAspect, /* [in] */ LONG lindex, /* [unique][in] */ DVTARGETDEVICE *ptd, /* [out] */ LPSIZEL lpsizel) = 0; }; #line 3182 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" #line 3187 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" /* interface IDropSource */ /* [uuid][object][local] */ typedef /* [unique] */ IDropSource *LPDROPSOURCE; extern "C" const IID IID_IDropSource; struct __declspec(uuid("00000121-0000-0000-C000-000000000046")) __declspec(novtable) IDropSource : public IUnknown { public: virtual HRESULT __stdcall QueryContinueDrag( /* [in] */ BOOL fEscapePressed, /* [in] */ DWORD grfKeyState) = 0; virtual HRESULT __stdcall GiveFeedback( /* [in] */ DWORD dwEffect) = 0; }; #line 3275 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" #line 3280 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" /* interface IDropTarget */ /* [unique][uuid][object] */ typedef /* [unique] */ IDropTarget *LPDROPTARGET; // default inset-width of the hot zone, in pixels // typical use: GetProfileInt("windows","DragScrollInset",DD_DEFSCROLLINSET) // default delay before scrolling, in milliseconds // typical use: GetProfileInt("windows","DragScrollDelay",DD_DEFSCROLLDELAY) // default scroll interval, in milliseconds // typical use: GetProfileInt("windows","DragScrollInterval", DD_DEFSCROLLINTERVAL) // default delay before dragging should start, in milliseconds // typical use: GetProfileInt("windows", "DragDelay", DD_DEFDRAGDELAY) // default minimum distance (radius) before dragging should start, in pixels // typical use: GetProfileInt("windows", "DragMinDist", DD_DEFDRAGMINDIST) extern "C" const IID IID_IDropTarget; struct __declspec(uuid("00000122-0000-0000-C000-000000000046")) __declspec(novtable) IDropTarget : public IUnknown { public: virtual HRESULT __stdcall DragEnter( /* [unique][in] */ IDataObject *pDataObj, /* [in] */ DWORD grfKeyState, /* [in] */ POINTL pt, /* [out][in] */ DWORD *pdwEffect) = 0; virtual HRESULT __stdcall DragOver( /* [in] */ DWORD grfKeyState, /* [in] */ POINTL pt, /* [out][in] */ DWORD *pdwEffect) = 0; virtual HRESULT __stdcall DragLeave( void) = 0; virtual HRESULT __stdcall Drop( /* [unique][in] */ IDataObject *pDataObj, /* [in] */ DWORD grfKeyState, /* [in] */ POINTL pt, /* [out][in] */ DWORD *pdwEffect) = 0; }; #line 3432 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" #line 3437 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" /* interface IDropSourceNotify */ /* [unique][uuid][object][local] */ extern "C" const IID IID_IDropSourceNotify; struct __declspec(uuid("0000012B-0000-0000-C000-000000000046")) __declspec(novtable) IDropSourceNotify : public IUnknown { public: virtual HRESULT __stdcall DragEnterTarget( /* [in] */ HWND hwndTarget) = 0; virtual HRESULT __stdcall DragLeaveTarget( void) = 0; }; #line 3519 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" #line 3524 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" /* interface IEnumOLEVERB */ /* [unique][uuid][object] */ typedef /* [unique] */ IEnumOLEVERB *LPENUMOLEVERB; typedef struct tagOLEVERB { LONG lVerb; LPOLESTR lpszVerbName; DWORD fuFlags; DWORD grfAttribs; } OLEVERB; typedef struct tagOLEVERB *LPOLEVERB; typedef /* [v1_enum] */ enum tagOLEVERBATTRIB { OLEVERBATTRIB_NEVERDIRTIES = 1, OLEVERBATTRIB_ONCONTAINERMENU = 2 } OLEVERBATTRIB; extern "C" const IID IID_IEnumOLEVERB; struct __declspec(uuid("00000104-0000-0000-C000-000000000046")) __declspec(novtable) IEnumOLEVERB : public IUnknown { public: virtual /* [local] */ HRESULT __stdcall Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ LPOLEVERB rgelt, /* [out] */ ULONG *pceltFetched) = 0; virtual HRESULT __stdcall Skip( /* [in] */ ULONG celt) = 0; virtual HRESULT __stdcall Reset( void) = 0; virtual HRESULT __stdcall Clone( /* [out] */ IEnumOLEVERB **ppenum) = 0; }; #line 3648 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" /* [call_as] */ HRESULT __stdcall IEnumOLEVERB_RemoteNext_Proxy( IEnumOLEVERB * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ LPOLEVERB rgelt, /* [out] */ ULONG *pceltFetched); void __stdcall IEnumOLEVERB_RemoteNext_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #line 3667 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" /* Additional Prototypes for ALL interfaces */ unsigned long __stdcall CLIPFORMAT_UserSize( unsigned long *, unsigned long , CLIPFORMAT * ); unsigned char * __stdcall CLIPFORMAT_UserMarshal( unsigned long *, unsigned char *, CLIPFORMAT * ); unsigned char * __stdcall CLIPFORMAT_UserUnmarshal(unsigned long *, unsigned char *, CLIPFORMAT * ); void __stdcall CLIPFORMAT_UserFree( unsigned long *, CLIPFORMAT * ); unsigned long __stdcall HACCEL_UserSize( unsigned long *, unsigned long , HACCEL * ); unsigned char * __stdcall HACCEL_UserMarshal( unsigned long *, unsigned char *, HACCEL * ); unsigned char * __stdcall HACCEL_UserUnmarshal(unsigned long *, unsigned char *, HACCEL * ); void __stdcall HACCEL_UserFree( unsigned long *, HACCEL * ); unsigned long __stdcall HDC_UserSize( unsigned long *, unsigned long , HDC * ); unsigned char * __stdcall HDC_UserMarshal( unsigned long *, unsigned char *, HDC * ); unsigned char * __stdcall HDC_UserUnmarshal(unsigned long *, unsigned char *, HDC * ); void __stdcall HDC_UserFree( unsigned long *, HDC * ); unsigned long __stdcall HGLOBAL_UserSize( unsigned long *, unsigned long , HGLOBAL * ); unsigned char * __stdcall HGLOBAL_UserMarshal( unsigned long *, unsigned char *, HGLOBAL * ); unsigned char * __stdcall HGLOBAL_UserUnmarshal(unsigned long *, unsigned char *, HGLOBAL * ); void __stdcall HGLOBAL_UserFree( unsigned long *, HGLOBAL * ); unsigned long __stdcall HMENU_UserSize( unsigned long *, unsigned long , HMENU * ); unsigned char * __stdcall HMENU_UserMarshal( unsigned long *, unsigned char *, HMENU * ); unsigned char * __stdcall HMENU_UserUnmarshal(unsigned long *, unsigned char *, HMENU * ); void __stdcall HMENU_UserFree( unsigned long *, HMENU * ); unsigned long __stdcall HWND_UserSize( unsigned long *, unsigned long , HWND * ); unsigned char * __stdcall HWND_UserMarshal( unsigned long *, unsigned char *, HWND * ); unsigned char * __stdcall HWND_UserUnmarshal(unsigned long *, unsigned char *, HWND * ); void __stdcall HWND_UserFree( unsigned long *, HWND * ); unsigned long __stdcall STGMEDIUM_UserSize( unsigned long *, unsigned long , STGMEDIUM * ); unsigned char * __stdcall STGMEDIUM_UserMarshal( unsigned long *, unsigned char *, STGMEDIUM * ); unsigned char * __stdcall STGMEDIUM_UserUnmarshal(unsigned long *, unsigned char *, STGMEDIUM * ); void __stdcall STGMEDIUM_UserFree( unsigned long *, STGMEDIUM * ); unsigned long __stdcall CLIPFORMAT_UserSize64( unsigned long *, unsigned long , CLIPFORMAT * ); unsigned char * __stdcall CLIPFORMAT_UserMarshal64( unsigned long *, unsigned char *, CLIPFORMAT * ); unsigned char * __stdcall CLIPFORMAT_UserUnmarshal64(unsigned long *, unsigned char *, CLIPFORMAT * ); void __stdcall CLIPFORMAT_UserFree64( unsigned long *, CLIPFORMAT * ); unsigned long __stdcall HACCEL_UserSize64( unsigned long *, unsigned long , HACCEL * ); unsigned char * __stdcall HACCEL_UserMarshal64( unsigned long *, unsigned char *, HACCEL * ); unsigned char * __stdcall HACCEL_UserUnmarshal64(unsigned long *, unsigned char *, HACCEL * ); void __stdcall HACCEL_UserFree64( unsigned long *, HACCEL * ); unsigned long __stdcall HDC_UserSize64( unsigned long *, unsigned long , HDC * ); unsigned char * __stdcall HDC_UserMarshal64( unsigned long *, unsigned char *, HDC * ); unsigned char * __stdcall HDC_UserUnmarshal64(unsigned long *, unsigned char *, HDC * ); void __stdcall HDC_UserFree64( unsigned long *, HDC * ); unsigned long __stdcall HGLOBAL_UserSize64( unsigned long *, unsigned long , HGLOBAL * ); unsigned char * __stdcall HGLOBAL_UserMarshal64( unsigned long *, unsigned char *, HGLOBAL * ); unsigned char * __stdcall HGLOBAL_UserUnmarshal64(unsigned long *, unsigned char *, HGLOBAL * ); void __stdcall HGLOBAL_UserFree64( unsigned long *, HGLOBAL * ); unsigned long __stdcall HMENU_UserSize64( unsigned long *, unsigned long , HMENU * ); unsigned char * __stdcall HMENU_UserMarshal64( unsigned long *, unsigned char *, HMENU * ); unsigned char * __stdcall HMENU_UserUnmarshal64(unsigned long *, unsigned char *, HMENU * ); void __stdcall HMENU_UserFree64( unsigned long *, HMENU * ); unsigned long __stdcall HWND_UserSize64( unsigned long *, unsigned long , HWND * ); unsigned char * __stdcall HWND_UserMarshal64( unsigned long *, unsigned char *, HWND * ); unsigned char * __stdcall HWND_UserUnmarshal64(unsigned long *, unsigned char *, HWND * ); void __stdcall HWND_UserFree64( unsigned long *, HWND * ); unsigned long __stdcall STGMEDIUM_UserSize64( unsigned long *, unsigned long , STGMEDIUM * ); unsigned char * __stdcall STGMEDIUM_UserMarshal64( unsigned long *, unsigned char *, STGMEDIUM * ); unsigned char * __stdcall STGMEDIUM_UserUnmarshal64(unsigned long *, unsigned char *, STGMEDIUM * ); void __stdcall STGMEDIUM_UserFree64( unsigned long *, STGMEDIUM * ); /* [local] */ HRESULT __stdcall IOleCache2_UpdateCache_Proxy( IOleCache2 * This, /* [in] */ LPDATAOBJECT pDataObject, /* [in] */ DWORD grfUpdf, /* [in] */ LPVOID pReserved); /* [call_as] */ HRESULT __stdcall IOleCache2_UpdateCache_Stub( IOleCache2 * This, /* [in] */ LPDATAOBJECT pDataObject, /* [in] */ DWORD grfUpdf, /* [in] */ LONG_PTR pReserved); /* [local] */ HRESULT __stdcall IOleInPlaceActiveObject_TranslateAccelerator_Proxy( IOleInPlaceActiveObject * This, /* [in] */ LPMSG lpmsg); /* [call_as] */ HRESULT __stdcall IOleInPlaceActiveObject_TranslateAccelerator_Stub( IOleInPlaceActiveObject * This); /* [local] */ HRESULT __stdcall IOleInPlaceActiveObject_ResizeBorder_Proxy( IOleInPlaceActiveObject * This, /* [in] */ LPCRECT prcBorder, /* [unique][in] */ IOleInPlaceUIWindow *pUIWindow, /* [in] */ BOOL fFrameWindow); /* [input_sync][call_as] */ HRESULT __stdcall IOleInPlaceActiveObject_ResizeBorder_Stub( IOleInPlaceActiveObject * This, /* [in] */ LPCRECT prcBorder, /* [in] */ const IID & riid, /* [iid_is][unique][in] */ IOleInPlaceUIWindow *pUIWindow, /* [in] */ BOOL fFrameWindow); /* [local] */ HRESULT __stdcall IViewObject_Draw_Proxy( IViewObject * This, /* [in] */ DWORD dwDrawAspect, /* [in] */ LONG lindex, /* [unique][in] */ void *pvAspect, /* [unique][in] */ DVTARGETDEVICE *ptd, /* [in] */ HDC hdcTargetDev, /* [in] */ HDC hdcDraw, /* [in] */ LPCRECTL lprcBounds, /* [unique][in] */ LPCRECTL lprcWBounds, /* [in] */ BOOL ( __stdcall *pfnContinue )( ULONG_PTR dwContinue), /* [in] */ ULONG_PTR dwContinue); /* [call_as] */ HRESULT __stdcall IViewObject_Draw_Stub( IViewObject * This, /* [in] */ DWORD dwDrawAspect, /* [in] */ LONG lindex, /* [in] */ ULONG_PTR pvAspect, /* [unique][in] */ DVTARGETDEVICE *ptd, /* [in] */ HDC hdcTargetDev, /* [in] */ HDC hdcDraw, /* [unique][in] */ LPCRECTL lprcBounds, /* [unique][in] */ LPCRECTL lprcWBounds, /* [in] */ IContinue *pContinue); /* [local] */ HRESULT __stdcall IViewObject_GetColorSet_Proxy( IViewObject * This, /* [in] */ DWORD dwDrawAspect, /* [in] */ LONG lindex, /* [unique][in] */ void *pvAspect, /* [unique][in] */ DVTARGETDEVICE *ptd, /* [in] */ HDC hicTargetDev, /* [out] */ LOGPALETTE **ppColorSet); /* [call_as] */ HRESULT __stdcall IViewObject_GetColorSet_Stub( IViewObject * This, /* [in] */ DWORD dwDrawAspect, /* [in] */ LONG lindex, /* [in] */ ULONG_PTR pvAspect, /* [unique][in] */ DVTARGETDEVICE *ptd, /* [in] */ ULONG_PTR hicTargetDev, /* [out] */ LOGPALETTE **ppColorSet); /* [local] */ HRESULT __stdcall IViewObject_Freeze_Proxy( IViewObject * This, /* [in] */ DWORD dwDrawAspect, /* [in] */ LONG lindex, /* [unique][in] */ void *pvAspect, /* [out] */ DWORD *pdwFreeze); /* [call_as] */ HRESULT __stdcall IViewObject_Freeze_Stub( IViewObject * This, /* [in] */ DWORD dwDrawAspect, /* [in] */ LONG lindex, /* [in] */ ULONG_PTR pvAspect, /* [out] */ DWORD *pdwFreeze); /* [local] */ HRESULT __stdcall IViewObject_GetAdvise_Proxy( IViewObject * This, /* [unique][out] */ DWORD *pAspects, /* [unique][out] */ DWORD *pAdvf, /* [out] */ IAdviseSink **ppAdvSink); /* [call_as] */ HRESULT __stdcall IViewObject_GetAdvise_Stub( IViewObject * This, /* [out] */ DWORD *pAspects, /* [out] */ DWORD *pAdvf, /* [out] */ IAdviseSink **ppAdvSink); /* [local] */ HRESULT __stdcall IEnumOLEVERB_Next_Proxy( IEnumOLEVERB * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ LPOLEVERB rgelt, /* [out] */ ULONG *pceltFetched); /* [call_as] */ HRESULT __stdcall IEnumOLEVERB_Next_Stub( IEnumOLEVERB * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ LPOLEVERB rgelt, /* [out] */ ULONG *pceltFetched); /* end of Additional Prototypes */ } #line 3870 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" #line 3872 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oleidl.h" #line 330 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 1 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\servprov.h" /* this ALWAYS GENERATED file contains the definitions for the interfaces */ /* File created by MIDL compiler version 7.00.0499 */ /* Compiler settings for servprov.idl: Oicf, W1, Zp8, env=Win32 (32b run) protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level: __declspec(uuid()), __declspec(selectany), __declspec(novtable) DECLSPEC_UUID(), MIDL_INTERFACE() */ //@@MIDL_FILE_HEADING( ) #pragma warning( disable: 4049 ) /* verify that the version is high enough to compile this file*/ /* verify that the version is high enough to compile this file*/ #pragma once #line 48 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\servprov.h" /* Forward Declarations */ typedef struct IServiceProvider IServiceProvider; #line 55 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\servprov.h" /* header files for imported files */ extern "C"{ #line 63 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\servprov.h" /* interface __MIDL_itf_servprov_0000_0000 */ /* [local] */ //=--------------------------------------------------------------------------= // ServProv.h //=--------------------------------------------------------------------------= // (C) Copyright 1995-1999 Microsoft Corporation. All Rights Reserved. // // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF // ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO // THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A // PARTICULAR PURPOSE. //=--------------------------------------------------------------------------= #pragma comment(lib,"uuid.lib") //---------------------------------------------------------------------------= // IServiceProvider Interfaces. extern RPC_IF_HANDLE __MIDL_itf_servprov_0000_0000_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_servprov_0000_0000_v0_0_s_ifspec; /* interface IServiceProvider */ /* [unique][uuid][object] */ typedef /* [unique] */ IServiceProvider *LPSERVICEPROVIDER; extern "C" const IID IID_IServiceProvider; extern "C++" { struct __declspec(uuid("6d5140c1-7436-11ce-8034-00aa006009fa")) __declspec(novtable) IServiceProvider : public IUnknown { public: virtual /* [local] */ HRESULT __stdcall QueryService( /* [in] */ const GUID & guidService, /* [in] */ const IID & riid, /* [out] */ void * *ppvObject) = 0; template HRESULT __stdcall QueryService(const GUID & guidService, Q** pp) { return QueryService(guidService, __uuidof(Q), (void **)pp); } }; } /* [call_as] */ HRESULT __stdcall IServiceProvider_RemoteQueryService_Proxy( IServiceProvider * This, /* [in] */ const GUID & guidService, /* [in] */ const IID & riid, /* [iid_is][out] */ IUnknown * *ppvObject); void __stdcall IServiceProvider_RemoteQueryService_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #line 221 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\servprov.h" /* interface __MIDL_itf_servprov_0000_0001 */ /* [local] */ #line 227 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\servprov.h" extern RPC_IF_HANDLE __MIDL_itf_servprov_0000_0001_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_servprov_0000_0001_v0_0_s_ifspec; /* Additional Prototypes for ALL interfaces */ /* [local] */ HRESULT __stdcall IServiceProvider_QueryService_Proxy( IServiceProvider * This, /* [in] */ const GUID & guidService, /* [in] */ const IID & riid, /* [out] */ void **ppvObject); /* [call_as] */ HRESULT __stdcall IServiceProvider_QueryService_Stub( IServiceProvider * This, /* [in] */ const GUID & guidService, /* [in] */ const IID & riid, /* [iid_is][out] */ IUnknown **ppvObject); /* end of Additional Prototypes */ } #line 254 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\servprov.h" #line 256 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\servprov.h" #line 331 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 1 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" /* this ALWAYS GENERATED file contains the definitions for the interfaces */ /* File created by MIDL compiler version 7.00.0499 */ /* Compiler settings for msxml.idl: Oicf, W1, Zp8, env=Win32 (32b run) protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level: __declspec(uuid()), __declspec(selectany), __declspec(novtable) DECLSPEC_UUID(), MIDL_INTERFACE() */ //@@MIDL_FILE_HEADING( ) #pragma warning( disable: 4049 ) /* verify that the version is high enough to compile this file*/ /* verify that the version is high enough to compile this file*/ #pragma once #line 44 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" /* Forward Declarations */ typedef struct IXMLDOMImplementation IXMLDOMImplementation; #line 51 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" typedef struct IXMLDOMNode IXMLDOMNode; #line 57 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" typedef struct IXMLDOMDocumentFragment IXMLDOMDocumentFragment; #line 63 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" typedef struct IXMLDOMDocument IXMLDOMDocument; #line 69 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" typedef struct IXMLDOMNodeList IXMLDOMNodeList; #line 75 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" typedef struct IXMLDOMNamedNodeMap IXMLDOMNamedNodeMap; #line 81 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" typedef struct IXMLDOMCharacterData IXMLDOMCharacterData; #line 87 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" typedef struct IXMLDOMAttribute IXMLDOMAttribute; #line 93 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" typedef struct IXMLDOMElement IXMLDOMElement; #line 99 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" typedef struct IXMLDOMText IXMLDOMText; #line 105 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" typedef struct IXMLDOMComment IXMLDOMComment; #line 111 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" typedef struct IXMLDOMProcessingInstruction IXMLDOMProcessingInstruction; #line 117 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" typedef struct IXMLDOMCDATASection IXMLDOMCDATASection; #line 123 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" typedef struct IXMLDOMDocumentType IXMLDOMDocumentType; #line 129 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" typedef struct IXMLDOMNotation IXMLDOMNotation; #line 135 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" typedef struct IXMLDOMEntity IXMLDOMEntity; #line 141 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" typedef struct IXMLDOMEntityReference IXMLDOMEntityReference; #line 147 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" typedef struct IXMLDOMParseError IXMLDOMParseError; #line 153 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" typedef struct IXTLRuntime IXTLRuntime; #line 159 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" typedef struct XMLDOMDocumentEvents XMLDOMDocumentEvents; #line 165 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" typedef class DOMDocument DOMDocument; #line 175 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" #line 177 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" typedef class DOMFreeThreadedDocument DOMFreeThreadedDocument; #line 187 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" #line 189 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" typedef struct IXMLHttpRequest IXMLHttpRequest; #line 195 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" typedef class XMLHTTPRequest XMLHTTPRequest; #line 205 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" #line 207 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" typedef struct IXMLDSOControl IXMLDSOControl; #line 213 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" typedef class XMLDSOControl XMLDSOControl; #line 223 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" #line 225 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" typedef struct IXMLElementCollection IXMLElementCollection; #line 231 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" typedef struct IXMLDocument IXMLDocument; #line 237 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" typedef struct IXMLDocument2 IXMLDocument2; #line 243 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" typedef struct IXMLElement IXMLElement; #line 249 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" typedef struct IXMLElement2 IXMLElement2; #line 255 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" typedef struct IXMLAttribute IXMLAttribute; #line 261 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" typedef struct IXMLError IXMLError; #line 267 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" typedef class XMLDocument XMLDocument; #line 277 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" #line 279 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" /* header files for imported files */ #line 1 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" /* this ALWAYS GENERATED file contains the definitions for the interfaces */ /* File created by MIDL compiler version 7.00.0499 */ /* Compiler settings for oaidl.idl: Oicf, W1, Zp8, env=Win32 (32b run) protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level: __declspec(uuid()), __declspec(selectany), __declspec(novtable) DECLSPEC_UUID(), MIDL_INTERFACE() */ //@@MIDL_FILE_HEADING( ) #pragma warning( disable: 4049 ) /* verify that the version is high enough to compile this file*/ /* verify that the version is high enough to compile this file*/ #pragma once #line 48 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" /* Forward Declarations */ typedef struct ICreateTypeInfo ICreateTypeInfo; #line 55 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" typedef struct ICreateTypeInfo2 ICreateTypeInfo2; #line 61 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" typedef struct ICreateTypeLib ICreateTypeLib; #line 67 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" typedef struct ICreateTypeLib2 ICreateTypeLib2; #line 73 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" typedef struct IDispatch IDispatch; #line 79 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" typedef struct IEnumVARIANT IEnumVARIANT; #line 85 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" typedef struct ITypeComp ITypeComp; #line 91 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" typedef struct ITypeInfo ITypeInfo; #line 97 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" typedef struct ITypeInfo2 ITypeInfo2; #line 103 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" typedef struct ITypeLib ITypeLib; #line 109 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" typedef struct ITypeLib2 ITypeLib2; #line 115 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" typedef struct ITypeChangeEvents ITypeChangeEvents; #line 121 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" typedef struct IErrorInfo IErrorInfo; #line 127 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" typedef struct ICreateErrorInfo ICreateErrorInfo; #line 133 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" typedef struct ISupportErrorInfo ISupportErrorInfo; #line 139 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" typedef struct ITypeFactory ITypeFactory; #line 145 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" typedef struct ITypeMarshal ITypeMarshal; #line 151 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" typedef struct IRecordInfo IRecordInfo; #line 157 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" typedef struct IErrorLog IErrorLog; #line 163 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" typedef struct IPropertyBag IPropertyBag; #line 169 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" /* header files for imported files */ extern "C"{ #line 177 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" /* interface __MIDL_itf_oaidl_0000_0000 */ /* [local] */ //+------------------------------------------------------------------------- // // Microsoft Windows // Copyright (c) Microsoft Corporation. All rights reserved. // //-------------------------------------------------------------------------- #pragma warning(push) #line 192 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" #pragma warning(disable:4201) #line 194 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" #pragma once #line 197 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" extern RPC_IF_HANDLE __MIDL_itf_oaidl_0000_0000_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_oaidl_0000_0000_v0_0_s_ifspec; /* interface IOleAutomationTypes */ /* [unique][version] */ typedef CY CURRENCY; typedef struct tagSAFEARRAYBOUND { ULONG cElements; LONG lLbound; } SAFEARRAYBOUND; typedef struct tagSAFEARRAYBOUND *LPSAFEARRAYBOUND; /* the following is what MIDL knows how to remote */ typedef /* [unique] */ struct _wireVARIANT *wireVARIANT; typedef /* [unique] */ struct _wireBRECORD *wireBRECORD; typedef struct _wireSAFEARR_BSTR { ULONG Size; wireBSTR *aBstr; } SAFEARR_BSTR; typedef struct _wireSAFEARR_UNKNOWN { ULONG Size; IUnknown **apUnknown; } SAFEARR_UNKNOWN; typedef struct _wireSAFEARR_DISPATCH { ULONG Size; IDispatch **apDispatch; } SAFEARR_DISPATCH; typedef struct _wireSAFEARR_VARIANT { ULONG Size; wireVARIANT *aVariant; } SAFEARR_VARIANT; typedef struct _wireSAFEARR_BRECORD { ULONG Size; wireBRECORD *aRecord; } SAFEARR_BRECORD; typedef struct _wireSAFEARR_HAVEIID { ULONG Size; IUnknown **apUnknown; IID iid; } SAFEARR_HAVEIID; typedef /* [v1_enum] */ enum tagSF_TYPE { SF_ERROR = VT_ERROR, SF_I1 = VT_I1, SF_I2 = VT_I2, SF_I4 = VT_I4, SF_I8 = VT_I8, SF_BSTR = VT_BSTR, SF_UNKNOWN = VT_UNKNOWN, SF_DISPATCH = VT_DISPATCH, SF_VARIANT = VT_VARIANT, SF_RECORD = VT_RECORD, SF_HAVEIID = ( VT_UNKNOWN | VT_RESERVED ) } SF_TYPE; typedef struct _wireSAFEARRAY_UNION { ULONG sfType; /* [switch_type] */ union __MIDL_IOleAutomationTypes_0001 { SAFEARR_BSTR BstrStr; SAFEARR_UNKNOWN UnknownStr; SAFEARR_DISPATCH DispatchStr; SAFEARR_VARIANT VariantStr; SAFEARR_BRECORD RecordStr; SAFEARR_HAVEIID HaveIidStr; BYTE_SIZEDARR ByteStr; WORD_SIZEDARR WordStr; DWORD_SIZEDARR LongStr; HYPER_SIZEDARR HyperStr; } u; } SAFEARRAYUNION; typedef /* [unique] */ struct _wireSAFEARRAY { USHORT cDims; USHORT fFeatures; ULONG cbElements; ULONG cLocks; SAFEARRAYUNION uArrayStructs; SAFEARRAYBOUND rgsabound[ 1 ]; } *wireSAFEARRAY; typedef /* [unique] */ wireSAFEARRAY *wirePSAFEARRAY; typedef struct tagSAFEARRAY { USHORT cDims; USHORT fFeatures; ULONG cbElements; ULONG cLocks; PVOID pvData; SAFEARRAYBOUND rgsabound[ 1 ]; } SAFEARRAY; typedef /* [wire_marshal] */ SAFEARRAY *LPSAFEARRAY; /* VARIANT STRUCTURE * * VARTYPE vt; * WORD wReserved1; * WORD wReserved2; * WORD wReserved3; * union { * LONGLONG VT_I8 * LONG VT_I4 * BYTE VT_UI1 * SHORT VT_I2 * FLOAT VT_R4 * DOUBLE VT_R8 * VARIANT_BOOL VT_BOOL * SCODE VT_ERROR * CY VT_CY * DATE VT_DATE * BSTR VT_BSTR * IUnknown * VT_UNKNOWN * IDispatch * VT_DISPATCH * SAFEARRAY * VT_ARRAY * BYTE * VT_BYREF|VT_UI1 * SHORT * VT_BYREF|VT_I2 * LONG * VT_BYREF|VT_I4 * LONGLONG * VT_BYREF|VT_I8 * FLOAT * VT_BYREF|VT_R4 * DOUBLE * VT_BYREF|VT_R8 * VARIANT_BOOL * VT_BYREF|VT_BOOL * SCODE * VT_BYREF|VT_ERROR * CY * VT_BYREF|VT_CY * DATE * VT_BYREF|VT_DATE * BSTR * VT_BYREF|VT_BSTR * IUnknown ** VT_BYREF|VT_UNKNOWN * IDispatch ** VT_BYREF|VT_DISPATCH * SAFEARRAY ** VT_BYREF|VT_ARRAY * VARIANT * VT_BYREF|VT_VARIANT * PVOID VT_BYREF (Generic ByRef) * CHAR VT_I1 * USHORT VT_UI2 * ULONG VT_UI4 * ULONGLONG VT_UI8 * INT VT_INT * UINT VT_UINT * DECIMAL * VT_BYREF|VT_DECIMAL * CHAR * VT_BYREF|VT_I1 * USHORT * VT_BYREF|VT_UI2 * ULONG * VT_BYREF|VT_UI4 * ULONGLONG * VT_BYREF|VT_UI8 * INT * VT_BYREF|VT_INT * UINT * VT_BYREF|VT_UINT * } */ #line 417 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" #line 424 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" typedef /* [wire_marshal] */ struct tagVARIANT VARIANT; struct tagVARIANT { union { struct { VARTYPE vt; WORD wReserved1; WORD wReserved2; WORD wReserved3; union { LONGLONG llVal; LONG lVal; BYTE bVal; SHORT iVal; FLOAT fltVal; DOUBLE dblVal; VARIANT_BOOL boolVal; // bool; SCODE scode; CY cyVal; DATE date; BSTR bstrVal; IUnknown *punkVal; IDispatch *pdispVal; SAFEARRAY *parray; BYTE *pbVal; SHORT *piVal; LONG *plVal; LONGLONG *pllVal; FLOAT *pfltVal; DOUBLE *pdblVal; VARIANT_BOOL *pboolVal; // *pbool; SCODE *pscode; CY *pcyVal; DATE *pdate; BSTR *pbstrVal; IUnknown **ppunkVal; IDispatch **ppdispVal; SAFEARRAY **pparray; VARIANT *pvarVal; PVOID byref; CHAR cVal; USHORT uiVal; ULONG ulVal; ULONGLONG ullVal; INT intVal; UINT uintVal; DECIMAL *pdecVal; CHAR *pcVal; USHORT *puiVal; ULONG *pulVal; ULONGLONG *pullVal; INT *pintVal; UINT *puintVal; struct { PVOID pvRecord; IRecordInfo *pRecInfo; } ; } ; } ; DECIMAL decVal; } ; } ; typedef VARIANT *LPVARIANT; typedef VARIANT VARIANTARG; typedef VARIANT *LPVARIANTARG; #line 511 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" #line 512 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" #line 514 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" /* the following is what MIDL knows how to remote */ struct _wireBRECORD { ULONG fFlags; ULONG clSize; IRecordInfo *pRecInfo; byte *pRecord; } ; struct _wireVARIANT { DWORD clSize; DWORD rpcReserved; USHORT vt; USHORT wReserved1; USHORT wReserved2; USHORT wReserved3; union { LONGLONG llVal; LONG lVal; BYTE bVal; SHORT iVal; FLOAT fltVal; DOUBLE dblVal; VARIANT_BOOL boolVal; SCODE scode; CY cyVal; DATE date; wireBSTR bstrVal; IUnknown *punkVal; IDispatch *pdispVal; wirePSAFEARRAY parray; wireBRECORD brecVal; BYTE *pbVal; SHORT *piVal; LONG *plVal; LONGLONG *pllVal; FLOAT *pfltVal; DOUBLE *pdblVal; VARIANT_BOOL *pboolVal; SCODE *pscode; CY *pcyVal; DATE *pdate; wireBSTR *pbstrVal; IUnknown **ppunkVal; IDispatch **ppdispVal; wirePSAFEARRAY *pparray; wireVARIANT *pvarVal; CHAR cVal; USHORT uiVal; ULONG ulVal; ULONGLONG ullVal; INT intVal; UINT uintVal; DECIMAL decVal; DECIMAL *pdecVal; CHAR *pcVal; USHORT *puiVal; ULONG *pulVal; ULONGLONG *pullVal; INT *pintVal; UINT *puintVal; /* Empty union arm */ /* Empty union arm */ } ; } ; typedef LONG DISPID; typedef DISPID MEMBERID; typedef DWORD HREFTYPE; typedef /* [v1_enum] */ enum tagTYPEKIND { TKIND_ENUM = 0, TKIND_RECORD = ( TKIND_ENUM + 1 ) , TKIND_MODULE = ( TKIND_RECORD + 1 ) , TKIND_INTERFACE = ( TKIND_MODULE + 1 ) , TKIND_DISPATCH = ( TKIND_INTERFACE + 1 ) , TKIND_COCLASS = ( TKIND_DISPATCH + 1 ) , TKIND_ALIAS = ( TKIND_COCLASS + 1 ) , TKIND_UNION = ( TKIND_ALIAS + 1 ) , TKIND_MAX = ( TKIND_UNION + 1 ) } TYPEKIND; typedef struct tagTYPEDESC { union { struct tagTYPEDESC *lptdesc; struct tagARRAYDESC *lpadesc; HREFTYPE hreftype; /* Empty union arm */ } ; VARTYPE vt; } TYPEDESC; typedef struct tagARRAYDESC { TYPEDESC tdescElem; USHORT cDims; SAFEARRAYBOUND rgbounds[ 1 ]; } ARRAYDESC; typedef struct tagPARAMDESCEX { ULONG cBytes; VARIANTARG varDefaultValue; } PARAMDESCEX; typedef struct tagPARAMDESCEX *LPPARAMDESCEX; typedef struct tagPARAMDESC { LPPARAMDESCEX pparamdescex; USHORT wParamFlags; } PARAMDESC; typedef struct tagPARAMDESC *LPPARAMDESC; typedef struct tagIDLDESC { ULONG_PTR dwReserved; USHORT wIDLFlags; } IDLDESC; typedef struct tagIDLDESC *LPIDLDESC; //;begin_internal #line 679 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" //;end_internal typedef struct tagELEMDESC { TYPEDESC tdesc; /* the type of the element */ union { IDLDESC idldesc; /* info for remoting the element */ PARAMDESC paramdesc; /* info about the parameter */ }; } ELEMDESC, * LPELEMDESC; //;begin_internal #line 689 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" //;end_internal typedef struct tagTYPEATTR { GUID guid; LCID lcid; DWORD dwReserved; MEMBERID memidConstructor; MEMBERID memidDestructor; LPOLESTR lpstrSchema; ULONG cbSizeInstance; TYPEKIND typekind; WORD cFuncs; WORD cVars; WORD cImplTypes; WORD cbSizeVft; WORD cbAlignment; WORD wTypeFlags; WORD wMajorVerNum; WORD wMinorVerNum; TYPEDESC tdescAlias; IDLDESC idldescType; } TYPEATTR; typedef struct tagTYPEATTR *LPTYPEATTR; typedef struct tagDISPPARAMS { VARIANTARG *rgvarg; DISPID *rgdispidNamedArgs; UINT cArgs; UINT cNamedArgs; } DISPPARAMS; //;begin_internal #line 740 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" //;end_internal typedef struct tagEXCEPINFO { WORD wCode; WORD wReserved; BSTR bstrSource; BSTR bstrDescription; BSTR bstrHelpFile; DWORD dwHelpContext; PVOID pvReserved; HRESULT (__stdcall *pfnDeferredFillIn)(struct tagEXCEPINFO *); SCODE scode; } EXCEPINFO, * LPEXCEPINFO; //;begin_internal #line 754 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" //;end_internal typedef /* [v1_enum] */ enum tagCALLCONV { CC_FASTCALL = 0, CC_CDECL = 1, CC_MSCPASCAL = ( CC_CDECL + 1 ) , CC_PASCAL = CC_MSCPASCAL, CC_MACPASCAL = ( CC_PASCAL + 1 ) , CC_STDCALL = ( CC_MACPASCAL + 1 ) , CC_FPFASTCALL = ( CC_STDCALL + 1 ) , CC_SYSCALL = ( CC_FPFASTCALL + 1 ) , CC_MPWCDECL = ( CC_SYSCALL + 1 ) , CC_MPWPASCAL = ( CC_MPWCDECL + 1 ) , CC_MAX = ( CC_MPWPASCAL + 1 ) } CALLCONV; typedef /* [v1_enum] */ enum tagFUNCKIND { FUNC_VIRTUAL = 0, FUNC_PUREVIRTUAL = ( FUNC_VIRTUAL + 1 ) , FUNC_NONVIRTUAL = ( FUNC_PUREVIRTUAL + 1 ) , FUNC_STATIC = ( FUNC_NONVIRTUAL + 1 ) , FUNC_DISPATCH = ( FUNC_STATIC + 1 ) } FUNCKIND; typedef /* [v1_enum] */ enum tagINVOKEKIND { INVOKE_FUNC = 1, INVOKE_PROPERTYGET = 2, INVOKE_PROPERTYPUT = 4, INVOKE_PROPERTYPUTREF = 8 } INVOKEKIND; typedef struct tagFUNCDESC { MEMBERID memid; SCODE *lprgscode; ELEMDESC *lprgelemdescParam; FUNCKIND funckind; INVOKEKIND invkind; CALLCONV callconv; SHORT cParams; SHORT cParamsOpt; SHORT oVft; SHORT cScodes; ELEMDESC elemdescFunc; WORD wFuncFlags; } FUNCDESC; typedef struct tagFUNCDESC *LPFUNCDESC; typedef /* [v1_enum] */ enum tagVARKIND { VAR_PERINSTANCE = 0, VAR_STATIC = ( VAR_PERINSTANCE + 1 ) , VAR_CONST = ( VAR_STATIC + 1 ) , VAR_DISPATCH = ( VAR_CONST + 1 ) } VARKIND; typedef struct tagVARDESC { MEMBERID memid; LPOLESTR lpstrSchema; union { ULONG oInst; VARIANT *lpvarValue; } ; ELEMDESC elemdescVar; WORD wVarFlags; VARKIND varkind; } VARDESC; typedef struct tagVARDESC *LPVARDESC; typedef enum tagTYPEFLAGS { TYPEFLAG_FAPPOBJECT = 0x1, TYPEFLAG_FCANCREATE = 0x2, TYPEFLAG_FLICENSED = 0x4, TYPEFLAG_FPREDECLID = 0x8, TYPEFLAG_FHIDDEN = 0x10, TYPEFLAG_FCONTROL = 0x20, TYPEFLAG_FDUAL = 0x40, TYPEFLAG_FNONEXTENSIBLE = 0x80, TYPEFLAG_FOLEAUTOMATION = 0x100, TYPEFLAG_FRESTRICTED = 0x200, TYPEFLAG_FAGGREGATABLE = 0x400, TYPEFLAG_FREPLACEABLE = 0x800, TYPEFLAG_FDISPATCHABLE = 0x1000, TYPEFLAG_FREVERSEBIND = 0x2000, TYPEFLAG_FPROXY = 0x4000 } TYPEFLAGS; typedef enum tagFUNCFLAGS { FUNCFLAG_FRESTRICTED = 0x1, FUNCFLAG_FSOURCE = 0x2, FUNCFLAG_FBINDABLE = 0x4, FUNCFLAG_FREQUESTEDIT = 0x8, FUNCFLAG_FDISPLAYBIND = 0x10, FUNCFLAG_FDEFAULTBIND = 0x20, FUNCFLAG_FHIDDEN = 0x40, FUNCFLAG_FUSESGETLASTERROR = 0x80, FUNCFLAG_FDEFAULTCOLLELEM = 0x100, FUNCFLAG_FUIDEFAULT = 0x200, FUNCFLAG_FNONBROWSABLE = 0x400, FUNCFLAG_FREPLACEABLE = 0x800, FUNCFLAG_FIMMEDIATEBIND = 0x1000 } FUNCFLAGS; typedef enum tagVARFLAGS { VARFLAG_FREADONLY = 0x1, VARFLAG_FSOURCE = 0x2, VARFLAG_FBINDABLE = 0x4, VARFLAG_FREQUESTEDIT = 0x8, VARFLAG_FDISPLAYBIND = 0x10, VARFLAG_FDEFAULTBIND = 0x20, VARFLAG_FHIDDEN = 0x40, VARFLAG_FRESTRICTED = 0x80, VARFLAG_FDEFAULTCOLLELEM = 0x100, VARFLAG_FUIDEFAULT = 0x200, VARFLAG_FNONBROWSABLE = 0x400, VARFLAG_FREPLACEABLE = 0x800, VARFLAG_FIMMEDIATEBIND = 0x1000 } VARFLAGS; typedef /* [wire_marshal] */ struct tagCLEANLOCALSTORAGE { IUnknown *pInterface; PVOID pStorage; DWORD flags; } CLEANLOCALSTORAGE; typedef struct tagCUSTDATAITEM { GUID guid; VARIANTARG varValue; } CUSTDATAITEM; typedef struct tagCUSTDATAITEM *LPCUSTDATAITEM; typedef struct tagCUSTDATA { DWORD cCustData; LPCUSTDATAITEM prgCustData; } CUSTDATA; typedef struct tagCUSTDATA *LPCUSTDATA; extern RPC_IF_HANDLE IOleAutomationTypes_v1_0_c_ifspec; extern RPC_IF_HANDLE IOleAutomationTypes_v1_0_s_ifspec; #line 918 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" /* interface ICreateTypeInfo */ /* [local][unique][uuid][object] */ typedef /* [unique] */ ICreateTypeInfo *LPCREATETYPEINFO; extern "C" const IID IID_ICreateTypeInfo; struct __declspec(uuid("00020405-0000-0000-C000-000000000046")) __declspec(novtable) ICreateTypeInfo : public IUnknown { public: virtual HRESULT __stdcall SetGuid( /* [in] */ const GUID & guid) = 0; virtual HRESULT __stdcall SetTypeFlags( /* [in] */ UINT uTypeFlags) = 0; virtual HRESULT __stdcall SetDocString( /* [in] */ LPOLESTR pStrDoc) = 0; virtual HRESULT __stdcall SetHelpContext( /* [in] */ DWORD dwHelpContext) = 0; virtual HRESULT __stdcall SetVersion( /* [in] */ WORD wMajorVerNum, /* [in] */ WORD wMinorVerNum) = 0; virtual HRESULT __stdcall AddRefTypeInfo( /* [in] */ ITypeInfo *pTInfo, /* [in] */ HREFTYPE *phRefType) = 0; virtual HRESULT __stdcall AddFuncDesc( /* [in] */ UINT index, /* [in] */ FUNCDESC *pFuncDesc) = 0; virtual HRESULT __stdcall AddImplType( /* [in] */ UINT index, /* [in] */ HREFTYPE hRefType) = 0; virtual HRESULT __stdcall SetImplTypeFlags( /* [in] */ UINT index, /* [in] */ INT implTypeFlags) = 0; virtual HRESULT __stdcall SetAlignment( /* [in] */ WORD cbAlignment) = 0; virtual HRESULT __stdcall SetSchema( /* [in] */ LPOLESTR pStrSchema) = 0; virtual HRESULT __stdcall AddVarDesc( /* [in] */ UINT index, /* [in] */ VARDESC *pVarDesc) = 0; virtual HRESULT __stdcall SetFuncAndParamNames( /* [in] */ UINT index, /* [in][size_is][in] */ LPOLESTR *rgszNames, /* [in] */ UINT cNames) = 0; virtual HRESULT __stdcall SetVarName( /* [in] */ UINT index, /* [in] */ LPOLESTR szName) = 0; virtual HRESULT __stdcall SetTypeDescAlias( /* [in] */ TYPEDESC *pTDescAlias) = 0; virtual HRESULT __stdcall DefineFuncAsDllEntry( /* [in] */ UINT index, /* [in] */ LPOLESTR szDllName, /* [in] */ LPOLESTR szProcName) = 0; virtual HRESULT __stdcall SetFuncDocString( /* [in] */ UINT index, /* [in] */ LPOLESTR szDocString) = 0; virtual HRESULT __stdcall SetVarDocString( /* [in] */ UINT index, /* [in] */ LPOLESTR szDocString) = 0; virtual HRESULT __stdcall SetFuncHelpContext( /* [in] */ UINT index, /* [in] */ DWORD dwHelpContext) = 0; virtual HRESULT __stdcall SetVarHelpContext( /* [in] */ UINT index, /* [in] */ DWORD dwHelpContext) = 0; virtual HRESULT __stdcall SetMops( /* [in] */ UINT index, /* [in] */ BSTR bstrMops) = 0; virtual HRESULT __stdcall SetTypeIdldesc( /* [in] */ IDLDESC *pIdlDesc) = 0; virtual HRESULT __stdcall LayOut( void) = 0; }; #line 1243 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" #line 1248 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" /* interface ICreateTypeInfo2 */ /* [local][unique][uuid][object] */ typedef /* [unique] */ ICreateTypeInfo2 *LPCREATETYPEINFO2; extern "C" const IID IID_ICreateTypeInfo2; struct __declspec(uuid("0002040E-0000-0000-C000-000000000046")) __declspec(novtable) ICreateTypeInfo2 : public ICreateTypeInfo { public: virtual HRESULT __stdcall DeleteFuncDesc( /* [in] */ UINT index) = 0; virtual HRESULT __stdcall DeleteFuncDescByMemId( /* [in] */ MEMBERID memid, /* [in] */ INVOKEKIND invKind) = 0; virtual HRESULT __stdcall DeleteVarDesc( /* [in] */ UINT index) = 0; virtual HRESULT __stdcall DeleteVarDescByMemId( /* [in] */ MEMBERID memid) = 0; virtual HRESULT __stdcall DeleteImplType( /* [in] */ UINT index) = 0; virtual HRESULT __stdcall SetCustData( /* [in] */ const GUID & guid, /* [in] */ VARIANT *pVarVal) = 0; virtual HRESULT __stdcall SetFuncCustData( /* [in] */ UINT index, /* [in] */ const GUID & guid, /* [in] */ VARIANT *pVarVal) = 0; virtual HRESULT __stdcall SetParamCustData( /* [in] */ UINT indexFunc, /* [in] */ UINT indexParam, /* [in] */ const GUID & guid, /* [in] */ VARIANT *pVarVal) = 0; virtual HRESULT __stdcall SetVarCustData( /* [in] */ UINT index, /* [in] */ const GUID & guid, /* [in] */ VARIANT *pVarVal) = 0; virtual HRESULT __stdcall SetImplTypeCustData( /* [in] */ UINT index, /* [in] */ const GUID & guid, /* [in] */ VARIANT *pVarVal) = 0; virtual HRESULT __stdcall SetHelpStringContext( /* [in] */ ULONG dwHelpStringContext) = 0; virtual HRESULT __stdcall SetFuncHelpStringContext( /* [in] */ UINT index, /* [in] */ ULONG dwHelpStringContext) = 0; virtual HRESULT __stdcall SetVarHelpStringContext( /* [in] */ UINT index, /* [in] */ ULONG dwHelpStringContext) = 0; virtual HRESULT __stdcall Invalidate( void) = 0; virtual HRESULT __stdcall SetName( /* [in] */ LPOLESTR szName) = 0; }; #line 1665 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" #line 1670 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" /* interface ICreateTypeLib */ /* [local][unique][uuid][object] */ typedef /* [unique] */ ICreateTypeLib *LPCREATETYPELIB; extern "C" const IID IID_ICreateTypeLib; struct __declspec(uuid("00020406-0000-0000-C000-000000000046")) __declspec(novtable) ICreateTypeLib : public IUnknown { public: virtual HRESULT __stdcall CreateTypeInfo( /* [in] */ LPOLESTR szName, /* [in] */ TYPEKIND tkind, /* [out] */ ICreateTypeInfo **ppCTInfo) = 0; virtual HRESULT __stdcall SetName( /* [in] */ LPOLESTR szName) = 0; virtual HRESULT __stdcall SetVersion( /* [in] */ WORD wMajorVerNum, /* [in] */ WORD wMinorVerNum) = 0; virtual HRESULT __stdcall SetGuid( /* [in] */ const GUID & guid) = 0; virtual HRESULT __stdcall SetDocString( /* [in] */ LPOLESTR szDoc) = 0; virtual HRESULT __stdcall SetHelpFileName( /* [in] */ LPOLESTR szHelpFileName) = 0; virtual HRESULT __stdcall SetHelpContext( /* [in] */ DWORD dwHelpContext) = 0; virtual HRESULT __stdcall SetLcid( /* [in] */ LCID lcid) = 0; virtual HRESULT __stdcall SetLibFlags( /* [in] */ UINT uLibFlags) = 0; virtual HRESULT __stdcall SaveAllChanges( void) = 0; }; #line 1840 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" #line 1845 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" /* interface ICreateTypeLib2 */ /* [local][unique][uuid][object] */ typedef /* [unique] */ ICreateTypeLib2 *LPCREATETYPELIB2; extern "C" const IID IID_ICreateTypeLib2; struct __declspec(uuid("0002040F-0000-0000-C000-000000000046")) __declspec(novtable) ICreateTypeLib2 : public ICreateTypeLib { public: virtual HRESULT __stdcall DeleteTypeInfo( /* [in] */ LPOLESTR szName) = 0; virtual HRESULT __stdcall SetCustData( /* [in] */ const GUID & guid, /* [in] */ VARIANT *pVarVal) = 0; virtual HRESULT __stdcall SetHelpStringContext( /* [in] */ ULONG dwHelpStringContext) = 0; virtual HRESULT __stdcall SetHelpStringDll( /* [in] */ LPOLESTR szFileName) = 0; }; #line 2026 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" #line 2031 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" /* interface IDispatch */ /* [unique][uuid][object] */ typedef /* [unique] */ IDispatch *LPDISPATCH; /* DISPID reserved to indicate an "unknown" name */ /* only reserved for data members (properties); reused as a method dispid below */ /* DISPID reserved for the "value" property */ /* The following DISPID is reserved to indicate the param * that is the right-hand-side (or "put" value) of a PropertyPut */ /* DISPID reserved for the standard "NewEnum" method */ /* DISPID reserved for the standard "Evaluate" method */ /* The range -500 through -999 is reserved for Controls */ /* The range 0x80010000 through 0x8001FFFF is reserved for Controls */ /* The range -5000 through -5499 is reserved for ActiveX Accessability */ /* The range -2000 through -2499 is reserved for VB5 */ /* The range -3900 through -3999 is reserved for Forms */ /* The range -5500 through -5550 is reserved for Forms */ /* The remainder of the negative DISPIDs are reserved for future use */ extern "C" const IID IID_IDispatch; struct __declspec(uuid("00020400-0000-0000-C000-000000000046")) __declspec(novtable) IDispatch : public IUnknown { public: virtual HRESULT __stdcall GetTypeInfoCount( /* [out] */ UINT *pctinfo) = 0; virtual HRESULT __stdcall GetTypeInfo( /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo) = 0; virtual HRESULT __stdcall GetIDsOfNames( /* [in] */ const IID & riid, /* [size_is][in] */ LPOLESTR *rgszNames, /* [range][in] */ UINT cNames, /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId) = 0; virtual /* [local] */ HRESULT __stdcall Invoke( /* [in] */ DISPID dispIdMember, /* [in] */ const IID & riid, /* [in] */ LCID lcid, /* [in] */ WORD wFlags, /* [out][in] */ DISPPARAMS *pDispParams, /* [out] */ VARIANT *pVarResult, /* [out] */ EXCEPINFO *pExcepInfo, /* [out] */ UINT *puArgErr) = 0; }; #line 2194 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" /* [call_as] */ HRESULT __stdcall IDispatch_RemoteInvoke_Proxy( IDispatch * This, /* [in] */ DISPID dispIdMember, /* [in] */ const IID & riid, /* [in] */ LCID lcid, /* [in] */ DWORD dwFlags, /* [in] */ DISPPARAMS *pDispParams, /* [out] */ VARIANT *pVarResult, /* [out] */ EXCEPINFO *pExcepInfo, /* [out] */ UINT *pArgErr, /* [in] */ UINT cVarRef, /* [size_is][in] */ UINT *rgVarRefIdx, /* [size_is][out][in] */ VARIANTARG *rgVarRef); void __stdcall IDispatch_RemoteInvoke_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #line 2221 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" /* interface IEnumVARIANT */ /* [unique][uuid][object] */ typedef /* [unique] */ IEnumVARIANT *LPENUMVARIANT; extern "C" const IID IID_IEnumVARIANT; struct __declspec(uuid("00020404-0000-0000-C000-000000000046")) __declspec(novtable) IEnumVARIANT : public IUnknown { public: virtual /* [local] */ HRESULT __stdcall Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ VARIANT *rgVar, /* [out] */ ULONG *pCeltFetched) = 0; virtual HRESULT __stdcall Skip( /* [in] */ ULONG celt) = 0; virtual HRESULT __stdcall Reset( void) = 0; virtual HRESULT __stdcall Clone( /* [out] */ IEnumVARIANT **ppEnum) = 0; }; #line 2329 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" /* [call_as] */ HRESULT __stdcall IEnumVARIANT_RemoteNext_Proxy( IEnumVARIANT * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ VARIANT *rgVar, /* [out] */ ULONG *pCeltFetched); void __stdcall IEnumVARIANT_RemoteNext_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #line 2348 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" /* interface ITypeComp */ /* [unique][uuid][object] */ typedef /* [unique] */ ITypeComp *LPTYPECOMP; typedef /* [v1_enum] */ enum tagDESCKIND { DESCKIND_NONE = 0, DESCKIND_FUNCDESC = ( DESCKIND_NONE + 1 ) , DESCKIND_VARDESC = ( DESCKIND_FUNCDESC + 1 ) , DESCKIND_TYPECOMP = ( DESCKIND_VARDESC + 1 ) , DESCKIND_IMPLICITAPPOBJ = ( DESCKIND_TYPECOMP + 1 ) , DESCKIND_MAX = ( DESCKIND_IMPLICITAPPOBJ + 1 ) } DESCKIND; typedef union tagBINDPTR { FUNCDESC *lpfuncdesc; VARDESC *lpvardesc; ITypeComp *lptcomp; } BINDPTR; typedef union tagBINDPTR *LPBINDPTR; extern "C" const IID IID_ITypeComp; struct __declspec(uuid("00020403-0000-0000-C000-000000000046")) __declspec(novtable) ITypeComp : public IUnknown { public: virtual /* [local] */ HRESULT __stdcall Bind( /* [in] */ LPOLESTR szName, /* [in] */ ULONG lHashVal, /* [in] */ WORD wFlags, /* [out] */ ITypeInfo **ppTInfo, /* [out] */ DESCKIND *pDescKind, /* [out] */ BINDPTR *pBindPtr) = 0; virtual /* [local] */ HRESULT __stdcall BindType( /* [in] */ LPOLESTR szName, /* [in] */ ULONG lHashVal, /* [out] */ ITypeInfo **ppTInfo, /* [out] */ ITypeComp **ppTComp) = 0; }; #line 2469 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" /* [call_as] */ HRESULT __stdcall ITypeComp_RemoteBind_Proxy( ITypeComp * This, /* [in] */ LPOLESTR szName, /* [in] */ ULONG lHashVal, /* [in] */ WORD wFlags, /* [out] */ ITypeInfo **ppTInfo, /* [out] */ DESCKIND *pDescKind, /* [out] */ LPFUNCDESC *ppFuncDesc, /* [out] */ LPVARDESC *ppVarDesc, /* [out] */ ITypeComp **ppTypeComp, /* [out] */ CLEANLOCALSTORAGE *pDummy); void __stdcall ITypeComp_RemoteBind_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [call_as] */ HRESULT __stdcall ITypeComp_RemoteBindType_Proxy( ITypeComp * This, /* [in] */ LPOLESTR szName, /* [in] */ ULONG lHashVal, /* [out] */ ITypeInfo **ppTInfo); void __stdcall ITypeComp_RemoteBindType_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #line 2508 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" /* interface ITypeInfo */ /* [unique][uuid][object] */ typedef /* [unique] */ ITypeInfo *LPTYPEINFO; extern "C" const IID IID_ITypeInfo; struct __declspec(uuid("00020401-0000-0000-C000-000000000046")) __declspec(novtable) ITypeInfo : public IUnknown { public: virtual /* [local] */ HRESULT __stdcall GetTypeAttr( /* [out] */ TYPEATTR **ppTypeAttr) = 0; virtual HRESULT __stdcall GetTypeComp( /* [out] */ ITypeComp **ppTComp) = 0; virtual /* [local] */ HRESULT __stdcall GetFuncDesc( /* [in] */ UINT index, /* [out] */ FUNCDESC **ppFuncDesc) = 0; virtual /* [local] */ HRESULT __stdcall GetVarDesc( /* [in] */ UINT index, /* [out] */ VARDESC **ppVarDesc) = 0; virtual /* [local] */ HRESULT __stdcall GetNames( /* [in] */ MEMBERID memid, /* [length_is][size_is][out] */ BSTR *rgBstrNames, /* [in] */ UINT cMaxNames, /* [out] */ UINT *pcNames) = 0; virtual HRESULT __stdcall GetRefTypeOfImplType( /* [in] */ UINT index, /* [out] */ HREFTYPE *pRefType) = 0; virtual HRESULT __stdcall GetImplTypeFlags( /* [in] */ UINT index, /* [out] */ INT *pImplTypeFlags) = 0; virtual /* [local] */ HRESULT __stdcall GetIDsOfNames( /* [size_is][in] */ LPOLESTR *rgszNames, /* [in] */ UINT cNames, /* [size_is][out] */ MEMBERID *pMemId) = 0; virtual /* [local] */ HRESULT __stdcall Invoke( /* [in] */ PVOID pvInstance, /* [in] */ MEMBERID memid, /* [in] */ WORD wFlags, /* [out][in] */ DISPPARAMS *pDispParams, /* [out] */ VARIANT *pVarResult, /* [out] */ EXCEPINFO *pExcepInfo, /* [out] */ UINT *puArgErr) = 0; virtual /* [local] */ HRESULT __stdcall GetDocumentation( /* [in] */ MEMBERID memid, /* [out] */ BSTR *pBstrName, /* [out] */ BSTR *pBstrDocString, /* [out] */ DWORD *pdwHelpContext, /* [out] */ BSTR *pBstrHelpFile) = 0; virtual /* [local] */ HRESULT __stdcall GetDllEntry( /* [in] */ MEMBERID memid, /* [in] */ INVOKEKIND invKind, /* [out] */ BSTR *pBstrDllName, /* [out] */ BSTR *pBstrName, /* [out] */ WORD *pwOrdinal) = 0; virtual HRESULT __stdcall GetRefTypeInfo( /* [in] */ HREFTYPE hRefType, /* [out] */ ITypeInfo **ppTInfo) = 0; virtual /* [local] */ HRESULT __stdcall AddressOfMember( /* [in] */ MEMBERID memid, /* [in] */ INVOKEKIND invKind, /* [out] */ PVOID *ppv) = 0; virtual /* [local] */ HRESULT __stdcall CreateInstance( /* [in] */ IUnknown *pUnkOuter, /* [in] */ const IID & riid, /* [iid_is][out] */ PVOID *ppvObj) = 0; virtual HRESULT __stdcall GetMops( /* [in] */ MEMBERID memid, /* [out] */ BSTR *pBstrMops) = 0; virtual /* [local] */ HRESULT __stdcall GetContainingTypeLib( /* [out] */ ITypeLib **ppTLib, /* [out] */ UINT *pIndex) = 0; virtual /* [local] */ void __stdcall ReleaseTypeAttr( /* [in] */ TYPEATTR *pTypeAttr) = 0; virtual /* [local] */ void __stdcall ReleaseFuncDesc( /* [in] */ FUNCDESC *pFuncDesc) = 0; virtual /* [local] */ void __stdcall ReleaseVarDesc( /* [in] */ VARDESC *pVarDesc) = 0; }; #line 2824 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" /* [call_as] */ HRESULT __stdcall ITypeInfo_RemoteGetTypeAttr_Proxy( ITypeInfo * This, /* [out] */ LPTYPEATTR *ppTypeAttr, /* [out] */ CLEANLOCALSTORAGE *pDummy); void __stdcall ITypeInfo_RemoteGetTypeAttr_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [call_as] */ HRESULT __stdcall ITypeInfo_RemoteGetFuncDesc_Proxy( ITypeInfo * This, /* [in] */ UINT index, /* [out] */ LPFUNCDESC *ppFuncDesc, /* [out] */ CLEANLOCALSTORAGE *pDummy); void __stdcall ITypeInfo_RemoteGetFuncDesc_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [call_as] */ HRESULT __stdcall ITypeInfo_RemoteGetVarDesc_Proxy( ITypeInfo * This, /* [in] */ UINT index, /* [out] */ LPVARDESC *ppVarDesc, /* [out] */ CLEANLOCALSTORAGE *pDummy); void __stdcall ITypeInfo_RemoteGetVarDesc_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [call_as] */ HRESULT __stdcall ITypeInfo_RemoteGetNames_Proxy( ITypeInfo * This, /* [in] */ MEMBERID memid, /* [length_is][size_is][out] */ BSTR *rgBstrNames, /* [in] */ UINT cMaxNames, /* [out] */ UINT *pcNames); void __stdcall ITypeInfo_RemoteGetNames_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [nocode][call_as] */ HRESULT __stdcall ITypeInfo_LocalGetIDsOfNames_Proxy( ITypeInfo * This); void __stdcall ITypeInfo_LocalGetIDsOfNames_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [nocode][call_as] */ HRESULT __stdcall ITypeInfo_LocalInvoke_Proxy( ITypeInfo * This); void __stdcall ITypeInfo_LocalInvoke_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [call_as] */ HRESULT __stdcall ITypeInfo_RemoteGetDocumentation_Proxy( ITypeInfo * This, /* [in] */ MEMBERID memid, /* [in] */ DWORD refPtrFlags, /* [out] */ BSTR *pBstrName, /* [out] */ BSTR *pBstrDocString, /* [out] */ DWORD *pdwHelpContext, /* [out] */ BSTR *pBstrHelpFile); void __stdcall ITypeInfo_RemoteGetDocumentation_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [call_as] */ HRESULT __stdcall ITypeInfo_RemoteGetDllEntry_Proxy( ITypeInfo * This, /* [in] */ MEMBERID memid, /* [in] */ INVOKEKIND invKind, /* [in] */ DWORD refPtrFlags, /* [out] */ BSTR *pBstrDllName, /* [out] */ BSTR *pBstrName, /* [out] */ WORD *pwOrdinal); void __stdcall ITypeInfo_RemoteGetDllEntry_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [nocode][call_as] */ HRESULT __stdcall ITypeInfo_LocalAddressOfMember_Proxy( ITypeInfo * This); void __stdcall ITypeInfo_LocalAddressOfMember_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [call_as] */ HRESULT __stdcall ITypeInfo_RemoteCreateInstance_Proxy( ITypeInfo * This, /* [in] */ const IID & riid, /* [iid_is][out] */ IUnknown **ppvObj); void __stdcall ITypeInfo_RemoteCreateInstance_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [call_as] */ HRESULT __stdcall ITypeInfo_RemoteGetContainingTypeLib_Proxy( ITypeInfo * This, /* [out] */ ITypeLib **ppTLib, /* [out] */ UINT *pIndex); void __stdcall ITypeInfo_RemoteGetContainingTypeLib_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [nocode][call_as] */ HRESULT __stdcall ITypeInfo_LocalReleaseTypeAttr_Proxy( ITypeInfo * This); void __stdcall ITypeInfo_LocalReleaseTypeAttr_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [nocode][call_as] */ HRESULT __stdcall ITypeInfo_LocalReleaseFuncDesc_Proxy( ITypeInfo * This); void __stdcall ITypeInfo_LocalReleaseFuncDesc_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [nocode][call_as] */ HRESULT __stdcall ITypeInfo_LocalReleaseVarDesc_Proxy( ITypeInfo * This); void __stdcall ITypeInfo_LocalReleaseVarDesc_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #line 3011 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" /* interface ITypeInfo2 */ /* [unique][uuid][object] */ typedef /* [unique] */ ITypeInfo2 *LPTYPEINFO2; extern "C" const IID IID_ITypeInfo2; struct __declspec(uuid("00020412-0000-0000-C000-000000000046")) __declspec(novtable) ITypeInfo2 : public ITypeInfo { public: virtual HRESULT __stdcall GetTypeKind( /* [out] */ TYPEKIND *pTypeKind) = 0; virtual HRESULT __stdcall GetTypeFlags( /* [out] */ ULONG *pTypeFlags) = 0; virtual HRESULT __stdcall GetFuncIndexOfMemId( /* [in] */ MEMBERID memid, /* [in] */ INVOKEKIND invKind, /* [out] */ UINT *pFuncIndex) = 0; virtual HRESULT __stdcall GetVarIndexOfMemId( /* [in] */ MEMBERID memid, /* [out] */ UINT *pVarIndex) = 0; virtual HRESULT __stdcall GetCustData( /* [in] */ const GUID & guid, /* [out] */ VARIANT *pVarVal) = 0; virtual HRESULT __stdcall GetFuncCustData( /* [in] */ UINT index, /* [in] */ const GUID & guid, /* [out] */ VARIANT *pVarVal) = 0; virtual HRESULT __stdcall GetParamCustData( /* [in] */ UINT indexFunc, /* [in] */ UINT indexParam, /* [in] */ const GUID & guid, /* [out] */ VARIANT *pVarVal) = 0; virtual HRESULT __stdcall GetVarCustData( /* [in] */ UINT index, /* [in] */ const GUID & guid, /* [out] */ VARIANT *pVarVal) = 0; virtual HRESULT __stdcall GetImplTypeCustData( /* [in] */ UINT index, /* [in] */ const GUID & guid, /* [out] */ VARIANT *pVarVal) = 0; virtual /* [local] */ HRESULT __stdcall GetDocumentation2( /* [in] */ MEMBERID memid, /* [in] */ LCID lcid, /* [out] */ BSTR *pbstrHelpString, /* [out] */ DWORD *pdwHelpStringContext, /* [out] */ BSTR *pbstrHelpStringDll) = 0; virtual HRESULT __stdcall GetAllCustData( /* [out] */ CUSTDATA *pCustData) = 0; virtual HRESULT __stdcall GetAllFuncCustData( /* [in] */ UINT index, /* [out] */ CUSTDATA *pCustData) = 0; virtual HRESULT __stdcall GetAllParamCustData( /* [in] */ UINT indexFunc, /* [in] */ UINT indexParam, /* [out] */ CUSTDATA *pCustData) = 0; virtual HRESULT __stdcall GetAllVarCustData( /* [in] */ UINT index, /* [out] */ CUSTDATA *pCustData) = 0; virtual HRESULT __stdcall GetAllImplTypeCustData( /* [in] */ UINT index, /* [out] */ CUSTDATA *pCustData) = 0; }; #line 3435 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" /* [call_as] */ HRESULT __stdcall ITypeInfo2_RemoteGetDocumentation2_Proxy( ITypeInfo2 * This, /* [in] */ MEMBERID memid, /* [in] */ LCID lcid, /* [in] */ DWORD refPtrFlags, /* [out] */ BSTR *pbstrHelpString, /* [out] */ DWORD *pdwHelpStringContext, /* [out] */ BSTR *pbstrHelpStringDll); void __stdcall ITypeInfo2_RemoteGetDocumentation2_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #line 3457 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" /* interface ITypeLib */ /* [unique][uuid][object] */ typedef /* [v1_enum] */ enum tagSYSKIND { SYS_WIN16 = 0, SYS_WIN32 = ( SYS_WIN16 + 1 ) , SYS_MAC = ( SYS_WIN32 + 1 ) , SYS_WIN64 = ( SYS_MAC + 1 ) } SYSKIND; typedef /* [v1_enum] */ enum tagLIBFLAGS { LIBFLAG_FRESTRICTED = 0x1, LIBFLAG_FCONTROL = 0x2, LIBFLAG_FHIDDEN = 0x4, LIBFLAG_FHASDISKIMAGE = 0x8 } LIBFLAGS; typedef /* [unique] */ ITypeLib *LPTYPELIB; typedef struct tagTLIBATTR { GUID guid; LCID lcid; SYSKIND syskind; WORD wMajorVerNum; WORD wMinorVerNum; WORD wLibFlags; } TLIBATTR; typedef struct tagTLIBATTR *LPTLIBATTR; extern "C" const IID IID_ITypeLib; struct __declspec(uuid("00020402-0000-0000-C000-000000000046")) __declspec(novtable) ITypeLib : public IUnknown { public: virtual /* [local] */ UINT __stdcall GetTypeInfoCount( void) = 0; virtual HRESULT __stdcall GetTypeInfo( /* [in] */ UINT index, /* [out] */ ITypeInfo **ppTInfo) = 0; virtual HRESULT __stdcall GetTypeInfoType( /* [in] */ UINT index, /* [out] */ TYPEKIND *pTKind) = 0; virtual HRESULT __stdcall GetTypeInfoOfGuid( /* [in] */ const GUID & guid, /* [out] */ ITypeInfo **ppTinfo) = 0; virtual /* [local] */ HRESULT __stdcall GetLibAttr( /* [out] */ TLIBATTR **ppTLibAttr) = 0; virtual HRESULT __stdcall GetTypeComp( /* [out] */ ITypeComp **ppTComp) = 0; virtual /* [local] */ HRESULT __stdcall GetDocumentation( /* [in] */ INT index, /* [out] */ BSTR *pBstrName, /* [out] */ BSTR *pBstrDocString, /* [out] */ DWORD *pdwHelpContext, /* [out] */ BSTR *pBstrHelpFile) = 0; virtual /* [local] */ HRESULT __stdcall IsName( /* [out][in] */ LPOLESTR szNameBuf, /* [in] */ ULONG lHashVal, /* [out] */ BOOL *pfName) = 0; virtual /* [local] */ HRESULT __stdcall FindName( /* [out][in] */ LPOLESTR szNameBuf, /* [in] */ ULONG lHashVal, /* [length_is][size_is][out] */ ITypeInfo **ppTInfo, /* [length_is][size_is][out] */ MEMBERID *rgMemId, /* [out][in] */ USHORT *pcFound) = 0; virtual /* [local] */ void __stdcall ReleaseTLibAttr( /* [in] */ TLIBATTR *pTLibAttr) = 0; }; #line 3675 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" /* [call_as] */ HRESULT __stdcall ITypeLib_RemoteGetTypeInfoCount_Proxy( ITypeLib * This, /* [out] */ UINT *pcTInfo); void __stdcall ITypeLib_RemoteGetTypeInfoCount_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [call_as] */ HRESULT __stdcall ITypeLib_RemoteGetLibAttr_Proxy( ITypeLib * This, /* [out] */ LPTLIBATTR *ppTLibAttr, /* [out] */ CLEANLOCALSTORAGE *pDummy); void __stdcall ITypeLib_RemoteGetLibAttr_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [call_as] */ HRESULT __stdcall ITypeLib_RemoteGetDocumentation_Proxy( ITypeLib * This, /* [in] */ INT index, /* [in] */ DWORD refPtrFlags, /* [out] */ BSTR *pBstrName, /* [out] */ BSTR *pBstrDocString, /* [out] */ DWORD *pdwHelpContext, /* [out] */ BSTR *pBstrHelpFile); void __stdcall ITypeLib_RemoteGetDocumentation_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [call_as] */ HRESULT __stdcall ITypeLib_RemoteIsName_Proxy( ITypeLib * This, /* [in] */ LPOLESTR szNameBuf, /* [in] */ ULONG lHashVal, /* [out] */ BOOL *pfName, /* [out] */ BSTR *pBstrLibName); void __stdcall ITypeLib_RemoteIsName_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [call_as] */ HRESULT __stdcall ITypeLib_RemoteFindName_Proxy( ITypeLib * This, /* [in] */ LPOLESTR szNameBuf, /* [in] */ ULONG lHashVal, /* [length_is][size_is][out] */ ITypeInfo **ppTInfo, /* [length_is][size_is][out] */ MEMBERID *rgMemId, /* [out][in] */ USHORT *pcFound, /* [out] */ BSTR *pBstrLibName); void __stdcall ITypeLib_RemoteFindName_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [nocode][call_as] */ HRESULT __stdcall ITypeLib_LocalReleaseTLibAttr_Proxy( ITypeLib * This); void __stdcall ITypeLib_LocalReleaseTLibAttr_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #line 3765 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" /* interface ITypeLib2 */ /* [unique][uuid][object] */ typedef /* [unique] */ ITypeLib2 *LPTYPELIB2; extern "C" const IID IID_ITypeLib2; struct __declspec(uuid("00020411-0000-0000-C000-000000000046")) __declspec(novtable) ITypeLib2 : public ITypeLib { public: virtual HRESULT __stdcall GetCustData( /* [in] */ const GUID & guid, /* [out] */ VARIANT *pVarVal) = 0; virtual /* [local] */ HRESULT __stdcall GetLibStatistics( /* [out] */ ULONG *pcUniqueNames, /* [out] */ ULONG *pcchUniqueNames) = 0; virtual /* [local] */ HRESULT __stdcall GetDocumentation2( /* [in] */ INT index, /* [in] */ LCID lcid, /* [out] */ BSTR *pbstrHelpString, /* [out] */ DWORD *pdwHelpStringContext, /* [out] */ BSTR *pbstrHelpStringDll) = 0; virtual HRESULT __stdcall GetAllCustData( /* [out] */ CUSTDATA *pCustData) = 0; }; #line 3966 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" /* [call_as] */ HRESULT __stdcall ITypeLib2_RemoteGetLibStatistics_Proxy( ITypeLib2 * This, /* [out] */ ULONG *pcUniqueNames, /* [out] */ ULONG *pcchUniqueNames); void __stdcall ITypeLib2_RemoteGetLibStatistics_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [call_as] */ HRESULT __stdcall ITypeLib2_RemoteGetDocumentation2_Proxy( ITypeLib2 * This, /* [in] */ INT index, /* [in] */ LCID lcid, /* [in] */ DWORD refPtrFlags, /* [out] */ BSTR *pbstrHelpString, /* [out] */ DWORD *pdwHelpStringContext, /* [out] */ BSTR *pbstrHelpStringDll); void __stdcall ITypeLib2_RemoteGetDocumentation2_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #line 4001 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" /* interface ITypeChangeEvents */ /* [local][unique][uuid][object] */ typedef /* [unique] */ ITypeChangeEvents *LPTYPECHANGEEVENTS; typedef enum tagCHANGEKIND { CHANGEKIND_ADDMEMBER = 0, CHANGEKIND_DELETEMEMBER = ( CHANGEKIND_ADDMEMBER + 1 ) , CHANGEKIND_SETNAMES = ( CHANGEKIND_DELETEMEMBER + 1 ) , CHANGEKIND_SETDOCUMENTATION = ( CHANGEKIND_SETNAMES + 1 ) , CHANGEKIND_GENERAL = ( CHANGEKIND_SETDOCUMENTATION + 1 ) , CHANGEKIND_INVALIDATE = ( CHANGEKIND_GENERAL + 1 ) , CHANGEKIND_CHANGEFAILED = ( CHANGEKIND_INVALIDATE + 1 ) , CHANGEKIND_MAX = ( CHANGEKIND_CHANGEFAILED + 1 ) } CHANGEKIND; extern "C" const IID IID_ITypeChangeEvents; struct __declspec(uuid("00020410-0000-0000-C000-000000000046")) __declspec(novtable) ITypeChangeEvents : public IUnknown { public: virtual HRESULT __stdcall RequestTypeChange( /* [in] */ CHANGEKIND changeKind, /* [in] */ ITypeInfo *pTInfoBefore, /* [in] */ LPOLESTR pStrName, /* [out] */ INT *pfCancel) = 0; virtual HRESULT __stdcall AfterTypeChange( /* [in] */ CHANGEKIND changeKind, /* [in] */ ITypeInfo *pTInfoAfter, /* [in] */ LPOLESTR pStrName) = 0; }; #line 4109 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" #line 4114 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" /* interface IErrorInfo */ /* [unique][uuid][object] */ typedef /* [unique] */ IErrorInfo *LPERRORINFO; extern "C" const IID IID_IErrorInfo; struct __declspec(uuid("1CF2B120-547D-101B-8E65-08002B2BD119")) __declspec(novtable) IErrorInfo : public IUnknown { public: virtual HRESULT __stdcall GetGUID( /* [out] */ GUID *pGUID) = 0; virtual HRESULT __stdcall GetSource( /* [out] */ BSTR *pBstrSource) = 0; virtual HRESULT __stdcall GetDescription( /* [out] */ BSTR *pBstrDescription) = 0; virtual HRESULT __stdcall GetHelpFile( /* [out] */ BSTR *pBstrHelpFile) = 0; virtual HRESULT __stdcall GetHelpContext( /* [out] */ DWORD *pdwHelpContext) = 0; }; #line 4230 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" #line 4235 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" /* interface ICreateErrorInfo */ /* [unique][uuid][object] */ typedef /* [unique] */ ICreateErrorInfo *LPCREATEERRORINFO; extern "C" const IID IID_ICreateErrorInfo; struct __declspec(uuid("22F03340-547D-101B-8E65-08002B2BD119")) __declspec(novtable) ICreateErrorInfo : public IUnknown { public: virtual HRESULT __stdcall SetGUID( /* [in] */ const GUID & rguid) = 0; virtual HRESULT __stdcall SetSource( /* [in] */ LPOLESTR szSource) = 0; virtual HRESULT __stdcall SetDescription( /* [in] */ LPOLESTR szDescription) = 0; virtual HRESULT __stdcall SetHelpFile( /* [in] */ LPOLESTR szHelpFile) = 0; virtual HRESULT __stdcall SetHelpContext( /* [in] */ DWORD dwHelpContext) = 0; }; #line 4351 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" #line 4356 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" /* interface ISupportErrorInfo */ /* [unique][uuid][object] */ typedef /* [unique] */ ISupportErrorInfo *LPSUPPORTERRORINFO; extern "C" const IID IID_ISupportErrorInfo; struct __declspec(uuid("DF0B3D60-548F-101B-8E65-08002B2BD119")) __declspec(novtable) ISupportErrorInfo : public IUnknown { public: virtual HRESULT __stdcall InterfaceSupportsErrorInfo( /* [in] */ const IID & riid) = 0; }; #line 4432 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" #line 4437 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" /* interface ITypeFactory */ /* [uuid][object] */ extern "C" const IID IID_ITypeFactory; struct __declspec(uuid("0000002E-0000-0000-C000-000000000046")) __declspec(novtable) ITypeFactory : public IUnknown { public: virtual HRESULT __stdcall CreateFromTypeInfo( /* [in] */ ITypeInfo *pTypeInfo, /* [in] */ const IID & riid, /* [iid_is][out] */ IUnknown **ppv) = 0; }; #line 4515 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" #line 4520 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" /* interface ITypeMarshal */ /* [uuid][object][local] */ extern "C" const IID IID_ITypeMarshal; struct __declspec(uuid("0000002D-0000-0000-C000-000000000046")) __declspec(novtable) ITypeMarshal : public IUnknown { public: virtual HRESULT __stdcall Size( /* [in] */ PVOID pvType, /* [in] */ DWORD dwDestContext, /* [in] */ PVOID pvDestContext, /* [out] */ ULONG *pSize) = 0; virtual HRESULT __stdcall Marshal( /* [in] */ PVOID pvType, /* [in] */ DWORD dwDestContext, /* [in] */ PVOID pvDestContext, /* [in] */ ULONG cbBufferLength, /* [out] */ BYTE *pBuffer, /* [out] */ ULONG *pcbWritten) = 0; virtual HRESULT __stdcall Unmarshal( /* [out] */ PVOID pvType, /* [in] */ DWORD dwFlags, /* [in] */ ULONG cbBufferLength, /* [in] */ BYTE *pBuffer, /* [out] */ ULONG *pcbRead) = 0; virtual HRESULT __stdcall Free( /* [in] */ PVOID pvType) = 0; }; #line 4648 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" #line 4653 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" /* interface IRecordInfo */ /* [uuid][object][local] */ typedef /* [unique] */ IRecordInfo *LPRECORDINFO; extern "C" const IID IID_IRecordInfo; struct __declspec(uuid("0000002F-0000-0000-C000-000000000046")) __declspec(novtable) IRecordInfo : public IUnknown { public: virtual HRESULT __stdcall RecordInit( /* [out] */ PVOID pvNew) = 0; virtual HRESULT __stdcall RecordClear( /* [in] */ PVOID pvExisting) = 0; virtual HRESULT __stdcall RecordCopy( /* [in] */ PVOID pvExisting, /* [out] */ PVOID pvNew) = 0; virtual HRESULT __stdcall GetGuid( /* [out] */ GUID *pguid) = 0; virtual HRESULT __stdcall GetName( /* [out] */ BSTR *pbstrName) = 0; virtual HRESULT __stdcall GetSize( /* [out] */ ULONG *pcbSize) = 0; virtual HRESULT __stdcall GetTypeInfo( /* [out] */ ITypeInfo **ppTypeInfo) = 0; virtual HRESULT __stdcall GetField( /* [in] */ PVOID pvData, /* [in] */ LPCOLESTR szFieldName, /* [out] */ VARIANT *pvarField) = 0; virtual HRESULT __stdcall GetFieldNoCopy( /* [in] */ PVOID pvData, /* [in] */ LPCOLESTR szFieldName, /* [out] */ VARIANT *pvarField, /* [out] */ PVOID *ppvDataCArray) = 0; virtual HRESULT __stdcall PutField( /* [in] */ ULONG wFlags, /* [out][in] */ PVOID pvData, /* [in] */ LPCOLESTR szFieldName, /* [in] */ VARIANT *pvarField) = 0; virtual HRESULT __stdcall PutFieldNoCopy( /* [in] */ ULONG wFlags, /* [out][in] */ PVOID pvData, /* [in] */ LPCOLESTR szFieldName, /* [in] */ VARIANT *pvarField) = 0; virtual HRESULT __stdcall GetFieldNames( /* [out][in] */ ULONG *pcNames, /* [length_is][size_is][out] */ BSTR *rgBstrNames) = 0; virtual BOOL __stdcall IsMatchingType( /* [in] */ IRecordInfo *pRecordInfo) = 0; virtual PVOID __stdcall RecordCreate( void) = 0; virtual HRESULT __stdcall RecordCreateCopy( /* [in] */ PVOID pvSource, /* [out] */ PVOID *ppvDest) = 0; virtual HRESULT __stdcall RecordDestroy( /* [in] */ PVOID pvRecord) = 0; }; #line 4905 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" #line 4910 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" /* interface IErrorLog */ /* [unique][uuid][object] */ typedef IErrorLog *LPERRORLOG; extern "C" const IID IID_IErrorLog; struct __declspec(uuid("3127CA40-446E-11CE-8135-00AA004BB851")) __declspec(novtable) IErrorLog : public IUnknown { public: virtual HRESULT __stdcall AddError( /* [in] */ LPCOLESTR pszPropName, /* [in] */ EXCEPINFO *pExcepInfo) = 0; }; #line 4988 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" #line 4993 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" /* interface IPropertyBag */ /* [unique][uuid][object] */ typedef IPropertyBag *LPPROPERTYBAG; extern "C" const IID IID_IPropertyBag; struct __declspec(uuid("55272A00-42CB-11CE-8135-00AA004BB851")) __declspec(novtable) IPropertyBag : public IUnknown { public: virtual /* [local] */ HRESULT __stdcall Read( /* [in] */ LPCOLESTR pszPropName, /* [out][in] */ VARIANT *pVar, /* [unique][in] */ IErrorLog *pErrorLog) = 0; virtual HRESULT __stdcall Write( /* [in] */ LPCOLESTR pszPropName, /* [in] */ VARIANT *pVar) = 0; }; #line 5085 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" /* [call_as] */ HRESULT __stdcall IPropertyBag_RemoteRead_Proxy( IPropertyBag * This, /* [in] */ LPCOLESTR pszPropName, /* [out] */ VARIANT *pVar, /* [unique][in] */ IErrorLog *pErrorLog, /* [in] */ DWORD varType, /* [in] */ IUnknown *pUnkObj); void __stdcall IPropertyBag_RemoteRead_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #line 5106 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" /* interface __MIDL_itf_oaidl_0000_0021 */ /* [local] */ #pragma warning(pop) #line 5117 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" #line 5118 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" extern RPC_IF_HANDLE __MIDL_itf_oaidl_0000_0021_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_oaidl_0000_0021_v0_0_s_ifspec; /* Additional Prototypes for ALL interfaces */ unsigned long __stdcall BSTR_UserSize( unsigned long *, unsigned long , BSTR * ); unsigned char * __stdcall BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * ); unsigned char * __stdcall BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * ); void __stdcall BSTR_UserFree( unsigned long *, BSTR * ); unsigned long __stdcall CLEANLOCALSTORAGE_UserSize( unsigned long *, unsigned long , CLEANLOCALSTORAGE * ); unsigned char * __stdcall CLEANLOCALSTORAGE_UserMarshal( unsigned long *, unsigned char *, CLEANLOCALSTORAGE * ); unsigned char * __stdcall CLEANLOCALSTORAGE_UserUnmarshal(unsigned long *, unsigned char *, CLEANLOCALSTORAGE * ); void __stdcall CLEANLOCALSTORAGE_UserFree( unsigned long *, CLEANLOCALSTORAGE * ); unsigned long __stdcall VARIANT_UserSize( unsigned long *, unsigned long , VARIANT * ); unsigned char * __stdcall VARIANT_UserMarshal( unsigned long *, unsigned char *, VARIANT * ); unsigned char * __stdcall VARIANT_UserUnmarshal(unsigned long *, unsigned char *, VARIANT * ); void __stdcall VARIANT_UserFree( unsigned long *, VARIANT * ); unsigned long __stdcall BSTR_UserSize64( unsigned long *, unsigned long , BSTR * ); unsigned char * __stdcall BSTR_UserMarshal64( unsigned long *, unsigned char *, BSTR * ); unsigned char * __stdcall BSTR_UserUnmarshal64(unsigned long *, unsigned char *, BSTR * ); void __stdcall BSTR_UserFree64( unsigned long *, BSTR * ); unsigned long __stdcall CLEANLOCALSTORAGE_UserSize64( unsigned long *, unsigned long , CLEANLOCALSTORAGE * ); unsigned char * __stdcall CLEANLOCALSTORAGE_UserMarshal64( unsigned long *, unsigned char *, CLEANLOCALSTORAGE * ); unsigned char * __stdcall CLEANLOCALSTORAGE_UserUnmarshal64(unsigned long *, unsigned char *, CLEANLOCALSTORAGE * ); void __stdcall CLEANLOCALSTORAGE_UserFree64( unsigned long *, CLEANLOCALSTORAGE * ); unsigned long __stdcall VARIANT_UserSize64( unsigned long *, unsigned long , VARIANT * ); unsigned char * __stdcall VARIANT_UserMarshal64( unsigned long *, unsigned char *, VARIANT * ); unsigned char * __stdcall VARIANT_UserUnmarshal64(unsigned long *, unsigned char *, VARIANT * ); void __stdcall VARIANT_UserFree64( unsigned long *, VARIANT * ); /* [local] */ HRESULT __stdcall IDispatch_Invoke_Proxy( IDispatch * This, /* [in] */ DISPID dispIdMember, /* [in] */ const IID & riid, /* [in] */ LCID lcid, /* [in] */ WORD wFlags, /* [out][in] */ DISPPARAMS *pDispParams, /* [out] */ VARIANT *pVarResult, /* [out] */ EXCEPINFO *pExcepInfo, /* [out] */ UINT *puArgErr); /* [call_as] */ HRESULT __stdcall IDispatch_Invoke_Stub( IDispatch * This, /* [in] */ DISPID dispIdMember, /* [in] */ const IID & riid, /* [in] */ LCID lcid, /* [in] */ DWORD dwFlags, /* [in] */ DISPPARAMS *pDispParams, /* [out] */ VARIANT *pVarResult, /* [out] */ EXCEPINFO *pExcepInfo, /* [out] */ UINT *pArgErr, /* [in] */ UINT cVarRef, /* [size_is][in] */ UINT *rgVarRefIdx, /* [size_is][out][in] */ VARIANTARG *rgVarRef); /* [local] */ HRESULT __stdcall IEnumVARIANT_Next_Proxy( IEnumVARIANT * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ VARIANT *rgVar, /* [out] */ ULONG *pCeltFetched); /* [call_as] */ HRESULT __stdcall IEnumVARIANT_Next_Stub( IEnumVARIANT * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ VARIANT *rgVar, /* [out] */ ULONG *pCeltFetched); /* [local] */ HRESULT __stdcall ITypeComp_Bind_Proxy( ITypeComp * This, /* [in] */ LPOLESTR szName, /* [in] */ ULONG lHashVal, /* [in] */ WORD wFlags, /* [out] */ ITypeInfo **ppTInfo, /* [out] */ DESCKIND *pDescKind, /* [out] */ BINDPTR *pBindPtr); /* [call_as] */ HRESULT __stdcall ITypeComp_Bind_Stub( ITypeComp * This, /* [in] */ LPOLESTR szName, /* [in] */ ULONG lHashVal, /* [in] */ WORD wFlags, /* [out] */ ITypeInfo **ppTInfo, /* [out] */ DESCKIND *pDescKind, /* [out] */ LPFUNCDESC *ppFuncDesc, /* [out] */ LPVARDESC *ppVarDesc, /* [out] */ ITypeComp **ppTypeComp, /* [out] */ CLEANLOCALSTORAGE *pDummy); /* [local] */ HRESULT __stdcall ITypeComp_BindType_Proxy( ITypeComp * This, /* [in] */ LPOLESTR szName, /* [in] */ ULONG lHashVal, /* [out] */ ITypeInfo **ppTInfo, /* [out] */ ITypeComp **ppTComp); /* [call_as] */ HRESULT __stdcall ITypeComp_BindType_Stub( ITypeComp * This, /* [in] */ LPOLESTR szName, /* [in] */ ULONG lHashVal, /* [out] */ ITypeInfo **ppTInfo); /* [local] */ HRESULT __stdcall ITypeInfo_GetTypeAttr_Proxy( ITypeInfo * This, /* [out] */ TYPEATTR **ppTypeAttr); /* [call_as] */ HRESULT __stdcall ITypeInfo_GetTypeAttr_Stub( ITypeInfo * This, /* [out] */ LPTYPEATTR *ppTypeAttr, /* [out] */ CLEANLOCALSTORAGE *pDummy); /* [local] */ HRESULT __stdcall ITypeInfo_GetFuncDesc_Proxy( ITypeInfo * This, /* [in] */ UINT index, /* [out] */ FUNCDESC **ppFuncDesc); /* [call_as] */ HRESULT __stdcall ITypeInfo_GetFuncDesc_Stub( ITypeInfo * This, /* [in] */ UINT index, /* [out] */ LPFUNCDESC *ppFuncDesc, /* [out] */ CLEANLOCALSTORAGE *pDummy); /* [local] */ HRESULT __stdcall ITypeInfo_GetVarDesc_Proxy( ITypeInfo * This, /* [in] */ UINT index, /* [out] */ VARDESC **ppVarDesc); /* [call_as] */ HRESULT __stdcall ITypeInfo_GetVarDesc_Stub( ITypeInfo * This, /* [in] */ UINT index, /* [out] */ LPVARDESC *ppVarDesc, /* [out] */ CLEANLOCALSTORAGE *pDummy); /* [local] */ HRESULT __stdcall ITypeInfo_GetNames_Proxy( ITypeInfo * This, /* [in] */ MEMBERID memid, /* [length_is][size_is][out] */ BSTR *rgBstrNames, /* [in] */ UINT cMaxNames, /* [out] */ UINT *pcNames); /* [call_as] */ HRESULT __stdcall ITypeInfo_GetNames_Stub( ITypeInfo * This, /* [in] */ MEMBERID memid, /* [length_is][size_is][out] */ BSTR *rgBstrNames, /* [in] */ UINT cMaxNames, /* [out] */ UINT *pcNames); /* [local] */ HRESULT __stdcall ITypeInfo_GetIDsOfNames_Proxy( ITypeInfo * This, /* [size_is][in] */ LPOLESTR *rgszNames, /* [in] */ UINT cNames, /* [size_is][out] */ MEMBERID *pMemId); /* [nocode][call_as] */ HRESULT __stdcall ITypeInfo_GetIDsOfNames_Stub( ITypeInfo * This); /* [local] */ HRESULT __stdcall ITypeInfo_Invoke_Proxy( ITypeInfo * This, /* [in] */ PVOID pvInstance, /* [in] */ MEMBERID memid, /* [in] */ WORD wFlags, /* [out][in] */ DISPPARAMS *pDispParams, /* [out] */ VARIANT *pVarResult, /* [out] */ EXCEPINFO *pExcepInfo, /* [out] */ UINT *puArgErr); /* [nocode][call_as] */ HRESULT __stdcall ITypeInfo_Invoke_Stub( ITypeInfo * This); /* [local] */ HRESULT __stdcall ITypeInfo_GetDocumentation_Proxy( ITypeInfo * This, /* [in] */ MEMBERID memid, /* [out] */ BSTR *pBstrName, /* [out] */ BSTR *pBstrDocString, /* [out] */ DWORD *pdwHelpContext, /* [out] */ BSTR *pBstrHelpFile); /* [call_as] */ HRESULT __stdcall ITypeInfo_GetDocumentation_Stub( ITypeInfo * This, /* [in] */ MEMBERID memid, /* [in] */ DWORD refPtrFlags, /* [out] */ BSTR *pBstrName, /* [out] */ BSTR *pBstrDocString, /* [out] */ DWORD *pdwHelpContext, /* [out] */ BSTR *pBstrHelpFile); /* [local] */ HRESULT __stdcall ITypeInfo_GetDllEntry_Proxy( ITypeInfo * This, /* [in] */ MEMBERID memid, /* [in] */ INVOKEKIND invKind, /* [out] */ BSTR *pBstrDllName, /* [out] */ BSTR *pBstrName, /* [out] */ WORD *pwOrdinal); /* [call_as] */ HRESULT __stdcall ITypeInfo_GetDllEntry_Stub( ITypeInfo * This, /* [in] */ MEMBERID memid, /* [in] */ INVOKEKIND invKind, /* [in] */ DWORD refPtrFlags, /* [out] */ BSTR *pBstrDllName, /* [out] */ BSTR *pBstrName, /* [out] */ WORD *pwOrdinal); /* [local] */ HRESULT __stdcall ITypeInfo_AddressOfMember_Proxy( ITypeInfo * This, /* [in] */ MEMBERID memid, /* [in] */ INVOKEKIND invKind, /* [out] */ PVOID *ppv); /* [nocode][call_as] */ HRESULT __stdcall ITypeInfo_AddressOfMember_Stub( ITypeInfo * This); /* [local] */ HRESULT __stdcall ITypeInfo_CreateInstance_Proxy( ITypeInfo * This, /* [in] */ IUnknown *pUnkOuter, /* [in] */ const IID & riid, /* [iid_is][out] */ PVOID *ppvObj); /* [call_as] */ HRESULT __stdcall ITypeInfo_CreateInstance_Stub( ITypeInfo * This, /* [in] */ const IID & riid, /* [iid_is][out] */ IUnknown **ppvObj); /* [local] */ HRESULT __stdcall ITypeInfo_GetContainingTypeLib_Proxy( ITypeInfo * This, /* [out] */ ITypeLib **ppTLib, /* [out] */ UINT *pIndex); /* [call_as] */ HRESULT __stdcall ITypeInfo_GetContainingTypeLib_Stub( ITypeInfo * This, /* [out] */ ITypeLib **ppTLib, /* [out] */ UINT *pIndex); /* [local] */ void __stdcall ITypeInfo_ReleaseTypeAttr_Proxy( ITypeInfo * This, /* [in] */ TYPEATTR *pTypeAttr); /* [nocode][call_as] */ HRESULT __stdcall ITypeInfo_ReleaseTypeAttr_Stub( ITypeInfo * This); /* [local] */ void __stdcall ITypeInfo_ReleaseFuncDesc_Proxy( ITypeInfo * This, /* [in] */ FUNCDESC *pFuncDesc); /* [nocode][call_as] */ HRESULT __stdcall ITypeInfo_ReleaseFuncDesc_Stub( ITypeInfo * This); /* [local] */ void __stdcall ITypeInfo_ReleaseVarDesc_Proxy( ITypeInfo * This, /* [in] */ VARDESC *pVarDesc); /* [nocode][call_as] */ HRESULT __stdcall ITypeInfo_ReleaseVarDesc_Stub( ITypeInfo * This); /* [local] */ HRESULT __stdcall ITypeInfo2_GetDocumentation2_Proxy( ITypeInfo2 * This, /* [in] */ MEMBERID memid, /* [in] */ LCID lcid, /* [out] */ BSTR *pbstrHelpString, /* [out] */ DWORD *pdwHelpStringContext, /* [out] */ BSTR *pbstrHelpStringDll); /* [call_as] */ HRESULT __stdcall ITypeInfo2_GetDocumentation2_Stub( ITypeInfo2 * This, /* [in] */ MEMBERID memid, /* [in] */ LCID lcid, /* [in] */ DWORD refPtrFlags, /* [out] */ BSTR *pbstrHelpString, /* [out] */ DWORD *pdwHelpStringContext, /* [out] */ BSTR *pbstrHelpStringDll); /* [local] */ UINT __stdcall ITypeLib_GetTypeInfoCount_Proxy( ITypeLib * This); /* [call_as] */ HRESULT __stdcall ITypeLib_GetTypeInfoCount_Stub( ITypeLib * This, /* [out] */ UINT *pcTInfo); /* [local] */ HRESULT __stdcall ITypeLib_GetLibAttr_Proxy( ITypeLib * This, /* [out] */ TLIBATTR **ppTLibAttr); /* [call_as] */ HRESULT __stdcall ITypeLib_GetLibAttr_Stub( ITypeLib * This, /* [out] */ LPTLIBATTR *ppTLibAttr, /* [out] */ CLEANLOCALSTORAGE *pDummy); /* [local] */ HRESULT __stdcall ITypeLib_GetDocumentation_Proxy( ITypeLib * This, /* [in] */ INT index, /* [out] */ BSTR *pBstrName, /* [out] */ BSTR *pBstrDocString, /* [out] */ DWORD *pdwHelpContext, /* [out] */ BSTR *pBstrHelpFile); /* [call_as] */ HRESULT __stdcall ITypeLib_GetDocumentation_Stub( ITypeLib * This, /* [in] */ INT index, /* [in] */ DWORD refPtrFlags, /* [out] */ BSTR *pBstrName, /* [out] */ BSTR *pBstrDocString, /* [out] */ DWORD *pdwHelpContext, /* [out] */ BSTR *pBstrHelpFile); /* [local] */ HRESULT __stdcall ITypeLib_IsName_Proxy( ITypeLib * This, /* [out][in] */ LPOLESTR szNameBuf, /* [in] */ ULONG lHashVal, /* [out] */ BOOL *pfName); /* [call_as] */ HRESULT __stdcall ITypeLib_IsName_Stub( ITypeLib * This, /* [in] */ LPOLESTR szNameBuf, /* [in] */ ULONG lHashVal, /* [out] */ BOOL *pfName, /* [out] */ BSTR *pBstrLibName); /* [local] */ HRESULT __stdcall ITypeLib_FindName_Proxy( ITypeLib * This, /* [out][in] */ LPOLESTR szNameBuf, /* [in] */ ULONG lHashVal, /* [length_is][size_is][out] */ ITypeInfo **ppTInfo, /* [length_is][size_is][out] */ MEMBERID *rgMemId, /* [out][in] */ USHORT *pcFound); /* [call_as] */ HRESULT __stdcall ITypeLib_FindName_Stub( ITypeLib * This, /* [in] */ LPOLESTR szNameBuf, /* [in] */ ULONG lHashVal, /* [length_is][size_is][out] */ ITypeInfo **ppTInfo, /* [length_is][size_is][out] */ MEMBERID *rgMemId, /* [out][in] */ USHORT *pcFound, /* [out] */ BSTR *pBstrLibName); /* [local] */ void __stdcall ITypeLib_ReleaseTLibAttr_Proxy( ITypeLib * This, /* [in] */ TLIBATTR *pTLibAttr); /* [nocode][call_as] */ HRESULT __stdcall ITypeLib_ReleaseTLibAttr_Stub( ITypeLib * This); /* [local] */ HRESULT __stdcall ITypeLib2_GetLibStatistics_Proxy( ITypeLib2 * This, /* [out] */ ULONG *pcUniqueNames, /* [out] */ ULONG *pcchUniqueNames); /* [call_as] */ HRESULT __stdcall ITypeLib2_GetLibStatistics_Stub( ITypeLib2 * This, /* [out] */ ULONG *pcUniqueNames, /* [out] */ ULONG *pcchUniqueNames); /* [local] */ HRESULT __stdcall ITypeLib2_GetDocumentation2_Proxy( ITypeLib2 * This, /* [in] */ INT index, /* [in] */ LCID lcid, /* [out] */ BSTR *pbstrHelpString, /* [out] */ DWORD *pdwHelpStringContext, /* [out] */ BSTR *pbstrHelpStringDll); /* [call_as] */ HRESULT __stdcall ITypeLib2_GetDocumentation2_Stub( ITypeLib2 * This, /* [in] */ INT index, /* [in] */ LCID lcid, /* [in] */ DWORD refPtrFlags, /* [out] */ BSTR *pbstrHelpString, /* [out] */ DWORD *pdwHelpStringContext, /* [out] */ BSTR *pbstrHelpStringDll); /* [local] */ HRESULT __stdcall IPropertyBag_Read_Proxy( IPropertyBag * This, /* [in] */ LPCOLESTR pszPropName, /* [out][in] */ VARIANT *pVar, /* [unique][in] */ IErrorLog *pErrorLog); /* [call_as] */ HRESULT __stdcall IPropertyBag_Read_Stub( IPropertyBag * This, /* [in] */ LPCOLESTR pszPropName, /* [out] */ VARIANT *pVar, /* [unique][in] */ IErrorLog *pErrorLog, /* [in] */ DWORD varType, /* [in] */ IUnknown *pUnkObj); /* end of Additional Prototypes */ } #line 5541 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" #line 5543 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\oaidl.h" #line 285 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" extern "C"{ #line 289 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" /* interface __MIDL_itf_msxml_0000_0000 */ /* [local] */ //+------------------------------------------------------------------------- // // Microsoft Windows // Copyright (C) Microsoft Corporation, 1997-1998. // //-------------------------------------------------------------------------- typedef struct _xml_error { unsigned int _nLine; BSTR _pchBuf; unsigned int _cchBuf; unsigned int _ich; BSTR _pszFound; BSTR _pszExpected; DWORD _reserved1; DWORD _reserved2; } XML_ERROR; extern RPC_IF_HANDLE __MIDL_itf_msxml_0000_0000_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_msxml_0000_0000_v0_0_s_ifspec; /* library MSXML */ /* [version][lcid][helpstring][uuid] */ // // Microsoft Windows // Copyright (C) Microsoft Corporation, 1998. // //-------------------------------------------------------------------------- typedef /* [helpstring] */ enum tagDOMNodeType { NODE_INVALID = 0, NODE_ELEMENT = ( NODE_INVALID + 1 ) , NODE_ATTRIBUTE = ( NODE_ELEMENT + 1 ) , NODE_TEXT = ( NODE_ATTRIBUTE + 1 ) , NODE_CDATA_SECTION = ( NODE_TEXT + 1 ) , NODE_ENTITY_REFERENCE = ( NODE_CDATA_SECTION + 1 ) , NODE_ENTITY = ( NODE_ENTITY_REFERENCE + 1 ) , NODE_PROCESSING_INSTRUCTION = ( NODE_ENTITY + 1 ) , NODE_COMMENT = ( NODE_PROCESSING_INSTRUCTION + 1 ) , NODE_DOCUMENT = ( NODE_COMMENT + 1 ) , NODE_DOCUMENT_TYPE = ( NODE_DOCUMENT + 1 ) , NODE_DOCUMENT_FRAGMENT = ( NODE_DOCUMENT_TYPE + 1 ) , NODE_NOTATION = ( NODE_DOCUMENT_FRAGMENT + 1 ) } DOMNodeType; //+------------------------------------------------------------------------- // // Microsoft Windows // Copyright (C) Microsoft Corporation, 1998. // //-------------------------------------------------------------------------- typedef /* [helpstring] */ enum tagXMLEMEM_TYPE { XMLELEMTYPE_ELEMENT = 0, XMLELEMTYPE_TEXT = ( XMLELEMTYPE_ELEMENT + 1 ) , XMLELEMTYPE_COMMENT = ( XMLELEMTYPE_TEXT + 1 ) , XMLELEMTYPE_DOCUMENT = ( XMLELEMTYPE_COMMENT + 1 ) , XMLELEMTYPE_DTD = ( XMLELEMTYPE_DOCUMENT + 1 ) , XMLELEMTYPE_PI = ( XMLELEMTYPE_DTD + 1 ) , XMLELEMTYPE_OTHER = ( XMLELEMTYPE_PI + 1 ) } XMLELEM_TYPE; extern "C" const IID LIBID_MSXML; /* interface IXMLDOMImplementation */ /* [uuid][dual][oleautomation][unique][nonextensible][object][local] */ extern "C" const IID IID_IXMLDOMImplementation; struct __declspec(uuid("2933BF8F-7B36-11d2-B20E-00C04F983E60")) __declspec(novtable) IXMLDOMImplementation : public IDispatch { public: virtual /* [id] */ HRESULT __stdcall hasFeature( /* [in] */ BSTR feature, /* [in] */ BSTR version, /* [retval][out] */ VARIANT_BOOL *hasFeature) = 0; }; #line 512 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" #line 517 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" /* interface IXMLDOMNode */ /* [unique][helpstring][nonextensible][oleautomation][dual][uuid][object][local] */ extern "C" const IID IID_IXMLDOMNode; struct __declspec(uuid("2933BF80-7B36-11d2-B20E-00C04F983E60")) __declspec(novtable) IXMLDOMNode : public IDispatch { public: virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_nodeName( /* [retval][out] */ BSTR *name) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_nodeValue( /* [retval][out] */ VARIANT *value) = 0; virtual /* [helpstring][id][propput] */ HRESULT __stdcall put_nodeValue( /* [in] */ VARIANT value) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_nodeType( /* [retval][out] */ DOMNodeType *type) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_parentNode( /* [retval][out] */ IXMLDOMNode **parent) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_childNodes( /* [retval][out] */ IXMLDOMNodeList **childList) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_firstChild( /* [retval][out] */ IXMLDOMNode **firstChild) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_lastChild( /* [retval][out] */ IXMLDOMNode **lastChild) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_previousSibling( /* [retval][out] */ IXMLDOMNode **previousSibling) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_nextSibling( /* [retval][out] */ IXMLDOMNode **nextSibling) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_attributes( /* [retval][out] */ IXMLDOMNamedNodeMap **attributeMap) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall insertBefore( /* [in] */ IXMLDOMNode *newChild, /* [in] */ VARIANT refChild, /* [retval][out] */ IXMLDOMNode **outNewChild) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall replaceChild( /* [in] */ IXMLDOMNode *newChild, /* [in] */ IXMLDOMNode *oldChild, /* [retval][out] */ IXMLDOMNode **outOldChild) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall removeChild( /* [in] */ IXMLDOMNode *childNode, /* [retval][out] */ IXMLDOMNode **oldChild) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall appendChild( /* [in] */ IXMLDOMNode *newChild, /* [retval][out] */ IXMLDOMNode **outNewChild) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall hasChildNodes( /* [retval][out] */ VARIANT_BOOL *hasChild) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_ownerDocument( /* [retval][out] */ IXMLDOMDocument **DOMDocument) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall cloneNode( /* [in] */ VARIANT_BOOL deep, /* [retval][out] */ IXMLDOMNode **cloneRoot) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_nodeTypeString( /* [out][retval] */ BSTR *nodeType) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_text( /* [out][retval] */ BSTR *text) = 0; virtual /* [helpstring][id][propput] */ HRESULT __stdcall put_text( /* [in] */ BSTR text) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_specified( /* [retval][out] */ VARIANT_BOOL *isSpecified) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_definition( /* [out][retval] */ IXMLDOMNode **definitionNode) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_nodeTypedValue( /* [out][retval] */ VARIANT *typedValue) = 0; virtual /* [helpstring][id][propput] */ HRESULT __stdcall put_nodeTypedValue( /* [in] */ VARIANT typedValue) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_dataType( /* [out][retval] */ VARIANT *dataTypeName) = 0; virtual /* [helpstring][id][propput] */ HRESULT __stdcall put_dataType( /* [in] */ BSTR dataTypeName) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_xml( /* [out][retval] */ BSTR *xmlString) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall transformNode( /* [in] */ IXMLDOMNode *stylesheet, /* [out][retval] */ BSTR *xmlString) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall selectNodes( /* [in] */ BSTR queryString, /* [out][retval] */ IXMLDOMNodeList **resultList) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall selectSingleNode( /* [in] */ BSTR queryString, /* [out][retval] */ IXMLDOMNode **resultNode) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_parsed( /* [out][retval] */ VARIANT_BOOL *isParsed) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_namespaceURI( /* [out][retval] */ BSTR *namespaceURI) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_prefix( /* [out][retval] */ BSTR *prefixString) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_baseName( /* [out][retval] */ BSTR *nameString) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall transformNodeToObject( /* [in] */ IXMLDOMNode *stylesheet, /* [in] */ VARIANT outputObject) = 0; }; #line 1005 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" #line 1010 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" /* interface IXMLDOMDocumentFragment */ /* [unique][nonextensible][oleautomation][dual][uuid][object][local] */ extern "C" const IID IID_IXMLDOMDocumentFragment; struct __declspec(uuid("3efaa413-272f-11d2-836f-0000f87a7782")) __declspec(novtable) IXMLDOMDocumentFragment : public IXMLDOMNode { public: }; #line 1380 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" #line 1385 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" /* interface IXMLDOMDocument */ /* [unique][nonextensible][oleautomation][dual][uuid][object][local] */ extern "C" const IID IID_IXMLDOMDocument; struct __declspec(uuid("2933BF81-7B36-11d2-B20E-00C04F983E60")) __declspec(novtable) IXMLDOMDocument : public IXMLDOMNode { public: virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_doctype( /* [retval][out] */ IXMLDOMDocumentType **documentType) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_implementation( /* [retval][out] */ IXMLDOMImplementation **impl) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_documentElement( /* [retval][out] */ IXMLDOMElement **DOMElement) = 0; virtual /* [helpstring][id][propputref] */ HRESULT __stdcall putref_documentElement( /* [in] */ IXMLDOMElement *DOMElement) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall createElement( /* [in] */ BSTR tagName, /* [retval][out] */ IXMLDOMElement **element) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall createDocumentFragment( /* [retval][out] */ IXMLDOMDocumentFragment **docFrag) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall createTextNode( /* [in] */ BSTR data, /* [retval][out] */ IXMLDOMText **text) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall createComment( /* [in] */ BSTR data, /* [retval][out] */ IXMLDOMComment **comment) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall createCDATASection( /* [in] */ BSTR data, /* [retval][out] */ IXMLDOMCDATASection **cdata) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall createProcessingInstruction( /* [in] */ BSTR target, /* [in] */ BSTR data, /* [retval][out] */ IXMLDOMProcessingInstruction **pi) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall createAttribute( /* [in] */ BSTR name, /* [retval][out] */ IXMLDOMAttribute **attribute) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall createEntityReference( /* [in] */ BSTR name, /* [retval][out] */ IXMLDOMEntityReference **entityRef) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall getElementsByTagName( /* [in] */ BSTR tagName, /* [retval][out] */ IXMLDOMNodeList **resultList) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall createNode( /* [in] */ VARIANT Type, /* [in] */ BSTR name, /* [in] */ BSTR namespaceURI, /* [out][retval] */ IXMLDOMNode **node) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall nodeFromID( /* [in] */ BSTR idString, /* [out][retval] */ IXMLDOMNode **node) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall load( /* [in] */ VARIANT xmlSource, /* [retval][out] */ VARIANT_BOOL *isSuccessful) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_readyState( /* [out][retval] */ long *value) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_parseError( /* [out][retval] */ IXMLDOMParseError **errorObj) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_url( /* [out][retval] */ BSTR *urlString) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_async( /* [out][retval] */ VARIANT_BOOL *isAsync) = 0; virtual /* [helpstring][id][propput] */ HRESULT __stdcall put_async( /* [in] */ VARIANT_BOOL isAsync) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall abort( void) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall loadXML( /* [in] */ BSTR bstrXML, /* [retval][out] */ VARIANT_BOOL *isSuccessful) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall save( /* [in] */ VARIANT destination) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_validateOnParse( /* [out][retval] */ VARIANT_BOOL *isValidating) = 0; virtual /* [helpstring][id][propput] */ HRESULT __stdcall put_validateOnParse( /* [in] */ VARIANT_BOOL isValidating) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_resolveExternals( /* [out][retval] */ VARIANT_BOOL *isResolving) = 0; virtual /* [helpstring][id][propput] */ HRESULT __stdcall put_resolveExternals( /* [in] */ VARIANT_BOOL isResolving) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_preserveWhiteSpace( /* [out][retval] */ VARIANT_BOOL *isPreserving) = 0; virtual /* [helpstring][id][propput] */ HRESULT __stdcall put_preserveWhiteSpace( /* [in] */ VARIANT_BOOL isPreserving) = 0; virtual /* [helpstring][id][propput] */ HRESULT __stdcall put_onreadystatechange( /* [in] */ VARIANT readystatechangeSink) = 0; virtual /* [helpstring][id][propput] */ HRESULT __stdcall put_ondataavailable( /* [in] */ VARIANT ondataavailableSink) = 0; virtual /* [helpstring][id][propput] */ HRESULT __stdcall put_ontransformnode( /* [in] */ VARIANT ontransformnodeSink) = 0; }; #line 2113 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" #line 2118 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" /* interface IXMLDOMNodeList */ /* [unique][nonextensible][oleautomation][dual][uuid][object][local] */ extern "C" const IID IID_IXMLDOMNodeList; struct __declspec(uuid("2933BF82-7B36-11d2-B20E-00C04F983E60")) __declspec(novtable) IXMLDOMNodeList : public IDispatch { public: virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_item( /* [in] */ long index, /* [retval][out] */ IXMLDOMNode **listItem) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_length( /* [retval][out] */ long *listLength) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall nextNode( /* [retval][out] */ IXMLDOMNode **nextItem) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall reset( void) = 0; virtual /* [id][hidden][restricted][propget] */ HRESULT __stdcall get__newEnum( /* [out][retval] */ IUnknown **ppUnk) = 0; }; #line 2274 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" #line 2279 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" /* interface IXMLDOMNamedNodeMap */ /* [unique][nonextensible][oleautomation][dual][uuid][object][local] */ extern "C" const IID IID_IXMLDOMNamedNodeMap; struct __declspec(uuid("2933BF83-7B36-11d2-B20E-00C04F983E60")) __declspec(novtable) IXMLDOMNamedNodeMap : public IDispatch { public: virtual /* [helpstring][id] */ HRESULT __stdcall getNamedItem( /* [in] */ BSTR name, /* [retval][out] */ IXMLDOMNode **namedItem) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall setNamedItem( /* [in] */ IXMLDOMNode *newItem, /* [retval][out] */ IXMLDOMNode **nameItem) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall removeNamedItem( /* [in] */ BSTR name, /* [retval][out] */ IXMLDOMNode **namedItem) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_item( /* [in] */ long index, /* [retval][out] */ IXMLDOMNode **listItem) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_length( /* [retval][out] */ long *listLength) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall getQualifiedItem( /* [in] */ BSTR baseName, /* [in] */ BSTR namespaceURI, /* [retval][out] */ IXMLDOMNode **qualifiedItem) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall removeQualifiedItem( /* [in] */ BSTR baseName, /* [in] */ BSTR namespaceURI, /* [retval][out] */ IXMLDOMNode **qualifiedItem) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall nextNode( /* [retval][out] */ IXMLDOMNode **nextItem) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall reset( void) = 0; virtual /* [id][hidden][restricted][propget] */ HRESULT __stdcall get__newEnum( /* [out][retval] */ IUnknown **ppUnk) = 0; }; #line 2499 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" #line 2504 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" /* interface IXMLDOMCharacterData */ /* [unique][nonextensible][oleautomation][dual][uuid][object][local] */ extern "C" const IID IID_IXMLDOMCharacterData; struct __declspec(uuid("2933BF84-7B36-11d2-B20E-00C04F983E60")) __declspec(novtable) IXMLDOMCharacterData : public IXMLDOMNode { public: virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_data( /* [retval][out] */ BSTR *data) = 0; virtual /* [helpstring][id][propput] */ HRESULT __stdcall put_data( /* [in] */ BSTR data) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_length( /* [retval][out] */ long *dataLength) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall substringData( /* [in] */ long offset, /* [in] */ long count, /* [retval][out] */ BSTR *data) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall appendData( /* [in] */ BSTR data) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall insertData( /* [in] */ long offset, /* [in] */ BSTR data) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall deleteData( /* [in] */ long offset, /* [in] */ long count) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall replaceData( /* [in] */ long offset, /* [in] */ long count, /* [in] */ BSTR data) = 0; }; #line 2966 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" #line 2971 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" /* interface IXMLDOMAttribute */ /* [unique][nonextensible][oleautomation][dual][uuid][object][local] */ extern "C" const IID IID_IXMLDOMAttribute; struct __declspec(uuid("2933BF85-7B36-11d2-B20E-00C04F983E60")) __declspec(novtable) IXMLDOMAttribute : public IXMLDOMNode { public: virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_name( /* [retval][out] */ BSTR *attributeName) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_value( /* [retval][out] */ VARIANT *attributeValue) = 0; virtual /* [helpstring][id][propput] */ HRESULT __stdcall put_value( /* [in] */ VARIANT attributeValue) = 0; }; #line 3371 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" #line 3376 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" /* interface IXMLDOMElement */ /* [unique][nonextensible][oleautomation][dual][uuid][object][local] */ extern "C" const IID IID_IXMLDOMElement; struct __declspec(uuid("2933BF86-7B36-11d2-B20E-00C04F983E60")) __declspec(novtable) IXMLDOMElement : public IXMLDOMNode { public: virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_tagName( /* [retval][out] */ BSTR *tagName) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall getAttribute( /* [in] */ BSTR name, /* [retval][out] */ VARIANT *value) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall setAttribute( /* [in] */ BSTR name, /* [in] */ VARIANT value) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall removeAttribute( /* [in] */ BSTR name) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall getAttributeNode( /* [in] */ BSTR name, /* [retval][out] */ IXMLDOMAttribute **attributeNode) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall setAttributeNode( /* [in] */ IXMLDOMAttribute *DOMAttribute, /* [retval][out] */ IXMLDOMAttribute **attributeNode) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall removeAttributeNode( /* [in] */ IXMLDOMAttribute *DOMAttribute, /* [retval][out] */ IXMLDOMAttribute **attributeNode) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall getElementsByTagName( /* [in] */ BSTR tagName, /* [retval][out] */ IXMLDOMNodeList **resultList) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall normalize( void) = 0; }; #line 3846 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" #line 3851 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" /* interface IXMLDOMText */ /* [unique][nonextensible][oleautomation][dual][uuid][object][local] */ extern "C" const IID IID_IXMLDOMText; struct __declspec(uuid("2933BF87-7B36-11d2-B20E-00C04F983E60")) __declspec(novtable) IXMLDOMText : public IXMLDOMCharacterData { public: virtual /* [helpstring][id] */ HRESULT __stdcall splitText( /* [in] */ long offset, /* [retval][out] */ IXMLDOMText **rightHandTextNode) = 0; }; #line 4296 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" #line 4301 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" /* interface IXMLDOMComment */ /* [unique][nonextensible][oleautomation][dual][uuid][object][local] */ extern "C" const IID IID_IXMLDOMComment; struct __declspec(uuid("2933BF88-7B36-11d2-B20E-00C04F983E60")) __declspec(novtable) IXMLDOMComment : public IXMLDOMCharacterData { public: }; #line 4734 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" #line 4739 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" /* interface IXMLDOMProcessingInstruction */ /* [unique][nonextensible][oleautomation][dual][uuid][object][local] */ extern "C" const IID IID_IXMLDOMProcessingInstruction; struct __declspec(uuid("2933BF89-7B36-11d2-B20E-00C04F983E60")) __declspec(novtable) IXMLDOMProcessingInstruction : public IXMLDOMNode { public: virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_target( /* [retval][out] */ BSTR *name) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_data( /* [retval][out] */ BSTR *value) = 0; virtual /* [helpstring][id][propput] */ HRESULT __stdcall put_data( /* [in] */ BSTR value) = 0; }; #line 5139 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" #line 5144 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" /* interface IXMLDOMCDATASection */ /* [unique][nonextensible][oleautomation][dual][uuid][object][local] */ extern "C" const IID IID_IXMLDOMCDATASection; struct __declspec(uuid("2933BF8A-7B36-11d2-B20E-00C04F983E60")) __declspec(novtable) IXMLDOMCDATASection : public IXMLDOMText { public: }; #line 5586 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" #line 5591 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" /* interface IXMLDOMDocumentType */ /* [unique][nonextensible][oleautomation][dual][uuid][object][local] */ extern "C" const IID IID_IXMLDOMDocumentType; struct __declspec(uuid("2933BF8B-7B36-11d2-B20E-00C04F983E60")) __declspec(novtable) IXMLDOMDocumentType : public IXMLDOMNode { public: virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_name( /* [retval][out] */ BSTR *rootName) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_entities( /* [retval][out] */ IXMLDOMNamedNodeMap **entityMap) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_notations( /* [retval][out] */ IXMLDOMNamedNodeMap **notationMap) = 0; }; #line 5991 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" #line 5996 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" /* interface IXMLDOMNotation */ /* [unique][nonextensible][oleautomation][dual][uuid][object][local] */ extern "C" const IID IID_IXMLDOMNotation; struct __declspec(uuid("2933BF8C-7B36-11d2-B20E-00C04F983E60")) __declspec(novtable) IXMLDOMNotation : public IXMLDOMNode { public: virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_publicId( /* [retval][out] */ VARIANT *publicID) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_systemId( /* [retval][out] */ VARIANT *systemID) = 0; }; #line 6386 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" #line 6391 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" /* interface IXMLDOMEntity */ /* [unique][nonextensible][oleautomation][dual][uuid][object][local] */ extern "C" const IID IID_IXMLDOMEntity; struct __declspec(uuid("2933BF8D-7B36-11d2-B20E-00C04F983E60")) __declspec(novtable) IXMLDOMEntity : public IXMLDOMNode { public: virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_publicId( /* [retval][out] */ VARIANT *publicID) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_systemId( /* [retval][out] */ VARIANT *systemID) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_notationName( /* [retval][out] */ BSTR *name) = 0; }; #line 6791 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" #line 6796 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" /* interface IXMLDOMEntityReference */ /* [unique][nonextensible][oleautomation][dual][uuid][object][local] */ extern "C" const IID IID_IXMLDOMEntityReference; struct __declspec(uuid("2933BF8E-7B36-11d2-B20E-00C04F983E60")) __declspec(novtable) IXMLDOMEntityReference : public IXMLDOMNode { public: }; #line 7166 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" #line 7171 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" /* interface IXMLDOMParseError */ /* [unique][helpstring][nonextensible][oleautomation][dual][uuid][object][local] */ extern "C" const IID IID_IXMLDOMParseError; struct __declspec(uuid("3efaa426-272f-11d2-836f-0000f87a7782")) __declspec(novtable) IXMLDOMParseError : public IDispatch { public: virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_errorCode( /* [out][retval] */ long *errorCode) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_url( /* [out][retval] */ BSTR *urlString) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_reason( /* [out][retval] */ BSTR *reasonString) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_srcText( /* [out][retval] */ BSTR *sourceString) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_line( /* [out][retval] */ long *lineNumber) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_linepos( /* [out][retval] */ long *linePosition) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_filepos( /* [out][retval] */ long *filePosition) = 0; }; #line 7347 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" #line 7352 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" /* interface IXTLRuntime */ /* [unique][helpstring][nonextensible][oleautomation][dual][uuid][object][local] */ extern "C" const IID IID_IXTLRuntime; struct __declspec(uuid("3efaa425-272f-11d2-836f-0000f87a7782")) __declspec(novtable) IXTLRuntime : public IXMLDOMNode { public: virtual /* [helpstring][id] */ HRESULT __stdcall uniqueID( /* [in] */ IXMLDOMNode *pNode, /* [retval][out] */ long *pID) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall depth( /* [in] */ IXMLDOMNode *pNode, /* [retval][out] */ long *pDepth) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall childNumber( /* [in] */ IXMLDOMNode *pNode, /* [retval][out] */ long *pNumber) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall ancestorChildNumber( /* [in] */ BSTR bstrNodeName, /* [in] */ IXMLDOMNode *pNode, /* [retval][out] */ long *pNumber) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall absoluteChildNumber( /* [in] */ IXMLDOMNode *pNode, /* [retval][out] */ long *pNumber) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall formatIndex( /* [in] */ long lIndex, /* [in] */ BSTR bstrFormat, /* [retval][out] */ BSTR *pbstrFormattedString) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall formatNumber( /* [in] */ double dblNumber, /* [in] */ BSTR bstrFormat, /* [retval][out] */ BSTR *pbstrFormattedString) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall formatDate( /* [in] */ VARIANT varDate, /* [in] */ BSTR bstrFormat, /* [optional][in] */ VARIANT varDestLocale, /* [retval][out] */ BSTR *pbstrFormattedString) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall formatTime( /* [in] */ VARIANT varTime, /* [in] */ BSTR bstrFormat, /* [optional][in] */ VARIANT varDestLocale, /* [retval][out] */ BSTR *pbstrFormattedString) = 0; }; #line 7844 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" #line 7849 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" /* dispinterface XMLDOMDocumentEvents */ /* [uuid][hidden] */ extern "C" const IID DIID_XMLDOMDocumentEvents; struct __declspec(uuid("3efaa427-272f-11d2-836f-0000f87a7782")) __declspec(novtable) XMLDOMDocumentEvents : public IDispatch { }; #line 7953 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" #line 7956 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" extern "C" const CLSID CLSID_DOMDocument; class __declspec(uuid("2933BF90-7B36-11d2-B20E-00C04F983E60")) DOMDocument; #line 7965 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" extern "C" const CLSID CLSID_DOMFreeThreadedDocument; class __declspec(uuid("2933BF91-7B36-11d2-B20E-00C04F983E60")) DOMFreeThreadedDocument; #line 7973 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" /* interface IXMLHttpRequest */ /* [unique][helpstring][oleautomation][dual][uuid][object] */ extern "C" const IID IID_IXMLHttpRequest; struct __declspec(uuid("ED8C108D-4349-11D2-91A4-00C04F7969E8")) __declspec(novtable) IXMLHttpRequest : public IDispatch { public: virtual /* [helpstring][id] */ HRESULT __stdcall open( /* [in] */ BSTR bstrMethod, /* [in] */ BSTR bstrUrl, /* [optional][in] */ VARIANT varAsync, /* [optional][in] */ VARIANT bstrUser, /* [optional][in] */ VARIANT bstrPassword) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall setRequestHeader( /* [in] */ BSTR bstrHeader, /* [in] */ BSTR bstrValue) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall getResponseHeader( /* [in] */ BSTR bstrHeader, /* [retval][out] */ BSTR *pbstrValue) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall getAllResponseHeaders( /* [retval][out] */ BSTR *pbstrHeaders) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall send( /* [optional][in] */ VARIANT varBody) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall abort( void) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_status( /* [retval][out] */ long *plStatus) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_statusText( /* [retval][out] */ BSTR *pbstrStatus) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_responseXML( /* [retval][out] */ IDispatch **ppBody) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_responseText( /* [retval][out] */ BSTR *pbstrBody) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_responseBody( /* [retval][out] */ VARIANT *pvarBody) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_responseStream( /* [retval][out] */ VARIANT *pvarBody) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_readyState( /* [retval][out] */ long *plState) = 0; virtual /* [helpstring][id][propput] */ HRESULT __stdcall put_onreadystatechange( /* [in] */ IDispatch *pReadyStateSink) = 0; }; #line 8228 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" #line 8233 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" extern "C" const CLSID CLSID_XMLHTTPRequest; class __declspec(uuid("ED8C108E-4349-11D2-91A4-00C04F7969E8")) XMLHTTPRequest; #line 8242 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" /* interface IXMLDSOControl */ /* [unique][helpstring][hidden][nonextensible][oleautomation][dual][uuid][object][local] */ extern "C" const IID IID_IXMLDSOControl; struct __declspec(uuid("310afa62-0575-11d2-9ca9-0060b0ec3d39")) __declspec(novtable) IXMLDSOControl : public IDispatch { public: virtual /* [id][propget] */ HRESULT __stdcall get_XMLDocument( /* [retval][out] */ IXMLDOMDocument **ppDoc) = 0; virtual /* [id][propput] */ HRESULT __stdcall put_XMLDocument( /* [in] */ IXMLDOMDocument *ppDoc) = 0; virtual /* [id][propget] */ HRESULT __stdcall get_JavaDSOCompatible( /* [retval][out] */ BOOL *fJavaDSOCompatible) = 0; virtual /* [id][propput] */ HRESULT __stdcall put_JavaDSOCompatible( /* [in] */ BOOL fJavaDSOCompatible) = 0; virtual /* [id][propget] */ HRESULT __stdcall get_readyState( /* [retval][out] */ long *state) = 0; }; #line 8397 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" #line 8402 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" extern "C" const CLSID CLSID_XMLDSOControl; class __declspec(uuid("550dda30-0541-11d2-9ca9-0060b0ec3d39")) XMLDSOControl; #line 8411 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" /* interface IXMLElementCollection */ /* [helpstring][hidden][oleautomation][dual][uuid][object][local] */ extern "C" const IID IID_IXMLElementCollection; struct __declspec(uuid("65725580-9B5D-11d0-9BFE-00C04FC99C8E")) __declspec(novtable) IXMLElementCollection : public IDispatch { public: virtual /* [id][hidden][restricted][propput] */ HRESULT __stdcall put_length( /* [in] */ long v) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_length( /* [out][retval] */ long *p) = 0; virtual /* [id][hidden][restricted][propget] */ HRESULT __stdcall get__newEnum( /* [out][retval] */ IUnknown **ppUnk) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall item( /* [in][optional] */ VARIANT var1, /* [in][optional] */ VARIANT var2, /* [out][retval] */ IDispatch **ppDisp) = 0; }; #line 8560 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" #line 8565 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" /* interface IXMLDocument */ /* [helpstring][hidden][oleautomation][dual][uuid][object][local] */ extern "C" const IID IID_IXMLDocument; struct __declspec(uuid("F52E2B61-18A1-11d1-B105-00805F49916B")) __declspec(novtable) IXMLDocument : public IDispatch { public: virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_root( /* [out][retval] */ IXMLElement **p) = 0; virtual /* [id][hidden][restricted][propget] */ HRESULT __stdcall get_fileSize( /* [out][retval] */ BSTR *p) = 0; virtual /* [id][hidden][restricted][propget] */ HRESULT __stdcall get_fileModifiedDate( /* [out][retval] */ BSTR *p) = 0; virtual /* [id][hidden][restricted][propget] */ HRESULT __stdcall get_fileUpdatedDate( /* [out][retval] */ BSTR *p) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_URL( /* [out][retval] */ BSTR *p) = 0; virtual /* [helpstring][id][propput] */ HRESULT __stdcall put_URL( /* [in] */ BSTR p) = 0; virtual /* [id][hidden][restricted][propget] */ HRESULT __stdcall get_mimeType( /* [out][retval] */ BSTR *p) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_readyState( /* [out][retval] */ long *pl) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_charset( /* [out][retval] */ BSTR *p) = 0; virtual /* [helpstring][id][propput] */ HRESULT __stdcall put_charset( /* [in] */ BSTR p) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_version( /* [out][retval] */ BSTR *p) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_doctype( /* [out][retval] */ BSTR *p) = 0; virtual /* [id][hidden][restricted][propget] */ HRESULT __stdcall get_dtdURL( /* [out][retval] */ BSTR *p) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall createElement( /* [in] */ VARIANT vType, /* [in][optional] */ VARIANT var1, /* [out][retval] */ IXMLElement **ppElem) = 0; }; #line 8815 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" #line 8820 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" /* interface IXMLDocument2 */ /* [hidden][uuid][object][local] */ extern "C" const IID IID_IXMLDocument2; struct __declspec(uuid("2B8DE2FE-8D2D-11d1-B2FC-00C04FD915A9")) __declspec(novtable) IXMLDocument2 : public IDispatch { public: virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_root( /* [out][retval] */ IXMLElement2 **p) = 0; virtual /* [id][hidden][restricted][propget] */ HRESULT __stdcall get_fileSize( /* [out][retval] */ BSTR *p) = 0; virtual /* [id][hidden][restricted][propget] */ HRESULT __stdcall get_fileModifiedDate( /* [out][retval] */ BSTR *p) = 0; virtual /* [id][hidden][restricted][propget] */ HRESULT __stdcall get_fileUpdatedDate( /* [out][retval] */ BSTR *p) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_URL( /* [out][retval] */ BSTR *p) = 0; virtual /* [helpstring][id][propput] */ HRESULT __stdcall put_URL( /* [in] */ BSTR p) = 0; virtual /* [id][hidden][restricted][propget] */ HRESULT __stdcall get_mimeType( /* [out][retval] */ BSTR *p) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_readyState( /* [out][retval] */ long *pl) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_charset( /* [out][retval] */ BSTR *p) = 0; virtual /* [helpstring][id][propput] */ HRESULT __stdcall put_charset( /* [in] */ BSTR p) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_version( /* [out][retval] */ BSTR *p) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_doctype( /* [out][retval] */ BSTR *p) = 0; virtual /* [id][hidden][restricted][propget] */ HRESULT __stdcall get_dtdURL( /* [out][retval] */ BSTR *p) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall createElement( /* [in] */ VARIANT vType, /* [in][optional] */ VARIANT var1, /* [out][retval] */ IXMLElement2 **ppElem) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_async( /* [out][retval] */ VARIANT_BOOL *pf) = 0; virtual /* [helpstring][id][propput] */ HRESULT __stdcall put_async( /* [in] */ VARIANT_BOOL f) = 0; }; #line 9090 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" #line 9095 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" /* interface IXMLElement */ /* [helpstring][hidden][oleautomation][dual][uuid][object][local] */ extern "C" const IID IID_IXMLElement; struct __declspec(uuid("3F7F31AC-E15F-11d0-9C25-00C04FC99C8E")) __declspec(novtable) IXMLElement : public IDispatch { public: virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_tagName( /* [out][retval] */ BSTR *p) = 0; virtual /* [helpstring][id][propput] */ HRESULT __stdcall put_tagName( /* [in] */ BSTR p) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_parent( /* [out][retval] */ IXMLElement **ppParent) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall setAttribute( /* [in] */ BSTR strPropertyName, /* [in] */ VARIANT PropertyValue) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall getAttribute( /* [in] */ BSTR strPropertyName, /* [out][retval] */ VARIANT *PropertyValue) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall removeAttribute( /* [in] */ BSTR strPropertyName) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_children( /* [out][retval] */ IXMLElementCollection **pp) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_type( /* [out][retval] */ long *plType) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_text( /* [out][retval] */ BSTR *p) = 0; virtual /* [helpstring][id][propput] */ HRESULT __stdcall put_text( /* [in] */ BSTR p) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall addChild( /* [in] */ IXMLElement *pChildElem, long lIndex, long lReserved) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall removeChild( /* [in] */ IXMLElement *pChildElem) = 0; }; #line 9329 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" #line 9334 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" /* interface IXMLElement2 */ /* [helpstring][hidden][oleautomation][dual][uuid][object][local] */ extern "C" const IID IID_IXMLElement2; struct __declspec(uuid("2B8DE2FF-8D2D-11d1-B2FC-00C04FD915A9")) __declspec(novtable) IXMLElement2 : public IDispatch { public: virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_tagName( /* [out][retval] */ BSTR *p) = 0; virtual /* [helpstring][id][propput] */ HRESULT __stdcall put_tagName( /* [in] */ BSTR p) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_parent( /* [out][retval] */ IXMLElement2 **ppParent) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall setAttribute( /* [in] */ BSTR strPropertyName, /* [in] */ VARIANT PropertyValue) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall getAttribute( /* [in] */ BSTR strPropertyName, /* [out][retval] */ VARIANT *PropertyValue) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall removeAttribute( /* [in] */ BSTR strPropertyName) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_children( /* [out][retval] */ IXMLElementCollection **pp) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_type( /* [out][retval] */ long *plType) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_text( /* [out][retval] */ BSTR *p) = 0; virtual /* [helpstring][id][propput] */ HRESULT __stdcall put_text( /* [in] */ BSTR p) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall addChild( /* [in] */ IXMLElement2 *pChildElem, long lIndex, long lReserved) = 0; virtual /* [helpstring][id] */ HRESULT __stdcall removeChild( /* [in] */ IXMLElement2 *pChildElem) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_attributes( /* [out][retval] */ IXMLElementCollection **pp) = 0; }; #line 9578 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" #line 9583 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" /* interface IXMLAttribute */ /* [helpstring][hidden][oleautomation][dual][uuid][object][local] */ extern "C" const IID IID_IXMLAttribute; struct __declspec(uuid("D4D4A0FC-3B73-11d1-B2B4-00C04FB92596")) __declspec(novtable) IXMLAttribute : public IDispatch { public: virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_name( /* [out][retval] */ BSTR *n) = 0; virtual /* [helpstring][id][propget] */ HRESULT __stdcall get_value( /* [out][retval] */ BSTR *v) = 0; }; #line 9709 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" #line 9714 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" /* interface IXMLError */ /* [helpstring][hidden][uuid][object][local] */ extern "C" const IID IID_IXMLError; struct __declspec(uuid("948C5AD3-C58D-11d0-9C0B-00C04FC99C8E")) __declspec(novtable) IXMLError : public IUnknown { public: virtual HRESULT __stdcall GetErrorInfo( XML_ERROR *pErrorReturn) = 0; }; #line 9788 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" #line 9793 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" extern "C" const CLSID CLSID_XMLDocument; class __declspec(uuid("CFC399AF-D876-11d0-9C10-00C04FC99C8E")) XMLDocument; #line 9802 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" #line 9803 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" /* Additional Prototypes for ALL interfaces */ /* end of Additional Prototypes */ } #line 9811 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" #line 9813 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\msxml.h" #line 332 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" extern "C"{ #line 336 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" /* interface __MIDL_itf_urlmon_0000_0000 */ /* [local] */ //=--------------------------------------------------------------------------= // UrlMon.h //=--------------------------------------------------------------------------= // Copyright (c) Microsoft Corporation. All rights reserved. // // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF // ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO // THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A // PARTICULAR PURPOSE. //=--------------------------------------------------------------------------= #pragma comment(lib,"uuid.lib") //---------------------------------------------------------------------------= // URL Moniker Interfaces. // Side-by-Side clsid extern "C" const IID CLSID_SBS_StdURLMoniker; extern "C" const IID CLSID_SBS_HttpProtocol; extern "C" const IID CLSID_SBS_FtpProtocol; extern "C" const IID CLSID_SBS_GopherProtocol; extern "C" const IID CLSID_SBS_HttpSProtocol; extern "C" const IID CLSID_SBS_FileProtocol; extern "C" const IID CLSID_SBS_MkProtocol; extern "C" const IID CLSID_SBS_UrlMkBindCtx; extern "C" const IID CLSID_SBS_SoftDistExt; extern "C" const IID CLSID_SBS_StdEncodingFilterFac; extern "C" const IID CLSID_SBS_DeCompMimeFilter; extern "C" const IID CLSID_SBS_CdlProtocol; extern "C" const IID CLSID_SBS_ClassInstallFilter; extern "C" const IID CLSID_SBS_InternetSecurityManager; extern "C" const IID CLSID_SBS_InternetZoneManager; // END Side-by-Side clsid // These are for backwards compatibility with previous URLMON versions extern "C" const IID IID_IAsyncMoniker; extern "C" const IID CLSID_StdURLMoniker; extern "C" const IID CLSID_HttpProtocol; extern "C" const IID CLSID_FtpProtocol; extern "C" const IID CLSID_GopherProtocol; extern "C" const IID CLSID_HttpSProtocol; extern "C" const IID CLSID_FileProtocol; extern "C" const IID CLSID_MkProtocol; extern "C" const IID CLSID_StdURLProtocol; extern "C" const IID CLSID_UrlMkBindCtx; extern "C" const IID CLSID_StdEncodingFilterFac; extern "C" const IID CLSID_DeCompMimeFilter; extern "C" const IID CLSID_CdlProtocol; extern "C" const IID CLSID_ClassInstallFilter; extern "C" const IID IID_IAsyncBindCtx; extern "C" HRESULT __stdcall CreateURLMoniker(LPMONIKER pMkCtx, LPCWSTR szURL, LPMONIKER * ppmk); extern "C" HRESULT __stdcall CreateURLMonikerEx(LPMONIKER pMkCtx, LPCWSTR szURL, LPMONIKER * ppmk, DWORD dwFlags); extern "C" HRESULT __stdcall GetClassURL(LPCWSTR szURL, CLSID *pClsID); extern "C" HRESULT __stdcall CreateAsyncBindCtx(DWORD reserved, IBindStatusCallback *pBSCb, IEnumFORMATETC *pEFetc, IBindCtx **ppBC); #line 422 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" extern "C" HRESULT __stdcall CreateAsyncBindCtxEx(IBindCtx *pbc, DWORD dwOptions, IBindStatusCallback *pBSCb, IEnumFORMATETC *pEnum, IBindCtx **ppBC, DWORD reserved); extern "C" HRESULT __stdcall MkParseDisplayNameEx(IBindCtx *pbc, LPCWSTR szDisplayName, ULONG *pchEaten, LPMONIKER *ppmk); extern "C" HRESULT __stdcall RegisterBindStatusCallback(LPBC pBC, IBindStatusCallback *pBSCb, IBindStatusCallback** ppBSCBPrev, DWORD dwReserved); extern "C" HRESULT __stdcall RevokeBindStatusCallback(LPBC pBC, IBindStatusCallback *pBSCb); extern "C" HRESULT __stdcall GetClassFileOrMime(LPBC pBC, LPCWSTR szFilename, LPVOID pBuffer, DWORD cbSize, LPCWSTR szMime, DWORD dwReserved, CLSID *pclsid); extern "C" HRESULT __stdcall IsValidURL(LPBC pBC, LPCWSTR szURL, DWORD dwReserved); extern "C" HRESULT __stdcall CoGetClassObjectFromURL( const IID & rCLASSID, LPCWSTR szCODE, DWORD dwFileVersionMS, DWORD dwFileVersionLS, LPCWSTR szTYPE, LPBINDCTX pBindCtx, DWORD dwClsContext, LPVOID pvReserved, const IID & riid, LPVOID * ppv); extern "C" HRESULT __stdcall FaultInIEFeature( HWND hWnd, uCLSSPEC *pClassSpec, QUERYCONTEXT *pQuery, DWORD dwFlags); extern "C" HRESULT __stdcall GetComponentIDFromCLSSPEC( uCLSSPEC *pClassspec, LPSTR * ppszComponentID); // flags for FaultInIEFeature // previoulsy rejected by // user in this session or // marked as Never Ask Again //helper apis extern "C" HRESULT __stdcall IsAsyncMoniker(IMoniker* pmk); extern "C" HRESULT __stdcall CreateURLBinding(LPCWSTR lpszUrl, IBindCtx *pbc, IBinding **ppBdg); extern "C" HRESULT __stdcall RegisterMediaTypes(UINT ctypes, const LPCSTR* rgszTypes, CLIPFORMAT* rgcfTypes); extern "C" HRESULT __stdcall FindMediaType(LPCSTR rgszTypes, CLIPFORMAT* rgcfTypes); extern "C" HRESULT __stdcall CreateFormatEnumerator( UINT cfmtetc, FORMATETC* rgfmtetc, IEnumFORMATETC** ppenumfmtetc); extern "C" HRESULT __stdcall RegisterFormatEnumerator(LPBC pBC, IEnumFORMATETC *pEFetc, DWORD reserved); extern "C" HRESULT __stdcall RevokeFormatEnumerator(LPBC pBC, IEnumFORMATETC *pEFetc); extern "C" HRESULT __stdcall RegisterMediaTypeClass(LPBC pBC,UINT ctypes, const LPCSTR* rgszTypes, CLSID *rgclsID, DWORD reserved); extern "C" HRESULT __stdcall FindMediaTypeClass(LPBC pBC, LPCSTR szType, CLSID *pclsID, DWORD reserved); extern "C" HRESULT __stdcall UrlMkSetSessionOption(DWORD dwOption, LPVOID pBuffer, DWORD dwBufferLength, DWORD dwReserved); extern "C" HRESULT __stdcall UrlMkGetSessionOption(DWORD dwOption, LPVOID pBuffer, DWORD dwBufferLength, DWORD *pdwBufferLength, DWORD dwReserved); extern "C" HRESULT __stdcall FindMimeFromData( LPBC pBC, // bind context - can be NULL LPCWSTR pwzUrl, // url - can be null LPVOID pBuffer, // buffer with data to sniff - can be null (pwzUrl must be valid) DWORD cbSize, // size of buffer LPCWSTR pwzMimeProposed, // proposed mime if - can be null DWORD dwMimeFlags, // will be defined LPWSTR *ppwzMimeOut, // the suggested mime DWORD dwReserved); // must be 0 #line 477 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" extern "C" HRESULT __stdcall ObtainUserAgentString( DWORD dwOption, LPSTR pszUAOut, DWORD *cbSize); extern "C" HRESULT __stdcall CompareSecurityIds(BYTE* pbSecurityId1, DWORD dwLen1, BYTE* pbSecurityId2, DWORD dwLen2, DWORD dwReserved); extern "C" HRESULT __stdcall CompatFlagsFromClsid(CLSID *pclsid, LPDWORD pdwCompatFlags, LPDWORD pdwMiscStatusFlags); // URLMON-specific defines for UrlMkSetSessionOption() above #line 491 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 494 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" // MessageId: MK_S_ASYNCHRONOUS // MessageText: Operation is successful, but will complete asynchronously. // #line 537 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" // // // WinINet and protocol specific errors are mapped to one of the following // error which are returned in IBSC::OnStopBinding // // // Note: FACILITY C is split into ranges of 1k // C0000 - C03FF INET_E_ (URLMON's original hresult) // C0400 - C07FF INET_E_CLIENT_xxx // C0800 - C0BFF INET_E_SERVER_xxx // C0C00 - C0FFF INET_E_???? // C1000 - C13FF INET_E_AGENT_xxx (info delivery agents) #line 582 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0000_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0000_v0_0_s_ifspec; /* interface IPersistMoniker */ /* [unique][uuid][object] */ typedef /* [unique] */ IPersistMoniker *LPPERSISTMONIKER; extern "C" const IID IID_IPersistMoniker; struct __declspec(uuid("79eac9c9-baf9-11ce-8c82-00aa004ba90b")) __declspec(novtable) IPersistMoniker : public IUnknown { public: virtual HRESULT __stdcall GetClassID( /* [out] */ CLSID *pClassID) = 0; virtual HRESULT __stdcall IsDirty( void) = 0; virtual HRESULT __stdcall Load( /* [in] */ BOOL fFullyAvailable, /* [in] */ IMoniker *pimkName, /* [in] */ LPBC pibc, /* [in] */ DWORD grfMode) = 0; virtual HRESULT __stdcall Save( /* [in] */ IMoniker *pimkName, /* [in] */ LPBC pbc, /* [in] */ BOOL fRemember) = 0; virtual HRESULT __stdcall SaveCompleted( /* [in] */ IMoniker *pimkName, /* [in] */ LPBC pibc) = 0; virtual HRESULT __stdcall GetCurMoniker( /* [out] */ IMoniker **ppimkName) = 0; }; #line 725 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 730 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" /* interface __MIDL_itf_urlmon_0000_0001 */ /* [local] */ #line 736 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0001_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0001_v0_0_s_ifspec; /* interface IMonikerProp */ /* [unique][uuid][object] */ typedef /* [unique] */ IMonikerProp *LPMONIKERPROP; typedef /* [public][public] */ enum __MIDL_IMonikerProp_0001 { MIMETYPEPROP = 0, USE_SRC_URL = 0x1, CLASSIDPROP = 0x2, TRUSTEDDOWNLOADPROP = 0x3, POPUPLEVELPROP = 0x4 } MONIKERPROPERTY; extern "C" const IID IID_IMonikerProp; struct __declspec(uuid("a5ca5f7f-1847-4d87-9c5b-918509f7511d")) __declspec(novtable) IMonikerProp : public IUnknown { public: virtual HRESULT __stdcall PutProperty( /* [in] */ MONIKERPROPERTY mkp, /* [in] */ LPCWSTR val) = 0; }; #line 828 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 833 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" /* interface __MIDL_itf_urlmon_0000_0002 */ /* [local] */ #line 839 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0002_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0002_v0_0_s_ifspec; /* interface IBindProtocol */ /* [unique][uuid][object][local] */ typedef /* [unique] */ IBindProtocol *LPBINDPROTOCOL; extern "C" const IID IID_IBindProtocol; struct __declspec(uuid("79eac9cd-baf9-11ce-8c82-00aa004ba90b")) __declspec(novtable) IBindProtocol : public IUnknown { public: virtual HRESULT __stdcall CreateBinding( /* [in] */ LPCWSTR szUrl, /* [in] */ IBindCtx *pbc, /* [out] */ IBinding **ppb) = 0; }; #line 924 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 929 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" /* interface __MIDL_itf_urlmon_0000_0003 */ /* [local] */ #line 935 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0003_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0003_v0_0_s_ifspec; /* interface IBinding */ /* [unique][uuid][object] */ typedef /* [unique] */ IBinding *LPBINDING; extern "C" const IID IID_IBinding; struct __declspec(uuid("79eac9c0-baf9-11ce-8c82-00aa004ba90b")) __declspec(novtable) IBinding : public IUnknown { public: virtual HRESULT __stdcall Abort( void) = 0; virtual HRESULT __stdcall Suspend( void) = 0; virtual HRESULT __stdcall Resume( void) = 0; virtual HRESULT __stdcall SetPriority( /* [in] */ LONG nPriority) = 0; virtual HRESULT __stdcall GetPriority( /* [out] */ LONG *pnPriority) = 0; virtual /* [local] */ HRESULT __stdcall GetBindResult( /* [out] */ CLSID *pclsidProtocol, /* [out] */ DWORD *pdwResult, /* [out] */ LPOLESTR *pszResult, /* [out][in] */ DWORD *pdwReserved) = 0; }; #line 1066 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" /* [call_as] */ HRESULT __stdcall IBinding_RemoteGetBindResult_Proxy( IBinding * This, /* [out] */ CLSID *pclsidProtocol, /* [out] */ DWORD *pdwResult, /* [out] */ LPOLESTR *pszResult, /* [in] */ DWORD dwReserved); void __stdcall IBinding_RemoteGetBindResult_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #line 1086 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" /* interface __MIDL_itf_urlmon_0000_0004 */ /* [local] */ #line 1092 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0004_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0004_v0_0_s_ifspec; /* interface IBindStatusCallback */ /* [unique][uuid][object] */ typedef /* [unique] */ IBindStatusCallback *LPBINDSTATUSCALLBACK; typedef /* [public] */ enum __MIDL_IBindStatusCallback_0001 { BINDVERB_GET = 0, BINDVERB_POST = 0x1, BINDVERB_PUT = 0x2, BINDVERB_CUSTOM = 0x3 } BINDVERB; typedef /* [public] */ enum __MIDL_IBindStatusCallback_0002 { BINDINFOF_URLENCODESTGMEDDATA = 0x1, BINDINFOF_URLENCODEDEXTRAINFO = 0x2 } BINDINFOF; typedef /* [public] */ enum __MIDL_IBindStatusCallback_0003 { BINDF_ASYNCHRONOUS = 0x1, BINDF_ASYNCSTORAGE = 0x2, BINDF_NOPROGRESSIVERENDERING = 0x4, BINDF_OFFLINEOPERATION = 0x8, BINDF_GETNEWESTVERSION = 0x10, BINDF_NOWRITECACHE = 0x20, BINDF_NEEDFILE = 0x40, BINDF_PULLDATA = 0x80, BINDF_IGNORESECURITYPROBLEM = 0x100, BINDF_RESYNCHRONIZE = 0x200, BINDF_HYPERLINK = 0x400, BINDF_NO_UI = 0x800, BINDF_SILENTOPERATION = 0x1000, BINDF_PRAGMA_NO_CACHE = 0x2000, BINDF_GETCLASSOBJECT = 0x4000, BINDF_RESERVED_1 = 0x8000, BINDF_FREE_THREADED = 0x10000, BINDF_DIRECT_READ = 0x20000, BINDF_FORMS_SUBMIT = 0x40000, BINDF_GETFROMCACHE_IF_NET_FAIL = 0x80000, BINDF_FROMURLMON = 0x100000, BINDF_FWD_BACK = 0x200000, BINDF_PREFERDEFAULTHANDLER = 0x400000, BINDF_ENFORCERESTRICTED = 0x800000 } BINDF; typedef /* [public] */ enum __MIDL_IBindStatusCallback_0004 { URL_ENCODING_NONE = 0, URL_ENCODING_ENABLE_UTF8 = 0x10000000, URL_ENCODING_DISABLE_UTF8 = 0x20000000 } URL_ENCODING; typedef struct _tagBINDINFO { ULONG cbSize; LPWSTR szExtraInfo; STGMEDIUM stgmedData; DWORD grfBindInfoF; DWORD dwBindVerb; LPWSTR szCustomVerb; DWORD cbstgmedData; DWORD dwOptions; DWORD dwOptionsFlags; DWORD dwCodePage; SECURITY_ATTRIBUTES securityAttributes; IID iid; IUnknown *pUnk; DWORD dwReserved; } BINDINFO; typedef struct _REMSECURITY_ATTRIBUTES { DWORD nLength; DWORD lpSecurityDescriptor; BOOL bInheritHandle; } REMSECURITY_ATTRIBUTES; typedef struct _REMSECURITY_ATTRIBUTES *PREMSECURITY_ATTRIBUTES; typedef struct _REMSECURITY_ATTRIBUTES *LPREMSECURITY_ATTRIBUTES; typedef struct _tagRemBINDINFO { ULONG cbSize; LPWSTR szExtraInfo; DWORD grfBindInfoF; DWORD dwBindVerb; LPWSTR szCustomVerb; DWORD cbstgmedData; DWORD dwOptions; DWORD dwOptionsFlags; DWORD dwCodePage; REMSECURITY_ATTRIBUTES securityAttributes; IID iid; IUnknown *pUnk; DWORD dwReserved; } RemBINDINFO; typedef struct tagRemFORMATETC { DWORD cfFormat; DWORD ptd; DWORD dwAspect; LONG lindex; DWORD tymed; } RemFORMATETC; typedef struct tagRemFORMATETC *LPREMFORMATETC; typedef /* [public] */ enum __MIDL_IBindStatusCallback_0005 { BINDINFO_OPTIONS_WININETFLAG = 0x10000, BINDINFO_OPTIONS_ENABLE_UTF8 = 0x20000, BINDINFO_OPTIONS_DISABLE_UTF8 = 0x40000, BINDINFO_OPTIONS_USE_IE_ENCODING = 0x80000, BINDINFO_OPTIONS_BINDTOOBJECT = 0x100000, BINDINFO_OPTIONS_SECURITYOPTOUT = 0x200000, BINDINFO_OPTIONS_IGNOREMIMETEXTPLAIN = 0x400000, BINDINFO_OPTIONS_USEBINDSTRINGCREDS = 0x800000, BINDINFO_OPTIONS_IGNOREHTTPHTTPSREDIRECTS = 0x1000000, BINDINFO_OPTIONS_IGNORE_SSLERRORS_ONCE = 0x2000000, BINDINFO_WPC_DOWNLOADBLOCKED = 0x8000000, BINDINFO_WPC_LOGGING_ENABLED = 0x10000000, BINDINFO_OPTIONS_DISABLEAUTOREDIRECTS = 0x40000000, BINDINFO_OPTIONS_SHDOCVW_NAVIGATE = 0x80000000 } BINDINFO_OPTIONS; typedef /* [public] */ enum __MIDL_IBindStatusCallback_0006 { BSCF_FIRSTDATANOTIFICATION = 0x1, BSCF_INTERMEDIATEDATANOTIFICATION = 0x2, BSCF_LASTDATANOTIFICATION = 0x4, BSCF_DATAFULLYAVAILABLE = 0x8, BSCF_AVAILABLEDATASIZEUNKNOWN = 0x10 } BSCF; typedef enum tagBINDSTATUS { BINDSTATUS_FINDINGRESOURCE = 1, BINDSTATUS_CONNECTING = ( BINDSTATUS_FINDINGRESOURCE + 1 ) , BINDSTATUS_REDIRECTING = ( BINDSTATUS_CONNECTING + 1 ) , BINDSTATUS_BEGINDOWNLOADDATA = ( BINDSTATUS_REDIRECTING + 1 ) , BINDSTATUS_DOWNLOADINGDATA = ( BINDSTATUS_BEGINDOWNLOADDATA + 1 ) , BINDSTATUS_ENDDOWNLOADDATA = ( BINDSTATUS_DOWNLOADINGDATA + 1 ) , BINDSTATUS_BEGINDOWNLOADCOMPONENTS = ( BINDSTATUS_ENDDOWNLOADDATA + 1 ) , BINDSTATUS_INSTALLINGCOMPONENTS = ( BINDSTATUS_BEGINDOWNLOADCOMPONENTS + 1 ) , BINDSTATUS_ENDDOWNLOADCOMPONENTS = ( BINDSTATUS_INSTALLINGCOMPONENTS + 1 ) , BINDSTATUS_USINGCACHEDCOPY = ( BINDSTATUS_ENDDOWNLOADCOMPONENTS + 1 ) , BINDSTATUS_SENDINGREQUEST = ( BINDSTATUS_USINGCACHEDCOPY + 1 ) , BINDSTATUS_CLASSIDAVAILABLE = ( BINDSTATUS_SENDINGREQUEST + 1 ) , BINDSTATUS_MIMETYPEAVAILABLE = ( BINDSTATUS_CLASSIDAVAILABLE + 1 ) , BINDSTATUS_CACHEFILENAMEAVAILABLE = ( BINDSTATUS_MIMETYPEAVAILABLE + 1 ) , BINDSTATUS_BEGINSYNCOPERATION = ( BINDSTATUS_CACHEFILENAMEAVAILABLE + 1 ) , BINDSTATUS_ENDSYNCOPERATION = ( BINDSTATUS_BEGINSYNCOPERATION + 1 ) , BINDSTATUS_BEGINUPLOADDATA = ( BINDSTATUS_ENDSYNCOPERATION + 1 ) , BINDSTATUS_UPLOADINGDATA = ( BINDSTATUS_BEGINUPLOADDATA + 1 ) , BINDSTATUS_ENDUPLOADDATA = ( BINDSTATUS_UPLOADINGDATA + 1 ) , BINDSTATUS_PROTOCOLCLASSID = ( BINDSTATUS_ENDUPLOADDATA + 1 ) , BINDSTATUS_ENCODING = ( BINDSTATUS_PROTOCOLCLASSID + 1 ) , BINDSTATUS_VERIFIEDMIMETYPEAVAILABLE = ( BINDSTATUS_ENCODING + 1 ) , BINDSTATUS_CLASSINSTALLLOCATION = ( BINDSTATUS_VERIFIEDMIMETYPEAVAILABLE + 1 ) , BINDSTATUS_DECODING = ( BINDSTATUS_CLASSINSTALLLOCATION + 1 ) , BINDSTATUS_LOADINGMIMEHANDLER = ( BINDSTATUS_DECODING + 1 ) , BINDSTATUS_CONTENTDISPOSITIONATTACH = ( BINDSTATUS_LOADINGMIMEHANDLER + 1 ) , BINDSTATUS_FILTERREPORTMIMETYPE = ( BINDSTATUS_CONTENTDISPOSITIONATTACH + 1 ) , BINDSTATUS_CLSIDCANINSTANTIATE = ( BINDSTATUS_FILTERREPORTMIMETYPE + 1 ) , BINDSTATUS_IUNKNOWNAVAILABLE = ( BINDSTATUS_CLSIDCANINSTANTIATE + 1 ) , BINDSTATUS_DIRECTBIND = ( BINDSTATUS_IUNKNOWNAVAILABLE + 1 ) , BINDSTATUS_RAWMIMETYPE = ( BINDSTATUS_DIRECTBIND + 1 ) , BINDSTATUS_PROXYDETECTING = ( BINDSTATUS_RAWMIMETYPE + 1 ) , BINDSTATUS_ACCEPTRANGES = ( BINDSTATUS_PROXYDETECTING + 1 ) , BINDSTATUS_COOKIE_SENT = ( BINDSTATUS_ACCEPTRANGES + 1 ) , BINDSTATUS_COMPACT_POLICY_RECEIVED = ( BINDSTATUS_COOKIE_SENT + 1 ) , BINDSTATUS_COOKIE_SUPPRESSED = ( BINDSTATUS_COMPACT_POLICY_RECEIVED + 1 ) , BINDSTATUS_COOKIE_STATE_UNKNOWN = ( BINDSTATUS_COOKIE_SUPPRESSED + 1 ) , BINDSTATUS_COOKIE_STATE_ACCEPT = ( BINDSTATUS_COOKIE_STATE_UNKNOWN + 1 ) , BINDSTATUS_COOKIE_STATE_REJECT = ( BINDSTATUS_COOKIE_STATE_ACCEPT + 1 ) , BINDSTATUS_COOKIE_STATE_PROMPT = ( BINDSTATUS_COOKIE_STATE_REJECT + 1 ) , BINDSTATUS_COOKIE_STATE_LEASH = ( BINDSTATUS_COOKIE_STATE_PROMPT + 1 ) , BINDSTATUS_COOKIE_STATE_DOWNGRADE = ( BINDSTATUS_COOKIE_STATE_LEASH + 1 ) , BINDSTATUS_POLICY_HREF = ( BINDSTATUS_COOKIE_STATE_DOWNGRADE + 1 ) , BINDSTATUS_P3P_HEADER = ( BINDSTATUS_POLICY_HREF + 1 ) , BINDSTATUS_SESSION_COOKIE_RECEIVED = ( BINDSTATUS_P3P_HEADER + 1 ) , BINDSTATUS_PERSISTENT_COOKIE_RECEIVED = ( BINDSTATUS_SESSION_COOKIE_RECEIVED + 1 ) , BINDSTATUS_SESSION_COOKIES_ALLOWED = ( BINDSTATUS_PERSISTENT_COOKIE_RECEIVED + 1 ) , BINDSTATUS_CACHECONTROL = ( BINDSTATUS_SESSION_COOKIES_ALLOWED + 1 ) , BINDSTATUS_CONTENTDISPOSITIONFILENAME = ( BINDSTATUS_CACHECONTROL + 1 ) , BINDSTATUS_MIMETEXTPLAINMISMATCH = ( BINDSTATUS_CONTENTDISPOSITIONFILENAME + 1 ) , BINDSTATUS_PUBLISHERAVAILABLE = ( BINDSTATUS_MIMETEXTPLAINMISMATCH + 1 ) , BINDSTATUS_DISPLAYNAMEAVAILABLE = ( BINDSTATUS_PUBLISHERAVAILABLE + 1 ) , BINDSTATUS_SSLUX_NAVBLOCKED = ( BINDSTATUS_DISPLAYNAMEAVAILABLE + 1 ) } BINDSTATUS; extern "C" const IID IID_IBindStatusCallback; struct __declspec(uuid("79eac9c1-baf9-11ce-8c82-00aa004ba90b")) __declspec(novtable) IBindStatusCallback : public IUnknown { public: virtual HRESULT __stdcall OnStartBinding( /* [in] */ DWORD dwReserved, /* [in] */ IBinding *pib) = 0; virtual HRESULT __stdcall GetPriority( /* [out] */ LONG *pnPriority) = 0; virtual HRESULT __stdcall OnLowResource( /* [in] */ DWORD reserved) = 0; virtual HRESULT __stdcall OnProgress( /* [in] */ ULONG ulProgress, /* [in] */ ULONG ulProgressMax, /* [in] */ ULONG ulStatusCode, /* [unique][in] */ LPCWSTR szStatusText) = 0; virtual HRESULT __stdcall OnStopBinding( /* [in] */ HRESULT hresult, /* [unique][in] */ LPCWSTR szError) = 0; virtual /* [local] */ HRESULT __stdcall GetBindInfo( /* [out] */ DWORD *grfBINDF, /* [unique][out][in] */ BINDINFO *pbindinfo) = 0; virtual /* [local] */ HRESULT __stdcall OnDataAvailable( /* [in] */ DWORD grfBSCF, /* [in] */ DWORD dwSize, /* [in] */ FORMATETC *pformatetc, /* [in] */ STGMEDIUM *pstgmed) = 0; virtual HRESULT __stdcall OnObjectAvailable( /* [in] */ const IID & riid, /* [iid_is][in] */ IUnknown *punk) = 0; }; #line 1453 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" /* [call_as] */ HRESULT __stdcall IBindStatusCallback_RemoteGetBindInfo_Proxy( IBindStatusCallback * This, /* [out] */ DWORD *grfBINDF, /* [unique][out][in] */ RemBINDINFO *pbindinfo, /* [unique][out][in] */ RemSTGMEDIUM *pstgmed); void __stdcall IBindStatusCallback_RemoteGetBindInfo_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [call_as] */ HRESULT __stdcall IBindStatusCallback_RemoteOnDataAvailable_Proxy( IBindStatusCallback * This, /* [in] */ DWORD grfBSCF, /* [in] */ DWORD dwSize, /* [in] */ RemFORMATETC *pformatetc, /* [in] */ RemSTGMEDIUM *pstgmed); void __stdcall IBindStatusCallback_RemoteOnDataAvailable_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #line 1487 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" /* interface __MIDL_itf_urlmon_0000_0005 */ /* [local] */ #line 1493 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0005_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0005_v0_0_s_ifspec; /* interface IAuthenticate */ /* [unique][uuid][object] */ typedef /* [unique] */ IAuthenticate *LPAUTHENTICATION; extern "C" const IID IID_IAuthenticate; struct __declspec(uuid("79eac9d0-baf9-11ce-8c82-00aa004ba90b")) __declspec(novtable) IAuthenticate : public IUnknown { public: virtual HRESULT __stdcall Authenticate( /* [out] */ HWND *phwnd, /* [out] */ LPWSTR *pszUsername, /* [out] */ LPWSTR *pszPassword) = 0; }; #line 1578 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 1583 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" /* interface __MIDL_itf_urlmon_0000_0006 */ /* [local] */ #line 1589 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0006_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0006_v0_0_s_ifspec; /* interface IHttpNegotiate */ /* [unique][uuid][object] */ typedef /* [unique] */ IHttpNegotiate *LPHTTPNEGOTIATE; extern "C" const IID IID_IHttpNegotiate; struct __declspec(uuid("79eac9d2-baf9-11ce-8c82-00aa004ba90b")) __declspec(novtable) IHttpNegotiate : public IUnknown { public: virtual HRESULT __stdcall BeginningTransaction( /* [in] */ LPCWSTR szURL, /* [unique][in] */ LPCWSTR szHeaders, /* [in] */ DWORD dwReserved, /* [out] */ LPWSTR *pszAdditionalHeaders) = 0; virtual HRESULT __stdcall OnResponse( /* [in] */ DWORD dwResponseCode, /* [unique][in] */ LPCWSTR szResponseHeaders, /* [unique][in] */ LPCWSTR szRequestHeaders, /* [out] */ LPWSTR *pszAdditionalRequestHeaders) = 0; }; #line 1692 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 1697 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" /* interface __MIDL_itf_urlmon_0000_0007 */ /* [local] */ #line 1703 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0007_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0007_v0_0_s_ifspec; /* interface IHttpNegotiate2 */ /* [unique][uuid][object] */ typedef /* [unique] */ IHttpNegotiate2 *LPHTTPNEGOTIATE2; extern "C" const IID IID_IHttpNegotiate2; struct __declspec(uuid("4F9F9FCB-E0F4-48eb-B7AB-FA2EA9365CB4")) __declspec(novtable) IHttpNegotiate2 : public IHttpNegotiate { public: virtual HRESULT __stdcall GetRootSecurityId( /* [size_is][out] */ BYTE *pbSecurityId, /* [out][in] */ DWORD *pcbSecurityId, /* [in] */ DWORD_PTR dwReserved) = 0; }; #line 1809 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 1814 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" /* interface __MIDL_itf_urlmon_0000_0008 */ /* [local] */ #line 1820 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0008_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0008_v0_0_s_ifspec; /* interface IWinInetFileStream */ /* [unique][uuid][object] */ typedef /* [unique] */ IWinInetFileStream *LPWININETFILESTREAM; extern "C" const IID IID_IWinInetFileStream; struct __declspec(uuid("F134C4B7-B1F8-4e75-B886-74B90943BECB")) __declspec(novtable) IWinInetFileStream : public IUnknown { public: virtual HRESULT __stdcall SetHandleForUnlock( /* [in] */ DWORD_PTR hWinInetLockHandle, /* [in] */ DWORD_PTR dwReserved) = 0; virtual HRESULT __stdcall SetDeleteFile( /* [in] */ DWORD_PTR dwReserved) = 0; }; #line 1913 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 1918 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" /* interface __MIDL_itf_urlmon_0000_0009 */ /* [local] */ #line 1924 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0009_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0009_v0_0_s_ifspec; /* interface IWindowForBindingUI */ /* [unique][uuid][object][local] */ typedef /* [unique] */ IWindowForBindingUI *LPWINDOWFORBINDINGUI; extern "C" const IID IID_IWindowForBindingUI; struct __declspec(uuid("79eac9d5-bafa-11ce-8c82-00aa004ba90b")) __declspec(novtable) IWindowForBindingUI : public IUnknown { public: virtual HRESULT __stdcall GetWindow( /* [in] */ const GUID & rguidReason, /* [out] */ HWND *phwnd) = 0; }; #line 2007 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 2012 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" /* interface __MIDL_itf_urlmon_0000_0010 */ /* [local] */ #line 2018 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0010_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0010_v0_0_s_ifspec; /* interface ICodeInstall */ /* [unique][uuid][object][local] */ typedef /* [unique] */ ICodeInstall *LPCODEINSTALL; typedef /* [public] */ enum __MIDL_ICodeInstall_0001 { CIP_DISK_FULL = 0, CIP_ACCESS_DENIED = ( CIP_DISK_FULL + 1 ) , CIP_NEWER_VERSION_EXISTS = ( CIP_ACCESS_DENIED + 1 ) , CIP_OLDER_VERSION_EXISTS = ( CIP_NEWER_VERSION_EXISTS + 1 ) , CIP_NAME_CONFLICT = ( CIP_OLDER_VERSION_EXISTS + 1 ) , CIP_TRUST_VERIFICATION_COMPONENT_MISSING = ( CIP_NAME_CONFLICT + 1 ) , CIP_EXE_SELF_REGISTERATION_TIMEOUT = ( CIP_TRUST_VERIFICATION_COMPONENT_MISSING + 1 ) , CIP_UNSAFE_TO_ABORT = ( CIP_EXE_SELF_REGISTERATION_TIMEOUT + 1 ) , CIP_NEED_REBOOT = ( CIP_UNSAFE_TO_ABORT + 1 ) , CIP_NEED_REBOOT_UI_PERMISSION = ( CIP_NEED_REBOOT + 1 ) } CIP_STATUS; extern "C" const IID IID_ICodeInstall; struct __declspec(uuid("79eac9d1-baf9-11ce-8c82-00aa004ba90b")) __declspec(novtable) ICodeInstall : public IWindowForBindingUI { public: virtual HRESULT __stdcall OnCodeInstallProblem( /* [in] */ ULONG ulStatusCode, /* [unique][in] */ LPCWSTR szDestination, /* [unique][in] */ LPCWSTR szSource, /* [in] */ DWORD dwReserved) = 0; }; #line 2128 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 2133 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" /* interface __MIDL_itf_urlmon_0000_0011 */ /* [local] */ #line 2139 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 3210 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0015_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0015_v0_0_s_ifspec; /* interface IWinInetInfo */ /* [unique][uuid][object] */ typedef /* [unique] */ IWinInetInfo *LPWININETINFO; extern "C" const IID IID_IWinInetInfo; struct __declspec(uuid("79eac9d6-bafa-11ce-8c82-00aa004ba90b")) __declspec(novtable) IWinInetInfo : public IUnknown { public: virtual /* [local] */ HRESULT __stdcall QueryOption( /* [in] */ DWORD dwOption, /* [size_is][out][in] */ LPVOID pBuffer, /* [out][in] */ DWORD *pcbBuf) = 0; }; #line 3295 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" /* [call_as] */ HRESULT __stdcall IWinInetInfo_RemoteQueryOption_Proxy( IWinInetInfo * This, /* [in] */ DWORD dwOption, /* [size_is][out][in] */ BYTE *pBuffer, /* [out][in] */ DWORD *pcbBuf); void __stdcall IWinInetInfo_RemoteQueryOption_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #line 3314 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" /* interface __MIDL_itf_urlmon_0000_0016 */ /* [local] */ #line 3320 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0016_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0016_v0_0_s_ifspec; /* interface IHttpSecurity */ /* [unique][uuid][object][local] */ typedef /* [unique] */ IHttpSecurity *LPHTTPSECURITY; extern "C" const IID IID_IHttpSecurity; struct __declspec(uuid("79eac9d7-bafa-11ce-8c82-00aa004ba90b")) __declspec(novtable) IHttpSecurity : public IWindowForBindingUI { public: virtual HRESULT __stdcall OnSecurityProblem( /* [in] */ DWORD dwProblem) = 0; }; #line 3411 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 3416 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" /* interface __MIDL_itf_urlmon_0000_0017 */ /* [local] */ #line 3422 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0017_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0017_v0_0_s_ifspec; /* interface IWinInetHttpInfo */ /* [unique][uuid][object] */ typedef /* [unique] */ IWinInetHttpInfo *LPWININETHTTPINFO; extern "C" const IID IID_IWinInetHttpInfo; struct __declspec(uuid("79eac9d8-bafa-11ce-8c82-00aa004ba90b")) __declspec(novtable) IWinInetHttpInfo : public IWinInetInfo { public: virtual /* [local] */ HRESULT __stdcall QueryInfo( /* [in] */ DWORD dwOption, /* [size_is][out][in] */ LPVOID pBuffer, /* [out][in] */ DWORD *pcbBuf, /* [out][in] */ DWORD *pdwFlags, /* [out][in] */ DWORD *pdwReserved) = 0; }; #line 3521 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" /* [call_as] */ HRESULT __stdcall IWinInetHttpInfo_RemoteQueryInfo_Proxy( IWinInetHttpInfo * This, /* [in] */ DWORD dwOption, /* [size_is][out][in] */ BYTE *pBuffer, /* [out][in] */ DWORD *pcbBuf, /* [out][in] */ DWORD *pdwFlags, /* [out][in] */ DWORD *pdwReserved); void __stdcall IWinInetHttpInfo_RemoteQueryInfo_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #line 3542 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" /* interface __MIDL_itf_urlmon_0000_0018 */ /* [local] */ #line 3548 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 3650 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 3764 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" extern "C" const GUID SID_BindHost; extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0020_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0020_v0_0_s_ifspec; /* interface IBindHost */ /* [unique][uuid][object] */ typedef /* [unique] */ IBindHost *LPBINDHOST; extern "C" const IID IID_IBindHost; struct __declspec(uuid("fc4801a1-2ba9-11cf-a229-00aa003d7352")) __declspec(novtable) IBindHost : public IUnknown { public: virtual HRESULT __stdcall CreateMoniker( /* [in] */ LPOLESTR szName, /* [in] */ IBindCtx *pBC, /* [out] */ IMoniker **ppmk, /* [in] */ DWORD dwReserved) = 0; virtual /* [local] */ HRESULT __stdcall MonikerBindToStorage( /* [in] */ IMoniker *pMk, /* [in] */ IBindCtx *pBC, /* [in] */ IBindStatusCallback *pBSC, /* [in] */ const IID & riid, /* [out] */ void **ppvObj) = 0; virtual /* [local] */ HRESULT __stdcall MonikerBindToObject( /* [in] */ IMoniker *pMk, /* [in] */ IBindCtx *pBC, /* [in] */ IBindStatusCallback *pBSC, /* [in] */ const IID & riid, /* [out] */ void **ppvObj) = 0; }; #line 3890 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" /* [call_as] */ HRESULT __stdcall IBindHost_RemoteMonikerBindToStorage_Proxy( IBindHost * This, /* [unique][in] */ IMoniker *pMk, /* [unique][in] */ IBindCtx *pBC, /* [unique][in] */ IBindStatusCallback *pBSC, /* [in] */ const IID & riid, /* [iid_is][out] */ IUnknown **ppvObj); void __stdcall IBindHost_RemoteMonikerBindToStorage_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [call_as] */ HRESULT __stdcall IBindHost_RemoteMonikerBindToObject_Proxy( IBindHost * This, /* [unique][in] */ IMoniker *pMk, /* [unique][in] */ IBindCtx *pBC, /* [unique][in] */ IBindStatusCallback *pBSC, /* [in] */ const IID & riid, /* [iid_is][out] */ IUnknown **ppvObj); void __stdcall IBindHost_RemoteMonikerBindToObject_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #line 3927 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" /* interface __MIDL_itf_urlmon_0000_0021 */ /* [local] */ #line 3933 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" // These are for backwards compatibility with previous URLMON versions // Flags for the UrlDownloadToCacheFile struct IBindStatusCallback; extern "C" HRESULT __stdcall HlinkSimpleNavigateToString( /* [in] */ LPCWSTR szTarget, // required - target document - null if local jump w/in doc /* [in] */ LPCWSTR szLocation, // optional, for navigation into middle of a doc /* [in] */ LPCWSTR szTargetFrameName,// optional, for targeting frame-sets /* [in] */ IUnknown *pUnk, // required - we'll search this for other necessary interfaces /* [in] */ IBindCtx *pbc, // optional. caller may register an IBSC in this /* [in] */ IBindStatusCallback *, /* [in] */ DWORD grfHLNF, // flags /* [in] */ DWORD dwReserved // for future use, must be NULL ); extern "C" HRESULT __stdcall HlinkSimpleNavigateToMoniker( /* [in] */ IMoniker *pmkTarget, // required - target document - (may be null /* [in] */ LPCWSTR szLocation, // optional, for navigation into middle of a doc /* [in] */ LPCWSTR szTargetFrameName,// optional, for targeting frame-sets /* [in] */ IUnknown *pUnk, // required - we'll search this for other necessary interfaces /* [in] */ IBindCtx *pbc, // optional. caller may register an IBSC in this /* [in] */ IBindStatusCallback *, /* [in] */ DWORD grfHLNF, // flags /* [in] */ DWORD dwReserved // for future use, must be NULL ); extern "C" HRESULT __stdcall URLOpenStreamA(LPUNKNOWN,LPCSTR,DWORD,LPBINDSTATUSCALLBACK); extern "C" HRESULT __stdcall URLOpenStreamW(LPUNKNOWN,LPCWSTR,DWORD,LPBINDSTATUSCALLBACK); extern "C" HRESULT __stdcall URLOpenPullStreamA(LPUNKNOWN,LPCSTR,DWORD,LPBINDSTATUSCALLBACK); extern "C" HRESULT __stdcall URLOpenPullStreamW(LPUNKNOWN,LPCWSTR,DWORD,LPBINDSTATUSCALLBACK); extern "C" HRESULT __stdcall URLDownloadToFileA(LPUNKNOWN,LPCSTR,LPCSTR,DWORD,LPBINDSTATUSCALLBACK); extern "C" HRESULT __stdcall URLDownloadToFileW(LPUNKNOWN,LPCWSTR,LPCWSTR,DWORD,LPBINDSTATUSCALLBACK); extern "C" HRESULT __stdcall URLDownloadToCacheFileA( LPUNKNOWN, LPCSTR, LPSTR, DWORD cchFileName, DWORD, LPBINDSTATUSCALLBACK); extern "C" HRESULT __stdcall URLDownloadToCacheFileW( LPUNKNOWN, LPCWSTR, LPWSTR, DWORD cchFileName, DWORD, LPBINDSTATUSCALLBACK); extern "C" HRESULT __stdcall URLOpenBlockingStreamA(LPUNKNOWN,LPCSTR,LPSTREAM*,DWORD,LPBINDSTATUSCALLBACK); extern "C" HRESULT __stdcall URLOpenBlockingStreamW(LPUNKNOWN,LPCWSTR,LPSTREAM*,DWORD,LPBINDSTATUSCALLBACK); #line 3988 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" extern "C" HRESULT __stdcall HlinkGoBack(IUnknown *pUnk); extern "C" HRESULT __stdcall HlinkGoForward(IUnknown *pUnk); extern "C" HRESULT __stdcall HlinkNavigateString(IUnknown *pUnk, LPCWSTR szTarget); extern "C" HRESULT __stdcall HlinkNavigateMoniker(IUnknown *pUnk, IMoniker *pmkTarget); extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0021_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0021_v0_0_s_ifspec; /* interface IInternet */ /* [unique][uuid][object][local] */ typedef /* [unique] */ IInternet *LPIINTERNET; extern "C" const IID IID_IInternet; struct __declspec(uuid("79eac9e0-baf9-11ce-8c82-00aa004ba90b")) __declspec(novtable) IInternet : public IUnknown { public: }; #line 4076 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 4081 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" /* interface __MIDL_itf_urlmon_0000_0022 */ /* [local] */ #line 4087 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0022_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0022_v0_0_s_ifspec; /* interface IInternetBindInfo */ /* [unique][uuid][object][local] */ typedef /* [unique] */ IInternetBindInfo *LPIINTERNETBINDINFO; typedef enum tagBINDSTRING { BINDSTRING_HEADERS = 1, BINDSTRING_ACCEPT_MIMES = ( BINDSTRING_HEADERS + 1 ) , BINDSTRING_EXTRA_URL = ( BINDSTRING_ACCEPT_MIMES + 1 ) , BINDSTRING_LANGUAGE = ( BINDSTRING_EXTRA_URL + 1 ) , BINDSTRING_USERNAME = ( BINDSTRING_LANGUAGE + 1 ) , BINDSTRING_PASSWORD = ( BINDSTRING_USERNAME + 1 ) , BINDSTRING_UA_PIXELS = ( BINDSTRING_PASSWORD + 1 ) , BINDSTRING_UA_COLOR = ( BINDSTRING_UA_PIXELS + 1 ) , BINDSTRING_OS = ( BINDSTRING_UA_COLOR + 1 ) , BINDSTRING_USER_AGENT = ( BINDSTRING_OS + 1 ) , BINDSTRING_ACCEPT_ENCODINGS = ( BINDSTRING_USER_AGENT + 1 ) , BINDSTRING_POST_COOKIE = ( BINDSTRING_ACCEPT_ENCODINGS + 1 ) , BINDSTRING_POST_DATA_MIME = ( BINDSTRING_POST_COOKIE + 1 ) , BINDSTRING_URL = ( BINDSTRING_POST_DATA_MIME + 1 ) , BINDSTRING_IID = ( BINDSTRING_URL + 1 ) , BINDSTRING_FLAG_BIND_TO_OBJECT = ( BINDSTRING_IID + 1 ) , BINDSTRING_PTR_BIND_CONTEXT = ( BINDSTRING_FLAG_BIND_TO_OBJECT + 1 ) } BINDSTRING; extern "C" const IID IID_IInternetBindInfo; struct __declspec(uuid("79eac9e1-baf9-11ce-8c82-00aa004ba90b")) __declspec(novtable) IInternetBindInfo : public IUnknown { public: virtual HRESULT __stdcall GetBindInfo( /* [out] */ DWORD *grfBINDF, /* [unique][out][in] */ BINDINFO *pbindinfo) = 0; virtual HRESULT __stdcall GetBindString( /* [in] */ ULONG ulStringType, /* [out][in] */ LPOLESTR *ppwzStr, /* [in] */ ULONG cEl, /* [out][in] */ ULONG *pcElFetched) = 0; }; #line 4207 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 4212 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" /* interface __MIDL_itf_urlmon_0000_0023 */ /* [local] */ #line 4218 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0023_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0023_v0_0_s_ifspec; /* interface IInternetProtocolRoot */ /* [unique][uuid][object][local] */ typedef /* [unique] */ IInternetProtocolRoot *LPIINTERNETPROTOCOLROOT; typedef enum _tagPI_FLAGS { PI_PARSE_URL = 0x1, PI_FILTER_MODE = 0x2, PI_FORCE_ASYNC = 0x4, PI_USE_WORKERTHREAD = 0x8, PI_MIMEVERIFICATION = 0x10, PI_CLSIDLOOKUP = 0x20, PI_DATAPROGRESS = 0x40, PI_SYNCHRONOUS = 0x80, PI_APARTMENTTHREADED = 0x100, PI_CLASSINSTALL = 0x200, PI_PASSONBINDCTX = 0x2000, PI_NOMIMEHANDLER = 0x8000, PI_LOADAPPDIRECT = 0x4000, PD_FORCE_SWITCH = 0x10000, PI_PREFERDEFAULTHANDLER = 0x20000 } PI_FLAGS; typedef struct _tagPROTOCOLDATA { DWORD grfFlags; DWORD dwState; LPVOID pData; ULONG cbData; } PROTOCOLDATA; typedef struct _tagStartParam { IID iid; IBindCtx *pIBindCtx; IUnknown *pItf; } StartParam; extern "C" const IID IID_IInternetProtocolRoot; struct __declspec(uuid("79eac9e3-baf9-11ce-8c82-00aa004ba90b")) __declspec(novtable) IInternetProtocolRoot : public IUnknown { public: virtual HRESULT __stdcall Start( /* [in] */ LPCWSTR szUrl, /* [in] */ IInternetProtocolSink *pOIProtSink, /* [in] */ IInternetBindInfo *pOIBindInfo, /* [in] */ DWORD grfPI, /* [in] */ HANDLE_PTR dwReserved) = 0; virtual HRESULT __stdcall Continue( /* [in] */ PROTOCOLDATA *pProtocolData) = 0; virtual HRESULT __stdcall Abort( /* [in] */ HRESULT hrReason, /* [in] */ DWORD dwOptions) = 0; virtual HRESULT __stdcall Terminate( /* [in] */ DWORD dwOptions) = 0; virtual HRESULT __stdcall Suspend( void) = 0; virtual HRESULT __stdcall Resume( void) = 0; }; #line 4389 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 4394 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" /* interface __MIDL_itf_urlmon_0000_0024 */ /* [local] */ #line 4400 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0024_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0024_v0_0_s_ifspec; /* interface IInternetProtocol */ /* [unique][uuid][object][local] */ typedef /* [unique] */ IInternetProtocol *LPIINTERNETPROTOCOL; extern "C" const IID IID_IInternetProtocol; struct __declspec(uuid("79eac9e4-baf9-11ce-8c82-00aa004ba90b")) __declspec(novtable) IInternetProtocol : public IInternetProtocolRoot { public: virtual HRESULT __stdcall Read( /* [length_is][size_is][out][in] */ void *pv, /* [in] */ ULONG cb, /* [out] */ ULONG *pcbRead) = 0; virtual HRESULT __stdcall Seek( /* [in] */ LARGE_INTEGER dlibMove, /* [in] */ DWORD dwOrigin, /* [out] */ ULARGE_INTEGER *plibNewPosition) = 0; virtual HRESULT __stdcall LockRequest( /* [in] */ DWORD dwOptions) = 0; virtual HRESULT __stdcall UnlockRequest( void) = 0; }; #line 4563 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 4568 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" /* interface __MIDL_itf_urlmon_0000_0025 */ /* [local] */ #line 4574 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 4752 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0026_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0026_v0_0_s_ifspec; /* interface IInternetProtocolSink */ /* [unique][uuid][object][local] */ typedef /* [unique] */ IInternetProtocolSink *LPIINTERNETPROTOCOLSINK; extern "C" const IID IID_IInternetProtocolSink; struct __declspec(uuid("79eac9e5-baf9-11ce-8c82-00aa004ba90b")) __declspec(novtable) IInternetProtocolSink : public IUnknown { public: virtual HRESULT __stdcall Switch( /* [in] */ PROTOCOLDATA *pProtocolData) = 0; virtual HRESULT __stdcall ReportProgress( /* [in] */ ULONG ulStatusCode, /* [in] */ LPCWSTR szStatusText) = 0; virtual HRESULT __stdcall ReportData( /* [in] */ DWORD grfBSCF, /* [in] */ ULONG ulProgress, /* [in] */ ULONG ulProgressMax) = 0; virtual HRESULT __stdcall ReportResult( /* [in] */ HRESULT hrResult, /* [in] */ DWORD dwError, /* [in] */ LPCWSTR szResult) = 0; }; #line 4873 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 4878 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" /* interface __MIDL_itf_urlmon_0000_0027 */ /* [local] */ #line 4884 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0027_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0027_v0_0_s_ifspec; /* interface IInternetProtocolSinkStackable */ /* [unique][uuid][object][local] */ typedef /* [unique] */ IInternetProtocolSinkStackable *LPIINTERNETPROTOCOLSINKStackable; extern "C" const IID IID_IInternetProtocolSinkStackable; struct __declspec(uuid("79eac9f0-baf9-11ce-8c82-00aa004ba90b")) __declspec(novtable) IInternetProtocolSinkStackable : public IUnknown { public: virtual HRESULT __stdcall SwitchSink( /* [in] */ IInternetProtocolSink *pOIProtSink) = 0; virtual HRESULT __stdcall CommitSwitch( void) = 0; virtual HRESULT __stdcall RollbackSwitch( void) = 0; }; #line 4981 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 4986 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" /* interface __MIDL_itf_urlmon_0000_0028 */ /* [local] */ #line 4992 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0028_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0028_v0_0_s_ifspec; /* interface IInternetSession */ /* [unique][uuid][object][local] */ typedef /* [unique] */ IInternetSession *LPIINTERNETSESSION; typedef enum _tagOIBDG_FLAGS { OIBDG_APARTMENTTHREADED = 0x100, OIBDG_DATAONLY = 0x1000 } OIBDG_FLAGS; extern "C" const IID IID_IInternetSession; struct __declspec(uuid("79eac9e7-baf9-11ce-8c82-00aa004ba90b")) __declspec(novtable) IInternetSession : public IUnknown { public: virtual HRESULT __stdcall RegisterNameSpace( /* [in] */ IClassFactory *pCF, /* [in] */ const IID & rclsid, /* [in] */ LPCWSTR pwzProtocol, /* [in] */ ULONG cPatterns, /* [in] */ const LPCWSTR *ppwzPatterns, /* [in] */ DWORD dwReserved) = 0; virtual HRESULT __stdcall UnregisterNameSpace( /* [in] */ IClassFactory *pCF, /* [in] */ LPCWSTR pszProtocol) = 0; virtual HRESULT __stdcall RegisterMimeFilter( /* [in] */ IClassFactory *pCF, /* [in] */ const IID & rclsid, /* [in] */ LPCWSTR pwzType) = 0; virtual HRESULT __stdcall UnregisterMimeFilter( /* [in] */ IClassFactory *pCF, /* [in] */ LPCWSTR pwzType) = 0; virtual HRESULT __stdcall CreateBinding( /* [in] */ LPBC pBC, /* [in] */ LPCWSTR szUrl, /* [in] */ IUnknown *pUnkOuter, /* [unique][out] */ IUnknown **ppUnk, /* [unique][out] */ IInternetProtocol **ppOInetProt, /* [in] */ DWORD dwOption) = 0; virtual HRESULT __stdcall SetSessionOption( /* [in] */ DWORD dwOption, /* [in] */ LPVOID pBuffer, /* [in] */ DWORD dwBufferLength, /* [in] */ DWORD dwReserved) = 0; virtual HRESULT __stdcall GetSessionOption( /* [in] */ DWORD dwOption, /* [out][in] */ LPVOID pBuffer, /* [out][in] */ DWORD *pdwBufferLength, /* [in] */ DWORD dwReserved) = 0; }; #line 5179 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 5184 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" /* interface __MIDL_itf_urlmon_0000_0029 */ /* [local] */ #line 5190 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0029_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0029_v0_0_s_ifspec; /* interface IInternetThreadSwitch */ /* [unique][uuid][object][local] */ typedef /* [unique] */ IInternetThreadSwitch *LPIINTERNETTHREADSWITCH; extern "C" const IID IID_IInternetThreadSwitch; struct __declspec(uuid("79eac9e8-baf9-11ce-8c82-00aa004ba90b")) __declspec(novtable) IInternetThreadSwitch : public IUnknown { public: virtual HRESULT __stdcall Prepare( void) = 0; virtual HRESULT __stdcall Continue( void) = 0; }; #line 5277 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 5282 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" /* interface __MIDL_itf_urlmon_0000_0030 */ /* [local] */ #line 5288 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0030_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0030_v0_0_s_ifspec; /* interface IInternetPriority */ /* [unique][uuid][object][local] */ typedef /* [unique] */ IInternetPriority *LPIINTERNETPRIORITY; extern "C" const IID IID_IInternetPriority; struct __declspec(uuid("79eac9eb-baf9-11ce-8c82-00aa004ba90b")) __declspec(novtable) IInternetPriority : public IUnknown { public: virtual HRESULT __stdcall SetPriority( /* [in] */ LONG nPriority) = 0; virtual HRESULT __stdcall GetPriority( /* [out] */ LONG *pnPriority) = 0; }; #line 5379 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 5384 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" /* interface __MIDL_itf_urlmon_0000_0031 */ /* [local] */ #line 5390 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0031_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0031_v0_0_s_ifspec; /* interface IInternetProtocolInfo */ /* [unique][uuid][object][local] */ typedef /* [unique] */ IInternetProtocolInfo *LPIINTERNETPROTOCOLINFO; typedef enum _tagPARSEACTION { PARSE_CANONICALIZE = 1, PARSE_FRIENDLY = ( PARSE_CANONICALIZE + 1 ) , PARSE_SECURITY_URL = ( PARSE_FRIENDLY + 1 ) , PARSE_ROOTDOCUMENT = ( PARSE_SECURITY_URL + 1 ) , PARSE_DOCUMENT = ( PARSE_ROOTDOCUMENT + 1 ) , PARSE_ANCHOR = ( PARSE_DOCUMENT + 1 ) , PARSE_ENCODE = ( PARSE_ANCHOR + 1 ) , PARSE_DECODE = ( PARSE_ENCODE + 1 ) , PARSE_PATH_FROM_URL = ( PARSE_DECODE + 1 ) , PARSE_URL_FROM_PATH = ( PARSE_PATH_FROM_URL + 1 ) , PARSE_MIME = ( PARSE_URL_FROM_PATH + 1 ) , PARSE_SERVER = ( PARSE_MIME + 1 ) , PARSE_SCHEMA = ( PARSE_SERVER + 1 ) , PARSE_SITE = ( PARSE_SCHEMA + 1 ) , PARSE_DOMAIN = ( PARSE_SITE + 1 ) , PARSE_LOCATION = ( PARSE_DOMAIN + 1 ) , PARSE_SECURITY_DOMAIN = ( PARSE_LOCATION + 1 ) , PARSE_ESCAPE = ( PARSE_SECURITY_DOMAIN + 1 ) , PARSE_UNESCAPE = ( PARSE_ESCAPE + 1 ) } PARSEACTION; typedef enum _tagPSUACTION { PSU_DEFAULT = 1, PSU_SECURITY_URL_ONLY = ( PSU_DEFAULT + 1 ) } PSUACTION; typedef enum _tagQUERYOPTION { QUERY_EXPIRATION_DATE = 1, QUERY_TIME_OF_LAST_CHANGE = ( QUERY_EXPIRATION_DATE + 1 ) , QUERY_CONTENT_ENCODING = ( QUERY_TIME_OF_LAST_CHANGE + 1 ) , QUERY_CONTENT_TYPE = ( QUERY_CONTENT_ENCODING + 1 ) , QUERY_REFRESH = ( QUERY_CONTENT_TYPE + 1 ) , QUERY_RECOMBINE = ( QUERY_REFRESH + 1 ) , QUERY_CAN_NAVIGATE = ( QUERY_RECOMBINE + 1 ) , QUERY_USES_NETWORK = ( QUERY_CAN_NAVIGATE + 1 ) , QUERY_IS_CACHED = ( QUERY_USES_NETWORK + 1 ) , QUERY_IS_INSTALLEDENTRY = ( QUERY_IS_CACHED + 1 ) , QUERY_IS_CACHED_OR_MAPPED = ( QUERY_IS_INSTALLEDENTRY + 1 ) , QUERY_USES_CACHE = ( QUERY_IS_CACHED_OR_MAPPED + 1 ) , QUERY_IS_SECURE = ( QUERY_USES_CACHE + 1 ) , QUERY_IS_SAFE = ( QUERY_IS_SECURE + 1 ) , QUERY_USES_HISTORYFOLDER = ( QUERY_IS_SAFE + 1 ) } QUERYOPTION; extern "C" const IID IID_IInternetProtocolInfo; struct __declspec(uuid("79eac9ec-baf9-11ce-8c82-00aa004ba90b")) __declspec(novtable) IInternetProtocolInfo : public IUnknown { public: virtual HRESULT __stdcall ParseUrl( /* [in] */ LPCWSTR pwzUrl, /* [in] */ PARSEACTION ParseAction, /* [in] */ DWORD dwParseFlags, /* [out] */ LPWSTR pwzResult, /* [in] */ DWORD cchResult, /* [out] */ DWORD *pcchResult, /* [in] */ DWORD dwReserved) = 0; virtual HRESULT __stdcall CombineUrl( /* [in] */ LPCWSTR pwzBaseUrl, /* [in] */ LPCWSTR pwzRelativeUrl, /* [in] */ DWORD dwCombineFlags, /* [out] */ LPWSTR pwzResult, /* [in] */ DWORD cchResult, /* [out] */ DWORD *pcchResult, /* [in] */ DWORD dwReserved) = 0; virtual HRESULT __stdcall CompareUrl( /* [in] */ LPCWSTR pwzUrl1, /* [in] */ LPCWSTR pwzUrl2, /* [in] */ DWORD dwCompareFlags) = 0; virtual HRESULT __stdcall QueryInfo( /* [in] */ LPCWSTR pwzUrl, /* [in] */ QUERYOPTION OueryOption, /* [in] */ DWORD dwQueryFlags, /* [size_is][out][in] */ LPVOID pBuffer, /* [in] */ DWORD cbBuffer, /* [out][in] */ DWORD *pcbBuf, /* [in] */ DWORD dwReserved) = 0; }; #line 5589 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 5594 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" /* interface __MIDL_itf_urlmon_0000_0032 */ /* [local] */ #line 5600 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 5607 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 5621 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 5634 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" extern "C" HRESULT __stdcall CoInternetParseUrl( LPCWSTR pwzUrl, PARSEACTION ParseAction, DWORD dwFlags, LPWSTR pszResult, DWORD cchResult, DWORD *pcchResult, DWORD dwReserved ); #line 5660 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" extern "C" HRESULT __stdcall CoInternetCombineUrl( LPCWSTR pwzBaseUrl, LPCWSTR pwzRelativeUrl, DWORD dwCombineFlags, LPWSTR pszResult, DWORD cchResult, DWORD *pcchResult, DWORD dwReserved ); #line 5685 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" extern "C" HRESULT __stdcall CoInternetCompareUrl( LPCWSTR pwzUrl1, LPCWSTR pwzUrl2, DWORD dwFlags ); extern "C" HRESULT __stdcall CoInternetGetProtocolFlags( LPCWSTR pwzUrl, DWORD *pdwFlags, DWORD dwReserved ); extern "C" HRESULT __stdcall CoInternetQueryInfo( LPCWSTR pwzUrl, QUERYOPTION QueryOptions, DWORD dwQueryFlags, LPVOID pvBuffer, DWORD cbBuffer, DWORD *pcbBuffer, DWORD dwReserved ); extern "C" HRESULT __stdcall CoInternetGetSession( DWORD dwSessionMode, IInternetSession **ppIInternetSession, DWORD dwReserved ); extern "C" HRESULT __stdcall CoInternetGetSecurityUrl( LPCWSTR pwszUrl, LPWSTR *ppwszSecUrl, PSUACTION psuAction, DWORD dwReserved ); extern "C" HRESULT __stdcall AsyncInstallDistributionUnit( LPCWSTR szDistUnit, LPCWSTR szTYPE, LPCWSTR szExt, DWORD dwFileVersionMS, DWORD dwFileVersionLS, LPCWSTR szURL, IBindCtx *pbc, LPVOID pvReserved, DWORD flags ); #line 5735 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 5825 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" extern "C" HRESULT __stdcall CopyStgMedium(const STGMEDIUM * pcstgmedSrc, STGMEDIUM * pstgmedDest); extern "C" HRESULT __stdcall CopyBindInfo( const BINDINFO * pcbiSrc, BINDINFO * pbiDest ); extern "C" void __stdcall ReleaseBindInfo( BINDINFO * pbindinfo ); #line 5843 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 5847 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" // // Static Protocol flags // // Creates the security manager object. The first argument is the Service provider // to allow for delegation extern "C" HRESULT __stdcall CoInternetCreateSecurityManager(IServiceProvider *pSP, IInternetSecurityManager **ppSM, DWORD dwReserved); extern "C" HRESULT __stdcall CoInternetCreateZoneManager(IServiceProvider *pSP, IInternetZoneManager **ppZM, DWORD dwReserved); // Security manager CLSID's extern "C" const IID CLSID_InternetSecurityManager; extern "C" const IID CLSID_InternetZoneManager; #line 5865 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" // This service is used for delegation support on the Security Manager interface #line 5871 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 5875 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0032_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0032_v0_0_s_ifspec; /* interface IInternetSecurityMgrSite */ /* [unique][helpstring][uuid][object][local] */ extern "C" const IID IID_IInternetSecurityMgrSite; struct __declspec(uuid("79eac9ed-baf9-11ce-8c82-00aa004ba90b")) __declspec(novtable) IInternetSecurityMgrSite : public IUnknown { public: virtual HRESULT __stdcall GetWindow( /* [out] */ HWND *phwnd) = 0; virtual HRESULT __stdcall EnableModeless( /* [in] */ BOOL fEnable) = 0; }; #line 5967 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 5972 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" /* interface __MIDL_itf_urlmon_0000_0033 */ /* [local] */ #line 5978 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0033_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0033_v0_0_s_ifspec; /* interface IInternetSecurityManager */ /* [object][unique][helpstring][uuid] */ // MapUrlToZone returns the zone index given a URL typedef /* [public] */ enum __MIDL_IInternetSecurityManager_0001 { PUAF_DEFAULT = 0, PUAF_NOUI = 0x1, PUAF_ISFILE = 0x2, PUAF_WARN_IF_DENIED = 0x4, PUAF_FORCEUI_FOREGROUND = 0x8, PUAF_CHECK_TIFS = 0x10, PUAF_DONTCHECKBOXINDIALOG = 0x20, PUAF_TRUSTED = 0x40, PUAF_ACCEPT_WILDCARD_SCHEME = 0x80, PUAF_ENFORCERESTRICTED = 0x100, PUAF_NOSAVEDFILECHECK = 0x200, PUAF_REQUIRESAVEDFILECHECK = 0x400, PUAF_DONT_USE_CACHE = 0x1000, PUAF_RESERVED1 = 0x2000, PUAF_RESERVED2 = 0x4000, PUAF_LMZ_UNLOCKED = 0x10000, PUAF_LMZ_LOCKED = 0x20000, PUAF_DEFAULTZONEPOL = 0x40000, PUAF_NPL_USE_LOCKED_IF_RESTRICTED = 0x80000, PUAF_NOUIIFLOCKED = 0x100000, PUAF_DRAGPROTOCOLCHECK = 0x200000 } PUAF; typedef /* [public] */ enum __MIDL_IInternetSecurityManager_0002 { PUAFOUT_DEFAULT = 0, PUAFOUT_ISLOCKZONEPOLICY = 0x1 } PUAFOUT; // This is the wrapper function that most clients will use. // It figures out the current Policy for the passed in Action, // and puts up UI if the current Policy indicates that the user // should be queried. It returns back the Policy which the caller // will use to determine if the action should be allowed // This is the wrapper function to conveniently read a custom policy. typedef /* [public] */ enum __MIDL_IInternetSecurityManager_0003 { SZM_CREATE = 0, SZM_DELETE = 0x1 } SZM_FLAGS; // SetZoneMapping // lpszPattern: string denoting a URL pattern // Examples of valid patterns: // *://*.msn.com // http://*.sony.co.jp // *://et.msn.com // ftp://157.54.23.41/ // https://localsvr // file:\localsvr\share // *://157.54.100-200.* // Examples of invalid patterns: // http://*.lcs.mit.edu // ftp://* // dwFlags: SZM_FLAGS values extern "C" const IID IID_IInternetSecurityManager; struct __declspec(uuid("79eac9ee-baf9-11ce-8c82-00aa004ba90b")) __declspec(novtable) IInternetSecurityManager : public IUnknown { public: virtual HRESULT __stdcall SetSecuritySite( /* [unique][in] */ IInternetSecurityMgrSite *pSite) = 0; virtual HRESULT __stdcall GetSecuritySite( /* [out] */ IInternetSecurityMgrSite **ppSite) = 0; virtual HRESULT __stdcall MapUrlToZone( /* [in] */ LPCWSTR pwszUrl, /* [out] */ DWORD *pdwZone, /* [in] */ DWORD dwFlags) = 0; virtual HRESULT __stdcall GetSecurityId( /* [in] */ LPCWSTR pwszUrl, /* [size_is][out] */ BYTE *pbSecurityId, /* [out][in] */ DWORD *pcbSecurityId, /* [in] */ DWORD_PTR dwReserved) = 0; virtual HRESULT __stdcall ProcessUrlAction( /* [in] */ LPCWSTR pwszUrl, /* [in] */ DWORD dwAction, /* [size_is][out] */ BYTE *pPolicy, /* [in] */ DWORD cbPolicy, /* [in] */ BYTE *pContext, /* [in] */ DWORD cbContext, /* [in] */ DWORD dwFlags, /* [in] */ DWORD dwReserved) = 0; virtual HRESULT __stdcall QueryCustomPolicy( /* [in] */ LPCWSTR pwszUrl, /* [in] */ const GUID & guidKey, /* [size_is][size_is][out] */ BYTE **ppPolicy, /* [out] */ DWORD *pcbPolicy, /* [in] */ BYTE *pContext, /* [in] */ DWORD cbContext, /* [in] */ DWORD dwReserved) = 0; virtual HRESULT __stdcall SetZoneMapping( /* [in] */ DWORD dwZone, /* [in] */ LPCWSTR lpszPattern, /* [in] */ DWORD dwFlags) = 0; virtual HRESULT __stdcall GetZoneMappings( /* [in] */ DWORD dwZone, /* [out] */ IEnumString **ppenumString, /* [in] */ DWORD dwFlags) = 0; }; #line 6240 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 6245 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" /* interface __MIDL_itf_urlmon_0000_0034 */ /* [local] */ #line 6251 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 6443 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 6702 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 6809 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" //This is the interface MSHTML exposes to its clients //The clients need not pass in a URL to these functions //since MSHTML maintains the notion of the current URL extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0037_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0037_v0_0_s_ifspec; /* interface IInternetHostSecurityManager */ /* [unique][helpstring][uuid][object][local] */ extern "C" const IID IID_IInternetHostSecurityManager; struct __declspec(uuid("3af280b6-cb3f-11d0-891e-00c04fb6bfc4")) __declspec(novtable) IInternetHostSecurityManager : public IUnknown { public: virtual HRESULT __stdcall GetSecurityId( /* [size_is][out] */ BYTE *pbSecurityId, /* [out][in] */ DWORD *pcbSecurityId, /* [in] */ DWORD_PTR dwReserved) = 0; virtual HRESULT __stdcall ProcessUrlAction( /* [in] */ DWORD dwAction, /* [size_is][out] */ BYTE *pPolicy, /* [in] */ DWORD cbPolicy, /* [in] */ BYTE *pContext, /* [in] */ DWORD cbContext, /* [in] */ DWORD dwFlags, /* [in] */ DWORD dwReserved) = 0; virtual HRESULT __stdcall QueryCustomPolicy( /* [in] */ const GUID & guidKey, /* [size_is][size_is][out] */ BYTE **ppPolicy, /* [out] */ DWORD *pcbPolicy, /* [in] */ BYTE *pContext, /* [in] */ DWORD cbContext, /* [in] */ DWORD dwReserved) = 0; }; #line 6937 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 6942 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" /* interface __MIDL_itf_urlmon_0000_0038 */ /* [local] */ #line 6948 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" // The zone manager maintains policies for a set of standard actions. // These actions are identified by integral values (called action indexes) // specified below. // Minimum legal value for an action #line 7020 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" // The following Infodelivery actions should have no default policies // in the registry. They assume that no default policy means fall // back to the global restriction. If an admin sets a policy per // zone, then it overrides the global restriction. #line 7107 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 7118 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" // For each action specified above the system maintains // a set of policies for the action. // The only policies supported currently are permissions (i.e. is something allowed) // and logging status. // IMPORTANT: If you are defining your own policies don't overload the meaning of the // loword of the policy. You can use the hiword to store any policy bits which are only // meaningful to your action. // For an example of how to do this look at the URLPOLICY_JAVA above // Permissions // Notifications are not done when user already queried. // Logging is done regardless of whether user was queried. // The ordinal #'s that define the predefined zones internet explorer knows about. // When we support user-defined zones their zone numbers should be between // URLZONE_USER_MIN and URLZONE_USER_MAX #line 7154 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0038_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0038_v0_0_s_ifspec; /* interface IInternetZoneManager */ /* [unique][helpstring][uuid][object][local] */ typedef /* [unique] */ IInternetZoneManager *LPURLZONEMANAGER; typedef enum tagURLZONE { URLZONE_INVALID = -1, URLZONE_PREDEFINED_MIN = 0, URLZONE_LOCAL_MACHINE = 0, URLZONE_INTRANET = ( URLZONE_LOCAL_MACHINE + 1 ) , URLZONE_TRUSTED = ( URLZONE_INTRANET + 1 ) , URLZONE_INTERNET = ( URLZONE_TRUSTED + 1 ) , URLZONE_UNTRUSTED = ( URLZONE_INTERNET + 1 ) , URLZONE_PREDEFINED_MAX = 999, URLZONE_USER_MIN = 1000, URLZONE_USER_MAX = 10000 } URLZONE; // Enhanced Security Configuration zone mapping flag for IInternetSecurityManager::SetZoneMapping typedef enum tagURLTEMPLATE { URLTEMPLATE_CUSTOM = 0, URLTEMPLATE_PREDEFINED_MIN = 0x10000, URLTEMPLATE_LOW = 0x10000, URLTEMPLATE_MEDLOW = 0x10500, URLTEMPLATE_MEDIUM = 0x11000, URLTEMPLATE_MEDHIGH = 0x11500, URLTEMPLATE_HIGH = 0x12000, URLTEMPLATE_PREDEFINED_MAX = 0x20000 } URLTEMPLATE; enum __MIDL_IInternetZoneManager_0001 { MAX_ZONE_PATH = 260, MAX_ZONE_DESCRIPTION = 200 } ; typedef /* [public] */ enum __MIDL_IInternetZoneManager_0002 { ZAFLAGS_CUSTOM_EDIT = 0x1, ZAFLAGS_ADD_SITES = 0x2, ZAFLAGS_REQUIRE_VERIFICATION = 0x4, ZAFLAGS_INCLUDE_PROXY_OVERRIDE = 0x8, ZAFLAGS_INCLUDE_INTRANET_SITES = 0x10, ZAFLAGS_NO_UI = 0x20, ZAFLAGS_SUPPORTS_VERIFICATION = 0x40, ZAFLAGS_UNC_AS_INTRANET = 0x80, ZAFLAGS_DETECT_INTRANET = 0x100, ZAFLAGS_USE_LOCKED_ZONES = 0x10000, ZAFLAGS_VERIFY_TEMPLATE_SETTINGS = 0x20000, ZAFLAGS_NO_CACHE = 0x40000 } ZAFLAGS; typedef struct _ZONEATTRIBUTES { ULONG cbSize; WCHAR szDisplayName[ 260 ]; WCHAR szDescription[ 200 ]; WCHAR szIconPath[ 260 ]; DWORD dwTemplateMinLevel; DWORD dwTemplateRecommended; DWORD dwTemplateCurrentLevel; DWORD dwFlags; } ZONEATTRIBUTES; typedef struct _ZONEATTRIBUTES *LPZONEATTRIBUTES; // Gets the zone attributes (information in registry other than actual security // policies associated with the zone). Zone attributes are fixed as: // Sets the zone attributes (information in registry other than actual security // policies associated with the zone). Zone attributes as above. // Returns S_OK or ??? if failed to write the zone attributes. /* Registry Flags When reading, default behavior is: If HKLM allows override and HKCU value exists Then use HKCU value Else use HKLM value When writing, default behavior is same as HKCU If HKLM allows override Then Write to HKCU Else Fail */ typedef enum _URLZONEREG { URLZONEREG_DEFAULT = 0, URLZONEREG_HKLM = ( URLZONEREG_DEFAULT + 1 ) , URLZONEREG_HKCU = ( URLZONEREG_HKLM + 1 ) } URLZONEREG; // Gets a named custom policy associated with a zone; // e.g. the Java VM settings can be defined with a unique key such as 'Java'. // Custom policy support is intended to allow extensibility from the predefined // set of policies that IE4 has built in. // // pwszKey is the string name designating the custom policy. Components are // responsible for having unique names. // ppPolicy is the callee allocated buffer for the policy byte blob; caller is // responsible for freeing this buffer eventually. // pcbPolicy is the size of the byte blob returned. // dwRegFlags determines how registry is accessed (see above). // Returns S_OK if key is found and buffer allocated; ??? if key is not found (no buffer alloced). // Sets a named custom policy associated with a zone; // e.g. the Java VM settings can be defined with a unique key such as 'Java'. // Custom policy support is intended to allow extensibility from the predefined // set of policies that IE4 has built in. // // pwszKey is the string name designating the custom policy. Components are // responsible for having unique names. // ppPolicy is the caller allocated buffer for the policy byte blob. // pcbPolicy is the size of the byte blob to be set. // dwRegFlags determines if HTCU or HKLM is set. // Returns S_OK or ??? if failed to write the zone custom policy. // Gets action policy associated with a zone, the builtin, fixed-length policies info. // dwAction is the action code for the action as defined above. // pPolicy is the caller allocated buffer for the policy data. // cbPolicy is the size of the caller allocated buffer. // dwRegFlags determines how registry is accessed (see above). // Returns S_OK if action is valid; ??? if action is not valid. extern "C" const IID IID_IInternetZoneManager; struct __declspec(uuid("79eac9ef-baf9-11ce-8c82-00aa004ba90b")) __declspec(novtable) IInternetZoneManager : public IUnknown { public: virtual HRESULT __stdcall GetZoneAttributes( /* [in] */ DWORD dwZone, /* [unique][out][in] */ ZONEATTRIBUTES *pZoneAttributes) = 0; virtual HRESULT __stdcall SetZoneAttributes( /* [in] */ DWORD dwZone, /* [in] */ ZONEATTRIBUTES *pZoneAttributes) = 0; virtual HRESULT __stdcall GetZoneCustomPolicy( /* [in] */ DWORD dwZone, /* [in] */ const GUID & guidKey, /* [size_is][size_is][out] */ BYTE **ppPolicy, /* [out] */ DWORD *pcbPolicy, /* [in] */ URLZONEREG urlZoneReg) = 0; virtual HRESULT __stdcall SetZoneCustomPolicy( /* [in] */ DWORD dwZone, /* [in] */ const GUID & guidKey, /* [size_is][in] */ BYTE *pPolicy, /* [in] */ DWORD cbPolicy, /* [in] */ URLZONEREG urlZoneReg) = 0; virtual HRESULT __stdcall GetZoneActionPolicy( /* [in] */ DWORD dwZone, /* [in] */ DWORD dwAction, /* [size_is][out] */ BYTE *pPolicy, /* [in] */ DWORD cbPolicy, /* [in] */ URLZONEREG urlZoneReg) = 0; virtual HRESULT __stdcall SetZoneActionPolicy( /* [in] */ DWORD dwZone, /* [in] */ DWORD dwAction, /* [size_is][in] */ BYTE *pPolicy, /* [in] */ DWORD cbPolicy, /* [in] */ URLZONEREG urlZoneReg) = 0; virtual HRESULT __stdcall PromptAction( /* [in] */ DWORD dwAction, /* [in] */ HWND hwndParent, /* [in] */ LPCWSTR pwszUrl, /* [in] */ LPCWSTR pwszText, /* [in] */ DWORD dwPromptFlags) = 0; virtual HRESULT __stdcall LogAction( /* [in] */ DWORD dwAction, /* [in] */ LPCWSTR pwszUrl, /* [in] */ LPCWSTR pwszText, /* [in] */ DWORD dwLogFlags) = 0; virtual HRESULT __stdcall CreateZoneEnumerator( /* [out] */ DWORD *pdwEnum, /* [out] */ DWORD *pdwCount, /* [in] */ DWORD dwFlags) = 0; virtual HRESULT __stdcall GetZoneAt( /* [in] */ DWORD dwEnum, /* [in] */ DWORD dwIndex, /* [out] */ DWORD *pdwZone) = 0; virtual HRESULT __stdcall DestroyZoneEnumerator( /* [in] */ DWORD dwEnum) = 0; virtual HRESULT __stdcall CopyTemplatePoliciesToZone( /* [in] */ DWORD dwTemplate, /* [in] */ DWORD dwZone, /* [in] */ DWORD dwReserved) = 0; }; #line 7523 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 7528 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" /* interface __MIDL_itf_urlmon_0000_0039 */ /* [local] */ #line 7534 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 7780 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 8062 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" extern "C" const IID CLSID_SoftDistExt; typedef struct _tagCODEBASEHOLD { ULONG cbSize; LPWSTR szDistUnit; LPWSTR szCodeBase; DWORD dwVersionMS; DWORD dwVersionLS; DWORD dwStyle; } CODEBASEHOLD; typedef struct _tagCODEBASEHOLD *LPCODEBASEHOLD; typedef struct _tagSOFTDISTINFO { ULONG cbSize; DWORD dwFlags; DWORD dwAdState; LPWSTR szTitle; LPWSTR szAbstract; LPWSTR szHREF; DWORD dwInstalledVersionMS; DWORD dwInstalledVersionLS; DWORD dwUpdateVersionMS; DWORD dwUpdateVersionLS; DWORD dwAdvertisedVersionMS; DWORD dwAdvertisedVersionLS; DWORD dwReserved; } SOFTDISTINFO; typedef struct _tagSOFTDISTINFO *LPSOFTDISTINFO; extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0041_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0041_v0_0_s_ifspec; /* interface ISoftDistExt */ /* [unique][helpstring][uuid][object][local] */ extern "C" const IID IID_ISoftDistExt; struct __declspec(uuid("B15B8DC1-C7E1-11d0-8680-00AA00BDCB71")) __declspec(novtable) ISoftDistExt : public IUnknown { public: virtual HRESULT __stdcall ProcessSoftDist( /* [in] */ LPCWSTR szCDFURL, /* [in] */ IXMLElement *pSoftDistElement, /* [out][in] */ LPSOFTDISTINFO lpsdi) = 0; virtual HRESULT __stdcall GetFirstCodeBase( /* [in] */ LPWSTR *szCodeBase, /* [in] */ LPDWORD dwMaxSize) = 0; virtual HRESULT __stdcall GetNextCodeBase( /* [in] */ LPWSTR *szCodeBase, /* [in] */ LPDWORD dwMaxSize) = 0; virtual HRESULT __stdcall AsyncInstallDistributionUnit( /* [in] */ IBindCtx *pbc, /* [in] */ LPVOID pvReserved, /* [in] */ DWORD flags, /* [in] */ LPCODEBASEHOLD lpcbh) = 0; }; #line 8229 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 8234 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" /* interface __MIDL_itf_urlmon_0000_0042 */ /* [local] */ extern "C" HRESULT __stdcall GetSoftwareUpdateInfo( LPCWSTR szDistUnit, LPSOFTDISTINFO psdi ); extern "C" HRESULT __stdcall SetSoftwareUpdateAdvertisementState( LPCWSTR szDistUnit, DWORD dwAdState, DWORD dwAdvertisedVersionMS, DWORD dwAdvertisedVersionLS ); #line 8242 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0042_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0042_v0_0_s_ifspec; /* interface ICatalogFileInfo */ /* [unique][uuid][object][local] */ typedef /* [unique] */ ICatalogFileInfo *LPCATALOGFILEINFO; extern "C" const IID IID_ICatalogFileInfo; struct __declspec(uuid("711C7600-6B48-11d1-B403-00AA00B92AF1")) __declspec(novtable) ICatalogFileInfo : public IUnknown { public: virtual HRESULT __stdcall GetCatalogFile( /* [out] */ LPSTR *ppszCatalogFile) = 0; virtual HRESULT __stdcall GetJavaTrust( /* [out] */ void **ppJavaTrust) = 0; }; #line 8333 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 8338 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" /* interface __MIDL_itf_urlmon_0000_0043 */ /* [local] */ #line 8344 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0043_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0043_v0_0_s_ifspec; /* interface IDataFilter */ /* [unique][uuid][object] */ typedef /* [unique] */ IDataFilter *LPDATAFILTER; extern "C" const IID IID_IDataFilter; struct __declspec(uuid("69d14c80-c18e-11d0-a9ce-006097942311")) __declspec(novtable) IDataFilter : public IUnknown { public: virtual HRESULT __stdcall DoEncode( /* [in] */ DWORD dwFlags, /* [in] */ LONG lInBufferSize, /* [size_is][in] */ BYTE *pbInBuffer, /* [in] */ LONG lOutBufferSize, /* [size_is][out] */ BYTE *pbOutBuffer, /* [in] */ LONG lInBytesAvailable, /* [out] */ LONG *plInBytesRead, /* [out] */ LONG *plOutBytesWritten, /* [in] */ DWORD dwReserved) = 0; virtual HRESULT __stdcall DoDecode( /* [in] */ DWORD dwFlags, /* [in] */ LONG lInBufferSize, /* [size_is][in] */ BYTE *pbInBuffer, /* [in] */ LONG lOutBufferSize, /* [size_is][out] */ BYTE *pbOutBuffer, /* [in] */ LONG lInBytesAvailable, /* [out] */ LONG *plInBytesRead, /* [out] */ LONG *plOutBytesWritten, /* [in] */ DWORD dwReserved) = 0; virtual HRESULT __stdcall SetEncodingLevel( /* [in] */ DWORD dwEncLevel) = 0; }; #line 8477 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 8482 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" /* interface __MIDL_itf_urlmon_0000_0044 */ /* [local] */ #line 8488 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" typedef struct _tagPROTOCOLFILTERDATA { DWORD cbSize; IInternetProtocolSink *pProtocolSink; IInternetProtocol *pProtocol; IUnknown *pUnk; DWORD dwFilterFlags; } PROTOCOLFILTERDATA; extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0044_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0044_v0_0_s_ifspec; /* interface IEncodingFilterFactory */ /* [unique][uuid][object][local] */ typedef /* [unique] */ IEncodingFilterFactory *LPENCODINGFILTERFACTORY; typedef struct _tagDATAINFO { ULONG ulTotalSize; ULONG ulavrPacketSize; ULONG ulConnectSpeed; ULONG ulProcessorSpeed; } DATAINFO; extern "C" const IID IID_IEncodingFilterFactory; struct __declspec(uuid("70bdde00-c18e-11d0-a9ce-006097942311")) __declspec(novtable) IEncodingFilterFactory : public IUnknown { public: virtual HRESULT __stdcall FindBestFilter( /* [in] */ LPCWSTR pwzCodeIn, /* [in] */ LPCWSTR pwzCodeOut, /* [in] */ DATAINFO info, /* [out] */ IDataFilter **ppDF) = 0; virtual HRESULT __stdcall GetDefaultFilter( /* [in] */ LPCWSTR pwzCodeIn, /* [in] */ LPCWSTR pwzCodeOut, /* [out] */ IDataFilter **ppDF) = 0; }; #line 8606 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 8611 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" /* interface __MIDL_itf_urlmon_0000_0045 */ /* [local] */ #line 8617 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" // Logging-specific apis BOOL __stdcall IsLoggingEnabledA( LPCSTR pszUrl); BOOL __stdcall IsLoggingEnabledW( LPCWSTR pwszUrl); #line 8627 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" typedef struct _tagHIT_LOGGING_INFO { DWORD dwStructSize; LPSTR lpszLoggedUrlName; SYSTEMTIME StartTime; SYSTEMTIME EndTime; LPSTR lpszExtendedInfo; } HIT_LOGGING_INFO; typedef struct _tagHIT_LOGGING_INFO *LPHIT_LOGGING_INFO; BOOL __stdcall WriteHitLogging( LPHIT_LOGGING_INFO lpLogginginfo); struct CONFIRMSAFETY { CLSID clsid; IUnknown *pUnk; DWORD dwFlags; } ; extern "C" const GUID GUID_CUSTOM_CONFIRMOBJECTSAFETY; #line 8648 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0045_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0045_v0_0_s_ifspec; /* interface IWrappedProtocol */ /* [unique][uuid][object][local] */ typedef /* [unique] */ IWrappedProtocol *LPIWRAPPEDPROTOCOL; extern "C" const IID IID_IWrappedProtocol; struct __declspec(uuid("53c84785-8425-4dc5-971b-e58d9c19f9b6")) __declspec(novtable) IWrappedProtocol : public IUnknown { public: virtual HRESULT __stdcall GetWrapperCode( /* [out] */ LONG *pnCode, /* [in] */ DWORD_PTR dwReserved) = 0; }; #line 8731 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 8736 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" /* interface __MIDL_itf_urlmon_0000_0046 */ /* [local] */ #line 8742 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0046_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_urlmon_0000_0046_v0_0_s_ifspec; /* Additional Prototypes for ALL interfaces */ unsigned long __stdcall BSTR_UserSize( unsigned long *, unsigned long , BSTR * ); unsigned char * __stdcall BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * ); unsigned char * __stdcall BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * ); void __stdcall BSTR_UserFree( unsigned long *, BSTR * ); unsigned long __stdcall HWND_UserSize( unsigned long *, unsigned long , HWND * ); unsigned char * __stdcall HWND_UserMarshal( unsigned long *, unsigned char *, HWND * ); unsigned char * __stdcall HWND_UserUnmarshal(unsigned long *, unsigned char *, HWND * ); void __stdcall HWND_UserFree( unsigned long *, HWND * ); unsigned long __stdcall BSTR_UserSize64( unsigned long *, unsigned long , BSTR * ); unsigned char * __stdcall BSTR_UserMarshal64( unsigned long *, unsigned char *, BSTR * ); unsigned char * __stdcall BSTR_UserUnmarshal64(unsigned long *, unsigned char *, BSTR * ); void __stdcall BSTR_UserFree64( unsigned long *, BSTR * ); unsigned long __stdcall HWND_UserSize64( unsigned long *, unsigned long , HWND * ); unsigned char * __stdcall HWND_UserMarshal64( unsigned long *, unsigned char *, HWND * ); unsigned char * __stdcall HWND_UserUnmarshal64(unsigned long *, unsigned char *, HWND * ); void __stdcall HWND_UserFree64( unsigned long *, HWND * ); /* [local] */ HRESULT __stdcall IBinding_GetBindResult_Proxy( IBinding * This, /* [out] */ CLSID *pclsidProtocol, /* [out] */ DWORD *pdwResult, /* [out] */ LPOLESTR *pszResult, /* [out][in] */ DWORD *pdwReserved); /* [call_as] */ HRESULT __stdcall IBinding_GetBindResult_Stub( IBinding * This, /* [out] */ CLSID *pclsidProtocol, /* [out] */ DWORD *pdwResult, /* [out] */ LPOLESTR *pszResult, /* [in] */ DWORD dwReserved); /* [local] */ HRESULT __stdcall IBindStatusCallback_GetBindInfo_Proxy( IBindStatusCallback * This, /* [out] */ DWORD *grfBINDF, /* [unique][out][in] */ BINDINFO *pbindinfo); /* [call_as] */ HRESULT __stdcall IBindStatusCallback_GetBindInfo_Stub( IBindStatusCallback * This, /* [out] */ DWORD *grfBINDF, /* [unique][out][in] */ RemBINDINFO *pbindinfo, /* [unique][out][in] */ RemSTGMEDIUM *pstgmed); /* [local] */ HRESULT __stdcall IBindStatusCallback_OnDataAvailable_Proxy( IBindStatusCallback * This, /* [in] */ DWORD grfBSCF, /* [in] */ DWORD dwSize, /* [in] */ FORMATETC *pformatetc, /* [in] */ STGMEDIUM *pstgmed); /* [call_as] */ HRESULT __stdcall IBindStatusCallback_OnDataAvailable_Stub( IBindStatusCallback * This, /* [in] */ DWORD grfBSCF, /* [in] */ DWORD dwSize, /* [in] */ RemFORMATETC *pformatetc, /* [in] */ RemSTGMEDIUM *pstgmed); /* [local] */ HRESULT __stdcall IWinInetInfo_QueryOption_Proxy( IWinInetInfo * This, /* [in] */ DWORD dwOption, /* [size_is][out][in] */ LPVOID pBuffer, /* [out][in] */ DWORD *pcbBuf); /* [call_as] */ HRESULT __stdcall IWinInetInfo_QueryOption_Stub( IWinInetInfo * This, /* [in] */ DWORD dwOption, /* [size_is][out][in] */ BYTE *pBuffer, /* [out][in] */ DWORD *pcbBuf); /* [local] */ HRESULT __stdcall IWinInetHttpInfo_QueryInfo_Proxy( IWinInetHttpInfo * This, /* [in] */ DWORD dwOption, /* [size_is][out][in] */ LPVOID pBuffer, /* [out][in] */ DWORD *pcbBuf, /* [out][in] */ DWORD *pdwFlags, /* [out][in] */ DWORD *pdwReserved); /* [call_as] */ HRESULT __stdcall IWinInetHttpInfo_QueryInfo_Stub( IWinInetHttpInfo * This, /* [in] */ DWORD dwOption, /* [size_is][out][in] */ BYTE *pBuffer, /* [out][in] */ DWORD *pcbBuf, /* [out][in] */ DWORD *pdwFlags, /* [out][in] */ DWORD *pdwReserved); /* [local] */ HRESULT __stdcall IBindHost_MonikerBindToStorage_Proxy( IBindHost * This, /* [in] */ IMoniker *pMk, /* [in] */ IBindCtx *pBC, /* [in] */ IBindStatusCallback *pBSC, /* [in] */ const IID & riid, /* [out] */ void **ppvObj); /* [call_as] */ HRESULT __stdcall IBindHost_MonikerBindToStorage_Stub( IBindHost * This, /* [unique][in] */ IMoniker *pMk, /* [unique][in] */ IBindCtx *pBC, /* [unique][in] */ IBindStatusCallback *pBSC, /* [in] */ const IID & riid, /* [iid_is][out] */ IUnknown **ppvObj); /* [local] */ HRESULT __stdcall IBindHost_MonikerBindToObject_Proxy( IBindHost * This, /* [in] */ IMoniker *pMk, /* [in] */ IBindCtx *pBC, /* [in] */ IBindStatusCallback *pBSC, /* [in] */ const IID & riid, /* [out] */ void **ppvObj); /* [call_as] */ HRESULT __stdcall IBindHost_MonikerBindToObject_Stub( IBindHost * This, /* [unique][in] */ IMoniker *pMk, /* [unique][in] */ IBindCtx *pBC, /* [unique][in] */ IBindStatusCallback *pBSC, /* [in] */ const IID & riid, /* [iid_is][out] */ IUnknown **ppvObj); /* end of Additional Prototypes */ } #line 8882 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 8884 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\urlmon.h" #line 998 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\propidl.h" /* this ALWAYS GENERATED file contains the definitions for the interfaces */ /* File created by MIDL compiler version 7.00.0499 */ /* Compiler settings for propidl.idl: Oicf, W1, Zp8, env=Win32 (32b run) protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level: __declspec(uuid()), __declspec(selectany), __declspec(novtable) DECLSPEC_UUID(), MIDL_INTERFACE() */ //@@MIDL_FILE_HEADING( ) #pragma warning( disable: 4049 ) /* verify that the version is high enough to compile this file*/ /* verify that the version is high enough to compile this file*/ #pragma once #line 48 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\propidl.h" /* Forward Declarations */ typedef struct IPropertyStorage IPropertyStorage; #line 55 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\propidl.h" typedef struct IPropertySetStorage IPropertySetStorage; #line 61 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\propidl.h" typedef struct IEnumSTATPROPSTG IEnumSTATPROPSTG; #line 67 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\propidl.h" typedef struct IEnumSTATPROPSETSTG IEnumSTATPROPSETSTG; #line 73 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\propidl.h" /* header files for imported files */ extern "C"{ #line 82 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\propidl.h" /* interface __MIDL_itf_propidl_0000_0000 */ /* [local] */ //+------------------------------------------------------------------------- // // Microsoft Windows // Copyright (c) Microsoft Corporation. All rights reserved. // //-------------------------------------------------------------------------- #pragma warning(push) #line 97 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\propidl.h" #pragma warning(disable:4201) #pragma warning(disable:4237) #line 100 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\propidl.h" #pragma once #line 103 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\propidl.h" typedef struct tagVersionedStream { GUID guidVersion; IStream *pStream; } VERSIONEDSTREAM; typedef struct tagVersionedStream *LPVERSIONEDSTREAM; // Flags for IPropertySetStorage::Create // (This flag is only supported on StgCreatePropStg & StgOpenPropStg // (This flag causes a version-1 property set to be created // Flags for the reservied PID_BEHAVIOR property // This is the standard C layout of the PROPVARIANT. typedef struct tagPROPVARIANT PROPVARIANT; #line 140 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\propidl.h" typedef struct tagCAC { ULONG cElems; CHAR *pElems; } CAC; typedef struct tagCAUB { ULONG cElems; UCHAR *pElems; } CAUB; typedef struct tagCAI { ULONG cElems; SHORT *pElems; } CAI; typedef struct tagCAUI { ULONG cElems; USHORT *pElems; } CAUI; typedef struct tagCAL { ULONG cElems; LONG *pElems; } CAL; typedef struct tagCAUL { ULONG cElems; ULONG *pElems; } CAUL; typedef struct tagCAFLT { ULONG cElems; FLOAT *pElems; } CAFLT; typedef struct tagCADBL { ULONG cElems; DOUBLE *pElems; } CADBL; typedef struct tagCACY { ULONG cElems; CY *pElems; } CACY; typedef struct tagCADATE { ULONG cElems; DATE *pElems; } CADATE; typedef struct tagCABSTR { ULONG cElems; BSTR *pElems; } CABSTR; typedef struct tagCABSTRBLOB { ULONG cElems; BSTRBLOB *pElems; } CABSTRBLOB; typedef struct tagCABOOL { ULONG cElems; VARIANT_BOOL *pElems; } CABOOL; typedef struct tagCASCODE { ULONG cElems; SCODE *pElems; } CASCODE; typedef struct tagCAPROPVARIANT { ULONG cElems; PROPVARIANT *pElems; } CAPROPVARIANT; typedef struct tagCAH { ULONG cElems; LARGE_INTEGER *pElems; } CAH; typedef struct tagCAUH { ULONG cElems; ULARGE_INTEGER *pElems; } CAUH; typedef struct tagCALPSTR { ULONG cElems; LPSTR *pElems; } CALPSTR; typedef struct tagCALPWSTR { ULONG cElems; LPWSTR *pElems; } CALPWSTR; typedef struct tagCAFILETIME { ULONG cElems; FILETIME *pElems; } CAFILETIME; typedef struct tagCACLIPDATA { ULONG cElems; CLIPDATA *pElems; } CACLIPDATA; typedef struct tagCACLSID { ULONG cElems; CLSID *pElems; } CACLSID; // This is the standard C layout of the structure. typedef WORD PROPVAR_PAD1; typedef WORD PROPVAR_PAD2; typedef WORD PROPVAR_PAD3; #line 287 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\propidl.h" struct tagPROPVARIANT { union { #line 291 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\propidl.h" struct { VARTYPE vt; PROPVAR_PAD1 wReserved1; PROPVAR_PAD2 wReserved2; PROPVAR_PAD3 wReserved3; /* [switch_type] */ union { /* Empty union arm */ CHAR cVal; UCHAR bVal; SHORT iVal; USHORT uiVal; LONG lVal; ULONG ulVal; INT intVal; UINT uintVal; LARGE_INTEGER hVal; ULARGE_INTEGER uhVal; FLOAT fltVal; DOUBLE dblVal; VARIANT_BOOL boolVal; // bool; SCODE scode; CY cyVal; DATE date; FILETIME filetime; CLSID *puuid; CLIPDATA *pclipdata; BSTR bstrVal; BSTRBLOB bstrblobVal; BLOB blob; LPSTR pszVal; LPWSTR pwszVal; IUnknown *punkVal; IDispatch *pdispVal; IStream *pStream; IStorage *pStorage; LPVERSIONEDSTREAM pVersionedStream; LPSAFEARRAY parray; CAC cac; CAUB caub; CAI cai; CAUI caui; CAL cal; CAUL caul; CAH cah; CAUH cauh; CAFLT caflt; CADBL cadbl; CABOOL cabool; CASCODE cascode; CACY cacy; CADATE cadate; CAFILETIME cafiletime; CACLSID cauuid; CACLIPDATA caclipdata; CABSTR cabstr; CABSTRBLOB cabstrblob; CALPSTR calpstr; CALPWSTR calpwstr; CAPROPVARIANT capropvar; CHAR *pcVal; UCHAR *pbVal; SHORT *piVal; USHORT *puiVal; LONG *plVal; ULONG *pulVal; INT *pintVal; UINT *puintVal; FLOAT *pfltVal; DOUBLE *pdblVal; VARIANT_BOOL *pboolVal; DECIMAL *pdecVal; SCODE *pscode; CY *pcyVal; DATE *pdate; BSTR *pbstrVal; IUnknown **ppunkVal; IDispatch **ppdispVal; LPSAFEARRAY *pparray; PROPVARIANT *pvarVal; } ; } ; DECIMAL decVal; }; }; #line 380 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\propidl.h" // This is the standard C layout of the PROPVARIANT. typedef struct tagPROPVARIANT * LPPROPVARIANT; #line 398 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\propidl.h" #line 399 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\propidl.h" #line 401 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\propidl.h" // Reserved global Property IDs // Range which is read-only to downlevel implementations // Property IDs for the DiscardableInformation Property Set // Property IDs for the SummaryInformation Property Set // Property IDs for the DocSummaryInformation Property Set // FMTID_MediaFileSummaryInfo - Property IDs // PIDMSI_STATUS value definitions enum PIDMSI_STATUS_VALUE { PIDMSI_STATUS_NORMAL = 0, PIDMSI_STATUS_NEW = ( PIDMSI_STATUS_NORMAL + 1 ) , PIDMSI_STATUS_PRELIM = ( PIDMSI_STATUS_NEW + 1 ) , PIDMSI_STATUS_DRAFT = ( PIDMSI_STATUS_PRELIM + 1 ) , PIDMSI_STATUS_INPROGRESS = ( PIDMSI_STATUS_DRAFT + 1 ) , PIDMSI_STATUS_EDIT = ( PIDMSI_STATUS_INPROGRESS + 1 ) , PIDMSI_STATUS_REVIEW = ( PIDMSI_STATUS_EDIT + 1 ) , PIDMSI_STATUS_PROOF = ( PIDMSI_STATUS_REVIEW + 1 ) , PIDMSI_STATUS_FINAL = ( PIDMSI_STATUS_PROOF + 1 ) , PIDMSI_STATUS_OTHER = 0x7fff } ; typedef struct tagPROPSPEC { ULONG ulKind; /* [switch_type] */ union { PROPID propid; LPOLESTR lpwstr; /* Empty union arm */ } ; } PROPSPEC; typedef struct tagSTATPROPSTG { LPOLESTR lpwstrName; PROPID propid; VARTYPE vt; } STATPROPSTG; // Macros for parsing the OS Version of the Property Set Header typedef struct tagSTATPROPSETSTG { FMTID fmtid; CLSID clsid; DWORD grfFlags; FILETIME mtime; FILETIME ctime; FILETIME atime; DWORD dwOSVersion; } STATPROPSETSTG; extern RPC_IF_HANDLE __MIDL_itf_propidl_0000_0000_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_propidl_0000_0000_v0_0_s_ifspec; /* interface IPropertyStorage */ /* [unique][uuid][object] */ extern "C" const IID IID_IPropertyStorage; struct __declspec(uuid("00000138-0000-0000-C000-000000000046")) __declspec(novtable) IPropertyStorage : public IUnknown { public: virtual HRESULT __stdcall ReadMultiple( /* [in] */ ULONG cpspec, /* [size_is][in] */ const PROPSPEC rgpspec[ ], /* [size_is][out] */ PROPVARIANT rgpropvar[ ]) = 0; virtual HRESULT __stdcall WriteMultiple( /* [in] */ ULONG cpspec, /* [size_is][in] */ const PROPSPEC rgpspec[ ], /* [size_is][in] */ const PROPVARIANT rgpropvar[ ], /* [in] */ PROPID propidNameFirst) = 0; virtual HRESULT __stdcall DeleteMultiple( /* [in] */ ULONG cpspec, /* [size_is][in] */ const PROPSPEC rgpspec[ ]) = 0; virtual HRESULT __stdcall ReadPropertyNames( /* [in] */ ULONG cpropid, /* [size_is][in] */ const PROPID rgpropid[ ], /* [size_is][out] */ LPOLESTR rglpwstrName[ ]) = 0; virtual HRESULT __stdcall WritePropertyNames( /* [in] */ ULONG cpropid, /* [size_is][in] */ const PROPID rgpropid[ ], /* [size_is][in] */ const LPOLESTR rglpwstrName[ ]) = 0; virtual HRESULT __stdcall DeletePropertyNames( /* [in] */ ULONG cpropid, /* [size_is][in] */ const PROPID rgpropid[ ]) = 0; virtual HRESULT __stdcall Commit( /* [in] */ DWORD grfCommitFlags) = 0; virtual HRESULT __stdcall Revert( void) = 0; virtual HRESULT __stdcall Enum( /* [out] */ IEnumSTATPROPSTG **ppenum) = 0; virtual HRESULT __stdcall SetTimes( /* [in] */ const FILETIME *pctime, /* [in] */ const FILETIME *patime, /* [in] */ const FILETIME *pmtime) = 0; virtual HRESULT __stdcall SetClass( /* [in] */ const IID & clsid) = 0; virtual HRESULT __stdcall Stat( /* [out] */ STATPROPSETSTG *pstatpsstg) = 0; }; #line 748 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\propidl.h" #line 753 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\propidl.h" /* interface IPropertySetStorage */ /* [unique][uuid][object] */ typedef /* [unique] */ IPropertySetStorage *LPPROPERTYSETSTORAGE; extern "C" const IID IID_IPropertySetStorage; struct __declspec(uuid("0000013A-0000-0000-C000-000000000046")) __declspec(novtable) IPropertySetStorage : public IUnknown { public: virtual HRESULT __stdcall Create( /* [in] */ const IID & rfmtid, /* [unique][in] */ const CLSID *pclsid, /* [in] */ DWORD grfFlags, /* [in] */ DWORD grfMode, /* [out] */ IPropertyStorage **ppprstg) = 0; virtual HRESULT __stdcall Open( /* [in] */ const IID & rfmtid, /* [in] */ DWORD grfMode, /* [out] */ IPropertyStorage **ppprstg) = 0; virtual HRESULT __stdcall Delete( /* [in] */ const IID & rfmtid) = 0; virtual HRESULT __stdcall Enum( /* [out] */ IEnumSTATPROPSETSTG **ppenum) = 0; }; #line 871 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\propidl.h" #line 876 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\propidl.h" /* interface IEnumSTATPROPSTG */ /* [unique][uuid][object] */ typedef /* [unique] */ IEnumSTATPROPSTG *LPENUMSTATPROPSTG; extern "C" const IID IID_IEnumSTATPROPSTG; struct __declspec(uuid("00000139-0000-0000-C000-000000000046")) __declspec(novtable) IEnumSTATPROPSTG : public IUnknown { public: virtual /* [local] */ HRESULT __stdcall Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ STATPROPSTG *rgelt, /* [out] */ ULONG *pceltFetched) = 0; virtual HRESULT __stdcall Skip( /* [in] */ ULONG celt) = 0; virtual HRESULT __stdcall Reset( void) = 0; virtual HRESULT __stdcall Clone( /* [out] */ IEnumSTATPROPSTG **ppenum) = 0; }; #line 984 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\propidl.h" /* [call_as] */ HRESULT __stdcall IEnumSTATPROPSTG_RemoteNext_Proxy( IEnumSTATPROPSTG * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ STATPROPSTG *rgelt, /* [out] */ ULONG *pceltFetched); void __stdcall IEnumSTATPROPSTG_RemoteNext_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #line 1003 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\propidl.h" /* interface IEnumSTATPROPSETSTG */ /* [unique][uuid][object] */ typedef /* [unique] */ IEnumSTATPROPSETSTG *LPENUMSTATPROPSETSTG; extern "C" const IID IID_IEnumSTATPROPSETSTG; struct __declspec(uuid("0000013B-0000-0000-C000-000000000046")) __declspec(novtable) IEnumSTATPROPSETSTG : public IUnknown { public: virtual /* [local] */ HRESULT __stdcall Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ STATPROPSETSTG *rgelt, /* [out] */ ULONG *pceltFetched) = 0; virtual HRESULT __stdcall Skip( /* [in] */ ULONG celt) = 0; virtual HRESULT __stdcall Reset( void) = 0; virtual HRESULT __stdcall Clone( /* [out] */ IEnumSTATPROPSETSTG **ppenum) = 0; }; #line 1111 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\propidl.h" /* [call_as] */ HRESULT __stdcall IEnumSTATPROPSETSTG_RemoteNext_Proxy( IEnumSTATPROPSETSTG * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ STATPROPSETSTG *rgelt, /* [out] */ ULONG *pceltFetched); void __stdcall IEnumSTATPROPSETSTG_RemoteNext_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #line 1130 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\propidl.h" /* interface __MIDL_itf_propidl_0000_0004 */ /* [local] */ typedef /* [unique] */ IPropertyStorage *LPPROPERTYSTORAGE; extern "C" __declspec(dllimport) HRESULT __stdcall PropVariantCopy ( PROPVARIANT * pvarDest, const PROPVARIANT * pvarSrc ); extern "C" __declspec(dllimport) HRESULT __stdcall PropVariantClear ( PROPVARIANT * pvar ); extern "C" __declspec(dllimport) HRESULT __stdcall FreePropVariantArray ( ULONG cVariants, PROPVARIANT * rgvars ); inline void PropVariantInit ( PROPVARIANT * pvar ) { memset ( pvar, 0, sizeof(PROPVARIANT) ); } #line 1150 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\propidl.h" extern "C" __declspec(dllimport) HRESULT __stdcall StgCreatePropStg( IUnknown* pUnk, const IID & fmtid, const CLSID *pclsid, DWORD grfFlags, DWORD dwReserved, IPropertyStorage **ppPropStg ); extern "C" __declspec(dllimport) HRESULT __stdcall StgOpenPropStg( IUnknown* pUnk, const IID & fmtid, DWORD grfFlags, DWORD dwReserved, IPropertyStorage **ppPropStg ); extern "C" __declspec(dllimport) HRESULT __stdcall StgCreatePropSetStg( IStorage *pStorage, DWORD dwReserved, IPropertySetStorage **ppPropSetStg); extern "C" __declspec(dllimport) HRESULT __stdcall FmtIdToPropStgName( const FMTID *pfmtid, LPOLESTR oszName ); extern "C" __declspec(dllimport) HRESULT __stdcall PropStgNameToFmtId( const LPOLESTR oszName, FMTID *pfmtid ); #line 1161 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\propidl.h" typedef struct tagSERIALIZEDPROPERTYVALUE // prop { DWORD dwType; BYTE rgb[1]; } SERIALIZEDPROPERTYVALUE; #line 1169 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\propidl.h" extern "C" SERIALIZEDPROPERTYVALUE* __stdcall StgConvertVariantToProperty( const PROPVARIANT* pvar, USHORT CodePage, SERIALIZEDPROPERTYVALUE* pprop, ULONG* pcb, PROPID pid, BOOLEAN fReserved, ULONG* pcIndirect); class PMemoryAllocator; extern "C" BOOLEAN __stdcall StgConvertPropertyToVariant( const SERIALIZEDPROPERTYVALUE* pprop, USHORT CodePage, PROPVARIANT* pvar, PMemoryAllocator* pma); #line 1190 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\propidl.h" #pragma warning(pop) #line 1196 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\propidl.h" extern RPC_IF_HANDLE __MIDL_itf_propidl_0000_0004_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_propidl_0000_0004_v0_0_s_ifspec; /* Additional Prototypes for ALL interfaces */ unsigned long __stdcall BSTR_UserSize( unsigned long *, unsigned long , BSTR * ); unsigned char * __stdcall BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * ); unsigned char * __stdcall BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * ); void __stdcall BSTR_UserFree( unsigned long *, BSTR * ); unsigned long __stdcall LPSAFEARRAY_UserSize( unsigned long *, unsigned long , LPSAFEARRAY * ); unsigned char * __stdcall LPSAFEARRAY_UserMarshal( unsigned long *, unsigned char *, LPSAFEARRAY * ); unsigned char * __stdcall LPSAFEARRAY_UserUnmarshal(unsigned long *, unsigned char *, LPSAFEARRAY * ); void __stdcall LPSAFEARRAY_UserFree( unsigned long *, LPSAFEARRAY * ); unsigned long __stdcall BSTR_UserSize64( unsigned long *, unsigned long , BSTR * ); unsigned char * __stdcall BSTR_UserMarshal64( unsigned long *, unsigned char *, BSTR * ); unsigned char * __stdcall BSTR_UserUnmarshal64(unsigned long *, unsigned char *, BSTR * ); void __stdcall BSTR_UserFree64( unsigned long *, BSTR * ); unsigned long __stdcall LPSAFEARRAY_UserSize64( unsigned long *, unsigned long , LPSAFEARRAY * ); unsigned char * __stdcall LPSAFEARRAY_UserMarshal64( unsigned long *, unsigned char *, LPSAFEARRAY * ); unsigned char * __stdcall LPSAFEARRAY_UserUnmarshal64(unsigned long *, unsigned char *, LPSAFEARRAY * ); void __stdcall LPSAFEARRAY_UserFree64( unsigned long *, LPSAFEARRAY * ); /* [local] */ HRESULT __stdcall IEnumSTATPROPSTG_Next_Proxy( IEnumSTATPROPSTG * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ STATPROPSTG *rgelt, /* [out] */ ULONG *pceltFetched); /* [call_as] */ HRESULT __stdcall IEnumSTATPROPSTG_Next_Stub( IEnumSTATPROPSTG * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ STATPROPSTG *rgelt, /* [out] */ ULONG *pceltFetched); /* [local] */ HRESULT __stdcall IEnumSTATPROPSETSTG_Next_Proxy( IEnumSTATPROPSETSTG * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ STATPROPSETSTG *rgelt, /* [out] */ ULONG *pceltFetched); /* [call_as] */ HRESULT __stdcall IEnumSTATPROPSETSTG_Next_Stub( IEnumSTATPROPSETSTG * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ STATPROPSETSTG *rgelt, /* [out] */ ULONG *pceltFetched); /* end of Additional Prototypes */ } #line 1256 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\propidl.h" #line 1258 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\propidl.h" #line 999 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" // // Standard Progress Indicator impolementation // extern "C" __declspec(dllimport) HRESULT __stdcall CreateStdProgressIndicator( HWND hwndParent, LPCOLESTR pszTitle, IBindStatusCallback * pIbscCaller, IBindStatusCallback ** ppIbsc); #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\poppack.h" /*++ Copyright (c) Microsoft Corporation. All rights reserved. Module Name: poppack.h Abstract: This file turns packing of structures off. (That is, it enables automatic alignment of structure fields.) An include file is needed because various compilers do this in different ways. poppack.h is the complement to pshpack?.h. An inclusion of poppack.h MUST ALWAYS be preceded by an inclusion of one of pshpack?.h, in one-to-one correspondence. For Microsoft compatible compilers, this file uses the pop option to the pack pragma so that it can restore the previous saved by the pshpack?.h include file. --*/ #pragma warning(disable:4103) #pragma pack(pop) #line 33 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\poppack.h" #line 36 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\poppack.h" #line 37 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\poppack.h" #line 1011 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" #line 1012 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" #line 1014 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\objbase.h" #line 41 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" #line 48 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" /* * Interface IID's */ /* IID_IDirect3D9 */ /* {81BDCBCA-64D4-426d-AE8D-AD0147F4275C} */ extern "C" const GUID IID_IDirect3D9; /* IID_IDirect3D9Ex */ /* {02177241-69FC-400C-8FF1-93A44DF6861D} */ extern "C" const GUID IID_IDirect3D9Ex; /* IID_IDirect3DDevice9 */ // {D0223B96-BF7A-43fd-92BD-A43B0D82B9EB} */ extern "C" const GUID IID_IDirect3DDevice9; /* IID_IDirect3DDevice9Ex */ // {B18B10CE-2649-405a-870F-95F777D4313A} extern "C" const GUID IID_IDirect3DDevice9Ex; /* IID_IDirect3DResource9 */ // {05EEC05D-8F7D-4362-B999-D1BAF357C704} extern "C" const GUID IID_IDirect3DResource9; /* IID_IDirect3DBaseTexture9 */ /* {580CA87E-1D3C-4d54-991D-B7D3E3C298CE} */ extern "C" const GUID IID_IDirect3DBaseTexture9; /* IID_IDirect3DTexture9 */ /* {85C31227-3DE5-4f00-9B3A-F11AC38C18B5} */ extern "C" const GUID IID_IDirect3DTexture9; /* IID_IDirect3DCubeTexture9 */ /* {FFF32F81-D953-473a-9223-93D652ABA93F} */ extern "C" const GUID IID_IDirect3DCubeTexture9; /* IID_IDirect3DVolumeTexture9 */ /* {2518526C-E789-4111-A7B9-47EF328D13E6} */ extern "C" const GUID IID_IDirect3DVolumeTexture9; /* IID_IDirect3DVertexBuffer9 */ /* {B64BB1B5-FD70-4df6-BF91-19D0A12455E3} */ extern "C" const GUID IID_IDirect3DVertexBuffer9; /* IID_IDirect3DIndexBuffer9 */ /* {7C9DD65E-D3F7-4529-ACEE-785830ACDE35} */ extern "C" const GUID IID_IDirect3DIndexBuffer9; /* IID_IDirect3DSurface9 */ /* {0CFBAF3A-9FF6-429a-99B3-A2796AF8B89B} */ extern "C" const GUID IID_IDirect3DSurface9; /* IID_IDirect3DVolume9 */ /* {24F416E6-1F67-4aa7-B88E-D33F6F3128A1} */ extern "C" const GUID IID_IDirect3DVolume9; /* IID_IDirect3DSwapChain9 */ /* {794950F2-ADFC-458a-905E-10A10B0B503B} */ extern "C" const GUID IID_IDirect3DSwapChain9; /* IID_IDirect3DSwapChain9Ex */ /* {91886CAF-1C3D-4d2e-A0AB-3E4C7D8D3303} */ extern "C" const GUID IID_IDirect3DSwapChain9Ex; /* IID_IDirect3DVertexDeclaration9 */ /* {DD13C59C-36FA-4098-A8FB-C7ED39DC8546} */ extern "C" const GUID IID_IDirect3DVertexDeclaration9; /* IID_IDirect3DVertexShader9 */ /* {EFC5557E-6265-4613-8A94-43857889EB36} */ extern "C" const GUID IID_IDirect3DVertexShader9; /* IID_IDirect3DPixelShader9 */ /* {6D3BDBDC-5B02-4415-B852-CE5E8BCCB289} */ extern "C" const GUID IID_IDirect3DPixelShader9; /* IID_IDirect3DStateBlock9 */ /* {B07C4FE5-310D-4ba8-A23C-4F0F206F218B} */ extern "C" const GUID IID_IDirect3DStateBlock9; /* IID_IDirect3DQuery9 */ /* {d9771460-a695-4f26-bbd3-27b840b541cc} */ extern "C" const GUID IID_IDirect3DQuery9; /* IID_HelperName */ /* {E4A36723-FDFE-4b22-B146-3C04C07F4CC8} */ extern "C" const GUID IID_HelperName; #line 143 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" struct __declspec(uuid("81BDCBCA-64D4-426d-AE8D-AD0147F4275C")) IDirect3D9; struct __declspec(uuid("02177241-69FC-400C-8FF1-93A44DF6861D")) IDirect3D9Ex; struct __declspec(uuid("D0223B96-BF7A-43fd-92BD-A43B0D82B9EB")) IDirect3DDevice9; struct __declspec(uuid("B18B10CE-2649-405a-870F-95F777D4313A")) IDirect3DDevice9Ex; struct __declspec(uuid("B07C4FE5-310D-4ba8-A23C-4F0F206F218B")) IDirect3DStateBlock9; struct __declspec(uuid("05EEC05D-8F7D-4362-B999-D1BAF357C704")) IDirect3DResource9; struct __declspec(uuid("DD13C59C-36FA-4098-A8FB-C7ED39DC8546")) IDirect3DVertexDeclaration9; struct __declspec(uuid("EFC5557E-6265-4613-8A94-43857889EB36")) IDirect3DVertexShader9; struct __declspec(uuid("6D3BDBDC-5B02-4415-B852-CE5E8BCCB289")) IDirect3DPixelShader9; struct __declspec(uuid("580CA87E-1D3C-4d54-991D-B7D3E3C298CE")) IDirect3DBaseTexture9; struct __declspec(uuid("85C31227-3DE5-4f00-9B3A-F11AC38C18B5")) IDirect3DTexture9; struct __declspec(uuid("2518526C-E789-4111-A7B9-47EF328D13E6")) IDirect3DVolumeTexture9; struct __declspec(uuid("FFF32F81-D953-473a-9223-93D652ABA93F")) IDirect3DCubeTexture9; struct __declspec(uuid("B64BB1B5-FD70-4df6-BF91-19D0A12455E3")) IDirect3DVertexBuffer9; struct __declspec(uuid("7C9DD65E-D3F7-4529-ACEE-785830ACDE35")) IDirect3DIndexBuffer9; struct __declspec(uuid("0CFBAF3A-9FF6-429a-99B3-A2796AF8B89B")) IDirect3DSurface9; struct __declspec(uuid("24F416E6-1F67-4aa7-B88E-D33F6F3128A1")) IDirect3DVolume9; struct __declspec(uuid("794950F2-ADFC-458a-905E-10A10B0B503B")) IDirect3DSwapChain9; struct __declspec(uuid("91886CAF-1C3D-4d2e-A0AB-3E4C7D8D3303")) IDirect3DSwapChain9Ex; struct __declspec(uuid("d9771460-a695-4f26-bbd3-27b840b541cc")) IDirect3DQuery9; #line 207 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" #line 208 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" typedef struct IDirect3D9 IDirect3D9; typedef struct IDirect3D9Ex IDirect3D9Ex; typedef struct IDirect3DDevice9 IDirect3DDevice9; typedef struct IDirect3DDevice9Ex IDirect3DDevice9Ex; typedef struct IDirect3DStateBlock9 IDirect3DStateBlock9; typedef struct IDirect3DVertexDeclaration9 IDirect3DVertexDeclaration9; typedef struct IDirect3DVertexShader9 IDirect3DVertexShader9; typedef struct IDirect3DPixelShader9 IDirect3DPixelShader9; typedef struct IDirect3DResource9 IDirect3DResource9; typedef struct IDirect3DBaseTexture9 IDirect3DBaseTexture9; typedef struct IDirect3DTexture9 IDirect3DTexture9; typedef struct IDirect3DVolumeTexture9 IDirect3DVolumeTexture9; typedef struct IDirect3DCubeTexture9 IDirect3DCubeTexture9; typedef struct IDirect3DVertexBuffer9 IDirect3DVertexBuffer9; typedef struct IDirect3DIndexBuffer9 IDirect3DIndexBuffer9; typedef struct IDirect3DSurface9 IDirect3DSurface9; typedef struct IDirect3DVolume9 IDirect3DVolume9; typedef struct IDirect3DSwapChain9 IDirect3DSwapChain9; typedef struct IDirect3DSwapChain9Ex IDirect3DSwapChain9Ex; typedef struct IDirect3DQuery9 IDirect3DQuery9; #line 1 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\d3d9types.h" /*==========================================================================; * * Copyright (C) Microsoft Corporation. All Rights Reserved. * * File: d3d9types.h * Content: Direct3D capabilities include file * ***************************************************************************/ // include this file content only if compiling for DX9 interfaces #pragma warning(push) #line 25 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\d3d9types.h" #pragma warning(disable:4201) #pragma pack(4) #line 29 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\d3d9types.h" // D3DCOLOR is equivalent to D3DFMT_A8R8G8B8 typedef DWORD D3DCOLOR; #line 35 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\d3d9types.h" // maps unsigned 8 bits/channel to D3DCOLOR // maps floating point channels (0.f to 1.f range) to D3DCOLOR typedef struct _D3DVECTOR { float x; float y; float z; } D3DVECTOR; #line 58 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\d3d9types.h" typedef struct _D3DCOLORVALUE { float r; float g; float b; float a; } D3DCOLORVALUE; #line 68 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\d3d9types.h" typedef struct _D3DRECT { LONG x1; LONG y1; LONG x2; LONG y2; } D3DRECT; #line 78 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\d3d9types.h" typedef struct _D3DMATRIX { union { struct { float _11, _12, _13, _14; float _21, _22, _23, _24; float _31, _32, _33, _34; float _41, _42, _43, _44; }; float m[4][4]; }; } D3DMATRIX; #line 94 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\d3d9types.h" typedef struct _D3DVIEWPORT9 { DWORD X; DWORD Y; /* Viewport Top left */ DWORD Width; DWORD Height; /* Viewport Dimensions */ float MinZ; /* Min/max of clip Volume */ float MaxZ; } D3DVIEWPORT9; /* * Values for clip fields. */ // Max number of user clipping planes, supported in D3D. // These bits could be ORed together to use with D3DRS_CLIPPLANEENABLE // // The following bits are used in the ClipUnion and ClipIntersection // members of the D3DCLIPSTATUS9 // typedef struct _D3DCLIPSTATUS9 { DWORD ClipUnion; DWORD ClipIntersection; } D3DCLIPSTATUS9; typedef struct _D3DMATERIAL9 { D3DCOLORVALUE Diffuse; /* Diffuse color RGBA */ D3DCOLORVALUE Ambient; /* Ambient color RGB */ D3DCOLORVALUE Specular; /* Specular 'shininess' */ D3DCOLORVALUE Emissive; /* Emissive color RGB */ float Power; /* Sharpness if specular highlight */ } D3DMATERIAL9; typedef enum _D3DLIGHTTYPE { D3DLIGHT_POINT = 1, D3DLIGHT_SPOT = 2, D3DLIGHT_DIRECTIONAL = 3, D3DLIGHT_FORCE_DWORD = 0x7fffffff, /* force 32-bit size enum */ } D3DLIGHTTYPE; typedef struct _D3DLIGHT9 { D3DLIGHTTYPE Type; /* Type of light source */ D3DCOLORVALUE Diffuse; /* Diffuse color of light */ D3DCOLORVALUE Specular; /* Specular color of light */ D3DCOLORVALUE Ambient; /* Ambient color of light */ D3DVECTOR Position; /* Position in world space */ D3DVECTOR Direction; /* Direction in world space */ float Range; /* Cutoff range */ float Falloff; /* Falloff */ float Attenuation0; /* Constant attenuation */ float Attenuation1; /* Linear attenuation */ float Attenuation2; /* Quadratic attenuation */ float Theta; /* Inner angle of spotlight cone */ float Phi; /* Outer angle of spotlight cone */ } D3DLIGHT9; /* * Options for clearing */ /* * The following defines the rendering states */ typedef enum _D3DSHADEMODE { D3DSHADE_FLAT = 1, D3DSHADE_GOURAUD = 2, D3DSHADE_PHONG = 3, D3DSHADE_FORCE_DWORD = 0x7fffffff, /* force 32-bit size enum */ } D3DSHADEMODE; typedef enum _D3DFILLMODE { D3DFILL_POINT = 1, D3DFILL_WIREFRAME = 2, D3DFILL_SOLID = 3, D3DFILL_FORCE_DWORD = 0x7fffffff, /* force 32-bit size enum */ } D3DFILLMODE; typedef enum _D3DBLEND { D3DBLEND_ZERO = 1, D3DBLEND_ONE = 2, D3DBLEND_SRCCOLOR = 3, D3DBLEND_INVSRCCOLOR = 4, D3DBLEND_SRCALPHA = 5, D3DBLEND_INVSRCALPHA = 6, D3DBLEND_DESTALPHA = 7, D3DBLEND_INVDESTALPHA = 8, D3DBLEND_DESTCOLOR = 9, D3DBLEND_INVDESTCOLOR = 10, D3DBLEND_SRCALPHASAT = 11, D3DBLEND_BOTHSRCALPHA = 12, D3DBLEND_BOTHINVSRCALPHA = 13, D3DBLEND_BLENDFACTOR = 14, /* Only supported if D3DPBLENDCAPS_BLENDFACTOR is on */ D3DBLEND_INVBLENDFACTOR = 15, /* Only supported if D3DPBLENDCAPS_BLENDFACTOR is on */ D3DBLEND_SRCCOLOR2 = 16, D3DBLEND_INVSRCCOLOR2 = 17, D3DBLEND_FORCE_DWORD = 0x7fffffff, /* force 32-bit size enum */ } D3DBLEND; typedef enum _D3DBLENDOP { D3DBLENDOP_ADD = 1, D3DBLENDOP_SUBTRACT = 2, D3DBLENDOP_REVSUBTRACT = 3, D3DBLENDOP_MIN = 4, D3DBLENDOP_MAX = 5, D3DBLENDOP_FORCE_DWORD = 0x7fffffff, /* force 32-bit size enum */ } D3DBLENDOP; typedef enum _D3DTEXTUREADDRESS { D3DTADDRESS_WRAP = 1, D3DTADDRESS_MIRROR = 2, D3DTADDRESS_CLAMP = 3, D3DTADDRESS_BORDER = 4, D3DTADDRESS_MIRRORONCE = 5, D3DTADDRESS_FORCE_DWORD = 0x7fffffff, /* force 32-bit size enum */ } D3DTEXTUREADDRESS; typedef enum _D3DCULL { D3DCULL_NONE = 1, D3DCULL_CW = 2, D3DCULL_CCW = 3, D3DCULL_FORCE_DWORD = 0x7fffffff, /* force 32-bit size enum */ } D3DCULL; typedef enum _D3DCMPFUNC { D3DCMP_NEVER = 1, D3DCMP_LESS = 2, D3DCMP_EQUAL = 3, D3DCMP_LESSEQUAL = 4, D3DCMP_GREATER = 5, D3DCMP_NOTEQUAL = 6, D3DCMP_GREATEREQUAL = 7, D3DCMP_ALWAYS = 8, D3DCMP_FORCE_DWORD = 0x7fffffff, /* force 32-bit size enum */ } D3DCMPFUNC; typedef enum _D3DSTENCILOP { D3DSTENCILOP_KEEP = 1, D3DSTENCILOP_ZERO = 2, D3DSTENCILOP_REPLACE = 3, D3DSTENCILOP_INCRSAT = 4, D3DSTENCILOP_DECRSAT = 5, D3DSTENCILOP_INVERT = 6, D3DSTENCILOP_INCR = 7, D3DSTENCILOP_DECR = 8, D3DSTENCILOP_FORCE_DWORD = 0x7fffffff, /* force 32-bit size enum */ } D3DSTENCILOP; typedef enum _D3DFOGMODE { D3DFOG_NONE = 0, D3DFOG_EXP = 1, D3DFOG_EXP2 = 2, D3DFOG_LINEAR = 3, D3DFOG_FORCE_DWORD = 0x7fffffff, /* force 32-bit size enum */ } D3DFOGMODE; typedef enum _D3DZBUFFERTYPE { D3DZB_FALSE = 0, D3DZB_TRUE = 1, // Z buffering D3DZB_USEW = 2, // W buffering D3DZB_FORCE_DWORD = 0x7fffffff, /* force 32-bit size enum */ } D3DZBUFFERTYPE; // Primitives supported by draw-primitive API typedef enum _D3DPRIMITIVETYPE { D3DPT_POINTLIST = 1, D3DPT_LINELIST = 2, D3DPT_LINESTRIP = 3, D3DPT_TRIANGLELIST = 4, D3DPT_TRIANGLESTRIP = 5, D3DPT_TRIANGLEFAN = 6, D3DPT_FORCE_DWORD = 0x7fffffff, /* force 32-bit size enum */ } D3DPRIMITIVETYPE; typedef enum _D3DTRANSFORMSTATETYPE { D3DTS_VIEW = 2, D3DTS_PROJECTION = 3, D3DTS_TEXTURE0 = 16, D3DTS_TEXTURE1 = 17, D3DTS_TEXTURE2 = 18, D3DTS_TEXTURE3 = 19, D3DTS_TEXTURE4 = 20, D3DTS_TEXTURE5 = 21, D3DTS_TEXTURE6 = 22, D3DTS_TEXTURE7 = 23, D3DTS_FORCE_DWORD = 0x7fffffff, /* force 32-bit size enum */ } D3DTRANSFORMSTATETYPE; typedef enum _D3DRENDERSTATETYPE { D3DRS_ZENABLE = 7, /* D3DZBUFFERTYPE (or TRUE/FALSE for legacy) */ D3DRS_FILLMODE = 8, /* D3DFILLMODE */ D3DRS_SHADEMODE = 9, /* D3DSHADEMODE */ D3DRS_ZWRITEENABLE = 14, /* TRUE to enable z writes */ D3DRS_ALPHATESTENABLE = 15, /* TRUE to enable alpha tests */ D3DRS_LASTPIXEL = 16, /* TRUE for last-pixel on lines */ D3DRS_SRCBLEND = 19, /* D3DBLEND */ D3DRS_DESTBLEND = 20, /* D3DBLEND */ D3DRS_CULLMODE = 22, /* D3DCULL */ D3DRS_ZFUNC = 23, /* D3DCMPFUNC */ D3DRS_ALPHAREF = 24, /* D3DFIXED */ D3DRS_ALPHAFUNC = 25, /* D3DCMPFUNC */ D3DRS_DITHERENABLE = 26, /* TRUE to enable dithering */ D3DRS_ALPHABLENDENABLE = 27, /* TRUE to enable alpha blending */ D3DRS_FOGENABLE = 28, /* TRUE to enable fog blending */ D3DRS_SPECULARENABLE = 29, /* TRUE to enable specular */ D3DRS_FOGCOLOR = 34, /* D3DCOLOR */ D3DRS_FOGTABLEMODE = 35, /* D3DFOGMODE */ D3DRS_FOGSTART = 36, /* Fog start (for both vertex and pixel fog) */ D3DRS_FOGEND = 37, /* Fog end */ D3DRS_FOGDENSITY = 38, /* Fog density */ D3DRS_RANGEFOGENABLE = 48, /* Enables range-based fog */ D3DRS_STENCILENABLE = 52, /* BOOL enable/disable stenciling */ D3DRS_STENCILFAIL = 53, /* D3DSTENCILOP to do if stencil test fails */ D3DRS_STENCILZFAIL = 54, /* D3DSTENCILOP to do if stencil test passes and Z test fails */ D3DRS_STENCILPASS = 55, /* D3DSTENCILOP to do if both stencil and Z tests pass */ D3DRS_STENCILFUNC = 56, /* D3DCMPFUNC fn. Stencil Test passes if ((ref & mask) stencilfn (stencil & mask)) is true */ D3DRS_STENCILREF = 57, /* Reference value used in stencil test */ D3DRS_STENCILMASK = 58, /* Mask value used in stencil test */ D3DRS_STENCILWRITEMASK = 59, /* Write mask applied to values written to stencil buffer */ D3DRS_TEXTUREFACTOR = 60, /* D3DCOLOR used for multi-texture blend */ D3DRS_WRAP0 = 128, /* wrap for 1st texture coord. set */ D3DRS_WRAP1 = 129, /* wrap for 2nd texture coord. set */ D3DRS_WRAP2 = 130, /* wrap for 3rd texture coord. set */ D3DRS_WRAP3 = 131, /* wrap for 4th texture coord. set */ D3DRS_WRAP4 = 132, /* wrap for 5th texture coord. set */ D3DRS_WRAP5 = 133, /* wrap for 6th texture coord. set */ D3DRS_WRAP6 = 134, /* wrap for 7th texture coord. set */ D3DRS_WRAP7 = 135, /* wrap for 8th texture coord. set */ D3DRS_CLIPPING = 136, D3DRS_LIGHTING = 137, D3DRS_AMBIENT = 139, D3DRS_FOGVERTEXMODE = 140, D3DRS_COLORVERTEX = 141, D3DRS_LOCALVIEWER = 142, D3DRS_NORMALIZENORMALS = 143, D3DRS_DIFFUSEMATERIALSOURCE = 145, D3DRS_SPECULARMATERIALSOURCE = 146, D3DRS_AMBIENTMATERIALSOURCE = 147, D3DRS_EMISSIVEMATERIALSOURCE = 148, D3DRS_VERTEXBLEND = 151, D3DRS_CLIPPLANEENABLE = 152, D3DRS_POINTSIZE = 154, /* float point size */ D3DRS_POINTSIZE_MIN = 155, /* float point size min threshold */ D3DRS_POINTSPRITEENABLE = 156, /* BOOL point texture coord control */ D3DRS_POINTSCALEENABLE = 157, /* BOOL point size scale enable */ D3DRS_POINTSCALE_A = 158, /* float point attenuation A value */ D3DRS_POINTSCALE_B = 159, /* float point attenuation B value */ D3DRS_POINTSCALE_C = 160, /* float point attenuation C value */ D3DRS_MULTISAMPLEANTIALIAS = 161, // BOOL - set to do FSAA with multisample buffer D3DRS_MULTISAMPLEMASK = 162, // DWORD - per-sample enable/disable D3DRS_PATCHEDGESTYLE = 163, // Sets whether patch edges will use float style tessellation D3DRS_DEBUGMONITORTOKEN = 165, // DEBUG ONLY - token to debug monitor D3DRS_POINTSIZE_MAX = 166, /* float point size max threshold */ D3DRS_INDEXEDVERTEXBLENDENABLE = 167, D3DRS_COLORWRITEENABLE = 168, // per-channel write enable D3DRS_TWEENFACTOR = 170, // float tween factor D3DRS_BLENDOP = 171, // D3DBLENDOP setting D3DRS_POSITIONDEGREE = 172, // NPatch position interpolation degree. D3DDEGREE_LINEAR or D3DDEGREE_CUBIC (default) D3DRS_NORMALDEGREE = 173, // NPatch normal interpolation degree. D3DDEGREE_LINEAR (default) or D3DDEGREE_QUADRATIC D3DRS_SCISSORTESTENABLE = 174, D3DRS_SLOPESCALEDEPTHBIAS = 175, D3DRS_ANTIALIASEDLINEENABLE = 176, D3DRS_MINTESSELLATIONLEVEL = 178, D3DRS_MAXTESSELLATIONLEVEL = 179, D3DRS_ADAPTIVETESS_X = 180, D3DRS_ADAPTIVETESS_Y = 181, D3DRS_ADAPTIVETESS_Z = 182, D3DRS_ADAPTIVETESS_W = 183, D3DRS_ENABLEADAPTIVETESSELLATION = 184, D3DRS_TWOSIDEDSTENCILMODE = 185, /* BOOL enable/disable 2 sided stenciling */ D3DRS_CCW_STENCILFAIL = 186, /* D3DSTENCILOP to do if ccw stencil test fails */ D3DRS_CCW_STENCILZFAIL = 187, /* D3DSTENCILOP to do if ccw stencil test passes and Z test fails */ D3DRS_CCW_STENCILPASS = 188, /* D3DSTENCILOP to do if both ccw stencil and Z tests pass */ D3DRS_CCW_STENCILFUNC = 189, /* D3DCMPFUNC fn. ccw Stencil Test passes if ((ref & mask) stencilfn (stencil & mask)) is true */ D3DRS_COLORWRITEENABLE1 = 190, /* Additional ColorWriteEnables for the devices that support D3DPMISCCAPS_INDEPENDENTWRITEMASKS */ D3DRS_COLORWRITEENABLE2 = 191, /* Additional ColorWriteEnables for the devices that support D3DPMISCCAPS_INDEPENDENTWRITEMASKS */ D3DRS_COLORWRITEENABLE3 = 192, /* Additional ColorWriteEnables for the devices that support D3DPMISCCAPS_INDEPENDENTWRITEMASKS */ D3DRS_BLENDFACTOR = 193, /* D3DCOLOR used for a constant blend factor during alpha blending for devices that support D3DPBLENDCAPS_BLENDFACTOR */ D3DRS_SRGBWRITEENABLE = 194, /* Enable rendertarget writes to be DE-linearized to SRGB (for formats that expose D3DUSAGE_QUERY_SRGBWRITE) */ D3DRS_DEPTHBIAS = 195, D3DRS_WRAP8 = 198, /* Additional wrap states for vs_3_0+ attributes with D3DDECLUSAGE_TEXCOORD */ D3DRS_WRAP9 = 199, D3DRS_WRAP10 = 200, D3DRS_WRAP11 = 201, D3DRS_WRAP12 = 202, D3DRS_WRAP13 = 203, D3DRS_WRAP14 = 204, D3DRS_WRAP15 = 205, D3DRS_SEPARATEALPHABLENDENABLE = 206, /* TRUE to enable a separate blending function for the alpha channel */ D3DRS_SRCBLENDALPHA = 207, /* SRC blend factor for the alpha channel when D3DRS_SEPARATEDESTALPHAENABLE is TRUE */ D3DRS_DESTBLENDALPHA = 208, /* DST blend factor for the alpha channel when D3DRS_SEPARATEDESTALPHAENABLE is TRUE */ D3DRS_BLENDOPALPHA = 209, /* Blending operation for the alpha channel when D3DRS_SEPARATEDESTALPHAENABLE is TRUE */ D3DRS_FORCE_DWORD = 0x7fffffff, /* force 32-bit size enum */ } D3DRENDERSTATETYPE; // Maximum number of simultaneous render targets D3D supports // Values for material source typedef enum _D3DMATERIALCOLORSOURCE { D3DMCS_MATERIAL = 0, // Color from material is used D3DMCS_COLOR1 = 1, // Diffuse vertex color is used D3DMCS_COLOR2 = 2, // Specular vertex color is used D3DMCS_FORCE_DWORD = 0x7fffffff, // force 32-bit size enum } D3DMATERIALCOLORSOURCE; // Bias to apply to the texture coordinate set to apply a wrap to. /* Flags to construct the WRAP render states */ /* Flags to construct the WRAP render states for 1D thru 4D texture coordinates */ /* Flags to construct D3DRS_COLORWRITEENABLE */ /* * State enumerants for per-stage processing of fixed function pixel processing * Two of these affect fixed function vertex processing as well: TEXTURETRANSFORMFLAGS and TEXCOORDINDEX. */ typedef enum _D3DTEXTURESTAGESTATETYPE { D3DTSS_COLOROP = 1, /* D3DTEXTUREOP - per-stage blending controls for color channels */ D3DTSS_COLORARG1 = 2, /* D3DTA_* (texture arg) */ D3DTSS_COLORARG2 = 3, /* D3DTA_* (texture arg) */ D3DTSS_ALPHAOP = 4, /* D3DTEXTUREOP - per-stage blending controls for alpha channel */ D3DTSS_ALPHAARG1 = 5, /* D3DTA_* (texture arg) */ D3DTSS_ALPHAARG2 = 6, /* D3DTA_* (texture arg) */ D3DTSS_BUMPENVMAT00 = 7, /* float (bump mapping matrix) */ D3DTSS_BUMPENVMAT01 = 8, /* float (bump mapping matrix) */ D3DTSS_BUMPENVMAT10 = 9, /* float (bump mapping matrix) */ D3DTSS_BUMPENVMAT11 = 10, /* float (bump mapping matrix) */ D3DTSS_TEXCOORDINDEX = 11, /* identifies which set of texture coordinates index this texture */ D3DTSS_BUMPENVLSCALE = 22, /* float scale for bump map luminance */ D3DTSS_BUMPENVLOFFSET = 23, /* float offset for bump map luminance */ D3DTSS_TEXTURETRANSFORMFLAGS = 24, /* D3DTEXTURETRANSFORMFLAGS controls texture transform */ D3DTSS_COLORARG0 = 26, /* D3DTA_* third arg for triadic ops */ D3DTSS_ALPHAARG0 = 27, /* D3DTA_* third arg for triadic ops */ D3DTSS_RESULTARG = 28, /* D3DTA_* arg for result (CURRENT or TEMP) */ D3DTSS_CONSTANT = 32, /* Per-stage constant D3DTA_CONSTANT */ D3DTSS_FORCE_DWORD = 0x7fffffff, /* force 32-bit size enum */ } D3DTEXTURESTAGESTATETYPE; /* * State enumerants for per-sampler texture processing. */ typedef enum _D3DSAMPLERSTATETYPE { D3DSAMP_ADDRESSU = 1, /* D3DTEXTUREADDRESS for U coordinate */ D3DSAMP_ADDRESSV = 2, /* D3DTEXTUREADDRESS for V coordinate */ D3DSAMP_ADDRESSW = 3, /* D3DTEXTUREADDRESS for W coordinate */ D3DSAMP_BORDERCOLOR = 4, /* D3DCOLOR */ D3DSAMP_MAGFILTER = 5, /* D3DTEXTUREFILTER filter to use for magnification */ D3DSAMP_MINFILTER = 6, /* D3DTEXTUREFILTER filter to use for minification */ D3DSAMP_MIPFILTER = 7, /* D3DTEXTUREFILTER filter to use between mipmaps during minification */ D3DSAMP_MIPMAPLODBIAS = 8, /* float Mipmap LOD bias */ D3DSAMP_MAXMIPLEVEL = 9, /* DWORD 0..(n-1) LOD index of largest map to use (0 == largest) */ D3DSAMP_MAXANISOTROPY = 10, /* DWORD maximum anisotropy */ D3DSAMP_SRGBTEXTURE = 11, /* Default = 0 (which means Gamma 1.0, no correction required.) else correct for Gamma = 2.2 */ D3DSAMP_ELEMENTINDEX = 12, /* When multi-element texture is assigned to sampler, this indicates which element index to use. Default = 0. */ D3DSAMP_DMAPOFFSET = 13, /* Offset in vertices in the pre-sampled displacement map. Only valid for D3DDMAPSAMPLER sampler */ D3DSAMP_FORCE_DWORD = 0x7fffffff, /* force 32-bit size enum */ } D3DSAMPLERSTATETYPE; /* Special sampler which is used in the tesselator */ // Samplers used in vertex shaders // Values, used with D3DTSS_TEXCOORDINDEX, to specify that the vertex data(position // and normal in the camera space) should be taken as texture coordinates // Low 16 bits are used to specify texture coordinate index, to take the WRAP mode from // /* * Enumerations for COLOROP and ALPHAOP texture blending operations set in * texture processing stage controls in D3DTSS. */ typedef enum _D3DTEXTUREOP { // Control D3DTOP_DISABLE = 1, // disables stage D3DTOP_SELECTARG1 = 2, // the default D3DTOP_SELECTARG2 = 3, // Modulate D3DTOP_MODULATE = 4, // multiply args together D3DTOP_MODULATE2X = 5, // multiply and 1 bit D3DTOP_MODULATE4X = 6, // multiply and 2 bits // Add D3DTOP_ADD = 7, // add arguments together D3DTOP_ADDSIGNED = 8, // add with -0.5 bias D3DTOP_ADDSIGNED2X = 9, // as above but left 1 bit D3DTOP_SUBTRACT = 10, // Arg1 - Arg2, with no saturation D3DTOP_ADDSMOOTH = 11, // add 2 args, subtract product // Arg1 + Arg2 - Arg1*Arg2 // = Arg1 + (1-Arg1)*Arg2 // Linear alpha blend: Arg1*(Alpha) + Arg2*(1-Alpha) D3DTOP_BLENDDIFFUSEALPHA = 12, // iterated alpha D3DTOP_BLENDTEXTUREALPHA = 13, // texture alpha D3DTOP_BLENDFACTORALPHA = 14, // alpha from D3DRS_TEXTUREFACTOR // Linear alpha blend with pre-multiplied arg1 input: Arg1 + Arg2*(1-Alpha) D3DTOP_BLENDTEXTUREALPHAPM = 15, // texture alpha D3DTOP_BLENDCURRENTALPHA = 16, // by alpha of current color // Specular mapping D3DTOP_PREMODULATE = 17, // modulate with next texture before use D3DTOP_MODULATEALPHA_ADDCOLOR = 18, // Arg1.RGB + Arg1.A*Arg2.RGB // COLOROP only D3DTOP_MODULATECOLOR_ADDALPHA = 19, // Arg1.RGB*Arg2.RGB + Arg1.A // COLOROP only D3DTOP_MODULATEINVALPHA_ADDCOLOR = 20, // (1-Arg1.A)*Arg2.RGB + Arg1.RGB // COLOROP only D3DTOP_MODULATEINVCOLOR_ADDALPHA = 21, // (1-Arg1.RGB)*Arg2.RGB + Arg1.A // COLOROP only // Bump mapping D3DTOP_BUMPENVMAP = 22, // per pixel env map perturbation D3DTOP_BUMPENVMAPLUMINANCE = 23, // with luminance channel // This can do either diffuse or specular bump mapping with correct input. // Performs the function (Arg1.R*Arg2.R + Arg1.G*Arg2.G + Arg1.B*Arg2.B) // where each component has been scaled and offset to make it signed. // The result is replicated into all four (including alpha) channels. // This is a valid COLOROP only. D3DTOP_DOTPRODUCT3 = 24, // Triadic ops D3DTOP_MULTIPLYADD = 25, // Arg0 + Arg1*Arg2 D3DTOP_LERP = 26, // (Arg0)*Arg1 + (1-Arg0)*Arg2 D3DTOP_FORCE_DWORD = 0x7fffffff, } D3DTEXTUREOP; /* * Values for COLORARG0,1,2, ALPHAARG0,1,2, and RESULTARG texture blending * operations set in texture processing stage controls in D3DRENDERSTATE. */ // // Values for D3DSAMP_***FILTER texture stage states // typedef enum _D3DTEXTUREFILTERTYPE { D3DTEXF_NONE = 0, // filtering disabled (valid for mip filter only) D3DTEXF_POINT = 1, // nearest D3DTEXF_LINEAR = 2, // linear interpolation D3DTEXF_ANISOTROPIC = 3, // anisotropic D3DTEXF_PYRAMIDALQUAD = 6, // 4-sample tent D3DTEXF_GAUSSIANQUAD = 7, // 4-sample gaussian D3DTEXF_CONVOLUTIONMONO = 8, // Convolution filter for monochrome textures D3DTEXF_FORCE_DWORD = 0x7fffffff, // force 32-bit size enum } D3DTEXTUREFILTERTYPE; /* Bits for Flags in ProcessVertices call */ //------------------------------------------------------------------- // Flexible vertex format bits // //--------------------------------------------------------------------- // Vertex Shaders // // Vertex shader declaration // Vertex element semantics // typedef enum _D3DDECLUSAGE { D3DDECLUSAGE_POSITION = 0, D3DDECLUSAGE_BLENDWEIGHT, // 1 D3DDECLUSAGE_BLENDINDICES, // 2 D3DDECLUSAGE_NORMAL, // 3 D3DDECLUSAGE_PSIZE, // 4 D3DDECLUSAGE_TEXCOORD, // 5 D3DDECLUSAGE_TANGENT, // 6 D3DDECLUSAGE_BINORMAL, // 7 D3DDECLUSAGE_TESSFACTOR, // 8 D3DDECLUSAGE_POSITIONT, // 9 D3DDECLUSAGE_COLOR, // 10 D3DDECLUSAGE_FOG, // 11 D3DDECLUSAGE_DEPTH, // 12 D3DDECLUSAGE_SAMPLE, // 13 } D3DDECLUSAGE; typedef enum _D3DDECLMETHOD { D3DDECLMETHOD_DEFAULT = 0, D3DDECLMETHOD_PARTIALU, D3DDECLMETHOD_PARTIALV, D3DDECLMETHOD_CROSSUV, // Normal D3DDECLMETHOD_UV, D3DDECLMETHOD_LOOKUP, // Lookup a displacement map D3DDECLMETHOD_LOOKUPPRESAMPLED, // Lookup a pre-sampled displacement map } D3DDECLMETHOD; // Declarations for _Type fields // typedef enum _D3DDECLTYPE { D3DDECLTYPE_FLOAT1 = 0, // 1D float expanded to (value, 0., 0., 1.) D3DDECLTYPE_FLOAT2 = 1, // 2D float expanded to (value, value, 0., 1.) D3DDECLTYPE_FLOAT3 = 2, // 3D float expanded to (value, value, value, 1.) D3DDECLTYPE_FLOAT4 = 3, // 4D float D3DDECLTYPE_D3DCOLOR = 4, // 4D packed unsigned bytes mapped to 0. to 1. range // Input is in D3DCOLOR format (ARGB) expanded to (R, G, B, A) D3DDECLTYPE_UBYTE4 = 5, // 4D unsigned byte D3DDECLTYPE_SHORT2 = 6, // 2D signed short expanded to (value, value, 0., 1.) D3DDECLTYPE_SHORT4 = 7, // 4D signed short // The following types are valid only with vertex shaders >= 2.0 D3DDECLTYPE_UBYTE4N = 8, // Each of 4 bytes is normalized by dividing to 255.0 D3DDECLTYPE_SHORT2N = 9, // 2D signed short normalized (v[0]/32767.0,v[1]/32767.0,0,1) D3DDECLTYPE_SHORT4N = 10, // 4D signed short normalized (v[0]/32767.0,v[1]/32767.0,v[2]/32767.0,v[3]/32767.0) D3DDECLTYPE_USHORT2N = 11, // 2D unsigned short normalized (v[0]/65535.0,v[1]/65535.0,0,1) D3DDECLTYPE_USHORT4N = 12, // 4D unsigned short normalized (v[0]/65535.0,v[1]/65535.0,v[2]/65535.0,v[3]/65535.0) D3DDECLTYPE_UDEC3 = 13, // 3D unsigned 10 10 10 format expanded to (value, value, value, 1) D3DDECLTYPE_DEC3N = 14, // 3D signed 10 10 10 format normalized and expanded to (v[0]/511.0, v[1]/511.0, v[2]/511.0, 1) D3DDECLTYPE_FLOAT16_2 = 15, // Two 16-bit floating point values, expanded to (value, value, 0, 1) D3DDECLTYPE_FLOAT16_4 = 16, // Four 16-bit floating point values D3DDECLTYPE_UNUSED = 17, // When the type field in a decl is unused. } D3DDECLTYPE; typedef struct _D3DVERTEXELEMENT9 { WORD Stream; // Stream index WORD Offset; // Offset in the stream in bytes BYTE Type; // Data type BYTE Method; // Processing method BYTE Usage; // Semantics BYTE UsageIndex; // Semantic index } D3DVERTEXELEMENT9, *LPD3DVERTEXELEMENT9; // This is used to initialize the last vertex element in a vertex declaration // array // // Maximum supported number of texture coordinate sets //--------------------------------------------------------------------- // Values for IDirect3DDevice9::SetStreamSourceFreq's Setting parameter //--------------------------------------------------------------------- //--------------------------------------------------------------------- // // The internal format of Pixel Shader (PS) & Vertex Shader (VS) // Instruction Tokens is defined in the Direct3D Device Driver Kit // //--------------------------------------------------------------------- // // Instruction Token Bit Definitions // typedef enum _D3DSHADER_INSTRUCTION_OPCODE_TYPE { D3DSIO_NOP = 0, D3DSIO_MOV , D3DSIO_ADD , D3DSIO_SUB , D3DSIO_MAD , D3DSIO_MUL , D3DSIO_RCP , D3DSIO_RSQ , D3DSIO_DP3 , D3DSIO_DP4 , D3DSIO_MIN , D3DSIO_MAX , D3DSIO_SLT , D3DSIO_SGE , D3DSIO_EXP , D3DSIO_LOG , D3DSIO_LIT , D3DSIO_DST , D3DSIO_LRP , D3DSIO_FRC , D3DSIO_M4x4 , D3DSIO_M4x3 , D3DSIO_M3x4 , D3DSIO_M3x3 , D3DSIO_M3x2 , D3DSIO_CALL , D3DSIO_CALLNZ , D3DSIO_LOOP , D3DSIO_RET , D3DSIO_ENDLOOP , D3DSIO_LABEL , D3DSIO_DCL , D3DSIO_POW , D3DSIO_CRS , D3DSIO_SGN , D3DSIO_ABS , D3DSIO_NRM , D3DSIO_SINCOS , D3DSIO_REP , D3DSIO_ENDREP , D3DSIO_IF , D3DSIO_IFC , D3DSIO_ELSE , D3DSIO_ENDIF , D3DSIO_BREAK , D3DSIO_BREAKC , D3DSIO_MOVA , D3DSIO_DEFB , D3DSIO_DEFI , D3DSIO_TEXCOORD = 64, D3DSIO_TEXKILL , D3DSIO_TEX , D3DSIO_TEXBEM , D3DSIO_TEXBEML , D3DSIO_TEXREG2AR , D3DSIO_TEXREG2GB , D3DSIO_TEXM3x2PAD , D3DSIO_TEXM3x2TEX , D3DSIO_TEXM3x3PAD , D3DSIO_TEXM3x3TEX , D3DSIO_RESERVED0 , D3DSIO_TEXM3x3SPEC , D3DSIO_TEXM3x3VSPEC , D3DSIO_EXPP , D3DSIO_LOGP , D3DSIO_CND , D3DSIO_DEF , D3DSIO_TEXREG2RGB , D3DSIO_TEXDP3TEX , D3DSIO_TEXM3x2DEPTH , D3DSIO_TEXDP3 , D3DSIO_TEXM3x3 , D3DSIO_TEXDEPTH , D3DSIO_CMP , D3DSIO_BEM , D3DSIO_DP2ADD , D3DSIO_DSX , D3DSIO_DSY , D3DSIO_TEXLDD , D3DSIO_SETP , D3DSIO_TEXLDL , D3DSIO_BREAKP , D3DSIO_PHASE = 0xFFFD, D3DSIO_COMMENT = 0xFFFE, D3DSIO_END = 0xFFFF, D3DSIO_FORCE_DWORD = 0x7fffffff, // force 32-bit size enum } D3DSHADER_INSTRUCTION_OPCODE_TYPE; //--------------------------------------------------------------------- // Use these constants with D3DSIO_SINCOS macro as SRC2, SRC3 // //--------------------------------------------------------------------- // Co-Issue Instruction Modifier - if set then this instruction is to be // issued in parallel with the previous instruction(s) for which this bit // is not set. // //--------------------------------------------------------------------- // Opcode specific controls // ps_2_0 texld controls // Comparison for dynamic conditional instruction opcodes (i.e. if, breakc) typedef enum _D3DSHADER_COMPARISON { // < = > D3DSPC_RESERVED0= 0, // 0 0 0 D3DSPC_GT = 1, // 0 0 1 D3DSPC_EQ = 2, // 0 1 0 D3DSPC_GE = 3, // 0 1 1 D3DSPC_LT = 4, // 1 0 0 D3DSPC_NE = 5, // 1 0 1 D3DSPC_LE = 6, // 1 1 0 D3DSPC_RESERVED1= 7 // 1 1 1 } D3DSHADER_COMPARISON; // Comparison is part of instruction opcode token: //--------------------------------------------------------------------- // Predication flags on instruction token //--------------------------------------------------------------------- // DCL Info Token Controls // For dcl info tokens requiring a semantic (usage + index) // DCL pixel shader sampler info token. typedef enum _D3DSAMPLER_TEXTURE_TYPE { D3DSTT_UNKNOWN = 0<<27, // uninitialized value D3DSTT_2D = 2<<27, // dcl_2d s# (for declaring a 2-D texture) D3DSTT_CUBE = 3<<27, // dcl_cube s# (for declaring a cube texture) D3DSTT_VOLUME = 4<<27, // dcl_volume s# (for declaring a volume texture) D3DSTT_FORCE_DWORD = 0x7fffffff, // force 32-bit size enum } D3DSAMPLER_TEXTURE_TYPE; //--------------------------------------------------------------------- // Parameter Token Bit Definitions // // destination parameter write mask // destination parameter modifiers // Bit masks for destination parameter modifiers // When the pixel center is not covered, sample // attribute or compute gradients/LOD // using multisample "centroid" location. // "Centroid" is some location within the covered // region of the pixel. // destination parameter // destination/source parameter register type typedef enum _D3DSHADER_PARAM_REGISTER_TYPE { D3DSPR_TEMP = 0, // Temporary Register File D3DSPR_INPUT = 1, // Input Register File D3DSPR_CONST = 2, // Constant Register File D3DSPR_ADDR = 3, // Address Register (VS) D3DSPR_TEXTURE = 3, // Texture Register File (PS) D3DSPR_RASTOUT = 4, // Rasterizer Register File D3DSPR_ATTROUT = 5, // Attribute Output Register File D3DSPR_TEXCRDOUT = 6, // Texture Coordinate Output Register File D3DSPR_OUTPUT = 6, // Output register file for VS3.0+ D3DSPR_CONSTINT = 7, // Constant Integer Vector Register File D3DSPR_COLOROUT = 8, // Color Output Register File D3DSPR_DEPTHOUT = 9, // Depth Output Register File D3DSPR_SAMPLER = 10, // Sampler State Register File D3DSPR_CONST2 = 11, // Constant Register File 2048 - 4095 D3DSPR_CONST3 = 12, // Constant Register File 4096 - 6143 D3DSPR_CONST4 = 13, // Constant Register File 6144 - 8191 D3DSPR_CONSTBOOL = 14, // Constant Boolean register file D3DSPR_LOOP = 15, // Loop counter register file D3DSPR_TEMPFLOAT16 = 16, // 16-bit float temp register file D3DSPR_MISCTYPE = 17, // Miscellaneous (single) registers. D3DSPR_LABEL = 18, // Label D3DSPR_PREDICATE = 19, // Predicate register D3DSPR_FORCE_DWORD = 0x7fffffff, // force 32-bit size enum } D3DSHADER_PARAM_REGISTER_TYPE; // The miscellaneous register file (D3DSPR_MISCTYPES) // contains register types for which there is only ever one // register (i.e. the register # is not needed). // Rather than use up additional register types for such // registers, they are defined // as particular offsets into the misc. register file: typedef enum _D3DSHADER_MISCTYPE_OFFSETS { D3DSMO_POSITION = 0, // Input position x,y,z,rhw (PS) D3DSMO_FACE = 1, // Floating point primitive area (PS) } D3DSHADER_MISCTYPE_OFFSETS; // Register offsets in the Rasterizer Register File // typedef enum _D3DVS_RASTOUT_OFFSETS { D3DSRO_POSITION = 0, D3DSRO_FOG, D3DSRO_POINT_SIZE, D3DSRO_FORCE_DWORD = 0x7fffffff, // force 32-bit size enum } D3DVS_RASTOUT_OFFSETS; // Source operand addressing modes typedef enum _D3DVS_ADDRESSMODE_TYPE { D3DVS_ADDRMODE_ABSOLUTE = (0 << 13), D3DVS_ADDRMODE_RELATIVE = (1 << 13), D3DVS_ADDRMODE_FORCE_DWORD = 0x7fffffff, // force 32-bit size enum } D3DVS_ADDRESSMODE_TYPE; typedef enum _D3DSHADER_ADDRESSMODE_TYPE { D3DSHADER_ADDRMODE_ABSOLUTE = (0 << 13), D3DSHADER_ADDRMODE_RELATIVE = (1 << 13), D3DSHADER_ADDRMODE_FORCE_DWORD = 0x7fffffff, // force 32-bit size enum } D3DSHADER_ADDRESSMODE_TYPE; // Source operand swizzle definitions // // The following bits define where to take component X from: // The following bits define where to take component Y from: // The following bits define where to take component Z from: // The following bits define where to take component W from: // Value when there is no swizzle (X is taken from X, Y is taken from Y, // Z is taken from Z, W is taken from W // // source parameter swizzle // pixel-shader swizzle ops // source parameter modifiers typedef enum _D3DSHADER_PARAM_SRCMOD_TYPE { D3DSPSM_NONE = 0<<24, // nop D3DSPSM_NEG = 1<<24, // negate D3DSPSM_BIAS = 2<<24, // bias D3DSPSM_BIASNEG = 3<<24, // bias and negate D3DSPSM_SIGN = 4<<24, // sign D3DSPSM_SIGNNEG = 5<<24, // sign and negate D3DSPSM_COMP = 6<<24, // complement D3DSPSM_X2 = 7<<24, // *2 D3DSPSM_X2NEG = 8<<24, // *2 and negate D3DSPSM_DZ = 9<<24, // divide through by z component D3DSPSM_DW = 10<<24, // divide through by w component D3DSPSM_ABS = 11<<24, // abs() D3DSPSM_ABSNEG = 12<<24, // -abs() D3DSPSM_NOT = 13<<24, // for predicate register: "!p0" D3DSPSM_FORCE_DWORD = 0x7fffffff, // force 32-bit size enum } D3DSHADER_PARAM_SRCMOD_TYPE; // pixel shader version token // vertex shader version token // extract major/minor from version cap // destination/source parameter register type // pixel/vertex shader end token //--------------------------------------------------------------------- // High order surfaces // typedef enum _D3DBASISTYPE { D3DBASIS_BEZIER = 0, D3DBASIS_BSPLINE = 1, D3DBASIS_CATMULL_ROM = 2, /* In D3D8 this used to be D3DBASIS_INTERPOLATE */ D3DBASIS_FORCE_DWORD = 0x7fffffff, } D3DBASISTYPE; typedef enum _D3DDEGREETYPE { D3DDEGREE_LINEAR = 1, D3DDEGREE_QUADRATIC = 2, D3DDEGREE_CUBIC = 3, D3DDEGREE_QUINTIC = 5, D3DDEGREE_FORCE_DWORD = 0x7fffffff, } D3DDEGREETYPE; typedef enum _D3DPATCHEDGESTYLE { D3DPATCHEDGE_DISCRETE = 0, D3DPATCHEDGE_CONTINUOUS = 1, D3DPATCHEDGE_FORCE_DWORD = 0x7fffffff, } D3DPATCHEDGESTYLE; typedef enum _D3DSTATEBLOCKTYPE { D3DSBT_ALL = 1, // capture all state D3DSBT_PIXELSTATE = 2, // capture pixel state D3DSBT_VERTEXSTATE = 3, // capture vertex state D3DSBT_FORCE_DWORD = 0x7fffffff, } D3DSTATEBLOCKTYPE; // The D3DVERTEXBLENDFLAGS type is used with D3DRS_VERTEXBLEND state. // typedef enum _D3DVERTEXBLENDFLAGS { D3DVBF_DISABLE = 0, // Disable vertex blending D3DVBF_1WEIGHTS = 1, // 2 matrix blending D3DVBF_2WEIGHTS = 2, // 3 matrix blending D3DVBF_3WEIGHTS = 3, // 4 matrix blending D3DVBF_TWEENING = 255, // blending using D3DRS_TWEENFACTOR D3DVBF_0WEIGHTS = 256, // one matrix is used with weight 1.0 D3DVBF_FORCE_DWORD = 0x7fffffff, // force 32-bit size enum } D3DVERTEXBLENDFLAGS; typedef enum _D3DTEXTURETRANSFORMFLAGS { D3DTTFF_DISABLE = 0, // texture coordinates are passed directly D3DTTFF_COUNT1 = 1, // rasterizer should expect 1-D texture coords D3DTTFF_COUNT2 = 2, // rasterizer should expect 2-D texture coords D3DTTFF_COUNT3 = 3, // rasterizer should expect 3-D texture coords D3DTTFF_COUNT4 = 4, // rasterizer should expect 4-D texture coords D3DTTFF_PROJECTED = 256, // texcoords to be divided by COUNTth element D3DTTFF_FORCE_DWORD = 0x7fffffff, } D3DTEXTURETRANSFORMFLAGS; // Macros to set texture coordinate format bits in the FVF id //--------------------------------------------------------------------- /* Direct3D9 Device types */ typedef enum _D3DDEVTYPE { D3DDEVTYPE_HAL = 1, D3DDEVTYPE_REF = 2, D3DDEVTYPE_SW = 3, D3DDEVTYPE_NULLREF = 4, D3DDEVTYPE_FORCE_DWORD = 0x7fffffff } D3DDEVTYPE; /* Multi-Sample buffer types */ typedef enum _D3DMULTISAMPLE_TYPE { D3DMULTISAMPLE_NONE = 0, D3DMULTISAMPLE_NONMASKABLE = 1, D3DMULTISAMPLE_2_SAMPLES = 2, D3DMULTISAMPLE_3_SAMPLES = 3, D3DMULTISAMPLE_4_SAMPLES = 4, D3DMULTISAMPLE_5_SAMPLES = 5, D3DMULTISAMPLE_6_SAMPLES = 6, D3DMULTISAMPLE_7_SAMPLES = 7, D3DMULTISAMPLE_8_SAMPLES = 8, D3DMULTISAMPLE_9_SAMPLES = 9, D3DMULTISAMPLE_10_SAMPLES = 10, D3DMULTISAMPLE_11_SAMPLES = 11, D3DMULTISAMPLE_12_SAMPLES = 12, D3DMULTISAMPLE_13_SAMPLES = 13, D3DMULTISAMPLE_14_SAMPLES = 14, D3DMULTISAMPLE_15_SAMPLES = 15, D3DMULTISAMPLE_16_SAMPLES = 16, D3DMULTISAMPLE_FORCE_DWORD = 0x7fffffff } D3DMULTISAMPLE_TYPE; /* Formats * Most of these names have the following convention: * A = Alpha * R = Red * G = Green * B = Blue * X = Unused Bits * P = Palette * L = Luminance * U = dU coordinate for BumpMap * V = dV coordinate for BumpMap * S = Stencil * D = Depth (e.g. Z or W buffer) * C = Computed from other channels (typically on certain read operations) * * Further, the order of the pieces are from MSB first; hence * D3DFMT_A8L8 indicates that the high byte of this two byte * format is alpha. * * D3DFMT_D16_LOCKABLE indicates: * - An integer 16-bit value. * - An app-lockable surface. * * D3DFMT_D32F_LOCKABLE indicates: * - An IEEE 754 floating-point value. * - An app-lockable surface. * * All Depth/Stencil formats except D3DFMT_D16_LOCKABLE and D3DFMT_D32F_LOCKABLE indicate: * - no particular bit ordering per pixel, and * - are not app lockable, and * - the driver is allowed to consume more than the indicated * number of bits per Depth channel (but not Stencil channel). */ #line 1324 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\d3d9types.h" typedef enum _D3DFORMAT { D3DFMT_UNKNOWN = 0, D3DFMT_R8G8B8 = 20, D3DFMT_A8R8G8B8 = 21, D3DFMT_X8R8G8B8 = 22, D3DFMT_R5G6B5 = 23, D3DFMT_X1R5G5B5 = 24, D3DFMT_A1R5G5B5 = 25, D3DFMT_A4R4G4B4 = 26, D3DFMT_R3G3B2 = 27, D3DFMT_A8 = 28, D3DFMT_A8R3G3B2 = 29, D3DFMT_X4R4G4B4 = 30, D3DFMT_A2B10G10R10 = 31, D3DFMT_A8B8G8R8 = 32, D3DFMT_X8B8G8R8 = 33, D3DFMT_G16R16 = 34, D3DFMT_A2R10G10B10 = 35, D3DFMT_A16B16G16R16 = 36, D3DFMT_A8P8 = 40, D3DFMT_P8 = 41, D3DFMT_L8 = 50, D3DFMT_A8L8 = 51, D3DFMT_A4L4 = 52, D3DFMT_V8U8 = 60, D3DFMT_L6V5U5 = 61, D3DFMT_X8L8V8U8 = 62, D3DFMT_Q8W8V8U8 = 63, D3DFMT_V16U16 = 64, D3DFMT_A2W10V10U10 = 67, D3DFMT_UYVY = ((DWORD)(BYTE)('U') | ((DWORD)(BYTE)('Y') << 8) | ((DWORD)(BYTE)('V') << 16) | ((DWORD)(BYTE)('Y') << 24 )), D3DFMT_R8G8_B8G8 = ((DWORD)(BYTE)('R') | ((DWORD)(BYTE)('G') << 8) | ((DWORD)(BYTE)('B') << 16) | ((DWORD)(BYTE)('G') << 24 )), D3DFMT_YUY2 = ((DWORD)(BYTE)('Y') | ((DWORD)(BYTE)('U') << 8) | ((DWORD)(BYTE)('Y') << 16) | ((DWORD)(BYTE)('2') << 24 )), D3DFMT_G8R8_G8B8 = ((DWORD)(BYTE)('G') | ((DWORD)(BYTE)('R') << 8) | ((DWORD)(BYTE)('G') << 16) | ((DWORD)(BYTE)('B') << 24 )), D3DFMT_DXT1 = ((DWORD)(BYTE)('D') | ((DWORD)(BYTE)('X') << 8) | ((DWORD)(BYTE)('T') << 16) | ((DWORD)(BYTE)('1') << 24 )), D3DFMT_DXT2 = ((DWORD)(BYTE)('D') | ((DWORD)(BYTE)('X') << 8) | ((DWORD)(BYTE)('T') << 16) | ((DWORD)(BYTE)('2') << 24 )), D3DFMT_DXT3 = ((DWORD)(BYTE)('D') | ((DWORD)(BYTE)('X') << 8) | ((DWORD)(BYTE)('T') << 16) | ((DWORD)(BYTE)('3') << 24 )), D3DFMT_DXT4 = ((DWORD)(BYTE)('D') | ((DWORD)(BYTE)('X') << 8) | ((DWORD)(BYTE)('T') << 16) | ((DWORD)(BYTE)('4') << 24 )), D3DFMT_DXT5 = ((DWORD)(BYTE)('D') | ((DWORD)(BYTE)('X') << 8) | ((DWORD)(BYTE)('T') << 16) | ((DWORD)(BYTE)('5') << 24 )), D3DFMT_D16_LOCKABLE = 70, D3DFMT_D32 = 71, D3DFMT_D15S1 = 73, D3DFMT_D24S8 = 75, D3DFMT_D24X8 = 77, D3DFMT_D24X4S4 = 79, D3DFMT_D16 = 80, D3DFMT_D32F_LOCKABLE = 82, D3DFMT_D24FS8 = 83, /* Z-Stencil formats valid for CPU access */ D3DFMT_D32_LOCKABLE = 84, D3DFMT_S8_LOCKABLE = 85, D3DFMT_L16 = 81, D3DFMT_VERTEXDATA =100, D3DFMT_INDEX16 =101, D3DFMT_INDEX32 =102, D3DFMT_Q16W16V16U16 =110, D3DFMT_MULTI2_ARGB8 = ((DWORD)(BYTE)('M') | ((DWORD)(BYTE)('E') << 8) | ((DWORD)(BYTE)('T') << 16) | ((DWORD)(BYTE)('1') << 24 )), // Floating point surface formats // s10e5 formats (16-bits per channel) D3DFMT_R16F = 111, D3DFMT_G16R16F = 112, D3DFMT_A16B16G16R16F = 113, // IEEE s23e8 formats (32-bits per channel) D3DFMT_R32F = 114, D3DFMT_G32R32F = 115, D3DFMT_A32B32G32R32F = 116, D3DFMT_CxV8U8 = 117, // Monochrome 1 bit per pixel format D3DFMT_A1 = 118, // Binary format indicating that the data has no inherent type D3DFMT_BINARYBUFFER = 199, D3DFMT_FORCE_DWORD =0x7fffffff } D3DFORMAT; /* Display Modes */ typedef struct _D3DDISPLAYMODE { UINT Width; UINT Height; UINT RefreshRate; D3DFORMAT Format; } D3DDISPLAYMODE; /* Creation Parameters */ typedef struct _D3DDEVICE_CREATION_PARAMETERS { UINT AdapterOrdinal; D3DDEVTYPE DeviceType; HWND hFocusWindow; DWORD BehaviorFlags; } D3DDEVICE_CREATION_PARAMETERS; /* SwapEffects */ typedef enum _D3DSWAPEFFECT { D3DSWAPEFFECT_DISCARD = 1, D3DSWAPEFFECT_FLIP = 2, D3DSWAPEFFECT_COPY = 3, D3DSWAPEFFECT_FORCE_DWORD = 0x7fffffff } D3DSWAPEFFECT; /* Pool types */ typedef enum _D3DPOOL { D3DPOOL_DEFAULT = 0, D3DPOOL_MANAGED = 1, D3DPOOL_SYSTEMMEM = 2, D3DPOOL_SCRATCH = 3, D3DPOOL_FORCE_DWORD = 0x7fffffff } D3DPOOL; /* RefreshRate pre-defines */ /* Resize Optional Parameters */ typedef struct _D3DPRESENT_PARAMETERS_ { UINT BackBufferWidth; UINT BackBufferHeight; D3DFORMAT BackBufferFormat; UINT BackBufferCount; D3DMULTISAMPLE_TYPE MultiSampleType; DWORD MultiSampleQuality; D3DSWAPEFFECT SwapEffect; HWND hDeviceWindow; BOOL Windowed; BOOL EnableAutoDepthStencil; D3DFORMAT AutoDepthStencilFormat; DWORD Flags; /* FullScreen_RefreshRateInHz must be zero for Windowed mode */ UINT FullScreen_RefreshRateInHz; UINT PresentationInterval; } D3DPRESENT_PARAMETERS; // Values for D3DPRESENT_PARAMETERS.Flags /* Gamma Ramp: Same as DX7 */ typedef struct _D3DGAMMARAMP { WORD red [256]; WORD green[256]; WORD blue [256]; } D3DGAMMARAMP; /* Back buffer types */ typedef enum _D3DBACKBUFFER_TYPE { D3DBACKBUFFER_TYPE_MONO = 0, D3DBACKBUFFER_TYPE_LEFT = 1, D3DBACKBUFFER_TYPE_RIGHT = 2, D3DBACKBUFFER_TYPE_FORCE_DWORD = 0x7fffffff } D3DBACKBUFFER_TYPE; /* Types */ typedef enum _D3DRESOURCETYPE { D3DRTYPE_SURFACE = 1, D3DRTYPE_VOLUME = 2, D3DRTYPE_TEXTURE = 3, D3DRTYPE_VOLUMETEXTURE = 4, D3DRTYPE_CUBETEXTURE = 5, D3DRTYPE_VERTEXBUFFER = 6, D3DRTYPE_INDEXBUFFER = 7, //if this changes, change _D3DDEVINFO_RESOURCEMANAGER definition D3DRTYPE_FORCE_DWORD = 0x7fffffff } D3DRESOURCETYPE; /* Usages */ // When passed to CheckDeviceFormat, D3DUSAGE_AUTOGENMIPMAP may return // D3DOK_NOAUTOGEN if the device doesn't support autogeneration for that format. // D3DOK_NOAUTOGEN is a success code, not a failure code... the SUCCEEDED and FAILED macros // will return true and false respectively for this code. // The following usages are valid only for querying CheckDeviceFormat /* Usages for Vertex/Index buffers */ /* CubeMap Face identifiers */ typedef enum _D3DCUBEMAP_FACES { D3DCUBEMAP_FACE_POSITIVE_X = 0, D3DCUBEMAP_FACE_NEGATIVE_X = 1, D3DCUBEMAP_FACE_POSITIVE_Y = 2, D3DCUBEMAP_FACE_NEGATIVE_Y = 3, D3DCUBEMAP_FACE_POSITIVE_Z = 4, D3DCUBEMAP_FACE_NEGATIVE_Z = 5, D3DCUBEMAP_FACE_FORCE_DWORD = 0x7fffffff } D3DCUBEMAP_FACES; /* Lock flags */ /* Vertex Buffer Description */ typedef struct _D3DVERTEXBUFFER_DESC { D3DFORMAT Format; D3DRESOURCETYPE Type; DWORD Usage; D3DPOOL Pool; UINT Size; DWORD FVF; } D3DVERTEXBUFFER_DESC; /* Index Buffer Description */ typedef struct _D3DINDEXBUFFER_DESC { D3DFORMAT Format; D3DRESOURCETYPE Type; DWORD Usage; D3DPOOL Pool; UINT Size; } D3DINDEXBUFFER_DESC; /* Surface Description */ typedef struct _D3DSURFACE_DESC { D3DFORMAT Format; D3DRESOURCETYPE Type; DWORD Usage; D3DPOOL Pool; D3DMULTISAMPLE_TYPE MultiSampleType; DWORD MultiSampleQuality; UINT Width; UINT Height; } D3DSURFACE_DESC; typedef struct _D3DVOLUME_DESC { D3DFORMAT Format; D3DRESOURCETYPE Type; DWORD Usage; D3DPOOL Pool; UINT Width; UINT Height; UINT Depth; } D3DVOLUME_DESC; /* Structure for LockRect */ typedef struct _D3DLOCKED_RECT { INT Pitch; void* pBits; } D3DLOCKED_RECT; /* Structures for LockBox */ typedef struct _D3DBOX { UINT Left; UINT Top; UINT Right; UINT Bottom; UINT Front; UINT Back; } D3DBOX; typedef struct _D3DLOCKED_BOX { INT RowPitch; INT SlicePitch; void* pBits; } D3DLOCKED_BOX; /* Structures for LockRange */ typedef struct _D3DRANGE { UINT Offset; UINT Size; } D3DRANGE; /* Structures for high order primitives */ typedef struct _D3DRECTPATCH_INFO { UINT StartVertexOffsetWidth; UINT StartVertexOffsetHeight; UINT Width; UINT Height; UINT Stride; D3DBASISTYPE Basis; D3DDEGREETYPE Degree; } D3DRECTPATCH_INFO; typedef struct _D3DTRIPATCH_INFO { UINT StartVertexOffset; UINT NumVertices; D3DBASISTYPE Basis; D3DDEGREETYPE Degree; } D3DTRIPATCH_INFO; /* Adapter Identifier */ typedef struct _D3DADAPTER_IDENTIFIER9 { char Driver[512]; char Description[512]; char DeviceName[32]; /* Device name for GDI (ex. \\.\DISPLAY1) */ LARGE_INTEGER DriverVersion; /* Defined for 32 bit components */ #line 1729 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\d3d9types.h" DWORD VendorId; DWORD DeviceId; DWORD SubSysId; DWORD Revision; GUID DeviceIdentifier; DWORD WHQLLevel; } D3DADAPTER_IDENTIFIER9; /* Raster Status structure returned by GetRasterStatus */ typedef struct _D3DRASTER_STATUS { BOOL InVBlank; UINT ScanLine; } D3DRASTER_STATUS; /* Debug monitor tokens (DEBUG only) Note that if D3DRS_DEBUGMONITORTOKEN is set, the call is treated as passing a token to the debug monitor. For example, if, after passing D3DDMT_ENABLE/DISABLE to D3DRS_DEBUGMONITORTOKEN other token values are passed in, the enabled/disabled state of the debug monitor will still persist. The debug monitor defaults to enabled. Calling GetRenderState on D3DRS_DEBUGMONITORTOKEN is not of any use. */ typedef enum _D3DDEBUGMONITORTOKENS { D3DDMT_ENABLE = 0, // enable debug monitor D3DDMT_DISABLE = 1, // disable debug monitor D3DDMT_FORCE_DWORD = 0x7fffffff, } D3DDEBUGMONITORTOKENS; // Async feedback typedef enum _D3DQUERYTYPE { D3DQUERYTYPE_VCACHE = 4, /* D3DISSUE_END */ D3DQUERYTYPE_RESOURCEMANAGER = 5, /* D3DISSUE_END */ D3DQUERYTYPE_VERTEXSTATS = 6, /* D3DISSUE_END */ D3DQUERYTYPE_EVENT = 8, /* D3DISSUE_END */ D3DQUERYTYPE_OCCLUSION = 9, /* D3DISSUE_BEGIN, D3DISSUE_END */ D3DQUERYTYPE_TIMESTAMP = 10, /* D3DISSUE_END */ D3DQUERYTYPE_TIMESTAMPDISJOINT = 11, /* D3DISSUE_BEGIN, D3DISSUE_END */ D3DQUERYTYPE_TIMESTAMPFREQ = 12, /* D3DISSUE_END */ D3DQUERYTYPE_PIPELINETIMINGS = 13, /* D3DISSUE_BEGIN, D3DISSUE_END */ D3DQUERYTYPE_INTERFACETIMINGS = 14, /* D3DISSUE_BEGIN, D3DISSUE_END */ D3DQUERYTYPE_VERTEXTIMINGS = 15, /* D3DISSUE_BEGIN, D3DISSUE_END */ D3DQUERYTYPE_PIXELTIMINGS = 16, /* D3DISSUE_BEGIN, D3DISSUE_END */ D3DQUERYTYPE_BANDWIDTHTIMINGS = 17, /* D3DISSUE_BEGIN, D3DISSUE_END */ D3DQUERYTYPE_CACHEUTILIZATION = 18, /* D3DISSUE_BEGIN, D3DISSUE_END */ } D3DQUERYTYPE; // Flags field for Issue // Flags field for GetData typedef struct _D3DRESOURCESTATS { // Data collected since last Present() BOOL bThrashing; /* indicates if thrashing */ DWORD ApproxBytesDownloaded; /* Approximate number of bytes downloaded by resource manager */ DWORD NumEvicts; /* number of objects evicted */ DWORD NumVidCreates; /* number of objects created in video memory */ DWORD LastPri; /* priority of last object evicted */ DWORD NumUsed; /* number of objects set to the device */ DWORD NumUsedInVidMem; /* number of objects set to the device, which are already in video memory */ // Persistent data DWORD WorkingSet; /* number of objects in video memory */ DWORD WorkingSetBytes; /* number of bytes in video memory */ DWORD TotalManaged; /* total number of managed objects */ DWORD TotalBytes; /* total number of bytes of managed objects */ } D3DRESOURCESTATS; typedef struct _D3DDEVINFO_RESOURCEMANAGER { D3DRESOURCESTATS stats[(D3DRTYPE_INDEXBUFFER+1)]; #line 1823 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\d3d9types.h" } D3DDEVINFO_RESOURCEMANAGER, *LPD3DDEVINFO_RESOURCEMANAGER; typedef struct _D3DDEVINFO_D3DVERTEXSTATS { DWORD NumRenderedTriangles; /* total number of triangles that are not clipped in this frame */ DWORD NumExtraClippingTriangles; /* Number of new triangles generated by clipping */ } D3DDEVINFO_D3DVERTEXSTATS, *LPD3DDEVINFO_D3DVERTEXSTATS; typedef struct _D3DDEVINFO_VCACHE { DWORD Pattern; /* bit pattern, return value must be FOUR_CC('C', 'A', 'C', 'H') */ DWORD OptMethod; /* optimization method 0 means longest strips, 1 means vertex cache based */ DWORD CacheSize; /* cache size to optimize for (only required if type is 1) */ DWORD MagicNumber; /* used to determine when to restart strips (only required if type is 1)*/ } D3DDEVINFO_VCACHE, *LPD3DDEVINFO_VCACHE; typedef struct _D3DDEVINFO_D3D9PIPELINETIMINGS { FLOAT VertexProcessingTimePercent; FLOAT PixelProcessingTimePercent; FLOAT OtherGPUProcessingTimePercent; FLOAT GPUIdleTimePercent; } D3DDEVINFO_D3D9PIPELINETIMINGS; typedef struct _D3DDEVINFO_D3D9INTERFACETIMINGS { FLOAT WaitingForGPUToUseApplicationResourceTimePercent; FLOAT WaitingForGPUToAcceptMoreCommandsTimePercent; FLOAT WaitingForGPUToStayWithinLatencyTimePercent; FLOAT WaitingForGPUExclusiveResourceTimePercent; FLOAT WaitingForGPUOtherTimePercent; } D3DDEVINFO_D3D9INTERFACETIMINGS; typedef struct _D3DDEVINFO_D3D9STAGETIMINGS { FLOAT MemoryProcessingPercent; FLOAT ComputationProcessingPercent; } D3DDEVINFO_D3D9STAGETIMINGS; typedef struct _D3DDEVINFO_D3D9BANDWIDTHTIMINGS { FLOAT MaxBandwidthUtilized; FLOAT FrontEndUploadMemoryUtilizedPercent; FLOAT VertexRateUtilizedPercent; FLOAT TriangleSetupRateUtilizedPercent; FLOAT FillRateUtilizedPercent; } D3DDEVINFO_D3D9BANDWIDTHTIMINGS; typedef struct _D3DDEVINFO_D3D9CACHEUTILIZATION { FLOAT TextureCacheHitRate; // Percentage of cache hits FLOAT PostTransformVertexCacheHitRate; } D3DDEVINFO_D3D9CACHEUTILIZATION; typedef enum _D3DCOMPOSERECTSOP{ D3DCOMPOSERECTS_COPY = 1, D3DCOMPOSERECTS_OR = 2, D3DCOMPOSERECTS_AND = 3, D3DCOMPOSERECTS_NEG = 4, D3DCOMPOSERECTS_FORCE_DWORD = 0x7fffffff, /* force 32-bit size enum */ } D3DCOMPOSERECTSOP; typedef struct _D3DCOMPOSERECTDESC { USHORT X, Y; // Top-left coordinates of a rect in the source surface USHORT Width, Height; // Dimensions of the rect } D3DCOMPOSERECTDESC; typedef struct _D3DCOMPOSERECTDESTINATION { USHORT SrcRectIndex; // Index of D3DCOMPOSERECTDESC USHORT Reserved; // For alignment SHORT X, Y; // Top-left coordinates of the rect in the destination surface } D3DCOMPOSERECTDESTINATION; typedef struct _D3DPRESENTSTATS { UINT PresentCount; UINT PresentRefreshCount; UINT SyncRefreshCount; LARGE_INTEGER SyncQPCTime; LARGE_INTEGER SyncGPUTime; } D3DPRESENTSTATS; typedef enum D3DSCANLINEORDERING { D3DSCANLINEORDERING_UNKNOWN = 0, D3DSCANLINEORDERING_PROGRESSIVE = 1, D3DSCANLINEORDERING_INTERLACED = 2, } D3DSCANLINEORDERING; typedef struct D3DDISPLAYMODEEX { UINT Size; UINT Width; UINT Height; UINT RefreshRate; D3DFORMAT Format; D3DSCANLINEORDERING ScanLineOrdering; } D3DDISPLAYMODEEX; typedef struct D3DDISPLAYMODEFILTER { UINT Size; D3DFORMAT Format; D3DSCANLINEORDERING ScanLineOrdering; } D3DDISPLAYMODEFILTER; typedef enum D3DDISPLAYROTATION { D3DDISPLAYROTATION_IDENTITY = 1, // No rotation. D3DDISPLAYROTATION_90 = 2, // Rotated 90 degrees. D3DDISPLAYROTATION_180 = 3, // Rotated 180 degrees. D3DDISPLAYROTATION_270 = 4 // Rotated 270 degrees. } D3DDISPLAYROTATION; /* For use in ID3DResource9::SetPriority calls */ #pragma pack() #pragma warning(pop) #line 1963 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\d3d9types.h" #line 1965 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\d3d9types.h" #line 1966 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\d3d9types.h" #line 233 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" #line 1 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\d3d9caps.h" /*==========================================================================; * * Copyright (C) Microsoft Corporation. All Rights Reserved. * * File: d3d9caps.h * Content: Direct3D capabilities include file * ***************************************************************************/ // include this file content only if compiling for DX9 interfaces #pragma pack(4) #line 23 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\d3d9caps.h" typedef struct _D3DVSHADERCAPS2_0 { DWORD Caps; INT DynamicFlowControlDepth; INT NumTemps; INT StaticFlowControlDepth; } D3DVSHADERCAPS2_0; typedef struct _D3DPSHADERCAPS2_0 { DWORD Caps; INT DynamicFlowControlDepth; INT NumTemps; INT StaticFlowControlDepth; INT NumInstructionSlots; } D3DPSHADERCAPS2_0; typedef struct _D3DCAPS9 { /* Device Info */ D3DDEVTYPE DeviceType; UINT AdapterOrdinal; /* Caps from DX7 Draw */ DWORD Caps; DWORD Caps2; DWORD Caps3; DWORD PresentationIntervals; /* Cursor Caps */ DWORD CursorCaps; /* 3D Device Caps */ DWORD DevCaps; DWORD PrimitiveMiscCaps; DWORD RasterCaps; DWORD ZCmpCaps; DWORD SrcBlendCaps; DWORD DestBlendCaps; DWORD AlphaCmpCaps; DWORD ShadeCaps; DWORD TextureCaps; DWORD TextureFilterCaps; // D3DPTFILTERCAPS for IDirect3DTexture9's DWORD CubeTextureFilterCaps; // D3DPTFILTERCAPS for IDirect3DCubeTexture9's DWORD VolumeTextureFilterCaps; // D3DPTFILTERCAPS for IDirect3DVolumeTexture9's DWORD TextureAddressCaps; // D3DPTADDRESSCAPS for IDirect3DTexture9's DWORD VolumeTextureAddressCaps; // D3DPTADDRESSCAPS for IDirect3DVolumeTexture9's DWORD LineCaps; // D3DLINECAPS DWORD MaxTextureWidth, MaxTextureHeight; DWORD MaxVolumeExtent; DWORD MaxTextureRepeat; DWORD MaxTextureAspectRatio; DWORD MaxAnisotropy; float MaxVertexW; float GuardBandLeft; float GuardBandTop; float GuardBandRight; float GuardBandBottom; float ExtentsAdjust; DWORD StencilCaps; DWORD FVFCaps; DWORD TextureOpCaps; DWORD MaxTextureBlendStages; DWORD MaxSimultaneousTextures; DWORD VertexProcessingCaps; DWORD MaxActiveLights; DWORD MaxUserClipPlanes; DWORD MaxVertexBlendMatrices; DWORD MaxVertexBlendMatrixIndex; float MaxPointSize; DWORD MaxPrimitiveCount; // max number of primitives per DrawPrimitive call DWORD MaxVertexIndex; DWORD MaxStreams; DWORD MaxStreamStride; // max stride for SetStreamSource DWORD VertexShaderVersion; DWORD MaxVertexShaderConst; // number of vertex shader constant registers DWORD PixelShaderVersion; float PixelShader1xMaxValue; // max value storable in registers of ps.1.x shaders // Here are the DX9 specific ones DWORD DevCaps2; float MaxNpatchTessellationLevel; DWORD Reserved5; UINT MasterAdapterOrdinal; // ordinal of master adaptor for adapter group UINT AdapterOrdinalInGroup; // ordinal inside the adapter group UINT NumberOfAdaptersInGroup; // number of adapters in this adapter group (only if master) DWORD DeclTypes; // Data types, supported in vertex declarations DWORD NumSimultaneousRTs; // Will be at least 1 DWORD StretchRectFilterCaps; // Filter caps supported by StretchRect D3DVSHADERCAPS2_0 VS20Caps; D3DPSHADERCAPS2_0 PS20Caps; DWORD VertexTextureFilterCaps; // D3DPTFILTERCAPS for IDirect3DTexture9's for texture, used in vertex shaders DWORD MaxVShaderInstructionsExecuted; // maximum number of vertex shader instructions that can be executed DWORD MaxPShaderInstructionsExecuted; // maximum number of pixel shader instructions that can be executed DWORD MaxVertexShader30InstructionSlots; DWORD MaxPixelShader30InstructionSlots; } D3DCAPS9; // // BIT DEFINES FOR D3DCAPS9 DWORD MEMBERS // // // Caps // // // Caps2 // // // Caps3 // // Indicates that the device can respect the ALPHABLENDENABLE render state // when fullscreen while using the FLIP or DISCARD swap effect. // COPY and COPYVSYNC swap effects work whether or not this flag is set. // Indicates that the device can perform a gamma correction from // a windowed back buffer containing linear content to the sRGB desktop. // // PresentationIntervals // // // CursorCaps // // Driver supports HW color cursor in at least hi-res modes(height >=400) // Driver supports HW cursor also in low-res modes(height < 400) // // DevCaps // // // PrimitiveMiscCaps // // // LineCaps // // // RasterCaps // // // ZCmpCaps, AlphaCmpCaps // // // SourceBlendCaps, DestBlendCaps // // // ShadeCaps // // // TextureCaps // // Device can use non-POW2 textures if: // 1) D3DTEXTURE_ADDRESS is set to CLAMP for this texture's stage // 2) D3DRS_WRAP(N) is zero for this texture's coordinates // 3) mip mapping is not enabled (use magnification filter only) // // TextureFilterCaps, StretchRectFilterCaps // // // TextureAddressCaps // // // StencilCaps // // // TextureOpCaps // // // FVFCaps // // // VertexProcessingCaps // // // DevCaps2 // // // DeclTypes // #pragma pack() #line 480 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\d3d9caps.h" #line 481 "c:\\program files\\microsoft sdks\\windows\\v6.0\\include\\d3d9caps.h" #line 234 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" extern "C" { #line 239 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" /* * DLL Function for creating a Direct3D9 object. This object supports * enumeration and allows the creation of Direct3DDevice9 objects. * Pass the value of the constant D3D_SDK_VERSION to this function, so * that the run-time can validate that your application was compiled * against the right headers. */ IDirect3D9 * __stdcall Direct3DCreate9(UINT SDKVersion); HRESULT __stdcall Direct3DCreate9Ex(UINT SDKVersion, IDirect3D9Ex**); /* * Stubs for graphics profiling. */ int __stdcall D3DPERF_BeginEvent( D3DCOLOR col, LPCWSTR wszName ); int __stdcall D3DPERF_EndEvent( void ); void __stdcall D3DPERF_SetMarker( D3DCOLOR col, LPCWSTR wszName ); void __stdcall D3DPERF_SetRegion( D3DCOLOR col, LPCWSTR wszName ); BOOL __stdcall D3DPERF_QueryRepeatFrame( void ); void __stdcall D3DPERF_SetOptions( DWORD dwOptions ); DWORD __stdcall D3DPERF_GetStatus( void ); /* * Direct3D interfaces */ struct __declspec(novtable) IDirect3D9 : public IUnknown { /*** IUnknown methods ***/ virtual __declspec(nothrow) HRESULT __stdcall QueryInterface( const IID & riid, void** ppvObj) = 0; virtual __declspec(nothrow) ULONG __stdcall AddRef(void) = 0; virtual __declspec(nothrow) ULONG __stdcall Release(void) = 0; /*** IDirect3D9 methods ***/ virtual __declspec(nothrow) HRESULT __stdcall RegisterSoftwareDevice( void* pInitializeFunction) = 0; virtual __declspec(nothrow) UINT __stdcall GetAdapterCount(void) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetAdapterIdentifier( UINT Adapter,DWORD Flags,D3DADAPTER_IDENTIFIER9* pIdentifier) = 0; virtual __declspec(nothrow) UINT __stdcall GetAdapterModeCount( UINT Adapter,D3DFORMAT Format) = 0; virtual __declspec(nothrow) HRESULT __stdcall EnumAdapterModes( UINT Adapter,D3DFORMAT Format,UINT Mode,D3DDISPLAYMODE* pMode) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetAdapterDisplayMode( UINT Adapter,D3DDISPLAYMODE* pMode) = 0; virtual __declspec(nothrow) HRESULT __stdcall CheckDeviceType( UINT Adapter,D3DDEVTYPE DevType,D3DFORMAT AdapterFormat,D3DFORMAT BackBufferFormat,BOOL bWindowed) = 0; virtual __declspec(nothrow) HRESULT __stdcall CheckDeviceFormat( UINT Adapter,D3DDEVTYPE DeviceType,D3DFORMAT AdapterFormat,DWORD Usage,D3DRESOURCETYPE RType,D3DFORMAT CheckFormat) = 0; virtual __declspec(nothrow) HRESULT __stdcall CheckDeviceMultiSampleType( UINT Adapter,D3DDEVTYPE DeviceType,D3DFORMAT SurfaceFormat,BOOL Windowed,D3DMULTISAMPLE_TYPE MultiSampleType,DWORD* pQualityLevels) = 0; virtual __declspec(nothrow) HRESULT __stdcall CheckDepthStencilMatch( UINT Adapter,D3DDEVTYPE DeviceType,D3DFORMAT AdapterFormat,D3DFORMAT RenderTargetFormat,D3DFORMAT DepthStencilFormat) = 0; virtual __declspec(nothrow) HRESULT __stdcall CheckDeviceFormatConversion( UINT Adapter,D3DDEVTYPE DeviceType,D3DFORMAT SourceFormat,D3DFORMAT TargetFormat) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetDeviceCaps( UINT Adapter,D3DDEVTYPE DeviceType,D3DCAPS9* pCaps) = 0; virtual __declspec(nothrow) HMONITOR __stdcall GetAdapterMonitor( UINT Adapter) = 0; virtual __declspec(nothrow) HRESULT __stdcall CreateDevice( UINT Adapter,D3DDEVTYPE DeviceType,HWND hFocusWindow,DWORD BehaviorFlags,D3DPRESENT_PARAMETERS* pPresentationParameters,IDirect3DDevice9** ppReturnedDeviceInterface) = 0; LPCWSTR Version; #line 302 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" }; typedef struct IDirect3D9 *LPDIRECT3D9, *PDIRECT3D9; #line 325 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" #line 343 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" struct __declspec(novtable) IDirect3D9Ex : public IDirect3D9 { /*** IUnknown methods ***/ virtual __declspec(nothrow) HRESULT __stdcall QueryInterface( const IID & riid, void** ppvObj) = 0; virtual __declspec(nothrow) ULONG __stdcall AddRef(void) = 0; virtual __declspec(nothrow) ULONG __stdcall Release(void) = 0; /*** IDirect3D9 methods ***/ virtual __declspec(nothrow) UINT __stdcall GetAdapterCount(void) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetAdapterIdentifier( UINT Adapter,DWORD Flags,D3DADAPTER_IDENTIFIER9* pIdentifier) = 0; virtual __declspec(nothrow) UINT __stdcall GetAdapterModeCount( UINT Adapter,D3DFORMAT Format) = 0; virtual __declspec(nothrow) HRESULT __stdcall EnumAdapterModes( UINT Adapter,D3DFORMAT Format,UINT Mode,D3DDISPLAYMODE* pMode) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetAdapterDisplayMode( UINT Adapter,D3DDISPLAYMODE* pMode) = 0; virtual __declspec(nothrow) HRESULT __stdcall CheckDeviceType( UINT Adapter,D3DDEVTYPE DevType,D3DFORMAT AdapterFormat,D3DFORMAT BackBufferFormat,BOOL bWindowed) = 0; virtual __declspec(nothrow) HRESULT __stdcall CheckDeviceFormat( UINT Adapter,D3DDEVTYPE DeviceType,D3DFORMAT AdapterFormat,DWORD Usage,D3DRESOURCETYPE RType,D3DFORMAT CheckFormat) = 0; virtual __declspec(nothrow) HRESULT __stdcall CheckDeviceMultiSampleType( UINT Adapter,D3DDEVTYPE DeviceType,D3DFORMAT SurfaceFormat,BOOL Windowed,D3DMULTISAMPLE_TYPE MultiSampleType,DWORD* pQualityLevels) = 0; virtual __declspec(nothrow) HRESULT __stdcall CheckDepthStencilMatch( UINT Adapter,D3DDEVTYPE DeviceType,D3DFORMAT AdapterFormat,D3DFORMAT RenderTargetFormat,D3DFORMAT DepthStencilFormat) = 0; virtual __declspec(nothrow) HRESULT __stdcall CheckDeviceFormatConversion( UINT Adapter,D3DDEVTYPE DeviceType,D3DFORMAT SourceFormat,D3DFORMAT TargetFormat) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetDeviceCaps( UINT Adapter,D3DDEVTYPE DeviceType,D3DCAPS9* pCaps) = 0; virtual __declspec(nothrow) HMONITOR __stdcall GetAdapterMonitor( UINT Adapter) = 0; virtual __declspec(nothrow) HRESULT __stdcall CreateDevice( UINT Adapter,D3DDEVTYPE DeviceType,HWND hFocusWindow,DWORD BehaviorFlags,D3DPRESENT_PARAMETERS* pPresentationParameters,IDirect3DDevice9** ppReturnedDeviceInterface) = 0; virtual __declspec(nothrow) UINT __stdcall GetAdapterModeCountEx( UINT Adapter,const D3DDISPLAYMODEFILTER* pFilter ) = 0; virtual __declspec(nothrow) HRESULT __stdcall EnumAdapterModesEx( UINT Adapter,const D3DDISPLAYMODEFILTER* pFilter,UINT Mode,D3DDISPLAYMODEEX* pMode) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetAdapterDisplayModeEx( UINT Adapter,D3DDISPLAYMODEEX* pMode,D3DDISPLAYROTATION* pRotation) = 0; virtual __declspec(nothrow) HRESULT __stdcall CreateDeviceEx( UINT Adapter,D3DDEVTYPE DeviceType,HWND hFocusWindow,DWORD BehaviorFlags,D3DPRESENT_PARAMETERS* pPresentationParameters,D3DDISPLAYMODEEX* pFullscreenDisplayMode,IDirect3DDevice9Ex** ppReturnedDeviceInterface) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetAdapterLUID( UINT Adapter,LUID * pLUID) = 0; }; typedef struct IDirect3D9Ex *LPDIRECT3D9EX, *PDIRECT3D9EX; #line 403 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" #line 425 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" /* SwapChain */ struct __declspec(novtable) IDirect3DDevice9 : public IUnknown { /*** IUnknown methods ***/ virtual __declspec(nothrow) HRESULT __stdcall QueryInterface( const IID & riid, void** ppvObj) = 0; virtual __declspec(nothrow) ULONG __stdcall AddRef(void) = 0; virtual __declspec(nothrow) ULONG __stdcall Release(void) = 0; /*** IDirect3DDevice9 methods ***/ virtual __declspec(nothrow) HRESULT __stdcall TestCooperativeLevel(void) = 0; virtual __declspec(nothrow) UINT __stdcall GetAvailableTextureMem(void) = 0; virtual __declspec(nothrow) HRESULT __stdcall EvictManagedResources(void) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetDirect3D( IDirect3D9** ppD3D9) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetDeviceCaps( D3DCAPS9* pCaps) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetDisplayMode( UINT iSwapChain,D3DDISPLAYMODE* pMode) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetCreationParameters( D3DDEVICE_CREATION_PARAMETERS *pParameters) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetCursorProperties( UINT XHotSpot,UINT YHotSpot,IDirect3DSurface9* pCursorBitmap) = 0; virtual __declspec(nothrow) void __stdcall SetCursorPosition( int X,int Y,DWORD Flags) = 0; virtual __declspec(nothrow) BOOL __stdcall ShowCursor( BOOL bShow) = 0; virtual __declspec(nothrow) HRESULT __stdcall CreateAdditionalSwapChain( D3DPRESENT_PARAMETERS* pPresentationParameters,IDirect3DSwapChain9** pSwapChain) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetSwapChain( UINT iSwapChain,IDirect3DSwapChain9** pSwapChain) = 0; virtual __declspec(nothrow) UINT __stdcall GetNumberOfSwapChains(void) = 0; virtual __declspec(nothrow) HRESULT __stdcall Reset( D3DPRESENT_PARAMETERS* pPresentationParameters) = 0; virtual __declspec(nothrow) HRESULT __stdcall Present( const RECT* pSourceRect,const RECT* pDestRect,HWND hDestWindowOverride,const RGNDATA* pDirtyRegion) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetBackBuffer( UINT iSwapChain,UINT iBackBuffer,D3DBACKBUFFER_TYPE Type,IDirect3DSurface9** ppBackBuffer) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetRasterStatus( UINT iSwapChain,D3DRASTER_STATUS* pRasterStatus) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetDialogBoxMode( BOOL bEnableDialogs) = 0; virtual __declspec(nothrow) void __stdcall SetGammaRamp( UINT iSwapChain,DWORD Flags,const D3DGAMMARAMP* pRamp) = 0; virtual __declspec(nothrow) void __stdcall GetGammaRamp( UINT iSwapChain,D3DGAMMARAMP* pRamp) = 0; virtual __declspec(nothrow) HRESULT __stdcall CreateTexture( UINT Width,UINT Height,UINT Levels,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DTexture9** ppTexture,HANDLE* pSharedHandle) = 0; virtual __declspec(nothrow) HRESULT __stdcall CreateVolumeTexture( UINT Width,UINT Height,UINT Depth,UINT Levels,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DVolumeTexture9** ppVolumeTexture,HANDLE* pSharedHandle) = 0; virtual __declspec(nothrow) HRESULT __stdcall CreateCubeTexture( UINT EdgeLength,UINT Levels,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DCubeTexture9** ppCubeTexture,HANDLE* pSharedHandle) = 0; virtual __declspec(nothrow) HRESULT __stdcall CreateVertexBuffer( UINT Length,DWORD Usage,DWORD FVF,D3DPOOL Pool,IDirect3DVertexBuffer9** ppVertexBuffer,HANDLE* pSharedHandle) = 0; virtual __declspec(nothrow) HRESULT __stdcall CreateIndexBuffer( UINT Length,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DIndexBuffer9** ppIndexBuffer,HANDLE* pSharedHandle) = 0; virtual __declspec(nothrow) HRESULT __stdcall CreateRenderTarget( UINT Width,UINT Height,D3DFORMAT Format,D3DMULTISAMPLE_TYPE MultiSample,DWORD MultisampleQuality,BOOL Lockable,IDirect3DSurface9** ppSurface,HANDLE* pSharedHandle) = 0; virtual __declspec(nothrow) HRESULT __stdcall CreateDepthStencilSurface( UINT Width,UINT Height,D3DFORMAT Format,D3DMULTISAMPLE_TYPE MultiSample,DWORD MultisampleQuality,BOOL Discard,IDirect3DSurface9** ppSurface,HANDLE* pSharedHandle) = 0; virtual __declspec(nothrow) HRESULT __stdcall UpdateSurface( IDirect3DSurface9* pSourceSurface,const RECT* pSourceRect,IDirect3DSurface9* pDestinationSurface,const POINT* pDestPoint) = 0; virtual __declspec(nothrow) HRESULT __stdcall UpdateTexture( IDirect3DBaseTexture9* pSourceTexture,IDirect3DBaseTexture9* pDestinationTexture) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetRenderTargetData( IDirect3DSurface9* pRenderTarget,IDirect3DSurface9* pDestSurface) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetFrontBufferData( UINT iSwapChain,IDirect3DSurface9* pDestSurface) = 0; virtual __declspec(nothrow) HRESULT __stdcall StretchRect( IDirect3DSurface9* pSourceSurface,const RECT* pSourceRect,IDirect3DSurface9* pDestSurface,const RECT* pDestRect,D3DTEXTUREFILTERTYPE Filter) = 0; virtual __declspec(nothrow) HRESULT __stdcall ColorFill( IDirect3DSurface9* pSurface,const RECT* pRect,D3DCOLOR color) = 0; virtual __declspec(nothrow) HRESULT __stdcall CreateOffscreenPlainSurface( UINT Width,UINT Height,D3DFORMAT Format,D3DPOOL Pool,IDirect3DSurface9** ppSurface,HANDLE* pSharedHandle) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetRenderTarget( DWORD RenderTargetIndex,IDirect3DSurface9* pRenderTarget) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetRenderTarget( DWORD RenderTargetIndex,IDirect3DSurface9** ppRenderTarget) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetDepthStencilSurface( IDirect3DSurface9* pNewZStencil) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetDepthStencilSurface( IDirect3DSurface9** ppZStencilSurface) = 0; virtual __declspec(nothrow) HRESULT __stdcall BeginScene(void) = 0; virtual __declspec(nothrow) HRESULT __stdcall EndScene(void) = 0; virtual __declspec(nothrow) HRESULT __stdcall Clear( DWORD Count,const D3DRECT* pRects,DWORD Flags,D3DCOLOR Color,float Z,DWORD Stencil) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetTransform( D3DTRANSFORMSTATETYPE State,const D3DMATRIX* pMatrix) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetTransform( D3DTRANSFORMSTATETYPE State,D3DMATRIX* pMatrix) = 0; virtual __declspec(nothrow) HRESULT __stdcall MultiplyTransform( D3DTRANSFORMSTATETYPE,const D3DMATRIX*) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetViewport( const D3DVIEWPORT9* pViewport) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetViewport( D3DVIEWPORT9* pViewport) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetMaterial( const D3DMATERIAL9* pMaterial) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetMaterial( D3DMATERIAL9* pMaterial) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetLight( DWORD Index,const D3DLIGHT9*) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetLight( DWORD Index,D3DLIGHT9*) = 0; virtual __declspec(nothrow) HRESULT __stdcall LightEnable( DWORD Index,BOOL Enable) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetLightEnable( DWORD Index,BOOL* pEnable) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetClipPlane( DWORD Index,const float* pPlane) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetClipPlane( DWORD Index,float* pPlane) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetRenderState( D3DRENDERSTATETYPE State,DWORD Value) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetRenderState( D3DRENDERSTATETYPE State,DWORD* pValue) = 0; virtual __declspec(nothrow) HRESULT __stdcall CreateStateBlock( D3DSTATEBLOCKTYPE Type,IDirect3DStateBlock9** ppSB) = 0; virtual __declspec(nothrow) HRESULT __stdcall BeginStateBlock(void) = 0; virtual __declspec(nothrow) HRESULT __stdcall EndStateBlock( IDirect3DStateBlock9** ppSB) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetClipStatus( const D3DCLIPSTATUS9* pClipStatus) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetClipStatus( D3DCLIPSTATUS9* pClipStatus) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetTexture( DWORD Stage,IDirect3DBaseTexture9** ppTexture) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetTexture( DWORD Stage,IDirect3DBaseTexture9* pTexture) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetTextureStageState( DWORD Stage,D3DTEXTURESTAGESTATETYPE Type,DWORD* pValue) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetTextureStageState( DWORD Stage,D3DTEXTURESTAGESTATETYPE Type,DWORD Value) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetSamplerState( DWORD Sampler,D3DSAMPLERSTATETYPE Type,DWORD* pValue) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetSamplerState( DWORD Sampler,D3DSAMPLERSTATETYPE Type,DWORD Value) = 0; virtual __declspec(nothrow) HRESULT __stdcall ValidateDevice( DWORD* pNumPasses) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetPaletteEntries( UINT PaletteNumber,const PALETTEENTRY* pEntries) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetPaletteEntries( UINT PaletteNumber,PALETTEENTRY* pEntries) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetCurrentTexturePalette( UINT PaletteNumber) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetCurrentTexturePalette( UINT *PaletteNumber) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetScissorRect( const RECT* pRect) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetScissorRect( RECT* pRect) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetSoftwareVertexProcessing( BOOL bSoftware) = 0; virtual __declspec(nothrow) BOOL __stdcall GetSoftwareVertexProcessing(void) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetNPatchMode( float nSegments) = 0; virtual __declspec(nothrow) float __stdcall GetNPatchMode(void) = 0; virtual __declspec(nothrow) HRESULT __stdcall DrawPrimitive( D3DPRIMITIVETYPE PrimitiveType,UINT StartVertex,UINT PrimitiveCount) = 0; virtual __declspec(nothrow) HRESULT __stdcall DrawIndexedPrimitive( D3DPRIMITIVETYPE,INT BaseVertexIndex,UINT MinVertexIndex,UINT NumVertices,UINT startIndex,UINT primCount) = 0; virtual __declspec(nothrow) HRESULT __stdcall DrawPrimitiveUP( D3DPRIMITIVETYPE PrimitiveType,UINT PrimitiveCount,const void* pVertexStreamZeroData,UINT VertexStreamZeroStride) = 0; virtual __declspec(nothrow) HRESULT __stdcall DrawIndexedPrimitiveUP( D3DPRIMITIVETYPE PrimitiveType,UINT MinVertexIndex,UINT NumVertices,UINT PrimitiveCount,const void* pIndexData,D3DFORMAT IndexDataFormat,const void* pVertexStreamZeroData,UINT VertexStreamZeroStride) = 0; virtual __declspec(nothrow) HRESULT __stdcall ProcessVertices( UINT SrcStartIndex,UINT DestIndex,UINT VertexCount,IDirect3DVertexBuffer9* pDestBuffer,IDirect3DVertexDeclaration9* pVertexDecl,DWORD Flags) = 0; virtual __declspec(nothrow) HRESULT __stdcall CreateVertexDeclaration( const D3DVERTEXELEMENT9* pVertexElements,IDirect3DVertexDeclaration9** ppDecl) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetVertexDeclaration( IDirect3DVertexDeclaration9* pDecl) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetVertexDeclaration( IDirect3DVertexDeclaration9** ppDecl) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetFVF( DWORD FVF) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetFVF( DWORD* pFVF) = 0; virtual __declspec(nothrow) HRESULT __stdcall CreateVertexShader( const DWORD* pFunction,IDirect3DVertexShader9** ppShader) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetVertexShader( IDirect3DVertexShader9* pShader) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetVertexShader( IDirect3DVertexShader9** ppShader) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetVertexShaderConstantF( UINT StartRegister,const float* pConstantData,UINT Vector4fCount) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetVertexShaderConstantF( UINT StartRegister,float* pConstantData,UINT Vector4fCount) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetVertexShaderConstantI( UINT StartRegister,const int* pConstantData,UINT Vector4iCount) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetVertexShaderConstantI( UINT StartRegister,int* pConstantData,UINT Vector4iCount) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetVertexShaderConstantB( UINT StartRegister,const BOOL* pConstantData,UINT BoolCount) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetVertexShaderConstantB( UINT StartRegister,BOOL* pConstantData,UINT BoolCount) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetStreamSource( UINT StreamNumber,IDirect3DVertexBuffer9* pStreamData,UINT OffsetInBytes,UINT Stride) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetStreamSource( UINT StreamNumber,IDirect3DVertexBuffer9** ppStreamData,UINT* pOffsetInBytes,UINT* pStride) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetStreamSourceFreq( UINT StreamNumber,UINT Setting) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetStreamSourceFreq( UINT StreamNumber,UINT* pSetting) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetIndices( IDirect3DIndexBuffer9* pIndexData) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetIndices( IDirect3DIndexBuffer9** ppIndexData) = 0; virtual __declspec(nothrow) HRESULT __stdcall CreatePixelShader( const DWORD* pFunction,IDirect3DPixelShader9** ppShader) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetPixelShader( IDirect3DPixelShader9* pShader) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetPixelShader( IDirect3DPixelShader9** ppShader) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetPixelShaderConstantF( UINT StartRegister,const float* pConstantData,UINT Vector4fCount) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetPixelShaderConstantF( UINT StartRegister,float* pConstantData,UINT Vector4fCount) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetPixelShaderConstantI( UINT StartRegister,const int* pConstantData,UINT Vector4iCount) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetPixelShaderConstantI( UINT StartRegister,int* pConstantData,UINT Vector4iCount) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetPixelShaderConstantB( UINT StartRegister,const BOOL* pConstantData,UINT BoolCount) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetPixelShaderConstantB( UINT StartRegister,BOOL* pConstantData,UINT BoolCount) = 0; virtual __declspec(nothrow) HRESULT __stdcall DrawRectPatch( UINT Handle,const float* pNumSegs,const D3DRECTPATCH_INFO* pRectPatchInfo) = 0; virtual __declspec(nothrow) HRESULT __stdcall DrawTriPatch( UINT Handle,const float* pNumSegs,const D3DTRIPATCH_INFO* pTriPatchInfo) = 0; virtual __declspec(nothrow) HRESULT __stdcall DeletePatch( UINT Handle) = 0; virtual __declspec(nothrow) HRESULT __stdcall CreateQuery( D3DQUERYTYPE Type,IDirect3DQuery9** ppQuery) = 0; D3DDEVICE_CREATION_PARAMETERS CreationParameters; D3DPRESENT_PARAMETERS PresentParameters; D3DDISPLAYMODE DisplayMode; D3DCAPS9 Caps; UINT AvailableTextureMem; UINT SwapChains; UINT Textures; UINT VertexBuffers; UINT IndexBuffers; UINT VertexShaders; UINT PixelShaders; D3DVIEWPORT9 Viewport; D3DMATRIX ProjectionMatrix; D3DMATRIX ViewMatrix; D3DMATRIX WorldMatrix; D3DMATRIX TextureMatrices[8]; DWORD FVF; UINT VertexSize; DWORD VertexShaderVersion; DWORD PixelShaderVersion; BOOL SoftwareVertexProcessing; D3DMATERIAL9 Material; D3DLIGHT9 Lights[16]; BOOL LightsEnabled[16]; D3DGAMMARAMP GammaRamp; RECT ScissorRect; BOOL DialogBoxMode; #line 610 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" }; typedef struct IDirect3DDevice9 *LPDIRECT3DDEVICE9, *PDIRECT3DDEVICE9; #line 735 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" #line 855 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" /* SwapChain */ struct __declspec(novtable) IDirect3DDevice9Ex : public IDirect3DDevice9 { /*** IUnknown methods ***/ virtual __declspec(nothrow) HRESULT __stdcall QueryInterface( const IID & riid, void** ppvObj) = 0; virtual __declspec(nothrow) ULONG __stdcall AddRef(void) = 0; virtual __declspec(nothrow) ULONG __stdcall Release(void) = 0; /*** IDirect3DDevice9 methods ***/ virtual __declspec(nothrow) HRESULT __stdcall TestCooperativeLevel(void) = 0; virtual __declspec(nothrow) UINT __stdcall GetAvailableTextureMem(void) = 0; virtual __declspec(nothrow) HRESULT __stdcall EvictManagedResources(void) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetDirect3D( IDirect3D9** ppD3D9) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetDeviceCaps( D3DCAPS9* pCaps) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetDisplayMode( UINT iSwapChain,D3DDISPLAYMODE* pMode) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetCreationParameters( D3DDEVICE_CREATION_PARAMETERS *pParameters) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetCursorProperties( UINT XHotSpot,UINT YHotSpot,IDirect3DSurface9* pCursorBitmap) = 0; virtual __declspec(nothrow) void __stdcall SetCursorPosition( int X,int Y,DWORD Flags) = 0; virtual __declspec(nothrow) BOOL __stdcall ShowCursor( BOOL bShow) = 0; virtual __declspec(nothrow) HRESULT __stdcall CreateAdditionalSwapChain( D3DPRESENT_PARAMETERS* pPresentationParameters,IDirect3DSwapChain9** pSwapChain) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetSwapChain( UINT iSwapChain,IDirect3DSwapChain9** pSwapChain) = 0; virtual __declspec(nothrow) UINT __stdcall GetNumberOfSwapChains(void) = 0; virtual __declspec(nothrow) HRESULT __stdcall Reset( D3DPRESENT_PARAMETERS* pPresentationParameters) = 0; virtual __declspec(nothrow) HRESULT __stdcall Present( const RECT* pSourceRect,const RECT* pDestRect,HWND hDestWindowOverride,const RGNDATA* pDirtyRegion) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetBackBuffer( UINT iSwapChain,UINT iBackBuffer,D3DBACKBUFFER_TYPE Type,IDirect3DSurface9** ppBackBuffer) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetRasterStatus( UINT iSwapChain,D3DRASTER_STATUS* pRasterStatus) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetDialogBoxMode( BOOL bEnableDialogs) = 0; virtual __declspec(nothrow) void __stdcall SetGammaRamp( UINT iSwapChain,DWORD Flags,const D3DGAMMARAMP* pRamp) = 0; virtual __declspec(nothrow) void __stdcall GetGammaRamp( UINT iSwapChain,D3DGAMMARAMP* pRamp) = 0; virtual __declspec(nothrow) HRESULT __stdcall CreateTexture( UINT Width,UINT Height,UINT Levels,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DTexture9** ppTexture,HANDLE* pSharedHandle) = 0; virtual __declspec(nothrow) HRESULT __stdcall CreateVolumeTexture( UINT Width,UINT Height,UINT Depth,UINT Levels,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DVolumeTexture9** ppVolumeTexture,HANDLE* pSharedHandle) = 0; virtual __declspec(nothrow) HRESULT __stdcall CreateCubeTexture( UINT EdgeLength,UINT Levels,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DCubeTexture9** ppCubeTexture,HANDLE* pSharedHandle) = 0; virtual __declspec(nothrow) HRESULT __stdcall CreateVertexBuffer( UINT Length,DWORD Usage,DWORD FVF,D3DPOOL Pool,IDirect3DVertexBuffer9** ppVertexBuffer,HANDLE* pSharedHandle) = 0; virtual __declspec(nothrow) HRESULT __stdcall CreateIndexBuffer( UINT Length,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DIndexBuffer9** ppIndexBuffer,HANDLE* pSharedHandle) = 0; virtual __declspec(nothrow) HRESULT __stdcall CreateRenderTarget( UINT Width,UINT Height,D3DFORMAT Format,D3DMULTISAMPLE_TYPE MultiSample,DWORD MultisampleQuality,BOOL Lockable,IDirect3DSurface9** ppSurface,HANDLE* pSharedHandle) = 0; virtual __declspec(nothrow) HRESULT __stdcall CreateDepthStencilSurface( UINT Width,UINT Height,D3DFORMAT Format,D3DMULTISAMPLE_TYPE MultiSample,DWORD MultisampleQuality,BOOL Discard,IDirect3DSurface9** ppSurface,HANDLE* pSharedHandle) = 0; virtual __declspec(nothrow) HRESULT __stdcall UpdateSurface( IDirect3DSurface9* pSourceSurface,const RECT* pSourceRect,IDirect3DSurface9* pDestinationSurface,const POINT* pDestPoint) = 0; virtual __declspec(nothrow) HRESULT __stdcall UpdateTexture( IDirect3DBaseTexture9* pSourceTexture,IDirect3DBaseTexture9* pDestinationTexture) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetRenderTargetData( IDirect3DSurface9* pRenderTarget,IDirect3DSurface9* pDestSurface) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetFrontBufferData( UINT iSwapChain,IDirect3DSurface9* pDestSurface) = 0; virtual __declspec(nothrow) HRESULT __stdcall StretchRect( IDirect3DSurface9* pSourceSurface,const RECT* pSourceRect,IDirect3DSurface9* pDestSurface,const RECT* pDestRect,D3DTEXTUREFILTERTYPE Filter) = 0; virtual __declspec(nothrow) HRESULT __stdcall ColorFill( IDirect3DSurface9* pSurface,const RECT* pRect,D3DCOLOR color) = 0; virtual __declspec(nothrow) HRESULT __stdcall CreateOffscreenPlainSurface( UINT Width,UINT Height,D3DFORMAT Format,D3DPOOL Pool,IDirect3DSurface9** ppSurface,HANDLE* pSharedHandle) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetRenderTarget( DWORD RenderTargetIndex,IDirect3DSurface9* pRenderTarget) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetRenderTarget( DWORD RenderTargetIndex,IDirect3DSurface9** ppRenderTarget) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetDepthStencilSurface( IDirect3DSurface9* pNewZStencil) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetDepthStencilSurface( IDirect3DSurface9** ppZStencilSurface) = 0; virtual __declspec(nothrow) HRESULT __stdcall BeginScene(void) = 0; virtual __declspec(nothrow) HRESULT __stdcall EndScene(void) = 0; virtual __declspec(nothrow) HRESULT __stdcall Clear( DWORD Count,const D3DRECT* pRects,DWORD Flags,D3DCOLOR Color,float Z,DWORD Stencil) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetTransform( D3DTRANSFORMSTATETYPE State,const D3DMATRIX* pMatrix) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetTransform( D3DTRANSFORMSTATETYPE State,D3DMATRIX* pMatrix) = 0; virtual __declspec(nothrow) HRESULT __stdcall MultiplyTransform( D3DTRANSFORMSTATETYPE,const D3DMATRIX*) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetViewport( const D3DVIEWPORT9* pViewport) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetViewport( D3DVIEWPORT9* pViewport) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetMaterial( const D3DMATERIAL9* pMaterial) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetMaterial( D3DMATERIAL9* pMaterial) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetLight( DWORD Index,const D3DLIGHT9*) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetLight( DWORD Index,D3DLIGHT9*) = 0; virtual __declspec(nothrow) HRESULT __stdcall LightEnable( DWORD Index,BOOL Enable) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetLightEnable( DWORD Index,BOOL* pEnable) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetClipPlane( DWORD Index,const float* pPlane) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetClipPlane( DWORD Index,float* pPlane) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetRenderState( D3DRENDERSTATETYPE State,DWORD Value) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetRenderState( D3DRENDERSTATETYPE State,DWORD* pValue) = 0; virtual __declspec(nothrow) HRESULT __stdcall CreateStateBlock( D3DSTATEBLOCKTYPE Type,IDirect3DStateBlock9** ppSB) = 0; virtual __declspec(nothrow) HRESULT __stdcall BeginStateBlock(void) = 0; virtual __declspec(nothrow) HRESULT __stdcall EndStateBlock( IDirect3DStateBlock9** ppSB) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetClipStatus( const D3DCLIPSTATUS9* pClipStatus) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetClipStatus( D3DCLIPSTATUS9* pClipStatus) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetTexture( DWORD Stage,IDirect3DBaseTexture9** ppTexture) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetTexture( DWORD Stage,IDirect3DBaseTexture9* pTexture) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetTextureStageState( DWORD Stage,D3DTEXTURESTAGESTATETYPE Type,DWORD* pValue) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetTextureStageState( DWORD Stage,D3DTEXTURESTAGESTATETYPE Type,DWORD Value) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetSamplerState( DWORD Sampler,D3DSAMPLERSTATETYPE Type,DWORD* pValue) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetSamplerState( DWORD Sampler,D3DSAMPLERSTATETYPE Type,DWORD Value) = 0; virtual __declspec(nothrow) HRESULT __stdcall ValidateDevice( DWORD* pNumPasses) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetPaletteEntries( UINT PaletteNumber,const PALETTEENTRY* pEntries) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetPaletteEntries( UINT PaletteNumber,PALETTEENTRY* pEntries) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetCurrentTexturePalette( UINT PaletteNumber) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetCurrentTexturePalette( UINT *PaletteNumber) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetScissorRect( const RECT* pRect) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetScissorRect( RECT* pRect) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetSoftwareVertexProcessing( BOOL bSoftware) = 0; virtual __declspec(nothrow) BOOL __stdcall GetSoftwareVertexProcessing(void) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetNPatchMode( float nSegments) = 0; virtual __declspec(nothrow) float __stdcall GetNPatchMode(void) = 0; virtual __declspec(nothrow) HRESULT __stdcall DrawPrimitive( D3DPRIMITIVETYPE PrimitiveType,UINT StartVertex,UINT PrimitiveCount) = 0; virtual __declspec(nothrow) HRESULT __stdcall DrawIndexedPrimitive( D3DPRIMITIVETYPE,INT BaseVertexIndex,UINT MinVertexIndex,UINT NumVertices,UINT startIndex,UINT primCount) = 0; virtual __declspec(nothrow) HRESULT __stdcall DrawPrimitiveUP( D3DPRIMITIVETYPE PrimitiveType,UINT PrimitiveCount,const void* pVertexStreamZeroData,UINT VertexStreamZeroStride) = 0; virtual __declspec(nothrow) HRESULT __stdcall DrawIndexedPrimitiveUP( D3DPRIMITIVETYPE PrimitiveType,UINT MinVertexIndex,UINT NumVertices,UINT PrimitiveCount,const void* pIndexData,D3DFORMAT IndexDataFormat,const void* pVertexStreamZeroData,UINT VertexStreamZeroStride) = 0; virtual __declspec(nothrow) HRESULT __stdcall ProcessVertices( UINT SrcStartIndex,UINT DestIndex,UINT VertexCount,IDirect3DVertexBuffer9* pDestBuffer,IDirect3DVertexDeclaration9* pVertexDecl,DWORD Flags) = 0; virtual __declspec(nothrow) HRESULT __stdcall CreateVertexDeclaration( const D3DVERTEXELEMENT9* pVertexElements,IDirect3DVertexDeclaration9** ppDecl) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetVertexDeclaration( IDirect3DVertexDeclaration9* pDecl) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetVertexDeclaration( IDirect3DVertexDeclaration9** ppDecl) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetFVF( DWORD FVF) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetFVF( DWORD* pFVF) = 0; virtual __declspec(nothrow) HRESULT __stdcall CreateVertexShader( const DWORD* pFunction,IDirect3DVertexShader9** ppShader) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetVertexShader( IDirect3DVertexShader9* pShader) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetVertexShader( IDirect3DVertexShader9** ppShader) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetVertexShaderConstantF( UINT StartRegister,const float* pConstantData,UINT Vector4fCount) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetVertexShaderConstantF( UINT StartRegister,float* pConstantData,UINT Vector4fCount) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetVertexShaderConstantI( UINT StartRegister,const int* pConstantData,UINT Vector4iCount) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetVertexShaderConstantI( UINT StartRegister,int* pConstantData,UINT Vector4iCount) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetVertexShaderConstantB( UINT StartRegister,const BOOL* pConstantData,UINT BoolCount) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetVertexShaderConstantB( UINT StartRegister,BOOL* pConstantData,UINT BoolCount) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetStreamSource( UINT StreamNumber,IDirect3DVertexBuffer9* pStreamData,UINT OffsetInBytes,UINT Stride) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetStreamSource( UINT StreamNumber,IDirect3DVertexBuffer9** ppStreamData,UINT* pOffsetInBytes,UINT* pStride) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetStreamSourceFreq( UINT StreamNumber,UINT Setting) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetStreamSourceFreq( UINT StreamNumber,UINT* pSetting) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetIndices( IDirect3DIndexBuffer9* pIndexData) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetIndices( IDirect3DIndexBuffer9** ppIndexData) = 0; virtual __declspec(nothrow) HRESULT __stdcall CreatePixelShader( const DWORD* pFunction,IDirect3DPixelShader9** ppShader) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetPixelShader( IDirect3DPixelShader9* pShader) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetPixelShader( IDirect3DPixelShader9** ppShader) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetPixelShaderConstantF( UINT StartRegister,const float* pConstantData,UINT Vector4fCount) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetPixelShaderConstantF( UINT StartRegister,float* pConstantData,UINT Vector4fCount) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetPixelShaderConstantI( UINT StartRegister,const int* pConstantData,UINT Vector4iCount) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetPixelShaderConstantI( UINT StartRegister,int* pConstantData,UINT Vector4iCount) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetPixelShaderConstantB( UINT StartRegister,const BOOL* pConstantData,UINT BoolCount) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetPixelShaderConstantB( UINT StartRegister,BOOL* pConstantData,UINT BoolCount) = 0; virtual __declspec(nothrow) HRESULT __stdcall DrawRectPatch( UINT Handle,const float* pNumSegs,const D3DRECTPATCH_INFO* pRectPatchInfo) = 0; virtual __declspec(nothrow) HRESULT __stdcall DrawTriPatch( UINT Handle,const float* pNumSegs,const D3DTRIPATCH_INFO* pTriPatchInfo) = 0; virtual __declspec(nothrow) HRESULT __stdcall DeletePatch( UINT Handle) = 0; virtual __declspec(nothrow) HRESULT __stdcall CreateQuery( D3DQUERYTYPE Type,IDirect3DQuery9** ppQuery) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetConvolutionMonoKernel( UINT width,UINT height,float* rows,float* columns) = 0; virtual __declspec(nothrow) HRESULT __stdcall ComposeRects( IDirect3DSurface9* pSrc,IDirect3DSurface9* pDst,IDirect3DVertexBuffer9* pSrcRectDescs,UINT NumRects,IDirect3DVertexBuffer9* pDstRectDescs,D3DCOMPOSERECTSOP Operation,int Xoffset,int Yoffset) = 0; virtual __declspec(nothrow) HRESULT __stdcall PresentEx( const RECT* pSourceRect,const RECT* pDestRect,HWND hDestWindowOverride,const RGNDATA* pDirtyRegion,DWORD dwFlags) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetGPUThreadPriority( INT* pPriority) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetGPUThreadPriority( INT Priority) = 0; virtual __declspec(nothrow) HRESULT __stdcall WaitForVBlank( UINT iSwapChain) = 0; virtual __declspec(nothrow) HRESULT __stdcall CheckResourceResidency( IDirect3DResource9** pResourceArray,UINT32 NumResources) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetMaximumFrameLatency( UINT MaxLatency) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetMaximumFrameLatency( UINT* pMaxLatency) = 0; virtual __declspec(nothrow) HRESULT __stdcall CheckDeviceState( HWND hDestinationWindow) = 0; virtual __declspec(nothrow) HRESULT __stdcall CreateRenderTargetEx( UINT Width,UINT Height,D3DFORMAT Format,D3DMULTISAMPLE_TYPE MultiSample,DWORD MultisampleQuality,BOOL Lockable,IDirect3DSurface9** ppSurface,HANDLE* pSharedHandle,DWORD Usage) = 0; virtual __declspec(nothrow) HRESULT __stdcall CreateOffscreenPlainSurfaceEx( UINT Width,UINT Height,D3DFORMAT Format,D3DPOOL Pool,IDirect3DSurface9** ppSurface,HANDLE* pSharedHandle,DWORD Usage) = 0; virtual __declspec(nothrow) HRESULT __stdcall CreateDepthStencilSurfaceEx( UINT Width,UINT Height,D3DFORMAT Format,D3DMULTISAMPLE_TYPE MultiSample,DWORD MultisampleQuality,BOOL Discard,IDirect3DSurface9** ppSurface,HANDLE* pSharedHandle,DWORD Usage) = 0; virtual __declspec(nothrow) HRESULT __stdcall ResetEx( D3DPRESENT_PARAMETERS* pPresentationParameters,D3DDISPLAYMODEEX *pFullscreenDisplayMode) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetDisplayModeEx( UINT iSwapChain,D3DDISPLAYMODEEX* pMode,D3DDISPLAYROTATION* pRotation) = 0; }; typedef struct IDirect3DDevice9Ex *LPDIRECT3DDEVICE9EX, *PDIRECT3DDEVICE9EX; #line 1162 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" #line 1297 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" struct __declspec(novtable) IDirect3DStateBlock9 : public IUnknown { /*** IUnknown methods ***/ virtual __declspec(nothrow) HRESULT __stdcall QueryInterface( const IID & riid, void** ppvObj) = 0; virtual __declspec(nothrow) ULONG __stdcall AddRef(void) = 0; virtual __declspec(nothrow) ULONG __stdcall Release(void) = 0; /*** IDirect3DStateBlock9 methods ***/ virtual __declspec(nothrow) HRESULT __stdcall GetDevice( IDirect3DDevice9** ppDevice) = 0; virtual __declspec(nothrow) HRESULT __stdcall Capture(void) = 0; virtual __declspec(nothrow) HRESULT __stdcall Apply(void) = 0; LPCWSTR CreationCallStack; #line 1317 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" }; typedef struct IDirect3DStateBlock9 *LPDIRECT3DSTATEBLOCK9, *PDIRECT3DSTATEBLOCK9; #line 1329 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" #line 1336 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" struct __declspec(novtable) IDirect3DSwapChain9 : public IUnknown { /*** IUnknown methods ***/ virtual __declspec(nothrow) HRESULT __stdcall QueryInterface( const IID & riid, void** ppvObj) = 0; virtual __declspec(nothrow) ULONG __stdcall AddRef(void) = 0; virtual __declspec(nothrow) ULONG __stdcall Release(void) = 0; /*** IDirect3DSwapChain9 methods ***/ virtual __declspec(nothrow) HRESULT __stdcall Present( const RECT* pSourceRect,const RECT* pDestRect,HWND hDestWindowOverride,const RGNDATA* pDirtyRegion,DWORD dwFlags) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetFrontBufferData( IDirect3DSurface9* pDestSurface) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetBackBuffer( UINT iBackBuffer,D3DBACKBUFFER_TYPE Type,IDirect3DSurface9** ppBackBuffer) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetRasterStatus( D3DRASTER_STATUS* pRasterStatus) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetDisplayMode( D3DDISPLAYMODE* pMode) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetDevice( IDirect3DDevice9** ppDevice) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetPresentParameters( D3DPRESENT_PARAMETERS* pPresentationParameters) = 0; D3DPRESENT_PARAMETERS PresentParameters; D3DDISPLAYMODE DisplayMode; LPCWSTR CreationCallStack; #line 1364 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" }; typedef struct IDirect3DSwapChain9 *LPDIRECT3DSWAPCHAIN9, *PDIRECT3DSWAPCHAIN9; #line 1380 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" #line 1391 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" struct __declspec(novtable) IDirect3DSwapChain9Ex : public IDirect3DSwapChain9 { /*** IUnknown methods ***/ virtual __declspec(nothrow) HRESULT __stdcall QueryInterface( const IID & riid, void** ppvObj) = 0; virtual __declspec(nothrow) ULONG __stdcall AddRef(void) = 0; virtual __declspec(nothrow) ULONG __stdcall Release(void) = 0; /*** IDirect3DSwapChain9 methods ***/ virtual __declspec(nothrow) HRESULT __stdcall Present( const RECT* pSourceRect,const RECT* pDestRect,HWND hDestWindowOverride,const RGNDATA* pDirtyRegion,DWORD dwFlags) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetFrontBufferData( IDirect3DSurface9* pDestSurface) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetBackBuffer( UINT iBackBuffer,D3DBACKBUFFER_TYPE Type,IDirect3DSurface9** ppBackBuffer) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetRasterStatus( D3DRASTER_STATUS* pRasterStatus) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetDisplayMode( D3DDISPLAYMODE* pMode) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetDevice( IDirect3DDevice9** ppDevice) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetPresentParameters( D3DPRESENT_PARAMETERS* pPresentationParameters) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetLastPresentCount( UINT* pLastPresentCount) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetPresentStats( D3DPRESENTSTATS* pPresentationStatistics) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetDisplayModeEx( D3DDISPLAYMODEEX* pMode,D3DDISPLAYROTATION* pRotation) = 0; }; typedef struct IDirect3DSwapChain9Ex *LPDIRECT3DSWAPCHAIN9EX, *PDIRECT3DSWAPCHAIN9EX; #line 1434 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" #line 1448 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" struct __declspec(novtable) IDirect3DResource9 : public IUnknown { /*** IUnknown methods ***/ virtual __declspec(nothrow) HRESULT __stdcall QueryInterface( const IID & riid, void** ppvObj) = 0; virtual __declspec(nothrow) ULONG __stdcall AddRef(void) = 0; virtual __declspec(nothrow) ULONG __stdcall Release(void) = 0; /*** IDirect3DResource9 methods ***/ virtual __declspec(nothrow) HRESULT __stdcall GetDevice( IDirect3DDevice9** ppDevice) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetPrivateData( const GUID & refguid,const void* pData,DWORD SizeOfData,DWORD Flags) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetPrivateData( const GUID & refguid,void* pData,DWORD* pSizeOfData) = 0; virtual __declspec(nothrow) HRESULT __stdcall FreePrivateData( const GUID & refguid) = 0; virtual __declspec(nothrow) DWORD __stdcall SetPriority( DWORD PriorityNew) = 0; virtual __declspec(nothrow) DWORD __stdcall GetPriority(void) = 0; virtual __declspec(nothrow) void __stdcall PreLoad(void) = 0; virtual __declspec(nothrow) D3DRESOURCETYPE __stdcall GetType(void) = 0; }; typedef struct IDirect3DResource9 *LPDIRECT3DRESOURCE9, *PDIRECT3DRESOURCE9; #line 1487 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" #line 1499 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" struct __declspec(novtable) IDirect3DVertexDeclaration9 : public IUnknown { /*** IUnknown methods ***/ virtual __declspec(nothrow) HRESULT __stdcall QueryInterface( const IID & riid, void** ppvObj) = 0; virtual __declspec(nothrow) ULONG __stdcall AddRef(void) = 0; virtual __declspec(nothrow) ULONG __stdcall Release(void) = 0; /*** IDirect3DVertexDeclaration9 methods ***/ virtual __declspec(nothrow) HRESULT __stdcall GetDevice( IDirect3DDevice9** ppDevice) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetDeclaration( D3DVERTEXELEMENT9* pElement,UINT* pNumElements) = 0; LPCWSTR CreationCallStack; #line 1520 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" }; typedef struct IDirect3DVertexDeclaration9 *LPDIRECT3DVERTEXDECLARATION9, *PDIRECT3DVERTEXDECLARATION9; #line 1531 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" #line 1537 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" struct __declspec(novtable) IDirect3DVertexShader9 : public IUnknown { /*** IUnknown methods ***/ virtual __declspec(nothrow) HRESULT __stdcall QueryInterface( const IID & riid, void** ppvObj) = 0; virtual __declspec(nothrow) ULONG __stdcall AddRef(void) = 0; virtual __declspec(nothrow) ULONG __stdcall Release(void) = 0; /*** IDirect3DVertexShader9 methods ***/ virtual __declspec(nothrow) HRESULT __stdcall GetDevice( IDirect3DDevice9** ppDevice) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetFunction( void*,UINT* pSizeOfData) = 0; DWORD Version; LPCWSTR CreationCallStack; #line 1559 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" }; typedef struct IDirect3DVertexShader9 *LPDIRECT3DVERTEXSHADER9, *PDIRECT3DVERTEXSHADER9; #line 1570 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" #line 1576 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" struct __declspec(novtable) IDirect3DPixelShader9 : public IUnknown { /*** IUnknown methods ***/ virtual __declspec(nothrow) HRESULT __stdcall QueryInterface( const IID & riid, void** ppvObj) = 0; virtual __declspec(nothrow) ULONG __stdcall AddRef(void) = 0; virtual __declspec(nothrow) ULONG __stdcall Release(void) = 0; /*** IDirect3DPixelShader9 methods ***/ virtual __declspec(nothrow) HRESULT __stdcall GetDevice( IDirect3DDevice9** ppDevice) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetFunction( void*,UINT* pSizeOfData) = 0; DWORD Version; LPCWSTR CreationCallStack; #line 1598 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" }; typedef struct IDirect3DPixelShader9 *LPDIRECT3DPIXELSHADER9, *PDIRECT3DPIXELSHADER9; #line 1609 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" #line 1615 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" struct __declspec(novtable) IDirect3DBaseTexture9 : public IDirect3DResource9 { /*** IUnknown methods ***/ virtual __declspec(nothrow) HRESULT __stdcall QueryInterface( const IID & riid, void** ppvObj) = 0; virtual __declspec(nothrow) ULONG __stdcall AddRef(void) = 0; virtual __declspec(nothrow) ULONG __stdcall Release(void) = 0; /*** IDirect3DResource9 methods ***/ virtual __declspec(nothrow) HRESULT __stdcall GetDevice( IDirect3DDevice9** ppDevice) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetPrivateData( const GUID & refguid,const void* pData,DWORD SizeOfData,DWORD Flags) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetPrivateData( const GUID & refguid,void* pData,DWORD* pSizeOfData) = 0; virtual __declspec(nothrow) HRESULT __stdcall FreePrivateData( const GUID & refguid) = 0; virtual __declspec(nothrow) DWORD __stdcall SetPriority( DWORD PriorityNew) = 0; virtual __declspec(nothrow) DWORD __stdcall GetPriority(void) = 0; virtual __declspec(nothrow) void __stdcall PreLoad(void) = 0; virtual __declspec(nothrow) D3DRESOURCETYPE __stdcall GetType(void) = 0; virtual __declspec(nothrow) DWORD __stdcall SetLOD( DWORD LODNew) = 0; virtual __declspec(nothrow) DWORD __stdcall GetLOD(void) = 0; virtual __declspec(nothrow) DWORD __stdcall GetLevelCount(void) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetAutoGenFilterType( D3DTEXTUREFILTERTYPE FilterType) = 0; virtual __declspec(nothrow) D3DTEXTUREFILTERTYPE __stdcall GetAutoGenFilterType(void) = 0; virtual __declspec(nothrow) void __stdcall GenerateMipSubLevels(void) = 0; }; typedef struct IDirect3DBaseTexture9 *LPDIRECT3DBASETEXTURE9, *PDIRECT3DBASETEXTURE9; #line 1667 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" #line 1685 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" struct __declspec(novtable) IDirect3DTexture9 : public IDirect3DBaseTexture9 { /*** IUnknown methods ***/ virtual __declspec(nothrow) HRESULT __stdcall QueryInterface( const IID & riid, void** ppvObj) = 0; virtual __declspec(nothrow) ULONG __stdcall AddRef(void) = 0; virtual __declspec(nothrow) ULONG __stdcall Release(void) = 0; /*** IDirect3DBaseTexture9 methods ***/ virtual __declspec(nothrow) HRESULT __stdcall GetDevice( IDirect3DDevice9** ppDevice) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetPrivateData( const GUID & refguid,const void* pData,DWORD SizeOfData,DWORD Flags) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetPrivateData( const GUID & refguid,void* pData,DWORD* pSizeOfData) = 0; virtual __declspec(nothrow) HRESULT __stdcall FreePrivateData( const GUID & refguid) = 0; virtual __declspec(nothrow) DWORD __stdcall SetPriority( DWORD PriorityNew) = 0; virtual __declspec(nothrow) DWORD __stdcall GetPriority(void) = 0; virtual __declspec(nothrow) void __stdcall PreLoad(void) = 0; virtual __declspec(nothrow) D3DRESOURCETYPE __stdcall GetType(void) = 0; virtual __declspec(nothrow) DWORD __stdcall SetLOD( DWORD LODNew) = 0; virtual __declspec(nothrow) DWORD __stdcall GetLOD(void) = 0; virtual __declspec(nothrow) DWORD __stdcall GetLevelCount(void) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetAutoGenFilterType( D3DTEXTUREFILTERTYPE FilterType) = 0; virtual __declspec(nothrow) D3DTEXTUREFILTERTYPE __stdcall GetAutoGenFilterType(void) = 0; virtual __declspec(nothrow) void __stdcall GenerateMipSubLevels(void) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetLevelDesc( UINT Level,D3DSURFACE_DESC *pDesc) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetSurfaceLevel( UINT Level,IDirect3DSurface9** ppSurfaceLevel) = 0; virtual __declspec(nothrow) HRESULT __stdcall LockRect( UINT Level,D3DLOCKED_RECT* pLockedRect,const RECT* pRect,DWORD Flags) = 0; virtual __declspec(nothrow) HRESULT __stdcall UnlockRect( UINT Level) = 0; virtual __declspec(nothrow) HRESULT __stdcall AddDirtyRect( const RECT* pDirtyRect) = 0; LPCWSTR Name; UINT Width; UINT Height; UINT Levels; DWORD Usage; D3DFORMAT Format; D3DPOOL Pool; DWORD Priority; DWORD LOD; D3DTEXTUREFILTERTYPE FilterType; UINT LockCount; LPCWSTR CreationCallStack; #line 1735 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" }; typedef struct IDirect3DTexture9 *LPDIRECT3DTEXTURE9, *PDIRECT3DTEXTURE9; #line 1763 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" #line 1786 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" struct __declspec(novtable) IDirect3DVolumeTexture9 : public IDirect3DBaseTexture9 { /*** IUnknown methods ***/ virtual __declspec(nothrow) HRESULT __stdcall QueryInterface( const IID & riid, void** ppvObj) = 0; virtual __declspec(nothrow) ULONG __stdcall AddRef(void) = 0; virtual __declspec(nothrow) ULONG __stdcall Release(void) = 0; /*** IDirect3DBaseTexture9 methods ***/ virtual __declspec(nothrow) HRESULT __stdcall GetDevice( IDirect3DDevice9** ppDevice) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetPrivateData( const GUID & refguid,const void* pData,DWORD SizeOfData,DWORD Flags) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetPrivateData( const GUID & refguid,void* pData,DWORD* pSizeOfData) = 0; virtual __declspec(nothrow) HRESULT __stdcall FreePrivateData( const GUID & refguid) = 0; virtual __declspec(nothrow) DWORD __stdcall SetPriority( DWORD PriorityNew) = 0; virtual __declspec(nothrow) DWORD __stdcall GetPriority(void) = 0; virtual __declspec(nothrow) void __stdcall PreLoad(void) = 0; virtual __declspec(nothrow) D3DRESOURCETYPE __stdcall GetType(void) = 0; virtual __declspec(nothrow) DWORD __stdcall SetLOD( DWORD LODNew) = 0; virtual __declspec(nothrow) DWORD __stdcall GetLOD(void) = 0; virtual __declspec(nothrow) DWORD __stdcall GetLevelCount(void) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetAutoGenFilterType( D3DTEXTUREFILTERTYPE FilterType) = 0; virtual __declspec(nothrow) D3DTEXTUREFILTERTYPE __stdcall GetAutoGenFilterType(void) = 0; virtual __declspec(nothrow) void __stdcall GenerateMipSubLevels(void) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetLevelDesc( UINT Level,D3DVOLUME_DESC *pDesc) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetVolumeLevel( UINT Level,IDirect3DVolume9** ppVolumeLevel) = 0; virtual __declspec(nothrow) HRESULT __stdcall LockBox( UINT Level,D3DLOCKED_BOX* pLockedVolume,const D3DBOX* pBox,DWORD Flags) = 0; virtual __declspec(nothrow) HRESULT __stdcall UnlockBox( UINT Level) = 0; virtual __declspec(nothrow) HRESULT __stdcall AddDirtyBox( const D3DBOX* pDirtyBox) = 0; LPCWSTR Name; UINT Width; UINT Height; UINT Depth; UINT Levels; DWORD Usage; D3DFORMAT Format; D3DPOOL Pool; DWORD Priority; DWORD LOD; D3DTEXTUREFILTERTYPE FilterType; UINT LockCount; LPCWSTR CreationCallStack; #line 1837 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" }; typedef struct IDirect3DVolumeTexture9 *LPDIRECT3DVOLUMETEXTURE9, *PDIRECT3DVOLUMETEXTURE9; #line 1865 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" #line 1888 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" struct __declspec(novtable) IDirect3DCubeTexture9 : public IDirect3DBaseTexture9 { /*** IUnknown methods ***/ virtual __declspec(nothrow) HRESULT __stdcall QueryInterface( const IID & riid, void** ppvObj) = 0; virtual __declspec(nothrow) ULONG __stdcall AddRef(void) = 0; virtual __declspec(nothrow) ULONG __stdcall Release(void) = 0; /*** IDirect3DBaseTexture9 methods ***/ virtual __declspec(nothrow) HRESULT __stdcall GetDevice( IDirect3DDevice9** ppDevice) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetPrivateData( const GUID & refguid,const void* pData,DWORD SizeOfData,DWORD Flags) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetPrivateData( const GUID & refguid,void* pData,DWORD* pSizeOfData) = 0; virtual __declspec(nothrow) HRESULT __stdcall FreePrivateData( const GUID & refguid) = 0; virtual __declspec(nothrow) DWORD __stdcall SetPriority( DWORD PriorityNew) = 0; virtual __declspec(nothrow) DWORD __stdcall GetPriority(void) = 0; virtual __declspec(nothrow) void __stdcall PreLoad(void) = 0; virtual __declspec(nothrow) D3DRESOURCETYPE __stdcall GetType(void) = 0; virtual __declspec(nothrow) DWORD __stdcall SetLOD( DWORD LODNew) = 0; virtual __declspec(nothrow) DWORD __stdcall GetLOD(void) = 0; virtual __declspec(nothrow) DWORD __stdcall GetLevelCount(void) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetAutoGenFilterType( D3DTEXTUREFILTERTYPE FilterType) = 0; virtual __declspec(nothrow) D3DTEXTUREFILTERTYPE __stdcall GetAutoGenFilterType(void) = 0; virtual __declspec(nothrow) void __stdcall GenerateMipSubLevels(void) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetLevelDesc( UINT Level,D3DSURFACE_DESC *pDesc) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetCubeMapSurface( D3DCUBEMAP_FACES FaceType,UINT Level,IDirect3DSurface9** ppCubeMapSurface) = 0; virtual __declspec(nothrow) HRESULT __stdcall LockRect( D3DCUBEMAP_FACES FaceType,UINT Level,D3DLOCKED_RECT* pLockedRect,const RECT* pRect,DWORD Flags) = 0; virtual __declspec(nothrow) HRESULT __stdcall UnlockRect( D3DCUBEMAP_FACES FaceType,UINT Level) = 0; virtual __declspec(nothrow) HRESULT __stdcall AddDirtyRect( D3DCUBEMAP_FACES FaceType,const RECT* pDirtyRect) = 0; LPCWSTR Name; UINT Width; UINT Height; UINT Levels; DWORD Usage; D3DFORMAT Format; D3DPOOL Pool; DWORD Priority; DWORD LOD; D3DTEXTUREFILTERTYPE FilterType; UINT LockCount; LPCWSTR CreationCallStack; #line 1938 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" }; typedef struct IDirect3DCubeTexture9 *LPDIRECT3DCUBETEXTURE9, *PDIRECT3DCUBETEXTURE9; #line 1966 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" #line 1989 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" struct __declspec(novtable) IDirect3DVertexBuffer9 : public IDirect3DResource9 { /*** IUnknown methods ***/ virtual __declspec(nothrow) HRESULT __stdcall QueryInterface( const IID & riid, void** ppvObj) = 0; virtual __declspec(nothrow) ULONG __stdcall AddRef(void) = 0; virtual __declspec(nothrow) ULONG __stdcall Release(void) = 0; /*** IDirect3DResource9 methods ***/ virtual __declspec(nothrow) HRESULT __stdcall GetDevice( IDirect3DDevice9** ppDevice) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetPrivateData( const GUID & refguid,const void* pData,DWORD SizeOfData,DWORD Flags) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetPrivateData( const GUID & refguid,void* pData,DWORD* pSizeOfData) = 0; virtual __declspec(nothrow) HRESULT __stdcall FreePrivateData( const GUID & refguid) = 0; virtual __declspec(nothrow) DWORD __stdcall SetPriority( DWORD PriorityNew) = 0; virtual __declspec(nothrow) DWORD __stdcall GetPriority(void) = 0; virtual __declspec(nothrow) void __stdcall PreLoad(void) = 0; virtual __declspec(nothrow) D3DRESOURCETYPE __stdcall GetType(void) = 0; virtual __declspec(nothrow) HRESULT __stdcall Lock( UINT OffsetToLock,UINT SizeToLock,void** ppbData,DWORD Flags) = 0; virtual __declspec(nothrow) HRESULT __stdcall Unlock(void) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetDesc( D3DVERTEXBUFFER_DESC *pDesc) = 0; LPCWSTR Name; UINT Length; DWORD Usage; DWORD FVF; D3DPOOL Pool; DWORD Priority; UINT LockCount; LPCWSTR CreationCallStack; #line 2026 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" }; typedef struct IDirect3DVertexBuffer9 *LPDIRECT3DVERTEXBUFFER9, *PDIRECT3DVERTEXBUFFER9; #line 2046 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" #line 2061 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" struct __declspec(novtable) IDirect3DIndexBuffer9 : public IDirect3DResource9 { /*** IUnknown methods ***/ virtual __declspec(nothrow) HRESULT __stdcall QueryInterface( const IID & riid, void** ppvObj) = 0; virtual __declspec(nothrow) ULONG __stdcall AddRef(void) = 0; virtual __declspec(nothrow) ULONG __stdcall Release(void) = 0; /*** IDirect3DResource9 methods ***/ virtual __declspec(nothrow) HRESULT __stdcall GetDevice( IDirect3DDevice9** ppDevice) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetPrivateData( const GUID & refguid,const void* pData,DWORD SizeOfData,DWORD Flags) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetPrivateData( const GUID & refguid,void* pData,DWORD* pSizeOfData) = 0; virtual __declspec(nothrow) HRESULT __stdcall FreePrivateData( const GUID & refguid) = 0; virtual __declspec(nothrow) DWORD __stdcall SetPriority( DWORD PriorityNew) = 0; virtual __declspec(nothrow) DWORD __stdcall GetPriority(void) = 0; virtual __declspec(nothrow) void __stdcall PreLoad(void) = 0; virtual __declspec(nothrow) D3DRESOURCETYPE __stdcall GetType(void) = 0; virtual __declspec(nothrow) HRESULT __stdcall Lock( UINT OffsetToLock,UINT SizeToLock,void** ppbData,DWORD Flags) = 0; virtual __declspec(nothrow) HRESULT __stdcall Unlock(void) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetDesc( D3DINDEXBUFFER_DESC *pDesc) = 0; LPCWSTR Name; UINT Length; DWORD Usage; D3DFORMAT Format; D3DPOOL Pool; DWORD Priority; UINT LockCount; LPCWSTR CreationCallStack; #line 2098 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" }; typedef struct IDirect3DIndexBuffer9 *LPDIRECT3DINDEXBUFFER9, *PDIRECT3DINDEXBUFFER9; #line 2118 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" #line 2133 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" struct __declspec(novtable) IDirect3DSurface9 : public IDirect3DResource9 { /*** IUnknown methods ***/ virtual __declspec(nothrow) HRESULT __stdcall QueryInterface( const IID & riid, void** ppvObj) = 0; virtual __declspec(nothrow) ULONG __stdcall AddRef(void) = 0; virtual __declspec(nothrow) ULONG __stdcall Release(void) = 0; /*** IDirect3DResource9 methods ***/ virtual __declspec(nothrow) HRESULT __stdcall GetDevice( IDirect3DDevice9** ppDevice) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetPrivateData( const GUID & refguid,const void* pData,DWORD SizeOfData,DWORD Flags) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetPrivateData( const GUID & refguid,void* pData,DWORD* pSizeOfData) = 0; virtual __declspec(nothrow) HRESULT __stdcall FreePrivateData( const GUID & refguid) = 0; virtual __declspec(nothrow) DWORD __stdcall SetPriority( DWORD PriorityNew) = 0; virtual __declspec(nothrow) DWORD __stdcall GetPriority(void) = 0; virtual __declspec(nothrow) void __stdcall PreLoad(void) = 0; virtual __declspec(nothrow) D3DRESOURCETYPE __stdcall GetType(void) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetContainer( const IID & riid,void** ppContainer) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetDesc( D3DSURFACE_DESC *pDesc) = 0; virtual __declspec(nothrow) HRESULT __stdcall LockRect( D3DLOCKED_RECT* pLockedRect,const RECT* pRect,DWORD Flags) = 0; virtual __declspec(nothrow) HRESULT __stdcall UnlockRect(void) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetDC( HDC *phdc) = 0; virtual __declspec(nothrow) HRESULT __stdcall ReleaseDC( HDC hdc) = 0; LPCWSTR Name; UINT Width; UINT Height; DWORD Usage; D3DFORMAT Format; D3DPOOL Pool; D3DMULTISAMPLE_TYPE MultiSampleType; DWORD MultiSampleQuality; DWORD Priority; UINT LockCount; UINT DCCount; LPCWSTR CreationCallStack; #line 2177 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" }; typedef struct IDirect3DSurface9 *LPDIRECT3DSURFACE9, *PDIRECT3DSURFACE9; #line 2200 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" #line 2218 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" struct __declspec(novtable) IDirect3DVolume9 : public IUnknown { /*** IUnknown methods ***/ virtual __declspec(nothrow) HRESULT __stdcall QueryInterface( const IID & riid, void** ppvObj) = 0; virtual __declspec(nothrow) ULONG __stdcall AddRef(void) = 0; virtual __declspec(nothrow) ULONG __stdcall Release(void) = 0; /*** IDirect3DVolume9 methods ***/ virtual __declspec(nothrow) HRESULT __stdcall GetDevice( IDirect3DDevice9** ppDevice) = 0; virtual __declspec(nothrow) HRESULT __stdcall SetPrivateData( const GUID & refguid,const void* pData,DWORD SizeOfData,DWORD Flags) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetPrivateData( const GUID & refguid,void* pData,DWORD* pSizeOfData) = 0; virtual __declspec(nothrow) HRESULT __stdcall FreePrivateData( const GUID & refguid) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetContainer( const IID & riid,void** ppContainer) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetDesc( D3DVOLUME_DESC *pDesc) = 0; virtual __declspec(nothrow) HRESULT __stdcall LockBox( D3DLOCKED_BOX * pLockedVolume,const D3DBOX* pBox,DWORD Flags) = 0; virtual __declspec(nothrow) HRESULT __stdcall UnlockBox(void) = 0; LPCWSTR Name; UINT Width; UINT Height; UINT Depth; DWORD Usage; D3DFORMAT Format; D3DPOOL Pool; UINT LockCount; LPCWSTR CreationCallStack; #line 2254 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" }; typedef struct IDirect3DVolume9 *LPDIRECT3DVOLUME9, *PDIRECT3DVOLUME9; #line 2271 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" #line 2283 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" struct __declspec(novtable) IDirect3DQuery9 : public IUnknown { /*** IUnknown methods ***/ virtual __declspec(nothrow) HRESULT __stdcall QueryInterface( const IID & riid, void** ppvObj) = 0; virtual __declspec(nothrow) ULONG __stdcall AddRef(void) = 0; virtual __declspec(nothrow) ULONG __stdcall Release(void) = 0; /*** IDirect3DQuery9 methods ***/ virtual __declspec(nothrow) HRESULT __stdcall GetDevice( IDirect3DDevice9** ppDevice) = 0; virtual __declspec(nothrow) D3DQUERYTYPE __stdcall GetType(void) = 0; virtual __declspec(nothrow) DWORD __stdcall GetDataSize(void) = 0; virtual __declspec(nothrow) HRESULT __stdcall Issue( DWORD dwIssueFlags) = 0; virtual __declspec(nothrow) HRESULT __stdcall GetData( void* pData,DWORD dwSize,DWORD dwGetDataFlags) = 0; D3DQUERYTYPE Type; DWORD DataSize; LPCWSTR CreationCallStack; #line 2309 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" }; typedef struct IDirect3DQuery9 *LPDIRECT3DQUERY9, *PDIRECT3DQUERY9; #line 2323 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" #line 2332 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" /**************************************************************************** * Flags for SetPrivateData method on all D3D9 interfaces * * The passed pointer is an IUnknown ptr. The SizeOfData argument to SetPrivateData * must be set to sizeof(IUnknown*). Direct3D will call AddRef through this * pointer and Release when the private data is destroyed. The data will be * destroyed when another SetPrivateData with the same GUID is set, when * FreePrivateData is called, or when the D3D9 object is freed. ****************************************************************************/ /**************************************************************************** * * Flags for IDirect3D9::CreateDevice's BehaviorFlags * ****************************************************************************/ // This flag causes the D3D runtime not to alter the focus // window in any way. Use with caution- the burden of supporting // focus management events (alt-tab, etc.) falls on the // application, and appropriate responses (switching display // mode, etc.) should be coded. // Disable multithreading for software vertex processing // This flag enables present statistics on device. // This flag disables printscreen support in the runtime for this device /**************************************************************************** * * Parameter for IDirect3D9::CreateDevice's Adapter argument * ****************************************************************************/ /**************************************************************************** * * Flags for IDirect3D9::EnumAdapters * ****************************************************************************/ /* * The D3DENUM_WHQL_LEVEL value has been retired for this and future versions. * See the DirectX SDK for sample code on discovering driver signatures. */ /* NO_DRIVERVERSION will not fill out the DriverVersion field, nor will the DriverVersion be incorporated into the DeviceIdentifier GUID. WINNT only */ /**************************************************************************** * * Maximum number of back-buffers supported in DX9 * ****************************************************************************/ /**************************************************************************** * * Maximum number of back-buffers supported when apps use CreateDeviceEx * ****************************************************************************/ /**************************************************************************** * * Flags for IDirect3DDevice9::SetGammaRamp * ****************************************************************************/ /**************************************************************************** * * Flags for IDirect3DDevice9::SetCursorPosition * ****************************************************************************/ /**************************************************************************** * * Flags for IDirect3DSwapChain9::Present * ****************************************************************************/ /**************************************************************************** * * Flags for DrawPrimitive/DrawIndexedPrimitive * Also valid for Begin/BeginIndexed * Also valid for VertexBuffer::CreateVertexBuffer ****************************************************************************/ /* * DirectDraw error codes */ /* * Direct3D Errors */ }; #line 2505 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" #line 2507 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" #line 2508 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" #line 45 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\LayerManagerD3D9.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxContext.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * Vladimir Vukicevic * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxTypes.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 43 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxContext.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxASurface.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 45 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxContext.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxColor.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 46 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxContext.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxPoint.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 47 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxContext.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxRect.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 48 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxContext.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxMatrix.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 49 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxContext.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxPattern.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 50 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxContext.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxPath.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is IBM Corporation code. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by the Initial Developer are Copyright (C) 2007 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxTypes.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 41 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxPath.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupportsImpl.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is XPCOM. * * The Initial Developer of the Original Code is Netscape Communications Corp. * Portions created by the Initial Developer are Copyright (C) 2001 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 42 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxPath.h" class gfxContext; struct gfxPoint; typedef struct cairo_path cairo_path_t; /** * Class representing a path. Can be created by copying the current path * of a gfxContext. */ class __declspec(dllexport) gfxPath { public: void AddRef(void) { do { if (!(PRInt32(mRefCnt) >= 0)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "illegal refcnt", "PRInt32(mRefCnt) >= 0", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxPath.h", 52); } } while (0); do { if (NS_IsCycleCollectorThread_P()) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Changing refcount of " "gfxPath" " object during Traverse is " "not permitted!", "Error", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxPath.h", 52); } else { do { if (!(_mOwningThread.GetThread() == PR_GetCurrentThread())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "gfxPath" " not thread-safe", "_mOwningThread.GetThread() == PR_GetCurrentThread()", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxPath.h", 52); } } while (0); } } while (0); ++mRefCnt; NS_LogAddRef_P((this), (mRefCnt), ("gfxPath"), (PRUint32) (sizeof(*this))); } void Release(void) { do { if (!(0 != mRefCnt)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "dup release", "0 != mRefCnt", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxPath.h", 52); } } while (0); do { if (NS_IsCycleCollectorThread_P()) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Changing refcount of " "gfxPath" " object during Traverse is " "not permitted!", "Error", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxPath.h", 52); } else { do { if (!(_mOwningThread.GetThread() == PR_GetCurrentThread())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "gfxPath" " not thread-safe", "_mOwningThread.GetThread() == PR_GetCurrentThread()", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxPath.h", 52); } } while (0); } } while (0); --mRefCnt; NS_LogRelease_P((this), (mRefCnt), ("gfxPath")); if (mRefCnt == 0) { do { if (!(_mOwningThread.GetThread() == PR_GetCurrentThread())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "gfxPath" " not thread-safe", "_mOwningThread.GetThread() == PR_GetCurrentThread()", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxPath.h", 52); } } while (0); mRefCnt = 1; delete this; } } protected: nsAutoRefCnt mRefCnt; nsAutoOwningThread _mOwningThread; public: friend class gfxContext; protected: gfxPath(cairo_path_t* aPath); public: virtual ~gfxPath(); protected: cairo_path_t* mPath; }; /** * Specialization of a path that only contains linear pieces. Can be created * from the existing path of a gfxContext. */ class __declspec(dllexport) gfxFlattenedPath : public gfxPath { friend class gfxContext; protected: gfxFlattenedPath(cairo_path_t* aPath); public: virtual ~gfxFlattenedPath(); /** * Returns calculated total length of path */ gfxFloat GetLength(); /** * Returns a point a certain distance along the path. Return is * first or last point of the path if the requested length offset * is outside the range for the path. * @param aOffset offset inpath parameter space (x=length, y=normal offset) * @param aAngle optional - output tangent */ gfxPoint FindPoint(gfxPoint aOffset, gfxFloat* aAngle = 0L); }; #line 96 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxPath.h" #line 51 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxContext.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupportsImpl.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is XPCOM. * * The Initial Developer of the Original Code is Netscape Communications Corp. * Portions created by the Initial Developer are Copyright (C) 2001 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 52 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxContext.h" typedef struct _cairo cairo_t; /** * This is the main class for doing actual drawing. It is initialized using * a surface and can be drawn on. It manages various state information like * a current transformation matrix (CTM), a current path, current color, * etc. * * All drawing happens by creating a path and then stroking or filling it. * The functions like Rectangle and Arc do not do any drawing themselves. * When a path is drawn (stroked or filled), it is filled/stroked with a * pattern set by SetPattern, SetColor or SetSource. * * Note that the gfxContext takes coordinates in device pixels, * as opposed to app units. */ class __declspec(dllexport) gfxContext { public: void AddRef(void) { do { if (!(PRInt32(mRefCnt) >= 0)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "illegal refcnt", "PRInt32(mRefCnt) >= 0", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxContext.h", 70); } } while (0); do { if (NS_IsCycleCollectorThread_P()) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Changing refcount of " "gfxContext" " object during Traverse is " "not permitted!", "Error", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxContext.h", 70); } else { do { if (!(_mOwningThread.GetThread() == PR_GetCurrentThread())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "gfxContext" " not thread-safe", "_mOwningThread.GetThread() == PR_GetCurrentThread()", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxContext.h", 70); } } while (0); } } while (0); ++mRefCnt; NS_LogAddRef_P((this), (mRefCnt), ("gfxContext"), (PRUint32) (sizeof(*this))); } void Release(void) { do { if (!(0 != mRefCnt)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "dup release", "0 != mRefCnt", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxContext.h", 70); } } while (0); do { if (NS_IsCycleCollectorThread_P()) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Changing refcount of " "gfxContext" " object during Traverse is " "not permitted!", "Error", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxContext.h", 70); } else { do { if (!(_mOwningThread.GetThread() == PR_GetCurrentThread())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "gfxContext" " not thread-safe", "_mOwningThread.GetThread() == PR_GetCurrentThread()", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxContext.h", 70); } } while (0); } } while (0); --mRefCnt; NS_LogRelease_P((this), (mRefCnt), ("gfxContext")); if (mRefCnt == 0) { do { if (!(_mOwningThread.GetThread() == PR_GetCurrentThread())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "gfxContext" " not thread-safe", "_mOwningThread.GetThread() == PR_GetCurrentThread()", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxContext.h", 70); } } while (0); mRefCnt = 1; delete this; } } protected: nsAutoRefCnt mRefCnt; nsAutoOwningThread _mOwningThread; public: public: /** * Initialize this context from a surface. */ gfxContext(gfxASurface *surface); ~gfxContext(); /** * Return the surface that this gfxContext was created with */ gfxASurface *OriginalSurface(); /** * Return the current transparency group target, if any, along * with its device offsets from the top. If no group is * active, returns the surface the gfxContext was created with, * and 0,0 in dx,dy. */ already_AddRefed CurrentSurface(gfxFloat *dx, gfxFloat *dy); already_AddRefed CurrentSurface() { return CurrentSurface(0, 0); } /** * Return the raw cairo_t object. * XXX this should go away at some point. */ cairo_t *GetCairo() { return mCairo; } /** * Returns true if the cairo context is in an error state. */ PRBool HasError(); /** ** State **/ // XXX document exactly what bits are saved void Save(); void Restore(); /** ** Paths & Drawing **/ /** * Stroke the current path using the current settings (such as line * width and color). * A path is set up using functions such as Line, Rectangle and Arc. * * Does not consume the current path. */ void Stroke(); /** * Fill the current path according to the current settings. * * Does not consume the current path. */ void Fill(); /** * Forgets the current path. */ void NewPath(); /** * Closes the path, i.e. connects the last drawn point to the first one. * * Filling a path will implicitly close it. */ void ClosePath(); /** * Copies the current path and returns the copy. */ already_AddRefed CopyPath() const; /** * Appends the given path to the current path. */ void AppendPath(gfxPath* path); /** * Moves the pen to a new point without drawing a line. */ void MoveTo(const gfxPoint& pt); /** * Creates a new subpath starting at the current point. * Equivalent to MoveTo(CurrentPoint()). */ void NewSubPath(); /** * Returns the current point in the current path. */ gfxPoint CurrentPoint() const; /** * Draws a line from the current point to pt. * * @see MoveTo */ void LineTo(const gfxPoint& pt); /** * Draws a cubic Bézier curve with control points pt1, pt2 and pt3. */ void CurveTo(const gfxPoint& pt1, const gfxPoint& pt2, const gfxPoint& pt3); /** * Draws a quadratic Bézier curve with control points pt1, pt2 and pt3. */ void QuadraticCurveTo(const gfxPoint& pt1, const gfxPoint& pt2); /** * Draws a clockwise arc (i.e. a circle segment). * @param center The center of the circle * @param radius The radius of the circle * @param angle1 Starting angle for the segment * @param angle2 Ending angle */ void Arc(const gfxPoint& center, gfxFloat radius, gfxFloat angle1, gfxFloat angle2); /** * Draws a counter-clockwise arc (i.e. a circle segment). * @param center The center of the circle * @param radius The radius of the circle * @param angle1 Starting angle for the segment * @param angle2 Ending angle */ void NegativeArc(const gfxPoint& center, gfxFloat radius, gfxFloat angle1, gfxFloat angle2); // path helpers /** * Draws a line from start to end. */ void Line(const gfxPoint& start, const gfxPoint& end); // XXX snapToPixels option? /** * Draws the rectangle given by rect. * @param snapToPixels ? */ void Rectangle(const gfxRect& rect, PRBool snapToPixels = 0); /** * Draw an ellipse at the center corner with the given dimensions. * It extends dimensions.width / 2.0 in the horizontal direction * from the center, and dimensions.height / 2.0 in the vertical * direction. */ void Ellipse(const gfxPoint& center, const gfxSize& dimensions); /** * Draw a polygon from the given points */ void Polygon(const gfxPoint *points, PRUint32 numPoints); /* * Draw a rounded rectangle, with the given outer rect and * corners. The corners specify the radii of the two axes of an * ellipse (the horizontal and vertical directions given by the * width and height, respectively). By default the ellipse is * drawn in a clockwise direction; if draw_clockwise is PR_FALSE, * then it's drawn counterclockwise. */ void RoundedRectangle(const gfxRect& rect, const gfxCornerSizes& corners, PRBool draw_clockwise = 1); /** ** Transformation Matrix manipulation **/ /** * Adds a translation to the current matrix. This translation takes place * before the previously set transformations. */ void Translate(const gfxPoint& pt); /** * Adds a scale to the current matrix. This scaling takes place before the * previously set transformations. */ void Scale(gfxFloat x, gfxFloat y); /** * Adds a rotation around the origin to the current matrix. This rotation * takes place before the previously set transformations. * * @param angle The angle in radians. */ void Rotate(gfxFloat angle); /** * Post-multiplies 'other' onto the current CTM, i.e. this * matrix's transformation will take place before the previously set * transformations. */ void Multiply(const gfxMatrix& other); /** * Replaces the current transformation matrix with matrix. */ void SetMatrix(const gfxMatrix& matrix); /** * Sets the transformation matrix to the identity matrix. */ void IdentityMatrix(); /** * Returns the current transformation matrix. */ gfxMatrix CurrentMatrix() const; /** * Snap components of the current matrix that are close to integers * to integers. In particular, components that are integral when * converted to single precision are set to those integers. */ void NudgeCurrentMatrixToIntegers(); /** * Converts a point from device to user coordinates using the inverse * transformation matrix. */ gfxPoint DeviceToUser(const gfxPoint& point) const; /** * Converts a size from device to user coordinates. This does not apply * translation components of the matrix. */ gfxSize DeviceToUser(const gfxSize& size) const; /** * Converts a rectangle from device to user coordinates; this has the * same effect as using DeviceToUser on both the rectangle's point and * size. */ gfxRect DeviceToUser(const gfxRect& rect) const; /** * Converts a point from user to device coordinates using the inverse * transformation matrix. */ gfxPoint UserToDevice(const gfxPoint& point) const; /** * Converts a size from user to device coordinates. This does not apply * translation components of the matrix. */ gfxSize UserToDevice(const gfxSize& size) const; /** * Converts a rectangle from user to device coordinates. The * resulting rectangle is the minimum device-space rectangle that * encloses the user-space rectangle given. */ gfxRect UserToDevice(const gfxRect& rect) const; /** * Takes the given rect and tries to align it to device pixels. If * this succeeds, the method will return PR_TRUE, and the rect will * be in device coordinates (already transformed by the CTM). If it * fails, the method will return PR_FALSE, and the rect will not be * changed. * * If ignoreScale is PR_TRUE, then snapping will take place even if * the CTM has a scale applied. Snapping never takes place if * there is a rotation in the CTM. */ PRBool UserToDevicePixelSnapped(gfxRect& rect, PRBool ignoreScale = 0) const; /** * Takes the given point and tries to align it to device pixels. If * this succeeds, the method will return PR_TRUE, and the point will * be in device coordinates (already transformed by the CTM). If it * fails, the method will return PR_FALSE, and the point will not be * changed. * * If ignoreScale is PR_TRUE, then snapping will take place even if * the CTM has a scale applied. Snapping never takes place if * there is a rotation in the CTM. */ PRBool UserToDevicePixelSnapped(gfxPoint& pt, PRBool ignoreScale = 0) const; /** * Attempts to pixel snap the rectangle, add it to the current * path, and to set pattern as the current painting source. This * should be used for drawing filled pixel-snapped rectangles (like * images), because the CTM at the time of the SetPattern call needs * to have a snapped translation, or you get smeared images. */ void PixelSnappedRectangleAndSetPattern(const gfxRect& rect, gfxPattern *pattern); /** ** Painting sources **/ /** * Set a solid color to use for drawing. This color is in the device color space * and is not transformed. */ void SetDeviceColor(const gfxRGBA& c); /** * Gets the current color. It's returned in the device color space. * returns PR_FALSE if there is something other than a color * set as the current source (pattern, surface, etc) */ PRBool GetDeviceColor(gfxRGBA& c); /** * Set a solid color in the sRGB color space to use for drawing. * If CMS is not enabled, the color is treated as a device-space color * and this call is identical to SetDeviceColor(). */ void SetColor(const gfxRGBA& c); /** * Uses a surface for drawing. This is a shorthand for creating a * pattern and setting it. * * @param offset from the source surface, to use only part of it. * May need to make it negative. */ void SetSource(gfxASurface *surface, const gfxPoint& offset = gfxPoint(0.0, 0.0)); /** * Uses a pattern for drawing. */ void SetPattern(gfxPattern *pattern); /** * Get the source pattern (solid color, normal pattern, surface, etc) */ already_AddRefed GetPattern(); /** ** Painting **/ /** * Paints the current source surface/pattern everywhere in the current * clip region. */ void Paint(gfxFloat alpha = 1.0); /** ** Painting with a Mask **/ /** * Like Paint, except that it only draws the source where pattern is * non-transparent. */ void Mask(gfxPattern *pattern); /** * Shorthand for creating a pattern and calling the pattern-taking * variant of Mask. */ void Mask(gfxASurface *surface, const gfxPoint& offset = gfxPoint(0.0, 0.0)); /** ** Shortcuts **/ /** * Creates a new path with a rectangle from 0,0 to size.w,size.h * and calls cairo_fill. */ void DrawSurface(gfxASurface *surface, const gfxSize& size); /** ** Line Properties **/ typedef enum { gfxLineSolid, gfxLineDashed, gfxLineDotted } gfxLineType; void SetDash(gfxLineType ltype); void SetDash(gfxFloat *dashes, int ndash, gfxFloat offset); //void getDash() const; /** * Sets the line width that's used for line drawing. */ void SetLineWidth(gfxFloat width); /** * Returns the currently set line width. * * @see SetLineWidth */ gfxFloat CurrentLineWidth() const; enum GraphicsLineCap { LINE_CAP_BUTT, LINE_CAP_ROUND, LINE_CAP_SQUARE }; /** * Sets the line caps, i.e. how line endings are drawn. */ void SetLineCap(GraphicsLineCap cap); GraphicsLineCap CurrentLineCap() const; enum GraphicsLineJoin { LINE_JOIN_MITER, LINE_JOIN_ROUND, LINE_JOIN_BEVEL }; /** * Sets the line join, i.e. how the connection between two lines is * drawn. */ void SetLineJoin(GraphicsLineJoin join); GraphicsLineJoin CurrentLineJoin() const; void SetMiterLimit(gfxFloat limit); gfxFloat CurrentMiterLimit() const; /** ** Fill Properties **/ enum FillRule { FILL_RULE_WINDING, FILL_RULE_EVEN_ODD }; void SetFillRule(FillRule rule); FillRule CurrentFillRule() const; /** ** Operators and Rendering control **/ // define enum for operators (clear, src, dst, etc) enum GraphicsOperator { OPERATOR_CLEAR, OPERATOR_SOURCE, OPERATOR_OVER, OPERATOR_IN, OPERATOR_OUT, OPERATOR_ATOP, OPERATOR_DEST, OPERATOR_DEST_OVER, OPERATOR_DEST_IN, OPERATOR_DEST_OUT, OPERATOR_DEST_ATOP, OPERATOR_XOR, OPERATOR_ADD, OPERATOR_SATURATE }; /** * Sets the operator used for all further drawing. The operator affects * how drawing something will modify the destination. For example, the * OVER operator will do alpha blending of source and destination, while * SOURCE will replace the destination with the source. * * Note that if the flag FLAG_SIMPLIFY_OPERATORS is set on this * gfxContext, the actual operator set might change for optimization * purposes. Check the comments below around that flag. */ void SetOperator(GraphicsOperator op); GraphicsOperator CurrentOperator() const; /** * MODE_ALIASED means that only pixels whose centers are in the drawn area * should be modified, and they should be modified to take the value drawn * at the pixel center. */ enum AntialiasMode { MODE_ALIASED, MODE_COVERAGE }; void SetAntialiasMode(AntialiasMode mode); AntialiasMode CurrentAntialiasMode() const; /** ** Clipping **/ /** * Clips all further drawing to the current path. * This does not consume the current path. */ void Clip(); /** * Undoes any clipping. Further drawings will only be restricted by the * surface dimensions. */ void ResetClip(); /** * Helper functions that will create a rect path and call Clip(). * Any current path will be destroyed by these functions! */ void Clip(const gfxRect& rect); // will clip to a rect /** * This will ensure that the surface actually has its clip set. * Useful if you are doing native drawing. */ void UpdateSurfaceClip(); /** * This will return the current bounds of the clip region in user * space. */ gfxRect GetClipExtents(); /** * Groups */ void PushGroup(gfxASurface::gfxContentType content = gfxASurface::CONTENT_COLOR); already_AddRefed PopGroup(); void PopGroupToSource(); /** ** Hit Testing - check if given point is in the current path **/ PRBool PointInFill(const gfxPoint& pt); PRBool PointInStroke(const gfxPoint& pt); /** ** Extents - returns user space extent of current path **/ gfxRect GetUserPathExtent(); gfxRect GetUserFillExtent(); gfxRect GetUserStrokeExtent(); /** ** Obtaining a "flattened" path - path converted to all line segments **/ already_AddRefed GetFlattenedPath(); /** ** Flags **/ enum { /* If this flag is set, operators other than CLEAR, SOURCE, or * OVER will be converted to OVER before being sent to cairo. * * This is most useful with a printing surface, where * operators such as ADD are used to avoid seams for on-screen * display, but where such errors aren't noticeable in print. * This approach is currently used in border rendering. * * However, when printing complex renderings such as SVG, * care should be taken to clear this flag. */ FLAG_SIMPLIFY_OPERATORS = (1 << 0), /** * When this flag is set, snapping to device pixels is disabled. * It simply never does anything. */ FLAG_DISABLE_SNAPPING = (1 << 1) }; void SetFlag(PRInt32 aFlag) { mFlags |= aFlag; } void ClearFlag(PRInt32 aFlag) { mFlags &= ~aFlag; } PRInt32 GetFlags() const { return mFlags; } private: cairo_t *mCairo; nsRefPtr mSurface; PRInt32 mFlags; }; /** * Sentry helper class for functions with multiple return points that need to * call Save() on a gfxContext and have Restore() called automatically on the * gfxContext before they return. */ class __declspec(dllexport) gfxContextAutoSaveRestore { public: gfxContextAutoSaveRestore() : mContext(0L) {} gfxContextAutoSaveRestore(gfxContext *aContext) : mContext(aContext) { mContext->Save(); } ~gfxContextAutoSaveRestore() { if (mContext) { mContext->Restore(); } } void SetContext(gfxContext *aContext) { do { if (!(!mContext)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Not going to call Restore() on some context!!!", "!mContext", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxContext.h", 675); } } while (0); mContext = aContext; mContext->Save(); } void Reset(gfxContext *aContext) { // Do the equivalent of destroying and re-creating this object. do { if (!(aContext)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "must provide a context", "aContext", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxContext.h", 682); } } while (0); if (mContext) { mContext->Restore(); } mContext = aContext; mContext->Save(); } private: gfxContext *mContext; }; /** * Sentry helper class for functions with multiple return points that need to * back up the current path of a context and have it automatically restored * before they return. This class assumes that the transformation matrix will * be the same when Save and Restore are called. The calling function must * ensure that this is the case or the path will be copied incorrectly. */ class __declspec(dllexport) gfxContextPathAutoSaveRestore { public: gfxContextPathAutoSaveRestore() : mContext(0L) {} gfxContextPathAutoSaveRestore(gfxContext *aContext, PRBool aSave = 1) : mContext(aContext) { if (aSave) Save(); } ~gfxContextPathAutoSaveRestore() { Restore(); } void SetContext(gfxContext *aContext, PRBool aSave = 1) { mContext = aContext; if (aSave) Save(); } /** * If a path is already saved, does nothing. Else copies the current path * so that it may be restored. */ void Save() { if (!mPath && mContext) { mPath = mContext->CopyPath(); } } /** * If no path is saved, does nothing. Else replaces the context's path with * a copy of the saved one, and clears the saved path. */ void Restore() { if (mPath) { mContext->NewPath(); mContext->AppendPath(mPath); mPath = 0L; } } private: gfxContext *mContext; nsRefPtr mPath; }; /** * Sentry helper class for functions with multiple return points that need to * back up the current matrix of a context and have it automatically restored * before they return. */ class __declspec(dllexport) gfxContextMatrixAutoSaveRestore { public: gfxContextMatrixAutoSaveRestore(gfxContext *aContext) : mContext(aContext), mMatrix(aContext->CurrentMatrix()) { } ~gfxContextMatrixAutoSaveRestore() { mContext->SetMatrix(mMatrix); } const gfxMatrix& Matrix() { return mMatrix; } private: gfxContext *mContext; gfxMatrix mMatrix; }; #line 783 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxContext.h" #line 47 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\LayerManagerD3D9.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIWidget.h" /* -*- Mode: C++; tab-width: 40; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupports.h" /* * DO NOT EDIT. THIS FILE IS GENERATED FROM c:/build/hg.instantbird.org/mozilla/xpcom/base/nsISupports.idl */ #line 42 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIWidget.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsColor.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxCore.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Marco Pesenti Gritti * Portions created by the Initial Developer are Copyright (C) 2004 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 42 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsColor.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 43 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsColor.h" class nsAString_internal; class nsString; class nsCString; // A color is a 32 bit unsigned integer with four components: R, G, B // and A. typedef PRUint32 nscolor; // Make a color out of r,g,b values. This assumes that the r,g,b values are // properly constrained to 0-255. This also assumes that a is 255. // Make a color out of r,g,b,a values. This assumes that the r,g,b,a // values are properly constrained to 0-255. // Extract color components from nscolor // Fast approximate division by 255. It has the property that // for all 0 <= n <= 255*255, FAST_DIVIDE_BY_255(n) == n/255. // But it only uses two adds and two shifts instead of an // integer division (which is expensive on many processors). // // equivalent to target=v/255 // Translate a hex string to a color. Return true if it parses ok, // otherwise return false. // This accepts only 3 or 6 digits PRBool NS_HexToRGB(const nsString& aBuf, nscolor* aResult); // Compose one NS_RGB color onto another. The result is what // you get if you draw aFG on top of aBG with operator OVER. nscolor NS_ComposeColors(nscolor aBG, nscolor aFG); // Translate a hex string to a color. Return true if it parses ok, // otherwise return false. // This version accepts 1 to 9 digits (missing digits are 0) PRBool NS_LooseHexToRGB(const nsString& aBuf, nscolor* aResult); // There is no function to translate a color to a hex string, because // the hex-string syntax does not support transparency. // Translate a color name to a color. Return true if it parses ok, // otherwise return false. PRBool NS_ColorNameToRGB(const nsAString_internal& aBuf, nscolor* aResult); // function to convert from HSL color space to RGB color space // the float parameters are all expected to be in the range 0-1 nscolor NS_HSL2RGB(float h, float s, float l); #line 106 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsColor.h" #line 43 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIWidget.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCoord.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 44 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIWidget.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsRect.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 45 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIWidget.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsPoint.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 46 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIWidget.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsRegion.h" /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Dainis Jonitis, . * Portions created by the Initial Developer are Copyright (C) 2001 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 47 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIWidget.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsStringGlue.h" /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla XPCOM Glue. * * The Initial Developer of the Original Code is * the Mozilla Foundation . * * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Benjamin Smedberg * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /** * @file nsStringGlue.h * This header exists solely to #include the proper internal/frozen string * headers, depending on whether MOZILLA_INTERNAL_API is defined. */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsString.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 50 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsStringGlue.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsReadableUtils.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Scott Collins (original author) * Johnny Stenbeck * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 51 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsStringGlue.h" #line 54 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsStringGlue.h" #line 56 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsStringGlue.h" #line 48 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIWidget.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prthread.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 50 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIWidget.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsEvent.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* * This is in a separate header file because it needs to be included * in many places where including nsGUIEvent.h would bring in many * header files that are totally unnecessary. */ enum UIStateChangeType { UIStateChangeType_NoChange, UIStateChangeType_Set, UIStateChangeType_Clear }; /** * Return status for event processors. */ enum nsEventStatus { /// The event is ignored, do default processing nsEventStatus_eIgnore, /// The event is consumed, don't do default processing nsEventStatus_eConsumeNoDefault, /// The event is consumed, but do default processing nsEventStatus_eConsumeDoDefault }; /** * sizemode is an adjunct to widget size */ enum nsSizeMode { nsSizeMode_Normal = 0, nsSizeMode_Minimized, nsSizeMode_Maximized, nsSizeMode_Fullscreen }; class nsEvent; class nsGUIEvent; class nsSizeEvent; class nsSizeModeEvent; class nsZLevelEvent; class nsPaintEvent; class nsScrollbarEvent; class nsScrollPortEvent; class nsInputEvent; class nsMouseEvent; class nsDragEvent; class nsAccessibleEvent; #line 91 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsEvent.h" class nsKeyEvent; class nsTextEvent; class nsCompositionEvent; class nsMouseScrollEvent; class nsReconversionEvent; class nsTooltipEvent; class nsSimpleGestureEvent; class nsMozTouchEvent; class nsContentCommandEvent; #line 102 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsEvent.h" #line 51 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIWidget.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCOMPtr.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Scott Collins (original author) * L. David Baron * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 52 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIWidget.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsITheme.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- * * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Mozilla browser. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1999 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* service providing platform-specific native rendering for widgets */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupports.h" /* * DO NOT EDIT. THIS FILE IS GENERATED FROM c:/build/hg.instantbird.org/mozilla/xpcom/base/nsISupports.idl */ #line 45 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsITheme.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCOMPtr.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Scott Collins (original author) * L. David Baron * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 46 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsITheme.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsColor.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 47 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsITheme.h" struct nsRect; struct nsIntRect; struct nsIntSize; struct nsFont; struct nsIntMargin; class nsPresContext; class nsIRenderingContext; class nsIDeviceContext; class nsIFrame; class nsIContent; class nsIAtom; class nsIWidget; // IID for the nsITheme interface // {887e8902-db6b-41b4-8481-a80f49c5a93a} // {D930E29B-6909-44e5-AB4B-AF10D6923705} enum nsTransparencyMode { eTransparencyOpaque = 0, // Fully opaque eTransparencyTransparent, // Parts of the window may be transparent eTransparencyGlass, // Transparent parts of the window have Vista AeroGlass effect applied eTransparencyBorderlessGlass // As above, but without a border around the opaque areas when there would otherwise be one with eTransparencyGlass }; /** * nsITheme is a service that provides platform-specific native * rendering for widgets. In other words, it provides the necessary * operations to draw a rendering object (an nsIFrame) as a native * widget. * * All the methods on nsITheme take a rendering context or device * context, a frame (the rendering object), and a widget type (one of * the constants in nsThemeConstants.h). */ class nsITheme: public nsISupports { public: template struct COMTypeInfo { static const nsIID kIID ; }; static const nsIID& GetIID() {return COMTypeInfo::kIID;} /** * Draw the actual theme background. * @param aContext the context to draw into * @param aFrame the frame for the widget that we're drawing * @param aWidgetType the -moz-appearance value to draw * @param aRect the rectangle defining the area occupied by the widget * @param aDirtyRect the rectangle that needs to be drawn */ virtual nsresult __stdcall DrawWidgetBackground(nsIRenderingContext* aContext, nsIFrame* aFrame, PRUint8 aWidgetType, const nsRect& aRect, const nsRect& aDirtyRect) = 0; /** * Notifies the theme engine that a particular themed widget exists * at the given rectangle within the window aWindow. * For certain appearance values (currently only * NS_THEME_MOZ_MAC_UNIFIED_TOOLBAR and NS_THEME_TOOLBAR) this gets * called during every paint to a window, for every themed widget of * the right type within the * window, except for themed widgets which are transformed or have * effects applied to them (e.g. CSS opacity or filters). * Note that a DrawWidgetBackground for the widget might not be called * during the paint, since ThebesLayers can cache rendered content. * This could sometimes be called during display list construction * outside of painting. * If called during painting, it will be called before we actually * paint anything. * * @param aWidgetType the -moz-appearance value for the themed widget * @param aRect the device-pixel rect within aWindow for the themed * widget */ virtual void RegisterWidgetGeometry(nsIWidget* aWindow, PRUint8 aWidgetType, const nsIntRect& aRect) {} /** * Get the computed CSS border for the widget, in pixels. */ virtual nsresult __stdcall GetWidgetBorder(nsIDeviceContext* aContext, nsIFrame* aFrame, PRUint8 aWidgetType, nsIntMargin* aResult)=0; /** * This method can return PR_FALSE to indicate that the CSS padding * value should be used. Otherwise, it will fill in aResult with the * computed padding, in pixels, and return PR_TRUE. * * XXXldb This ought to be required to return true for non-containers * so that we don't let specified padding that has no effect change * the computed padding and potentially the size. */ virtual PRBool GetWidgetPadding(nsIDeviceContext* aContext, nsIFrame* aFrame, PRUint8 aWidgetType, nsIntMargin* aResult) = 0; /** * On entry, *aResult is positioned at 0,0 and sized to the new size * of aFrame (aFrame->GetSize() may be stale and should not be used). * This method can return PR_FALSE to indicate that no special * overflow area is required by the native widget. Otherwise it will * fill in aResult with the desired overflow area, in appunits, relative * to the frame origin, and return PR_TRUE. */ virtual PRBool GetWidgetOverflow(nsIDeviceContext* aContext, nsIFrame* aFrame, PRUint8 aWidgetType, /*INOUT*/ nsRect* aOverflowRect) { return 0; } /** * Get the minimum border-box size of a widget, in *pixels* (in * |aResult|). If |aIsOverridable| is set to true, this size is a * minimum size; if false, this size is the only valid size for the * widget. */ virtual nsresult __stdcall GetMinimumWidgetSize(nsIRenderingContext* aContext, nsIFrame* aFrame, PRUint8 aWidgetType, nsIntSize* aResult, PRBool* aIsOverridable)=0; enum Transparency { eOpaque = 0, eTransparent, eUnknownTransparency }; /** * Returns what we know about the transparency of the widget. */ virtual Transparency GetWidgetTransparency(nsIFrame* aFrame, PRUint8 aWidgetType) { return eUnknownTransparency; } virtual nsresult __stdcall WidgetStateChanged(nsIFrame* aFrame, PRUint8 aWidgetType, nsIAtom* aAttribute, PRBool* aShouldRepaint)=0; virtual nsresult __stdcall ThemeChanged()=0; /** * Can the nsITheme implementation handle this widget? */ virtual PRBool ThemeSupportsWidget(nsPresContext* aPresContext, nsIFrame* aFrame, PRUint8 aWidgetType)=0; virtual PRBool WidgetIsContainer(PRUint8 aWidgetType)=0; /** * Does the nsITheme implementation draw its own focus ring for this widget? */ virtual PRBool ThemeDrawsFocusForWidget(nsPresContext* aPresContext, nsIFrame* aFrame, PRUint8 aWidgetType)=0; /** * Should we insert a dropmarker inside of combobox button? */ virtual PRBool ThemeNeedsComboboxDropmarker()=0; }; template const nsIID nsITheme::COMTypeInfo::kIID = { 0x23db7c13, 0x873d, 0x4fb5, { 0xaf, 0x29, 0xc1, 0xe9, 0xed, 0x91, 0x23, 0xf9 } }; // Creator function extern nsresult NS_NewNativeTheme(nsISupports *aOuter, const nsIID& aIID, void **aResult); #line 222 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsITheme.h" #line 53 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIWidget.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsNativeWidget.h" /* -*- Mode: C++; tab-width: 40; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ // Hide the native window systems real window type so as to avoid // including native window system types and APIs. This is necessary // to ensure cross-platform code. typedef void* nsNativeWidget; #line 47 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsNativeWidget.h" #line 54 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIWidget.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsWidgetInitData.h" /* -*- Mode: C++; tab-width: 40; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* ** File: prtypes.h ** Description: Definitions of NSPR's basic types ** ** Prototypes and macros used to make up for deficiencies that we have found ** in ANSI environments. ** ** Since we do not wrap and all the other standard headers, authors ** of portable code will not know in general that they need these definitions. ** Instead of requiring these authors to find the dependent uses in their code ** and take the following steps only in those C files, we take steps once here ** for all C files. **/ #line 42 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsWidgetInitData.h" /** * Window types * * Don't alter previously encoded enum values - 3rd party apps may look at * these. */ enum nsWindowType { eWindowType_toplevel, // default top level window eWindowType_dialog, // top level window but usually handled differently // by the OS eWindowType_popup, // used for combo boxes, etc eWindowType_child, // child windows (contained inside a window on the // desktop (has no border)) eWindowType_invisible, // windows that are invisible or offscreen eWindowType_plugin, // plugin window eWindowType_sheet // MacOSX sheet (special dialog class) }; /** * Popup types * * For eWindowType_popup */ enum nsPopupType { ePopupTypePanel, ePopupTypeMenu, ePopupTypeTooltip, ePopupTypeAny = 0xF000 // used only to pass to // nsXULPopupManager::GetTopPopup }; /** * Popup levels specify the window ordering behaviour. */ enum nsPopupLevel { // the popup appears just above its parent and maintains its position // relative to the parent ePopupLevelParent, // the popup is a floating popup used for tool palettes. A parent window // must be specified, but a platform implementation need not use this. // On Windows, floating is generally equivalent to parent. On Mac, floating // puts the popup at toplevel, but it will hide when the application is deactivated ePopupLevelFloating, // the popup appears on top of other windows, including those of other applications ePopupLevelTop }; /** * Border styles */ enum nsBorderStyle { eBorderStyle_none = 0, // no border, titlebar, etc.. opposite of // all eBorderStyle_all = 1 << 0, // all window decorations eBorderStyle_border = 1 << 1, // enables the border on the window. these // are only for decoration and are not // resize handles eBorderStyle_resizeh = 1 << 2, // enables the resize handles for the // window. if this is set, border is // implied to also be set eBorderStyle_title = 1 << 3, // enables the titlebar for the window eBorderStyle_menu = 1 << 4, // enables the window menu button on the // title bar. this being on should force // the title bar to display eBorderStyle_minimize = 1 << 5, // enables the minimize button so the user // can minimize the window. turned off for // tranient windows since they can not be // minimized separate from their parent eBorderStyle_maximize = 1 << 6, // enables the maxmize button so the user // can maximize the window eBorderStyle_close = 1 << 7, // show the close button eBorderStyle_default = -1 // whatever the OS wants... i.e. don't do // anything }; /** * Basic struct for widget initialization data. * @see Create member function of nsIWidget */ struct nsWidgetInitData { nsWidgetInitData() : mWindowType(eWindowType_child), mBorderStyle(eBorderStyle_default), mPopupHint(ePopupTypePanel), mPopupLevel(ePopupLevelTop), clipChildren(0), clipSiblings(0), mDropShadow(0), mListenForResizes(0), mUnicode(1), mRTL(0), mNoAutoHide(0) { } nsWindowType mWindowType; nsBorderStyle mBorderStyle; nsPopupType mPopupHint; nsPopupLevel mPopupLevel; // when painting exclude area occupied by child windows and sibling windows PRPackedBool clipChildren, clipSiblings, mDropShadow; PRPackedBool mListenForResizes; PRPackedBool mUnicode; PRPackedBool mRTL; PRPackedBool mNoAutoHide; // true for noautohide panels }; #line 152 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsWidgetInitData.h" #line 55 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIWidget.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTArray.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is C++ array template. * * The Initial Developer of the Original Code is Google Inc. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 56 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIWidget.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXULAppAPI.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 2002 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Brian Ryner * Benjamin Smedberg * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* ** File: prtypes.h ** Description: Definitions of NSPR's basic types ** ** Prototypes and macros used to make up for deficiencies that we have found ** in ANSI environments. ** ** Since we do not wrap and all the other standard headers, authors ** of portable code will not know in general that they need these definitions. ** Instead of requiring these authors to find the dependent uses in their code ** and take the following steps only in those C files, we take steps once here ** for all C files. **/ #line 44 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXULAppAPI.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsID.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 45 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXULAppAPI.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\xrecore.h" /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla XULRunner. * * The Initial Developer of the Original Code is * Benjamin Smedberg . * * Portions created by the Initial Developer are Copyright (C) 2005 * the Mozilla Foundation . All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 42 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\xrecore.h" /** * Import/export macros for libXUL APIs. */ #line 55 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\xrecore.h" #line 57 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\xrecore.h" #line 46 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXULAppAPI.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXPCOM.h" /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Benjamin Smedberg * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 47 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXULAppAPI.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupports.h" /* * DO NOT EDIT. THIS FILE IS GENERATED FROM c:/build/hg.instantbird.org/mozilla/xpcom/base/nsISupports.idl */ #line 48 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXULAppAPI.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prlog.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 49 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXULAppAPI.h" /** * Application-specific data needed to start the apprunner. * * @note When this structure is allocated and manipulated by XRE_CreateAppData, * string fields will be allocated with NS_Alloc, and interface pointers * are strong references. */ struct nsXREAppData { /** * This should be set to sizeof(nsXREAppData). This structure may be * extended in future releases, and this ensures that binary compatibility * is maintained. */ PRUint32 size; /** * The directory of the application to be run. May be null if the * xulrunner and the app are installed into the same directory. */ nsILocalFile* directory; /** * The name of the application vendor. This must be ASCII, and is normally * mixed-case, e.g. "Mozilla". Optional (may be null), but highly * recommended. Must not be the empty string. */ const char *vendor; /** * The name of the application. This must be ASCII, and is normally * mixed-case, e.g. "Firefox". Required (must not be null or an empty * string). */ const char *name; /** * The major version, e.g. "0.8.0+". Optional (may be null), but * required for advanced application features such as the extension * manager and update service. Must not be the empty string. */ const char *version; /** * The application's build identifier, e.g. "2004051604" */ const char *buildID; /** * The application's UUID. Used by the extension manager to determine * compatible extensions. Optional, but required for advanced application * features such as the extension manager and update service. * * This has traditionally been in the form * "{AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE}" but for new applications * a more readable form is encouraged: "appname@vendor.tld". Only * the following characters are allowed: a-z A-Z 0-9 - . @ _ { } * */ const char *ID; /** * The copyright information to print for the -h commandline flag, * e.g. "Copyright (c) 2003 mozilla.org". */ const char *copyright; /** * Combination of NS_XRE_ prefixed flags (defined below). */ PRUint32 flags; /** * The location of the XRE. XRE_main may not be able to figure this out * programatically. */ nsILocalFile* xreDirectory; /** * The minimum/maximum compatible XRE version. */ const char *minVersion; const char *maxVersion; /** * The server URL to send crash reports to. */ const char *crashReporterURL; /** * The profile directory that will be used. Optional (may be null). Must not * be the empty string, must be ASCII. The path is split into components * along the path separator characters '/' and '\'. * * The application data directory ("UAppData", see below) is normally * composed as follows, where $HOME is platform-specific: * * UAppData = $HOME[/$vendor]/$name * * If present, the 'profile' string will be used instead of the combination of * vendor and name as follows: * * UAppData = $HOME/$profile */ const char *profile; }; /** * Indicates whether or not the profile migrator service may be * invoked at startup when creating a profile. */ /** * Indicates whether or not the extension manager service should be * initialized at startup. */ /** * Indicates whether or not to use Breakpad crash reporting. */ /** * A directory service key which provides the platform-correct "application * data" directory as follows, where $name and $vendor are as defined above and * $vendor is optional: * * Windows: * HOME = Documents and Settings\$USER\Application Data * UAppData = $HOME[\$vendor]\$name * * Unix: * HOME = ~ * UAppData = $HOME/.[$vendor/]$name * * Mac: * HOME = ~ * UAppData = $HOME/Library/Application Support/$name * * Note that the "profile" member above will change the value of UAppData as * follows: * * Windows: * UAppData = $HOME\$profile * * Unix: * UAppData = $HOME/.$profile * * Mac: * UAppData = $HOME/Library/Application Support/$profile */ /** * A directory service key which provides a list of all enabled extension * directories. The list includes compatible platform-specific extension * subdirectories. * * @note The directory list will have no members when the application is * launched in safe mode. */ /** * A directory service key which provides the executable file used to * launch the current process. This is the same value returned by the * XRE_GetBinaryPath function defined below. */ /** * A directory service key which specifies the profile * directory. Unlike the NS_APP_USER_PROFILE_50_DIR key, this key may * be available when the profile hasn't been "started", or after is * has been shut down. If the application is running without a * profile, such as when showing the profile manager UI, this key will * not be available. This key is provided by the XUL apprunner or by * the aAppDirProvider object passed to XRE_InitEmbedding. */ /** * A directory service key which specifies the profile * directory. Unlike the NS_APP_USER_PROFILE_LOCAL_50_DIR key, this key may * be available when the profile hasn't been "started", or after is * has been shut down. If the application is running without a * profile, such as when showing the profile manager UI, this key will * not be available. This key is provided by the XUL apprunner or by * the aAppDirProvider object passed to XRE_InitEmbedding. */ /** * A directory service key which specifies the system extension * parent directory containing platform-specific extensions. * This key may not be available on all platforms. */ /** * A directory service key which specifies the system extension * parent directory containing platform-independent extensions. * This key may not be available on all platforms. * Additionally, the directory may be equal to that returned by * XRE_SYS_LOCAL_EXTENSION_PARENT_DIR on some platforms. */ /** * A directory service key which specifies the user system extension * parent directory. */ /** * Begin an XUL application. Does not return until the user exits the * application. * * @param argc/argv Command-line parameters to pass to the application. On * Windows, these should be in UTF8. On unix-like platforms * these are in the "native" character set. * * @param aAppData Information about the application to be run. * * @return A native result code suitable for returning from main(). * * @note If the binary is linked against the standalone XPCOM glue, * XPCOMGlueStartup() should be called before this method. * */ extern "C" __declspec(dllexport) int __cdecl XRE_main (int argc, char* argv[], const nsXREAppData* sAppData); #line 283 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXULAppAPI.h" /** * Given a path relative to the current working directory (or an absolute * path), return an appropriate nsILocalFile object. * * @note Pass UTF8 strings on Windows... native charset on other platforms. */ extern "C" __declspec(dllexport) nsresult __cdecl XRE_GetFileFromPath (const char *aPath, nsILocalFile* *aResult); #line 292 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXULAppAPI.h" /** * Get the path of the running application binary and store it in aResult. * @param argv0 The value passed as argv[0] of main(). This value is only * used on *nix, and only when other methods of determining * the binary path have failed. */ extern "C" __declspec(dllexport) nsresult __cdecl XRE_GetBinaryPath (const char *argv0, nsILocalFile* *aResult); #line 301 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXULAppAPI.h" /** * Get the static module built in to libxul. */ extern "C" __declspec(dllexport) const mozilla::Module* __cdecl XRE_GetStaticModule (); #line 307 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXULAppAPI.h" /** * Lock a profile directory using platform-specific semantics. * * @param aDirectory The profile directory to lock. * @param aLockObject An opaque lock object. The directory will remain locked * as long as the XPCOM reference is held. */ extern "C" __declspec(dllexport) nsresult __cdecl XRE_LockProfileDirectory (nsILocalFile* aDirectory, nsISupports* *aLockObject); #line 318 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXULAppAPI.h" /** * Initialize libXUL for embedding purposes. * * @param aLibXULDirectory The directory in which the libXUL shared library * was found. * @param aAppDirectory The directory in which the application components * and resources can be found. This will map to * the NS_OS_CURRENT_PROCESS_DIR directory service * key. * @param aAppDirProvider A directory provider for the application. This * provider will be aggregated by a libxul provider * which will provide the base required GRE keys. * * @note This function must be called from the "main" thread. * * @note At the present time, this function may only be called once in * a given process. Use XRE_TermEmbedding to clean up and free * resources allocated by XRE_InitEmbedding. */ extern "C" __declspec(dllexport) nsresult __cdecl XRE_InitEmbedding2 (nsILocalFile *aLibXULDirectory, nsILocalFile *aAppDirectory, nsIDirectoryServiceProvider *aAppDirProvider); #line 343 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXULAppAPI.h" /** * Register static XPCOM component information. * This method may be called at any time before or after XRE_main or * XRE_InitEmbedding. */ extern "C" __declspec(dllexport) nsresult __cdecl XRE_AddStaticComponent (const mozilla::Module* aComponent); #line 351 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXULAppAPI.h" /** * Register XPCOM components found in an array of files/directories. * This method may be called at any time before or after XRE_main or * XRE_InitEmbedding. * * @param aFiles An array of files or directories. * @param aFileCount the number of items in the aFiles array. * @note appdir/components is registered automatically. * * NS_COMPONENT_LOCATION specifies a location to search for binary XPCOM * components as well as component/chrome manifest files. * * NS_SKIN_LOCATION specifies a location to search for chrome manifest files * which are only allowed to register only skin packages and style overlays. */ enum NSLocationType { NS_COMPONENT_LOCATION, NS_SKIN_LOCATION }; extern "C" __declspec(dllexport) nsresult __cdecl XRE_AddManifestLocation (NSLocationType aType, nsILocalFile* aLocation); #line 376 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXULAppAPI.h" /** * Register XPCOM components found in a JAR. * This is similar to XRE_AddManifestLocation except the file specified * must be a zip archive with a manifest named chrome.manifest * This method may be called at any time before or after XRE_main or * XRE_InitEmbedding. * * @param aFiles An array of files or directories. * @param aFileCount the number of items in the aFiles array. * @note appdir/components is registered automatically. * * NS_COMPONENT_LOCATION specifies a location to search for binary XPCOM * components as well as component/chrome manifest files. * * NS_SKIN_LOCATION specifies a location to search for chrome manifest files * which are only allowed to register only skin packages and style overlays. */ extern "C" __declspec(dllexport) nsresult __cdecl XRE_AddJarManifestLocation (NSLocationType aType, nsILocalFile* aLocation); #line 397 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXULAppAPI.h" /** * Fire notifications to inform the toolkit about a new profile. This * method should be called after XRE_InitEmbedding if the embedder * wishes to run with a profile. Normally the embedder should call * XRE_LockProfileDirectory to lock the directory before calling this * method. * * @note There are two possibilities for selecting a profile: * * 1) Select the profile before calling XRE_InitEmbedding. The aAppDirProvider * object passed to XRE_InitEmbedding should provide the * NS_APP_USER_PROFILE_50_DIR key, and may also provide the following keys: * - NS_APP_USER_PROFILE_LOCAL_50_DIR * - NS_APP_PROFILE_DIR_STARTUP * - NS_APP_PROFILE_LOCAL_DIR_STARTUP * In this scenario XRE_NotifyProfile should be called immediately after * XRE_InitEmbedding. Component registration information will be stored in * the profile and JS components may be stored in the fastload cache. * * 2) Select a profile some time after calling XRE_InitEmbedding. In this case * the embedder must install a directory service provider which provides * NS_APP_USER_PROFILE_50_DIR and optionally * NS_APP_USER_PROFILE_LOCAL_50_DIR. Component registration information * will be stored in the application directory and JS components will not * fastload. */ extern "C" __declspec(dllexport) void __cdecl XRE_NotifyProfile (); #line 426 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXULAppAPI.h" /** * Terminate embedding started with XRE_InitEmbedding or XRE_InitEmbedding2 */ extern "C" __declspec(dllexport) void __cdecl XRE_TermEmbedding (); #line 432 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXULAppAPI.h" /** * Create a new nsXREAppData structure from an application.ini file. * * @param aINIFile The application.ini file to parse. * @param aAppData A newly-allocated nsXREAppData structure. The caller is * responsible for freeing this structure using * XRE_FreeAppData. */ extern "C" __declspec(dllexport) nsresult __cdecl XRE_CreateAppData (nsILocalFile* aINIFile, nsXREAppData **aAppData); #line 444 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXULAppAPI.h" /** * Parse an INI file (application.ini or override.ini) into an existing * nsXREAppData structure. * * @param aINIFile The INI file to parse * @param aAppData The nsXREAppData structure to fill. */ extern "C" __declspec(dllexport) nsresult __cdecl XRE_ParseAppData (nsILocalFile* aINIFile, nsXREAppData *aAppData); #line 455 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXULAppAPI.h" /** * Free a nsXREAppData structure that was allocated with XRE_CreateAppData. */ extern "C" __declspec(dllexport) void __cdecl XRE_FreeAppData (nsXREAppData *aAppData); #line 461 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXULAppAPI.h" enum GeckoProcessType { GeckoProcessType_Default = 0, GeckoProcessType_Plugin, GeckoProcessType_Content, GeckoProcessType_Jetpack, GeckoProcessType_IPDLUnitTest, GeckoProcessType_End, GeckoProcessType_Invalid = GeckoProcessType_End }; static const char* const kGeckoProcessTypeString[] = { "default", "plugin", "tab", "jetpack", "ipdlunittest" }; extern void pr_static_assert(int arg[(sizeof(kGeckoProcessTypeString) / sizeof(kGeckoProcessTypeString[0]) == GeckoProcessType_End) ? 1 : -1]); #line 486 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXULAppAPI.h" extern "C" __declspec(dllexport) const char* __cdecl XRE_ChildProcessTypeToString (GeckoProcessType aProcessType); #line 490 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXULAppAPI.h" extern "C" __declspec(dllexport) GeckoProcessType __cdecl XRE_StringToChildProcessType (const char* aProcessTypeString); #line 493 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXULAppAPI.h" // Used in the "master" parent process hosting the crash server extern "C" __declspec(dllexport) PRBool __cdecl XRE_TakeMinidumpForChild (PRUint32 aChildPid, nsILocalFile** aDump); #line 498 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXULAppAPI.h" // Used in child processes. extern "C" __declspec(dllexport) PRBool __cdecl XRE_SetRemoteExceptionHandler (const char* aPipe); #line 502 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXULAppAPI.h" #line 503 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXULAppAPI.h" extern "C" __declspec(dllexport) nsresult __cdecl XRE_InitChildProcess (int aArgc, char* aArgv[], GeckoProcessType aProcess); #line 508 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXULAppAPI.h" extern "C" __declspec(dllexport) GeckoProcessType __cdecl XRE_GetProcessType (); #line 511 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXULAppAPI.h" typedef void (*MainFunction)(void* aData); extern "C" __declspec(dllexport) nsresult __cdecl XRE_InitParentProcess (int aArgc, char* aArgv[], MainFunction aMainFunction, void* aMainFunctionExtraData); #line 519 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXULAppAPI.h" extern "C" __declspec(dllexport) int __cdecl XRE_RunIPDLTest (int aArgc, char* aArgv[]); #line 523 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXULAppAPI.h" extern "C" __declspec(dllexport) nsresult __cdecl XRE_RunAppShell (); #line 526 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXULAppAPI.h" extern "C" __declspec(dllexport) nsresult __cdecl XRE_InitCommandLine (int aArgc, char* aArgv[]); #line 529 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXULAppAPI.h" extern "C" __declspec(dllexport) nsresult __cdecl XRE_DeinitCommandLine (); #line 532 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXULAppAPI.h" class MessageLoop; extern "C" __declspec(dllexport) void __cdecl XRE_ShutdownChildProcess (); #line 537 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXULAppAPI.h" extern "C" __declspec(dllexport) MessageLoop* __cdecl XRE_GetIOMessageLoop (); #line 540 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXULAppAPI.h" struct JSContext; struct JSString; extern "C" __declspec(dllexport) bool __cdecl XRE_SendTestShellCommand (JSContext* aCx, JSString* aCommand, void* aCallback); #line 548 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXULAppAPI.h" struct JSObject; extern "C" __declspec(dllexport) bool __cdecl XRE_GetChildGlobalObject (JSContext* aCx, JSObject** globalp); #line 553 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXULAppAPI.h" extern "C" __declspec(dllexport) bool __cdecl XRE_ShutdownTestShell (); #line 556 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXULAppAPI.h" extern "C" __declspec(dllexport) void __cdecl XRE_InstallX11ErrorHandler (); #line 559 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXULAppAPI.h" #line 560 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXULAppAPI.h" #line 57 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIWidget.h" // forward declarations class nsIAppShell; class nsIToolkit; class nsIFontMetrics; class nsIRenderingContext; class nsIDeviceContext; struct nsFont; class nsIRollupListener; class nsIMenuRollup; class nsGUIEvent; class imgIContainer; class gfxASurface; class nsIContent; class ViewWrapper; namespace mozilla { namespace layers { class LayerManager; } namespace dom { class PBrowserChild; } #line 82 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIWidget.h" } /** * Callback function that processes events. * * The argument is actually a subtype (subclass) of nsEvent which carries * platform specific information about the event. Platform specific code * knows how to deal with it. * * The return value determines whether or not the default action should take * place. */ typedef nsEventStatus (* EVENT_CALLBACK)(nsGUIEvent *event); /** * Flags for the getNativeData function. * See getNativeData() */ #line 120 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIWidget.h" // cc443f0b-af39-415d-9c4b-7e06eaa8b13b // d64532e0-03d6-421c-8e63-da2cff624825 /* * Window shadow styles * Also used for the -moz-window-shadow CSS property */ /** * nsIWidget::OnIMEFocusChange should be called during blur, * but other OnIME*Change methods should not be called */ /** * Cursor types. */ enum nsCursor { ///(normal cursor, usually rendered as an arrow) eCursor_standard, ///(system is busy, usually rendered as a hourglass or watch) eCursor_wait, ///(Selecting something, usually rendered as an IBeam) eCursor_select, ///(can hyper-link, usually rendered as a human hand) eCursor_hyperlink, ///(north/south/west/east edge sizing) eCursor_n_resize, eCursor_s_resize, eCursor_w_resize, eCursor_e_resize, ///(corner sizing) eCursor_nw_resize, eCursor_se_resize, eCursor_ne_resize, eCursor_sw_resize, eCursor_crosshair, eCursor_move, eCursor_help, eCursor_copy, // CSS3 eCursor_alias, eCursor_context_menu, eCursor_cell, eCursor_grab, eCursor_grabbing, eCursor_spinning, eCursor_zoom_in, eCursor_zoom_out, eCursor_not_allowed, eCursor_col_resize, eCursor_row_resize, eCursor_no_drop, eCursor_vertical_text, eCursor_all_scroll, eCursor_nesw_resize, eCursor_nwse_resize, eCursor_ns_resize, eCursor_ew_resize, eCursor_none, // This one better be the last one in this list. eCursorCount }; enum nsTopLevelWidgetZPlacement { // for PlaceBehind() eZPlacementBottom = 0, // bottom of the window stack eZPlacementBelow, // just below another widget eZPlacementTop // top of the window stack }; /** * Preference for receiving IME updates * * If mWantUpdates is true, PuppetWidget will forward * nsIWidget::OnIMETextChange and nsIWidget::OnIMESelectionChange to the chrome * process. This incurs overhead from observers and IPDL. If the IME * implementation on a particular platform doesn't care about OnIMETextChange * and OnIMESelectionChange from content processes, they should set * mWantUpdates to false to avoid these overheads. * * If mWantHints is true, PuppetWidget will forward the content of text fields * to the chrome process to be cached. This way we return the cached content * during query events. (see comments in bug 583976). This only makes sense * for IME implementations that do use query events, otherwise there's a * significant overhead. Platforms that don't use query events should set * mWantHints to false. */ struct nsIMEUpdatePreference { nsIMEUpdatePreference() : mWantUpdates(0), mWantHints(0) { } nsIMEUpdatePreference(PRBool aWantUpdates, PRBool aWantHints) : mWantUpdates(aWantUpdates), mWantHints(aWantHints) { } PRPackedBool mWantUpdates; PRPackedBool mWantHints; }; /* * Contains IMEStatus plus information about the current * input context that the IME can use as hints if desired. */ struct IMEContext { PRUint32 mStatus; /* The type of the input if the input is a html input field */ nsString mHTMLInputType; /* A hint for the action that is performed when the input is submitted */ nsString mActionHint; }; /** * The base class for all the widgets. It provides the interface for * all basic and necessary functionality. */ class nsIWidget : public nsISupports { protected: typedef mozilla::dom::PBrowserChild PBrowserChild; #line 261 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIWidget.h" public: typedef mozilla::layers::LayerManager LayerManager; template struct COMTypeInfo { static const nsIID kIID ; }; static const nsIID& GetIID() {return COMTypeInfo::kIID;} nsIWidget() : mLastChild(0L) , mPrevSibling(0L) {} /** * Create and initialize a widget. * * All the arguments can be NULL in which case a top level window * with size 0 is created. The event callback function has to be * provided only if the caller wants to deal with the events this * widget receives. The event callback is basically a preprocess * hook called synchronously. The return value determines whether * the event goes to the default window procedure or it is hidden * to the os. The assumption is that if the event handler returns * false the widget does not see the event. The widget should not * automatically clear the window to the background color. The * calling code must handle paint messages and clear the background * itself. * * In practice at least one of aParent and aNativeParent will be null. If * both are null the widget isn't parented (e.g. context menus or * independent top level windows). * * @param aParent parent nsIWidget * @param aNativeParent native parent widget * @param aRect the widget dimension * @param aHandleEventFunction the event handler callback function * @param aContext * @param aAppShell the parent application shell. If nsnull, * the parent window's application shell will be used. * @param aToolkit * @param aInitData data that is used for widget initialization * */ virtual nsresult __stdcall Create(nsIWidget *aParent, nsNativeWidget aNativeParent, const nsIntRect &aRect, EVENT_CALLBACK aHandleEventFunction, nsIDeviceContext *aContext, nsIAppShell *aAppShell = 0L, nsIToolkit *aToolkit = 0L, nsWidgetInitData *aInitData = 0L) = 0; /** * Allocate, initialize, and return a widget that is a child of * |this|. The returned widget (if nonnull) has gone through the * equivalent of CreateInstance(widgetCID) + Create(...). * * |CreateChild()| lets widget backends decide whether to parent * the new child widget to this, nonnatively parent it, or both. * This interface exists to support the PuppetWidget backend, * which is entirely non-native. All other params are the same as * for |Create()|. * * |aForceUseIWidgetParent| forces |CreateChild()| to only use the * |nsIWidget*| this, not its native widget (if it exists), when * calling |Create()|. This is a timid hack around poorly * understood code, and shouldn't be used in new code. */ virtual already_AddRefed CreateChild(const nsIntRect &aRect, EVENT_CALLBACK aHandleEventFunction, nsIDeviceContext *aContext, nsIAppShell *aAppShell = 0L, nsIToolkit *aToolkit = 0L, nsWidgetInitData *aInitData = 0L, PRBool aForceUseIWidgetParent = 0) = 0; /** * Attach to a top level widget. * * In cases where a top level chrome widget is being used as a content * container, attach a secondary event callback and update the device * context. The primary event callback will continue to be called, so the * owning base window will continue to function. * * aViewEventFunction Event callback that will receive mirrored * events. * aContext The new device context for the view */ virtual nsresult __stdcall AttachViewToTopLevel(EVENT_CALLBACK aViewEventFunction, nsIDeviceContext *aContext) = 0; /** * Accessor functions to get and set secondary client data. Used by * nsIView in connection with AttachViewToTopLevel above. */ virtual nsresult __stdcall SetAttachedViewPtr(ViewWrapper* aViewWrapper) = 0; virtual ViewWrapper* GetAttachedViewPtr() = 0; /** * Accessor functions to get and set the client data associated with the * widget. */ //@{ virtual nsresult __stdcall GetClientData(void*& aClientData) = 0; virtual nsresult __stdcall SetClientData(void* aClientData) = 0; //@} /** * Close and destroy the internal native window. * This method does not delete the widget. */ virtual nsresult __stdcall Destroy(void) = 0; /** * Reparent a widget * * Change the widgets parent * * @param aNewParent new parent */ virtual nsresult __stdcall SetParent(nsIWidget* aNewParent) = 0; virtual nsresult __stdcall RegisterTouchWindow() = 0; virtual nsresult __stdcall UnregisterTouchWindow() = 0; /** * Return the parent Widget of this Widget or nsnull if this is a * top level window * * @return the parent widget or nsnull if it does not have a parent * */ virtual nsIWidget* GetParent(void) = 0; /** * Return the top level Widget of this Widget * * @return the top level widget */ virtual nsIWidget* GetTopLevelWidget() = 0; /** * Return the top (non-sheet) parent of this Widget if it's a sheet, * or nsnull if this isn't a sheet (or some other error occurred). * Sheets are only supported on some platforms (currently only OS X). * * @return the top (non-sheet) parent widget or nsnull * */ virtual nsIWidget* GetSheetWindowParent(void) = 0; /** * Return the physical DPI of the screen containing the window ... * the number of device pixels per inch. */ virtual float GetDPI() = 0; /** * Return the default scale factor for the window. This is the * default number of device pixels per CSS pixel to use. This should * depend on OS/platform settings such as the Mac's "UI scale factor" * or Windows' "font DPI". */ virtual double GetDefaultScale() = 0; /** * Return the first child of this widget. Will return null if * there are no children. */ nsIWidget* GetFirstChild() const { return mFirstChild; } /** * Return the last child of this widget. Will return null if * there are no children. */ nsIWidget* GetLastChild() const { return mLastChild; } /** * Return the next sibling of this widget */ nsIWidget* GetNextSibling() const { return mNextSibling; } /** * Set the next sibling of this widget */ void SetNextSibling(nsIWidget* aSibling) { mNextSibling = aSibling; } /** * Return the previous sibling of this widget */ nsIWidget* GetPrevSibling() const { return mPrevSibling; } /** * Set the previous sibling of this widget */ void SetPrevSibling(nsIWidget* aSibling) { mPrevSibling = aSibling; } /** * Show or hide this widget * * @param aState PR_TRUE to show the Widget, PR_FALSE to hide it * */ virtual nsresult __stdcall Show(PRBool aState) = 0; /** * Make the window modal * */ virtual nsresult __stdcall SetModal(PRBool aModal) = 0; /** * Returns whether the window is visible * */ virtual nsresult __stdcall IsVisible(PRBool & aState) = 0; /** * Perform platform-dependent sanity check on a potential window position. * This is guaranteed to work only for top-level windows. * * @param aAllowSlop: if true, allow the window to slop offscreen; * the window should be partially visible. if false, * force the entire window onscreen (or at least * the upper-left corner, if it's too large). * @param aX in: an x position expressed in screen coordinates. * out: the x position constrained to fit on the screen(s). * @param aY in: an y position expressed in screen coordinates. * out: the y position constrained to fit on the screen(s). * @return vapid success indication. but see also the parameters. * **/ virtual nsresult __stdcall ConstrainPosition(PRBool aAllowSlop, PRInt32 *aX, PRInt32 *aY) = 0; /** * Move this widget. * * @param aX the new x position expressed in the parent's coordinate system * @param aY the new y position expressed in the parent's coordinate system * **/ virtual nsresult __stdcall Move(PRInt32 aX, PRInt32 aY) = 0; /** * Resize this widget. * * @param aWidth the new width expressed in the parent's coordinate system * @param aHeight the new height expressed in the parent's coordinate system * @param aRepaint whether the widget should be repainted * */ virtual nsresult __stdcall Resize(PRInt32 aWidth, PRInt32 aHeight, PRBool aRepaint) = 0; /** * Move or resize this widget. * * @param aX the new x position expressed in the parent's coordinate system * @param aY the new y position expressed in the parent's coordinate system * @param aWidth the new width expressed in the parent's coordinate system * @param aHeight the new height expressed in the parent's coordinate system * @param aRepaint whether the widget should be repainted if the size changes * */ virtual nsresult __stdcall Resize(PRInt32 aX, PRInt32 aY, PRInt32 aWidth, PRInt32 aHeight, PRBool aRepaint) = 0; /** * Resize and reposition the inner client area of the widget. * * @param aX the new x offset expressed in the parent's coordinate system * @param aY the new y offset expressed in the parent's coordinate system * @param aWidth the new width of the client area. * @param aHeight the new height of the client area. * @param aRepaint whether the widget should be repainted * */ virtual nsresult __stdcall ResizeClient(PRInt32 aX, PRInt32 aY, PRInt32 aWidth, PRInt32 aHeight, PRBool aRepaint) = 0; /** * Sets the widget's z-index. */ virtual nsresult __stdcall SetZIndex(PRInt32 aZIndex) = 0; /** * Gets the widget's z-index. */ virtual nsresult __stdcall GetZIndex(PRInt32* aZIndex) = 0; /** * Position this widget just behind the given widget. (Used to * control z-order for top-level widgets. Get/SetZIndex by contrast * control z-order for child widgets of other widgets.) * @param aPlacement top, bottom, or below a widget * (if top or bottom, param aWidget is ignored) * @param aWidget widget to place this widget behind * (only if aPlacement is eZPlacementBelow). * null is equivalent to aPlacement of eZPlacementTop * @param aActivate true to activate the widget after placing it */ virtual nsresult __stdcall PlaceBehind(nsTopLevelWidgetZPlacement aPlacement, nsIWidget *aWidget, PRBool aActivate) = 0; /** * Minimize, maximize or normalize the window size. * Takes a value from nsSizeMode (see nsGUIEvent.h) */ virtual nsresult __stdcall SetSizeMode(PRInt32 aMode) = 0; /** * Return size mode (minimized, maximized, normalized). * Returns a value from nsSizeMode (see nsGUIEvent.h) */ virtual nsresult __stdcall GetSizeMode(PRInt32* aMode) = 0; /** * Enable or disable this Widget * * @param aState PR_TRUE to enable the Widget, PR_FALSE to disable it. * */ virtual nsresult __stdcall Enable(PRBool aState) = 0; /** * Ask whether the widget is enabled * @param aState returns PR_TRUE if the widget is enabled */ virtual nsresult __stdcall IsEnabled(PRBool *aState) = 0; /** * Request activation of this window or give focus to this widget. * * @param aRaise If PR_TRUE, this function requests activation of this * widget's toplevel window. * If PR_FALSE, the appropriate toplevel window (which in * the case of popups may not be this widget's toplevel * window) is already active, and this function indicates * that keyboard events should be reported through the * aHandleEventFunction provided to this->Create(). */ virtual nsresult __stdcall SetFocus(PRBool aRaise = 0) = 0; /** * Get this widget's outside dimensions relative to its parent widget * * @param aRect On return it holds the x, y, width and height of * this widget. */ virtual nsresult __stdcall GetBounds(nsIntRect &aRect) = 0; /** * Get this widget's outside dimensions in global coordinates. This * includes any title bar on the window. * * @param aRect On return it holds the x, y, width and height of * this widget. */ virtual nsresult __stdcall GetScreenBounds(nsIntRect &aRect) = 0; /** * Get this widget's client area dimensions, if the window has a 3D * border appearance this returns the area inside the border. Origin * is always zero. * * @param aRect On return it holds the x. y, width and height of * the client area of this widget. */ virtual nsresult __stdcall GetClientBounds(nsIntRect &aRect) = 0; /** * Get the non-client area dimensions of the window. * */ virtual nsresult __stdcall GetNonClientMargins(nsIntMargin &margins) = 0; /** * Sets the non-client area dimensions of the window. Pass -1 to restore * the system default frame size for that border. Pass zero to remove * a border, or pass a specific value adjust a border. Units are in * pixels. (DPI dependent) * * Platform notes: * Windows: shrinking top non-client height will remove application * icon and window title text. Glass desktops will refuse to set * dimensions between zero and size < system default. * */ virtual nsresult __stdcall SetNonClientMargins(nsIntMargin &margins) = 0; /** * Get the client offset from the window origin. * * @return the x and y of the offset. * */ virtual nsIntPoint GetClientOffset() = 0; /** * Get the foreground color for this widget * * @return this widget's foreground color * */ virtual nscolor GetForegroundColor(void) = 0; /** * Set the foreground color for this widget * * @param aColor the new foreground color * */ virtual nsresult __stdcall SetForegroundColor(const nscolor &aColor) = 0; /** * Get the background color for this widget * * @return this widget's background color * */ virtual nscolor GetBackgroundColor(void) = 0; /** * Set the background color for this widget * * @param aColor the new background color * */ virtual nsresult __stdcall SetBackgroundColor(const nscolor &aColor) = 0; /** * Get the cursor for this widget. * * @return this widget's cursor. */ virtual nsCursor GetCursor(void) = 0; /** * Set the cursor for this widget * * @param aCursor the new cursor for this widget */ virtual nsresult __stdcall SetCursor(nsCursor aCursor) = 0; /** * Sets an image as the cursor for this widget. * * @param aCursor the cursor to set * @param aX the X coordinate of the hotspot (from left). * @param aY the Y coordinate of the hotspot (from top). * @retval NS_ERROR_NOT_IMPLEMENTED if setting images as cursors is not * supported */ virtual nsresult __stdcall SetCursor(imgIContainer* aCursor, PRUint32 aHotspotX, PRUint32 aHotspotY) = 0; /** * Get the window type of this widget * * @param aWindowType the window type of the widget */ virtual nsresult __stdcall GetWindowType(nsWindowType& aWindowType) = 0; /** * Set the transparency mode of the top-level window containing this widget. * So, e.g., if you call this on the widget for an IFRAME, the top level * browser window containing the IFRAME actually gets set. Be careful. * * This can fail if the platform doesn't support * transparency/glass. By default widgets are not * transparent. This will also fail if the toplevel window is not * a Mozilla window, e.g., if the widget is in an embedded * context. * * After transparency/glass has been enabled, the initial alpha channel * value for all pixels is 1, i.e., opaque. * If the window is resized then the alpha channel values for * all pixels are reset to 1. * Pixel RGB color values are already premultiplied with alpha channel values. */ virtual void SetTransparencyMode(nsTransparencyMode aMode) = 0; /** * Get the transparency mode of the top-level window that contains this * widget. */ virtual nsTransparencyMode GetTransparencyMode() = 0; /** * Updates a region of the window that might not have opaque content drawn. Widgets should * assume that the initial possibly transparent region is empty. * * @param aDirtyRegion the region of the window that aMaybeTransparentRegion pertains to * @param aPossiblyTransparentRegion the region of the window that is possibly transparent */ virtual void UpdatePossiblyTransparentRegion(const nsIntRegion &aDirtyRegion, const nsIntRegion &aPossiblyTransparentRegion) {}; /** * This represents a command to set the bounds and clip region of * a child widget. */ struct Configuration { nsIWidget* mChild; nsIntRect mBounds; nsTArray mClipRegion; }; /** * Sets the clip region of each mChild (which must actually be a child * of this widget) to the union of the pixel rects given in * mClipRegion, all relative to the top-left of the child * widget. Clip regions are not implemented on all platforms and only * need to actually work for children that are plugins. * * Also sets the bounds of each child to mBounds. * * This will invalidate areas of the children that have changed, but * does not need to invalidate any part of this widget. * * Children should be moved in the order given; the array is * sorted so to minimize unnecessary invalidation if children are * moved in that order. */ virtual nsresult ConfigureChildren(const nsTArray& aConfigurations) = 0; /** * Appends to aRects the rectangles constituting this widget's clip * region. If this widget is not clipped, appends a single rectangle * (0, 0, bounds.width, bounds.height). */ virtual void GetWindowClipRegion(nsTArray* aRects) = 0; /** * Set the shadow style of the window. * * Ignored on child widgets and on non-Mac platforms. */ virtual nsresult __stdcall SetWindowShadowStyle(PRInt32 aStyle) = 0; /* * On Mac OS X, this method shows or hides the pill button in the titlebar * that's used to collapse the toolbar. * * Ignored on child widgets and on non-Mac platforms. */ virtual void SetShowsToolbarButton(PRBool aShow) = 0; /** * Hide window chrome (borders, buttons) for this widget. * */ virtual nsresult __stdcall HideWindowChrome(PRBool aShouldHide) = 0; /** * Put the toplevel window into or out of fullscreen mode. * */ virtual nsresult __stdcall MakeFullScreen(PRBool aFullScreen) = 0; /** * Invalidate a specified rect for a widget and repaints it. * * @param aIsSynchronouse PR_TRUE then repaint synchronously. If PR_FALSE repaint later. * @see #Update() */ virtual nsresult __stdcall Invalidate(const nsIntRect & aRect, PRBool aIsSynchronous) = 0; /** * Force a synchronous repaint of the window if there are dirty rects. * * @see Invalidate() */ virtual nsresult __stdcall Update() = 0; /** * Return the widget's toolkit * * An AddRef has NOT been done for the caller. * * @return the toolkit this widget was created in. See nsToolkit. */ virtual nsIToolkit* GetToolkit() = 0; /** * Return the widget's LayerManager. The layer tree for that * LayerManager is what gets rendered to the widget. * * @param aAllowRetaining an outparam that states whether the returned * layer manager should be used for retained layers */ virtual LayerManager* GetLayerManager(bool* aAllowRetaining = 0L) = 0; /** * Internal methods */ //@{ virtual void AddChild(nsIWidget* aChild) = 0; virtual void RemoveChild(nsIWidget* aChild) = 0; virtual void* GetNativeData(PRUint32 aDataType) = 0; virtual void FreeNativeData(void * data, PRUint32 aDataType) = 0;//~~~ // GetDeviceContext returns a weak pointer to this widget's device context virtual nsIDeviceContext* GetDeviceContext() = 0; //@} /** * Set the widget's title. * Must be called after Create. * * @param aTitle string displayed as the title of the widget */ virtual nsresult __stdcall SetTitle(const nsAString_internal& aTitle) = 0; /** * Set the widget's icon. * Must be called after Create. * * @param anIconSpec string specifying the icon to use; convention is to pass * a resource: URL from which a platform-dependent resource * file name will be constructed */ virtual nsresult __stdcall SetIcon(const nsAString_internal& anIconSpec) = 0; /** * Return this widget's origin in screen coordinates. * * @return screen coordinates stored in the x,y members */ virtual nsIntPoint WidgetToScreenOffset() = 0; /** * Given the specified client size, return the corresponding window size, * which includes the area for the borders and titlebar. This method * should work even when the window is not yet visible. */ virtual nsIntSize ClientToWindowSize(const nsIntSize& aClientSize) = 0; /** * Dispatches an event to the widget * */ virtual nsresult __stdcall DispatchEvent(nsGUIEvent* event, nsEventStatus & aStatus) = 0; /** * Enables the dropping of files to a widget (XXX this is temporary) * */ virtual nsresult __stdcall EnableDragDrop(PRBool aEnable) = 0; /** * Enables/Disables system mouse capture. * @param aCapture PR_TRUE enables mouse capture, PR_FALSE disables mouse capture * */ virtual nsresult __stdcall CaptureMouse(PRBool aCapture) = 0; /** * Classify the window for the window manager. Mostly for X11. */ virtual nsresult __stdcall SetWindowClass(const nsAString_internal& xulWinType) = 0; /** * Enables/Disables system capture of any and all events that would cause a * dropdown to be rolled up, This method ignores the aConsumeRollupEvent * parameter when aDoCapture is FALSE * @param aDoCapture PR_TRUE enables capture, PR_FALSE disables capture * @param aConsumeRollupEvent PR_TRUE consumes the rollup event, PR_FALSE dispatches rollup event * */ virtual nsresult __stdcall CaptureRollupEvents(nsIRollupListener * aListener, nsIMenuRollup * aMenuRollup, PRBool aDoCapture, PRBool aConsumeRollupEvent) = 0; /** * Bring this window to the user's attention. This is intended to be a more * gentle notification than popping the window to the top or putting up an * alert. See, for example, Win32 FlashWindow or the NotificationManager on * the Mac. The notification should be suppressed if the window is already * in the foreground and should be dismissed when the user brings this window * to the foreground. * @param aCycleCount Maximum number of times to animate the window per system * conventions. If set to -1, cycles indefinitely until * window is brought into the foreground. */ virtual nsresult __stdcall GetAttention(PRInt32 aCycleCount) = 0; /** * Ask whether there user input events pending. All input events are * included, including those not targeted at this nsIwidget instance. */ virtual PRBool HasPendingInputEvent() = 0; /** * Called when when we need to begin secure keyboard input, such as when a password field * gets focus. * * NOTE: Calls to this method may not be nested and you can only enable secure keyboard input * for one widget at a time. */ virtual nsresult __stdcall BeginSecureKeyboardInput() = 0; /** * Called when when we need to end secure keyboard input, such as when a password field * loses focus. * * NOTE: Calls to this method may not be nested and you can only enable secure keyboard input * for one widget at a time. */ virtual nsresult __stdcall EndSecureKeyboardInput() = 0; /** * Set the background color of the window titlebar for this widget. On Mac, * for example, this will remove the grey gradient and bottom border and * instead show a single, solid color. * * Ignored on any platform that does not support it. Ignored by widgets that * do not represent windows. * * @param aColor The color to set the title bar background to. Alpha values * other than fully transparent (0) are respected if possible * on the platform. An alpha of 0 will cause the window to * draw with the default style for the platform. * * @param aActive Whether the color should be applied to active or inactive * windows. */ virtual nsresult __stdcall SetWindowTitlebarColor(nscolor aColor, PRBool aActive) = 0; /** * If set to true, the window will draw its contents into the titlebar * instead of below it. * * Ignored on any platform that does not support it. Ignored by widgets that * do not represent windows. * May result in a resize event, so should only be called from places where * reflow and painting is allowed. * * @param aState Whether drawing into the titlebar should be activated. */ virtual void SetDrawsInTitlebar(PRBool aState) = 0; /* * Determine whether the widget shows a resize widget. If it does, * aResizerRect returns the resizer's rect. * * Returns false on any platform that does not support it. * * @param aResizerRect The resizer's rect in device pixels. * @return Whether a resize widget is shown. */ virtual PRBool ShowsResizeIndicator(nsIntRect* aResizerRect) = 0; /** * Get the Thebes surface associated with this widget. */ virtual gfxASurface *GetThebesSurface() = 0; /** * Return the popup that was last rolled up, or null if there isn't one. */ virtual nsIContent* GetLastRollup() = 0; /** * Begin a window resizing drag, based on the event passed in. */ virtual nsresult __stdcall BeginResizeDrag(nsGUIEvent* aEvent, PRInt32 aHorizontal, PRInt32 aVertical) = 0; /** * Begin a window moving drag, based on the event passed in. */ virtual nsresult __stdcall BeginMoveDrag(nsMouseEvent* aEvent) = 0; enum Modifiers { CAPS_LOCK = 0x01, // when CapsLock is active NUM_LOCK = 0x02, // when NumLock is active SHIFT_L = 0x0100, SHIFT_R = 0x0200, CTRL_L = 0x0400, CTRL_R = 0x0800, ALT_L = 0x1000, // includes Option ALT_R = 0x2000, COMMAND_L = 0x4000, COMMAND_R = 0x8000, HELP = 0x10000, FUNCTION = 0x100000, NUMERIC_KEY_PAD = 0x01000000 // when the key is coming from the keypad }; /** * Utility method intended for testing. Dispatches native key events * to this widget to simulate the press and release of a key. * @param aNativeKeyboardLayout a *platform-specific* constant. * On Mac, this is the resource ID for a 'uchr' or 'kchr' resource. * On Windows, it is converted to a hex string and passed to * LoadKeyboardLayout, see * http://msdn.microsoft.com/en-us/library/ms646305(VS.85).aspx * @param aNativeKeyCode a *platform-specific* keycode. * On Windows, this is the virtual key code. * @param aModifiers some combination of the above 'Modifiers' flags; * not all flags will apply to all platforms. Mac ignores the _R * modifiers. Windows ignores COMMAND, NUMERIC_KEY_PAD, HELP and * FUNCTION. * @param aCharacters characters that the OS would decide to generate * from the event. On Windows, this is the charCode passed by * WM_CHAR. * @param aUnmodifiedCharacters characters that the OS would decide * to generate from the event if modifier keys (other than shift) * were assumed inactive. Needed on Mac, ignored on Windows. * @return NS_ERROR_NOT_AVAILABLE to indicate that the keyboard * layout is not supported and the event was not fired */ virtual nsresult SynthesizeNativeKeyEvent(PRInt32 aNativeKeyboardLayout, PRInt32 aNativeKeyCode, PRUint32 aModifierFlags, const nsAString_internal& aCharacters, const nsAString_internal& aUnmodifiedCharacters) = 0; /** * Utility method intended for testing. Dispatches native mouse events * may even move the mouse cursor. On Mac the events are guaranteed to * be sent to the window containing this widget, but on Windows they'll go * to whatever's topmost on the screen at that position, so for * cross-platform testing ensure that your window is at the top of the * z-order. * @param aPoint screen location of the mouse, in device * pixels, with origin at the top left * @param aNativeMessage *platform-specific* event type (e.g. on Mac, * NSMouseMoved; on Windows, MOUSEEVENTF_MOVE, MOUSEEVENTF_LEFTDOWN etc) * @param aModifierFlags *platform-specific* modifier flags (ignored * on Windows) */ virtual nsresult SynthesizeNativeMouseEvent(nsIntPoint aPoint, PRUint32 aNativeMessage, PRUint32 aModifierFlags) = 0; /** * Activates a native menu item at the position specified by the index * string. The index string is a string of positive integers separated * by the "|" (pipe) character. The last integer in the string represents * the item index in a submenu located using the integers preceding it. * * Example: 1|0|4 * In this string, the first integer represents the top-level submenu * in the native menu bar. Since the integer is 1, it is the second submeu * in the native menu bar. Within that, the first item (index 0) is a * submenu, and we want to activate the 5th item within that submenu. */ virtual nsresult ActivateNativeMenuItemAt(const nsAString_internal& indexString) = 0; /** * This is used for native menu system testing. * * Updates a native menu at the position specified by the index string. * The index string is a string of positive integers separated by the "|" * (pipe) character. * * Example: 1|0|4 * In this string, the first integer represents the top-level submenu * in the native menu bar. Since the integer is 1, it is the second submeu * in the native menu bar. Within that, the first item (index 0) is a * submenu, and we want to update submenu at index 4 within that submenu. * * If this is called with an empty string it forces a full reload of the * menu system. */ virtual nsresult ForceUpdateNativeMenuAt(const nsAString_internal& indexString) = 0; /* * Force Input Method Editor to commit the uncommitted input */ virtual nsresult __stdcall ResetInputState()=0; /* * Following methods relates to IME 'Opened'/'Closed' state. * 'Opened' means the user can input any character. I.e., users can input Japanese * and other characters. The user can change the state to 'Closed'. * 'Closed' means the user can input ASCII characters only. This is the same as a * non-IME environment. The user can change the state to 'Opened'. * For more information is here. * http://bugzilla.mozilla.org/show_bug.cgi?id=16940#c48 */ /* * Set the state to 'Opened' or 'Closed'. * If aState is TRUE, IME open state is set to 'Opened'. * If aState is FALSE, set to 'Closed'. */ virtual nsresult __stdcall SetIMEOpenState(PRBool aState) = 0; /* * Get IME is 'Opened' or 'Closed'. * If IME is 'Opened', aState is set PR_TRUE. * If IME is 'Closed', aState is set PR_FALSE. */ virtual nsresult __stdcall GetIMEOpenState(PRBool* aState) = 0; /* * IME enabled states, the aState value of SetIMEEnabled/GetIMEEnabled * should be one value of following values. * * WARNING: If you change these values, you also need to edit: * nsIDOMWindowUtils.idl * nsDOMWindowUtils::SetIMEEnabled * nsContentUtils::GetWidgetStatusFromIMEStatus */ enum IMEStatus { /* * 'Disabled' means the user cannot use IME. So, the open state should be * 'closed' during 'disabled'. */ IME_STATUS_DISABLED = 0, /* * 'Enabled' means the user can use IME. */ IME_STATUS_ENABLED = 1, /* * 'Password' state is a special case for the password editors. * E.g., on mac, the password editors should disable the non-Roman * keyboard layouts at getting focus. Thus, the password editor may have * special rules on some platforms. */ IME_STATUS_PASSWORD = 2, /* * This state is used when a plugin is focused. * When a plug-in is focused content, we should send native events * directly. Because we don't process some native events, but they may * be needed by the plug-in. */ IME_STATUS_PLUGIN = 3 }; /* * Set the state to 'Enabled' or 'Disabled' or 'Password'. */ virtual nsresult __stdcall SetIMEEnabled(PRUint32 aState) = 0; /* * Get IME is 'Enabled' or 'Disabled' or 'Password'. */ virtual nsresult __stdcall GetIMEEnabled(PRUint32* aState) = 0; /* * Destruct and don't commit the IME composition string. */ virtual nsresult __stdcall CancelIMEComposition() = 0; /** * Set accelerated rendering to 'True' or 'False' */ virtual nsresult __stdcall SetAcceleratedRendering(PRBool aEnabled) = 0; /* * Get toggled key states. * aKeyCode should be NS_VK_CAPS_LOCK or NS_VK_NUM_LOCK or * NS_VK_SCROLL_LOCK. * aLEDState is the result for current LED state of the key. * If the LED is 'ON', it returns TRUE, otherwise, FALSE. * If the platform doesn't support the LED state (or we cannot get the * state), this method returns NS_ERROR_NOT_IMPLEMENTED. */ virtual nsresult __stdcall GetToggledKeyState(PRUint32 aKeyCode, PRBool* aLEDState) = 0; /* * An editable node (i.e. input/textarea/design mode document) * is receiving or giving up focus * aFocus is true if node is receiving focus * aFocus is false if node is giving up focus (blur) * * If this returns NS_ERROR_*, OnIMETextChange and OnIMESelectionChange * and OnIMEFocusChange(PR_FALSE) will be never called. * * If this returns NS_SUCCESS_IME_NO_UPDATES, OnIMEFocusChange(PR_FALSE) * will be called but OnIMETextChange and OnIMESelectionChange will NOT. */ virtual nsresult __stdcall OnIMEFocusChange(PRBool aFocus) = 0; /* * Text content of the focused node has changed * aStart is the starting offset of the change * aOldEnd is the ending offset of the change * aNewEnd is the caret offset after the change */ virtual nsresult __stdcall OnIMETextChange(PRUint32 aStart, PRUint32 aOldEnd, PRUint32 aNewEnd) = 0; /* * Selection has changed in the focused node */ virtual nsresult __stdcall OnIMESelectionChange(void) = 0; /* * Retrieves preference for IME updates */ virtual nsIMEUpdatePreference GetIMEUpdatePreference() = 0; /* * Call this method when a dialog is opened which has a default button. * The button's rectangle should be supplied in aButtonRect. */ virtual nsresult __stdcall OnDefaultButtonLoaded(const nsIntRect &aButtonRect) = 0; /** * Compute the overridden system mouse scroll speed on the root content of * web pages. The widget may set the same value as aOriginalDelta. E.g., * when the system scrolling settings were customized, widget can respect * the will of the user. * * This is called only when the mouse wheel event scrolls the root content * of the web pages by line. In other words, this isn't called when the * mouse wheel event is used for zoom, page scroll and other special * actions. And also this isn't called when the user doesn't use the * system wheel speed settings. * * @param aOriginalDelta The delta value of the current mouse wheel * scrolling event. * @param aIsHorizontal If TRUE, the scrolling direction is horizontal. * Otherwise, it's vertical. * @param aOverriddenDelta The overridden mouse scrolling speed. This value * may be same as aOriginalDelta. */ virtual nsresult __stdcall OverrideSystemMouseScrollSpeed(PRInt32 aOriginalDelta, PRBool aIsHorizontal, PRInt32 &aOverriddenDelta) = 0; /** * Return true if this process shouldn't use platform widgets, and * so should use PuppetWidgets instead. If this returns true, the * result of creating and using a platform widget is undefined, * and likely to end in crashes or other buggy behavior. */ static bool UsePuppetWidgets() { return XRE_GetProcessType() == GeckoProcessType_Content; } /** * Allocate and return a "puppet widget" that doesn't directly * correlate to a platform widget; platform events and data must * be fed to it. Currently used in content processes. NULL is * returned if puppet widgets aren't supported in this build * config, on this platform, or for this process type. * * This function is called "Create" to match CreateInstance(). * The returned widget must still be nsIWidget::Create()d. */ static already_AddRefed CreatePuppetWidget(PBrowserChild *aTabChild); #line 1345 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIWidget.h" /** * Reparent this widget's native widget. * @param aNewParent the native widget of aNewParent is the new native * parent widget */ virtual nsresult __stdcall ReparentNativeWidget(nsIWidget* aNewParent) = 0; protected: // keep the list of children. We also keep track of our siblings. // The ownership model is as follows: parent holds a strong ref to // the first element of the list, and each element holds a strong // ref to the next element in the list. The prevsibling and // lastchild pointers are weak, which is fine as long as they are // maintained properly. nsCOMPtr mFirstChild; nsIWidget* mLastChild; nsCOMPtr mNextSibling; nsIWidget* mPrevSibling; }; template const nsIID nsIWidget::COMTypeInfo::kIID = { 0xcc443f0b, 0xaf39, 0x415d, { 0x9c, 0x4b, 0x7e, 0x06, 0xea, 0xa8, 0xb1, 0x3b } }; class nsIWidget_MOZILLA_2_0_BRANCH : public nsIWidget { public: template struct COMTypeInfo { static const nsIID kIID ; }; static const nsIID& GetIID() {return COMTypeInfo::kIID;} typedef mozilla::layers::LayerManager LayerManager; /* * Notifies the IME if the input context changes. * * aContext cannot be null. * Set mStatus to 'Enabled' or 'Disabled' or 'Password'. */ virtual nsresult __stdcall SetInputMode(const IMEContext& aContext) = 0; /* * Get IME is 'Enabled' or 'Disabled' or 'Password' and other input context */ virtual nsresult __stdcall GetInputMode(IMEContext& aContext) = 0; enum LayerManagerPersistence { LAYER_MANAGER_CURRENT = 0, LAYER_MANAGER_PERSISTENT }; virtual LayerManager *GetLayerManager(LayerManagerPersistence aPersistence = LAYER_MANAGER_CURRENT, bool* aAllowRetaining = 0L) = 0; // Hide build warnings about nsIWidget::GetLayerManager being hidden by // our GetLayerManager method above. using nsIWidget::GetLayerManager; }; template const nsIID nsIWidget_MOZILLA_2_0_BRANCH::COMTypeInfo::kIID = { 0xd64532e0, 0x03d6, 0x421c, { 0x8e, 0x63, 0xda, 0x2c, 0xff, 0x62, 0x48, 0x25 } }; #line 1404 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIWidget.h" #line 48 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\LayerManagerD3D9.h" #line 1 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\DeviceManagerD3D9.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla Corporation code. * * The Initial Developer of the Original Code is Mozilla Foundation. * Portions created by the Initial Developer are Copyright (C) 2009 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Bas Schouten * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxTypes.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 42 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\DeviceManagerD3D9.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsRect.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 43 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\DeviceManagerD3D9.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAutoPtr.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Scott Collins (original author of nsCOMPtr) * L. David Baron * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 44 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\DeviceManagerD3D9.h" #line 1 "C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0\\include\\d3d9.h" /*==========================================================================; * * Copyright (C) Microsoft Corporation. All Rights Reserved. * * File: d3d9.h * Content: Direct3D include file * ****************************************************************************/ #line 45 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\DeviceManagerD3D9.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTArray.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is C++ array template. * * The Initial Developer of the Original Code is Google Inc. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 46 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\DeviceManagerD3D9.h" namespace mozilla { namespace layers { class DeviceManagerD3D9; class LayerD3D9; class Nv3DVUtils; // Shader Constant locations const int CBmLayerTransform = 0; const int CBmProjection = 4; const int CBvRenderTargetOffset = 8; const int CBvTextureCoords = 9; const int CBvLayerQuad = 10; const int CBfLayerOpacity = 0; /** * SwapChain class, this class manages the swap chain belonging to a * LayerManagerD3D9. */ class __declspec(dllexport) SwapChainD3D9 { public: void AddRef(void) { do { if (!(PRInt32(mRefCnt) >= 0)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "illegal refcnt", "PRInt32(mRefCnt) >= 0", "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\DeviceManagerD3D9.h", 68); } } while (0); do { if (NS_IsCycleCollectorThread_P()) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Changing refcount of " "SwapChainD3D9" " object during Traverse is " "not permitted!", "Error", "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\DeviceManagerD3D9.h", 68); } else { do { if (!(_mOwningThread.GetThread() == PR_GetCurrentThread())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "SwapChainD3D9" " not thread-safe", "_mOwningThread.GetThread() == PR_GetCurrentThread()", "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\DeviceManagerD3D9.h", 68); } } while (0); } } while (0); ++mRefCnt; NS_LogAddRef_P((this), (mRefCnt), ("SwapChainD3D9"), (PRUint32) (sizeof(*this))); } void Release(void) { do { if (!(0 != mRefCnt)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "dup release", "0 != mRefCnt", "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\DeviceManagerD3D9.h", 68); } } while (0); do { if (NS_IsCycleCollectorThread_P()) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Changing refcount of " "SwapChainD3D9" " object during Traverse is " "not permitted!", "Error", "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\DeviceManagerD3D9.h", 68); } else { do { if (!(_mOwningThread.GetThread() == PR_GetCurrentThread())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "SwapChainD3D9" " not thread-safe", "_mOwningThread.GetThread() == PR_GetCurrentThread()", "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\DeviceManagerD3D9.h", 68); } } while (0); } } while (0); --mRefCnt; NS_LogRelease_P((this), (mRefCnt), ("SwapChainD3D9")); if (mRefCnt == 0) { do { if (!(_mOwningThread.GetThread() == PR_GetCurrentThread())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "SwapChainD3D9" " not thread-safe", "_mOwningThread.GetThread() == PR_GetCurrentThread()", "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\DeviceManagerD3D9.h", 68); } } while (0); mRefCnt = 1; delete this; } } protected: nsAutoRefCnt mRefCnt; nsAutoOwningThread _mOwningThread; public: public: ~SwapChainD3D9(); /** * This function will prepare the device this swap chain belongs to for * rendering to this swap chain. Only after calling this function can the * swap chain be drawn to, and only until this function is called on another * swap chain belonging to this device will the device draw to it. Passed in * is the size of the swap chain. If the window size differs from the size * during the last call to this function the swap chain will resize. Note that * in no case does this function guarantee the backbuffer to still have its * old content. */ bool PrepareForRendering(); /** * This function will present the selected rectangle of the swap chain to * its associated window. */ void Present(const nsIntRect &aRect); private: friend class DeviceManagerD3D9; SwapChainD3D9(DeviceManagerD3D9 *aDeviceManager); bool Init(HWND hWnd); /** * This causes us to release our swap chain, clearing out our resource usage * so the master device may reset. */ void Reset(); nsRefPtr mSwapChain; nsRefPtr mDeviceManager; HWND mWnd; }; /** * Device manager, this class is used by the layer managers to share the D3D9 * device and create swap chains for the individual windows the layer managers * belong to. */ class __declspec(dllexport) DeviceManagerD3D9 { public: DeviceManagerD3D9(); virtual nsrefcnt __stdcall AddRef(void); virtual nsrefcnt __stdcall Release(void); protected: nsAutoRefCnt mRefCnt; nsAutoOwningThread _mOwningThread; public: bool Init(); /** * Sets up the render state for the device for layer rendering. */ void SetupRenderState(); /** * Create a swap chain setup to work with the specified window. */ already_AddRefed CreateSwapChain(HWND hWnd); IDirect3DDevice9 *device() { return mDevice; } bool IsD3D9Ex() { return mDeviceEx; } bool HasDynamicTextures() { return mHasDynamicTextures; } enum ShaderMode { RGBLAYER, RGBALAYER, YCBCRLAYER, SOLIDCOLORLAYER }; void SetShaderMode(ShaderMode aMode); /** * Return pointer to the Nv3DVUtils instance */ Nv3DVUtils *GetNv3DVUtils() { return mNv3DVUtils; } /** * Returns true if this device was removed. */ bool DeviceWasRemoved() { return mDeviceWasRemoved; } /** * We keep a list of all layers here that may have hardware resource allocated * so we can clean their resources on reset. */ nsTArray mLayersWithResources; private: friend class SwapChainD3D9; ~DeviceManagerD3D9(); /** * This function verifies the device is ready for rendering, internally this * will test the cooperative level of the device and reset the device if * needed. If this returns false subsequent rendering calls may return errors. */ bool VerifyReadyForRendering(); /** * This will fill our vertex buffer with the data of our quad, it may be * called when the vertex buffer is recreated. */ bool CreateVertexBuffer(); /* Array used to store all swap chains for device resets */ nsTArray mSwapChains; /* The D3D device we use */ nsRefPtr mDevice; /* The D3D9Ex device - only valid on Vista+ with WDDM */ nsRefPtr mDeviceEx; /* An instance of the D3D9 object */ nsRefPtr mD3D9; /* An instance of the D3D9Ex object - only valid on Vista+ with WDDM */ nsRefPtr mD3D9Ex; /* Vertex shader used for layer quads */ nsRefPtr mLayerVS; /* Pixel shader used for RGB textures */ nsRefPtr mRGBPS; /* Pixel shader used for RGBA textures */ nsRefPtr mRGBAPS; /* Pixel shader used for RGB textures */ nsRefPtr mYCbCrPS; /* Pixel shader used for solid colors */ nsRefPtr mSolidColorPS; /* Vertex buffer containing our basic vertex structure */ nsRefPtr mVB; /* Our vertex declaration */ nsRefPtr mVD; /* Our focus window - this is really a dummy window we can associate our * device with. */ HWND mFocusWnd; /* If this device supports dynamic textures */ bool mHasDynamicTextures; /* If this device was removed */ bool mDeviceWasRemoved; /* Nv3DVUtils instance */ nsAutoPtr mNv3DVUtils; /** * Verifies all required device capabilities are present. */ bool VerifyCaps(); }; } /* namespace layers */ } /* namespace mozilla */ #line 244 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\DeviceManagerD3D9.h" #line 50 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\LayerManagerD3D9.h" namespace mozilla { namespace layers { extern cairo_user_data_key_t gKeyD3D9Texture; class LayerD3D9; class ThebesLayerD3D9; /** * This structure is used to pass rectangles to our shader constant. We can use * this for passing rectangular areas to SetVertexShaderConstant. In the format * of a 4 component float(x,y,width,height). Our vertex shader can then use * this to construct rectangular positions from the 0,0-1,1 quad that we source * it with. */ struct ShaderConstantRect { float mX, mY, mWidth, mHeight; // Provide all the commonly used argument types to prevent all the local // casts in the code. ShaderConstantRect(float aX, float aY, float aWidth, float aHeight) : mX(aX), mY(aY), mWidth(aWidth), mHeight(aHeight) { } ShaderConstantRect(PRInt32 aX, PRInt32 aY, PRInt32 aWidth, PRInt32 aHeight) : mX((float)aX), mY((float)aY) , mWidth((float)aWidth), mHeight((float)aHeight) { } ShaderConstantRect(PRInt32 aX, PRInt32 aY, float aWidth, float aHeight) : mX((float)aX), mY((float)aY), mWidth(aWidth), mHeight(aHeight) { } // For easy passing to SetVertexShaderConstantF. operator float* () { return &mX; } }; /* * This is the LayerManager used for Direct3D 9. For now this will render on * the main thread. */ class __declspec(dllexport) LayerManagerD3D9 : public LayerManager { public: LayerManagerD3D9(nsIWidget *aWidget); virtual ~LayerManagerD3D9(); /* * Initializes the layer manager, this is when the layer manager will * actually access the device and attempt to create the swap chain used * to draw to the window. If this method fails the device cannot be used. * This function is not threadsafe. * * \return True is initialization was succesful, false when it was not. */ PRBool Initialize(); /* * Sets the clipping region for this layer manager. This is important on * windows because using OGL we no longer have GDI's native clipping. Therefor * widget must tell us what part of the screen is being invalidated, * and we should clip to this. * * \param aClippingRegion Region to clip to. Setting an empty region * will disable clipping. */ void SetClippingRegion(const nsIntRegion& aClippingRegion); /* * LayerManager implementation. */ virtual void Destroy(); void BeginTransaction(); void BeginTransactionWithTarget(gfxContext* aTarget); void EndConstruction(); struct CallbackInfo { DrawThebesLayerCallback Callback; void *CallbackData; }; void EndTransaction(DrawThebesLayerCallback aCallback, void* aCallbackData); const CallbackInfo &GetCallbackInfo() { return mCurrentCallbackInfo; } void SetRoot(Layer* aLayer); virtual already_AddRefed CreateThebesLayer(); virtual already_AddRefed CreateContainerLayer(); virtual already_AddRefed CreateImageLayer(); virtual already_AddRefed CreateColorLayer(); virtual already_AddRefed CreateCanvasLayer(); virtual already_AddRefed CreateImageContainer(); virtual already_AddRefed CreateOptimalSurface(const gfxIntSize &aSize, gfxASurface::gfxImageFormat imageFormat); virtual LayersBackend GetBackendType() { return LAYERS_D3D9; } virtual void GetBackendName(nsAString_internal& name) { name.AssignLiteral("Direct3D 9"); } bool DeviceWasRemoved() { return deviceManager()->DeviceWasRemoved(); } /* * Helper methods. */ void SetClippingEnabled(PRBool aEnabled); void SetShaderMode(DeviceManagerD3D9::ShaderMode aMode) { mDeviceManager->SetShaderMode(aMode); } IDirect3DDevice9 *device() const { return mDeviceManager->device(); } DeviceManagerD3D9 *deviceManager() const { return mDeviceManager; } /** * Return pointer to the Nv3DVUtils instance. Re-direct to mDeviceManager. */ Nv3DVUtils *GetNv3DVUtils() { return mDeviceManager ? mDeviceManager->GetNv3DVUtils() : 0; } static void OnDeviceManagerDestroy(DeviceManagerD3D9 *aDeviceManager) { if(aDeviceManager == mDefaultDeviceManager) mDefaultDeviceManager = 0L; } virtual const char* Name() const { return "D3D9"; } #line 186 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\LayerManagerD3D9.h" void ReportFailure(const nsACString_internal &aMsg, HRESULT aCode); private: /* Default device manager instance */ static DeviceManagerD3D9 *mDefaultDeviceManager; /* Device manager instance for this layer manager */ nsRefPtr mDeviceManager; /* Swap chain associated with this layer manager */ nsRefPtr mSwapChain; /* Widget associated with this layer manager */ nsIWidget *mWidget; /* * Context target, NULL when drawing directly to our swap chain. */ nsRefPtr mTarget; /* Callback info for current transaction */ CallbackInfo mCurrentCallbackInfo; /* * Region we're clipping our current drawing to. */ nsIntRegion mClippingRegion; /* * Render the current layer tree to the active target. */ void Render(); /* * Setup the pipeline. */ void SetupPipeline(); /* * Copies the content of our backbuffer to the set transaction target. */ void PaintToTarget(); }; /* * General information and tree management for OGL layers. */ class LayerD3D9 { public: LayerD3D9(LayerManagerD3D9 *aManager); virtual LayerD3D9 *GetFirstChildD3D9() { return 0L; } void SetFirstChild(LayerD3D9 *aParent); virtual Layer* GetLayer() = 0; virtual void RenderLayer() = 0; /** /* This function may be used on device resets to clear all VRAM resources * that a layer might be using. */ virtual void CleanResources() {} IDirect3DDevice9 *device() const { return mD3DManager->device(); } /* Called by the layer manager when it's destroyed */ virtual void LayerManagerDestroyed() {} void ReportFailure(const nsACString_internal &aMsg, HRESULT aCode) { return mD3DManager->ReportFailure(aMsg, aCode); } void SetShaderTransformAndOpacity() { Layer* layer = GetLayer(); const gfx3DMatrix& transform = layer->GetEffectiveTransform(); device()->SetVertexShaderConstantF(CBmLayerTransform, &transform._11, 4); float opacity[4]; /* * We always upload a 4 component float, but the shader will use only the * first component since it's declared as a 'float'. */ opacity[0] = layer->GetEffectiveOpacity(); device()->SetPixelShaderConstantF(CBfLayerOpacity, opacity, 1); } protected: LayerManagerD3D9 *mD3DManager; }; } /* layers */ } /* mozilla */ #line 286 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\LayerManagerD3D9.h" #line 39 "c:/build/hg.instantbird.org/mozilla/gfx/layers/d3d9/LayerManagerD3D9.cpp" #line 1 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\ThebesLayerD3D9.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla Corporation code. * * The Initial Developer of the Original Code is Mozilla Foundation. * Portions created by the Initial Developer are Copyright (C) 2009 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Bas Schouten * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\Layers.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 2 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla Corporation code. * * The Initial Developer of the Original Code is Mozilla Foundation. * Portions created by the Initial Developer are Copyright (C) 2009 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Robert O'Callahan * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 42 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\ThebesLayerD3D9.h" #line 1 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\LayerManagerD3D9.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla Corporation code. * * The Initial Developer of the Original Code is Mozilla Foundation. * Portions created by the Initial Developer are Copyright (C) 2009 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Bas Schouten * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 43 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\ThebesLayerD3D9.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxImageSurface.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxASurface.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 42 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxImageSurface.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxPoint.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 43 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxImageSurface.h" // ARGB -- raw buffer.. wont be changed.. good for storing data. class gfxSubimageSurface; /** * A raw image buffer. The format can be set in the constructor. Its main * purpose is for storing read-only images and using it as a source surface, * but it can also be drawn to. */ class __declspec(dllexport) gfxImageSurface : public gfxASurface { public: /** * Construct an image surface around an existing buffer of image data. * @param aData A buffer containing the image data * @param aSize The size of the buffer * @param aStride The stride of the buffer * @param format Format of the data * * @see gfxImageFormat */ gfxImageSurface(unsigned char *aData, const gfxIntSize& aSize, long aStride, gfxImageFormat aFormat); /** * Construct an image surface. * @param aSize The size of the buffer * @param format Format of the data * * @see gfxImageFormat */ gfxImageSurface(const gfxIntSize& size, gfxImageFormat format); gfxImageSurface(cairo_surface_t *csurf); virtual ~gfxImageSurface(); // ImageSurface methods gfxImageFormat Format() const { return mFormat; } virtual const gfxIntSize GetSize() const { return mSize; } PRInt32 Width() const { return mSize.width; } PRInt32 Height() const { return mSize.height; } /** * Distance in bytes between the start of a line and the start of the * next line. */ PRInt32 Stride() const { return mStride; } /** * Returns a pointer for the image data. Users of this function can * write to it, but must not attempt to free the buffer. */ unsigned char* Data() const { return mData; } // delete this data under us and die. /** * Returns the total size of the image data. */ PRInt32 GetDataSize() const { return mStride*mSize.height; } /* Fast copy from another image surface; returns TRUE if successful, FALSE otherwise */ PRBool CopyFrom (gfxImageSurface *other); /* return new Subimage with pointing to original image starting from aRect.pos * and size of aRect.size. New subimage keeping current image reference */ already_AddRefed GetSubimage(const gfxRect& aRect); virtual already_AddRefed GetAsImageSurface(); virtual PRBool SupportsSelfCopy() { return 0; } protected: gfxImageSurface(); void InitWithData(unsigned char *aData, const gfxIntSize& aSize, long aStride, gfxImageFormat aFormat); void InitFromSurface(cairo_surface_t *csurf); long ComputeStride() const; gfxIntSize mSize; PRBool mOwnsData; unsigned char *mData; gfxImageFormat mFormat; long mStride; }; class __declspec(dllexport) gfxSubimageSurface : public gfxImageSurface { protected: friend class gfxImageSurface; gfxSubimageSurface(gfxImageSurface* aParent, unsigned char* aData, const gfxIntSize& aSize); private: nsRefPtr mParent; }; #line 138 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxImageSurface.h" #line 44 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\ThebesLayerD3D9.h" namespace mozilla { namespace layers { class ThebesLayerD3D9 : public ThebesLayer, public LayerD3D9 { public: ThebesLayerD3D9(LayerManagerD3D9 *aManager); virtual ~ThebesLayerD3D9(); /* Layer implementation */ void SetVisibleRegion(const nsIntRegion& aRegion); /* ThebesLayer implementation */ void InvalidateRegion(const nsIntRegion& aRegion); /* LayerD3D9 implementation */ Layer* GetLayer(); virtual PRBool IsEmpty(); virtual void RenderLayer(); virtual void CleanResources(); virtual void LayerManagerDestroyed(); private: /* * D3D9 texture */ nsRefPtr mTexture; /* Checks if our D2D surface has the right content type */ void VerifyContentType(); /* This contains the D2D surface if we have one */ nsRefPtr mD2DSurface; bool mD2DSurfaceInitialized; /* Have a region of our layer drawn */ void DrawRegion(const nsIntRegion &aRegion); /* Create a new texture */ void CreateNewTexture(const gfxIntSize &aSize); }; } /* layers */ } /* mozilla */ #line 92 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\ThebesLayerD3D9.h" #line 41 "c:/build/hg.instantbird.org/mozilla/gfx/layers/d3d9/LayerManagerD3D9.cpp" #line 1 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\ContainerLayerD3D9.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla Corporation code. * * The Initial Developer of the Original Code is Mozilla Foundation. * Portions created by the Initial Developer are Copyright (C) 2009 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Bas Schouten * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\Layers.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 2 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla Corporation code. * * The Initial Developer of the Original Code is Mozilla Foundation. * Portions created by the Initial Developer are Copyright (C) 2009 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Robert O'Callahan * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 42 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\ContainerLayerD3D9.h" #line 1 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\LayerManagerD3D9.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla Corporation code. * * The Initial Developer of the Original Code is Mozilla Foundation. * Portions created by the Initial Developer are Copyright (C) 2009 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Bas Schouten * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 43 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\ContainerLayerD3D9.h" namespace mozilla { namespace layers { class ContainerLayerD3D9 : public ContainerLayer, public LayerD3D9 { public: ContainerLayerD3D9(LayerManagerD3D9 *aManager); ~ContainerLayerD3D9(); nsIntRect GetVisibleRect() { return mVisibleRegion.GetBounds(); } /* ContainerLayer implementation */ virtual void InsertAfter(Layer* aChild, Layer* aAfter); virtual void RemoveChild(Layer* aChild); /* LayerD3D9 implementation */ Layer* GetLayer(); LayerD3D9* GetFirstChildD3D9(); PRBool IsEmpty(); void RenderLayer(); virtual void LayerManagerDestroyed(); virtual void ComputeEffectiveTransforms(const gfx3DMatrix& aTransformToSurface) { DefaultComputeEffectiveTransforms(aTransformToSurface); } }; } /* layers */ } /* mozilla */ #line 82 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\ContainerLayerD3D9.h" #line 42 "c:/build/hg.instantbird.org/mozilla/gfx/layers/d3d9/LayerManagerD3D9.cpp" #line 1 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\ImageLayerD3D9.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla Corporation code. * * The Initial Developer of the Original Code is Mozilla Foundation. * Portions created by the Initial Developer are Copyright (C) 2009 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Bas Schouten * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\LayerManagerD3D9.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla Corporation code. * * The Initial Developer of the Original Code is Mozilla Foundation. * Portions created by the Initial Developer are Copyright (C) 2009 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Bas Schouten * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 42 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\ImageLayerD3D9.h" #line 1 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\ImageLayers.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 2 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla Corporation code. * * The Initial Developer of the Original Code is Mozilla Foundation. * Portions created by the Initial Developer are Copyright (C) 2009 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Robert O'Callahan * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\Layers.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 2 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla Corporation code. * * The Initial Developer of the Original Code is Mozilla Foundation. * Portions created by the Initial Developer are Copyright (C) 2009 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Robert O'Callahan * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 42 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\ImageLayers.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxPattern.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 44 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\ImageLayers.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsThreadUtils.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla code. * * The Initial Developer of the Original Code is Google Inc. * Portions created by the Initial Developer are Copyright (C) 2006 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prthread.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 43 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsThreadUtils.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prinrval.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* ** File: prinrval.h ** Description: API to interval timing functions of NSPR. ** ** ** NSPR provides interval times that are independent of network time ** of day values. Interval times are (in theory) accurate regardless ** of host processing requirements and also very cheap to acquire. It ** is expected that getting an interval time while in a synchronized ** function (holding one's lock). **/ #line 177 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prinrval.h" /* prinrval.h */ #line 44 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsThreadUtils.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIThreadManager.h" /* * DO NOT EDIT. THIS FILE IS GENERATED FROM c:/build/hg.instantbird.org/mozilla/xpcom/threads/nsIThreadManager.idl */ /* For IDL files that don't want to include root IDL files. */ class nsIThread; /* forward declaration */ /* starting interface: nsIThreadManager */ /** * An interface for creating and locating nsIThread instances. */ class __declspec(novtable) nsIThreadManager : public nsISupports { public: template struct COMTypeInfo { static const nsIID kIID ; }; static const nsIID& GetIID() {return COMTypeInfo::kIID;} /** * Create a new thread (a global, user PRThread). * * @param creationFlags * Reserved for future use. Pass 0. * * @returns * The newly created nsIThread object. */ /* nsIThread newThread (in unsigned long creationFlags); */ virtual nsresult __stdcall NewThread(PRUint32 creationFlags, nsIThread **_retval ) = 0; /** * Get the nsIThread object (if any) corresponding to the given PRThread. * This method returns null if there is no corresponding nsIThread. * * @param prthread * The PRThread of the nsIThread being requested. * * @returns * The nsIThread object corresponding to the given PRThread or null if no * such nsIThread exists. */ /* [noscript] nsIThread getThreadFromPRThread (in PRThread prthread); */ virtual nsresult __stdcall GetThreadFromPRThread(PRThread *prthread, nsIThread **_retval ) = 0; /** * Get the main thread. */ /* readonly attribute nsIThread mainThread; */ virtual nsresult __stdcall GetMainThread(nsIThread **aMainThread) = 0; /** * Get the current thread. If the calling thread does not already have a * nsIThread associated with it, then a new nsIThread will be created and * associated with the current PRThread. */ /* readonly attribute nsIThread currentThread; */ virtual nsresult __stdcall GetCurrentThread(nsIThread **aCurrentThread) = 0; /** * This attribute is true if the calling thread is the main thread of the * application process. */ /* readonly attribute boolean isMainThread; */ virtual nsresult __stdcall GetIsMainThread(PRBool *aIsMainThread) = 0; /** * This attribute is true if the calling thread is the thread on which the * cycle collector runs. */ /* readonly attribute boolean isCycleCollectorThread; */ virtual nsresult __stdcall GetIsCycleCollectorThread(PRBool *aIsCycleCollectorThread) = 0; }; template const nsIID nsIThreadManager::COMTypeInfo::kIID = {0x487c10bf, 0x0a22, 0x4148, { 0x89, 0xfa, 0x79, 0x0d, 0x81, 0x9d, 0xd5, 0x59 }}; /* Use this macro when declaring classes that implement this interface. */ /* Use this macro to declare functions that forward the behavior of this interface to another object. */ /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */ #line 190 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIThreadManager.h" #line 193 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIThreadManager.h" #line 45 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsThreadUtils.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIThread.h" /* * DO NOT EDIT. THIS FILE IS GENERATED FROM c:/build/hg.instantbird.org/mozilla/xpcom/threads/nsIThread.idl */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIEventTarget.h" /* * DO NOT EDIT. THIS FILE IS GENERATED FROM c:/build/hg.instantbird.org/mozilla/xpcom/threads/nsIEventTarget.idl */ /* For IDL files that don't want to include root IDL files. */ class nsIRunnable; /* forward declaration */ /* starting interface: nsIEventTarget */ class __declspec(novtable) nsIEventTarget : public nsISupports { public: template struct COMTypeInfo { static const nsIID kIID ; }; static const nsIID& GetIID() {return COMTypeInfo::kIID;} /** * Dispatch an event to this event target. This function may be called from * any thread, and it may be called re-entrantly. * * @param event * The event to dispatch. * @param flags * The flags modifying event dispatch. The flags are described in detail * below. * * @throws NS_ERROR_INVALID_ARG * Indicates that event is null. * @throws NS_ERROR_UNEXPECTED * Indicates that the thread is shutting down and has finished processing * events, so this event would never run and has not been dispatched. */ /* void dispatch (in nsIRunnable event, in unsigned long flags); */ virtual nsresult __stdcall Dispatch(nsIRunnable *event, PRUint32 flags) = 0; /** * This flag specifies the default mode of event dispatch, whereby the event * is simply queued for later processing. When this flag is specified, * dispatch returns immediately after the event is queued. */ enum { DISPATCH_NORMAL = 0U }; /** * This flag specifies the synchronous mode of event dispatch, in which the * dispatch method does not return until the event has been processed. * * NOTE: passing this flag to dispatch may have the side-effect of causing * other events on the current thread to be processed while waiting for the * given event to be processed. */ enum { DISPATCH_SYNC = 1U }; /** * Check to see if this event target is associated with the current thread. * * @returns * A boolean value that if "true" indicates that events dispatched to this * event target will run on the current thread (i.e., the thread calling * this method). */ /* boolean isOnCurrentThread (); */ virtual nsresult __stdcall IsOnCurrentThread(PRBool *_retval ) = 0; }; template const nsIID nsIEventTarget::COMTypeInfo::kIID = {0x4e8febe4, 0x6631, 0x49dc, { 0x8a, 0xc9, 0x30, 0x8c, 0x1c, 0xb9, 0xb0, 0x9c }}; /* Use this macro when declaring classes that implement this interface. */ /* Use this macro to declare functions that forward the behavior of this interface to another object. */ /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */ #line 144 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIEventTarget.h" // convenient aliases: #line 150 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIEventTarget.h" #line 11 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIThread.h" #line 12 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIThread.h" /* For IDL files that don't want to include root IDL files. */ /* starting interface: nsIThread */ /** * This interface provides a high-level abstraction for an operating system * thread. * * Threads have a built-in event queue, and a thread is an event target that * can receive nsIRunnable objects (events) to be processed on the thread. * * See nsIThreadManager for the API used to create and locate threads. */ class __declspec(novtable) nsIThread : public nsIEventTarget { public: template struct COMTypeInfo { static const nsIID kIID ; }; static const nsIID& GetIID() {return COMTypeInfo::kIID;} /** * @returns * The NSPR thread object corresponding to this nsIThread. */ /* [noscript] readonly attribute PRThread PRThread; */ virtual nsresult __stdcall GetPRThread(PRThread **aPRThread) = 0; /** * Shutdown the thread. This method prevents further dispatch of events to * the thread, and it causes any pending events to run to completion before * the thread joins (see PR_JoinThread) with the current thread. During this * method call, events for the current thread may be processed. * * This method MAY NOT be executed from the thread itself. Instead, it is * meant to be executed from another thread (usually the thread that created * this thread or the main application thread). When this function returns, * the thread will be shutdown, and it will no longer be possible to dispatch * events to the thread. * * @throws NS_ERROR_UNEXPECTED * Indicates that this method was erroneously called when this thread was * the current thread, that this thread was not created with a call to * nsIThreadManager::NewThread, or if this method was called more than once * on the thread object. */ /* void shutdown (); */ virtual nsresult __stdcall Shutdown(void) = 0; /** * This method may be called to determine if there are any events ready to be * processed. It may only be called when this thread is the current thread. * * Because events may be added to this thread by another thread, a "false" * result does not mean that this thread has no pending events. It only * means that there were no pending events when this method was called. * * @returns * A boolean value that if "true" indicates that this thread has one or * more pending events. * * @throws NS_ERROR_UNEXPECTED * Indicates that this method was erroneously called when this thread was * not the current thread. */ /* boolean hasPendingEvents (); */ virtual nsresult __stdcall HasPendingEvents(PRBool *_retval ) = 0; /** * Process the next event. If there are no pending events, then this method * may wait -- depending on the value of the mayWait parameter -- until an * event is dispatched to this thread. This method is re-entrant but may * only be called if this thread is the current thread. * * @param mayWait * A boolean parameter that if "true" indicates that the method may block * the calling thread to wait for a pending event. * * @returns * A boolean value that if "true" indicates that an event was processed. * * @throws NS_ERROR_UNEXPECTED * Indicates that this method was erroneously called when this thread was * not the current thread. */ /* boolean processNextEvent (in boolean mayWait); */ virtual nsresult __stdcall ProcessNextEvent(PRBool mayWait, PRBool *_retval ) = 0; }; template const nsIID nsIThread::COMTypeInfo::kIID = {0x9c889946, 0xa73a, 0x4af3, { 0xae, 0x9a, 0xea, 0x64, 0xf7, 0xd4, 0xe3, 0xca }}; /* Use this macro when declaring classes that implement this interface. */ /* Use this macro to declare functions that forward the behavior of this interface to another object. */ /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */ #line 189 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIThread.h" #line 192 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIThread.h" #line 46 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsThreadUtils.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIRunnable.h" /* * DO NOT EDIT. THIS FILE IS GENERATED FROM c:/build/hg.instantbird.org/mozilla/xpcom/threads/nsIRunnable.idl */ /* For IDL files that don't want to include root IDL files. */ /* starting interface: nsIRunnable */ class __declspec(novtable) nsIRunnable : public nsISupports { public: template struct COMTypeInfo { static const nsIID kIID ; }; static const nsIID& GetIID() {return COMTypeInfo::kIID;} /* void run (); */ virtual nsresult __stdcall Run(void) = 0; }; template const nsIID nsIRunnable::COMTypeInfo::kIID = {0x4a2abaf0, 0x6886, 0x11d3, { 0x93, 0x82, 0x00, 0x10, 0x4b, 0xa0, 0xfd, 0x40 }}; /* Use this macro when declaring classes that implement this interface. */ /* Use this macro to declare functions that forward the behavior of this interface to another object. */ /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */ #line 89 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIRunnable.h" #line 92 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIRunnable.h" #line 47 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsThreadUtils.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsStringGlue.h" /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla XPCOM Glue. * * The Initial Developer of the Original Code is * the Mozilla Foundation . * * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Benjamin Smedberg * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /** * @file nsStringGlue.h * This header exists solely to #include the proper internal/frozen string * headers, depending on whether MOZILLA_INTERNAL_API is defined. */ #line 48 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsThreadUtils.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCOMPtr.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Scott Collins (original author) * L. David Baron * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 49 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsThreadUtils.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAutoPtr.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Scott Collins (original author of nsCOMPtr) * L. David Baron * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 50 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsThreadUtils.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/threads/nsThreadIDs.h" /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is XPCOM. * * The Initial Developer of the Original Code is * Mozilla Foundation. * Portions created by the Initial Developer are Copyright (C) 2010 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 51 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsThreadUtils.h" // This is needed on some systems to prevent collisions between the symbols // appearing in xpcom_core and xpcomglue. It may be unnecessary in the future // with better toolchain support. #line 66 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsThreadUtils.h" //----------------------------------------------------------------------------- // These methods are alternatives to the methods on nsIThreadManager, provided // for convenience. /** * Create a new thread, and optionally provide an initial event for the thread. * * @param result * The resulting nsIThread object. * @param initialEvent * The initial event to run on this thread. This parameter may be null. * * @returns NS_ERROR_INVALID_ARG * Indicates that the given name is not unique. */ extern nsresult __stdcall NS_NewThread_P(nsIThread **result, nsIRunnable *initialEvent = 0L); /** * Get a reference to the current thread. * * @param result * The resulting nsIThread object. */ extern nsresult __stdcall NS_GetCurrentThread_P(nsIThread **result); /** * Get a reference to the main thread. * * @param result * The resulting nsIThread object. */ extern nsresult __stdcall NS_GetMainThread_P(nsIThread **result); bool NS_IsMainThread_P(); #line 126 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsThreadUtils.h" /** * Dispatch the given event to the current thread. * * @param event * The event to dispatch. * * @returns NS_ERROR_INVALID_ARG * If event is null. */ extern nsresult __stdcall NS_DispatchToCurrentThread_P(nsIRunnable *event); /** * Dispatch the given event to the main thread. * * @param event * The event to dispatch. * @param dispatchFlags * The flags to pass to the main thread's dispatch method. * * @returns NS_ERROR_INVALID_ARG * If event is null. */ extern nsresult __stdcall NS_DispatchToMainThread_P(nsIRunnable *event, PRUint32 dispatchFlags = nsIEventTarget::DISPATCH_NORMAL); /** * Process all pending events for the given thread before returning. This * method simply calls ProcessNextEvent on the thread while HasPendingEvents * continues to return true and the time spent in NS_ProcessPendingEvents * does not exceed the given timeout value. * * @param thread * The thread object for which to process pending events. If null, then * events will be processed for the current thread. * @param timeout * The maximum number of milliseconds to spend processing pending events. * Events are not pre-empted to honor this timeout. Rather, the timeout * value is simply used to determine whether or not to process another event. * Pass PR_INTERVAL_NO_TIMEOUT to specify no timeout. */ extern nsresult __stdcall NS_ProcessPendingEvents_P(nsIThread *thread, PRIntervalTime timeout = 0xffffffffUL); #line 174 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsThreadUtils.h" /** * Shortcut for nsIThread::HasPendingEvents. * * It is an error to call this function when the given thread is not the * current thread. This function will return PR_FALSE if called from some * other thread. * * @param thread * The current thread or null. * * @returns * A boolean value that if "true" indicates that there are pending events * in the current thread's event queue. */ extern PRBool NS_HasPendingEvents_P(nsIThread *thread = 0L); /** * Shortcut for nsIThread::ProcessNextEvent. * * It is an error to call this function when the given thread is not the * current thread. This function will simply return PR_FALSE if called * from some other thread. * * @param thread * The current thread or null. * @param mayWait * A boolean parameter that if "true" indicates that the method may block * the calling thread to wait for a pending event. * * @returns * A boolean value that if "true" indicates that an event from the current * thread's event queue was processed. */ extern PRBool NS_ProcessNextEvent_P(nsIThread *thread = 0L, PRBool mayWait = 1); //----------------------------------------------------------------------------- // Helpers that work with nsCOMPtr: inline already_AddRefed do_GetCurrentThread() { nsIThread *thread = 0L; NS_GetCurrentThread_P(&thread); return already_AddRefed(thread); } inline already_AddRefed do_GetMainThread() { nsIThread *thread = 0L; NS_GetMainThread_P(&thread); return already_AddRefed(thread); } //----------------------------------------------------------------------------- // Fast access to the current thread. Do not release the returned pointer! If // you want to use this pointer from some other thread, then you will need to // AddRef it. Otherwise, you should only consider this pointer valid from code // running on the current thread. extern nsIThread *NS_GetCurrentThread_P(); #line 238 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsThreadUtils.h" //----------------------------------------------------------------------------- // This class is designed to be subclassed. class nsRunnable : public nsIRunnable { public: public: virtual nsresult __stdcall QueryInterface(const nsIID& aIID, void** aInstancePtr); virtual nsrefcnt __stdcall AddRef(void); virtual nsrefcnt __stdcall Release(void); protected: nsAutoRefCnt mRefCnt; nsAutoOwningThread _mOwningThread; public: virtual nsresult __stdcall Run(void); nsRunnable() { } protected: virtual ~nsRunnable() { } }; // An event that can be used to call a method on a class. The class type must // support reference counting. This event supports Revoke for use // with nsRevocableEventPtr. template class nsRunnableMethod : public nsRunnable { public: virtual void Revoke() = 0; // These ReturnTypeEnforcer classes set up a blacklist for return types that // we know are not safe. The default ReturnTypeEnforcer compiles just fine but // already_AddRefed will not. template class ReturnTypeEnforcer { public: typedef int ReturnTypeIsSafe; }; template class ReturnTypeEnforcer > { // No ReturnTypeIsSafe makes this illegal! }; // Make sure this return type is safe. typedef typename ReturnTypeEnforcer::ReturnTypeIsSafe check; }; template struct nsRunnableMethodReceiver { ClassType *mObj; nsRunnableMethodReceiver(ClassType *obj) : mObj(obj) { ns_if_addref(mObj); } ~nsRunnableMethodReceiver() { Revoke(); } void Revoke() { do { if (mObj) { (mObj)->Release(); (mObj) = 0; } } while (0); } }; template struct nsRunnableMethodReceiver { ClassType *mObj; nsRunnableMethodReceiver(ClassType *obj) : mObj(obj) {} void Revoke() { mObj = 0L; } }; template struct nsRunnableMethodTraits; template struct nsRunnableMethodTraits { typedef C class_type; typedef R return_type; typedef nsRunnableMethod base_type; }; template class nsRunnableMethodImpl : public nsRunnableMethodTraits::base_type { typedef typename nsRunnableMethodTraits::class_type ClassType; nsRunnableMethodReceiver mReceiver; Method mMethod; public: nsRunnableMethodImpl(ClassType *obj, Method method) : mReceiver(obj) , mMethod(method) {} virtual nsresult __stdcall Run() { if ((!!(mReceiver.mObj))) ((*mReceiver.mObj).*mMethod)(); return 0; } void Revoke() { mReceiver.Revoke(); } }; // Use this template function like so: // // nsCOMPtr event = // NS_NewRunnableMethod(myObject, &MyClass::HandleEvent); // NS_DispatchToCurrentThread(event); // // Statically enforced constraints: // - myObject must be of (or implicitly convertible to) type MyClass // - MyClass must defined AddRef and Release methods // template typename nsRunnableMethodTraits::base_type* NS_NewRunnableMethod(PtrType ptr, Method method) { return new nsRunnableMethodImpl(ptr, method); } template typename nsRunnableMethodTraits::base_type* NS_NewNonOwningRunnableMethod(PtrType ptr, Method method) { return new nsRunnableMethodImpl(ptr, method); } #line 379 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsThreadUtils.h" // This class is designed to be used when you have an event class E that has a // pointer back to resource class R. If R goes away while E is still pending, // then it is important to "revoke" E so that it does not try use R after R has // been destroyed. nsRevocableEventPtr makes it easy for R to manage such // situations: // // class R; // // class E : public nsRunnable { // public: // void Revoke() { // mResource = nsnull; // } // private: // R *mResource; // }; // // class R { // public: // void EventHandled() { // mEvent.Forget(); // } // private: // nsRevocableEventPtr mEvent; // }; // // void R::PostEvent() { // // Make sure any pending event is revoked. // mEvent->Revoke(); // // nsCOMPtr event = new E(); // if (NS_SUCCEEDED(NS_DispatchToCurrentThread(event))) { // // Keep pointer to event so we can revoke it. // mEvent = event; // } // } // // NS_IMETHODIMP E::Run() { // if (!mResource) // return NS_OK; // ... // mResource->EventHandled(); // return NS_OK; // } // template class nsRevocableEventPtr { public: nsRevocableEventPtr() : mEvent(0L) { } ~nsRevocableEventPtr() { Revoke(); } const nsRevocableEventPtr& operator=(T *event) { if (mEvent != event) { Revoke(); mEvent = event; } return *this; } void Revoke() { if (mEvent) { mEvent->Revoke(); mEvent = 0L; } } void Forget() { mEvent = 0L; } PRBool IsPending() { return mEvent != 0L; } T *get() { return mEvent; } private: // Not implemented nsRevocableEventPtr(const nsRevocableEventPtr&); nsRevocableEventPtr& operator=(const nsRevocableEventPtr&); nsRefPtr mEvent; }; #line 470 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsThreadUtils.h" #line 45 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\ImageLayers.h" namespace mozilla { namespace layers { enum StereoMode { STEREO_MODE_MONO, STEREO_MODE_LEFT_RIGHT, STEREO_MODE_RIGHT_LEFT, STEREO_MODE_BOTTOM_TOP, STEREO_MODE_TOP_BOTTOM }; /** * A class representing a buffer of pixel data. The data can be in one * of various formats including YCbCr. * * Create an image using an ImageContainer. Fill the image with data, and * then call ImageContainer::SetImage to display it. An image must not be * modified after calling SetImage. Image implementations do not need to * perform locking; when filling an Image, the Image client is responsible * for ensuring only one thread accesses the Image at a time, and after * SetImage the image is immutable. * * When resampling an Image, only pixels within the buffer should be * sampled. For example, cairo images should be sampled in EXTEND_PAD mode. */ class __declspec(dllexport) Image { public: nsrefcnt AddRef(void) { do { if (!(PRInt32(mRefCnt) >= 0)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "illegal refcnt", "PRInt32(mRefCnt) >= 0", "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\ImageLayers.h", 72); } } while (0); nsrefcnt count = NS_AtomicIncrementRefcnt(mRefCnt); NS_LogAddRef_P((this), (count), ("Image"), (PRUint32) (sizeof(*this))); return count; } nsrefcnt Release(void) { do { if (!(0 != mRefCnt)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "dup release", "0 != mRefCnt", "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\ImageLayers.h", 72); } } while (0); nsrefcnt count = NS_AtomicDecrementRefcnt(mRefCnt); NS_LogRelease_P((this), (count), ("Image")); if (count == 0) { mRefCnt = 1; delete this; return 0; } return count; } protected: nsAutoRefCnt mRefCnt; public: public: virtual ~Image() {} enum Format { /** * The PLANAR_YCBCR format creates a PlanarYCbCrImage. All backends should * support this format, because the Ogg video decoder depends on it. * The maximum image width and height is 16384. */ PLANAR_YCBCR, /** * The CAIRO_SURFACE format creates a CairoImage. All backends should * support this format, because video rendering sometimes requires it. * * This format is useful even though a ThebesLayer could be used. * It makes it easy to render a cairo surface when another Image format * could be used. It can also avoid copying the surface data in some * cases. * * Images in CAIRO_SURFACE format should only be created and * manipulated on the main thread, since the underlying cairo surface * is main-thread-only. */ CAIRO_SURFACE }; Format GetFormat() { return mFormat; } void* GetImplData() { return mImplData; } protected: Image(void* aImplData, Format aFormat) : mImplData(aImplData), mFormat(aFormat) {} void* mImplData; Format mFormat; }; /** * A class that manages Images for an ImageLayer. The only reason * we need a separate class here is that ImageLayers aren't threadsafe * (because layers can only be used on the main thread) and we want to * be able to set the current Image from any thread, to facilitate * video playback without involving the main thread, for example. */ class __declspec(dllexport) ImageContainer { public: nsrefcnt AddRef(void) { do { if (!(PRInt32(mRefCnt) >= 0)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "illegal refcnt", "PRInt32(mRefCnt) >= 0", "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\ImageLayers.h", 122); } } while (0); nsrefcnt count = NS_AtomicIncrementRefcnt(mRefCnt); NS_LogAddRef_P((this), (count), ("ImageContainer"), (PRUint32) (sizeof(*this))); return count; } nsrefcnt Release(void) { do { if (!(0 != mRefCnt)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "dup release", "0 != mRefCnt", "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\ImageLayers.h", 122); } } while (0); nsrefcnt count = NS_AtomicDecrementRefcnt(mRefCnt); NS_LogRelease_P((this), (count), ("ImageContainer")); if (count == 0) { mRefCnt = 1; delete this; return 0; } return count; } protected: nsAutoRefCnt mRefCnt; public: public: ImageContainer() {} virtual ~ImageContainer() {} /** * Create an Image in one of the given formats. * Picks the "best" format from the list and creates an Image of that * format. * Returns null if this backend does not support any of the formats. */ virtual already_AddRefed CreateImage(const Image::Format* aFormats, PRUint32 aNumFormats) = 0; /** * Set an Image as the current image to display. The Image must have * been created by this ImageContainer. * * The Image data must not be modified after this method is called! */ virtual void SetCurrentImage(Image* aImage) = 0; /** * Get the current Image. * This has to add a reference since otherwise there are race conditions * where the current image is destroyed before the caller can add * a reference. */ virtual already_AddRefed GetCurrentImage() = 0; /** * Get the current image as a gfxASurface. This is useful for fallback * rendering. * This can only be called from the main thread, since cairo objects * can only be used from the main thread. * This is defined here and not on Image because it's possible (likely) * that some backends will make an Image "ready to draw" only when it * becomes the current image for an image container. * Returns null if there is no current image. * Returns the size in aSize. * The returned surface will never be modified. The caller must not * modify it. */ virtual already_AddRefed GetCurrentAsSurface(gfxIntSize* aSizeResult) = 0; /** * Returns the layer manager for this container. This can only * be used on the main thread, since layer managers should only be * accessed on the main thread. */ LayerManager* Manager() { do { if (!(NS_IsMainThread_P())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Must be called on main thread", "NS_IsMainThread()", "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\ImageLayers.h", 175); } } while (0); return mManager; } /** * Returns the size of the image in pixels. */ virtual gfxIntSize GetCurrentSize() = 0; /** * Set a new layer manager for this image container. It must be * either of the same type as the container's current layer manager, * or null. TRUE is returned on success. */ virtual PRBool SetLayerManager(LayerManager *aManager) = 0; /** * Sets a size that the image is expected to be rendered at. * This is a hint for image backends to optimize scaling. * Default implementation in this class is to ignore the hint. */ virtual void SetScaleHint(const gfxIntSize& /* aScaleHint */) { } protected: LayerManager* mManager; ImageContainer(LayerManager* aManager) : mManager(aManager) {} }; /** * A Layer which renders an Image. */ class __declspec(dllexport) ImageLayer : public Layer { public: /** * CONSTRUCTION PHASE ONLY * Set the ImageContainer. aContainer must have the same layer manager * as this layer. */ void SetContainer(ImageContainer* aContainer) { mContainer = aContainer; } /** * CONSTRUCTION PHASE ONLY * Set the filter used to resample this image if necessary. */ void SetFilter(gfxPattern::GraphicsFilter aFilter) { mFilter = aFilter; } ImageContainer* GetContainer() { return mContainer; } gfxPattern::GraphicsFilter GetFilter() { return mFilter; } virtual const char* Name() const { return "ImageLayer"; } virtual LayerType GetType() const { return TYPE_IMAGE; } virtual void ComputeEffectiveTransforms(const gfx3DMatrix& aTransformToSurface) { // Snap image edges to pixel boundaries gfxRect snap(0, 0, 0, 0); if (mContainer) { gfxIntSize size = mContainer->GetCurrentSize(); snap.size = gfxSize(size.width, size.height); } // Snap our local transform first, and snap the inherited transform as well. // This makes our snapping equivalent to what would happen if our content // was drawn into a ThebesLayer (gfxContext would snap using the local // transform, then we'd snap again when compositing the ThebesLayer). mEffectiveTransform = SnapTransform(GetLocalTransform(), snap, 0L)* SnapTransform(aTransformToSurface, gfxRect(0, 0, 0, 0), 0L); } protected: ImageLayer(LayerManager* aManager, void* aImplData) : Layer(aManager, aImplData), mFilter(gfxPattern::FILTER_GOOD) {} virtual nsACString_internal& PrintInfo(nsACString_internal& aTo, const char* aPrefix); nsRefPtr mContainer; gfxPattern::GraphicsFilter mFilter; }; /****** Image subtypes for the different formats ******/ /** * We assume that the image data is in the REC 470M color space (see * Theora specification, section 4.3.1). * * The YCbCr format can be: * * 4:4:4 - CbCr width/height are the same as Y. * 4:2:2 - CbCr width is half that of Y. Height is the same. * 4:2:0 - CbCr width and height is half that of Y. * * The color format is detected based on the height/width ratios * defined above. * * The Image that is rendered is the picture region defined by * mPicX, mPicY and mPicSize. The size of the rendered image is * mPicSize, not mYSize or mCbCrSize. */ class __declspec(dllexport) PlanarYCbCrImage : public Image { public: struct Data { // Luminance buffer PRUint8* mYChannel; PRInt32 mYStride; gfxIntSize mYSize; // Chroma buffers PRUint8* mCbChannel; PRUint8* mCrChannel; PRInt32 mCbCrStride; gfxIntSize mCbCrSize; // Picture region PRUint32 mPicX; PRUint32 mPicY; gfxIntSize mPicSize; StereoMode mStereoMode; }; enum { MAX_DIMENSION = 16384 }; /** * This makes a copy of the data buffers. * XXX Eventually we will change this to not make a copy of the data, * Right now it doesn't matter because the BasicLayer implementation * does YCbCr conversion here anyway. */ virtual void SetData(const Data& aData) = 0; protected: PlanarYCbCrImage(void* aImplData) : Image(aImplData, PLANAR_YCBCR) {} }; /** * Currently, the data in a CairoImage surface is treated as being in the * device output color space. */ class __declspec(dllexport) CairoImage : public Image { public: struct Data { gfxASurface* mSurface; gfxIntSize mSize; }; /** * This can only be called on the main thread. It may add a reference * to the surface (which will eventually be released on the main thread). * The surface must not be modified after this call!!! */ virtual void SetData(const Data& aData) = 0; protected: CairoImage(void* aImplData) : Image(aImplData, CAIRO_SURFACE) {} }; } } #line 333 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\ImageLayers.h" #line 43 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\ImageLayerD3D9.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\yuv_convert.h" // Copyright (c) 2010 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\chromium_types.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla Corporation code. * * The Initial Developer of the Original Code is Mozilla Foundation. * Portions created by the Initial Developer are Copyright (C) 2009 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Chris Double * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* ** File: prtypes.h ** Description: Definitions of NSPR's basic types ** ** Prototypes and macros used to make up for deficiencies that we have found ** in ANSI environments. ** ** Since we do not wrap and all the other standard headers, authors ** of portable code will not know in general that they need these definitions. ** Instead of requiring these authors to find the dependent uses in their code ** and take the following steps only in those C files, we take steps once here ** for all C files. **/ #line 41 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\chromium_types.h" typedef PRUint8 uint8; typedef PRInt8 int8; typedef PRInt16 int16; // From Chromium build_config.h: // Processor architecture detection. For more info on what's defined, see: // http://msdn.microsoft.com/en-us/library/b0084kay.aspx // http://www.agner.org/optimize/calling_conventions.pdf // or with gcc, run: "echo | gcc -E -dM -" #line 56 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\chromium_types.h" #line 79 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\chromium_types.h" #line 81 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\chromium_types.h" #line 9 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\yuv_convert.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxCore.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Marco Pesenti Gritti * Portions created by the Initial Developer are Copyright (C) 2004 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 10 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\yuv_convert.h" namespace mozilla { namespace gfx { // Type of YUV surface. // The value of these enums matter as they are used to shift vertical indices. enum YUVType { YV12 = 0, // YV12 is half width and half height chroma channels. YV16 = 1, // YV16 is half width and full height chroma channels. YV24 = 2 // YV24 is full width and full height chroma channels. }; // Mirror means flip the image horizontally, as in looking in a mirror. // Rotate happens after mirroring. enum Rotate { ROTATE_0, // Rotation off. ROTATE_90, // Rotate clockwise. ROTATE_180, // Rotate upside down. ROTATE_270, // Rotate counter clockwise. MIRROR_ROTATE_0, // Mirror horizontally. MIRROR_ROTATE_90, // Mirror then Rotate clockwise. MIRROR_ROTATE_180, // Mirror vertically. MIRROR_ROTATE_270 // Transpose. }; // Filter affects how scaling looks. enum ScaleFilter { FILTER_NONE = 0, // No filter (point sampled). FILTER_BILINEAR_H = 1, // Bilinear horizontal filter. FILTER_BILINEAR_V = 2, // Bilinear vertical filter. FILTER_BILINEAR = 3 // Bilinear filter. }; // Convert a frame of YUV to 16 bit RGB565. // Pass in YV12 formats void ConvertYCbCrToRGB565(const uint8* yplane, const uint8* uplane, const uint8* vplane, uint8* rgbframe, int pic_x, int pic_y, int pic_width, int pic_height, int ystride, int uvstride, int rgbstride, YUVType yuv_type); // Convert a frame of YUV to 32 bit ARGB. // Pass in YV16/YV12 depending on source format void ConvertYCbCrToRGB32(const uint8* yplane, const uint8* uplane, const uint8* vplane, uint8* rgbframe, int pic_x, int pic_y, int pic_width, int pic_height, int ystride, int uvstride, int rgbstride, YUVType yuv_type); // Scale a frame of YUV to 32 bit ARGB. // Supports rotation and mirroring. void ScaleYCbCrToRGB32(const uint8* yplane, const uint8* uplane, const uint8* vplane, uint8* rgbframe, int source_width, int source_height, int width, int height, int ystride, int uvstride, int rgbstride, YUVType yuv_type, Rotate view_rotate, ScaleFilter filter); } // namespace gfx } // namespace mozilla #line 99 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\yuv_convert.h" #line 44 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\ImageLayerD3D9.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/Mutex.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- * vim: sw=4 ts=4 et : * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prlock.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* ** File: prlock.h ** Description: API to basic locking functions of NSPR. ** ** ** NSPR provides basic locking mechanisms for thread synchronization. Locks ** are lightweight resource contention controls that prevent multiple threads ** from accessing something (code/data) simultaneously. **/ #line 43 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/Mutex.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/AutoRestore.h" /* vim: set shiftwidth=2 tabstop=8 autoindent cindent expandtab: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is nsAutoRestore.h. * * The Initial Developer of the Original Code is the Mozilla Foundation. * Portions created by the Initial Developer are Copyright (C) 2009 * the Initial Developer. All Rights Reserved. * * Contributor(s): * L. David Baron , Mozilla Corporation (original author) * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* functions for restoring saved values at the end of a C++ scope */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* ** File: prtypes.h ** Description: Definitions of NSPR's basic types ** ** Prototypes and macros used to make up for deficiencies that we have found ** in ANSI environments. ** ** Since we do not wrap and all the other standard headers, authors ** of portable code will not know in general that they need these definitions. ** Instead of requiring these authors to find the dependent uses in their code ** and take the following steps only in those C files, we take steps once here ** for all C files. **/ #line 44 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/AutoRestore.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsDebug.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 45 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/AutoRestore.h" namespace mozilla { /** * The following classes are designed to cause assertions to detect * inadvertent use of guard objects as temporaries. In other words, * when we have a guard object whose only purpose is its constructor and * destructor (and is never otherwise referenced), the intended use * might be: * AutoRestore savePainting(mIsPainting); * but is is easy to accidentally write: * AutoRestore(mIsPainting); * which compiles just fine, but runs the destructor well before the * intended time. * * They work by adding (#ifdef DEBUG) an additional parameter to the * guard object's constructor, with a default value, so that users of * the guard object's API do not need to do anything. The default value * of this parameter is a temporary object. C++ (ISO/IEC 14882:1998), * section 12.2 [class.temporary], clauses 4 and 5 seem to assume a * guarantee that temporaries are destroyed in the reverse of their * construction order, but I actually can't find a statement that that * is true in the general case (beyond the two specific cases mentioned * there). However, it seems to be true. * * These classes are intended to be used only via the macros immediately * below them: * MOZILLA_DECL_USE_GUARD_OBJECT_NOTIFIER declares (ifdef DEBUG) a member * variable, and should be put where a declaration of a private * member variable would be placed. * MOZILLA_GUARD_OBJECT_NOTIFIER_PARAM should be placed at the end of the * parameters to each constructor of the guard object; it declares * (ifdef DEBUG) an additional parameter. (But use the *_ONLY_PARAM * variant for constructors that take no other parameters.) * MOZILLA_GUARD_OBJECT_NOTIFIER_PARAM_IN_IMPL should likewise be used in * the implementation of such constructors when they are not inline. * MOZILLA_GUARD_OBJECT_NOTIFIER_PARAM_TO_PARENT should be used in * the implementation of such constructors to pass the parameter to * a base class that also uses these macros * MOZILLA_GUARD_OBJECT_NOTIFIER_INIT is a statement that belongs in each * constructor. It uses the parameter declared by * MOZILLA_GUARD_OBJECT_NOTIFIER_PARAM. * * For more details, and examples of using these macros, see * https://developer.mozilla.org/en/Using_RAII_classes_in_Mozilla */ class GuardObjectNotifier { private: bool* mStatementDone; public: GuardObjectNotifier() : mStatementDone(0) {} ~GuardObjectNotifier() { *mStatementDone = true; } void SetStatementDone(bool *aStatementDone) { mStatementDone = aStatementDone; } }; class GuardObjectNotificationReceiver { private: bool mStatementDone; public: GuardObjectNotificationReceiver() : mStatementDone(false) {} ~GuardObjectNotificationReceiver() { /* * Assert that the guard object was not used as a temporary. * (Note that this assert might also fire if Init is not called * because the guard object's implementation is not using the * above macros correctly.) */ do { if (!(mStatementDone)) { NS_DebugBreak_P(NS_DEBUG_ABORT, "guard object used as temporary", "mStatementDone", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/AutoRestore.h", 123); } } while (0); #line 124 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/AutoRestore.h" } void Init(const GuardObjectNotifier &aNotifier) { /* * aNotifier is passed as a const reference so that we can pass a * temporary, but we really intend it as non-const */ const_cast(aNotifier). SetStatementDone(&mStatementDone); } }; #line 161 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/AutoRestore.h" /** * Save the current value of a variable and restore it when the object * goes out of scope. For example: * { * AutoRestore savePainting(mIsPainting); * mIsPainting = PR_TRUE; * * // ... your code here ... * * // mIsPainting is reset to its old value at the end of this block * } */ template class AutoRestore { private: T& mLocation; T mValue; mozilla::GuardObjectNotificationReceiver _mCheckNotUsedAsTemporary; public: AutoRestore(T& aValue , const mozilla::GuardObjectNotifier& _notifier = mozilla::GuardObjectNotifier()) : mLocation(aValue), mValue(aValue) { do { _mCheckNotUsedAsTemporary.Init(_notifier); } while (0); } ~AutoRestore() { mLocation = mValue; } }; } #line 194 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/AutoRestore.h" #line 45 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/Mutex.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/BlockingResourceBase.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- * vim: sw=4 ts=4 et : * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Chris Jones * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prlock.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* ** File: prlock.h ** Description: API to basic locking functions of NSPR. ** ** ** NSPR provides basic locking mechanisms for thread synchronization. Locks ** are lightweight resource contention controls that prevent multiple threads ** from accessing something (code/data) simultaneously. **/ #line 45 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/BlockingResourceBase.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prlog.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 46 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/BlockingResourceBase.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 48 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/BlockingResourceBase.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsDebug.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 49 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/BlockingResourceBase.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsError.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 50 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/BlockingResourceBase.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prinit.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prthread.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 42 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prinit.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* ** File: prtypes.h ** Description: Definitions of NSPR's basic types ** ** Prototypes and macros used to make up for deficiencies that we have found ** in ANSI environments. ** ** Since we do not wrap and all the other standard headers, authors ** of portable code will not know in general that they need these definitions. ** Instead of requiring these authors to find the dependent uses in their code ** and take the following steps only in those C files, we take steps once here ** for all C files. **/ #line 43 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prinit.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prwin16.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* ** Condition use of this header on platform. */ #line 181 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prwin16.h" /* ** For platforms other than Win16, define ** PR_STDIO_INIT() as a No-Op. */ #line 187 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prwin16.h" #line 189 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prwin16.h" #line 44 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prinit.h" extern "C" { /************************************************************************/ /**************************IDENTITY AND VERSIONING***********************/ /************************************************************************/ /* ** NSPR's name, this should persist until at least the turn of the ** century. */ /* ** NSPR's version is used to determine the likelihood that the version you ** used to build your component is anywhere close to being compatible with ** what is in the underlying library. ** ** The format of the version string is ** ".[.] []" */ /* ** PRVersionCheck ** ** The basic signature of the function that is called to provide version ** checking. The result will be a boolean that indicates the likelihood ** that the underling library will perform as the caller expects. ** ** The only argument is a string, which should be the verson identifier ** of the library in question. That string will be compared against an ** equivalent string that represents the actual build version of the ** exporting library. ** ** The result will be the logical union of the directly called library ** and all dependent libraries. */ typedef PRBool (*PRVersionCheck)(const char*); /* ** PR_VersionCheck ** ** NSPR's existance proof of the version check function. ** ** Note that NSPR has no cooperating dependencies. */ __declspec(dllimport) PRBool PR_VersionCheck(const char *importedVersion); /************************************************************************/ /*******************************INITIALIZATION***************************/ /************************************************************************/ /* ** Initialize the runtime. Attach a thread object to the currently ** executing native thread of type "type". ** ** The specificaiton of 'maxPTDs' is ignored. */ __declspec(dllimport) void PR_Init( PRThreadType type, PRThreadPriority priority, PRUintn maxPTDs); /* ** And alternate form of initialization, one that may become the default if ** not the only mechanism, provides a method to get the NSPR runtime init- ** ialized and place NSPR between the caller and the runtime library. This ** allows main() to be treated as any other thread root function, signalling ** its compeletion by returning and allowing the runtime to coordinate the ** completion of the other threads of the runtime. ** ** The priority of the main (or primordial) thread will be PR_PRIORITY_NORMAL. ** The thread may adjust its own priority by using PR_SetPriority(), though ** at this time the support for priorities is somewhat weak. ** ** The specificaiton of 'maxPTDs' is ignored. ** ** The value returned by PR_Initialize is the value returned from the root ** function, 'prmain'. */ typedef PRIntn ( *PRPrimordialFn)(PRIntn argc, char **argv); __declspec(dllimport) PRIntn PR_Initialize( PRPrimordialFn prmain, PRIntn argc, char **argv, PRUintn maxPTDs); /* ** Return PR_TRUE if PR_Init has already been called. */ __declspec(dllimport) PRBool PR_Initialized(void); /* * Perform a graceful shutdown of NSPR. PR_Cleanup() may be called by * the primordial thread near the end of the main() function. * * PR_Cleanup() attempts to synchronize the natural termination of * process. It does that by blocking the caller, if and only if it is * the primordial thread, until the number of user threads has dropped * to zero. When the primordial thread returns from main(), the process * will immediately and silently exit. That is, it will (if necessary) * forcibly terminate any existing threads and exit without significant * blocking and there will be no error messages or core files. * * PR_Cleanup() returns PR_SUCCESS if NSPR is successfully shutdown, * or PR_FAILURE if the calling thread of this function is not the * primordial thread. */ __declspec(dllimport) PRStatus PR_Cleanup(void); /* ** Disable Interrupts ** Disables timer signals used for pre-emptive scheduling. */ __declspec(dllimport) void PR_DisableClockInterrupts(void); /* ** Enables Interrupts ** Enables timer signals used for pre-emptive scheduling. */ __declspec(dllimport) void PR_EnableClockInterrupts(void); /* ** Block Interrupts ** Blocks the timer signal used for pre-emptive scheduling */ __declspec(dllimport) void PR_BlockClockInterrupts(void); /* ** Unblock Interrupts ** Unblocks the timer signal used for pre-emptive scheduling */ __declspec(dllimport) void PR_UnblockClockInterrupts(void); /* ** Create extra virtual processor threads. Generally used with MP systems. */ __declspec(dllimport) void PR_SetConcurrency(PRUintn numCPUs); /* ** Control the method and size of the file descriptor (PRFileDesc*) ** cache used by the runtime. Setting 'high' to zero is for performance, ** any other value probably for debugging (see memo on FD caching). */ __declspec(dllimport) PRStatus PR_SetFDCacheSize(PRIntn low, PRIntn high); /* * Cause an immediate, nongraceful, forced termination of the process. * It takes a PRIntn argument, which is the exit status code of the * process. */ __declspec(dllimport) void PR_ProcessExit(PRIntn status); /* ** Abort the process in a non-graceful manner. This will cause a core file, ** call to the debugger or other moral equivalent as well as causing the ** entire process to stop. */ __declspec(dllimport) void PR_Abort(void); /* **************************************************************** * * Module initialization: * **************************************************************** */ typedef struct PRCallOnceType { PRIntn initialized; PRInt32 inProgress; PRStatus status; } PRCallOnceType; typedef PRStatus ( *PRCallOnceFN)(void); typedef PRStatus ( *PRCallOnceWithArgFN)(void *arg); __declspec(dllimport) PRStatus PR_CallOnce( PRCallOnceType *once, PRCallOnceFN func ); __declspec(dllimport) PRStatus PR_CallOnceWithArg( PRCallOnceType *once, PRCallOnceWithArgFN func, void *arg ); } #line 243 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prinit.h" #line 53 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/BlockingResourceBase.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prthread.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 54 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/BlockingResourceBase.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsStringGlue.h" /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla XPCOM Glue. * * The Initial Developer of the Original Code is * the Mozilla Foundation . * * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Benjamin Smedberg * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /** * @file nsStringGlue.h * This header exists solely to #include the proper internal/frozen string * headers, depending on whether MOZILLA_INTERNAL_API is defined. */ #line 56 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/BlockingResourceBase.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/DeadlockDetector.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- * vim: sw=4 ts=4 et : * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Chris Jones * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\plhash.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 45 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/DeadlockDetector.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prlock.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* ** File: prlock.h ** Description: API to basic locking functions of NSPR. ** ** ** NSPR provides basic locking mechanisms for thread synchronization. Locks ** are lightweight resource contention controls that prevent multiple threads ** from accessing something (code/data) simultaneously. **/ #line 46 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/DeadlockDetector.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTArray.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is C++ array template. * * The Initial Developer of the Original Code is Google Inc. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 48 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/DeadlockDetector.h" namespace mozilla { // FIXME bug 456272: split this off into a convenience API on top of // nsStackWalk? class CallStack { private: typedef void* callstack_id; #line 69 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/DeadlockDetector.h" callstack_id mCallStack; public: /** * CallStack * *ALWAYS* *ALWAYS* *ALWAYS* call this with no arguments. This * constructor takes an argument *ONLY* so that |GET_BACKTRACE()| * can be evaluated in the stack frame of the caller, rather than * that of the constructor. * * *BEWARE*: this means that calling this constructor with no * arguments is not the same as a "default, do-nothing" * constructor: it *will* construct a backtrace. This can cause * unexpected performance issues. */ CallStack(const callstack_id aCallStack = 0) : mCallStack(aCallStack) { } CallStack(const CallStack& aFrom) : mCallStack(aFrom.mCallStack) { } CallStack& operator=(const CallStack& aFrom) { mCallStack = aFrom.mCallStack; return *this; } bool operator==(const CallStack& aOther) const { return mCallStack == aOther.mCallStack; } bool operator!=(const CallStack& aOther) const { return mCallStack != aOther.mCallStack; } // FIXME bug 456272: if this is split off, // NS_TraceMallocPrintStackTrace should be modified to print into // an nsACString void Print(FILE* f) const { fputs(" [stack trace unavailable]\n", f); } /** The "null" callstack. */ static const CallStack kNone; }; /** * DeadlockDetector * * The following is an approximate description of how the deadlock detector * works. * * The deadlock detector ensures that all blocking resources are * acquired according to a partial order P. One type of blocking * resource is a lock. If a lock l1 is acquired (locked) before l2, * then we say that |l1 <_P l2|. The detector flags an error if two * locks l1 and l2 have an inconsistent ordering in P; that is, if * both |l1 <_P l2| and |l2 <_P l1|. This is a potential error * because a thread acquiring l1,l2 according to the first order might * race with a thread acquiring them according to the second order. * If this happens under the right conditions, then the acquisitions * will deadlock. * * This deadlock detector doesn't know at compile-time what P is. So, * it tries to discover the order at run time. More precisely, it * finds some order P, then tries to find chains of resource * acquisitions that violate P. An example acquisition sequence, and * the orders they impose, is * l1.lock() // current chain: [ l1 ] * // order: { } * * l2.lock() // current chain: [ l1, l2 ] * // order: { l1 <_P l2 } * * l3.lock() // current chain: [ l1, l2, l3 ] * // order: { l1 <_P l2, l2 <_P l3, l1 <_P l3 } * // (note: <_P is transitive, so also |l1 <_P l3|) * * l2.unlock() // current chain: [ l1, l3 ] * // order: { l1 <_P l2, l2 <_P l3, l1 <_P l3 } * // (note: it's OK, but weird, that l2 was unlocked out * // of order. we still have l1 <_P l3). * * l2.lock() // current chain: [ l1, l3, l2 ] * // order: { l1 <_P l2, l2 <_P l3, l1 <_P l3, * l3 <_P l2 (!!!) } * BEEP BEEP! Here the detector will flag a potential error, since * l2 and l3 were used inconsistently (and potentially in ways that * would deadlock). */ template class DeadlockDetector { public: /** * ResourceAcquisition * Consists simply of a resource and the calling context from * which it was acquired. We pack this information together so * that it can be returned back to the caller when a potential * deadlock has been found. */ struct ResourceAcquisition { const T* mResource; CallStack mCallContext; ResourceAcquisition( const T* aResource, const CallStack aCallContext=CallStack::kNone) : mResource(aResource), mCallContext(aCallContext) { } ResourceAcquisition(const ResourceAcquisition& aFrom) : mResource(aFrom.mResource), mCallContext(aFrom.mCallContext) { } ResourceAcquisition& operator=(const ResourceAcquisition& aFrom) { mResource = aFrom.mResource; mCallContext = aFrom.mCallContext; return *this; } }; typedef nsTArray ResourceAcquisitionArray; private: typedef nsTArray HashEntryArray; typedef typename HashEntryArray::index_type index_type; typedef typename HashEntryArray::size_type size_type; enum { NoIndex = HashEntryArray::NoIndex }; /** * Value type for the ordering table. Contains the other * resources on which an ordering constraint |key < other| * exists. The catch is that we also store the calling context at * which the other resource was acquired; this improves the * quality of error messages when potential deadlock is detected. */ struct OrderingEntry { OrderingEntry() : mFirstSeen(CallStack::kNone), mOrderedLT() // FIXME bug 456272: set to empirical { // dep size? } ~OrderingEntry() { } CallStack mFirstSeen; // first site from which the resource appeared HashEntryArray mOrderedLT; // this <_o Other }; static void* TableAlloc(void* /*pool*/, PRSize size) { return operator new(size); } static void TableFree(void* /*pool*/, void* item) { operator delete(item); } static PLHashEntry* EntryAlloc(void* /*pool*/, const void* key) { return new PLHashEntry; } static void EntryFree(void* /*pool*/, PLHashEntry* entry, PRUintn flag) { delete static_cast(const_cast(entry->key)); delete static_cast(entry->value); entry->value = 0; if (1 == flag) delete entry; } static PLHashNumber HashKey(const void* aKey) { return ((PRInt32) (PRWord) (aKey)) >> 2; } static const PLHashAllocOps kAllocOps; // Hash table "interface" the rest of the code should use PLHashEntry** GetEntry(const T* aKey) { return PL_HashTableRawLookup(mOrdering, HashKey(aKey), aKey); } void PutEntry(T* aKey) { PL_HashTableAdd(mOrdering, aKey, new OrderingEntry()); } // XXX need these helper methods because OrderingEntry doesn't have // XXX access to underlying PLHashEntry /** * Add the order |aFirst <_o aSecond|. * * WARNING: this does not check whether it's sane to add this * order. In the "best" bad case, when this order already exists, * adding it anyway may unnecessarily result in O(n^2) space. In * the "worst" bad case, adding it anyway will cause * |InTransitiveClosure()| to diverge. */ void AddOrder(PLHashEntry* aLT, PLHashEntry* aGT) { static_cast(aLT->value)->mOrderedLT .InsertElementSorted(aGT); } /** * Return true iff the order |aFirst < aSecond| has been * *explicitly* added. * * Does not consider transitivity. */ bool IsOrdered(const PLHashEntry* aFirst, const PLHashEntry* aSecond) const { return NoIndex != static_cast(aFirst->value)->mOrderedLT .BinaryIndexOf(aSecond); } /** * Return a pointer to the array of all elements "that" for * which the order |this < that| has been explicitly added. * * NOTE: this does *not* consider transitive orderings. */ PLHashEntry* const* GetOrders(const PLHashEntry* aEntry) const { return static_cast(aEntry->value)->mOrderedLT .Elements(); } /** * Return the number of elements "that" for which the order * |this < that| has been explicitly added. * * NOTE: this does *not* consider transitive orderings. */ size_type NumOrders(const PLHashEntry* aEntry) const { return static_cast(aEntry->value)->mOrderedLT .Length(); } /** Make a ResourceAcquisition out of |aEntry|. */ ResourceAcquisition MakeResourceAcquisition(const PLHashEntry* aEntry) const { return ResourceAcquisition( static_cast(aEntry->key), static_cast(aEntry->value)->mFirstSeen); } // Throwaway RAII lock to make the following code safer. struct PRAutoLock { PRAutoLock(PRLock* aLock) : mLock(aLock) { PR_Lock(mLock); } ~PRAutoLock() { PR_Unlock(mLock); } PRLock* mLock; }; public: static const PRUint32 kDefaultNumBuckets; /** * DeadlockDetector * Create a new deadlock detector. * * @param aNumResourcesGuess Guess at approximate number of resources * that will be checked. */ DeadlockDetector(PRUint32 aNumResourcesGuess = kDefaultNumBuckets) { mOrdering = PL_NewHashTable(aNumResourcesGuess, HashKey, PL_CompareValues, PL_CompareValues, &kAllocOps, 0); if (!mOrdering) NS_DebugBreak_P(NS_DEBUG_ABORT, "couldn't initialize resource ordering table", 0L, "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/DeadlockDetector.h", 365); mLock = PR_NewLock(); if (!mLock) NS_DebugBreak_P(NS_DEBUG_ABORT, "couldn't allocate deadlock detector lock", 0L, "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/DeadlockDetector.h", 369); } /** * ~DeadlockDetector * * *NOT* thread safe. */ ~DeadlockDetector() { PL_HashTableDestroy(mOrdering); PR_DestroyLock(mLock); } /** * Add * Make the deadlock detector aware of |aResource|. * * WARNING: The deadlock detector owns |aResource|. * * Thread safe. * * @param aResource Resource to make deadlock detector aware of. */ void Add(T* aResource) { PRAutoLock _(mLock); PutEntry(aResource); } // Nb: implementing a Remove() method makes the detector "more // unsound." By removing a resource from the orderings, deadlocks // may be missed that would otherwise have been found. However, // removing resources possibly reduces the # of false positives, // and additionally saves space. So it's a trade off; we have // chosen to err on the side of caution and not implement Remove(). /** * CheckAcquisition This method is called after acquiring |aLast|, * but before trying to acquire |aProposed| from |aCallContext|. * It determines whether actually trying to acquire |aProposed| * will create problems. It is OK if |aLast| is NULL; this is * interpreted as |aProposed| being the thread's first acquisition * of its current chain. * * Iff acquiring |aProposed| may lead to deadlock for some thread * interleaving (including the current one!), the cyclical * dependency from which this was deduced is returned. Otherwise, * 0 is returned. * * If a potential deadlock is detected and a resource cycle is * returned, it is the *caller's* responsibility to free it. * * Thread safe. * * @param aLast Last resource acquired by calling thread (or 0). * @param aProposed Resource calling thread proposes to acquire. * @param aCallContext Calling context whence acquisiton request came. */ ResourceAcquisitionArray* CheckAcquisition(const T* aLast, const T* aProposed, const CallStack& aCallContext) { do { if (!(aProposed)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "null resource", "aProposed", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/DeadlockDetector.h", 432); } } while (0); PRAutoLock _(mLock); PLHashEntry* second = *GetEntry(aProposed); OrderingEntry* e = static_cast(second->value); if (CallStack::kNone == e->mFirstSeen) e->mFirstSeen = aCallContext; if (!aLast) // don't check if |0 < proposed|; just vamoose return 0; PLHashEntry* first = *GetEntry(aLast); // this is the crux of the deadlock detector algorithm if (first == second) { // reflexive deadlock. fastpath b/c InTransitiveClosure is // not applicable here. ResourceAcquisitionArray* cycle = new ResourceAcquisitionArray(); if (!cycle) NS_DebugBreak_P(NS_DEBUG_ABORT, "can't allocate dep. cycle array", 0L, "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/DeadlockDetector.h", 453); cycle->AppendElement(MakeResourceAcquisition(first)); cycle->AppendElement(ResourceAcquisition(aProposed, aCallContext)); return cycle; } if (InTransitiveClosure(first, second)) { // we've already established |last < proposed|. all is well. return 0; } if (InTransitiveClosure(second, first)) { // the order |proposed < last| has been deduced, perhaps // transitively. we're attempting to violate that // constraint by acquiring resources in the order // |last < proposed|, and thus we may deadlock under the // right conditions. ResourceAcquisitionArray* cycle = GetDeductionChain(second, first); // show how acquiring |proposed| would complete the cycle cycle->AppendElement(ResourceAcquisition(aProposed, aCallContext)); return cycle; } // |last|, |proposed| are unordered according to our // poset. this is fine, but we now need to add this // ordering constraint. AddOrder(first, second); return 0; } /** * Return true iff |aTarget| is in the transitive closure of |aStart| * over the ordering relation `<_this'. * * @precondition |aStart != aTarget| */ bool InTransitiveClosure(const PLHashEntry* aStart, const PLHashEntry* aTarget) const { if (IsOrdered(aStart, aTarget)) return true; index_type i = 0; size_type len = NumOrders(aStart); for (const PLHashEntry* const* it = GetOrders(aStart); i < len; ++i, ++it) if (InTransitiveClosure(*it, aTarget)) return true; return false; } /** * Return an array of all resource acquisitions * aStart <_this r1 <_this r2 <_ ... <_ aTarget * from which |aStart <_this aTarget| was deduced, including * |aStart| and |aTarget|. * * Nb: there may be multiple deductions of |aStart <_this * aTarget|. This function returns the first ordering found by * depth-first search. * * Nb: |InTransitiveClosure| could be replaced by this function. * However, this one is more expensive because we record the DFS * search stack on the heap whereas the other doesn't. * * @precondition |aStart != aTarget| */ ResourceAcquisitionArray* GetDeductionChain( const PLHashEntry* aStart, const PLHashEntry* aTarget) { ResourceAcquisitionArray* chain = new ResourceAcquisitionArray(); if (!chain) NS_DebugBreak_P(NS_DEBUG_ABORT, "can't allocate dep. cycle array", 0L, "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/DeadlockDetector.h", 525); chain->AppendElement(MakeResourceAcquisition(aStart)); do { if (!(GetDeductionChain_Helper(aStart, aTarget, chain))) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "GetDeductionChain called when there's no deadlock", "GetDeductionChain_Helper(aStart, aTarget, chain)", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/DeadlockDetector.h", 529); } } while (0); #line 530 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/DeadlockDetector.h" return chain; } // precondition: |aStart != aTarget| // invariant: |aStart| is the last element in |aChain| bool GetDeductionChain_Helper(const PLHashEntry* aStart, const PLHashEntry* aTarget, ResourceAcquisitionArray* aChain) { if (IsOrdered(aStart, aTarget)) { aChain->AppendElement(MakeResourceAcquisition(aTarget)); return true; } index_type i = 0; size_type len = NumOrders(aStart); for (const PLHashEntry* const* it = GetOrders(aStart); i < len; ++i, ++it) { aChain->AppendElement(MakeResourceAcquisition(*it)); if (GetDeductionChain_Helper(*it, aTarget, aChain)) return true; aChain->RemoveElementAt(aChain->Length() - 1); } return false; } /** * The partial order on resource acquisitions used by the deadlock * detector. */ PLHashTable* mOrdering; // T* -> PLHashEntry /** * Protects contentious methods. * Nb: can't use mozilla::Mutex since we are used as its deadlock * detector. */ PRLock* mLock; DeadlockDetector(const DeadlockDetector& aDD); DeadlockDetector& operator=(const DeadlockDetector& aDD); }; template const PLHashAllocOps DeadlockDetector::kAllocOps = { DeadlockDetector::TableAlloc, DeadlockDetector::TableFree, DeadlockDetector::EntryAlloc, DeadlockDetector::EntryFree }; template // FIXME bug 456272: tune based on average workload const PRUint32 DeadlockDetector::kDefaultNumBuckets = 64; } // namespace mozilla #line 589 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/DeadlockDetector.h" #line 58 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/BlockingResourceBase.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsXPCOM.h" /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Benjamin Smedberg * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 59 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/BlockingResourceBase.h" #line 60 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/BlockingResourceBase.h" // // This header is not meant to be included by client code. // namespace mozilla { /** * BlockingResourceBase * Base class of resources that might block clients trying to acquire them. * Does debugging and deadlock detection in DEBUG builds. **/ class BlockingResourceBase { public: // Needs to be kept in sync with kResourceTypeNames. enum BlockingResourceType { eMutex, eMonitor, eCondVar }; /** * kResourceTypeName * Human-readable version of BlockingResourceType enum. */ static const char* const kResourceTypeName[]; private: // forward declaration for the following typedef struct DeadlockDetectorEntry; // ``DDT'' = ``Deadlock Detector Type'' typedef DeadlockDetector DDT; /** * DeadlockDetectorEntry * We free BlockingResources, but we never free entries in the * deadlock detector. This struct outlives its BlockingResource * and preserves all the state needed to print subsequent * error messages. * * These objects are owned by the deadlock detector. */ struct DeadlockDetectorEntry { DeadlockDetectorEntry(const char* aName, BlockingResourceType aType) : mName(aName), mType(aType), mAcquisitionContext(CallStack::kNone) { } /** * Print * Write a description of this blocking resource to |out|. If * the resource appears to be currently acquired, the current * acquisition context is printed and true is returned. * Otherwise, we print the context from |aFirstSeen|, the * first acquisition from which the code calling |Print()| * became interested in us, and return false. |Print()| can * be forced to print the context from |aFirstSeen| regardless * by passing |aPrintFirstSeenCx=true|. * * *NOT* thread safe. Reads |mAcquisitionContext| without * synchronization, but this will not cause correctness * problems. * * FIXME bug 456272: hack alert: because we can't write call * contexts into strings, all info is written to stderr, but * only some info is written into |out| */ bool Print(const DDT::ResourceAcquisition& aFirstSeen, nsACString_internal& out, bool aPrintFirstSeenCx=false) const; /** * mName * A descriptive name for this resource. Used in error * messages etc. */ const char* mName; /** * mType * The more specific type of this resource. Used to implement * special semantics (e.g., reentrancy of monitors). **/ BlockingResourceType mType; /** * mAcquisitionContext * The calling context from which this resource was acquired, or * |CallStack::kNone| if it is currently free (or freed). */ CallStack mAcquisitionContext; }; protected: /** * BlockingResourceBase * Initialize this blocking resource. Also hooks the resource into * instrumentation code. * * Thread safe. * * @param aName A meaningful, unique name that can be used in * error messages, et al. * @param aType The specific type of |this|, if any. **/ BlockingResourceBase(const char* aName, BlockingResourceType aType); ~BlockingResourceBase(); /** * CheckAcquire * * Thread safe. * * @param aCallContext the client's calling context from which the * original acquisition request was made. **/ void CheckAcquire(const CallStack& aCallContext); /** * Acquire * * *NOT* thread safe. Requires ownership of underlying resource. * * @param aCallContext the client's calling context from which the * original acquisition request was made. **/ void Acquire(const CallStack& aCallContext); //NS_NEEDS_RESOURCE(this) /** * Release * Remove this resource from the current thread's acquisition chain. * The resource does not have to be at the front of the chain, although * it is confusing to release resources in a different order than they * are acquired. This generates a warning. * * *NOT* thread safe. Requires ownership of underlying resource. **/ void Release(); //NS_NEEDS_RESOURCE(this) /** * PrintCycle * Append to |out| detailed information about the circular * dependency in |cycle|. Returns true if it *appears* that this * cycle may represent an imminent deadlock, but this is merely a * heuristic; the value returned may be a false positive or false * negative. * * *NOT* thread safe. Calls |Print()|. * * FIXME bug 456272 hack alert: because we can't write call * contexts into strings, all info is written to stderr, but only * some info is written into |out| */ static bool PrintCycle(const DDT::ResourceAcquisitionArray* cycle, nsACString_internal& out); /** * ResourceChainFront * * Thread safe. * * @return the front of the resource acquisition chain, i.e., the last * resource acquired. */ static BlockingResourceBase* ResourceChainFront() { return (BlockingResourceBase*) PR_GetThreadPrivate(sResourceAcqnChainFrontTPI); } /** * ResourceChainPrev * * *NOT* thread safe. Requires ownership of underlying resource. */ static BlockingResourceBase* ResourceChainPrev(const BlockingResourceBase* aResource) { return aResource->mChainPrev; } //NS_NEEDS_RESOURCE(this) /** * ResourceChainAppend * Set |this| to the front of the resource acquisition chain, and link * |this| to |aPrev|. * * *NOT* thread safe. Requires ownership of underlying resource. */ void ResourceChainAppend(BlockingResourceBase* aPrev) { mChainPrev = aPrev; PR_SetThreadPrivate(sResourceAcqnChainFrontTPI, this); } //NS_NEEDS_RESOURCE(this) /** * ResourceChainRemove * Remove |this| from the front of the resource acquisition chain. * * *NOT* thread safe. Requires ownership of underlying resource. */ void ResourceChainRemove() { do { if (!(this == ResourceChainFront())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "not at chain front", "this == ResourceChainFront()", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/BlockingResourceBase.h", 267); } } while (0); PR_SetThreadPrivate(sResourceAcqnChainFrontTPI, mChainPrev); } //NS_NEEDS_RESOURCE(this) /** * GetAcquisitionContext * Return the calling context from which this resource was acquired, * or CallStack::kNone if it's currently free. * * *NOT* thread safe. Requires ownership of underlying resource. */ CallStack GetAcquisitionContext() { return mDDEntry->mAcquisitionContext; } /** * SetAcquisitionContext * Set the calling context from which this resource was acquired. * * *NOT* thread safe. Requires ownership of underlying resource. */ void SetAcquisitionContext(CallStack aAcquisitionContext) { mDDEntry->mAcquisitionContext = aAcquisitionContext; } /** * mChainPrev * A series of resource acquisitions creates a chain of orders. This * chain is implemented as a linked list; |mChainPrev| points to the * resource most recently Acquire()'d before this one. **/ BlockingResourceBase* mChainPrev; private: /** * mDDEntry * The key for this BlockingResourceBase in the deadlock detector. */ DeadlockDetectorEntry* mDDEntry; /** * sCallOnce * Ensures static members are initialized only once, and in a * thread-safe way. */ static PRCallOnceType sCallOnce; /** * sResourceAcqnChainFrontTPI * Thread-private index to the front of each thread's resource * acquisition chain. */ static PRUintn sResourceAcqnChainFrontTPI; /** * sDeadlockDetector * Does as named. */ static DDT* sDeadlockDetector; /** * InitStatics * Inititialize static members of BlockingResourceBase that can't * be statically initialized. * * *NOT* thread safe. */ static PRStatus InitStatics() { PR_NewThreadPrivateIndex(&sResourceAcqnChainFrontTPI, 0); sDeadlockDetector = new DDT(); if (!sDeadlockDetector) NS_DebugBreak_P(NS_DEBUG_ABORT, "can't allocate deadlock detector", 0L, "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/BlockingResourceBase.h", 342); return PR_SUCCESS; } /** * Shutdown * Free static members. * * *NOT* thread safe. */ static void Shutdown() { delete sDeadlockDetector; sDeadlockDetector = 0; } // so it can call BlockingResourceBase::Shutdown() friend void LogTerm(); #line 361 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/BlockingResourceBase.h" #line 373 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/BlockingResourceBase.h" }; } // namespace mozilla #line 380 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/BlockingResourceBase.h" #line 46 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/Mutex.h" // // Provides: // // - Mutex, a non-recursive mutex // - MutexAutoLock, an RAII class for ensuring that Mutexes are properly // locked and unlocked // - MutexAutoUnlock, complementary sibling to MutexAutoLock // // Using MutexAutoLock/MutexAutoUnlock is MUCH preferred to making bare // calls to Mutex.Lock and Unlock. // namespace mozilla { /** * Mutex * When possible, use MutexAutoLock/MutexAutoUnlock to lock/unlock this * mutex within a scope, instead of calling Lock/Unlock directly. **/ class Mutex : BlockingResourceBase { public: /** * Mutex * @param name A name which can reference this lock * @returns If failure, nsnull * If success, a valid Mutex* which must be destroyed * by Mutex::DestroyMutex() **/ Mutex(const char* name) : BlockingResourceBase(name, eMutex) { mLock = PR_NewLock(); if (!mLock) NS_DebugBreak_P(NS_DEBUG_ABORT, "Can't allocate mozilla::Mutex", 0L, "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/Mutex.h", 82); } /** * ~Mutex **/ ~Mutex() { do { if (!(mLock)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "improperly constructed Lock or double free", "mLock", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/Mutex.h", 91); } } while (0); #line 92 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/Mutex.h" // NSPR does consistency checks for us PR_DestroyLock(mLock); mLock = 0; } void Lock(); void Unlock(); void AssertCurrentThreadOwns () const { PR_AssertCurrentThreadOwnsLock(mLock); } void AssertNotCurrentThreadOwns () const { // FIXME bug 476536 } #line 147 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/Mutex.h" private: Mutex(); Mutex(const Mutex&); Mutex& operator=(const Mutex&); PRLock* mLock; friend class CondVar; }; /** * MutexAutoLock * Acquires the Mutex when it enters scope, and releases it when it leaves * scope. * * MUCH PREFERRED to bare calls to Mutex.Lock and Unlock. */ class MutexAutoLock { public: /** * Constructor * The constructor aquires the given lock. The destructor * releases the lock. * * @param aLock A valid mozilla::Mutex* returned by * mozilla::Mutex::NewMutex. **/ MutexAutoLock(mozilla::Mutex& aLock , const mozilla::GuardObjectNotifier& _notifier = mozilla::GuardObjectNotifier()) : mLock(&aLock) { do { _mCheckNotUsedAsTemporary.Init(_notifier); } while (0); do { if (!(mLock)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "null mutex", "mLock", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/Mutex.h", 181); } } while (0); mLock->Lock(); } ~MutexAutoLock(void) { mLock->Unlock(); } private: MutexAutoLock(); MutexAutoLock(MutexAutoLock&); MutexAutoLock& operator=(MutexAutoLock&); static void* operator new(size_t) throw(); static void operator delete(void*); mozilla::Mutex* mLock; mozilla::GuardObjectNotificationReceiver _mCheckNotUsedAsTemporary; }; /** * MutexAutoUnlock * Releases the Mutex when it enters scope, and re-acquires it when it leaves * scope. * * MUCH PREFERRED to bare calls to Mutex.Unlock and Lock. */ class MutexAutoUnlock { public: MutexAutoUnlock(mozilla::Mutex& aLock , const mozilla::GuardObjectNotifier& _notifier = mozilla::GuardObjectNotifier()) : mLock(&aLock) { do { _mCheckNotUsedAsTemporary.Init(_notifier); } while (0); do { if (!(mLock)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "null lock", "mLock", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/Mutex.h", 215); } } while (0); mLock->Unlock(); } ~MutexAutoUnlock() { mLock->Lock(); } private: MutexAutoUnlock(); MutexAutoUnlock(MutexAutoUnlock&); MutexAutoUnlock& operator =(MutexAutoUnlock&); static void* operator new(size_t) throw(); static void operator delete(void*); mozilla::Mutex* mLock; mozilla::GuardObjectNotificationReceiver _mCheckNotUsedAsTemporary; }; } // namespace mozilla #line 240 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\mozilla/Mutex.h" #line 45 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\ImageLayerD3D9.h" namespace mozilla { namespace layers { class __declspec(dllexport) ImageContainerD3D9 : public ImageContainer { public: ImageContainerD3D9(LayerManagerD3D9 *aManager); virtual ~ImageContainerD3D9() {} virtual already_AddRefed CreateImage(const Image::Format* aFormats, PRUint32 aNumFormats); virtual void SetCurrentImage(Image* aImage); virtual already_AddRefed GetCurrentImage(); virtual already_AddRefed GetCurrentAsSurface(gfxIntSize* aSize); virtual gfxIntSize GetCurrentSize(); virtual PRBool SetLayerManager(LayerManager *aManager); private: typedef mozilla::Mutex Mutex; nsRefPtr mActiveImage; Mutex mActiveImageLock; }; class __declspec(dllexport) ImageLayerD3D9 : public ImageLayer, public LayerD3D9 { public: ImageLayerD3D9(LayerManagerD3D9 *aManager) : ImageLayer(aManager, 0) , LayerD3D9(aManager) { mImplData = static_cast(this); } // LayerD3D9 Implementation virtual Layer* GetLayer(); virtual void RenderLayer(); }; class __declspec(dllexport) ImageD3D9 { public: virtual already_AddRefed GetAsSurface() = 0; }; class __declspec(dllexport) PlanarYCbCrImageD3D9 : public PlanarYCbCrImage, public ImageD3D9 { public: PlanarYCbCrImageD3D9(LayerManagerD3D9 *aManager); ~PlanarYCbCrImageD3D9() {} virtual void SetData(const Data &aData); /* * Upload the data from out mData into our textures. For now we use this to * make sure the textures are created and filled on the main thread. */ void AllocateTextures(); /* * XXX * Free the textures, we call this from the main thread when we're done * drawing this frame. We cannot free this from the constructor since it may * be destroyed off the main-thread and might not be able to properly clean * up its textures */ void FreeTextures(); PRBool HasData() { return mHasData; } virtual already_AddRefed GetAsSurface(); nsAutoArrayPtr mBuffer; LayerManagerD3D9 *mManager; Data mData; gfxIntSize mSize; nsRefPtr mYTexture; nsRefPtr mCrTexture; nsRefPtr mCbTexture; PRPackedBool mHasData; gfx::YUVType mType; }; class __declspec(dllexport) CairoImageD3D9 : public CairoImage, public ImageD3D9 { public: CairoImageD3D9(LayerManagerD3D9 *aManager) : CairoImage(static_cast(this)) , mManager(aManager) { } ~CairoImageD3D9(); virtual void SetData(const Data &aData); virtual already_AddRefed GetAsSurface(); /** * Uploading a texture may fail if the screen is locked. If this happens, * we need to save the backing surface and retry when we are asked to paint. */ virtual IDirect3DTexture9* GetOrCreateTexture(); const gfxIntSize& GetSize() { return mSize; } private: gfxIntSize mSize; nsRefPtr mCachedSurface; nsRefPtr mTexture; LayerManagerD3D9 *mManager; }; } /* layers */ } /* mozilla */ #line 168 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\ImageLayerD3D9.h" #line 43 "c:/build/hg.instantbird.org/mozilla/gfx/layers/d3d9/LayerManagerD3D9.cpp" #line 1 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\ColorLayerD3D9.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla Corporation code. * * The Initial Developer of the Original Code is Mozilla Foundation. * Portions created by the Initial Developer are Copyright (C) 2009 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Robert O'Callahan * Bas Schouten * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\LayerManagerD3D9.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla Corporation code. * * The Initial Developer of the Original Code is Mozilla Foundation. * Portions created by the Initial Developer are Copyright (C) 2009 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Bas Schouten * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 43 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\ColorLayerD3D9.h" namespace mozilla { namespace layers { class __declspec(dllexport) ColorLayerD3D9 : public ColorLayer, public LayerD3D9 { public: ColorLayerD3D9(LayerManagerD3D9 *aManager) : ColorLayer(aManager, 0) , LayerD3D9(aManager) { mImplData = static_cast(this); } // LayerD3D9 Implementation virtual Layer* GetLayer(); virtual void RenderLayer(); }; } /* layers */ } /* mozilla */ #line 68 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\ColorLayerD3D9.h" #line 44 "c:/build/hg.instantbird.org/mozilla/gfx/layers/d3d9/LayerManagerD3D9.cpp" #line 1 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\CanvasLayerD3D9.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 2 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla Corporation code. * * The Initial Developer of the Original Code is Mozilla Foundation. * Portions created by the Initial Developer are Copyright (C) 2010 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Vladimir Vukicevic * Bas Schouten * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\LayerManagerD3D9.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla Corporation code. * * The Initial Developer of the Original Code is Mozilla Foundation. * Portions created by the Initial Developer are Copyright (C) 2009 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Bas Schouten * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 43 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\CanvasLayerD3D9.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContext.h" /* -*- Mode: c++; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40; -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Mozilla Corporation. * Portions created by the Initial Developer are Copyright (C) 2010 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Vladimir Vukicevic * Mark Steele * Bas Schouten * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 51 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContext.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLDefs.h" /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Mozilla Corporation. * Portions created by the Initial Developer are Copyright (C) 2009 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Vladimir Vukicevic (original author) * Mark Steele * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ typedef unsigned int GLenum; typedef unsigned int GLbitfield; typedef unsigned int GLuint; typedef int GLint; typedef int GLsizei; typedef char realGLboolean; typedef signed char GLbyte; typedef short GLshort; typedef unsigned char GLubyte; typedef unsigned short GLushort; typedef float GLfloat; typedef float GLclampf; typedef double GLdouble; #line 63 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLDefs.h" typedef double GLclampd; typedef void GLvoid; typedef char GLchar; typedef ptrdiff_t GLsizeiptr; typedef ptrdiff_t GLintptr; #line 78 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLDefs.h" #line 79 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLDefs.h" #line 81 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLDefs.h" #line 3199 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLDefs.h" #line 53 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContext.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxASurface.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 54 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContext.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxImageSurface.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 55 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContext.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxContext.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * Vladimir Vukicevic * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 56 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContext.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxRect.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 57 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContext.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupportsImpl.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is XPCOM. * * The Initial Developer of the Original Code is Netscape Communications Corp. * Portions created by the Initial Developer are Copyright (C) 2001 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 58 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContext.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prlink.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* ** API to static and dynamic linking. */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* ** File: prtypes.h ** Description: Definitions of NSPR's basic types ** ** Prototypes and macros used to make up for deficiencies that we have found ** in ANSI environments. ** ** Since we do not wrap and all the other standard headers, authors ** of portable code will not know in general that they need these definitions. ** Instead of requiring these authors to find the dependent uses in their code ** and take the following steps only in those C files, we take steps once here ** for all C files. **/ #line 45 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prlink.h" extern "C" { typedef struct PRLibrary PRLibrary; typedef struct PRStaticLinkTable { const char *name; void (*fp)(void); } PRStaticLinkTable; /* ** Change the default library path to the given string. The string is ** copied. This call will fail if it runs out of memory. ** ** The string provided as 'path' is copied. The caller can do whatever is ** convenient with the argument when the function is complete. */ __declspec(dllimport) PRStatus PR_SetLibraryPath(const char *path); /* ** Return a character string which contains the path used to search for ** dynamically loadable libraries. ** ** The returned value is basically a copy of a PR_SetLibraryPath(). ** The storage is allocated by the runtime and becomes the responsibilty ** of the caller. */ __declspec(dllimport) char* PR_GetLibraryPath(void); /* ** Given a directory name "dir" and a library name "lib" construct a full ** path name that will refer to the actual dynamically loaded ** library. This does not test for existance of said file, it just ** constructs the full filename. The name constructed is system dependent ** and prepared for PR_LoadLibrary. The result must be free'd when the ** caller is done with it. ** ** The storage for the result is allocated by the runtime and becomes the ** responsibility of the caller. */ __declspec(dllimport) char* PR_GetLibraryName(const char *dir, const char *lib); /* ** ** Free the memory allocated, for the caller, by PR_GetLibraryName */ __declspec(dllimport) void PR_FreeLibraryName(char *mem); /* ** Given a library "name" try to load the library. The argument "name" ** is a machine-dependent name for the library, such as the full pathname ** returned by PR_GetLibraryName. If the library is already loaded, ** this function will avoid loading the library twice. ** ** If the library is loaded successfully, then a pointer to the PRLibrary ** structure representing the library is returned. Otherwise, NULL is ** returned. ** ** This increments the reference count of the library. */ __declspec(dllimport) PRLibrary* PR_LoadLibrary(const char *name); /* ** Each operating system has its preferred way of specifying ** a file in the file system. Most operating systems use ** a pathname. Mac OS Classic, on the other hand, uses the FSSpec ** structure to specify a file. PRLibSpec allows NSPR clients ** to use the type of file specification that is most efficient ** for a particular platform. ** ** On some operating systems such as Mac OS Classic, a shared library ** may contain code fragments that can be individually loaded. ** PRLibSpec also allows NSPR clients to identify a code fragment ** in a library, if code fragments are supported by the OS. ** A code fragment can be specified by name or by an integer index. ** ** Right now PRLibSpec supports four types of library specification: ** a pathname in the native character encoding, a Mac code fragment ** by name, a Mac code fragment by index, and a UTF-16 pathname. */ typedef enum PRLibSpecType { PR_LibSpec_Pathname, PR_LibSpec_MacNamedFragment, /* obsolete (for Mac OS Classic) */ PR_LibSpec_MacIndexedFragment, /* obsolete (for Mac OS Classic) */ PR_LibSpec_PathnameU /* supported only on Win32 */ } PRLibSpecType; struct FSSpec; /* Mac OS Classic FSSpec */ typedef struct PRLibSpec { PRLibSpecType type; union { /* if type is PR_LibSpec_Pathname */ const char *pathname; /* if type is PR_LibSpec_MacNamedFragment */ struct { const struct FSSpec *fsspec; const char *name; } mac_named_fragment; /* obsolete (for Mac OS Classic) */ /* if type is PR_LibSpec_MacIndexedFragment */ struct { const struct FSSpec *fsspec; PRUint32 index; } mac_indexed_fragment; /* obsolete (for Mac OS Classic) */ /* if type is PR_LibSpec_PathnameU */ const PRUnichar *pathname_u; /* supported only on Win32 */ } value; } PRLibSpec; /* ** The following bit flags may be or'd together and passed ** as the 'flags' argument to PR_LoadLibraryWithFlags. ** Flags not supported by the underlying OS are ignored. */ /* The following is equivalent to LOAD_WITH_ALTERED_SEARCH_PATH on Windows */ /* 0x8000 reserved for NSPR internal use */ /* ** Load the specified library, in the manner specified by 'flags'. */ __declspec(dllimport) PRLibrary * PR_LoadLibraryWithFlags( PRLibSpec libSpec, /* the shared library */ PRIntn flags /* flags that affect the loading */ ); /* ** Unload a previously loaded library. If the library was a static ** library then the static link table will no longer be referenced. The ** associated PRLibrary object is freed. ** ** PR_FAILURE is returned if the library cannot be unloaded. ** ** This function decrements the reference count of the library. */ __declspec(dllimport) PRStatus PR_UnloadLibrary(PRLibrary *lib); /* ** Given the name of a procedure, return the address of the function that ** implements the procedure, or NULL if no such function can be ** found. This does not find symbols in the main program (the ".exe"); ** use PR_LoadStaticLibrary to register symbols in the main program. ** ** This function does not modify the reference count of the library. */ __declspec(dllimport) void* PR_FindSymbol(PRLibrary *lib, const char *name); /* ** Similar to PR_FindSymbol, except that the return value is a pointer to ** a function, and not a pointer to void. Casting between a data pointer ** and a function pointer is not portable according to the C standard. ** Any function pointer can be cast to any other function pointer. ** ** This function does not modify the reference count of the library. */ typedef void (*PRFuncPtr)(void); __declspec(dllimport) PRFuncPtr PR_FindFunctionSymbol(PRLibrary *lib, const char *name); /* ** Finds a symbol in one of the currently loaded libraries. Given the ** name of a procedure, return the address of the function that ** implements the procedure, and return the library that contains that ** symbol, or NULL if no such function can be found. This does not find ** symbols in the main program (the ".exe"); use PR_AddStaticLibrary to ** register symbols in the main program. ** ** This increments the reference count of the library. */ __declspec(dllimport) void* PR_FindSymbolAndLibrary(const char *name, PRLibrary* *lib); /* ** Similar to PR_FindSymbolAndLibrary, except that the return value is ** a pointer to a function, and not a pointer to void. Casting between a ** data pointer and a function pointer is not portable according to the C ** standard. Any function pointer can be cast to any other function pointer. ** ** This increments the reference count of the library. */ __declspec(dllimport) PRFuncPtr PR_FindFunctionSymbolAndLibrary(const char *name, PRLibrary* *lib); /* ** Register a static link table with the runtime under the name ** "name". The symbols present in the static link table will be made ** available to PR_FindSymbol. If "name" is null then the symbols will be ** made available to the library which represents the executable. The ** tables are not copied. ** ** Returns the library object if successful, null otherwise. ** ** This increments the reference count of the library. */ __declspec(dllimport) PRLibrary* PR_LoadStaticLibrary( const char *name, const PRStaticLinkTable *table); /* ** Return the pathname of the file that the library "name" was loaded ** from. "addr" is the address of a function defined in the library. ** ** The caller is responsible for freeing the result with PR_Free. */ __declspec(dllimport) char * PR_GetLibraryFilePathname(const char *name, PRFuncPtr addr); } #line 263 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prlink.h" #line 59 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContext.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsDataHashtable.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is C++ hashtable templates. * * The Initial Developer of the Original Code is * Benjamin Smedberg. * Portions created by the Initial Developer are Copyright (C) 2002 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsHashKeys.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is C++ hashtable templates. * * The Initial Developer of the Original Code is * Benjamin Smedberg. * Portions created by the Initial Developer are Copyright (C) 2002 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsID.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 42 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsHashKeys.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupports.h" /* * DO NOT EDIT. THIS FILE IS GENERATED FROM c:/build/hg.instantbird.org/mozilla/xpcom/base/nsISupports.idl */ #line 43 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsHashKeys.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIHashable.h" /* * DO NOT EDIT. THIS FILE IS GENERATED FROM c:/build/hg.instantbird.org/mozilla/xpcom/ds/nsIHashable.idl */ /* For IDL files that don't want to include root IDL files. */ /* starting interface: nsIHashable */ /** * Represents an object that can be stored in a hashtable. */ class __declspec(novtable) nsIHashable : public nsISupports { public: template struct COMTypeInfo { static const nsIID kIID ; }; static const nsIID& GetIID() {return COMTypeInfo::kIID;} /** * Is this object the equivalent of the other object? */ /* boolean equals (in nsIHashable aOther); */ virtual nsresult __stdcall Equals(nsIHashable *aOther, PRBool *_retval ) = 0; /** * A generated hashcode for this object. Objects that are equivalent * must have the same hash code. Getting this property should never * throw an exception! */ /* readonly attribute unsigned long hashCode; */ virtual nsresult __stdcall GetHashCode(PRUint32 *aHashCode) = 0; }; template const nsIID nsIHashable::COMTypeInfo::kIID = {0x17e595fa, 0xb57a, 0x4933, { 0xbd, 0x0f, 0xb1, 0x81, 0x2e, 0x8a, 0xb1, 0x88 }}; /* Use this macro when declaring classes that implement this interface. */ /* Use this macro to declare functions that forward the behavior of this interface to another object. */ /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */ #line 112 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIHashable.h" #line 115 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIHashable.h" #line 44 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsHashKeys.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCOMPtr.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Scott Collins (original author) * L. David Baron * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 45 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsHashKeys.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\pldhash.h" /* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla JavaScript code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1999-2001 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Brendan Eich (Original Author) * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* * Double hashing, a la Knuth 6. * GENERATED BY js/src/plify_jsdhash.sed -- DO NOT EDIT!!! */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 46 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\pldhash.h" extern "C" { #line 52 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\pldhash.h" #line 56 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\pldhash.h" /* Table size limit, do not equal or exceed (see min&maxAlphaFrac, below). */ /* Minimum table size, or gross entry count (net is at most .75 loaded). */ #line 71 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\pldhash.h" /* * Multiplicative hash uses an unsigned 32 bit integer and the golden ratio, * expressed as a fixed-point 32-bit fraction. */ /* Primitive and forward-struct typedefs. */ typedef PRUint32 PLDHashNumber; typedef struct PLDHashEntryHdr PLDHashEntryHdr; typedef struct PLDHashEntryStub PLDHashEntryStub; typedef struct PLDHashTable PLDHashTable; typedef struct PLDHashTableOps PLDHashTableOps; /* * Table entry header structure. * * In order to allow in-line allocation of key and value, we do not declare * either here. Instead, the API uses const void *key as a formal parameter. * The key need not be stored in the entry; it may be part of the value, but * need not be stored at all. * * Callback types are defined below and grouped into the PLDHashTableOps * structure, for single static initialization per hash table sub-type. * * Each hash table sub-type should nest the PLDHashEntryHdr structure at the * front of its particular entry type. The keyHash member contains the result * of multiplying the hash code returned from the hashKey callback (see below) * by PL_DHASH_GOLDEN_RATIO, then constraining the result to avoid the magic 0 * and 1 values. The stored keyHash value is table size invariant, and it is * maintained automatically by PL_DHashTableOperate -- users should never set * it, and its only uses should be via the entry macros below. * * The PL_DHASH_ENTRY_IS_LIVE macro tests whether entry is neither free nor * removed. An entry may be either busy or free; if busy, it may be live or * removed. Consumers of this API should not access members of entries that * are not live. * * However, use PL_DHASH_ENTRY_IS_BUSY for faster liveness testing of entries * returned by PL_DHashTableOperate, as PL_DHashTableOperate never returns a * non-live, busy (i.e., removed) entry pointer to its caller. See below for * more details on PL_DHashTableOperate's calling rules. */ struct PLDHashEntryHdr { PLDHashNumber keyHash; /* every entry must begin like this */ }; /* * A PLDHashTable is currently 8 words (without the PL_DHASHMETER overhead) * on most architectures, and may be allocated on the stack or within another * structure or class (see below for the Init and Finish functions to use). * * To decide whether to use double hashing vs. chaining, we need to develop a * trade-off relation, as follows: * * Let alpha be the load factor, esize the entry size in words, count the * entry count, and pow2 the power-of-two table size in entries. * * (PLDHashTable overhead) > (PLHashTable overhead) * (unused table entry space) > (malloc and .next overhead per entry) + * (buckets overhead) * (1 - alpha) * esize * pow2 > 2 * count + pow2 * * Notice that alpha is by definition (count / pow2): * * (1 - alpha) * esize * pow2 > 2 * alpha * pow2 + pow2 * (1 - alpha) * esize > 2 * alpha + 1 * * esize > (1 + 2 * alpha) / (1 - alpha) * * This assumes both tables must keep keyHash, key, and value for each entry, * where key and value point to separately allocated strings or structures. * If key and value can be combined into one pointer, then the trade-off is: * * esize > (1 + 3 * alpha) / (1 - alpha) * * If the entry value can be a subtype of PLDHashEntryHdr, rather than a type * that must be allocated separately and referenced by an entry.value pointer * member, and provided key's allocation can be fused with its entry's, then * k (the words wasted per entry with chaining) is 4. * * To see these curves, feed gnuplot input like so: * * gnuplot> f(x,k) = (1 + k * x) / (1 - x) * gnuplot> plot [0:.75] f(x,2), f(x,3), f(x,4) * * For k of 2 and a well-loaded table (alpha > .5), esize must be more than 4 * words for chaining to be more space-efficient than double hashing. * * Solving for alpha helps us decide when to shrink an underloaded table: * * esize > (1 + k * alpha) / (1 - alpha) * esize - alpha * esize > 1 + k * alpha * esize - 1 > (k + esize) * alpha * (esize - 1) / (k + esize) > alpha * * alpha < (esize - 1) / (esize + k) * * Therefore double hashing should keep alpha >= (esize - 1) / (esize + k), * assuming esize is not too large (in which case, chaining should probably be * used for any alpha). For esize=2 and k=3, we want alpha >= .2; for esize=3 * and k=2, we want alpha >= .4. For k=4, esize could be 6, and alpha >= .5 * would still obtain. See the PL_DHASH_MIN_ALPHA macro further below. * * The current implementation uses a configurable lower bound on alpha, which * defaults to .25, when deciding to shrink the table (while still respecting * PL_DHASH_MIN_SIZE). * * Note a qualitative difference between chaining and double hashing: under * chaining, entry addresses are stable across table shrinks and grows. With * double hashing, you can't safely hold an entry pointer and use it after an * ADD or REMOVE operation, unless you sample table->generation before adding * or removing, and compare the sample after, dereferencing the entry pointer * only if table->generation has not changed. * * The moral of this story: there is no one-size-fits-all hash table scheme, * but for small table entry size, and assuming entry address stability is not * required, double hashing wins. */ struct PLDHashTable { const PLDHashTableOps *ops; /* virtual operations, see below */ void *data; /* ops- and instance-specific data */ PRInt16 hashShift; /* multiplicative hash shift */ PRUint8 maxAlphaFrac; /* 8-bit fixed point max alpha */ PRUint8 minAlphaFrac; /* 8-bit fixed point min alpha */ PRUint32 entrySize; /* number of bytes in an entry */ PRUint32 entryCount; /* number of entries in table */ PRUint32 removedCount; /* removed entry sentinels in table */ PRUint32 generation; /* entry storage generation number */ char *entryStore; /* entry storage */ }; /* * Size in entries (gross, not net of free and removed sentinels) for table. * We store hashShift rather than sizeLog2 to optimize the collision-free case * in SearchTable. */ /* * Table space at entryStore is allocated and freed using these callbacks. * The allocator should return null on error only (not if called with nbytes * equal to 0; but note that pldhash.c code will never call with 0 nbytes). */ typedef void * (* PLDHashAllocTable)(PLDHashTable *table, PRUint32 nbytes); typedef void (* PLDHashFreeTable) (PLDHashTable *table, void *ptr); /* * Compute the hash code for a given key to be looked up, added, or removed * from table. A hash code may have any PLDHashNumber value. */ typedef PLDHashNumber (* PLDHashHashKey) (PLDHashTable *table, const void *key); /* * Compare the key identifying entry in table with the provided key parameter. * Return PR_TRUE if keys match, PR_FALSE otherwise. */ typedef PRBool (* PLDHashMatchEntry)(PLDHashTable *table, const PLDHashEntryHdr *entry, const void *key); /* * Copy the data starting at from to the new entry storage at to. Do not add * reference counts for any strong references in the entry, however, as this * is a "move" operation: the old entry storage at from will be freed without * any reference-decrementing callback shortly. */ typedef void (* PLDHashMoveEntry)(PLDHashTable *table, const PLDHashEntryHdr *from, PLDHashEntryHdr *to); /* * Clear the entry and drop any strong references it holds. This callback is * invoked during a PL_DHASH_REMOVE operation (see below for operation codes), * but only if the given key is found in the table. */ typedef void (* PLDHashClearEntry)(PLDHashTable *table, PLDHashEntryHdr *entry); /* * Called when a table (whether allocated dynamically by itself, or nested in * a larger structure, or allocated on the stack) is finished. This callback * allows table->ops-specific code to finalize table->data. */ typedef void (* PLDHashFinalize) (PLDHashTable *table); /* * Initialize a new entry, apart from keyHash. This function is called when * PL_DHashTableOperate's PL_DHASH_ADD case finds no existing entry for the * given key, and must add a new one. At that point, entry->keyHash is not * set yet, to avoid claiming the last free entry in a severely overloaded * table. */ typedef PRBool (* PLDHashInitEntry)(PLDHashTable *table, PLDHashEntryHdr *entry, const void *key); /* * Finally, the "vtable" structure for PLDHashTable. The first eight hooks * must be provided by implementations; they're called unconditionally by the * generic pldhash.c code. Hooks after these may be null. * * Summary of allocation-related hook usage with C++ placement new emphasis: * allocTable Allocate raw bytes with malloc, no ctors run. * freeTable Free raw bytes with free, no dtors run. * initEntry Call placement new using default key-based ctor. * Return PR_TRUE on success, PR_FALSE on error. * moveEntry Call placement new using copy ctor, run dtor on old * entry storage. * clearEntry Run dtor on entry. * finalize Stub unless table->data was initialized and needs to * be finalized. * * Note the reason why initEntry is optional: the default hooks (stubs) clear * entry storage: On successful PL_DHashTableOperate(tbl, key, PL_DHASH_ADD), * the returned entry pointer addresses an entry struct whose keyHash member * has been set non-zero, but all other entry members are still clear (null). * PL_DHASH_ADD callers can test such members to see whether the entry was * newly created by the PL_DHASH_ADD call that just succeeded. If placement * new or similar initialization is required, define an initEntry hook. Of * course, the clearEntry hook must zero or null appropriately. * * XXX assumes 0 is null for pointer types. */ struct PLDHashTableOps { /* Mandatory hooks. All implementations must provide these. */ PLDHashAllocTable allocTable; PLDHashFreeTable freeTable; PLDHashHashKey hashKey; PLDHashMatchEntry matchEntry; PLDHashMoveEntry moveEntry; PLDHashClearEntry clearEntry; PLDHashFinalize finalize; /* Optional hooks start here. If null, these are not called. */ PLDHashInitEntry initEntry; }; /* * Default implementations for the above ops. */ void * PL_DHashAllocTable(PLDHashTable *table, PRUint32 nbytes); void PL_DHashFreeTable(PLDHashTable *table, void *ptr); PLDHashNumber PL_DHashStringKey(PLDHashTable *table, const void *key); /* A minimal entry contains a keyHash header and a void key pointer. */ struct PLDHashEntryStub { PLDHashEntryHdr hdr; const void *key; }; PLDHashNumber PL_DHashVoidPtrKeyStub(PLDHashTable *table, const void *key); PRBool PL_DHashMatchEntryStub(PLDHashTable *table, const PLDHashEntryHdr *entry, const void *key); PRBool PL_DHashMatchStringKey(PLDHashTable *table, const PLDHashEntryHdr *entry, const void *key); void PL_DHashMoveEntryStub(PLDHashTable *table, const PLDHashEntryHdr *from, PLDHashEntryHdr *to); void PL_DHashClearEntryStub(PLDHashTable *table, PLDHashEntryHdr *entry); void PL_DHashFreeStringKey(PLDHashTable *table, PLDHashEntryHdr *entry); void PL_DHashFinalizeStub(PLDHashTable *table); /* * If you use PLDHashEntryStub or a subclass of it as your entry struct, and * if your entries move via memcpy and clear via memset(0), you can use these * stub operations. */ const PLDHashTableOps * PL_DHashGetStubOps(void); /* * Dynamically allocate a new PLDHashTable using malloc, initialize it using * PL_DHashTableInit, and return its address. Return null on malloc failure. * Note that the entry storage at table->entryStore will be allocated using * the ops->allocTable callback. */ PLDHashTable * PL_NewDHashTable(const PLDHashTableOps *ops, void *data, PRUint32 entrySize, PRUint32 capacity); /* * Finalize table's data, free its entry storage (via table->ops->freeTable), * and return the memory starting at table to the malloc heap. */ void PL_DHashTableDestroy(PLDHashTable *table); /* * Initialize table with ops, data, entrySize, and capacity. Capacity is a * guess for the smallest table size at which the table will usually be less * than 75% loaded (the table will grow or shrink as needed; capacity serves * only to avoid inevitable early growth from PL_DHASH_MIN_SIZE). */ PRBool PL_DHashTableInit(PLDHashTable *table, const PLDHashTableOps *ops, void *data, PRUint32 entrySize, PRUint32 capacity); /* * Set maximum and minimum alpha for table. The defaults are 0.75 and .25. * maxAlpha must be in [0.5, 0.9375] for the default PL_DHASH_MIN_SIZE; or if * MinSize=PL_DHASH_MIN_SIZE <= 256, in [0.5, (float)(MinSize-1)/MinSize]; or * else in [0.5, 255.0/256]. minAlpha must be in [0, maxAlpha / 2), so that * we don't shrink on the very next remove after growing a table upon adding * an entry that brings entryCount past maxAlpha * tableSize. */ void PL_DHashTableSetAlphaBounds(PLDHashTable *table, float maxAlpha, float minAlpha); /* * Call this macro with k, the number of pointer-sized words wasted per entry * under chaining, to compute the minimum alpha at which double hashing still * beats chaining. */ /* * Default max/min alpha, and macros to compute the value for the |capacity| * parameter to PL_NewDHashTable and PL_DHashTableInit, given default or any * max alpha, such that adding entryCount entries right after initializing the * table will not require a reallocation (so PL_DHASH_ADD can't fail for those * PL_DHashTableOperate calls). * * NB: PL_DHASH_CAP is a helper macro meant for use only in PL_DHASH_CAPACITY. * Don't use it directly! */ /* * Finalize table's data, free its entry storage using table->ops->freeTable, * and leave its members unchanged from their last live values (which leaves * pointers dangling). If you want to burn cycles clearing table, it's up to * your code to call memset. */ void PL_DHashTableFinish(PLDHashTable *table); /* * To consolidate keyHash computation and table grow/shrink code, we use a * single entry point for lookup, add, and remove operations. The operation * codes are declared here, along with codes returned by PLDHashEnumerator * functions, which control PL_DHashTableEnumerate's behavior. */ typedef enum PLDHashOperator { PL_DHASH_LOOKUP = 0, /* lookup entry */ PL_DHASH_ADD = 1, /* add entry */ PL_DHASH_REMOVE = 2, /* remove entry, or enumerator says remove */ PL_DHASH_NEXT = 0, /* enumerator says continue */ PL_DHASH_STOP = 1 /* enumerator says stop */ } PLDHashOperator; /* * To lookup a key in table, call: * * entry = PL_DHashTableOperate(table, key, PL_DHASH_LOOKUP); * * If PL_DHASH_ENTRY_IS_BUSY(entry) is true, key was found and it identifies * entry. If PL_DHASH_ENTRY_IS_FREE(entry) is true, key was not found. * * To add an entry identified by key to table, call: * * entry = PL_DHashTableOperate(table, key, PL_DHASH_ADD); * * If entry is null upon return, then either the table is severely overloaded, * and memory can't be allocated for entry storage via table->ops->allocTable; * Or if table->ops->initEntry is non-null, the table->ops->initEntry op may * have returned false. * * Otherwise, entry->keyHash has been set so that PL_DHASH_ENTRY_IS_BUSY(entry) * is true, and it is up to the caller to initialize the key and value parts * of the entry sub-type, if they have not been set already (i.e. if entry was * not already in the table, and if the optional initEntry hook was not used). * * To remove an entry identified by key from table, call: * * (void) PL_DHashTableOperate(table, key, PL_DHASH_REMOVE); * * If key's entry is found, it is cleared (via table->ops->clearEntry) and * the entry is marked so that PL_DHASH_ENTRY_IS_FREE(entry). This operation * returns null unconditionally; you should ignore its return value. */ PLDHashEntryHdr * __fastcall PL_DHashTableOperate(PLDHashTable *table, const void *key, PLDHashOperator op); /* * Remove an entry already accessed via LOOKUP or ADD. * * NB: this is a "raw" or low-level routine, intended to be used only where * the inefficiency of a full PL_DHashTableOperate (which rehashes in order * to find the entry given its key) is not tolerable. This function does not * shrink the table if it is underloaded. It does not update stats #ifdef * PL_DHASHMETER, either. */ void PL_DHashTableRawRemove(PLDHashTable *table, PLDHashEntryHdr *entry); /* * Enumerate entries in table using etor: * * count = PL_DHashTableEnumerate(table, etor, arg); * * PL_DHashTableEnumerate calls etor like so: * * op = etor(table, entry, number, arg); * * where number is a zero-based ordinal assigned to live entries according to * their order in table->entryStore. * * The return value, op, is treated as a set of flags. If op is PL_DHASH_NEXT, * then continue enumerating. If op contains PL_DHASH_REMOVE, then clear (via * table->ops->clearEntry) and free entry. Then we check whether op contains * PL_DHASH_STOP; if so, stop enumerating and return the number of live entries * that were enumerated so far. Return the total number of live entries when * enumeration completes normally. * * If etor calls PL_DHashTableOperate on table with op != PL_DHASH_LOOKUP, it * must return PL_DHASH_STOP; otherwise undefined behavior results. * * If any enumerator returns PL_DHASH_REMOVE, table->entryStore may be shrunk * or compressed after enumeration, but before PL_DHashTableEnumerate returns. * Such an enumerator therefore can't safely set aside entry pointers, but an * enumerator that never returns PL_DHASH_REMOVE can set pointers to entries * aside, e.g., to avoid copying live entries into an array of the entry type. * Copying entry pointers is cheaper, and safe so long as the caller of such a * "stable" Enumerate doesn't use the set-aside pointers after any call either * to PL_DHashTableOperate, or to an "unstable" form of Enumerate, which might * grow or shrink entryStore. * * If your enumerator wants to remove certain entries, but set aside pointers * to other entries that it retains, it can use PL_DHashTableRawRemove on the * entries to be removed, returning PL_DHASH_NEXT to skip them. Likewise, if * you want to remove entries, but for some reason you do not want entryStore * to be shrunk or compressed, you can call PL_DHashTableRawRemove safely on * the entry being enumerated, rather than returning PL_DHASH_REMOVE. */ typedef PLDHashOperator (* PLDHashEnumerator)(PLDHashTable *table, PLDHashEntryHdr *hdr, PRUint32 number, void *arg); PRUint32 PL_DHashTableEnumerate(PLDHashTable *table, PLDHashEnumerator etor, void *arg); /** * Mark a table as immutable for the remainder of its lifetime. This * changes the implementation from ASSERTing one set of invariants to * ASSERTing a different set. * * When a table is NOT marked as immutable, the table implementation * asserts that the table is not mutated from its own callbacks. It * assumes the caller protects the table from being accessed on multiple * threads simultaneously. * * When the table is marked as immutable, the re-entry assertions will * no longer trigger erroneously due to multi-threaded access. Instead, * mutations will cause assertions. */ void PL_DHashMarkTableImmutable(PLDHashTable *table); #line 598 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\pldhash.h" } #line 609 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\pldhash.h" #line 46 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsHashKeys.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\stl_wrappers\\new" /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- * vim: sw=2 ts=8 et : */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at: * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla Code. * * The Initial Developer of the Original Code is * The Mozilla Foundation * Portions created by the Initial Developer are Copyright (C) 2010 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Chris Jones * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 47 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsHashKeys.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsStringGlue.h" /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla XPCOM Glue. * * The Initial Developer of the Original Code is * the Mozilla Foundation . * * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Benjamin Smedberg * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /** * @file nsStringGlue.h * This header exists solely to #include the proper internal/frozen string * headers, depending on whether MOZILLA_INTERNAL_API is defined. */ #line 49 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsHashKeys.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCRTGlue.h" /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla XPCOM Glue. * * The Initial Developer of the Original Code is * the Mozilla Foundation . * * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Benjamin Smedberg * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 43 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCRTGlue.h" /** * Scan a string for the first character that is *not* in a set of * delimiters. If the string is only delimiter characters, the end of the * string is returned. * * @param delims The set of delimiters (null-terminated) * @param str The string to search (null-terminated) */ const char* NS_strspnp(const char *delims, const char *str); /** * Tokenize a string. This function is similar to the strtok function in the * C standard library, but it does not use static variables to maintain state * and is therefore thread and reentrancy-safe. * * Any leading delimiters in str are skipped. Then the string is scanned * until an additional delimiter or end-of-string is found. The final * delimiter is set to '\0'. * * @param delims The set of delimiters. * @param str The string to search. This is an in-out parameter; it is * reset to the end of the found token + 1, or to the * end-of-string if there are no more tokens. * @return The token. If no token is found (the string is only * delimiter characters), NULL is returned. */ char* NS_strtok(const char *delims, char **str); /** * "strlen" for PRUnichar strings */ PRUint32 NS_strlen(const PRUnichar *aString); /** * "strcmp" for PRUnichar strings */ int NS_strcmp(const PRUnichar *a, const PRUnichar *b); /** * "strdup" for PRUnichar strings, uses the NS_Alloc allocator. */ PRUnichar* NS_strdup(const PRUnichar *aString); /** * "strdup", but using the NS_Alloc allocator. */ char* NS_strdup(const char *aString); /** * strndup for PRUnichar strings... this function will ensure that the * new string is null-terminated. Uses the NS_Alloc allocator. */ PRUnichar* NS_strndup(const PRUnichar *aString, PRUint32 aLen); // The following case-conversion methods only deal in the ascii repertoire // A-Z and a-z // semi-private data declarations... don't use these directly. class nsLowerUpperUtils { public: static const unsigned char kLower2Upper[256]; static const unsigned char kUpper2Lower[256]; }; inline char NS_ToUpper(char aChar) { return (char)nsLowerUpperUtils::kLower2Upper[(unsigned char)aChar]; } inline char NS_ToLower(char aChar) { return (char)nsLowerUpperUtils::kUpper2Lower[(unsigned char)aChar]; } PRBool NS_IsUpper(char aChar); PRBool NS_IsLower(char aChar); PRBool NS_IsAscii(PRUnichar aChar); PRBool NS_IsAscii(const PRUnichar* aString); PRBool NS_IsAsciiAlpha(PRUnichar aChar); PRBool NS_IsAsciiDigit(PRUnichar aChar); PRBool NS_IsAsciiWhitespace(PRUnichar aChar); PRBool NS_IsAscii(const char* aString); PRBool NS_IsAscii(const char* aString, PRUint32 aLength); #line 147 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCRTGlue.h" #line 155 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCRTGlue.h" // Not all these control characters are illegal in all OSs, but we don't really // want them appearing in filenames #line 166 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCRTGlue.h" #line 50 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsHashKeys.h" /** @file nsHashKeys.h * standard HashKey classes for nsBaseHashtable and relatives. Each of these * classes follows the nsTHashtable::EntryType specification * * Lightweight keytypes provided here: * nsStringHashKey * nsCStringHashKey * nsUint32HashKey * nsUint64HashKey * nsPtrHashkey * nsClearingPtrHashKey * nsVoidPtrHashKey * nsClearingVoidPtrHashKey * nsISupportsHashKey * nsIDHashKey * nsDepCharHashKey * nsCharPtrHashKey * nsUnicharPtrHashKey * nsHashableHashKey */ PRUint32 HashString(const nsAString_internal& aStr); PRUint32 HashString(const nsACString_internal& aStr); PRUint32 HashString(const char* aKey); PRUint32 HashString(const PRUnichar* aKey); /** * hashkey wrapper using nsAString KeyType * * @see nsTHashtable::EntryType for specification */ class nsStringHashKey : public PLDHashEntryHdr { public: typedef const nsAString_internal& KeyType; typedef const nsAString_internal* KeyTypePointer; nsStringHashKey(KeyTypePointer aStr) : mStr(*aStr) { } nsStringHashKey(const nsStringHashKey& toCopy) : mStr(toCopy.mStr) { } ~nsStringHashKey() { } KeyType GetKey() const { return mStr; } PRBool KeyEquals(const KeyTypePointer aKey) const { return mStr.Equals(*aKey); } static KeyTypePointer KeyToPointer(KeyType aKey) { return &aKey; } static PLDHashNumber HashKey(const KeyTypePointer aKey) { return HashString(*aKey); } enum { ALLOW_MEMMOVE = 1 }; private: const nsString mStr; }; /** * hashkey wrapper using nsACString KeyType * * @see nsTHashtable::EntryType for specification */ class nsCStringHashKey : public PLDHashEntryHdr { public: typedef const nsACString_internal& KeyType; typedef const nsACString_internal* KeyTypePointer; nsCStringHashKey(const nsACString_internal* aStr) : mStr(*aStr) { } nsCStringHashKey(const nsCStringHashKey& toCopy) : mStr(toCopy.mStr) { } ~nsCStringHashKey() { } KeyType GetKey() const { return mStr; } PRBool KeyEquals(KeyTypePointer aKey) const { return mStr.Equals(*aKey); } static KeyTypePointer KeyToPointer(KeyType aKey) { return &aKey; } static PLDHashNumber HashKey(KeyTypePointer aKey) { return HashString(*aKey); } enum { ALLOW_MEMMOVE = 1 }; private: const nsCString mStr; }; /** * hashkey wrapper using PRUint32 KeyType * * @see nsTHashtable::EntryType for specification */ class nsUint32HashKey : public PLDHashEntryHdr { public: typedef const PRUint32& KeyType; typedef const PRUint32* KeyTypePointer; nsUint32HashKey(KeyTypePointer aKey) : mValue(*aKey) { } nsUint32HashKey(const nsUint32HashKey& toCopy) : mValue(toCopy.mValue) { } ~nsUint32HashKey() { } KeyType GetKey() const { return mValue; } PRBool KeyEquals(KeyTypePointer aKey) const { return *aKey == mValue; } static KeyTypePointer KeyToPointer(KeyType aKey) { return &aKey; } static PLDHashNumber HashKey(KeyTypePointer aKey) { return *aKey; } enum { ALLOW_MEMMOVE = 1 }; private: const PRUint32 mValue; }; /** * hashkey wrapper using PRUint64 KeyType * * @see nsTHashtable::EntryType for specification */ class nsUint64HashKey : public PLDHashEntryHdr { public: typedef const PRUint64& KeyType; typedef const PRUint64* KeyTypePointer; nsUint64HashKey(KeyTypePointer aKey) : mValue(*aKey) { } nsUint64HashKey(const nsUint64HashKey& toCopy) : mValue(toCopy.mValue) { } ~nsUint64HashKey() { } KeyType GetKey() const { return mValue; } PRBool KeyEquals(KeyTypePointer aKey) const { return *aKey == mValue; } static KeyTypePointer KeyToPointer(KeyType aKey) { return &aKey; } static PLDHashNumber HashKey(KeyTypePointer aKey) { return PLDHashNumber(*aKey); } enum { ALLOW_MEMMOVE = 1 }; private: const PRUint64 mValue; }; /** * hashkey wrapper using nsISupports* KeyType * * @see nsTHashtable::EntryType for specification */ class nsISupportsHashKey : public PLDHashEntryHdr { public: typedef nsISupports* KeyType; typedef const nsISupports* KeyTypePointer; nsISupportsHashKey(const nsISupports* key) : mSupports(const_cast(key)) { } nsISupportsHashKey(const nsISupportsHashKey& toCopy) : mSupports(toCopy.mSupports) { } ~nsISupportsHashKey() { } KeyType GetKey() const { return mSupports; } PRBool KeyEquals(KeyTypePointer aKey) const { return aKey == mSupports; } static KeyTypePointer KeyToPointer(KeyType aKey) { return aKey; } static PLDHashNumber HashKey(KeyTypePointer aKey) { return ((PRInt32) (PRWord) (aKey)) >>2; } enum { ALLOW_MEMMOVE = 1 }; private: nsCOMPtr mSupports; }; /** * hashkey wrapper using T* KeyType * * @see nsTHashtable::EntryType for specification */ template class nsPtrHashKey : public PLDHashEntryHdr { public: typedef T *KeyType; typedef const T *KeyTypePointer; nsPtrHashKey(const T *key) : mKey(const_cast(key)) {} nsPtrHashKey(const nsPtrHashKey &toCopy) : mKey(toCopy.mKey) {} ~nsPtrHashKey() {} KeyType GetKey() const { return mKey; } PRBool KeyEquals(KeyTypePointer key) const { return key == mKey; } static KeyTypePointer KeyToPointer(KeyType key) { return key; } static PLDHashNumber HashKey(KeyTypePointer key) { return ((PRInt32) (PRWord) (key)) >> 2; } enum { ALLOW_MEMMOVE = 1 }; protected: T *mKey; }; /** * hashkey wrapper using T* KeyType that sets key to NULL upon * destruction. Relevant only in cases where a memory pointer-scanner * like valgrind might get confused about stale references. * * @see nsTHashtable::EntryType for specification */ template class nsClearingPtrHashKey : public nsPtrHashKey { public: nsClearingPtrHashKey(const T *key) : nsPtrHashKey(key) {} nsClearingPtrHashKey(const nsClearingPtrHashKey &toCopy) : nsPtrHashKey(toCopy) {} ~nsClearingPtrHashKey() { nsPtrHashKey::mKey = 0L; } }; typedef nsPtrHashKey nsVoidPtrHashKey; typedef nsClearingPtrHashKey nsClearingVoidPtrHashKey; /** * hashkey wrapper using nsID KeyType * * @see nsTHashtable::EntryType for specification */ class nsIDHashKey : public PLDHashEntryHdr { public: typedef const nsID& KeyType; typedef const nsID* KeyTypePointer; nsIDHashKey(const nsID* inID) : mID(*inID) { } nsIDHashKey(const nsIDHashKey& toCopy) : mID(toCopy.mID) { } ~nsIDHashKey() { } KeyType GetKey() const { return mID; } PRBool KeyEquals(KeyTypePointer aKey) const { return aKey->Equals(mID); } static KeyTypePointer KeyToPointer(KeyType aKey) { return &aKey; } static PLDHashNumber HashKey(KeyTypePointer aKey); enum { ALLOW_MEMMOVE = 1 }; private: const nsID mID; }; /** * hashkey wrapper for "dependent" const char*; this class does not "own" * its string pointer. * * This class must only be used if the strings have a lifetime longer than * the hashtable they occupy. This normally occurs only for static * strings or strings that have been arena-allocated. * * @see nsTHashtable::EntryType for specification */ class nsDepCharHashKey : public PLDHashEntryHdr { public: typedef const char* KeyType; typedef const char* KeyTypePointer; nsDepCharHashKey(const char* aKey) { mKey = aKey; } nsDepCharHashKey(const nsDepCharHashKey& toCopy) { mKey = toCopy.mKey; } ~nsDepCharHashKey() { } const char* GetKey() const { return mKey; } PRBool KeyEquals(const char* aKey) const { return !strcmp(mKey, aKey); } static const char* KeyToPointer(const char* aKey) { return aKey; } static PLDHashNumber HashKey(const char* aKey) { return HashString(aKey); } enum { ALLOW_MEMMOVE = 1 }; private: const char* mKey; }; /** * hashkey wrapper for const char*; at construction, this class duplicates * a string pointed to by the pointer so that it doesn't matter whether or not * the string lives longer than the hash table. */ class nsCharPtrHashKey : public PLDHashEntryHdr { public: typedef const char* KeyType; typedef const char* KeyTypePointer; nsCharPtrHashKey(const char* aKey) : mKey(moz_strdup(aKey)) { } nsCharPtrHashKey(const nsCharPtrHashKey& toCopy) : mKey(moz_strdup(toCopy.mKey)) { } ~nsCharPtrHashKey() { if (mKey) moz_free(const_cast(mKey)); } const char* GetKey() const { return mKey; } PRBool KeyEquals(KeyTypePointer aKey) const { return !strcmp(mKey, aKey); } static KeyTypePointer KeyToPointer(KeyType aKey) { return aKey; } static PLDHashNumber HashKey(KeyTypePointer aKey) { return HashString(aKey); } enum { ALLOW_MEMMOVE = 1 }; private: const char* mKey; }; /** * hashkey wrapper for const PRUnichar*; at construction, this class duplicates * a string pointed to by the pointer so that it doesn't matter whether or not * the string lives longer than the hash table. */ class nsUnicharPtrHashKey : public PLDHashEntryHdr { public: typedef const PRUnichar* KeyType; typedef const PRUnichar* KeyTypePointer; nsUnicharPtrHashKey(const PRUnichar* aKey) : mKey(NS_strdup(aKey)) { } nsUnicharPtrHashKey(const nsUnicharPtrHashKey& toCopy) : mKey(NS_strdup(toCopy.mKey)) { } ~nsUnicharPtrHashKey() { if (mKey) NS_Free_P(const_cast(mKey)); } const PRUnichar* GetKey() const { return mKey; } PRBool KeyEquals(KeyTypePointer aKey) const { return !NS_strcmp(mKey, aKey); } static KeyTypePointer KeyToPointer(KeyType aKey) { return aKey; } static PLDHashNumber HashKey(KeyTypePointer aKey) { return HashString(aKey); } enum { ALLOW_MEMMOVE = 1 }; private: const PRUnichar* mKey; }; /** * Hashtable key class to use with objects that support nsIHashable */ class nsHashableHashKey : public PLDHashEntryHdr { public: typedef nsIHashable* KeyType; typedef const nsIHashable* KeyTypePointer; nsHashableHashKey(const nsIHashable* aKey) : mKey(const_cast(aKey)) { } nsHashableHashKey(const nsHashableHashKey& toCopy) : mKey(toCopy.mKey) { } ~nsHashableHashKey() { } nsIHashable* GetKey() const { return mKey; } PRBool KeyEquals(const nsIHashable* aKey) const { PRBool eq; if (((!!(!((mKey->Equals(const_cast(aKey), &eq)) & 0x80000000))))) { return eq; } return 0; } static const nsIHashable* KeyToPointer(nsIHashable* aKey) { return aKey; } static PLDHashNumber HashKey(const nsIHashable* aKey) { PRUint32 code = 8888; // magic number if GetHashCode fails :-( nsresult rv = #line 430 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsHashKeys.h" const_cast(aKey)->GetHashCode(&code); do { if (!(((!!(!((rv) & 0x80000000)))))) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "GetHashCode should not throw!", "NS_SUCCEEDED(rv)", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsHashKeys.h", 431); } } while (0); return code; } enum { ALLOW_MEMMOVE = 1 }; private: nsCOMPtr mKey; }; #line 442 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsHashKeys.h" #line 42 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsDataHashtable.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsBaseHashtable.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is C++ hashtable templates. * * The Initial Developer of the Original Code is * Benjamin Smedberg. * Portions created by the Initial Developer are Copyright (C) 2002 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTHashtable.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is C++ hashtable templates. * * The Initial Developer of the Original Code is * Benjamin Smedberg. * Portions created by the Initial Developer are Copyright (C) 2002 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 42 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTHashtable.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\pldhash.h" /* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla JavaScript code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1999-2001 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Brendan Eich (Original Author) * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 43 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTHashtable.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsDebug.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 44 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTHashtable.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\stl_wrappers\\new" /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- * vim: sw=2 ts=8 et : */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at: * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla Code. * * The Initial Developer of the Original Code is * The Mozilla Foundation * Portions created by the Initial Developer are Copyright (C) 2010 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Chris Jones * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 45 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTHashtable.h" // helper function for nsTHashtable::Clear() PLDHashOperator PL_DHashStubEnumRemove(PLDHashTable *table, PLDHashEntryHdr *entry, PRUint32 ordinal, void *userArg); /** * a base class for templated hashtables. * * Clients will rarely need to use this class directly. Check the derived * classes first, to see if they will meet your needs. * * @param EntryType the templated entry-type class that is managed by the * hashtable. EntryType must extend the following declaration, * and must not declare any virtual functions or derive from classes * with virtual functions. Any vtable pointer would break the * PLDHashTable code. *
   class EntryType : public PLDHashEntryHdr

 *   {

 *   public: or friend nsTHashtable;

 *     // KeyType is what we use when Get()ing or Put()ing this entry

 *     // this should either be a simple datatype (PRUint32, nsISupports*) or

 *     // a const reference (const nsAString&)

 *     typedef something KeyType;

 *     // KeyTypePointer is the pointer-version of KeyType, because pldhash.h

 *     // requires keys to cast to const void*

 *     typedef const something* KeyTypePointer;

 *

 *     EntryType(KeyTypePointer aKey);

 *

 *     // the copy constructor must be defined, even if AllowMemMove() == true

 *     // or you will cause link errors!

 *     EntryType(const EntryType& aEnt);

 *

 *     // the destructor must be defined... or you will cause link errors!

 *     ~EntryType();

 *

 *     // KeyEquals(): does this entry match this key?

 *     PRBool KeyEquals(KeyTypePointer aKey) const;

 *

 *     // KeyToPointer(): Convert KeyType to KeyTypePointer

 *     static KeyTypePointer KeyToPointer(KeyType aKey);

 *

 *     // HashKey(): calculate the hash number

 *     static PLDHashNumber HashKey(KeyTypePointer aKey);

 *

 *     // ALLOW_MEMMOVE can we move this class with memmove(), or do we have

 *     // to use the copy constructor?

 *     enum { ALLOW_MEMMOVE = PR_(TRUE or FALSE) };

 *   }
* * @see nsInterfaceHashtable * @see nsDataHashtable * @see nsClassHashtable * @author "Benjamin Smedberg " */ template class nsTHashtable { public: /** * A dummy constructor; you must call Init() before using this class. */ nsTHashtable(); /** * destructor, cleans up and deallocates */ ~nsTHashtable(); /** * Initialize the table. This function must be called before any other * class operations. This can fail due to OOM conditions. * @param initSize the initial number of buckets in the hashtable, default 16 * @return PR_TRUE if the class was initialized properly. */ PRBool Init(PRUint32 initSize = 16); /** * Check whether the table has been initialized. This can be useful for static hashtables. * @return the initialization state of the class. */ PRBool IsInitialized() const { return !!mTable.entrySize; } /** * Return the generation number for the table. This increments whenever * the table data items are moved. */ PRUint32 GetGeneration() const { return mTable.generation; } /** * KeyType is typedef'ed for ease of use. */ typedef typename EntryType::KeyType KeyType; /** * KeyTypePointer is typedef'ed for ease of use. */ typedef typename EntryType::KeyTypePointer KeyTypePointer; /** * Return the number of entries in the table. * @return number of entries */ PRUint32 Count() const { return mTable.entryCount; } /** * Get the entry associated with a key. * @param aKey the key to retrieve * @return pointer to the entry class, if the key exists; nsnull if the * key doesn't exist */ EntryType* GetEntry(KeyType aKey) const { do { if (!(mTable.entrySize)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "nsTHashtable was not initialized properly.", "mTable.entrySize", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTHashtable.h", 163); } } while (0); EntryType* entry = reinterpret_cast (PL_DHashTableOperate( const_cast(&mTable), EntryType::KeyToPointer(aKey), PL_DHASH_LOOKUP)); return (!((entry)->keyHash == 0)) ? entry : 0L; } /** * Get the entry associated with a key, or create a new entry, * @param aKey the key to retrieve * @return pointer to the entry class retreived; nsnull only if memory can't be allocated */ EntryType* PutEntry(KeyType aKey) { do { if (!(mTable.entrySize)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "nsTHashtable was not initialized properly.", "mTable.entrySize", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTHashtable.h", 182); } } while (0); return static_cast (PL_DHashTableOperate( &mTable, EntryType::KeyToPointer(aKey), PL_DHASH_ADD)); } /** * Remove the entry associated with a key. * @param aKey of the entry to remove */ void RemoveEntry(KeyType aKey) { do { if (!(mTable.entrySize)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "nsTHashtable was not initialized properly.", "mTable.entrySize", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTHashtable.h", 197); } } while (0); PL_DHashTableOperate(&mTable, EntryType::KeyToPointer(aKey), PL_DHASH_REMOVE); } /** * Remove the entry associated with a key, but don't resize the hashtable. * This is a low-level method, and is not recommended unless you know what * you're doing and you need the extra performance. This method can be used * during enumeration, while RemoveEntry() cannot. * @param aEntry the entry-pointer to remove (obtained from GetEntry or * the enumerator */ void RawRemoveEntry(EntryType* aEntry) { PL_DHashTableRawRemove(&mTable, aEntry); } /** * client must provide an Enumerator function for * EnumerateEntries * @param aEntry the entry being enumerated * @param userArg passed unchanged from EnumerateEntries * @return combination of flags * @link PLDHashOperator::PL_DHASH_NEXT PL_DHASH_NEXT @endlink , * @link PLDHashOperator::PL_DHASH_STOP PL_DHASH_STOP @endlink , * @link PLDHashOperator::PL_DHASH_REMOVE PL_DHASH_REMOVE @endlink */ typedef PLDHashOperator (* Enumerator)(EntryType* aEntry, void* userArg); /** * Enumerate all the entries of the function. * @param enumFunc the Enumerator function to call * @param userArg a pointer to pass to the * Enumerator function * @return the number of entries actually enumerated */ PRUint32 EnumerateEntries(Enumerator enumFunc, void* userArg) { do { if (!(mTable.entrySize)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "nsTHashtable was not initialized properly.", "mTable.entrySize", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTHashtable.h", 238); } } while (0); s_EnumArgs args = { enumFunc, userArg }; return PL_DHashTableEnumerate(&mTable, s_EnumStub, &args); } /** * remove all entries, return hashtable to "pristine" state ;) */ void Clear() { do { if (!(mTable.entrySize)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "nsTHashtable was not initialized properly.", "mTable.entrySize", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTHashtable.h", 249); } } while (0); PL_DHashTableEnumerate(&mTable, PL_DHashStubEnumRemove, 0L); } protected: PLDHashTable mTable; static const void* s_GetKey(PLDHashTable *table, PLDHashEntryHdr *entry); static PLDHashNumber s_HashKey(PLDHashTable *table, const void *key); static PRBool s_MatchEntry(PLDHashTable *table, const PLDHashEntryHdr *entry, const void *key); static void s_CopyEntry(PLDHashTable *table, const PLDHashEntryHdr *from, PLDHashEntryHdr *to); static void s_ClearEntry(PLDHashTable *table, PLDHashEntryHdr *entry); static PRBool s_InitEntry(PLDHashTable *table, PLDHashEntryHdr *entry, const void *key); /** * passed internally during enumeration. Allocated on the stack. * * @param userFunc the Enumerator function passed to * EnumerateEntries by the client * @param userArg the userArg passed unaltered */ struct s_EnumArgs { Enumerator userFunc; void* userArg; }; static PLDHashOperator s_EnumStub(PLDHashTable *table, PLDHashEntryHdr *entry, PRUint32 number, void *arg); private: // copy constructor, not implemented nsTHashtable(nsTHashtable& toCopy); // assignment operator, not implemented nsTHashtable& operator= (nsTHashtable& toEqual); }; // // template definitions // template nsTHashtable::nsTHashtable() { // entrySize is our "I'm initialized" indicator mTable.entrySize = 0; } template nsTHashtable::~nsTHashtable() { if (mTable.entrySize) PL_DHashTableFinish(&mTable); } template PRBool nsTHashtable::Init(PRUint32 initSize) { if (mTable.entrySize) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "nsTHashtable::Init() should not be called twice.", "Error", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTHashtable.h", 327); return 1; } static PLDHashTableOps sOps = { ::PL_DHashAllocTable, ::PL_DHashFreeTable, s_HashKey, s_MatchEntry, ::PL_DHashMoveEntryStub, s_ClearEntry, ::PL_DHashFinalizeStub, s_InitEntry }; if (!EntryType::ALLOW_MEMMOVE) { sOps.moveEntry = s_CopyEntry; } if (!PL_DHashTableInit(&mTable, &sOps, 0L, sizeof(EntryType), initSize)) { // if failed, reset "flag" mTable.entrySize = 0; return 0; } return 1; } // static definitions template PLDHashNumber nsTHashtable::s_HashKey(PLDHashTable *table, const void *key) { return EntryType::HashKey(reinterpret_cast(key)); } template PRBool nsTHashtable::s_MatchEntry(PLDHashTable *table, const PLDHashEntryHdr *entry, const void *key) { return ((const EntryType*) entry)->KeyEquals( reinterpret_cast(key)); } template void nsTHashtable::s_CopyEntry(PLDHashTable *table, const PLDHashEntryHdr *from, PLDHashEntryHdr *to) { EntryType* fromEntry = const_cast(reinterpret_cast(from)); new(to) EntryType(*fromEntry); fromEntry->~EntryType(); } template void nsTHashtable::s_ClearEntry(PLDHashTable *table, PLDHashEntryHdr *entry) { reinterpret_cast(entry)->~EntryType(); } template PRBool nsTHashtable::s_InitEntry(PLDHashTable *table, PLDHashEntryHdr *entry, const void *key) { new(entry) EntryType(reinterpret_cast(key)); return 1; } template PLDHashOperator nsTHashtable::s_EnumStub(PLDHashTable *table, PLDHashEntryHdr *entry, PRUint32 number, void *arg) { // dereferences the function-pointer to the user's enumeration function return (* reinterpret_cast(arg)->userFunc)( reinterpret_cast(entry), reinterpret_cast(arg)->userArg); } #line 424 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTHashtable.h" #line 42 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsBaseHashtable.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prlock.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* ** File: prlock.h ** Description: API to basic locking functions of NSPR. ** ** ** NSPR provides basic locking mechanisms for thread synchronization. Locks ** are lightweight resource contention controls that prevent multiple threads ** from accessing something (code/data) simultaneously. **/ #line 43 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsBaseHashtable.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsDebug.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 44 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsBaseHashtable.h" template class nsBaseHashtable; // forward declaration /** * the private nsTHashtable::EntryType class used by nsBaseHashtable * @see nsTHashtable for the specification of this class * @see nsBaseHashtable for template parameters */ template class nsBaseHashtableET : public KeyClass { public: DataType mData; friend class nsTHashtable< nsBaseHashtableET >; private: typedef typename KeyClass::KeyType KeyType; typedef typename KeyClass::KeyTypePointer KeyTypePointer; nsBaseHashtableET(KeyTypePointer aKey); nsBaseHashtableET(nsBaseHashtableET& toCopy); ~nsBaseHashtableET(); }; /** * templated hashtable for simple data types * This class manages simple data types that do not need construction or * destruction. * * @param KeyClass a wrapper-class for the hashtable key, see nsHashKeys.h * for a complete specification. * @param DataType the datatype stored in the hashtable, * for example, PRUint32 or nsCOMPtr. If UserDataType is not the same, * DataType must implicitly cast to UserDataType * @param UserDataType the user sees, for example PRUint32 or nsISupports* */ template class nsBaseHashtable : protected nsTHashtable< nsBaseHashtableET > { public: typedef typename KeyClass::KeyType KeyType; typedef nsBaseHashtableET EntryType; // default constructor+destructor are fine /** * Initialize the object. * @param initSize the initial number of buckets in the hashtable, * default 16 * locking on all class methods * @return PR_TRUE if the object was initialized properly. */ PRBool Init(PRUint32 initSize = 16) { return nsTHashtable::Init(initSize); } /** * Check whether the table has been initialized. * This function is especially useful for static hashtables. * @return PR_TRUE if the table has been initialized. */ PRBool IsInitialized() const { return !!this->mTable.entrySize; } /** * Return the number of entries in the table. * @return number of entries */ PRUint32 Count() const { return nsTHashtable::Count(); } /** * retrieve the value for a key. * @param aKey the key to retreive * @param pData data associated with this key will be placed at this * pointer. If you only need to check if the key exists, pData * may be null. * @return PR_TRUE if the key exists. If key does not exist, pData is not * modified. */ PRBool Get(KeyType aKey, UserDataType* pData ) const { EntryType* ent = this->GetEntry(aKey); if (!ent) return 0; if (pData) *pData = ent->mData; return 1; } /** * For pointer types, get the value, returning NULL if the entry is not * present in the table. * * @param aKey the key to retrieve * @return The found value, or NULL if no entry was found with the given key. * @note If NULL values are stored in the table, it is not possible to * distinguish between a NULL value and a missing entry. */ UserDataType Get(KeyType aKey) const { EntryType* ent = this->GetEntry(aKey); if (!ent) return 0; return ent->mData; } /** * put a new value for the associated key * @param aKey the key to put * @param aData the new data * @return always PR_TRUE, unless memory allocation failed */ PRBool Put(KeyType aKey, UserDataType aData) { EntryType* ent = this->PutEntry(aKey); if (!ent) return 0; ent->mData = aData; return 1; } /** * remove the data for the associated key * @param aKey the key to remove from the hashtable */ void Remove(KeyType aKey) { this->RemoveEntry(aKey); } /** * function type provided by the application for enumeration. * @param aKey the key being enumerated * @param aData data being enumerated * @parm userArg passed unchanged from Enumerate * @return either * @link PLDHashOperator::PL_DHASH_NEXT PL_DHASH_NEXT @endlink or * @link PLDHashOperator::PL_DHASH_STOP PL_DHASH_STOP @endlink */ typedef PLDHashOperator (* EnumReadFunction)(KeyType aKey, UserDataType aData, void* userArg); /** * enumerate entries in the hashtable, without allowing changes * @param enumFunc enumeration callback * @param userArg passed unchanged to the EnumReadFunction */ PRUint32 EnumerateRead(EnumReadFunction enumFunc, void* userArg) const { do { if (!(this->mTable.entrySize)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "nsBaseHashtable was not initialized properly.", "this->mTable.entrySize", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsBaseHashtable.h", 201); } } while (0); #line 202 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsBaseHashtable.h" s_EnumReadArgs enumData = { enumFunc, userArg }; return PL_DHashTableEnumerate(const_cast(&this->mTable), s_EnumReadStub, &enumData); } /** * function type provided by the application for enumeration. * @param aKey the key being enumerated * @param aData Reference to data being enumerated, may be altered. e.g. for * nsInterfaceHashtable this is an nsCOMPtr reference... * @parm userArg passed unchanged from Enumerate * @return bitflag combination of * @link PLDHashOperator::PL_DHASH_REMOVE @endlink, * @link PLDHashOperator::PL_DHASH_NEXT PL_DHASH_NEXT @endlink, or * @link PLDHashOperator::PL_DHASH_STOP PL_DHASH_STOP @endlink */ typedef PLDHashOperator (* EnumFunction)(KeyType aKey, DataType& aData, void* userArg); /** * enumerate entries in the hashtable, allowing changes. This * functions write-locks the hashtable. * @param enumFunc enumeration callback * @param userArg passed unchanged to the EnumFunction */ PRUint32 Enumerate(EnumFunction enumFunc, void* userArg) { do { if (!(this->mTable.entrySize)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "nsBaseHashtable was not initialized properly.", "this->mTable.entrySize", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsBaseHashtable.h", 234); } } while (0); #line 235 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsBaseHashtable.h" s_EnumArgs enumData = { enumFunc, userArg }; return PL_DHashTableEnumerate(&this->mTable, s_EnumStub, &enumData); } /** * reset the hashtable, removing all entries */ void Clear() { nsTHashtable::Clear(); } protected: /** * used internally during EnumerateRead. Allocated on the stack. * @param func the enumerator passed to EnumerateRead * @param userArg the userArg passed to EnumerateRead */ struct s_EnumReadArgs { EnumReadFunction func; void* userArg; }; static PLDHashOperator s_EnumReadStub(PLDHashTable *table, PLDHashEntryHdr *hdr, PRUint32 number, void *arg); struct s_EnumArgs { EnumFunction func; void* userArg; }; static PLDHashOperator s_EnumStub(PLDHashTable *table, PLDHashEntryHdr *hdr, PRUint32 number, void *arg); }; /** * This class is a thread-safe version of nsBaseHashtable. */ template class nsBaseHashtableMT : protected nsBaseHashtable { public: typedef typename nsBaseHashtable::EntryType EntryType; typedef typename nsBaseHashtable::KeyType KeyType; typedef typename nsBaseHashtable::EnumFunction EnumFunction; typedef typename nsBaseHashtable::EnumReadFunction EnumReadFunction; nsBaseHashtableMT() : mLock(0L) { } ~nsBaseHashtableMT(); PRBool Init(PRUint32 initSize = 16); PRBool IsInitialized() const { return mLock != 0L; } PRUint32 Count() const; PRBool Get(KeyType aKey, UserDataType* pData) const; PRBool Put(KeyType aKey, UserDataType aData); void Remove(KeyType aKey); PRUint32 EnumerateRead(EnumReadFunction enumFunc, void* userArg) const; PRUint32 Enumerate(EnumFunction enumFunc, void* userArg); void Clear(); protected: PRLock* mLock; }; // // nsBaseHashtableET definitions // template nsBaseHashtableET::nsBaseHashtableET(KeyTypePointer aKey) : KeyClass(aKey) { } template nsBaseHashtableET::nsBaseHashtableET (nsBaseHashtableET& toCopy) : KeyClass(toCopy), mData(toCopy.mData) { } template nsBaseHashtableET::~nsBaseHashtableET() { } // // nsBaseHashtable definitions // template PLDHashOperator nsBaseHashtable::s_EnumReadStub (PLDHashTable *table, PLDHashEntryHdr *hdr, PRUint32 number, void* arg) { EntryType* ent = static_cast(hdr); s_EnumReadArgs* eargs = (s_EnumReadArgs*) arg; PLDHashOperator res = (eargs->func)(ent->GetKey(), ent->mData, eargs->userArg); do { if (!(!(res & PL_DHASH_REMOVE ))) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "PL_DHASH_REMOVE return during const enumeration; ignoring.", "!(res & PL_DHASH_REMOVE )", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsBaseHashtable.h", 348); } } while (0); #line 349 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsBaseHashtable.h" if (res & PL_DHASH_STOP) return PL_DHASH_STOP; return PL_DHASH_NEXT; } template PLDHashOperator nsBaseHashtable::s_EnumStub (PLDHashTable *table, PLDHashEntryHdr *hdr, PRUint32 number, void* arg) { EntryType* ent = static_cast(hdr); s_EnumArgs* eargs = (s_EnumArgs*) arg; return (eargs->func)(ent->GetKey(), ent->mData, eargs->userArg); } // // nsBaseHashtableMT definitions // template nsBaseHashtableMT::~nsBaseHashtableMT() { if (this->mLock) PR_DestroyLock(this->mLock); } template PRBool nsBaseHashtableMT::Init(PRUint32 initSize) { if (!nsTHashtable::IsInitialized() && !nsTHashtable::Init(initSize)) return 0; this->mLock = PR_NewLock(); do { if (!(this->mLock)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Error creating lock during nsBaseHashtableL::Init()", "this->mLock", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsBaseHashtable.h", 387); } } while (0); return (this->mLock != 0L); } template PRUint32 nsBaseHashtableMT::Count() const { PR_Lock(this->mLock); PRUint32 count = nsTHashtable::Count(); PR_Unlock(this->mLock); return count; } template PRBool nsBaseHashtableMT::Get(KeyType aKey, UserDataType* pData) const { PR_Lock(this->mLock); PRBool res = nsBaseHashtable::Get(aKey, pData); PR_Unlock(this->mLock); return res; } template PRBool nsBaseHashtableMT::Put(KeyType aKey, UserDataType aData) { PR_Lock(this->mLock); PRBool res = nsBaseHashtable::Put(aKey, aData); PR_Unlock(this->mLock); return res; } template void nsBaseHashtableMT::Remove(KeyType aKey) { PR_Lock(this->mLock); nsBaseHashtable::Remove(aKey); PR_Unlock(this->mLock); } template PRUint32 nsBaseHashtableMT::EnumerateRead (EnumReadFunction fEnumCall, void* userArg) const { PR_Lock(this->mLock); PRUint32 count = nsBaseHashtable::EnumerateRead(fEnumCall, userArg); PR_Unlock(this->mLock); return count; } template PRUint32 nsBaseHashtableMT::Enumerate (EnumFunction fEnumCall, void* userArg) { PR_Lock(this->mLock); PRUint32 count = nsBaseHashtable::Enumerate(fEnumCall, userArg); PR_Unlock(this->mLock); return count; } template void nsBaseHashtableMT::Clear() { PR_Lock(this->mLock); nsBaseHashtable::Clear(); PR_Unlock(this->mLock); } #line 474 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsBaseHashtable.h" #line 43 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsDataHashtable.h" /** * templated hashtable class maps keys to simple datatypes. * See nsBaseHashtable for complete declaration * @param KeyClass a wrapper-class for the hashtable key, see nsHashKeys.h * for a complete specification. * @param DataType the simple datatype being wrapped * @see nsInterfaceHashtable, nsClassHashtable */ template class nsDataHashtable : public nsBaseHashtable { }; template class nsDataHashtableMT : public nsBaseHashtableMT { }; #line 63 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsDataHashtable.h" #line 61 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContext.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsHashKeys.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is C++ hashtable templates. * * The Initial Developer of the Original Code is * Benjamin Smedberg. * Portions created by the Initial Developer are Copyright (C) 2002 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 62 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContext.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsRegion.h" /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Dainis Jonitis, . * Portions created by the Initial Developer are Copyright (C) 2001 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 63 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContext.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAutoPtr.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Scott Collins (original author of nsCOMPtr) * L. David Baron * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 64 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContext.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsThreadUtils.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla code. * * The Initial Developer of the Original Code is Google Inc. * Portions created by the Initial Developer are Copyright (C) 2006 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 65 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContext.h" #line 69 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContext.h" typedef char realGLboolean; #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContextSymbols.h" /* -*- Mode: c++; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40; -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Mozilla Corporation. * Portions created by the Initial Developer are Copyright (C) 2010 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Vladimir Vukicevic * Benoit Jacob * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* * This file should only be included by GLContext.h, and should be * autogenerated in the future. */ namespace mozilla { namespace gl { struct GLContextSymbols { GLContextSymbols() { Zero(); } void Zero() { memset(this, 0, sizeof(GLContextSymbols)); } typedef void (__stdcall * PFNGLACTIVETEXTUREPROC) (GLenum texture); PFNGLACTIVETEXTUREPROC fActiveTexture; typedef void (__stdcall * PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); PFNGLATTACHSHADERPROC fAttachShader; typedef void (__stdcall * PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar* name); PFNGLBINDATTRIBLOCATIONPROC fBindAttribLocation; typedef void (__stdcall * PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); PFNGLBINDBUFFERPROC fBindBuffer; typedef void (__stdcall * PFNGLBINDTEXTUREPROC) (GLenum target, GLuint texture); PFNGLBINDTEXTUREPROC fBindTexture; typedef void (__stdcall * PFNGLBLENDCOLORPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); PFNGLBLENDCOLORPROC fBlendColor; typedef void (__stdcall * PFNGLBLENDEQUATIONPROC) (GLenum mode); PFNGLBLENDEQUATIONPROC fBlendEquation; typedef void (__stdcall * PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum, GLenum); PFNGLBLENDEQUATIONSEPARATEPROC fBlendEquationSeparate; typedef void (__stdcall * PFNGLBLENDFUNCPROC) (GLenum, GLenum); PFNGLBLENDFUNCPROC fBlendFunc; typedef void (__stdcall * PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); PFNGLBLENDFUNCSEPARATEPROC fBlendFuncSeparate; typedef void (__stdcall * PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage); PFNGLBUFFERDATAPROC fBufferData; typedef void (__stdcall * PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data); PFNGLBUFFERSUBDATAPROC fBufferSubData; typedef void (__stdcall * PFNGLCLEARPROC) (GLbitfield); PFNGLCLEARPROC fClear; typedef void (__stdcall * PFNGLCLEARCOLORPROC) (GLclampf, GLclampf, GLclampf, GLclampf); PFNGLCLEARCOLORPROC fClearColor; typedef void (__stdcall * PFNGLCLEARSTENCILPROC) (GLint); PFNGLCLEARSTENCILPROC fClearStencil; typedef void (__stdcall * PFNGLCOLORMASKPROC) (realGLboolean red, realGLboolean green, realGLboolean blue, realGLboolean alpha); PFNGLCOLORMASKPROC fColorMask; typedef void (__stdcall * PFNGLCULLFACEPROC) (GLenum mode); PFNGLCULLFACEPROC fCullFace; typedef void (__stdcall * PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader); PFNGLDETACHSHADERPROC fDetachShader; typedef void (__stdcall * PFNGLDEPTHFUNCPROC) (GLenum); PFNGLDEPTHFUNCPROC fDepthFunc; typedef void (__stdcall * PFNGLDEPTHMASKPROC) (realGLboolean); PFNGLDEPTHMASKPROC fDepthMask; typedef void (__stdcall * PFNGLDISABLEPROC) (GLenum); PFNGLDISABLEPROC fDisable; typedef void (__stdcall * PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint); PFNGLDISABLEVERTEXATTRIBARRAYPROC fDisableVertexAttribArray; typedef void (__stdcall * PFNGLDRAWARRAYSPROC) (GLenum mode, GLint first, GLsizei count); PFNGLDRAWARRAYSPROC fDrawArrays; typedef void (__stdcall * PFNGLDRAWELEMENTSPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices); PFNGLDRAWELEMENTSPROC fDrawElements; typedef void (__stdcall * PFNGLENABLEPROC) (GLenum); PFNGLENABLEPROC fEnable; typedef void (__stdcall * PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint); PFNGLENABLEVERTEXATTRIBARRAYPROC fEnableVertexAttribArray; typedef void (__stdcall * PFNGLFINISHPROC) (void); PFNGLFINISHPROC fFinish; typedef void (__stdcall * PFNGLFLUSHPROC) (void); PFNGLFLUSHPROC fFlush; typedef void (__stdcall * PFNGLFRONTFACEPROC) (GLenum); PFNGLFRONTFACEPROC fFrontFace; typedef void (__stdcall * PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei maxLength, GLsizei* length, GLint* size, GLenum* type, GLchar* name); PFNGLGETACTIVEATTRIBPROC fGetActiveAttrib; typedef void (__stdcall * PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei maxLength, GLsizei* length, GLint* size, GLenum* type, GLchar* name); PFNGLGETACTIVEUNIFORMPROC fGetActiveUniform; typedef void (__stdcall * PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei* count, GLuint* shaders); PFNGLGETATTACHEDSHADERSPROC fGetAttachedShaders; typedef GLint (__stdcall * PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar* name); PFNGLGETATTRIBLOCATIONPROC fGetAttribLocation; typedef void (__stdcall * PFNGLGETINTEGERVPROC) (GLenum pname, GLint *params); PFNGLGETINTEGERVPROC fGetIntegerv; typedef void (__stdcall * PFNGLGETFLOATVPROC) (GLenum pname, GLfloat *params); PFNGLGETFLOATVPROC fGetFloatv; typedef void (__stdcall * PFNGLGETBOOLEANBPROC) (GLenum pname, realGLboolean *params); PFNGLGETBOOLEANBPROC fGetBooleanv; typedef void (__stdcall * PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint* params); PFNGLGETBUFFERPARAMETERIVPROC fGetBufferParameteriv; typedef void (__stdcall * PFNGLGENERATEMIPMAPPROC) (GLenum target); PFNGLGENERATEMIPMAPPROC fGenerateMipmap; typedef GLenum (__stdcall * PFNGLGETERRORPROC) (void); PFNGLGETERRORPROC fGetError; typedef void (__stdcall * PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint* param); PFNGLGETPROGRAMIVPROC fGetProgramiv; typedef void (__stdcall * PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog); PFNGLGETPROGRAMINFOLOGPROC fGetProgramInfoLog; typedef void (__stdcall * PFNGLTEXPARAMETERIPROC) (GLenum target, GLenum pname, GLint param); PFNGLTEXPARAMETERIPROC fTexParameteri; typedef void (__stdcall * PFNGLTEXPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat param); PFNGLTEXPARAMETERFPROC fTexParameterf; typedef GLubyte* (__stdcall * PFNGLGETSTRINGPROC) (GLenum); PFNGLGETSTRINGPROC fGetString; typedef void (__stdcall * PFNGLGETTEXPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); PFNGLGETTEXPARAMETERFVPROC fGetTexParameterfv; typedef void (__stdcall * PFNGLGETTEXPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); PFNGLGETTEXPARAMETERIVPROC fGetTexParameteriv; typedef void (__stdcall * PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat* params); PFNGLGETUNIFORMFVPROC fGetUniformfv; typedef void (__stdcall * PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint* params); PFNGLGETUNIFORMIVPROC fGetUniformiv; typedef GLint (__stdcall * PFNGLGETUNIFORMLOCATIONPROC) (GLint programObj, const GLchar* name); PFNGLGETUNIFORMLOCATIONPROC fGetUniformLocation; typedef void (__stdcall * PFNGLGETVERTEXATTRIBFVPROC) (GLuint, GLenum, GLfloat*); PFNGLGETVERTEXATTRIBFVPROC fGetVertexAttribfv; typedef void (__stdcall * PFNGLGETVERTEXATTRIBIVPROC) (GLuint, GLenum, GLint*); PFNGLGETVERTEXATTRIBIVPROC fGetVertexAttribiv; typedef void (__stdcall * PFNGLHINTPROC) (GLenum target, GLenum mode); PFNGLHINTPROC fHint; typedef realGLboolean (__stdcall * PFNGLISBUFFERPROC) (GLuint buffer); PFNGLISBUFFERPROC fIsBuffer; typedef realGLboolean (__stdcall * PFNGLISENABLEDPROC) (GLenum cap); PFNGLISENABLEDPROC fIsEnabled; typedef realGLboolean (__stdcall * PFNGLISPROGRAMPROC) (GLuint program); PFNGLISPROGRAMPROC fIsProgram; typedef realGLboolean (__stdcall * PFNGLISSHADERPROC) (GLuint shader); PFNGLISSHADERPROC fIsShader; typedef realGLboolean (__stdcall * PFNGLISTEXTUREPROC) (GLuint texture); PFNGLISTEXTUREPROC fIsTexture; typedef void (__stdcall * PFNGLLINEWIDTHPROC) (GLfloat width); PFNGLLINEWIDTHPROC fLineWidth; typedef void (__stdcall * PFNGLLINKPROGRAMPROC) (GLuint program); PFNGLLINKPROGRAMPROC fLinkProgram; typedef void (__stdcall * PFNGLPIXELSTOREIPROC) (GLenum pname, GLint param); PFNGLPIXELSTOREIPROC fPixelStorei; typedef void (__stdcall * PFNGLPOLYGONOFFSETPROC) (GLfloat factor, GLfloat bias); PFNGLPOLYGONOFFSETPROC fPolygonOffset; typedef void (__stdcall * PFNGLREADBUFFERPROC) (GLenum); PFNGLREADBUFFERPROC fReadBuffer; typedef void (__stdcall * PFNGLREADPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels); PFNGLREADPIXELSPROC fReadPixels; typedef void (__stdcall * PFNGLSAMPLECOVERAGEPROC) (GLclampf value, realGLboolean invert); PFNGLSAMPLECOVERAGEPROC fSampleCoverage; typedef void (__stdcall * PFNGLSTENCILFUNCPROC) (GLenum func, GLint ref, GLuint mask); PFNGLSTENCILFUNCPROC fStencilFunc; typedef void (__stdcall * PFNGLSTENCILFUNCSEPARATEPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); PFNGLSTENCILFUNCSEPARATEPROC fStencilFuncSeparate; typedef void (__stdcall * PFNGLSTENCILMASKPROC) (GLuint mask); PFNGLSTENCILMASKPROC fStencilMask; typedef void (__stdcall * PFNGLSTENCILMASKSEPARATEPROC) (GLenum, GLuint); PFNGLSTENCILMASKSEPARATEPROC fStencilMaskSeparate; typedef void (__stdcall * PFNGLSTENCILOPPROC) (GLenum fail, GLenum zfail, GLenum zpass); PFNGLSTENCILOPPROC fStencilOp; typedef void (__stdcall * PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); PFNGLSTENCILOPSEPARATEPROC fStencilOpSeparate; typedef void (__stdcall * PFNGLTEXIMAGE2DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); PFNGLTEXIMAGE2DPROC fTexImage2D; typedef void (__stdcall * PFNGLTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void* pixels); PFNGLTEXSUBIMAGE2DPROC fTexSubImage2D; typedef void (__stdcall * PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0); PFNGLUNIFORM1FPROC fUniform1f; typedef void (__stdcall * PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat* value); PFNGLUNIFORM1FVPROC fUniform1fv; typedef void (__stdcall * PFNGLUNIFORM1IPROC) (GLint location, GLint v0); PFNGLUNIFORM1IPROC fUniform1i; typedef void (__stdcall * PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint* value); PFNGLUNIFORM1IVPROC fUniform1iv; typedef void (__stdcall * PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1); PFNGLUNIFORM2FPROC fUniform2f; typedef void (__stdcall * PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat* value); PFNGLUNIFORM2FVPROC fUniform2fv; typedef void (__stdcall * PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1); PFNGLUNIFORM2IPROC fUniform2i; typedef void (__stdcall * PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint* value); PFNGLUNIFORM2IVPROC fUniform2iv; typedef void (__stdcall * PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); PFNGLUNIFORM3FPROC fUniform3f; typedef void (__stdcall * PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat* value); PFNGLUNIFORM3FVPROC fUniform3fv; typedef void (__stdcall * PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2); PFNGLUNIFORM3IPROC fUniform3i; typedef void (__stdcall * PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint* value); PFNGLUNIFORM3IVPROC fUniform3iv; typedef void (__stdcall * PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); PFNGLUNIFORM4FPROC fUniform4f; typedef void (__stdcall * PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat* value); PFNGLUNIFORM4FVPROC fUniform4fv; typedef void (__stdcall * PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); PFNGLUNIFORM4IPROC fUniform4i; typedef void (__stdcall * PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint* value); PFNGLUNIFORM4IVPROC fUniform4iv; typedef void (__stdcall * PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, realGLboolean transpose, const GLfloat* value); PFNGLUNIFORMMATRIX2FVPROC fUniformMatrix2fv; typedef void (__stdcall * PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, realGLboolean transpose, const GLfloat* value); PFNGLUNIFORMMATRIX3FVPROC fUniformMatrix3fv; typedef void (__stdcall * PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, realGLboolean transpose, const GLfloat* value); PFNGLUNIFORMMATRIX4FVPROC fUniformMatrix4fv; typedef void (__stdcall * PFNGLUSEPROGRAMPROC) (GLuint program); PFNGLUSEPROGRAMPROC fUseProgram; typedef void (__stdcall * PFNGLVALIDATEPROGRAMPROC) (GLuint program); PFNGLVALIDATEPROGRAMPROC fValidateProgram; typedef void (__stdcall * PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, realGLboolean normalized, GLsizei stride, const GLvoid* pointer); PFNGLVERTEXATTRIBPOINTERPROC fVertexAttribPointer; typedef void (__stdcall * PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x); PFNGLVERTEXATTRIB1FPROC fVertexAttrib1f; typedef void (__stdcall * PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y); PFNGLVERTEXATTRIB2FPROC fVertexAttrib2f; typedef void (__stdcall * PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); PFNGLVERTEXATTRIB3FPROC fVertexAttrib3f; typedef void (__stdcall * PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); PFNGLVERTEXATTRIB4FPROC fVertexAttrib4f; typedef void (__stdcall * PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat* v); PFNGLVERTEXATTRIB1FVPROC fVertexAttrib1fv; typedef void (__stdcall * PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat* v); PFNGLVERTEXATTRIB2FVPROC fVertexAttrib2fv; typedef void (__stdcall * PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat* v); PFNGLVERTEXATTRIB3FVPROC fVertexAttrib3fv; typedef void (__stdcall * PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat* v); PFNGLVERTEXATTRIB4FVPROC fVertexAttrib4fv; typedef void (__stdcall * PFNGLCOMPILESHADERPROC) (GLuint shader); PFNGLCOMPILESHADERPROC fCompileShader; typedef void (__stdcall * PFNGLCOPYTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); PFNGLCOPYTEXIMAGE2DPROC fCopyTexImage2D; typedef void (__stdcall * PFNGLCOPYTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); PFNGLCOPYTEXSUBIMAGE2DPROC fCopyTexSubImage2D; typedef void (__stdcall * PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint* param); PFNGLGETSHADERIVPROC fGetShaderiv; typedef void (__stdcall * PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog); PFNGLGETSHADERINFOLOGPROC fGetShaderInfoLog; typedef void (__stdcall * PFNGLGETSHADERSOURCEPROC) (GLint obj, GLsizei maxLength, GLsizei* length, GLchar* source); PFNGLGETSHADERSOURCEPROC fGetShaderSource; typedef void (__stdcall * PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar** strings, const GLint* lengths); PFNGLSHADERSOURCEPROC fShaderSource; typedef void (__stdcall * PFNGLBINDFRAMEBUFFER) (GLenum target, GLuint framebuffer); PFNGLBINDFRAMEBUFFER fBindFramebuffer; typedef void (__stdcall * PFNGLBINDRENDERBUFFER) (GLenum target, GLuint renderbuffer); PFNGLBINDRENDERBUFFER fBindRenderbuffer; typedef GLenum (__stdcall * PFNGLCHECKFRAMEBUFFERSTATUS) (GLenum target); PFNGLCHECKFRAMEBUFFERSTATUS fCheckFramebufferStatus; typedef void (__stdcall * PFNGLFRAMEBUFFERRENDERBUFFER) (GLenum target, GLenum attachmentPoint, GLenum renderbufferTarget, GLuint renderbuffer); PFNGLFRAMEBUFFERRENDERBUFFER fFramebufferRenderbuffer; typedef void (__stdcall * PFNGLFRAMEBUFFERTEXTURE2D) (GLenum target, GLenum attachmentPoint, GLenum textureTarget, GLuint texture, GLint level); PFNGLFRAMEBUFFERTEXTURE2D fFramebufferTexture2D; typedef void (__stdcall * PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIV) (GLenum target, GLenum attachment, GLenum pname, GLint* value); PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIV fGetFramebufferAttachmentParameteriv; typedef void (__stdcall * PFNGLGETRENDERBUFFERPARAMETERIV) (GLenum target, GLenum pname, GLint* value); PFNGLGETRENDERBUFFERPARAMETERIV fGetRenderbufferParameteriv; typedef realGLboolean (__stdcall * PFNGLISFRAMEBUFFER) (GLuint framebuffer); PFNGLISFRAMEBUFFER fIsFramebuffer; typedef realGLboolean (__stdcall * PFNGLISRENDERBUFFER) (GLuint renderbuffer); PFNGLISRENDERBUFFER fIsRenderbuffer; typedef void (__stdcall * PFNGLRENDERBUFFERSTORAGE) (GLenum target, GLenum internalFormat, GLsizei width, GLsizei height); PFNGLRENDERBUFFERSTORAGE fRenderbufferStorage; /* These are different between GLES2 and desktop GL; we hide those differences, use the GL * names, but the most limited data type. */ typedef void (__stdcall * PFNGLDEPTHRANGEFPROC) (GLclampf, GLclampf); PFNGLDEPTHRANGEFPROC fDepthRangef; typedef void (__stdcall * PFNGLCLEARDEPTHFPROC) (GLclampf); PFNGLCLEARDEPTHFPROC fClearDepthf; typedef void (__stdcall * PFNGLDEPTHRANGEPROC) (GLclampd, GLclampd); PFNGLDEPTHRANGEPROC fDepthRange; typedef void (__stdcall * PFNGLCLEARDEPTHPROC) (GLclampd); PFNGLCLEARDEPTHPROC fClearDepth; /* These are special because we end up tracking these so that we don't * have to query the values from GL. */ typedef void (__stdcall * PFNGLVIEWPORTPROC) (GLint x, GLint y, GLsizei width, GLsizei height); PFNGLVIEWPORTPROC fViewport; typedef void (__stdcall * PFNGLSCISSORPROC) (GLint x, GLint y, GLsizei width, GLsizei height); PFNGLSCISSORPROC fScissor; /* These are special -- they create or delete GL resources that can live * in a shared namespace. In DEBUG, we wrap these calls so that we can * check when we have something that failed to do cleanup at the time the * final context is destroyed. */ typedef GLuint (__stdcall * PFNGLCREATEPROGRAMPROC) (void); PFNGLCREATEPROGRAMPROC fCreateProgram; typedef GLuint (__stdcall * PFNGLCREATESHADERPROC) (GLenum type); PFNGLCREATESHADERPROC fCreateShader; typedef void (__stdcall * PFNGLGENBUFFERSPROC) (GLsizei n, GLuint* buffers); PFNGLGENBUFFERSPROC fGenBuffers; typedef void (__stdcall * PFNGLGENTEXTURESPROC) (GLsizei n, GLuint *textures); PFNGLGENTEXTURESPROC fGenTextures; typedef void (__stdcall * PFNGLGENFRAMEBUFFERS) (GLsizei n, GLuint* ids); PFNGLGENFRAMEBUFFERS fGenFramebuffers; typedef void (__stdcall * PFNGLGENRENDERBUFFERS) (GLsizei n, GLuint* ids); PFNGLGENRENDERBUFFERS fGenRenderbuffers; typedef void (__stdcall * PFNGLDELETEPROGRAMPROC) (GLuint program); PFNGLDELETEPROGRAMPROC fDeleteProgram; typedef void (__stdcall * PFNGLDELETESHADERPROC) (GLuint shader); PFNGLDELETESHADERPROC fDeleteShader; typedef void (__stdcall * PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint* buffers); PFNGLDELETEBUFFERSPROC fDeleteBuffers; typedef void (__stdcall * PFNGLDELETETEXTURESPROC) (GLsizei n, const GLuint* textures); PFNGLDELETETEXTURESPROC fDeleteTextures; typedef void (__stdcall * PFNGLDELETEFRAMEBUFFERS) (GLsizei n, const GLuint* ids); PFNGLDELETEFRAMEBUFFERS fDeleteFramebuffers; typedef void (__stdcall * PFNGLDELETERENDERBUFFERS) (GLsizei n, const GLuint* ids); PFNGLDELETERENDERBUFFERS fDeleteRenderbuffers; typedef void* (__stdcall * PFNGLMAPBUFFER) (GLenum target, GLenum access); PFNGLMAPBUFFER fMapBuffer; typedef realGLboolean (__stdcall * PFNGLUNMAPBUFFER) (GLenum target); PFNGLUNMAPBUFFER fUnmapBuffer; }; } } #line 377 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContextSymbols.h" #line 73 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContext.h" namespace mozilla { namespace gl { class GLContext; class LibrarySymbolLoader { public: PRBool OpenLibrary(const char *library); typedef PRFuncPtr (__stdcall * PlatformLookupFunction) (const char *); enum { MAX_SYMBOL_NAMES = 5, MAX_SYMBOL_LENGTH = 128 }; typedef struct { PRFuncPtr *symPointer; const char *symNames[MAX_SYMBOL_NAMES]; } SymLoadStruct; PRBool LoadSymbols(SymLoadStruct *firstStruct, PRBool tryplatform = 0, const char *prefix = 0L); /* * Static version of the functions in this class */ static PRFuncPtr LookupSymbol(PRLibrary *lib, const char *symname, PlatformLookupFunction lookupFunction = 0L); static PRBool LoadSymbols(PRLibrary *lib, SymLoadStruct *firstStruct, PlatformLookupFunction lookupFunction = 0L, const char *prefix = 0L); protected: LibrarySymbolLoader() { mLibrary = 0L; mLookupFunc = 0L; } PRLibrary *mLibrary; PlatformLookupFunction mLookupFunc; }; enum ShaderProgramType { RGBALayerProgramType, BGRALayerProgramType, RGBXLayerProgramType, BGRXLayerProgramType, RGBARectLayerProgramType, ColorLayerProgramType, YCbCrLayerProgramType, Copy2DProgramType, Copy2DRectProgramType, NumProgramTypes }; /** * A TextureImage encapsulates a surface that can be drawn to by a * Thebes gfxContext and (hopefully efficiently!) synchronized to a * texture in the server. TextureImages are associated with one and * only one GLContext. * * Implementation note: TextureImages attempt to unify two categories * of backends * * (1) proxy to server-side object that can be bound to a texture; * e.g. Pixmap on X11. * * (2) efficient manager of texture memory; e.g. by having clients draw * into a scratch buffer which is then uploaded with * glTexSubImage2D(). */ class TextureImage { public: void AddRef(void) { do { if (!(PRInt32(mRefCnt) >= 0)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "illegal refcnt", "PRInt32(mRefCnt) >= 0", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContext.h", 152); } } while (0); do { if (NS_IsCycleCollectorThread_P()) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Changing refcount of " "TextureImage" " object during Traverse is " "not permitted!", "Error", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContext.h", 152); } else { do { if (!(_mOwningThread.GetThread() == PR_GetCurrentThread())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "TextureImage" " not thread-safe", "_mOwningThread.GetThread() == PR_GetCurrentThread()", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContext.h", 152); } } while (0); } } while (0); ++mRefCnt; NS_LogAddRef_P((this), (mRefCnt), ("TextureImage"), (PRUint32) (sizeof(*this))); } void Release(void) { do { if (!(0 != mRefCnt)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "dup release", "0 != mRefCnt", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContext.h", 152); } } while (0); do { if (NS_IsCycleCollectorThread_P()) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Changing refcount of " "TextureImage" " object during Traverse is " "not permitted!", "Error", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContext.h", 152); } else { do { if (!(_mOwningThread.GetThread() == PR_GetCurrentThread())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "TextureImage" " not thread-safe", "_mOwningThread.GetThread() == PR_GetCurrentThread()", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContext.h", 152); } } while (0); } } while (0); --mRefCnt; NS_LogRelease_P((this), (mRefCnt), ("TextureImage")); if (mRefCnt == 0) { do { if (!(_mOwningThread.GetThread() == PR_GetCurrentThread())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "TextureImage" " not thread-safe", "_mOwningThread.GetThread() == PR_GetCurrentThread()", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContext.h", 152); } } while (0); mRefCnt = 1; delete this; } } protected: nsAutoRefCnt mRefCnt; nsAutoOwningThread _mOwningThread; public: public: typedef gfxASurface::gfxContentType ContentType; virtual ~TextureImage() {} /** * Return a gfxContext for updating |aRegion| of the client's * image if successul, NULL if not. |aRegion|'s bounds must fit * within Size(); its coordinate space (if any) is ignored. If * the update begins successfully, the returned gfxContext is * owned by this. Otherwise, NULL is returned. * * |aRegion| is an inout param: the returned region is what the * client must repaint. Category (1) regions above can * efficiently handle repaints to "scattered" regions, while (2) * can only efficiently handle repaints to rects. * * The returned context is neither translated nor clipped: it's a * context for rect(<0,0>, Size()). Painting the returned context * outside of |aRegion| results in undefined behavior. * * BeginUpdate() calls cannot be "nested", and each successful * BeginUpdate() must be followed by exactly one EndUpdate() (see * below). Failure to do so can leave this in a possibly * inconsistent state. Unsuccessful BeginUpdate()s must not be * followed by EndUpdate(). */ virtual gfxContext* BeginUpdate(nsIntRegion& aRegion) = 0; /** * Finish the active update and synchronize with the server, if * necessary. Return PR_TRUE iff this's texture is already bound. * * BeginUpdate() must have been called exactly once before * EndUpdate(). */ virtual PRBool EndUpdate() = 0; /** * Set this TextureImage's size, and ensure a texture has been * allocated. Must not be called between BeginUpdate and EndUpdate. * After a resize, the contents are undefined. * * If this isn't implemented by a subclass, it will just perform * a dummy BeginUpdate/EndUpdate pair. */ virtual void Resize(const nsIntSize& aSize) { mSize = aSize; nsIntRegion r(nsIntRect(0, 0, aSize.width, aSize.height)); BeginUpdate(r); EndUpdate(); } virtual bool DirectUpdate(gfxASurface *aSurf, const nsIntRegion& aRegion) =0; /** * Return this TextureImage's texture ID for use with GL APIs. * Callers are responsible for properly binding the texture etc. * * The texture is only texture complete after either Resize * or a matching pair of BeginUpdate/EndUpdate have been called. * Otherwise, a texture ID may be returned, but the texture * may not be texture complete. */ GLuint Texture() { return mTexture; } /** * Returns the shader program type that should be used to render * this texture. Only valid after a matching BeginUpdate/EndUpdate * pair have been called. */ virtual ShaderProgramType GetShaderProgramType() { return mShaderType; } /** Can be called safely at any time. */ /** * If this TextureImage has a permanent gfxASurface backing, * return it. Otherwise return NULL. */ virtual already_AddRefed GetBackingSurface() { return 0; } const nsIntSize& GetSize() const { return mSize; } ContentType GetContentType() const { return mContentType; } virtual PRBool InUpdate() const = 0; GLenum GetWrapMode() const { return mWrapMode; } PRBool IsRGB() const { return mIsRGBFormat; } protected: friend class GLContext; /** * After the ctor, the TextureImage is invalid. Implementations * must allocate resources successfully before returning the new * TextureImage from GLContext::CreateTextureImage(). That is, * clients must not be given partially-constructed TextureImages. */ TextureImage(GLuint aTexture, const nsIntSize& aSize, GLenum aWrapMode, ContentType aContentType, PRBool aIsRGB = 0) : mTexture(aTexture) , mSize(aSize) , mWrapMode(aWrapMode) , mContentType(aContentType) , mIsRGBFormat(aIsRGB) {} GLuint mTexture; nsIntSize mSize; GLenum mWrapMode; ContentType mContentType; PRPackedBool mIsRGBFormat; ShaderProgramType mShaderType; }; /** * BasicTextureImage is the baseline TextureImage implementation --- * it updates its texture by allocating a scratch buffer for the * client to draw into, then using glTexSubImage2D() to upload the new * pixels. Platforms must provide the code to create a new surface * into which the updated pixels will be drawn, and the code to * convert the update surface's pixels into an image on which we can * glTexSubImage2D(). */ class BasicTextureImage : public TextureImage { public: typedef gfxASurface::gfxImageFormat ImageFormat; virtual ~BasicTextureImage(); BasicTextureImage(GLuint aTexture, const nsIntSize& aSize, GLenum aWrapMode, ContentType aContentType, GLContext* aContext) : TextureImage(aTexture, aSize, aWrapMode, aContentType) , mTextureInited(0) , mGLContext(aContext) , mUpdateOffset(0, 0) {} virtual gfxContext* BeginUpdate(nsIntRegion& aRegion); virtual PRBool EndUpdate(); virtual bool DirectUpdate(gfxASurface *aSurf, const nsIntRegion& aRegion); // Returns a surface to draw into virtual already_AddRefed GetSurfaceForUpdate(const gfxIntSize& aSize, ImageFormat aFmt); // Call when drawing into the update surface is complete. // Returns true if textures should be upload with a relative // offset - See UploadSurfaceToTexture. virtual bool FinishedSurfaceUpdate(); // Call after surface data has been uploaded to a texture. virtual void FinishedSurfaceUpload(); virtual PRBool InUpdate() const { return !!mUpdateContext; } virtual void Resize(const nsIntSize& aSize); protected: PRBool mTextureInited; GLContext* mGLContext; nsRefPtr mUpdateContext; nsIntRect mUpdateRect; // The offset into the update surface at which the update rect is located. nsIntPoint mUpdateOffset; }; struct __declspec(dllexport) ContextFormat { static const ContextFormat BasicRGBA32Format; enum StandardContextFormat { Empty, BasicRGBA32, StrictBasicRGBA32, BasicRGB24, StrictBasicRGB24, BasicRGB16_565, StrictBasicRGB16_565 }; ContextFormat() { memset(this, 0, sizeof(*this)); } ContextFormat(const StandardContextFormat cf) { memset(this, 0, sizeof(*this)); switch (cf) { case BasicRGBA32: red = green = blue = alpha = 8; minRed = minGreen = minBlue = minAlpha = 1; break; case StrictBasicRGBA32: red = green = blue = alpha = 8; minRed = minGreen = minBlue = minAlpha = 8; break; case BasicRGB24: red = green = blue = 8; minRed = minGreen = minBlue = 1; break; case StrictBasicRGB24: red = green = blue = 8; minRed = minGreen = minBlue = 8; break; case StrictBasicRGB16_565: red = minRed = 5; green = minGreen = 6; blue = minBlue = 5; break; default: break; } } int depth, minDepth; int stencil, minStencil; int red, minRed; int green, minGreen; int blue, minBlue; int alpha, minAlpha; int colorBits() const { return red + green + blue; } }; class GLContext : public LibrarySymbolLoader { public: nsrefcnt AddRef(void) { do { if (!(PRInt32(mRefCnt) >= 0)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "illegal refcnt", "PRInt32(mRefCnt) >= 0", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContext.h", 393); } } while (0); nsrefcnt count = NS_AtomicIncrementRefcnt(mRefCnt); NS_LogAddRef_P((this), (count), ("GLContext"), (PRUint32) (sizeof(*this))); return count; } nsrefcnt Release(void) { do { if (!(0 != mRefCnt)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "dup release", "0 != mRefCnt", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContext.h", 393); } } while (0); nsrefcnt count = NS_AtomicDecrementRefcnt(mRefCnt); NS_LogRelease_P((this), (count), ("GLContext")); if (count == 0) { mRefCnt = 1; delete this; return 0; } return count; } protected: nsAutoRefCnt mRefCnt; public: public: GLContext(const ContextFormat& aFormat, PRBool aIsOffscreen = 0, GLContext *aSharedContext = 0L) : mInitialized(0), mIsOffscreen(aIsOffscreen), mIsGLES2(0), #line 405 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContext.h" mIsGlobalSharedContext(0), mWindowOriginBottomLeft(0), mVendor(-1), mDebugMode(0), mCreationFormat(aFormat), mSharedContext(aSharedContext), mOffscreenTexture(0), mBlitProgram(0), mBlitFramebuffer(0), mOffscreenFBO(0), mOffscreenDepthRB(0), mOffscreenStencilRB(0) , mGLError(0) #line 420 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContext.h" { mUserData.Init(); } virtual ~GLContext() { do { if (!(IsDestroyed())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "GLContext implementation must call MarkDestroyed in destructor!", "IsDestroyed()", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContext.h", 425); } } while (0); if (mSharedContext) { GLContext *tip = mSharedContext; while (tip->mSharedContext) tip = tip->mSharedContext; tip->SharedContextDestroyed(this); tip->ReportOutstandingNames(); } #line 435 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContext.h" } enum GLContextType { ContextTypeUnknown, ContextTypeWGL, ContextTypeCGL, ContextTypeGLX, ContextTypeEGL, ContextTypeOSMesa }; virtual GLContextType GetContextType() { return ContextTypeUnknown; } virtual PRBool MakeCurrentImpl(PRBool aForce = 0) = 0; PRBool MakeCurrent(PRBool aForce = 0) { sCurrentGLContext = this; #line 454 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContext.h" return MakeCurrentImpl(aForce); } virtual PRBool SetupLookupFunction() = 0; virtual void WindowDestroyed() {} void *GetUserData(void *aKey) { void *result = 0L; mUserData.Get(aKey, &result); return result; } void SetUserData(void *aKey, void *aValue) { mUserData.Put(aKey, aValue); } // Mark this context as destroyed. This will NULL out all // the GL function pointers! void __declspec(dllexport) MarkDestroyed(); PRBool IsDestroyed() { // MarkDestroyed will mark all these as null. return mSymbols.fUseProgram == 0L; } enum NativeDataType { NativeGLContext, NativeImageSurface, NativeThebesSurface, NativeDataTypeMax }; virtual void *GetNativeData(NativeDataType aType) { return 0; } GLContext *GetSharedContext() { return mSharedContext; } PRBool IsGlobalSharedContext() { return mIsGlobalSharedContext; } void SetIsGlobalSharedContext(PRBool aIsOne) { mIsGlobalSharedContext = aIsOne; } const ContextFormat& CreationFormat() { return mCreationFormat; } const ContextFormat& ActualFormat() { return mActualFormat; } /** * If this context is double-buffered, returns TRUE. */ virtual PRBool IsDoubleBuffered() { return 0; } /** * If this context is the GLES2 API, returns TRUE. * This means that various GLES2 restrictions might be in effect (modulo * extensions). */ PRBool IsGLES2() { return mIsGLES2; } enum { VendorIntel, VendorNVIDIA, VendorATI, VendorQualcomm, VendorOther }; int Vendor() const { return mVendor; } /** * Returns PR_TRUE if the window coordinate origin is the bottom * left corener. If PR_FALSE, it is the top left corner. * * This needs to be taken into account when calling glViewport * and glScissor when drawing directly to a window. If this is * PR_FALSE, the y coordinate given to those functions should be * (windowHeight - (desiredHeight + desiredY)). * * This should only be done when drawing directly to a window; * when drawing to a FBO, the origin is always the bottom left. * * See FixWindowCoordinateRect(). */ PRBool IsWindowOriginBottomLeft() { return mWindowOriginBottomLeft; } /** * Fix up the rectangle given in aRect, taking into account * window height aWindowHeight and whether windows have their * natural origin in the bottom left or not. */ nsIntRect& FixWindowCoordinateRect(nsIntRect& aRect, int aWindowHeight) { if (!mWindowOriginBottomLeft) { aRect.y = aWindowHeight - (aRect.height + aRect.y); } return aRect; } /** * If this context wraps a double-buffered target, swap the back * and front buffers. It should be assumed that after a swap, the * contents of the new back buffer are undefined. */ virtual PRBool SwapBuffers() { return 0; } /** * Defines a two-dimensional texture image for context target surface */ virtual PRBool BindTexImage() { return 0; } /* * Releases a color buffer that is being used as a texture */ virtual PRBool ReleaseTexImage() { return 0; } /* * Offscreen support API */ /* * Bind aOffscreen's color buffer as a texture to the TEXTURE_2D * target. Returns TRUE on success, otherwise FALSE. If * aOffscreen is not an offscreen context, returns FALSE. If * BindOffscreenNeedsTexture() returns TRUE, then you should have * a 2D texture name bound whose image will be replaced by the * contents of the offscreen context. If it returns FALSE, * the current 2D texture binding will be replaced. * * After a successul call to BindTex2DOffscreen, UnbindTex2DOffscreen * *must* be called once rendering is complete. * * The same texture unit must be active for Bind/Unbind of a given * context. */ virtual PRBool BindOffscreenNeedsTexture(GLContext *aOffscreen) { return aOffscreen->mOffscreenTexture == 0; } virtual PRBool BindTex2DOffscreen(GLContext *aOffscreen) { if (aOffscreen->GetContextType() != GetContextType()) { return 0; } if (!aOffscreen->mOffscreenFBO) { return 0; } if (!aOffscreen->mSharedContext || aOffscreen->mSharedContext != mSharedContext) { return 0; } fBindTexture(0x0DE1, aOffscreen->mOffscreenTexture); return 1; } virtual void UnbindTex2DOffscreen(GLContext *aOffscreen) { } PRBool IsOffscreen() { return mIsOffscreen; } /* * Resize the current offscreen buffer. Returns true on success. * If it returns false, the context should be treated as unusable * and should be recreated. After the resize, the viewport is not * changed; glViewport should be called as appropriate. * * Only valid if IsOffscreen() returns true. */ virtual PRBool ResizeOffscreen(const gfxIntSize& aNewSize) { if (mOffscreenFBO) return ResizeOffscreenFBO(aNewSize); return 0; } /* * Return size of this offscreen context. * * Only valid if IsOffscreen() returns true. */ gfxIntSize OffscreenSize() { return mOffscreenSize; } /* * In some cases, we have to allocate a bigger offscreen buffer * than what's requested. This is the bigger size. * * Only valid if IsOffscreen() returns true. */ gfxIntSize OffscreenActualSize() { return mOffscreenActualSize; } /* * If this context is FBO-backed, return the FBO or the color * buffer texture. If the context is not FBO-backed, 0 is * returned (which is also a valid FBO binding). * * Only valid if IsOffscreen() returns true. */ GLuint GetOffscreenFBO() { return mOffscreenFBO; } GLuint GetOffscreenTexture() { return mOffscreenTexture; } virtual PRBool TextureImageSupportsGetBackingSurface() { return 0; } virtual PRBool RenewSurface() { return 0; } /**` * Return a valid, allocated TextureImage of |aSize| with * |aContentType|. The TextureImage's texture is configured to * use |aWrapMode| (usually GL_CLAMP_TO_EDGE or GL_REPEAT) and by * default, GL_LINEAR filtering. Specify * |aUseNearestFilter=PR_TRUE| for GL_NEAREST filtering. Return * NULL if creating the TextureImage fails. * * The returned TextureImage may only be used with this GLContext. * Attempting to use the returned TextureImage after this * GLContext is destroyed will result in undefined (and likely * crashy) behavior. */ virtual already_AddRefed CreateTextureImage(const nsIntSize& aSize, TextureImage::ContentType aContentType, GLenum aWrapMode, PRBool aUseNearestFilter=0); /** * Read the image data contained in aTexture, and return it as an ImageSurface. * If GL_RGBA is given as the format, a ImageFormatARGB32 surface is returned. * Not implemented yet: * If GL_RGB is given as the format, a ImageFormatRGB24 surface is returned. * If GL_LUMINANCE is given as the format, a ImageFormatA8 surface is returned. * * THIS IS EXPENSIVE. It is ridiculously expensive. Only do this * if you absolutely positively must, and never in any performance * critical path. */ already_AddRefed ReadTextureImage(GLuint aTexture, const gfxIntSize& aSize, GLenum aTextureFormat); /** * Call ReadPixels into an existing gfxImageSurface for the given bounds. * The image surface must be using image format RGBA32 or RGB24. */ void __declspec(dllexport) ReadPixelsIntoImageSurface(GLint aX, GLint aY, GLsizei aWidth, GLsizei aHeight, gfxImageSurface *aDest); /** * Copy a rectangle from one TextureImage into another. The * source and destination are given in integer coordinates, and * will be converted to texture coordinates. * * For the source texture, the wrap modes DO apply -- it's valid * to use REPEAT or PAD and expect appropriate behaviour if the source * rectangle extends beyond its bounds. * * For the destination texture, the wrap modes DO NOT apply -- the * destination will be clipped by the bounds of the texture. * * Note: calling this function will cause the following OpenGL state * to be changed: * * - current program * - framebuffer binding * - viewport * - blend state (will be enabled at end) * - scissor state (will be enabled at end) * - vertex attrib 0 and 1 (pointer and enable state [enable state will be disabled at exit]) * - array buffer binding (will be 0) * - active texture (will be 0) * - texture 0 binding */ void BlitTextureImage(TextureImage *aSrc, const nsIntRect& aSrcRect, TextureImage *aDst, const nsIntRect& aDstRect); /** * Creates a RGB/RGBA texture (or uses one provided) and uploads the surface * contents to it within aSrcRect. * * aSrcRect.x/y will be uploaded to 0/0 in the texture, and the size * of the texture with be aSrcRect.width/height. * * If an existing texture is passed through aTexture, it is assumed it * has already been initialised with glTexImage2D (or this function), * and that its size is equal to or greater than aSrcRect + aDstPoint. * You can alternatively set the overwrite flag to true and have a new * texture memory block allocated. * * The aDstPoint parameter is ignored if no texture was provided * or aOverwrite is true. * * \param aSurface Surface to upload. * \param aSrcRect Region of aSurface to upload. * \param aTexture Texture to use, or 0 to have one created for you. * \param aOverwrite Over an existing texture with a new one. * \param aDstPoint Offset into existing texture to upload contents. * \param aPixelBuffer Pass true to upload texture data with an * offset from the base data (generally for pixel buffer objects), * otherwise textures are upload with an absolute pointer to the data. * \return Shader program needed to render this texture. */ ShaderProgramType UploadSurfaceToTexture(gfxASurface *aSurface, const nsIntRect& aSrcRect, GLuint& aTexture, bool aOverwrite = false, const nsIntPoint& aDstPoint = nsIntPoint(0, 0), bool aPixelBuffer = 0); /** Helper for DecomposeIntoNoRepeatTriangles */ struct RectTriangles { RectTriangles() : numRects(0) { } void addRect(GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat tx0, GLfloat ty0, GLfloat tx1, GLfloat ty1); int numRects; /* max is 4 rectangles, each made up of 2 triangles (3 2-coord vertices each) */ GLfloat vertexCoords[4*3*2*2]; GLfloat texCoords[4*3*2*2]; }; /** * Decompose drawing the possibly-wrapped aTexCoordRect rectangle * of a texture of aTexSize into one or more rectangles (represented * as 2 triangles) and associated tex coordinates, such that * we don't have to use the REPEAT wrap mode. * * The resulting triangle vertex coordinates will be in the space of * (0.0, 0.0) to (1.0, 1.0) -- transform the coordinates appropriately * if you need a different space. * * The resulting vertex coordinates should be drawn using GL_TRIANGLES, * and rects.numRects * 3 * 6 */ static void DecomposeIntoNoRepeatTriangles(const nsIntRect& aTexCoordRect, const nsIntSize& aTexSize, RectTriangles& aRects); /** * Known GL extensions that can be queried by * IsExtensionSupported. The results of this are cached, and as * such it's safe to use this even in performance critical code. * If you add to this array, remember to add to the string names * in GLContext.cpp. */ enum GLExtensions { EXT_framebuffer_object, ARB_framebuffer_object, ARB_texture_rectangle, EXT_bgra, EXT_texture_format_BGRA8888, OES_depth24, OES_depth32, OES_stencil8, OES_texture_npot, OES_depth_texture, OES_packed_depth_stencil, IMG_read_format, EXT_read_format_bgra, APPLE_client_storage, ARB_texture_non_power_of_two, ARB_pixel_buffer_object, Extensions_Max }; PRBool IsExtensionSupported(GLExtensions aKnownExtension) { return mAvailableExtensions[aKnownExtension]; } // Shared code for GL extensions and GLX extensions. static PRBool ListHasExtension(const GLubyte *extensions, const char *extension); GLint GetMaxTextureSize() { return mMaxTextureSize; } protected: PRPackedBool mInitialized; PRPackedBool mIsOffscreen; PRPackedBool mIsGLES2; PRPackedBool mIsGlobalSharedContext; PRPackedBool mWindowOriginBottomLeft; PRInt32 mVendor; enum { DebugEnabled = 1 << 0, DebugTrace = 1 << 1, DebugAbortOnError = 1 << 2 }; PRUint32 mDebugMode; ContextFormat mCreationFormat; nsRefPtr mSharedContext; GLContextSymbols mSymbols; // this should be thread-local, but that is slightly annoying to implement because on Mac // we don't have any __thread-like keyword. So for now, MOZ_GL_DEBUG assumes (and asserts) // that only the main thread is doing OpenGL calls. static __declspec(dllexport) GLContext* sCurrentGLContext; #line 869 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContext.h" void UpdateActualFormat(); ContextFormat mActualFormat; gfxIntSize mOffscreenSize; gfxIntSize mOffscreenActualSize; GLuint mOffscreenTexture; // lazy-initialized things GLuint mBlitProgram, mBlitFramebuffer; void UseBlitProgram(); void SetBlitFramebufferForDestTexture(GLuint aTexture); // helper to create/resize an offscreen FBO, // for offscreen implementations that use FBOs. PRBool ResizeOffscreenFBO(const gfxIntSize& aSize); void DeleteOffscreenFBO(); GLuint mOffscreenFBO; GLuint mOffscreenDepthRB; GLuint mOffscreenStencilRB; // this should just be a std::bitset, but that ended up breaking // MacOS X builds; see bug 584919. We can replace this with one // later on. template struct ExtensionBitset { ExtensionBitset() { for (size_t i = 0; i < setlen; ++i) values[i] = false; } bool& operator[](size_t index) { do { if (!(index < setlen)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "out of range", "index < setlen", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContext.h", 901); } } while (0); return values[index]; } bool values[setlen]; }; ExtensionBitset mAvailableExtensions; // Clear to transparent black, with 0 depth and stencil, // while preserving current ClearColor etc. values. // Useful for resizing offscreen buffers. void ClearSafely(); nsDataHashtable mUserData; void SetIsGLES2(PRBool aIsGLES2) { do { if (!(!mInitialized)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "SetIsGLES2 can only be called before initialization!", "!mInitialized", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContext.h", 917); } } while (0); mIsGLES2 = aIsGLES2; } PRBool InitWithPrefix(const char *prefix, PRBool trygl); void InitExtensions(); PRBool IsExtensionSupported(const char *extension); virtual already_AddRefed CreateBasicTextureImage(GLuint aTexture, const nsIntSize& aSize, GLenum aWrapMode, TextureImage::ContentType aContentType, GLContext* aContext) { nsRefPtr teximage( new BasicTextureImage(aTexture, aSize, aWrapMode, aContentType, aContext)); return teximage.forget(); } protected: nsTArray mViewportStack; nsTArray mScissorStack; GLint mMaxTextureSize; public: #line 956 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContext.h" #line 957 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContext.h" protected: GLenum mGLError; public: void BeforeGLCall(const char* glFunction) { if (mDebugMode) { // since the static member variable sCurrentGLContext is not thread-local as it should, // we have to assert that we're in the main thread. Note that sCurrentGLContext is only used // for the OpenGL debug mode. if (!NS_IsMainThread_P()) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "OpenGL call from non-main thread. While this is fine in itself, " "the OpenGL debug mode, which is currently enabled, doesn't support this. " "It needs to be patched by making GLContext::sCurrentGLContext be thread-local.\n", "Error", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContext.h", 970); #line 971 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContext.h" NS_DebugBreak_P(NS_DEBUG_ABORT, 0L, 0L, "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContext.h", 971); } if (mDebugMode & DebugTrace) printf_stderr("[gl:%p] > %s\n", this, glFunction); if (this != sCurrentGLContext) { printf_stderr("Fatal: %s called on non-current context %p. " "The current context for this thread is %p.\n", glFunction, this, sCurrentGLContext); NS_DebugBreak_P(NS_DEBUG_ABORT, 0L, 0L, "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContext.h", 979); } } } void AfterGLCall(const char* glFunction) { if (mDebugMode) { // calling fFinish() immediately after every GL call makes sure that if this GL command crashes, // the stack trace will actually point to it. Otherwise, OpenGL being an asynchronous API, stack traces // tend to be meaningless mSymbols.fFinish(); mGLError = mSymbols.fGetError(); if (mDebugMode & DebugTrace) printf_stderr("[gl:%p] < %s [0x%04x]\n", this, glFunction, mGLError); if (mGLError != 0) { printf_stderr("GL ERROR: %s generated GL error 0x%x.", glFunction, mGLError); if (mDebugMode & DebugAbortOnError) NS_DebugBreak_P(NS_DEBUG_ABORT, 0L, 0L, "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContext.h", 996); } } } #line 1015 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContext.h" /*** In GL debug mode, we completely override glGetError ***/ GLenum fGetError() { // debug mode ends up eating the error in AFTER_GL_CALL if (mDebugMode) { GLenum err = mGLError; mGLError = 0; return err; } #line 1027 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContext.h" return mSymbols.fGetError(); } /*** Scissor functions ***/ protected: // only does the glScissor call, no ScissorRect business void raw_fScissor(GLint x, GLint y, GLsizei width, GLsizei height) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fScissor(x, y, width, height); do { AfterGLCall( __FUNCTION__ ); } while (0); } public: // but let GL-using code use that instead, updating the ScissorRect void fScissor(GLint x, GLint y, GLsizei width, GLsizei height) { ScissorRect().SetRect(x, y, width, height); raw_fScissor(x, y, width, height); } nsIntRect& ScissorRect() { return mScissorStack[mScissorStack.Length()-1]; } void PushScissorRect() { nsIntRect copy(ScissorRect()); mScissorStack.AppendElement(copy); } void PushScissorRect(const nsIntRect& aRect) { mScissorStack.AppendElement(aRect); raw_fScissor(aRect.x, aRect.y, aRect.width, aRect.height); } void PopScissorRect() { if (mScissorStack.Length() < 2) { NS_DebugBreak_P(NS_DEBUG_WARNING, "PopScissorRect with Length < 2!", 0L, "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContext.h", 1067); return; } nsIntRect thisRect = ScissorRect(); mScissorStack.TruncateLength(mScissorStack.Length() - 1); if (thisRect != ScissorRect()) { raw_fScissor(ScissorRect().x, ScissorRect().y, ScissorRect().width, ScissorRect().height); } } /*** Viewport functions ***/ protected: // only does the glViewport call, no ViewportRect business void raw_fViewport(GLint x, GLint y, GLsizei width, GLsizei height) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fViewport(x, y, width, height); do { AfterGLCall( __FUNCTION__ ); } while (0); } public: void fViewport(GLint x, GLint y, GLsizei width, GLsizei height) { ViewportRect().SetRect(x, y, width, height); raw_fViewport(x, y, width, height); } nsIntRect& ViewportRect() { return mViewportStack[mViewportStack.Length()-1]; } void PushViewportRect() { nsIntRect copy(ViewportRect()); mViewportStack.AppendElement(copy); } void PushViewportRect(const nsIntRect& aRect) { mViewportStack.AppendElement(aRect); raw_fViewport(aRect.x, aRect.y, aRect.width, aRect.height); } void PopViewportRect() { if (mViewportStack.Length() < 2) { NS_DebugBreak_P(NS_DEBUG_WARNING, "PopViewportRect with Length < 2!", 0L, "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContext.h", 1113); return; } nsIntRect thisRect = ViewportRect(); mViewportStack.TruncateLength(mViewportStack.Length() - 1); if (thisRect != ViewportRect()) { raw_fViewport(ViewportRect().x, ViewportRect().y, ViewportRect().width, ViewportRect().height); } } /*** other GL functions ***/ void fActiveTexture(GLenum texture) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fActiveTexture(texture); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fAttachShader(GLuint program, GLuint shader) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fAttachShader(program, shader); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fBindAttribLocation(GLuint program, GLuint index, const GLchar* name) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fBindAttribLocation(program, index, name); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fBindBuffer(GLenum target, GLuint buffer) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fBindBuffer(target, buffer); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fBindTexture(GLenum target, GLuint texture) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fBindTexture(target, texture); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fBlendColor(red, green, blue, alpha); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fBlendEquation(GLenum mode) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fBlendEquation(mode); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fBlendEquationSeparate(modeRGB, modeAlpha); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fBlendFunc(GLenum sfactor, GLenum dfactor) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fBlendFunc(sfactor, dfactor); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fBlendFuncSeparate(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fBlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fBufferData(GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fBufferData(target, size, data, usage); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fBufferSubData(target, offset, size, data); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fClear(GLbitfield mask) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fClear(mask); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fClearColor(GLclampf r, GLclampf g, GLclampf b, GLclampf a) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fClearColor(r, g, b, a); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fClearStencil(GLint s) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fClearStencil(s); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fColorMask(realGLboolean red, realGLboolean green, realGLboolean blue, realGLboolean alpha) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fColorMask(red, green, blue, alpha); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fCullFace(GLenum mode) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fCullFace(mode); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fDetachShader(GLuint program, GLuint shader) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fDetachShader(program, shader); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fDepthFunc(GLenum func) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fDepthFunc(func); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fDepthMask(realGLboolean flag) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fDepthMask(flag); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fDisable(GLenum capability) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fDisable(capability); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fDisableVertexAttribArray(GLuint index) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fDisableVertexAttribArray(index); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fDrawArrays(GLenum mode, GLint first, GLsizei count) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fDrawArrays(mode, first, count); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fDrawElements(mode, count, type, indices); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fEnable(GLenum capability) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fEnable(capability); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fEnableVertexAttribArray(GLuint index) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fEnableVertexAttribArray(index); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fFinish() { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fFinish(); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fFlush() { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fFlush(); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fFrontFace(GLenum face) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fFrontFace(face); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fGetActiveAttrib(GLuint program, GLuint index, GLsizei maxLength, GLsizei* length, GLint* size, GLenum* type, GLchar* name) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fGetActiveAttrib(program, index, maxLength, length, size, type, name); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fGetActiveUniform(GLuint program, GLuint index, GLsizei maxLength, GLsizei* length, GLint* size, GLenum* type, GLchar* name) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fGetActiveUniform(program, index, maxLength, length, size, type, name); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fGetAttachedShaders(GLuint program, GLsizei maxCount, GLsizei* count, GLuint* shaders) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fGetAttachedShaders(program, maxCount, count, shaders); do { AfterGLCall( __FUNCTION__ ); } while (0); } GLint fGetAttribLocation (GLuint program, const GLchar* name) { do { BeforeGLCall( __FUNCTION__ ); } while (0); GLint retval = mSymbols.fGetAttribLocation(program, name); do { AfterGLCall( __FUNCTION__ ); } while (0); return retval; } void fGetIntegerv(GLenum pname, GLint *params) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fGetIntegerv(pname, params); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fGetFloatv(GLenum pname, GLfloat *params) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fGetFloatv(pname, params); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fGetBooleanv(GLenum pname, realGLboolean *params) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fGetBooleanv(pname, params); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fGetBufferParameteriv(GLenum target, GLenum pname, GLint* params) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fGetBufferParameteriv(target, pname, params); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fGenerateMipmap(GLenum target) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fGenerateMipmap(target); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fGetProgramiv(GLuint program, GLenum pname, GLint* param) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fGetProgramiv(program, pname, param); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fGetProgramInfoLog(GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fGetProgramInfoLog(program, bufSize, length, infoLog); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fTexParameteri(GLenum target, GLenum pname, GLint param) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fTexParameteri(target, pname, param); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fTexParameterf(GLenum target, GLenum pname, GLfloat param) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fTexParameterf(target, pname, param); do { AfterGLCall( __FUNCTION__ ); } while (0); } const GLubyte* fGetString(GLenum name) { do { BeforeGLCall( __FUNCTION__ ); } while (0); const GLubyte *result = mSymbols.fGetString(name); do { AfterGLCall( __FUNCTION__ ); } while (0); return result; } void fGetTexParameterfv(GLenum target, GLenum pname, const GLfloat *params) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fGetTexParameterfv(target, pname, params); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fGetTexParameteriv(GLenum target, GLenum pname, const GLint *params) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fGetTexParameteriv(target, pname, params); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fGetUniformfv(GLuint program, GLint location, GLfloat* params) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fGetUniformfv(program, location, params); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fGetUniformiv(GLuint program, GLint location, GLint* params) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fGetUniformiv(program, location, params); do { AfterGLCall( __FUNCTION__ ); } while (0); } GLint fGetUniformLocation (GLint programObj, const GLchar* name) { do { BeforeGLCall( __FUNCTION__ ); } while (0); GLint retval = mSymbols.fGetUniformLocation(programObj, name); do { AfterGLCall( __FUNCTION__ ); } while (0); return retval; } void fGetVertexAttribfv(GLuint index, GLenum pname, GLfloat* retval) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fGetVertexAttribfv(index, pname, retval); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fGetVertexAttribiv(GLuint index, GLenum pname, GLint* retval) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fGetVertexAttribiv(index, pname, retval); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fHint(GLenum target, GLenum mode) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fHint(target, mode); do { AfterGLCall( __FUNCTION__ ); } while (0); } realGLboolean fIsBuffer(GLuint buffer) { do { BeforeGLCall( __FUNCTION__ ); } while (0); realGLboolean retval = mSymbols.fIsBuffer(buffer); do { AfterGLCall( __FUNCTION__ ); } while (0); return retval; } realGLboolean fIsEnabled (GLenum capability) { do { BeforeGLCall( __FUNCTION__ ); } while (0); realGLboolean retval = mSymbols.fIsEnabled(capability); do { AfterGLCall( __FUNCTION__ ); } while (0); return retval; } realGLboolean fIsProgram (GLuint program) { do { BeforeGLCall( __FUNCTION__ ); } while (0); realGLboolean retval = mSymbols.fIsProgram(program); do { AfterGLCall( __FUNCTION__ ); } while (0); return retval; } realGLboolean fIsShader (GLuint shader) { do { BeforeGLCall( __FUNCTION__ ); } while (0); realGLboolean retval = mSymbols.fIsShader(shader); do { AfterGLCall( __FUNCTION__ ); } while (0); return retval; } realGLboolean fIsTexture (GLuint texture) { do { BeforeGLCall( __FUNCTION__ ); } while (0); realGLboolean retval = mSymbols.fIsTexture(texture); do { AfterGLCall( __FUNCTION__ ); } while (0); return retval; } void fLineWidth(GLfloat width) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fLineWidth(width); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fLinkProgram(GLuint program) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fLinkProgram(program); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fPixelStorei(GLenum pname, GLint param) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fPixelStorei(pname, param); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fPolygonOffset(GLfloat factor, GLfloat bias) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fPolygonOffset(factor, bias); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fReadBuffer(GLenum mode) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fReadBuffer(mode); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fReadPixels(x, y, width, height, format, type, pixels); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fSampleCoverage(GLclampf value, realGLboolean invert) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fSampleCoverage(value, invert); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fStencilFunc(GLenum func, GLint ref, GLuint mask) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fStencilFunc(func, ref, mask); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fStencilFuncSeparate(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fStencilFuncSeparate(frontfunc, backfunc, ref, mask); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fStencilMask(GLuint mask) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fStencilMask(mask); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fStencilMaskSeparate(GLenum face, GLuint mask) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fStencilMaskSeparate(face, mask); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fStencilOp(GLenum fail, GLenum zfail, GLenum zpass) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fStencilOp(fail, zfail, zpass); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fStencilOpSeparate(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fStencilOpSeparate(face, sfail, dpfail, dppass); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fTexImage2D(target, level, internalformat, width, height, border, format, type, pixels); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fUniform1f(GLint location, GLfloat v0) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fUniform1f(location, v0); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fUniform1fv(GLint location, GLsizei count, const GLfloat* value) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fUniform1fv(location, count, value); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fUniform1i(GLint location, GLint v0) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fUniform1i(location, v0); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fUniform1iv(GLint location, GLsizei count, const GLint* value) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fUniform1iv(location, count, value); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fUniform2f(GLint location, GLfloat v0, GLfloat v1) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fUniform2f(location, v0, v1); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fUniform2fv(GLint location, GLsizei count, const GLfloat* value) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fUniform2fv(location, count, value); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fUniform2i(GLint location, GLint v0, GLint v1) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fUniform2i(location, v0, v1); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fUniform2iv(GLint location, GLsizei count, const GLint* value) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fUniform2iv(location, count, value); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fUniform3f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fUniform3f(location, v0, v1, v2); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fUniform3fv(GLint location, GLsizei count, const GLfloat* value) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fUniform3fv(location, count, value); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fUniform3i(GLint location, GLint v0, GLint v1, GLint v2) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fUniform3i(location, v0, v1, v2); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fUniform3iv(GLint location, GLsizei count, const GLint* value) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fUniform3iv(location, count, value); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fUniform4f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fUniform4f(location, v0, v1, v2, v3); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fUniform4fv(GLint location, GLsizei count, const GLfloat* value) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fUniform4fv(location, count, value); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fUniform4i(GLint location, GLint v0, GLint v1, GLint v2, GLint v3) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fUniform4i(location, v0, v1, v2, v3); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fUniform4iv(GLint location, GLsizei count, const GLint* value) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fUniform4iv(location, count, value); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fUniformMatrix2fv(GLint location, GLsizei count, realGLboolean transpose, const GLfloat* value) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fUniformMatrix2fv(location, count, transpose, value); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fUniformMatrix3fv(GLint location, GLsizei count, realGLboolean transpose, const GLfloat* value) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fUniformMatrix3fv(location, count, transpose, value); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fUniformMatrix4fv(GLint location, GLsizei count, realGLboolean transpose, const GLfloat* value) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fUniformMatrix4fv(location, count, transpose, value); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fUseProgram(GLuint program) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fUseProgram(program); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fValidateProgram(GLuint program) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fValidateProgram(program); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fVertexAttribPointer(GLuint index, GLint size, GLenum type, realGLboolean normalized, GLsizei stride, const GLvoid* pointer) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fVertexAttribPointer(index, size, type, normalized, stride, pointer); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fVertexAttrib1f(GLuint index, GLfloat x) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fVertexAttrib1f(index, x); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fVertexAttrib2f(GLuint index, GLfloat x, GLfloat y) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fVertexAttrib2f(index, x, y); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fVertexAttrib3f(GLuint index, GLfloat x, GLfloat y, GLfloat z) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fVertexAttrib3f(index, x, y, z); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fVertexAttrib4f(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fVertexAttrib4f(index, x, y, z, w); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fVertexAttrib1fv(GLuint index, const GLfloat* v) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fVertexAttrib1fv(index, v); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fVertexAttrib2fv(GLuint index, const GLfloat* v) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fVertexAttrib2fv(index, v); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fVertexAttrib3fv(GLuint index, const GLfloat* v) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fVertexAttrib3fv(index, v); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fVertexAttrib4fv(GLuint index, const GLfloat* v) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fVertexAttrib4fv(index, v); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fCompileShader(GLuint shader) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fCompileShader(shader); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fCopyTexImage2D(target, level, internalformat, x, y, width, height, border); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fGetShaderiv(GLuint shader, GLenum pname, GLint* param) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fGetShaderiv(shader, pname, param); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fGetShaderInfoLog(GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fGetShaderInfoLog(shader, bufSize, length, infoLog); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fGetShaderSource(GLint obj, GLsizei maxLength, GLsizei* length, GLchar* source) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fGetShaderSource(obj, maxLength, length, source); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fShaderSource(GLuint shader, GLsizei count, const GLchar** strings, const GLint* lengths) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fShaderSource(shader, count, strings, lengths); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fBindFramebuffer(GLenum target, GLuint framebuffer) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fBindFramebuffer(target, framebuffer); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fBindRenderbuffer(GLenum target, GLuint renderbuffer) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fBindRenderbuffer(target, renderbuffer); do { AfterGLCall( __FUNCTION__ ); } while (0); } GLenum fCheckFramebufferStatus (GLenum target) { do { BeforeGLCall( __FUNCTION__ ); } while (0); GLenum retval = mSymbols.fCheckFramebufferStatus(target); do { AfterGLCall( __FUNCTION__ ); } while (0); return retval; } void fFramebufferRenderbuffer(GLenum target, GLenum attachmentPoint, GLenum renderbufferTarget, GLuint renderbuffer) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fFramebufferRenderbuffer(target, attachmentPoint, renderbufferTarget, renderbuffer); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fFramebufferTexture2D(GLenum target, GLenum attachmentPoint, GLenum textureTarget, GLuint texture, GLint level) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fFramebufferTexture2D(target, attachmentPoint, textureTarget, texture, level); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint* value) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fGetFramebufferAttachmentParameteriv(target, attachment, pname, value); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint* value) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fGetRenderbufferParameteriv(target, pname, value); do { AfterGLCall( __FUNCTION__ ); } while (0); } realGLboolean fIsFramebuffer (GLuint framebuffer) { do { BeforeGLCall( __FUNCTION__ ); } while (0); realGLboolean retval = mSymbols.fIsFramebuffer(framebuffer); do { AfterGLCall( __FUNCTION__ ); } while (0); return retval; } realGLboolean fIsRenderbuffer (GLuint renderbuffer) { do { BeforeGLCall( __FUNCTION__ ); } while (0); realGLboolean retval = mSymbols.fIsRenderbuffer(renderbuffer); do { AfterGLCall( __FUNCTION__ ); } while (0); return retval; } void fRenderbufferStorage(GLenum target, GLenum internalFormat, GLsizei width, GLsizei height) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fRenderbufferStorage(target, internalFormat, width, height); do { AfterGLCall( __FUNCTION__ ); } while (0); } void fDepthRange(GLclampf a, GLclampf b) { do { BeforeGLCall( __FUNCTION__ ); } while (0); if (mIsGLES2) { mSymbols.fDepthRangef(a, b); } else { mSymbols.fDepthRange(a, b); } do { AfterGLCall( __FUNCTION__ ); } while (0); } void fClearDepth(GLclampf v) { do { BeforeGLCall( __FUNCTION__ ); } while (0); if (mIsGLES2) { mSymbols.fClearDepthf(v); } else { mSymbols.fClearDepth(v); } do { AfterGLCall( __FUNCTION__ ); } while (0); } void* fMapBuffer(GLenum target, GLenum access) { do { BeforeGLCall( __FUNCTION__ ); } while (0); void *ret = mSymbols.fMapBuffer(target, access); do { AfterGLCall( __FUNCTION__ ); } while (0); return ret; } realGLboolean fUnmapBuffer(GLenum target) { do { BeforeGLCall( __FUNCTION__ ); } while (0); realGLboolean ret = mSymbols.fUnmapBuffer(target); do { AfterGLCall( __FUNCTION__ ); } while (0); return ret; } GLContext *TrackingContext() { GLContext *tip = this; while (tip->mSharedContext) tip = tip->mSharedContext; return tip; } GLuint __stdcall fCreateProgram() { do { BeforeGLCall( __FUNCTION__ ); } while (0); GLuint ret = mSymbols.fCreateProgram(); do { AfterGLCall( __FUNCTION__ ); } while (0); TrackingContext()->CreatedProgram(this, ret); return ret; } GLuint __stdcall fCreateShader(GLenum t) { do { BeforeGLCall( __FUNCTION__ ); } while (0); GLuint ret = mSymbols.fCreateShader(t); do { AfterGLCall( __FUNCTION__ ); } while (0); TrackingContext()->CreatedShader(this, ret); return ret; } void __stdcall fGenBuffers(GLsizei n, GLuint* names) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fGenBuffers(n, names); do { AfterGLCall( __FUNCTION__ ); } while (0); TrackingContext()->CreatedBuffers(this, n, names); } void __stdcall fGenTextures(GLsizei n, GLuint* names) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fGenTextures(n, names); do { AfterGLCall( __FUNCTION__ ); } while (0); TrackingContext()->CreatedTextures(this, n, names); } void __stdcall fGenFramebuffers(GLsizei n, GLuint* names) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fGenFramebuffers(n, names); do { AfterGLCall( __FUNCTION__ ); } while (0); TrackingContext()->CreatedFramebuffers(this, n, names); } void __stdcall fGenRenderbuffers(GLsizei n, GLuint* names) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fGenRenderbuffers(n, names); do { AfterGLCall( __FUNCTION__ ); } while (0); TrackingContext()->CreatedRenderbuffers(this, n, names); } void __stdcall fDeleteProgram(GLuint program) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fDeleteProgram(program); do { AfterGLCall( __FUNCTION__ ); } while (0); TrackingContext()->DeletedProgram(this, program); } void __stdcall fDeleteShader(GLuint shader) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fDeleteShader(shader); do { AfterGLCall( __FUNCTION__ ); } while (0); TrackingContext()->DeletedShader(this, shader); } void __stdcall fDeleteBuffers(GLsizei n, GLuint *names) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fDeleteBuffers(n, names); do { AfterGLCall( __FUNCTION__ ); } while (0); TrackingContext()->DeletedBuffers(this, n, names); } void __stdcall fDeleteTextures(GLsizei n, GLuint *names) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fDeleteTextures(n, names); do { AfterGLCall( __FUNCTION__ ); } while (0); TrackingContext()->DeletedTextures(this, n, names); } void __stdcall fDeleteFramebuffers(GLsizei n, GLuint *names) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fDeleteFramebuffers(n, names); do { AfterGLCall( __FUNCTION__ ); } while (0); TrackingContext()->DeletedFramebuffers(this, n, names); } void __stdcall fDeleteRenderbuffers(GLsizei n, GLuint *names) { do { BeforeGLCall( __FUNCTION__ ); } while (0); mSymbols.fDeleteRenderbuffers(n, names); do { AfterGLCall( __FUNCTION__ ); } while (0); TrackingContext()->DeletedRenderbuffers(this, n, names); } void __declspec(dllexport) CreatedProgram(GLContext *aOrigin, GLuint aName); void __declspec(dllexport) CreatedShader(GLContext *aOrigin, GLuint aName); void __declspec(dllexport) CreatedBuffers(GLContext *aOrigin, GLsizei aCount, GLuint *aNames); void __declspec(dllexport) CreatedTextures(GLContext *aOrigin, GLsizei aCount, GLuint *aNames); void __declspec(dllexport) CreatedFramebuffers(GLContext *aOrigin, GLsizei aCount, GLuint *aNames); void __declspec(dllexport) CreatedRenderbuffers(GLContext *aOrigin, GLsizei aCount, GLuint *aNames); void __declspec(dllexport) DeletedProgram(GLContext *aOrigin, GLuint aName); void __declspec(dllexport) DeletedShader(GLContext *aOrigin, GLuint aName); void __declspec(dllexport) DeletedBuffers(GLContext *aOrigin, GLsizei aCount, GLuint *aNames); void __declspec(dllexport) DeletedTextures(GLContext *aOrigin, GLsizei aCount, GLuint *aNames); void __declspec(dllexport) DeletedFramebuffers(GLContext *aOrigin, GLsizei aCount, GLuint *aNames); void __declspec(dllexport) DeletedRenderbuffers(GLContext *aOrigin, GLsizei aCount, GLuint *aNames); void SharedContextDestroyed(GLContext *aChild); void ReportOutstandingNames(); struct NamedResource { NamedResource() : origin(0L), name(0), originDeleted(0) { } NamedResource(GLContext *aOrigin, GLuint aName) : origin(aOrigin), name(aName), originDeleted(0) { } GLContext *origin; GLuint name; PRBool originDeleted; // for sorting bool operator<(const NamedResource& aOther) const { if (intptr_t(origin) < intptr_t(aOther.origin)) return true; if (name < aOther.name) return true; return false; } bool operator==(const NamedResource& aOther) const { return origin == aOther.origin && name == aOther.name && originDeleted == aOther.originDeleted; } }; nsTArray mTrackedPrograms; nsTArray mTrackedShaders; nsTArray mTrackedTextures; nsTArray mTrackedFramebuffers; nsTArray mTrackedRenderbuffers; nsTArray mTrackedBuffers; #line 2074 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContext.h" }; inline void GLDebugPrintError(GLContext* aCx, const char* const aFile, int aLine) { aCx->MakeCurrent(); GLenum err = aCx->fGetError(); if (err) { printf_stderr("GL ERROR: 0x%04x at %s:%d\n", err, aFile, aLine); } } #line 2092 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContext.h" inline PRBool DoesVendorStringMatch(const char* aVendorString, const char *aWantedVendor) { const char *occurrence = strstr(aVendorString, aWantedVendor); // aWantedVendor not found if (!occurrence) return 0; // aWantedVendor preceded by alpha character if (occurrence != aVendorString && isalpha(*(occurrence-1))) return 0; // aWantedVendor followed by alpha character const char *afterOccurrence = occurrence + strlen(aWantedVendor); if (isalpha(*afterOccurrence)) return 0; return 1; } } /* namespace gl */ } /* namespace mozilla */ #line 2118 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\GLContext.h" #line 44 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\CanvasLayerD3D9.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxASurface.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 45 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\CanvasLayerD3D9.h" namespace mozilla { namespace layers { class __declspec(dllexport) CanvasLayerD3D9 : public CanvasLayer, public LayerD3D9 { public: CanvasLayerD3D9(LayerManagerD3D9 *aManager) : CanvasLayer(aManager, 0), LayerD3D9(aManager), mDataIsPremultiplied(0), mNeedsYFlip(0) { mImplData = static_cast(this); aManager->deviceManager()->mLayersWithResources.AppendElement(this); } ~CanvasLayerD3D9(); // CanvasLayer implementation virtual void Initialize(const Data& aData); virtual void Updated(const nsIntRect& aRect); // LayerD3D9 implementation virtual Layer* GetLayer(); virtual void RenderLayer(); virtual void CleanResources(); virtual void LayerManagerDestroyed(); void CreateTexture(); protected: typedef mozilla::gl::GLContext GLContext; nsRefPtr mSurface; nsRefPtr mGLContext; nsRefPtr mTexture; PRUint32 mCanvasFramebuffer; // Indicates whether our texture was obtained through D2D interop. bool mIsInteropTexture; PRPackedBool mDataIsPremultiplied; PRPackedBool mNeedsYFlip; }; } /* layers */ } /* mozilla */ #line 97 "c:\\build\\hg.instantbird.org\\mozilla\\gfx\\layers\\d3d9\\CanvasLayerD3D9.h" #line 45 "c:/build/hg.instantbird.org/mozilla/gfx/layers/d3d9/LayerManagerD3D9.cpp" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxWindowsPlatform.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla Foundation code. * * The Initial Developer of the Original Code is Mozilla Foundation. * Portions created by the Initial Developer are Copyright (C) 2006 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * Masayuki Nakano * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 45 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxWindowsPlatform.h" /** * XXX to get CAIRO_HAS_D2D_SURFACE and * CAIRO_HAS_DWRITE_FONT */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\cairo\\cairo.h" /* cairo - a vector graphics library with display and print output * * Copyright © 2002 University of Southern California * Copyright © 2005 Red Hat, Inc. * * This library is free software; you can redistribute it and/or * modify it either under the terms of the GNU Lesser General Public * License version 2.1 as published by the Free Software Foundation * (the "LGPL") or, at your option, under the terms of the Mozilla * Public License Version 1.1 (the "MPL"). If you do not alter this * notice, a recipient may use your version of this file under either * the MPL or the LGPL. * * You should have received a copy of the LGPL along with this library * in the file COPYING-LGPL-2.1; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * You should have received a copy of the MPL along with this library * in the file COPYING-MPL-1.1 * * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY * OF ANY KIND, either express or implied. See the LGPL or the MPL for * the specific language governing rights and limitations. * * The Original Code is the cairo graphics library. * * The Initial Developer of the Original Code is University of Southern * California. * * Contributor(s): * Carl D. Worth */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\cairo\\cairo-version.h" /* This is a dummy file. * The actual version info is in toplevel cairo-version.h. * The purpose of this file is to make most of the source files NOT depend * on the real cairo-version.h, and as a result, changing library version * would not cause a complete rebuild of all object files (just a relink). * This is useful when bisecting. */ #line 15 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\cairo\\cairo-version.h" #line 17 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\cairo\\cairo-version.h" #line 42 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\cairo\\cairo.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\cairo\\cairo-features.h" /* cairo - a vector graphics library with display and print output * * Copyright © 2003 University of Southern California * * This library is free software; you can redistribute it and/or * modify it either under the terms of the GNU Lesser General Public * License version 2.1 as published by the Free Software Foundation * (the "LGPL") or, at your option, under the terms of the Mozilla * Public License Version 1.1 (the "MPL"). If you do not alter this * notice, a recipient may use your version of this file under either * the MPL or the LGPL. * * You should have received a copy of the LGPL along with this library * in the file COPYING-LGPL-2.1; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * You should have received a copy of the MPL along with this library * in the file COPYING-MPL-1.1 * * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY * OF ANY KIND, either express or implied. See the LGPL or the MPL for * the specific language governing rights and limitations. * * The Original Code is the cairo graphics library. * * The Initial Developer of the Original Code is University of Southern * California. * * Contributor(s): * Carl D. Worth */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\cairo\\cairo-platform.h" /* cairo - a vector graphics library with display and print output * * Copyright Â© 2005 Mozilla Foundation * * This library is free software; you can redistribute it and/or * modify it either under the terms of the GNU Lesser General Public * License version 2.1 as published by the Free Software Foundation * (the "LGPL") or, at your option, under the terms of the Mozilla * Public License Version 1.1 (the "MPL"). If you do not alter this * notice, a recipient may use your version of this file under either * the MPL or the LGPL. * * You should have received a copy of the LGPL along with this library * in the file COPYING-LGPL-2.1; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * You should have received a copy of the MPL along with this library * in the file COPYING-MPL-1.1 * * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY * OF ANY KIND, either express or implied. See the LGPL or the MPL for * the specific language governing rights and limitations. * * The Original Code is the cairo graphics library. * * The Initial Developer of the Original Code is University of Southern * California. * * Contributor(s): * Stuart Parmenter */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prcpucfg.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 41 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\cairo\\cairo-platform.h" #line 49 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\cairo\\cairo-platform.h" #line 51 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\cairo\\cairo-platform.h" /* In libxul builds we don't ever want to export cairo symbols */ #line 74 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\cairo\\cairo-platform.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\cairo\\cairo-rename.h" #line 456 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\cairo\\cairo-rename.h" #line 81 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\cairo\\cairo-platform.h" #line 82 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\cairo\\cairo-platform.h" #line 87 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\cairo\\cairo-platform.h" #line 91 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\cairo\\cairo-platform.h" #line 41 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\cairo\\cairo-features.h" #line 49 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\cairo\\cairo-features.h" #line 98 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\cairo\\cairo-features.h" #line 43 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\cairo\\cairo.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\cairo\\cairo-deprecated.h" /* cairo - a vector graphics library with display and print output * * Copyright © 2006 Red Hat, Inc. * * This library is free software; you can redistribute it and/or * modify it either under the terms of the GNU Lesser General Public * License version 2.1 as published by the Free Software Foundation * (the "LGPL") or, at your option, under the terms of the Mozilla * Public License Version 1.1 (the "MPL"). If you do not alter this * notice, a recipient may use your version of this file under either * the MPL or the LGPL. * * You should have received a copy of the LGPL along with this library * in the file COPYING-LGPL-2.1; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * You should have received a copy of the MPL along with this library * in the file COPYING-MPL-1.1 * * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY * OF ANY KIND, either express or implied. See the LGPL or the MPL for * the specific language governing rights and limitations. * * The Original Code is the cairo graphics library. * * The Initial Developer of the Original Code is Red Hat, Inc. * * Contributor(s): * Carl D. Worth */ /* The %CAIRO_FORMAT_RGB16_565 value was added in cairo 1.2.0 as part * of fixing cairo's xlib backend to work with X servers advertising a * 16-bit, 565 visual. But as it turned out, adding this format to * #cairo_format_t was not necessary, and was a mistake, (cairo's xlib * backend can work fine with 16-bit visuals in the same way it works * with BGR visuals without any BGR formats in * #cairo_format_t). * * Additionally, the support for the RGB16_565 format was never * completely implemented. So while this format value is currently * deprecated, it may eventually acquire complete support in the future. */ /* #define CAIRO_FORMAT_RGB16_565 4 */ /* Obsolete functions. These definitions exist to coerce the compiler * into providing a little bit of guidance with its error * messages. The idea is to help users port their old code without * having to dig through lots of documentation. * * The first set of REPLACED_BY functions is for functions whose names * have just been changed. So fixing these up is mechanical, (and * automated by means of the cairo/util/cairo-api-update script. * * The second set of DEPRECATED_BY functions is for functions where * the replacement is used in a different way, (ie. different * arguments, multiple functions instead of one, etc). Fixing these up * will require a bit more work on the user's part, (and hopefully we * can get cairo-api-update to find these and print some guiding * information). */ #line 139 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\cairo\\cairo-deprecated.h" #line 44 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\cairo\\cairo.h" #line 52 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\cairo\\cairo.h" extern "C" { extern int _moz_cairo_version (void); extern const char* _moz_cairo_version_string (void); /** * cairo_bool_t: * * #cairo_bool_t is used for boolean values. Returns of type * #cairo_bool_t will always be either 0 or 1, but testing against * these values explicitly is not encouraged; just use the * value as a boolean condition. * * * if (cairo_in_stroke (cr, x, y)) { * /* do something */ * } * **/ typedef int cairo_bool_t; /** * cairo_t: * * A #cairo_t contains the current state of the rendering device, * including coordinates of yet to be drawn shapes. * * Cairo contexts, as #cairo_t objects are named, are central to * cairo and all drawing with cairo is always done to a #cairo_t * object. * * Memory management of #cairo_t is done with * cairo_reference() and cairo_destroy(). **/ typedef struct _cairo cairo_t; /** * cairo_surface_t: * * A #cairo_surface_t represents an image, either as the destination * of a drawing operation or as source when drawing onto another * surface. To draw to a #cairo_surface_t, create a cairo context * with the surface as the target, using cairo_create(). * * There are different subtypes of #cairo_surface_t for * different drawing backends; for example, cairo_image_surface_create() * creates a bitmap image in memory. * The type of a surface can be queried with cairo_surface_get_type(). * * The initial contents of a surface after creation depend upon the manner * of its creation. If cairo creates the surface and backing storage for * the user, it will be initially cleared; for example, * cairo_image_surface_create() and cairo_surface_create_similar(). * Alternatively, if the user passes in a reference to some backing storage * and asks cairo to wrap that in a #cairo_surface_t, then the contents are * not modified; for example, cairo_image_surface_create_for_data() and * cairo_xlib_surface_create(). * * Memory management of #cairo_surface_t is done with * cairo_surface_reference() and cairo_surface_destroy(). **/ typedef struct _cairo_surface cairo_surface_t; /** * cairo_matrix_t: * @xx: xx component of the affine transformation * @yx: yx component of the affine transformation * @xy: xy component of the affine transformation * @yy: yy component of the affine transformation * @x0: X translation component of the affine transformation * @y0: Y translation component of the affine transformation * * A #cairo_matrix_t holds an affine transformation, such as a scale, * rotation, shear, or a combination of those. The transformation of * a point (x, y) is given by: * * x_new = xx * x + xy * y + x0; * y_new = yx * x + yy * y + y0; * **/ typedef struct _cairo_matrix { double xx; double yx; double xy; double yy; double x0; double y0; } cairo_matrix_t; /** * cairo_pattern_t: * * A #cairo_pattern_t represents a source when drawing onto a * surface. There are different subtypes of #cairo_pattern_t, * for different types of sources; for example, * cairo_pattern_create_rgb() creates a pattern for a solid * opaque color. * * Other than various cairo_pattern_create_type() * functions, some of the pattern types can be implicitly created * using various cairo_set_source_type() functions; * for example cairo_set_source_rgb(). * * The type of a pattern can be queried with cairo_pattern_get_type(). * * Memory management of #cairo_pattern_t is done with * cairo_pattern_reference() and cairo_pattern_destroy(). **/ typedef struct _cairo_pattern cairo_pattern_t; /** * cairo_destroy_func_t: * @data: The data element being destroyed. * * #cairo_destroy_func_t the type of function which is called when a * data element is destroyed. It is passed the pointer to the data * element and should free any memory and resources allocated for it. **/ typedef void (*cairo_destroy_func_t) (void *data); /** * cairo_user_data_key_t: * @unused: not used; ignore. * * #cairo_user_data_key_t is used for attaching user data to cairo * data structures. The actual contents of the struct is never used, * and there is no need to initialize the object; only the unique * address of a #cairo_data_key_t object is used. Typically, you * would just use the address of a static #cairo_data_key_t object. **/ typedef struct _cairo_user_data_key { int unused; } cairo_user_data_key_t; /** * cairo_status_t: * @CAIRO_STATUS_SUCCESS: no error has occurred * @CAIRO_STATUS_NO_MEMORY: out of memory * @CAIRO_STATUS_INVALID_RESTORE: cairo_restore() called without matching cairo_save() * @CAIRO_STATUS_INVALID_POP_GROUP: no saved group to pop, i.e. cairo_pop_group() without matching cairo_push_group() * @CAIRO_STATUS_NO_CURRENT_POINT: no current point defined * @CAIRO_STATUS_INVALID_MATRIX: invalid matrix (not invertible) * @CAIRO_STATUS_INVALID_STATUS: invalid value for an input #cairo_status_t * @CAIRO_STATUS_NULL_POINTER: %NULL pointer * @CAIRO_STATUS_INVALID_STRING: input string not valid UTF-8 * @CAIRO_STATUS_INVALID_PATH_DATA: input path data not valid * @CAIRO_STATUS_READ_ERROR: error while reading from input stream * @CAIRO_STATUS_WRITE_ERROR: error while writing to output stream * @CAIRO_STATUS_SURFACE_FINISHED: target surface has been finished * @CAIRO_STATUS_SURFACE_TYPE_MISMATCH: the surface type is not appropriate for the operation * @CAIRO_STATUS_PATTERN_TYPE_MISMATCH: the pattern type is not appropriate for the operation * @CAIRO_STATUS_INVALID_CONTENT: invalid value for an input #cairo_content_t * @CAIRO_STATUS_INVALID_FORMAT: invalid value for an input #cairo_format_t * @CAIRO_STATUS_INVALID_VISUAL: invalid value for an input Visual* * @CAIRO_STATUS_FILE_NOT_FOUND: file not found * @CAIRO_STATUS_INVALID_DASH: invalid value for a dash setting * @CAIRO_STATUS_INVALID_DSC_COMMENT: invalid value for a DSC comment (Since 1.2) * @CAIRO_STATUS_INVALID_INDEX: invalid index passed to getter (Since 1.4) * @CAIRO_STATUS_CLIP_NOT_REPRESENTABLE: clip region not representable in desired format (Since 1.4) * @CAIRO_STATUS_TEMP_FILE_ERROR: error creating or writing to a temporary file (Since 1.6) * @CAIRO_STATUS_INVALID_STRIDE: invalid value for stride (Since 1.6) * @CAIRO_STATUS_FONT_TYPE_MISMATCH: the font type is not appropriate for the operation (Since 1.8) * @CAIRO_STATUS_USER_FONT_IMMUTABLE: the user-font is immutable (Since 1.8) * @CAIRO_STATUS_USER_FONT_ERROR: error occurred in a user-font callback function (Since 1.8) * @CAIRO_STATUS_NEGATIVE_COUNT: negative number used where it is not allowed (Since 1.8) * @CAIRO_STATUS_INVALID_CLUSTERS: input clusters do not represent the accompanying text and glyph array (Since 1.8) * @CAIRO_STATUS_INVALID_SLANT: invalid value for an input #cairo_font_slant_t (Since 1.8) * @CAIRO_STATUS_INVALID_WEIGHT: invalid value for an input #cairo_font_weight_t (Since 1.8) * @CAIRO_STATUS_INVALID_SIZE: invalid value (typically too big) for the size of the input (surface, pattern, etc.) (Since 1.10) * @CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED: user-font method not implemented (Since 1.10) * @CAIRO_STATUS_LAST_STATUS: this is a special value indicating the number of * status values defined in this enumeration. When using this value, note * that the version of cairo at run-time may have additional status values * defined than the value of this symbol at compile-time. (Since 1.10) * * #cairo_status_t is used to indicate errors that can occur when * using Cairo. In some cases it is returned directly by functions. * but when using #cairo_t, the last error, if any, is stored in * the context and can be retrieved with cairo_status(). * * New entries may be added in future versions. Use cairo_status_to_string() * to get a human-readable representation of an error message. **/ typedef enum _cairo_status { CAIRO_STATUS_SUCCESS = 0, CAIRO_STATUS_NO_MEMORY, CAIRO_STATUS_INVALID_RESTORE, CAIRO_STATUS_INVALID_POP_GROUP, CAIRO_STATUS_NO_CURRENT_POINT, CAIRO_STATUS_INVALID_MATRIX, CAIRO_STATUS_INVALID_STATUS, CAIRO_STATUS_NULL_POINTER, CAIRO_STATUS_INVALID_STRING, CAIRO_STATUS_INVALID_PATH_DATA, CAIRO_STATUS_READ_ERROR, CAIRO_STATUS_WRITE_ERROR, CAIRO_STATUS_SURFACE_FINISHED, CAIRO_STATUS_SURFACE_TYPE_MISMATCH, CAIRO_STATUS_PATTERN_TYPE_MISMATCH, CAIRO_STATUS_INVALID_CONTENT, CAIRO_STATUS_INVALID_FORMAT, CAIRO_STATUS_INVALID_VISUAL, CAIRO_STATUS_FILE_NOT_FOUND, CAIRO_STATUS_INVALID_DASH, CAIRO_STATUS_INVALID_DSC_COMMENT, CAIRO_STATUS_INVALID_INDEX, CAIRO_STATUS_CLIP_NOT_REPRESENTABLE, CAIRO_STATUS_TEMP_FILE_ERROR, CAIRO_STATUS_INVALID_STRIDE, CAIRO_STATUS_FONT_TYPE_MISMATCH, CAIRO_STATUS_USER_FONT_IMMUTABLE, CAIRO_STATUS_USER_FONT_ERROR, CAIRO_STATUS_NEGATIVE_COUNT, CAIRO_STATUS_INVALID_CLUSTERS, CAIRO_STATUS_INVALID_SLANT, CAIRO_STATUS_INVALID_WEIGHT, CAIRO_STATUS_INVALID_SIZE, CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED, CAIRO_STATUS_NO_DEVICE, CAIRO_STATUS_LAST_STATUS } cairo_status_t; /** * cairo_content_t: * @CAIRO_CONTENT_COLOR: The surface will hold color content only. * @CAIRO_CONTENT_ALPHA: The surface will hold alpha content only. * @CAIRO_CONTENT_COLOR_ALPHA: The surface will hold color and alpha content. * * #cairo_content_t is used to describe the content that a surface will * contain, whether color information, alpha information (translucence * vs. opacity), or both. * * Note: The large values here are designed to keep #cairo_content_t * values distinct from #cairo_format_t values so that the * implementation can detect the error if users confuse the two types. **/ typedef enum _cairo_content { CAIRO_CONTENT_COLOR = 0x1000, CAIRO_CONTENT_ALPHA = 0x2000, CAIRO_CONTENT_COLOR_ALPHA = 0x3000 } cairo_content_t; /** * cairo_write_func_t: * @closure: the output closure * @data: the buffer containing the data to write * @length: the amount of data to write * * #cairo_write_func_t is the type of function which is called when a * backend needs to write data to an output stream. It is passed the * closure which was specified by the user at the time the write * function was registered, the data to write and the length of the * data in bytes. The write function should return * %CAIRO_STATUS_SUCCESS if all the data was successfully written, * %CAIRO_STATUS_WRITE_ERROR otherwise. * * Returns: the status code of the write operation **/ typedef cairo_status_t (*cairo_write_func_t) (void *closure, const unsigned char *data, unsigned int length); /** * cairo_read_func_t: * @closure: the input closure * @data: the buffer into which to read the data * @length: the amount of data to read * * #cairo_read_func_t is the type of function which is called when a * backend needs to read data from an input stream. It is passed the * closure which was specified by the user at the time the read * function was registered, the buffer to read the data into and the * length of the data in bytes. The read function should return * %CAIRO_STATUS_SUCCESS if all the data was successfully read, * %CAIRO_STATUS_READ_ERROR otherwise. * * Returns: the status code of the read operation **/ typedef cairo_status_t (*cairo_read_func_t) (void *closure, unsigned char *data, unsigned int length); /* Functions for manipulating state objects */ extern cairo_t * _moz_cairo_create (cairo_surface_t *target); extern cairo_t * _moz_cairo_reference (cairo_t *cr); extern void _moz_cairo_destroy (cairo_t *cr); extern unsigned int _moz_cairo_get_reference_count (cairo_t *cr); extern void * _moz_cairo_get_user_data (cairo_t *cr, const cairo_user_data_key_t *key); extern cairo_status_t _moz_cairo_set_user_data (cairo_t *cr, const cairo_user_data_key_t *key, void *user_data, cairo_destroy_func_t destroy); extern void _moz_cairo_save (cairo_t *cr); extern void _moz_cairo_restore (cairo_t *cr); extern void _moz_cairo_push_group (cairo_t *cr); extern void _moz_cairo_push_group_with_content (cairo_t *cr, cairo_content_t content); extern cairo_pattern_t * _moz_cairo_pop_group (cairo_t *cr); extern void _moz_cairo_pop_group_to_source (cairo_t *cr); /* Modify state */ /** * cairo_operator_t: * @CAIRO_OPERATOR_CLEAR: clear destination layer (bounded) * @CAIRO_OPERATOR_SOURCE: replace destination layer (bounded) * @CAIRO_OPERATOR_OVER: draw source layer on top of destination layer * (bounded) * @CAIRO_OPERATOR_IN: draw source where there was destination content * (unbounded) * @CAIRO_OPERATOR_OUT: draw source where there was no destination * content (unbounded) * @CAIRO_OPERATOR_ATOP: draw source on top of destination content and * only there * @CAIRO_OPERATOR_DEST: ignore the source * @CAIRO_OPERATOR_DEST_OVER: draw destination on top of source * @CAIRO_OPERATOR_DEST_IN: leave destination only where there was * source content (unbounded) * @CAIRO_OPERATOR_DEST_OUT: leave destination only where there was no * source content * @CAIRO_OPERATOR_DEST_ATOP: leave destination on top of source content * and only there (unbounded) * @CAIRO_OPERATOR_XOR: source and destination are shown where there is only * one of them * @CAIRO_OPERATOR_ADD: source and destination layers are accumulated * @CAIRO_OPERATOR_SATURATE: like over, but assuming source and dest are * disjoint geometries * @CAIRO_OPERATOR_MULTIPLY: source and destination layers are multiplied. * This causes the result to be at least as dark as the darker inputs. * @CAIRO_OPERATOR_SCREEN: source and destination are complemented and * multiplied. This causes the result to be at least as light as the lighter * inputs. * @CAIRO_OPERATOR_OVERLAY: multiplies or screens, depending on the * lightness of the destination color. * @CAIRO_OPERATOR_DARKEN: replaces the destination with the source if it * is darker, otherwise keeps the source. * @CAIRO_OPERATOR_LIGHTEN: replaces the destination with the source if it * is lighter, otherwise keeps the source. * @CAIRO_OPERATOR_COLOR_DODGE: brightens the destination color to reflect * the source color. * @CAIRO_OPERATOR_COLOR_BURN: darkens the destination color to reflect * the source color. * @CAIRO_OPERATOR_HARD_LIGHT: Multiplies or screens, dependant on source * color. * @CAIRO_OPERATOR_SOFT_LIGHT: Darkens or lightens, dependant on source * color. * @CAIRO_OPERATOR_DIFFERENCE: Takes the difference of the source and * destination color. * @CAIRO_OPERATOR_EXCLUSION: Produces an effect similar to difference, but * with lower contrast. * @CAIRO_OPERATOR_HSL_HUE: Creates a color with the hue of the source * and the saturation and luminosity of the target. * @CAIRO_OPERATOR_HSL_SATURATION: Creates a color with the saturation * of the source and the hue and luminosity of the target. Painting with * this mode onto a gray area prduces no change. * @CAIRO_OPERATOR_HSL_COLOR: Creates a color with the hue and saturation * of the source and the luminosity of the target. This preserves the gray * levels of the target and is useful for coloring monochrome images or * tinting color images. * @CAIRO_OPERATOR_HSL_LUMINOSITY: Creates a color with the luminosity of * the source and the hue and saturation of the target. This produces an * inverse effect to @CAIRO_OPERATOR_HSL_COLOR. * * #cairo_operator_t is used to set the compositing operator for all cairo * drawing operations. * * The default operator is %CAIRO_OPERATOR_OVER. * * The operators marked as unbounded modify their * destination even outside of the mask layer (that is, their effect is not * bound by the mask layer). However, their effect can still be limited by * way of clipping. * * To keep things simple, the operator descriptions here * document the behavior for when both source and destination are either fully * transparent or fully opaque. The actual implementation works for * translucent layers too. * For a more detailed explanation of the effects of each operator, including * the mathematical definitions, see * http://cairographics.org/operators/. **/ typedef enum _cairo_operator { CAIRO_OPERATOR_CLEAR, CAIRO_OPERATOR_SOURCE, CAIRO_OPERATOR_OVER, CAIRO_OPERATOR_IN, CAIRO_OPERATOR_OUT, CAIRO_OPERATOR_ATOP, CAIRO_OPERATOR_DEST, CAIRO_OPERATOR_DEST_OVER, CAIRO_OPERATOR_DEST_IN, CAIRO_OPERATOR_DEST_OUT, CAIRO_OPERATOR_DEST_ATOP, CAIRO_OPERATOR_XOR, CAIRO_OPERATOR_ADD, CAIRO_OPERATOR_SATURATE, CAIRO_OPERATOR_MULTIPLY, CAIRO_OPERATOR_SCREEN, CAIRO_OPERATOR_OVERLAY, CAIRO_OPERATOR_DARKEN, CAIRO_OPERATOR_LIGHTEN, CAIRO_OPERATOR_COLOR_DODGE, CAIRO_OPERATOR_COLOR_BURN, CAIRO_OPERATOR_HARD_LIGHT, CAIRO_OPERATOR_SOFT_LIGHT, CAIRO_OPERATOR_DIFFERENCE, CAIRO_OPERATOR_EXCLUSION, CAIRO_OPERATOR_HSL_HUE, CAIRO_OPERATOR_HSL_SATURATION, CAIRO_OPERATOR_HSL_COLOR, CAIRO_OPERATOR_HSL_LUMINOSITY } cairo_operator_t; extern void _moz_cairo_set_operator (cairo_t *cr, cairo_operator_t op); extern void _moz_cairo_set_source (cairo_t *cr, cairo_pattern_t *source); extern void _moz_cairo_set_source_rgb (cairo_t *cr, double red, double green, double blue); extern void _moz_cairo_set_source_rgba (cairo_t *cr, double red, double green, double blue, double alpha); extern void _moz_cairo_set_source_surface (cairo_t *cr, cairo_surface_t *surface, double x, double y); extern void _moz_cairo_set_tolerance (cairo_t *cr, double tolerance); /** * cairo_antialias_t: * @CAIRO_ANTIALIAS_DEFAULT: Use the default antialiasing for * the subsystem and target device * @CAIRO_ANTIALIAS_NONE: Use a bilevel alpha mask * @CAIRO_ANTIALIAS_GRAY: Perform single-color antialiasing (using * shades of gray for black text on a white background, for example). * @CAIRO_ANTIALIAS_SUBPIXEL: Perform antialiasing by taking * advantage of the order of subpixel elements on devices * such as LCD panels * * Specifies the type of antialiasing to do when rendering text or shapes. **/ typedef enum _cairo_antialias { CAIRO_ANTIALIAS_DEFAULT, CAIRO_ANTIALIAS_NONE, CAIRO_ANTIALIAS_GRAY, CAIRO_ANTIALIAS_SUBPIXEL } cairo_antialias_t; extern void _moz_cairo_set_antialias (cairo_t *cr, cairo_antialias_t antialias); /** * cairo_fill_rule_t: * @CAIRO_FILL_RULE_WINDING: If the path crosses the ray from * left-to-right, counts +1. If the path crosses the ray * from right to left, counts -1. (Left and right are determined * from the perspective of looking along the ray from the starting * point.) If the total count is non-zero, the point will be filled. * @CAIRO_FILL_RULE_EVEN_ODD: Counts the total number of * intersections, without regard to the orientation of the contour. If * the total number of intersections is odd, the point will be * filled. * * #cairo_fill_rule_t is used to select how paths are filled. For both * fill rules, whether or not a point is included in the fill is * determined by taking a ray from that point to infinity and looking * at intersections with the path. The ray can be in any direction, * as long as it doesn't pass through the end point of a segment * or have a tricky intersection such as intersecting tangent to the path. * (Note that filling is not actually implemented in this way. This * is just a description of the rule that is applied.) * * The default fill rule is %CAIRO_FILL_RULE_WINDING. * * New entries may be added in future versions. **/ typedef enum _cairo_fill_rule { CAIRO_FILL_RULE_WINDING, CAIRO_FILL_RULE_EVEN_ODD } cairo_fill_rule_t; extern void _moz_cairo_set_fill_rule (cairo_t *cr, cairo_fill_rule_t fill_rule); extern void _moz_cairo_set_line_width (cairo_t *cr, double width); /** * cairo_line_cap_t: * @CAIRO_LINE_CAP_BUTT: start(stop) the line exactly at the start(end) point * @CAIRO_LINE_CAP_ROUND: use a round ending, the center of the circle is the end point * @CAIRO_LINE_CAP_SQUARE: use squared ending, the center of the square is the end point * * Specifies how to render the endpoints of the path when stroking. * * The default line cap style is %CAIRO_LINE_CAP_BUTT. **/ typedef enum _cairo_line_cap { CAIRO_LINE_CAP_BUTT, CAIRO_LINE_CAP_ROUND, CAIRO_LINE_CAP_SQUARE } cairo_line_cap_t; extern void _moz_cairo_set_line_cap (cairo_t *cr, cairo_line_cap_t line_cap); /** * cairo_line_join_t: * @CAIRO_LINE_JOIN_MITER: use a sharp (angled) corner, see * cairo_set_miter_limit() * @CAIRO_LINE_JOIN_ROUND: use a rounded join, the center of the circle is the * joint point * @CAIRO_LINE_JOIN_BEVEL: use a cut-off join, the join is cut off at half * the line width from the joint point * * Specifies how to render the junction of two lines when stroking. * * The default line join style is %CAIRO_LINE_JOIN_MITER. **/ typedef enum _cairo_line_join { CAIRO_LINE_JOIN_MITER, CAIRO_LINE_JOIN_ROUND, CAIRO_LINE_JOIN_BEVEL } cairo_line_join_t; extern void _moz_cairo_set_line_join (cairo_t *cr, cairo_line_join_t line_join); extern void _moz_cairo_set_dash (cairo_t *cr, const double *dashes, int num_dashes, double offset); extern void _moz_cairo_set_miter_limit (cairo_t *cr, double limit); extern void _moz_cairo_translate (cairo_t *cr, double tx, double ty); extern void _moz_cairo_scale (cairo_t *cr, double sx, double sy); extern void _moz_cairo_rotate (cairo_t *cr, double angle); extern void _moz_cairo_transform (cairo_t *cr, const cairo_matrix_t *matrix); extern void _moz_cairo_set_matrix (cairo_t *cr, const cairo_matrix_t *matrix); extern void _moz_cairo_identity_matrix (cairo_t *cr); extern void _moz_cairo_user_to_device (cairo_t *cr, double *x, double *y); extern void _moz_cairo_user_to_device_distance (cairo_t *cr, double *dx, double *dy); extern void _moz_cairo_device_to_user (cairo_t *cr, double *x, double *y); extern void _moz_cairo_device_to_user_distance (cairo_t *cr, double *dx, double *dy); /* Path creation functions */ extern void _moz_cairo_new_path (cairo_t *cr); extern void _moz_cairo_move_to (cairo_t *cr, double x, double y); extern void _moz_cairo_new_sub_path (cairo_t *cr); extern void _moz_cairo_line_to (cairo_t *cr, double x, double y); extern void _moz_cairo_curve_to (cairo_t *cr, double x1, double y1, double x2, double y2, double x3, double y3); extern void _moz_cairo_arc (cairo_t *cr, double xc, double yc, double radius, double angle1, double angle2); extern void _moz_cairo_arc_negative (cairo_t *cr, double xc, double yc, double radius, double angle1, double angle2); /* XXX: NYI cairo_public void cairo_arc_to (cairo_t *cr, double x1, double y1, double x2, double y2, double radius); */ extern void _moz_cairo_rel_move_to (cairo_t *cr, double dx, double dy); extern void _moz_cairo_rel_line_to (cairo_t *cr, double dx, double dy); extern void _moz_cairo_rel_curve_to (cairo_t *cr, double dx1, double dy1, double dx2, double dy2, double dx3, double dy3); extern void _moz_cairo_rectangle (cairo_t *cr, double x, double y, double width, double height); /* XXX: NYI cairo_public void cairo_stroke_to_path (cairo_t *cr); */ extern void _moz_cairo_close_path (cairo_t *cr); extern void _moz_cairo_path_extents (cairo_t *cr, double *x1, double *y1, double *x2, double *y2); /* Painting functions */ extern void _moz_cairo_paint (cairo_t *cr); extern void _moz_cairo_paint_with_alpha (cairo_t *cr, double alpha); extern void _moz_cairo_mask (cairo_t *cr, cairo_pattern_t *pattern); extern void _moz_cairo_mask_surface (cairo_t *cr, cairo_surface_t *surface, double surface_x, double surface_y); extern void _moz_cairo_stroke (cairo_t *cr); extern void _moz_cairo_stroke_preserve (cairo_t *cr); extern void _moz_cairo_fill (cairo_t *cr); extern void _moz_cairo_fill_preserve (cairo_t *cr); extern void _moz_cairo_copy_page (cairo_t *cr); extern void _moz_cairo_show_page (cairo_t *cr); /* Insideness testing */ extern cairo_bool_t _moz_cairo_in_stroke (cairo_t *cr, double x, double y); extern cairo_bool_t _moz_cairo_in_fill (cairo_t *cr, double x, double y); extern cairo_bool_t cairo_in_clip (cairo_t *cr, double x, double y); /* Rectangular extents */ extern void _moz_cairo_stroke_extents (cairo_t *cr, double *x1, double *y1, double *x2, double *y2); extern void _moz_cairo_fill_extents (cairo_t *cr, double *x1, double *y1, double *x2, double *y2); /* Clipping */ extern void _moz_cairo_reset_clip (cairo_t *cr); extern void _moz_cairo_clip (cairo_t *cr); extern void _moz_cairo_clip_preserve (cairo_t *cr); extern void _moz_cairo_clip_extents (cairo_t *cr, double *x1, double *y1, double *x2, double *y2); /** * cairo_rectangle_t: * @x: X coordinate of the left side of the rectangle * @y: Y coordinate of the the top side of the rectangle * @width: width of the rectangle * @height: height of the rectangle * * A data structure for holding a rectangle. * * Since: 1.4 **/ typedef struct _cairo_rectangle { double x, y, width, height; } cairo_rectangle_t; /** * cairo_rectangle_list_t: * @status: Error status of the rectangle list * @rectangles: Array containing the rectangles * @num_rectangles: Number of rectangles in this list * * A data structure for holding a dynamically allocated * array of rectangles. * * Since: 1.4 **/ typedef struct _cairo_rectangle_list { cairo_status_t status; cairo_rectangle_t *rectangles; int num_rectangles; } cairo_rectangle_list_t; extern cairo_rectangle_list_t * _moz_cairo_copy_clip_rectangle_list (cairo_t *cr); extern void _moz_cairo_rectangle_list_destroy (cairo_rectangle_list_t *rectangle_list); /* Font/Text functions */ /** * cairo_scaled_font_t: * * A #cairo_scaled_font_t is a font scaled to a particular size and device * resolution. A #cairo_scaled_font_t is most useful for low-level font * usage where a library or application wants to cache a reference * to a scaled font to speed up the computation of metrics. * * There are various types of scaled fonts, depending on the * font backend they use. The type of a * scaled font can be queried using cairo_scaled_font_get_type(). * * Memory management of #cairo_scaled_font_t is done with * cairo_scaled_font_reference() and cairo_scaled_font_destroy(). **/ typedef struct _cairo_scaled_font cairo_scaled_font_t; /** * cairo_font_face_t: * * A #cairo_font_face_t specifies all aspects of a font other * than the size or font matrix (a font matrix is used to distort * a font by sheering it or scaling it unequally in the two * directions) . A font face can be set on a #cairo_t by using * cairo_set_font_face(); the size and font matrix are set with * cairo_set_font_size() and cairo_set_font_matrix(). * * There are various types of font faces, depending on the * font backend they use. The type of a * font face can be queried using cairo_font_face_get_type(). * * Memory management of #cairo_font_face_t is done with * cairo_font_face_reference() and cairo_font_face_destroy(). **/ typedef struct _cairo_font_face cairo_font_face_t; /** * cairo_glyph_t: * @index: glyph index in the font. The exact interpretation of the * glyph index depends on the font technology being used. * @x: the offset in the X direction between the origin used for * drawing or measuring the string and the origin of this glyph. * @y: the offset in the Y direction between the origin used for * drawing or measuring the string and the origin of this glyph. * * The #cairo_glyph_t structure holds information about a single glyph * when drawing or measuring text. A font is (in simple terms) a * collection of shapes used to draw text. A glyph is one of these * shapes. There can be multiple glyphs for a single character * (alternates to be used in different contexts, for example), or a * glyph can be a ligature of multiple * characters. Cairo doesn't expose any way of converting input text * into glyphs, so in order to use the Cairo interfaces that take * arrays of glyphs, you must directly access the appropriate * underlying font system. * * Note that the offsets given by @x and @y are not cumulative. When * drawing or measuring text, each glyph is individually positioned * with respect to the overall origin **/ typedef struct { unsigned long index; double x; double y; } cairo_glyph_t; extern cairo_glyph_t * _moz_cairo_glyph_allocate (int num_glyphs); extern void _moz_cairo_glyph_free (cairo_glyph_t *glyphs); /** * cairo_text_cluster_t: * @num_bytes: the number of bytes of UTF-8 text covered by cluster * @num_glyphs: the number of glyphs covered by cluster * * The #cairo_text_cluster_t structure holds information about a single * text cluster. A text cluster is a minimal * mapping of some glyphs corresponding to some UTF-8 text. * * For a cluster to be valid, both @num_bytes and @num_glyphs should * be non-negative, and at least one should be non-zero. * Note that clusters with zero glyphs are not as well supported as * normal clusters. For example, PDF rendering applications typically * ignore those clusters when PDF text is being selected. * * See cairo_show_text_glyphs() for how clusters are used in advanced * text operations. * * Since: 1.8 **/ typedef struct { int num_bytes; int num_glyphs; } cairo_text_cluster_t; extern cairo_text_cluster_t * _moz_cairo_text_cluster_allocate (int num_clusters); extern void _moz_cairo_text_cluster_free (cairo_text_cluster_t *clusters); /** * cairo_text_cluster_flags_t: * @CAIRO_TEXT_CLUSTER_FLAG_BACKWARD: The clusters in the cluster array * map to glyphs in the glyph array from end to start. * * Specifies properties of a text cluster mapping. * * Since: 1.8 **/ typedef enum _cairo_text_cluster_flags { CAIRO_TEXT_CLUSTER_FLAG_BACKWARD = 0x00000001 } cairo_text_cluster_flags_t; /** * cairo_text_extents_t: * @x_bearing: the horizontal distance from the origin to the * leftmost part of the glyphs as drawn. Positive if the * glyphs lie entirely to the right of the origin. * @y_bearing: the vertical distance from the origin to the * topmost part of the glyphs as drawn. Positive only if the * glyphs lie completely below the origin; will usually be * negative. * @width: width of the glyphs as drawn * @height: height of the glyphs as drawn * @x_advance:distance to advance in the X direction * after drawing these glyphs * @y_advance: distance to advance in the Y direction * after drawing these glyphs. Will typically be zero except * for vertical text layout as found in East-Asian languages. * * The #cairo_text_extents_t structure stores the extents of a single * glyph or a string of glyphs in user-space coordinates. Because text * extents are in user-space coordinates, they are mostly, but not * entirely, independent of the current transformation matrix. If you call * cairo_scale(cr, 2.0, 2.0), text will * be drawn twice as big, but the reported text extents will not be * doubled. They will change slightly due to hinting (so you can't * assume that metrics are independent of the transformation matrix), * but otherwise will remain unchanged. **/ typedef struct { double x_bearing; double y_bearing; double width; double height; double x_advance; double y_advance; } cairo_text_extents_t; /** * cairo_font_extents_t: * @ascent: the distance that the font extends above the baseline. * Note that this is not always exactly equal to the maximum * of the extents of all the glyphs in the font, but rather * is picked to express the font designer's intent as to * how the font should align with elements above it. * @descent: the distance that the font extends below the baseline. * This value is positive for typical fonts that include * portions below the baseline. Note that this is not always * exactly equal to the maximum of the extents of all the * glyphs in the font, but rather is picked to express the * font designer's intent as to how the the font should * align with elements below it. * @height: the recommended vertical distance between baselines when * setting consecutive lines of text with the font. This * is greater than @ascent+@descent by a * quantity known as the line spacing * or external leading. When space * is at a premium, most fonts can be set with only * a distance of @ascent+@descent between lines. * @max_x_advance: the maximum distance in the X direction that * the the origin is advanced for any glyph in the font. * @max_y_advance: the maximum distance in the Y direction that * the the origin is advanced for any glyph in the font. * this will be zero for normal fonts used for horizontal * writing. (The scripts of East Asia are sometimes written * vertically.) * * The #cairo_font_extents_t structure stores metric information for * a font. Values are given in the current user-space coordinate * system. * * Because font metrics are in user-space coordinates, they are * mostly, but not entirely, independent of the current transformation * matrix. If you call cairo_scale(cr, 2.0, 2.0), * text will be drawn twice as big, but the reported text extents will * not be doubled. They will change slightly due to hinting (so you * can't assume that metrics are independent of the transformation * matrix), but otherwise will remain unchanged. **/ typedef struct { double ascent; double descent; double height; double max_x_advance; double max_y_advance; } cairo_font_extents_t; /** * cairo_font_slant_t: * @CAIRO_FONT_SLANT_NORMAL: Upright font style * @CAIRO_FONT_SLANT_ITALIC: Italic font style * @CAIRO_FONT_SLANT_OBLIQUE: Oblique font style * * Specifies variants of a font face based on their slant. **/ typedef enum _cairo_font_slant { CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_SLANT_ITALIC, CAIRO_FONT_SLANT_OBLIQUE } cairo_font_slant_t; /** * cairo_font_weight_t: * @CAIRO_FONT_WEIGHT_NORMAL: Normal font weight * @CAIRO_FONT_WEIGHT_BOLD: Bold font weight * * Specifies variants of a font face based on their weight. **/ typedef enum _cairo_font_weight { CAIRO_FONT_WEIGHT_NORMAL, CAIRO_FONT_WEIGHT_BOLD } cairo_font_weight_t; /** * cairo_subpixel_order_t: * @CAIRO_SUBPIXEL_ORDER_DEFAULT: Use the default subpixel order for * for the target device * @CAIRO_SUBPIXEL_ORDER_RGB: Subpixel elements are arranged horizontally * with red at the left * @CAIRO_SUBPIXEL_ORDER_BGR: Subpixel elements are arranged horizontally * with blue at the left * @CAIRO_SUBPIXEL_ORDER_VRGB: Subpixel elements are arranged vertically * with red at the top * @CAIRO_SUBPIXEL_ORDER_VBGR: Subpixel elements are arranged vertically * with blue at the top * * The subpixel order specifies the order of color elements within * each pixel on the display device when rendering with an * antialiasing mode of %CAIRO_ANTIALIAS_SUBPIXEL. **/ typedef enum _cairo_subpixel_order { CAIRO_SUBPIXEL_ORDER_DEFAULT, CAIRO_SUBPIXEL_ORDER_RGB, CAIRO_SUBPIXEL_ORDER_BGR, CAIRO_SUBPIXEL_ORDER_VRGB, CAIRO_SUBPIXEL_ORDER_VBGR } cairo_subpixel_order_t; /** * cairo_hint_style_t: * @CAIRO_HINT_STYLE_DEFAULT: Use the default hint style for * font backend and target device * @CAIRO_HINT_STYLE_NONE: Do not hint outlines * @CAIRO_HINT_STYLE_SLIGHT: Hint outlines slightly to improve * contrast while retaining good fidelity to the original * shapes. * @CAIRO_HINT_STYLE_MEDIUM: Hint outlines with medium strength * giving a compromise between fidelity to the original shapes * and contrast * @CAIRO_HINT_STYLE_FULL: Hint outlines to maximize contrast * * Specifies the type of hinting to do on font outlines. Hinting * is the process of fitting outlines to the pixel grid in order * to improve the appearance of the result. Since hinting outlines * involves distorting them, it also reduces the faithfulness * to the original outline shapes. Not all of the outline hinting * styles are supported by all font backends. * * New entries may be added in future versions. **/ typedef enum _cairo_hint_style { CAIRO_HINT_STYLE_DEFAULT, CAIRO_HINT_STYLE_NONE, CAIRO_HINT_STYLE_SLIGHT, CAIRO_HINT_STYLE_MEDIUM, CAIRO_HINT_STYLE_FULL } cairo_hint_style_t; /** * cairo_hint_metrics_t: * @CAIRO_HINT_METRICS_DEFAULT: Hint metrics in the default * manner for the font backend and target device * @CAIRO_HINT_METRICS_OFF: Do not hint font metrics * @CAIRO_HINT_METRICS_ON: Hint font metrics * * Specifies whether to hint font metrics; hinting font metrics * means quantizing them so that they are integer values in * device space. Doing this improves the consistency of * letter and line spacing, however it also means that text * will be laid out differently at different zoom factors. **/ typedef enum _cairo_hint_metrics { CAIRO_HINT_METRICS_DEFAULT, CAIRO_HINT_METRICS_OFF, CAIRO_HINT_METRICS_ON } cairo_hint_metrics_t; /** * cairo_font_options_t: * * An opaque structure holding all options that are used when * rendering fonts. * * Individual features of a #cairo_font_options_t can be set or * accessed using functions named * cairo_font_options_set_feature_name and * cairo_font_options_get_feature_name, like * cairo_font_options_set_antialias() and * cairo_font_options_get_antialias(). * * New features may be added to a #cairo_font_options_t in the * future. For this reason, cairo_font_options_copy(), * cairo_font_options_equal(), cairo_font_options_merge(), and * cairo_font_options_hash() should be used to copy, check * for equality, merge, or compute a hash value of * #cairo_font_options_t objects. **/ typedef struct _cairo_font_options cairo_font_options_t; extern cairo_font_options_t * _moz_cairo_font_options_create (void); extern cairo_font_options_t * _moz_cairo_font_options_copy (const cairo_font_options_t *original); extern void _moz_cairo_font_options_destroy (cairo_font_options_t *options); extern cairo_status_t _moz_cairo_font_options_status (cairo_font_options_t *options); extern void _moz_cairo_font_options_merge (cairo_font_options_t *options, const cairo_font_options_t *other); extern cairo_bool_t _moz_cairo_font_options_equal (const cairo_font_options_t *options, const cairo_font_options_t *other); extern unsigned long _moz_cairo_font_options_hash (const cairo_font_options_t *options); extern void _moz_cairo_font_options_set_antialias (cairo_font_options_t *options, cairo_antialias_t antialias); extern cairo_antialias_t _moz_cairo_font_options_get_antialias (const cairo_font_options_t *options); extern void _moz_cairo_font_options_set_subpixel_order (cairo_font_options_t *options, cairo_subpixel_order_t subpixel_order); extern cairo_subpixel_order_t _moz_cairo_font_options_get_subpixel_order (const cairo_font_options_t *options); extern void _moz_cairo_font_options_set_hint_style (cairo_font_options_t *options, cairo_hint_style_t hint_style); extern cairo_hint_style_t _moz_cairo_font_options_get_hint_style (const cairo_font_options_t *options); extern void _moz_cairo_font_options_set_hint_metrics (cairo_font_options_t *options, cairo_hint_metrics_t hint_metrics); extern cairo_hint_metrics_t _moz_cairo_font_options_get_hint_metrics (const cairo_font_options_t *options); /* This interface is for dealing with text as text, not caring about the font object inside the the cairo_t. */ extern void _moz_cairo_select_font_face (cairo_t *cr, const char *family, cairo_font_slant_t slant, cairo_font_weight_t weight); extern void _moz_cairo_set_font_size (cairo_t *cr, double size); extern void _moz_cairo_set_font_matrix (cairo_t *cr, const cairo_matrix_t *matrix); extern void _moz_cairo_get_font_matrix (cairo_t *cr, cairo_matrix_t *matrix); extern void _moz_cairo_set_font_options (cairo_t *cr, const cairo_font_options_t *options); extern void _moz_cairo_get_font_options (cairo_t *cr, cairo_font_options_t *options); extern void _moz_cairo_set_font_face (cairo_t *cr, cairo_font_face_t *font_face); extern cairo_font_face_t * _moz_cairo_get_font_face (cairo_t *cr); extern void _moz_cairo_set_scaled_font (cairo_t *cr, const cairo_scaled_font_t *scaled_font); extern cairo_scaled_font_t * _moz_cairo_get_scaled_font (cairo_t *cr); extern void _moz_cairo_show_text (cairo_t *cr, const char *utf8); extern void _moz_cairo_show_glyphs (cairo_t *cr, const cairo_glyph_t *glyphs, int num_glyphs); extern void _moz_cairo_show_text_glyphs (cairo_t *cr, const char *utf8, int utf8_len, const cairo_glyph_t *glyphs, int num_glyphs, const cairo_text_cluster_t *clusters, int num_clusters, cairo_text_cluster_flags_t cluster_flags); extern void _moz_cairo_text_path (cairo_t *cr, const char *utf8); extern void _moz_cairo_glyph_path (cairo_t *cr, const cairo_glyph_t *glyphs, int num_glyphs); extern void _moz_cairo_text_extents (cairo_t *cr, const char *utf8, cairo_text_extents_t *extents); extern void _moz_cairo_glyph_extents (cairo_t *cr, const cairo_glyph_t *glyphs, int num_glyphs, cairo_text_extents_t *extents); extern void _moz_cairo_font_extents (cairo_t *cr, cairo_font_extents_t *extents); /* Generic identifier for a font style */ extern cairo_font_face_t * _moz_cairo_font_face_reference (cairo_font_face_t *font_face); extern void _moz_cairo_font_face_destroy (cairo_font_face_t *font_face); extern unsigned int _moz_cairo_font_face_get_reference_count (cairo_font_face_t *font_face); extern cairo_status_t _moz_cairo_font_face_status (cairo_font_face_t *font_face); /** * cairo_font_type_t: * @CAIRO_FONT_TYPE_TOY: The font was created using cairo's toy font api * @CAIRO_FONT_TYPE_FT: The font is of type FreeType * @CAIRO_FONT_TYPE_WIN32: The font is of type Win32 * @CAIRO_FONT_TYPE_QUARTZ: The font is of type Quartz (Since: 1.6) * @CAIRO_FONT_TYPE_USER: The font was create using cairo's user font api (Since: 1.8) * * #cairo_font_type_t is used to describe the type of a given font * face or scaled font. The font types are also known as "font * backends" within cairo. * * The type of a font face is determined by the function used to * create it, which will generally be of the form * cairo_type_font_face_create(). The font face type can be queried * with cairo_font_face_get_type() * * The various #cairo_font_face_t functions can be used with a font face * of any type. * * The type of a scaled font is determined by the type of the font * face passed to cairo_scaled_font_create(). The scaled font type can * be queried with cairo_scaled_font_get_type() * * The various #cairo_scaled_font_t functions can be used with scaled * fonts of any type, but some font backends also provide * type-specific functions that must only be called with a scaled font * of the appropriate type. These functions have names that begin with * cairo_type_scaled_font() such as cairo_ft_scaled_font_lock_face(). * * The behavior of calling a type-specific function with a scaled font * of the wrong type is undefined. * * New entries may be added in future versions. * * Since: 1.2 **/ typedef enum _cairo_font_type { CAIRO_FONT_TYPE_TOY, CAIRO_FONT_TYPE_FT, CAIRO_FONT_TYPE_WIN32, CAIRO_FONT_TYPE_QUARTZ, CAIRO_FONT_TYPE_USER, CAIRO_FONT_TYPE_DWRITE } cairo_font_type_t; extern cairo_font_type_t _moz_cairo_font_face_get_type (cairo_font_face_t *font_face); extern void * _moz_cairo_font_face_get_user_data (cairo_font_face_t *font_face, const cairo_user_data_key_t *key); extern cairo_status_t _moz_cairo_font_face_set_user_data (cairo_font_face_t *font_face, const cairo_user_data_key_t *key, void *user_data, cairo_destroy_func_t destroy); /* Portable interface to general font features. */ extern cairo_scaled_font_t * _moz_cairo_scaled_font_create (cairo_font_face_t *font_face, const cairo_matrix_t *font_matrix, const cairo_matrix_t *ctm, const cairo_font_options_t *options); extern cairo_scaled_font_t * _moz_cairo_scaled_font_reference (cairo_scaled_font_t *scaled_font); extern void _moz_cairo_scaled_font_destroy (cairo_scaled_font_t *scaled_font); extern unsigned int _moz_cairo_scaled_font_get_reference_count (cairo_scaled_font_t *scaled_font); extern cairo_status_t _moz_cairo_scaled_font_status (cairo_scaled_font_t *scaled_font); extern cairo_font_type_t _moz_cairo_scaled_font_get_type (cairo_scaled_font_t *scaled_font); extern void * _moz_cairo_scaled_font_get_user_data (cairo_scaled_font_t *scaled_font, const cairo_user_data_key_t *key); extern cairo_status_t _moz_cairo_scaled_font_set_user_data (cairo_scaled_font_t *scaled_font, const cairo_user_data_key_t *key, void *user_data, cairo_destroy_func_t destroy); extern void _moz_cairo_scaled_font_extents (cairo_scaled_font_t *scaled_font, cairo_font_extents_t *extents); extern void _moz_cairo_scaled_font_text_extents (cairo_scaled_font_t *scaled_font, const char *utf8, cairo_text_extents_t *extents); extern void _moz_cairo_scaled_font_glyph_extents (cairo_scaled_font_t *scaled_font, const cairo_glyph_t *glyphs, int num_glyphs, cairo_text_extents_t *extents); extern cairo_status_t _moz_cairo_scaled_font_text_to_glyphs (cairo_scaled_font_t *scaled_font, double x, double y, const char *utf8, int utf8_len, cairo_glyph_t **glyphs, int *num_glyphs, cairo_text_cluster_t **clusters, int *num_clusters, cairo_text_cluster_flags_t *cluster_flags); extern cairo_font_face_t * _moz_cairo_scaled_font_get_font_face (cairo_scaled_font_t *scaled_font); extern void _moz_cairo_scaled_font_get_font_matrix (cairo_scaled_font_t *scaled_font, cairo_matrix_t *font_matrix); extern void _moz_cairo_scaled_font_get_ctm (cairo_scaled_font_t *scaled_font, cairo_matrix_t *ctm); extern void _moz_cairo_scaled_font_get_scale_matrix (cairo_scaled_font_t *scaled_font, cairo_matrix_t *scale_matrix); extern void _moz_cairo_scaled_font_get_font_options (cairo_scaled_font_t *scaled_font, cairo_font_options_t *options); /* Toy fonts */ extern cairo_font_face_t * _moz_cairo_toy_font_face_create (const char *family, cairo_font_slant_t slant, cairo_font_weight_t weight); extern const char * _moz_cairo_toy_font_face_get_family (cairo_font_face_t *font_face); extern cairo_font_slant_t _moz_cairo_toy_font_face_get_slant (cairo_font_face_t *font_face); extern cairo_font_weight_t _moz_cairo_toy_font_face_get_weight (cairo_font_face_t *font_face); /* User fonts */ extern cairo_font_face_t * _moz_cairo_user_font_face_create (void); /* User-font method signatures */ /** * cairo_user_scaled_font_init_func_t: * @scaled_font: the scaled-font being created * @cr: a cairo context, in font space * @extents: font extents to fill in, in font space * * #cairo_user_scaled_font_init_func_t is the type of function which is * called when a scaled-font needs to be created for a user font-face. * * The cairo context @cr is not used by the caller, but is prepared in font * space, similar to what the cairo contexts passed to the render_glyph * method will look like. The callback can use this context for extents * computation for example. After the callback is called, @cr is checked * for any error status. * * The @extents argument is where the user font sets the font extents for * @scaled_font. It is in font space, which means that for most cases its * ascent and descent members should add to 1.0. @extents is preset to * hold a value of 1.0 for ascent, height, and max_x_advance, and 0.0 for * descent and max_y_advance members. * * The callback is optional. If not set, default font extents as described * in the previous paragraph will be used. * * Note that @scaled_font is not fully initialized at this * point and trying to use it for text operations in the callback will result * in deadlock. * * Returns: %CAIRO_STATUS_SUCCESS upon success, or an error status on error. * * Since: 1.8 **/ typedef cairo_status_t (*cairo_user_scaled_font_init_func_t) (cairo_scaled_font_t *scaled_font, cairo_t *cr, cairo_font_extents_t *extents); /** * cairo_user_scaled_font_render_glyph_func_t: * @scaled_font: user scaled-font * @glyph: glyph code to render * @cr: cairo context to draw to, in font space * @extents: glyph extents to fill in, in font space * * #cairo_user_scaled_font_render_glyph_func_t is the type of function which * is called when a user scaled-font needs to render a glyph. * * The callback is mandatory, and expected to draw the glyph with code @glyph to * the cairo context @cr. @cr is prepared such that the glyph drawing is done in * font space. That is, the matrix set on @cr is the scale matrix of @scaled_font, * The @extents argument is where the user font sets the font extents for * @scaled_font. However, if user prefers to draw in user space, they can * achieve that by changing the matrix on @cr. All cairo rendering operations * to @cr are permitted, however, the result is undefined if any source other * than the default source on @cr is used. That means, glyph bitmaps should * be rendered using cairo_mask() instead of cairo_paint(). * * Other non-default settings on @cr include a font size of 1.0 (given that * it is set up to be in font space), and font options corresponding to * @scaled_font. * * The @extents argument is preset to have x_bearing, * width, and y_advance of zero, * y_bearing set to -font_extents.ascent, * height to font_extents.ascent+font_extents.descent, * and x_advance to font_extents.max_x_advance. * The only field user needs to set in majority of cases is * x_advance. * If the width field is zero upon the callback returning * (which is its preset value), the glyph extents are automatically computed * based on the drawings done to @cr. This is in most cases exactly what the * desired behavior is. However, if for any reason the callback sets the * extents, it must be ink extents, and include the extents of all drawing * done to @cr in the callback. * * Returns: %CAIRO_STATUS_SUCCESS upon success, or * %CAIRO_STATUS_USER_FONT_ERROR or any other error status on error. * * Since: 1.8 **/ typedef cairo_status_t (*cairo_user_scaled_font_render_glyph_func_t) (cairo_scaled_font_t *scaled_font, unsigned long glyph, cairo_t *cr, cairo_text_extents_t *extents); /** * cairo_user_scaled_font_text_to_glyphs_func_t: * @scaled_font: the scaled-font being created * @utf8: a string of text encoded in UTF-8 * @utf8_len: length of @utf8 in bytes * @glyphs: pointer to array of glyphs to fill, in font space * @num_glyphs: pointer to number of glyphs * @clusters: pointer to array of cluster mapping information to fill, or %NULL * @num_clusters: pointer to number of clusters * @cluster_flags: pointer to location to store cluster flags corresponding to the * output @clusters * * #cairo_user_scaled_font_text_to_glyphs_func_t is the type of function which * is called to convert input text to an array of glyphs. This is used by the * cairo_show_text() operation. * * Using this callback the user-font has full control on glyphs and their * positions. That means, it allows for features like ligatures and kerning, * as well as complex shaping required for scripts like * Arabic and Indic. * * The @num_glyphs argument is preset to the number of glyph entries available * in the @glyphs buffer. If the @glyphs buffer is %NULL, the value of * @num_glyphs will be zero. If the provided glyph array is too short for * the conversion (or for convenience), a new glyph array may be allocated * using cairo_glyph_allocate() and placed in @glyphs. Upon return, * @num_glyphs should contain the number of generated glyphs. If the value * @glyphs points at has changed after the call, the caller will free the * allocated glyph array using cairo_glyph_free(). * The callback should populate the glyph indices and positions (in font space) * assuming that the text is to be shown at the origin. * * If @clusters is not %NULL, @num_clusters and @cluster_flags are also * non-%NULL, and cluster mapping should be computed. The semantics of how * cluster array allocation works is similar to the glyph array. That is, * if @clusters initially points to a non-%NULL value, that array may be used * as a cluster buffer, and @num_clusters points to the number of cluster * entries available there. If the provided cluster array is too short for * the conversion (or for convenience), a new cluster array may be allocated * using cairo_text_cluster_allocate() and placed in @clusters. Upon return, * @num_clusters should contain the number of generated clusters. * If the value @clusters points at has changed after the call, the caller * will free the allocated cluster array using cairo_text_cluster_free(). * * The callback is optional. If @num_glyphs is negative upon * the callback returning or if the return value * is %CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED, the unicode_to_glyph callback * is tried. See #cairo_user_scaled_font_unicode_to_glyph_func_t. * * Note: While cairo does not impose any limitation on glyph indices, * some applications may assume that a glyph index fits in a 16-bit * unsigned integer. As such, it is advised that user-fonts keep their * glyphs in the 0 to 65535 range. Furthermore, some applications may * assume that glyph 0 is a special glyph-not-found glyph. User-fonts * are advised to use glyph 0 for such purposes and do not use that * glyph value for other purposes. * * Returns: %CAIRO_STATUS_SUCCESS upon success, * %CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED if fallback options should be tried, * or %CAIRO_STATUS_USER_FONT_ERROR or any other error status on error. * * Since: 1.8 **/ typedef cairo_status_t (*cairo_user_scaled_font_text_to_glyphs_func_t) (cairo_scaled_font_t *scaled_font, const char *utf8, int utf8_len, cairo_glyph_t **glyphs, int *num_glyphs, cairo_text_cluster_t **clusters, int *num_clusters, cairo_text_cluster_flags_t *cluster_flags); /** * cairo_user_scaled_font_unicode_to_glyph_func_t: * @scaled_font: the scaled-font being created * @unicode: input unicode character code-point * @glyph_index: output glyph index * * #cairo_user_scaled_font_unicode_to_glyph_func_t is the type of function which * is called to convert an input Unicode character to a single glyph. * This is used by the cairo_show_text() operation. * * This callback is used to provide the same functionality as the * text_to_glyphs callback does (see #cairo_user_scaled_font_text_to_glyphs_func_t) * but has much less control on the output, * in exchange for increased ease of use. The inherent assumption to using * this callback is that each character maps to one glyph, and that the * mapping is context independent. It also assumes that glyphs are positioned * according to their advance width. These mean no ligatures, kerning, or * complex scripts can be implemented using this callback. * * The callback is optional, and only used if text_to_glyphs callback is not * set or fails to return glyphs. If this callback is not set or if it returns * %CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED, an identity mapping from Unicode * code-points to glyph indices is assumed. * * Note: While cairo does not impose any limitation on glyph indices, * some applications may assume that a glyph index fits in a 16-bit * unsigned integer. As such, it is advised that user-fonts keep their * glyphs in the 0 to 65535 range. Furthermore, some applications may * assume that glyph 0 is a special glyph-not-found glyph. User-fonts * are advised to use glyph 0 for such purposes and do not use that * glyph value for other purposes. * * Returns: %CAIRO_STATUS_SUCCESS upon success, * %CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED if fallback options should be tried, * or %CAIRO_STATUS_USER_FONT_ERROR or any other error status on error. * * Since: 1.8 **/ typedef cairo_status_t (*cairo_user_scaled_font_unicode_to_glyph_func_t) (cairo_scaled_font_t *scaled_font, unsigned long unicode, unsigned long *glyph_index); /* User-font method setters */ extern void _moz_cairo_user_font_face_set_init_func (cairo_font_face_t *font_face, cairo_user_scaled_font_init_func_t init_func); extern void _moz_cairo_user_font_face_set_render_glyph_func (cairo_font_face_t *font_face, cairo_user_scaled_font_render_glyph_func_t render_glyph_func); extern void _moz_cairo_user_font_face_set_text_to_glyphs_func (cairo_font_face_t *font_face, cairo_user_scaled_font_text_to_glyphs_func_t text_to_glyphs_func); extern void _moz_cairo_user_font_face_set_unicode_to_glyph_func (cairo_font_face_t *font_face, cairo_user_scaled_font_unicode_to_glyph_func_t unicode_to_glyph_func); /* User-font method getters */ extern cairo_user_scaled_font_init_func_t _moz_cairo_user_font_face_get_init_func (cairo_font_face_t *font_face); extern cairo_user_scaled_font_render_glyph_func_t _moz_cairo_user_font_face_get_render_glyph_func (cairo_font_face_t *font_face); extern cairo_user_scaled_font_text_to_glyphs_func_t _moz_cairo_user_font_face_get_text_to_glyphs_func (cairo_font_face_t *font_face); extern cairo_user_scaled_font_unicode_to_glyph_func_t _moz_cairo_user_font_face_get_unicode_to_glyph_func (cairo_font_face_t *font_face); /* Query functions */ extern cairo_operator_t _moz_cairo_get_operator (cairo_t *cr); extern cairo_pattern_t * _moz_cairo_get_source (cairo_t *cr); extern double _moz_cairo_get_tolerance (cairo_t *cr); extern cairo_antialias_t _moz_cairo_get_antialias (cairo_t *cr); extern cairo_bool_t _moz_cairo_has_current_point (cairo_t *cr); extern void _moz_cairo_get_current_point (cairo_t *cr, double *x, double *y); extern cairo_fill_rule_t _moz_cairo_get_fill_rule (cairo_t *cr); extern double _moz_cairo_get_line_width (cairo_t *cr); extern cairo_line_cap_t _moz_cairo_get_line_cap (cairo_t *cr); extern cairo_line_join_t _moz_cairo_get_line_join (cairo_t *cr); extern double _moz_cairo_get_miter_limit (cairo_t *cr); extern int _moz_cairo_get_dash_count (cairo_t *cr); extern void _moz_cairo_get_dash (cairo_t *cr, double *dashes, double *offset); extern void _moz_cairo_get_matrix (cairo_t *cr, cairo_matrix_t *matrix); extern cairo_surface_t * _moz_cairo_get_target (cairo_t *cr); extern cairo_surface_t * _moz_cairo_get_group_target (cairo_t *cr); /** * cairo_path_data_type_t: * @CAIRO_PATH_MOVE_TO: A move-to operation * @CAIRO_PATH_LINE_TO: A line-to operation * @CAIRO_PATH_CURVE_TO: A curve-to operation * @CAIRO_PATH_CLOSE_PATH: A close-path operation * * #cairo_path_data_t is used to describe the type of one portion * of a path when represented as a #cairo_path_t. * See #cairo_path_data_t for details. **/ typedef enum _cairo_path_data_type { CAIRO_PATH_MOVE_TO, CAIRO_PATH_LINE_TO, CAIRO_PATH_CURVE_TO, CAIRO_PATH_CLOSE_PATH } cairo_path_data_type_t; /** * cairo_path_data_t: * * #cairo_path_data_t is used to represent the path data inside a * #cairo_path_t. * * The data structure is designed to try to balance the demands of * efficiency and ease-of-use. A path is represented as an array of * #cairo_path_data_t, which is a union of headers and points. * * Each portion of the path is represented by one or more elements in * the array, (one header followed by 0 or more points). The length * value of the header is the number of array elements for the current * portion including the header, (ie. length == 1 + # of points), and * where the number of points for each element type is as follows: * * * %CAIRO_PATH_MOVE_TO: 1 point * %CAIRO_PATH_LINE_TO: 1 point * %CAIRO_PATH_CURVE_TO: 3 points * %CAIRO_PATH_CLOSE_PATH: 0 points * * * The semantics and ordering of the coordinate values are consistent * with cairo_move_to(), cairo_line_to(), cairo_curve_to(), and * cairo_close_path(). * * Here is sample code for iterating through a #cairo_path_t: * * * int i; * cairo_path_t *path; * cairo_path_data_t *data; *   * path = cairo_copy_path (cr); *   * for (i=0; i < path->num_data; i += path->data[i].header.length) { * data = &path->data[i]; * switch (data->header.type) { * case CAIRO_PATH_MOVE_TO: * do_move_to_things (data[1].point.x, data[1].point.y); * break; * case CAIRO_PATH_LINE_TO: * do_line_to_things (data[1].point.x, data[1].point.y); * break; * case CAIRO_PATH_CURVE_TO: * do_curve_to_things (data[1].point.x, data[1].point.y, * data[2].point.x, data[2].point.y, * data[3].point.x, data[3].point.y); * break; * case CAIRO_PATH_CLOSE_PATH: * do_close_path_things (); * break; * } * } * cairo_path_destroy (path); * * * As of cairo 1.4, cairo does not mind if there are more elements in * a portion of the path than needed. Such elements can be used by * users of the cairo API to hold extra values in the path data * structure. For this reason, it is recommended that applications * always use data->header.length to * iterate over the path data, instead of hardcoding the number of * elements for each element type. **/ typedef union _cairo_path_data_t cairo_path_data_t; union _cairo_path_data_t { struct { cairo_path_data_type_t type; int length; } header; struct { double x, y; } point; }; /** * cairo_path_t: * @status: the current error status * @data: the elements in the path * @num_data: the number of elements in the data array * * A data structure for holding a path. This data structure serves as * the return value for cairo_copy_path() and * cairo_copy_path_flat() as well the input value for * cairo_append_path(). * * See #cairo_path_data_t for hints on how to iterate over the * actual data within the path. * * The num_data member gives the number of elements in the data * array. This number is larger than the number of independent path * portions (defined in #cairo_path_data_type_t), since the data * includes both headers and coordinates for each portion. **/ typedef struct cairo_path { cairo_status_t status; cairo_path_data_t *data; int num_data; } cairo_path_t; extern cairo_path_t * _moz_cairo_copy_path (cairo_t *cr); extern cairo_path_t * _moz_cairo_copy_path_flat (cairo_t *cr); extern void _moz_cairo_append_path (cairo_t *cr, const cairo_path_t *path); extern void _moz_cairo_path_destroy (cairo_path_t *path); /* Error status queries */ extern cairo_status_t _moz_cairo_status (cairo_t *cr); extern const char * _moz_cairo_status_to_string (cairo_status_t status); /* Surface manipulation */ extern cairo_surface_t * _moz_cairo_surface_create_similar (cairo_surface_t *other, cairo_content_t content, int width, int height); extern cairo_surface_t * _moz_cairo_surface_reference (cairo_surface_t *surface); extern void _moz_cairo_surface_finish (cairo_surface_t *surface); extern void _moz_cairo_surface_destroy (cairo_surface_t *surface); extern unsigned int _moz_cairo_surface_get_reference_count (cairo_surface_t *surface); extern cairo_status_t _moz_cairo_surface_status (cairo_surface_t *surface); /** * cairo_surface_type_t: * @CAIRO_SURFACE_TYPE_IMAGE: The surface is of type image * @CAIRO_SURFACE_TYPE_PDF: The surface is of type pdf * @CAIRO_SURFACE_TYPE_PS: The surface is of type ps * @CAIRO_SURFACE_TYPE_XLIB: The surface is of type xlib * @CAIRO_SURFACE_TYPE_XCB: The surface is of type xcb * @CAIRO_SURFACE_TYPE_GLITZ: The surface is of type glitz * @CAIRO_SURFACE_TYPE_QUARTZ: The surface is of type quartz * @CAIRO_SURFACE_TYPE_WIN32: The surface is of type win32 * @CAIRO_SURFACE_TYPE_BEOS: The surface is of type beos * @CAIRO_SURFACE_TYPE_DIRECTFB: The surface is of type directfb * @CAIRO_SURFACE_TYPE_SVG: The surface is of type svg * @CAIRO_SURFACE_TYPE_OS2: The surface is of type os2 * @CAIRO_SURFACE_TYPE_WIN32_PRINTING: The surface is a win32 printing surface * @CAIRO_SURFACE_TYPE_QUARTZ_IMAGE: The surface is of type quartz_image * @CAIRO_SURFACE_TYPE_SCRIPT: The surface is of type script, since 1.10 * @CAIRO_SURFACE_TYPE_QT: The surface is of type Qt, since 1.10 * @CAIRO_SURFACE_TYPE_RECORDING: The surface is of type recording, since 1.10 * @CAIRO_SURFACE_TYPE_VG: The surface is a OpenVG surface, since 1.10 * @CAIRO_SURFACE_TYPE_GL: The surface is of type OpenGL, since 1.10 * @CAIRO_SURFACE_TYPE_DRM: The surface is of type Direct Render Manager, since 1.10 * @CAIRO_SURFACE_TYPE_TEE: The surface is of type 'tee' (a multiplexing surface), since 1.10 * @CAIRO_SURFACE_TYPE_XML: The surface is of type XML (for debugging), since 1.10 * @CAIRO_SURFACE_TYPE_SKIA: The surface is of type Skia, since 1.10 * * #cairo_surface_type_t is used to describe the type of a given * surface. The surface types are also known as "backends" or "surface * backends" within cairo. * * The type of a surface is determined by the function used to create * it, which will generally be of the form cairo_type_surface_create(), * (though see cairo_surface_create_similar() as well). * * The surface type can be queried with cairo_surface_get_type() * * The various #cairo_surface_t functions can be used with surfaces of * any type, but some backends also provide type-specific functions * that must only be called with a surface of the appropriate * type. These functions have names that begin with * cairo_type_surface such as cairo_image_surface_get_width(). * * The behavior of calling a type-specific function with a surface of * the wrong type is undefined. * * New entries may be added in future versions. * * Since: 1.2 **/ typedef enum _cairo_surface_type { CAIRO_SURFACE_TYPE_IMAGE, CAIRO_SURFACE_TYPE_PDF, CAIRO_SURFACE_TYPE_PS, CAIRO_SURFACE_TYPE_XLIB, CAIRO_SURFACE_TYPE_XCB, CAIRO_SURFACE_TYPE_GLITZ, CAIRO_SURFACE_TYPE_QUARTZ, CAIRO_SURFACE_TYPE_WIN32, CAIRO_SURFACE_TYPE_BEOS, CAIRO_SURFACE_TYPE_DIRECTFB, CAIRO_SURFACE_TYPE_SVG, CAIRO_SURFACE_TYPE_OS2, CAIRO_SURFACE_TYPE_WIN32_PRINTING, CAIRO_SURFACE_TYPE_QUARTZ_IMAGE, CAIRO_SURFACE_TYPE_SCRIPT, CAIRO_SURFACE_TYPE_QT, CAIRO_SURFACE_TYPE_RECORDING, CAIRO_SURFACE_TYPE_VG, CAIRO_SURFACE_TYPE_GL, CAIRO_SURFACE_TYPE_DRM, CAIRO_SURFACE_TYPE_TEE, CAIRO_SURFACE_TYPE_XML, CAIRO_SURFACE_TYPE_SKIA, CAIRO_SURFACE_TYPE_D2D } cairo_surface_type_t; extern cairo_surface_type_t _moz_cairo_surface_get_type (cairo_surface_t *surface); extern cairo_content_t _moz_cairo_surface_get_content (cairo_surface_t *surface); extern cairo_status_t _moz_cairo_surface_write_to_png (cairo_surface_t *surface, const char *filename); extern cairo_status_t _moz_cairo_surface_write_to_png_stream (cairo_surface_t *surface, cairo_write_func_t write_func, void *closure); #line 2034 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\cairo\\cairo.h" extern void * _moz_cairo_surface_get_user_data (cairo_surface_t *surface, const cairo_user_data_key_t *key); extern cairo_status_t _moz_cairo_surface_set_user_data (cairo_surface_t *surface, const cairo_user_data_key_t *key, void *user_data, cairo_destroy_func_t destroy); extern void cairo_surface_get_mime_data (cairo_surface_t *surface, const char *mime_type, const unsigned char **data, unsigned int *length); extern cairo_status_t cairo_surface_set_mime_data (cairo_surface_t *surface, const char *mime_type, const unsigned char *data, unsigned int length, cairo_destroy_func_t destroy, void *closure); extern void _moz_cairo_surface_get_font_options (cairo_surface_t *surface, cairo_font_options_t *options); extern void _moz_cairo_surface_flush (cairo_surface_t *surface); extern void _moz_cairo_surface_mark_dirty (cairo_surface_t *surface); extern void _moz_cairo_surface_mark_dirty_rectangle (cairo_surface_t *surface, int x, int y, int width, int height); extern void _moz_cairo_surface_set_device_offset (cairo_surface_t *surface, double x_offset, double y_offset); extern void _moz_cairo_surface_get_device_offset (cairo_surface_t *surface, double *x_offset, double *y_offset); extern void _moz_cairo_surface_set_fallback_resolution (cairo_surface_t *surface, double x_pixels_per_inch, double y_pixels_per_inch); extern void _moz_cairo_surface_get_fallback_resolution (cairo_surface_t *surface, double *x_pixels_per_inch, double *y_pixels_per_inch); extern void _moz_cairo_surface_copy_page (cairo_surface_t *surface); extern void _moz_cairo_surface_show_page (cairo_surface_t *surface); extern cairo_bool_t _moz_cairo_surface_has_show_text_glyphs (cairo_surface_t *surface); /* Image-surface functions */ /** * cairo_format_t: * @CAIRO_FORMAT_ARGB32: each pixel is a 32-bit quantity, with * alpha in the upper 8 bits, then red, then green, then blue. * The 32-bit quantities are stored native-endian. Pre-multiplied * alpha is used. (That is, 50% transparent red is 0x80800000, * not 0x80ff0000.) * @CAIRO_FORMAT_RGB24: each pixel is a 32-bit quantity, with * the upper 8 bits unused. Red, Green, and Blue are stored * in the remaining 24 bits in that order. * @CAIRO_FORMAT_A8: each pixel is a 8-bit quantity holding * an alpha value. * @CAIRO_FORMAT_A1: each pixel is a 1-bit quantity holding * an alpha value. Pixels are packed together into 32-bit * quantities. The ordering of the bits matches the * endianess of the platform. On a big-endian machine, the * first pixel is in the uppermost bit, on a little-endian * machine the first pixel is in the least-significant bit. * @CAIRO_FORMAT_RGB16_565: This format value is deprecated. It has * never been properly implemented in cairo and should not be used * by applications. (since 1.2) * * #cairo_format_t is used to identify the memory format of * image data. * * New entries may be added in future versions. **/ typedef enum _cairo_format { CAIRO_FORMAT_ARGB32, CAIRO_FORMAT_RGB24, CAIRO_FORMAT_A8, CAIRO_FORMAT_A1, CAIRO_FORMAT_RGB16_565 } cairo_format_t; extern cairo_surface_t * _moz_cairo_image_surface_create (cairo_format_t format, int width, int height); extern int _moz_cairo_format_stride_for_width (cairo_format_t format, int width); extern cairo_surface_t * _moz_cairo_image_surface_create_for_data (unsigned char *data, cairo_format_t format, int width, int height, int stride); extern unsigned char * _moz_cairo_image_surface_get_data (cairo_surface_t *surface); extern cairo_format_t _moz_cairo_image_surface_get_format (cairo_surface_t *surface); extern int _moz_cairo_image_surface_get_width (cairo_surface_t *surface); extern int _moz_cairo_image_surface_get_height (cairo_surface_t *surface); extern int _moz_cairo_image_surface_get_stride (cairo_surface_t *surface); extern cairo_surface_t * _moz_cairo_image_surface_create_from_png (const char *filename); extern cairo_surface_t * _moz_cairo_image_surface_create_from_png_stream (cairo_read_func_t read_func, void *closure); #line 2187 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\cairo\\cairo.h" /* Recording-surface functions */ extern cairo_surface_t * cairo_recording_surface_create (cairo_content_t content, const cairo_rectangle_t *extents); extern void cairo_recording_surface_ink_extents (cairo_surface_t *surface, double *x0, double *y0, double *width, double *height); /* Tee-surface functions */ extern cairo_surface_t * cairo_tee_surface_create (cairo_surface_t *master); extern void cairo_tee_surface_add (cairo_surface_t *surface, cairo_surface_t *target); extern void cairo_tee_surface_remove (cairo_surface_t *surface, cairo_surface_t *target); extern cairo_surface_t * cairo_tee_surface_index (cairo_surface_t *surface, int index); /* Pattern creation functions */ extern cairo_pattern_t * _moz_cairo_pattern_create_rgb (double red, double green, double blue); extern cairo_pattern_t * _moz_cairo_pattern_create_rgba (double red, double green, double blue, double alpha); extern cairo_pattern_t * _moz_cairo_pattern_create_for_surface (cairo_surface_t *surface); extern cairo_pattern_t * _moz_cairo_pattern_create_linear (double x0, double y0, double x1, double y1); extern cairo_pattern_t * _moz_cairo_pattern_create_radial (double cx0, double cy0, double radius0, double cx1, double cy1, double radius1); extern cairo_pattern_t * _moz_cairo_pattern_reference (cairo_pattern_t *pattern); extern void _moz_cairo_pattern_destroy (cairo_pattern_t *pattern); extern unsigned int _moz_cairo_pattern_get_reference_count (cairo_pattern_t *pattern); extern cairo_status_t _moz_cairo_pattern_status (cairo_pattern_t *pattern); extern void * _moz_cairo_pattern_get_user_data (cairo_pattern_t *pattern, const cairo_user_data_key_t *key); extern cairo_status_t _moz_cairo_pattern_set_user_data (cairo_pattern_t *pattern, const cairo_user_data_key_t *key, void *user_data, cairo_destroy_func_t destroy); /** * cairo_pattern_type_t: * @CAIRO_PATTERN_TYPE_SOLID: The pattern is a solid (uniform) * color. It may be opaque or translucent. * @CAIRO_PATTERN_TYPE_SURFACE: The pattern is a based on a surface (an image). * @CAIRO_PATTERN_TYPE_LINEAR: The pattern is a linear gradient. * @CAIRO_PATTERN_TYPE_RADIAL: The pattern is a radial gradient. * * #cairo_pattern_type_t is used to describe the type of a given pattern. * * The type of a pattern is determined by the function used to create * it. The cairo_pattern_create_rgb() and cairo_pattern_create_rgba() * functions create SOLID patterns. The remaining * cairo_pattern_create functions map to pattern types in obvious * ways. * * The pattern type can be queried with cairo_pattern_get_type() * * Most #cairo_pattern_t functions can be called with a pattern of any * type, (though trying to change the extend or filter for a solid * pattern will have no effect). A notable exception is * cairo_pattern_add_color_stop_rgb() and * cairo_pattern_add_color_stop_rgba() which must only be called with * gradient patterns (either LINEAR or RADIAL). Otherwise the pattern * will be shutdown and put into an error state. * * New entries may be added in future versions. * * Since: 1.2 **/ typedef enum _cairo_pattern_type { CAIRO_PATTERN_TYPE_SOLID, CAIRO_PATTERN_TYPE_SURFACE, CAIRO_PATTERN_TYPE_LINEAR, CAIRO_PATTERN_TYPE_RADIAL } cairo_pattern_type_t; extern cairo_pattern_type_t _moz_cairo_pattern_get_type (cairo_pattern_t *pattern); extern void _moz_cairo_pattern_add_color_stop_rgb (cairo_pattern_t *pattern, double offset, double red, double green, double blue); extern void _moz_cairo_pattern_add_color_stop_rgba (cairo_pattern_t *pattern, double offset, double red, double green, double blue, double alpha); extern void _moz_cairo_pattern_set_matrix (cairo_pattern_t *pattern, const cairo_matrix_t *matrix); extern void _moz_cairo_pattern_get_matrix (cairo_pattern_t *pattern, cairo_matrix_t *matrix); /** * cairo_extend_t: * @CAIRO_EXTEND_NONE: pixels outside of the source pattern * are fully transparent * @CAIRO_EXTEND_REPEAT: the pattern is tiled by repeating * @CAIRO_EXTEND_REFLECT: the pattern is tiled by reflecting * at the edges (Implemented for surface patterns since 1.6) * @CAIRO_EXTEND_PAD: pixels outside of the pattern copy * the closest pixel from the source (Since 1.2; but only * implemented for surface patterns since 1.6) * * #cairo_extend_t is used to describe how pattern color/alpha will be * determined for areas "outside" the pattern's natural area, (for * example, outside the surface bounds or outside the gradient * geometry). * * The default extend mode is %CAIRO_EXTEND_NONE for surface patterns * and %CAIRO_EXTEND_PAD for gradient patterns. * * New entries may be added in future versions. **/ typedef enum _cairo_extend { CAIRO_EXTEND_NONE, CAIRO_EXTEND_REPEAT, CAIRO_EXTEND_REFLECT, CAIRO_EXTEND_PAD } cairo_extend_t; extern void _moz_cairo_pattern_set_extend (cairo_pattern_t *pattern, cairo_extend_t extend); extern cairo_extend_t _moz_cairo_pattern_get_extend (cairo_pattern_t *pattern); /** * cairo_filter_t: * @CAIRO_FILTER_FAST: A high-performance filter, with quality similar * to %CAIRO_FILTER_NEAREST * @CAIRO_FILTER_GOOD: A reasonable-performance filter, with quality * similar to %CAIRO_FILTER_BILINEAR * @CAIRO_FILTER_BEST: The highest-quality available, performance may * not be suitable for interactive use. * @CAIRO_FILTER_NEAREST: Nearest-neighbor filtering * @CAIRO_FILTER_BILINEAR: Linear interpolation in two dimensions * @CAIRO_FILTER_GAUSSIAN: This filter value is currently * unimplemented, and should not be used in current code. * * #cairo_filter_t is used to indicate what filtering should be * applied when reading pixel values from patterns. See * cairo_pattern_set_source() for indicating the desired filter to be * used with a particular pattern. */ typedef enum _cairo_filter { CAIRO_FILTER_FAST, CAIRO_FILTER_GOOD, CAIRO_FILTER_BEST, CAIRO_FILTER_NEAREST, CAIRO_FILTER_BILINEAR, CAIRO_FILTER_GAUSSIAN } cairo_filter_t; extern void _moz_cairo_pattern_set_filter (cairo_pattern_t *pattern, cairo_filter_t filter); extern cairo_filter_t _moz_cairo_pattern_get_filter (cairo_pattern_t *pattern); extern cairo_status_t _moz_cairo_pattern_get_rgba (cairo_pattern_t *pattern, double *red, double *green, double *blue, double *alpha); extern cairo_status_t _moz_cairo_pattern_get_surface (cairo_pattern_t *pattern, cairo_surface_t **surface); extern cairo_status_t _moz_cairo_pattern_get_color_stop_rgba (cairo_pattern_t *pattern, int index, double *offset, double *red, double *green, double *blue, double *alpha); extern cairo_status_t _moz_cairo_pattern_get_color_stop_count (cairo_pattern_t *pattern, int *count); extern cairo_status_t _moz_cairo_pattern_get_linear_points (cairo_pattern_t *pattern, double *x0, double *y0, double *x1, double *y1); extern cairo_status_t _moz_cairo_pattern_get_radial_circles (cairo_pattern_t *pattern, double *x0, double *y0, double *r0, double *x1, double *y1, double *r1); /* Matrix functions */ extern void _moz_cairo_matrix_init (cairo_matrix_t *matrix, double xx, double yx, double xy, double yy, double x0, double y0); extern void _moz_cairo_matrix_init_identity (cairo_matrix_t *matrix); extern void _moz_cairo_matrix_init_translate (cairo_matrix_t *matrix, double tx, double ty); extern void _moz_cairo_matrix_init_scale (cairo_matrix_t *matrix, double sx, double sy); extern void _moz_cairo_matrix_init_rotate (cairo_matrix_t *matrix, double radians); extern void _moz_cairo_matrix_translate (cairo_matrix_t *matrix, double tx, double ty); extern void _moz_cairo_matrix_scale (cairo_matrix_t *matrix, double sx, double sy); extern void _moz_cairo_matrix_rotate (cairo_matrix_t *matrix, double radians); extern cairo_status_t _moz_cairo_matrix_invert (cairo_matrix_t *matrix); extern void _moz_cairo_matrix_multiply (cairo_matrix_t *result, const cairo_matrix_t *a, const cairo_matrix_t *b); extern void _moz_cairo_matrix_transform_distance (const cairo_matrix_t *matrix, double *dx, double *dy); extern void _moz_cairo_matrix_transform_point (const cairo_matrix_t *matrix, double *x, double *y); /* Region functions */ typedef struct _cairo_region cairo_region_t; typedef struct _cairo_rectangle_int { int x, y; int width, height; } cairo_rectangle_int_t; typedef enum _cairo_region_overlap { CAIRO_REGION_OVERLAP_IN, /* completely inside region */ CAIRO_REGION_OVERLAP_OUT, /* completely outside region */ CAIRO_REGION_OVERLAP_PART /* partly inside region */ } cairo_region_overlap_t; extern cairo_region_t * cairo_region_create (void); extern cairo_region_t * cairo_region_create_rectangle (const cairo_rectangle_int_t *rectangle); extern cairo_region_t * cairo_region_create_rectangles (const cairo_rectangle_int_t *rects, int count); extern cairo_region_t * cairo_region_copy (const cairo_region_t *original); extern cairo_region_t * cairo_region_reference (cairo_region_t *); extern void cairo_region_destroy (cairo_region_t *region); extern cairo_bool_t cairo_region_equal (const cairo_region_t *a, const cairo_region_t *b); extern cairo_status_t cairo_region_status (const cairo_region_t *region); extern void cairo_region_get_extents (const cairo_region_t *region, cairo_rectangle_int_t *extents); extern int cairo_region_num_rectangles (const cairo_region_t *region); extern void cairo_region_get_rectangle (const cairo_region_t *region, int nth_rectangle, cairo_rectangle_int_t *rectangle); extern cairo_bool_t cairo_region_is_empty (const cairo_region_t *region); extern cairo_region_overlap_t cairo_region_contains_rectangle (const cairo_region_t *region, const cairo_rectangle_int_t *rectangle); extern cairo_bool_t cairo_region_contains_point (const cairo_region_t *region, int x, int y); extern void cairo_region_translate (cairo_region_t *region, int dx, int dy); extern cairo_status_t cairo_region_subtract (cairo_region_t *dst, const cairo_region_t *other); extern cairo_status_t cairo_region_subtract_rectangle (cairo_region_t *dst, const cairo_rectangle_int_t *rectangle); extern cairo_status_t cairo_region_intersect (cairo_region_t *dst, cairo_region_t *other); extern cairo_status_t cairo_region_intersect_rectangle (cairo_region_t *dst, const cairo_rectangle_int_t *rectangle); extern cairo_status_t cairo_region_union (cairo_region_t *dst, cairo_region_t *other); extern cairo_status_t cairo_region_union_rectangle (cairo_region_t *dst, const cairo_rectangle_int_t *rectangle); /* Functions to be used while debugging (not intended for use in production code) */ extern void _moz_cairo_debug_reset_static_data (void); } #line 2559 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\cairo\\cairo.h" #line 52 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxWindowsPlatform.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFontUtils.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla Foundation code. * * The Initial Developer of the Original Code is Mozilla Foundation. * Portions created by the Initial Developer are Copyright (C) 2005-2009 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * John Daggett * Jonathan Kew * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxTypes.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 44 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFontUtils.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* ** File: prtypes.h ** Description: Definitions of NSPR's basic types ** ** Prototypes and macros used to make up for deficiencies that we have found ** in ANSI environments. ** ** Since we do not wrap and all the other standard headers, authors ** of portable code will not know in general that they need these definitions. ** Instead of requiring these authors to find the dependent uses in their code ** and take the following steps only in those C files, we take steps once here ** for all C files. **/ #line 46 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFontUtils.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prcpucfg.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 47 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFontUtils.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsDataHashtable.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is C++ hashtable templates. * * The Initial Developer of the Original Code is * Benjamin Smedberg. * Portions created by the Initial Developer are Copyright (C) 2002 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 49 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFontUtils.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsITimer.h" /* * DO NOT EDIT. THIS FILE IS GENERATED FROM c:/build/hg.instantbird.org/mozilla/xpcom/threads/nsITimer.idl */ /* For IDL files that don't want to include root IDL files. */ class nsIObserver; /* forward declaration */ class nsIEventTarget; /* forward declaration */ /** * The signature of the timer callback function passed to initWithFuncCallback. * This is the function that will get called when the timer expires if the * timer is initialized via initWithFuncCallback. * * @param aTimer the timer which has expired * @param aClosure opaque parameter passed to initWithFuncCallback * * Implementers should return the following: * * @return NS_OK * */ class nsITimer; typedef void (*nsTimerCallbackFunc) (nsITimer *aTimer, void *aClosure); class nsITimer; /* forward declaration */ /* starting interface: nsITimerCallback */ class __declspec(novtable) nsITimerCallback : public nsISupports { public: template struct COMTypeInfo { static const nsIID kIID ; }; static const nsIID& GetIID() {return COMTypeInfo::kIID;} /** * @param aTimer the timer which has expired */ /* void notify (in nsITimer timer); */ virtual nsresult __stdcall Notify(nsITimer *timer) = 0; }; template const nsIID nsITimerCallback::COMTypeInfo::kIID = {0xa796816d, 0x7d47, 0x4348, { 0x9a, 0xb8, 0xc7, 0xae, 0xb3, 0x21, 0x6a, 0x7d }}; /* Use this macro when declaring classes that implement this interface. */ /* Use this macro to declare functions that forward the behavior of this interface to another object. */ /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */ #line 113 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsITimer.h" /* starting interface: nsITimer */ /** * The callback interface for timers. */ class __declspec(novtable) nsITimer : public nsISupports { public: template struct COMTypeInfo { static const nsIID kIID ; }; static const nsIID& GetIID() {return COMTypeInfo::kIID;} /** * nsITimer instances must be initialized by calling one of the "init" methods * documented below. You may also re-initialize (using one of the init() * methods) an existing instance to avoid the overhead of destroying and * creating a timer. It is not necessary to cancel the timer in that case. */ /** * Type of a timer that fires once only. */ enum { TYPE_ONE_SHOT = 0 }; /** * After firing, a TYPE_REPEATING_SLACK timer is stopped and not restarted * until its callback completes. Specified timer period will be at least * the time between when processing for last firing the callback completes * and when the next firing occurs. * * This is the preferable repeating type for most situations. */ enum { TYPE_REPEATING_SLACK = 1 }; /** * An TYPE_REPEATING_PRECISE repeating timer aims to have constant period * between firings. The processing time for each timer callback should not * influence the timer period. However, if the processing for the last * timer firing could not be completed until just before the next firing * occurs, then you could have two timer notification routines being * executed in quick succession. */ enum { TYPE_REPEATING_PRECISE = 2 }; /** * Initialize a timer that will fire after the said delay. * A user must keep a reference to this timer till it is * is no longer needed or has been cancelled. * * @param aObserver the callback object that observes the * ``timer-callback'' topic with the subject being * the timer itself when the timer fires: * * observe(nsISupports aSubject, => nsITimer * string aTopic, => ``timer-callback'' * wstring data => null * * @param aDelay delay in milliseconds for timer to fire * @param aType timer type per TYPE* consts defined above */ /* void init (in nsIObserver aObserver, in unsigned long aDelay, in unsigned long aType); */ virtual nsresult __stdcall Init(nsIObserver *aObserver, PRUint32 aDelay, PRUint32 aType) = 0; /** * Initialize a timer to fire after the given millisecond interval. * This version takes a function to call and a closure to pass to * that function. * * @param aFunc The function to invoke * @param aClosure An opaque pointer to pass to that function * @param aDelay The millisecond interval * @param aType Timer type per TYPE* consts defined above */ /* [noscript] void initWithFuncCallback (in nsTimerCallbackFunc aCallback, in voidPtr aClosure, in unsigned long aDelay, in unsigned long aType); */ virtual nsresult __stdcall InitWithFuncCallback(nsTimerCallbackFunc aCallback, void *aClosure, PRUint32 aDelay, PRUint32 aType) = 0; /** * Initialize a timer to fire after the given millisecond interval. * This version takes a function to call and a closure to pass to * that function. * * @param aFunc nsITimerCallback interface to call when timer expires * @param aDelay The millisecond interval * @param aType Timer type per TYPE* consts defined above */ /* void initWithCallback (in nsITimerCallback aCallback, in unsigned long aDelay, in unsigned long aType); */ virtual nsresult __stdcall InitWithCallback(nsITimerCallback *aCallback, PRUint32 aDelay, PRUint32 aType) = 0; /** * Cancel the timer. This method works on all types, not just on repeating * timers -- you might want to cancel a TYPE_ONE_SHOT timer, and even reuse * it by re-initializing it (to avoid object destruction and creation costs * by conserving one timer instance). */ /* void cancel (); */ virtual nsresult __stdcall Cancel(void) = 0; /** * The millisecond delay of the timeout. * * NOTE: Re-setting the delay on a one-shot timer that has already fired * doesn't restart the timer. Call one of the init() methods to restart * a one-shot timer. */ /* attribute unsigned long delay; */ virtual nsresult __stdcall GetDelay(PRUint32 *aDelay) = 0; virtual nsresult __stdcall SetDelay(PRUint32 aDelay) = 0; /** * The timer type - one of the above TYPE_* constants. */ /* attribute unsigned long type; */ virtual nsresult __stdcall GetType(PRUint32 *aType) = 0; virtual nsresult __stdcall SetType(PRUint32 aType) = 0; /** * The opaque pointer pass to initWithFuncCallback. */ /* [noscript] readonly attribute voidPtr closure; */ virtual nsresult __stdcall GetClosure(void **aClosure) = 0; /** * The nsITimerCallback object passed to initWithCallback. */ /* readonly attribute nsITimerCallback callback; */ virtual nsresult __stdcall GetCallback(nsITimerCallback **aCallback) = 0; /** * The nsIEventTarget where the callback will be dispatched. Note that this * target may only be set before the call to one of the init methods above. */ /* attribute nsIEventTarget target; */ virtual nsresult __stdcall GetTarget(nsIEventTarget **aTarget) = 0; virtual nsresult __stdcall SetTarget(nsIEventTarget *aTarget) = 0; }; template const nsIID nsITimer::COMTypeInfo::kIID = {0x193fc37a, 0x8aa4, 0x4d29, { 0xaa, 0x57, 0x1a, 0xcd, 0x87, 0xc2, 0x6b, 0x66 }}; /* Use this macro when declaring classes that implement this interface. */ /* Use this macro to declare functions that forward the behavior of this interface to another object. */ /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */ #line 401 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsITimer.h" #line 406 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsITimer.h" #line 51 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFontUtils.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCOMPtr.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Scott Collins (original author) * L. David Baron * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 52 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFontUtils.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIRunnable.h" /* * DO NOT EDIT. THIS FILE IS GENERATED FROM c:/build/hg.instantbird.org/mozilla/xpcom/threads/nsIRunnable.idl */ #line 53 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFontUtils.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsThreadUtils.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla code. * * The Initial Developer of the Original Code is Google Inc. * Portions created by the Initial Developer are Copyright (C) 2006 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 54 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFontUtils.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsComponentManagerUtils.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org Code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nscore.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 43 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsComponentManagerUtils.h" #line 44 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsComponentManagerUtils.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCOMPtr.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Scott Collins (original author) * L. David Baron * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 47 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsComponentManagerUtils.h" #line 48 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsComponentManagerUtils.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIFactory.h" /* * DO NOT EDIT. THIS FILE IS GENERATED FROM c:/build/hg.instantbird.org/mozilla/xpcom/components/nsIFactory.idl */ /* For IDL files that don't want to include root IDL files. */ /* starting interface: nsIFactory */ /** * A class factory allows the creation of nsISupports derived * components without specifying a concrete base class. */ class __declspec(novtable) nsIFactory : public nsISupports { public: template struct COMTypeInfo { static const nsIID kIID ; }; static const nsIID& GetIID() {return COMTypeInfo::kIID;} /** * Creates an instance of a component. * * @param aOuter Pointer to a component that wishes to be aggregated * in the resulting instance. This will be nsnull if no * aggregation is requested. * @param iid The IID of the interface being requested in * the component which is being currently created. * @param result [out] Pointer to the newly created instance, if successful. * @return NS_OK - Component successfully created and the interface * being requested was successfully returned in result. * NS_NOINTERFACE - Interface not accessible. * NS_ERROR_NO_AGGREGATION - if an 'outer' object is supplied, but the * component is not aggregatable. * NS_ERROR* - Method failure. */ /* void createInstance (in nsISupports aOuter, in nsIIDRef iid, [iid_is (iid), retval] out nsQIResult result); */ virtual nsresult __stdcall CreateInstance(nsISupports *aOuter, const nsIID & iid, void **result ) = 0; /** * LockFactory provides the client a way to keep the component * in memory until it is finished with it. The client can call * LockFactory(PR_TRUE) to lock the factory and LockFactory(PR_FALSE) * to release the factory. * * @param lock - Must be PR_TRUE or PR_FALSE * @return NS_OK - If the lock operation was successful. * NS_ERROR* - Method failure. */ /* void lockFactory (in PRBool lock); */ virtual nsresult __stdcall LockFactory(PRBool lock) = 0; }; template const nsIID nsIFactory::COMTypeInfo::kIID = {0x00000001, 0x0000, 0x0000, { 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46 }}; /* Use this macro when declaring classes that implement this interface. */ /* Use this macro to declare functions that forward the behavior of this interface to another object. */ /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */ #line 131 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIFactory.h" #line 134 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIFactory.h" #line 50 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsComponentManagerUtils.h" nsresult CallCreateInstance (const nsCID &aClass, nsISupports *aDelegate, const nsIID &aIID, void **aResult); nsresult CallCreateInstance (const char *aContractID, nsISupports *aDelegate, const nsIID &aIID, void **aResult); nsresult CallGetClassObject (const nsCID &aClass, const nsIID &aIID, void **aResult); nsresult CallGetClassObject (const char *aContractID, const nsIID &aIID, void **aResult); class nsCreateInstanceByCID : public nsCOMPtr_helper { public: nsCreateInstanceByCID( const nsCID& aCID, nsISupports* aOuter, nsresult* aErrorPtr ) : mCID(aCID), mOuter(aOuter), mErrorPtr(aErrorPtr) { // nothing else to do here } virtual nsresult __fastcall operator()( const nsIID&, void** ) const; private: const nsCID& mCID; nsISupports* mOuter; nsresult* mErrorPtr; }; class nsCreateInstanceByContractID : public nsCOMPtr_helper { public: nsCreateInstanceByContractID( const char* aContractID, nsISupports* aOuter, nsresult* aErrorPtr ) : mContractID(aContractID), mOuter(aOuter), mErrorPtr(aErrorPtr) { // nothing else to do here } virtual nsresult __fastcall operator()( const nsIID&, void** ) const; private: const char* mContractID; nsISupports* mOuter; nsresult* mErrorPtr; }; class nsCreateInstanceFromFactory : public nsCOMPtr_helper { public: nsCreateInstanceFromFactory( nsIFactory* aFactory, nsISupports* aOuter, nsresult* aErrorPtr ) : mFactory(aFactory), mOuter(aOuter), mErrorPtr(aErrorPtr) { // nothing else to do here } virtual nsresult __fastcall operator()( const nsIID&, void** ) const; private: nsIFactory* mFactory; nsISupports* mOuter; nsresult* mErrorPtr; }; inline const nsCreateInstanceByCID do_CreateInstance( const nsCID& aCID, nsresult* error = 0 ) { return nsCreateInstanceByCID(aCID, 0, error); } inline const nsCreateInstanceByCID do_CreateInstance( const nsCID& aCID, nsISupports* aOuter, nsresult* error = 0 ) { return nsCreateInstanceByCID(aCID, aOuter, error); } inline const nsCreateInstanceByContractID do_CreateInstance( const char* aContractID, nsresult* error = 0 ) { return nsCreateInstanceByContractID(aContractID, 0, error); } inline const nsCreateInstanceByContractID do_CreateInstance( const char* aContractID, nsISupports* aOuter, nsresult* error = 0 ) { return nsCreateInstanceByContractID(aContractID, aOuter, error); } inline const nsCreateInstanceFromFactory do_CreateInstance( nsIFactory* aFactory, nsresult* error = 0 ) { return nsCreateInstanceFromFactory(aFactory, 0, error); } inline const nsCreateInstanceFromFactory do_CreateInstance( nsIFactory* aFactory, nsISupports* aOuter, nsresult* error = 0 ) { return nsCreateInstanceFromFactory(aFactory, aOuter, error); } class nsGetClassObjectByCID : public nsCOMPtr_helper { public: nsGetClassObjectByCID( const nsCID& aCID, nsresult* aErrorPtr ) : mCID(aCID), mErrorPtr(aErrorPtr) { // nothing else to do here } virtual nsresult __fastcall operator()( const nsIID&, void** ) const; private: const nsCID& mCID; nsresult* mErrorPtr; }; class nsGetClassObjectByContractID : public nsCOMPtr_helper { public: nsGetClassObjectByContractID( const char* aContractID, nsresult* aErrorPtr ) : mContractID(aContractID), mErrorPtr(aErrorPtr) { // nothing else to do here } virtual nsresult __fastcall operator()( const nsIID&, void** ) const; private: const char* mContractID; nsresult* mErrorPtr; }; /** * do_GetClassObject can be used to improve performance of callers * that call |CreateInstance| many times. They can cache the factory * and call do_CreateInstance or CallCreateInstance with the cached * factory rather than having the component manager retrieve it every * time. */ inline const nsGetClassObjectByCID do_GetClassObject( const nsCID& aCID, nsresult* error = 0 ) { return nsGetClassObjectByCID(aCID, error); } inline const nsGetClassObjectByContractID do_GetClassObject( const char* aContractID, nsresult* error = 0 ) { return nsGetClassObjectByContractID(aContractID, error); } // type-safe shortcuts for calling |CreateInstance| template inline nsresult CallCreateInstance( const nsCID &aClass, nsISupports *aDelegate, DestinationType** aDestination ) { do { if (!(aDestination)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "null parameter", "aDestination", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsComponentManagerUtils.h", 233); } } while (0); return CallCreateInstance(aClass, aDelegate, (DestinationType::template COMTypeInfo::kIID), reinterpret_cast(aDestination)); } template inline nsresult CallCreateInstance( const nsCID &aClass, DestinationType** aDestination ) { do { if (!(aDestination)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "null parameter", "aDestination", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsComponentManagerUtils.h", 246); } } while (0); return CallCreateInstance(aClass, 0L, (DestinationType::template COMTypeInfo::kIID), reinterpret_cast(aDestination)); } template inline nsresult CallCreateInstance( const char *aContractID, nsISupports *aDelegate, DestinationType** aDestination ) { do { if (!(aContractID)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "null parameter", "aContractID", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsComponentManagerUtils.h", 260); } } while (0); do { if (!(aDestination)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "null parameter", "aDestination", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsComponentManagerUtils.h", 261); } } while (0); return CallCreateInstance(aContractID, aDelegate, (DestinationType::template COMTypeInfo::kIID), reinterpret_cast(aDestination)); } template inline nsresult CallCreateInstance( const char *aContractID, DestinationType** aDestination ) { do { if (!(aContractID)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "null parameter", "aContractID", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsComponentManagerUtils.h", 275); } } while (0); do { if (!(aDestination)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "null parameter", "aDestination", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsComponentManagerUtils.h", 276); } } while (0); return CallCreateInstance(aContractID, 0L, (DestinationType::template COMTypeInfo::kIID), reinterpret_cast(aDestination)); } template inline nsresult CallCreateInstance( nsIFactory *aFactory, nsISupports *aDelegate, DestinationType** aDestination ) { do { if (!(aFactory)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "null parameter", "aFactory", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsComponentManagerUtils.h", 290); } } while (0); do { if (!(aDestination)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "null parameter", "aDestination", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsComponentManagerUtils.h", 291); } } while (0); return aFactory->CreateInstance(aDelegate, (DestinationType::template COMTypeInfo::kIID), reinterpret_cast(aDestination)); } template inline nsresult CallCreateInstance( nsIFactory *aFactory, DestinationType** aDestination ) { do { if (!(aFactory)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "null parameter", "aFactory", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsComponentManagerUtils.h", 304); } } while (0); do { if (!(aDestination)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "null parameter", "aDestination", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsComponentManagerUtils.h", 305); } } while (0); return aFactory->CreateInstance(0L, (DestinationType::template COMTypeInfo::kIID), reinterpret_cast(aDestination)); } template inline nsresult CallGetClassObject( const nsCID &aClass, DestinationType** aDestination ) { do { if (!(aDestination)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "null parameter", "aDestination", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsComponentManagerUtils.h", 318); } } while (0); return CallGetClassObject(aClass, (DestinationType::template COMTypeInfo::kIID), reinterpret_cast(aDestination)); } template inline nsresult CallGetClassObject( const char* aContractID, DestinationType** aDestination ) { do { if (!(aDestination)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "null parameter", "aDestination", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsComponentManagerUtils.h", 330); } } while (0); return CallGetClassObject(aContractID, (DestinationType::template COMTypeInfo::kIID), reinterpret_cast(aDestination)); } #line 337 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsComponentManagerUtils.h" #line 55 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFontUtils.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTArray.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is C++ array template. * * The Initial Developer of the Original Code is Google Inc. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 56 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFontUtils.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAutoPtr.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Scott Collins (original author of nsCOMPtr) * L. David Baron * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 57 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFontUtils.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIStreamBufferAccess.h" /* * DO NOT EDIT. THIS FILE IS GENERATED FROM c:/build/hg.instantbird.org/mozilla/xpcom/io/nsIStreamBufferAccess.idl */ /* For IDL files that don't want to include root IDL files. */ /* starting interface: nsIStreamBufferAccess */ /** * An interface for access to a buffering stream implementation's underlying * memory buffer. * * Stream implementations that QueryInterface to nsIStreamBufferAccess must * ensure that all buffers are aligned on the most restrictive type size for * the current architecture (e.g., sizeof(double) for RISCy CPUs). malloc(3) * satisfies this requirement. */ class __declspec(novtable) nsIStreamBufferAccess : public nsISupports { public: template struct COMTypeInfo { static const nsIID kIID ; }; static const nsIID& GetIID() {return COMTypeInfo::kIID;} /** * Get access to a contiguous, aligned run of bytes in the stream's buffer. * Exactly one successful getBuffer call must occur before a putBuffer call * taking the non-null pointer returned by the successful getBuffer. * * The run of bytes are the next bytes (modulo alignment padding) to read * for an input stream, and the next bytes (modulo alignment padding) to * store before (eventually) writing buffered data to an output stream. * There can be space beyond this run of bytes in the buffer for further * accesses before the fill or flush point is reached. * * @param aLength * Count of contiguous bytes requested at the address A that satisfies * (A & aAlignMask) == 0 in the buffer, starting from the current stream * position, mapped to a buffer address B. The stream implementation * must pad from B to A by skipping bytes (if input stream) or storing * zero bytes (if output stream). * * @param aAlignMask * Bit-mask computed by subtracting 1 from the power-of-two alignment * modulus (e.g., 3 or sizeof(PRUint32)-1 for PRUint32 alignment). * * @return * The aligned pointer to aLength bytes in the buffer, or null if the * buffer has no room for aLength bytes starting at the next address A * after the current position that satisfies (A & aAlignMask) == 0. */ /* [notxpcom] charPtr getBuffer (in PRUint32 aLength, in PRUint32 aAlignMask); */ virtual char * __stdcall GetBuffer(PRUint32 aLength, PRUint32 aAlignMask) = 0; /** * Relinquish access to the stream's buffer, filling if at end of an input * buffer, flushing if completing an output buffer. After a getBuffer call * that returns non-null, putBuffer must be called. * * @param aBuffer * A non-null pointer returned by getBuffer on the same stream buffer * access object. * * @param aLength * The same count of contiguous bytes passed to the getBuffer call that * returned aBuffer. */ /* [notxpcom] void putBuffer (in charPtr aBuffer, in PRUint32 aLength); */ virtual void __stdcall PutBuffer(char *aBuffer, PRUint32 aLength) = 0; /** * Disable and enable buffering on the stream implementing this interface. * DisableBuffering flushes an output stream's buffer, and invalidates an * input stream's buffer. */ /* void disableBuffering (); */ virtual nsresult __stdcall DisableBuffering(void) = 0; /* void enableBuffering (); */ virtual nsresult __stdcall EnableBuffering(void) = 0; /** * The underlying, unbuffered input or output stream. */ /* readonly attribute nsISupports unbufferedStream; */ virtual nsresult __stdcall GetUnbufferedStream(nsISupports **aUnbufferedStream) = 0; }; template const nsIID nsIStreamBufferAccess::COMTypeInfo::kIID = {0xac923b72, 0xac87, 0x4892, { 0xac, 0x7a, 0xca, 0x38, 0x5d, 0x42, 0x94, 0x35 }}; /* Use this macro when declaring classes that implement this interface. */ /* Use this macro to declare functions that forward the behavior of this interface to another object. */ /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */ #line 198 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIStreamBufferAccess.h" // Swap macros, used to convert to/from canonical (big-endian) format // We want to avoid casting to 32-bit types if possible, since that violates // aliasing rules (a standard compiler may assume that pointers of two types // do not address overlapping storage). // // XXX What if we have a compiler that follows aliasing rules strictly but // doesn't have a 64-bit int type? // // XXXbe shouldn't NSPR's LL_INIT work for non-constant arguments in all cases? #line 215 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIStreamBufferAccess.h" #line 219 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIStreamBufferAccess.h" #line 237 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIStreamBufferAccess.h" #line 244 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIStreamBufferAccess.h" /** * These macros get and put a buffer given either an sba parameter that may * point to an object implementing nsIStreamBufferAccess, nsIObjectInputStream, * or nsIObjectOutputStream. */ #line 265 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIStreamBufferAccess.h" #line 58 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFontUtils.h" /* Bug 341128 - w32api defines min/max which causes problems with */ class gfxSparseBitSet { private: enum { BLOCK_SIZE = 32 }; // ==> 256 codepoints per block enum { BLOCK_SIZE_BITS = BLOCK_SIZE * 8 }; enum { BLOCK_INDEX_SHIFT = 8 }; struct Block { Block(const Block& aBlock) { memcpy(mBits, aBlock.mBits, sizeof(mBits)); } Block(unsigned char memsetValue = 0) { memset(mBits, memsetValue, BLOCK_SIZE); } PRUint8 mBits[BLOCK_SIZE]; }; public: gfxSparseBitSet() { } gfxSparseBitSet(const gfxSparseBitSet& aBitset) { PRUint32 len = aBitset.mBlocks.Length(); mBlocks.AppendElements(len); for (PRUint32 i = 0; i < len; ++i) { Block *block = aBitset.mBlocks[i]; if (block) mBlocks[i] = new Block(*block); } } PRBool test(PRUint32 aIndex) const { do { if (!(mBlocks.DebugGetHeader())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "mHdr is null, this is bad", "mBlocks.DebugGetHeader()", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFontUtils.h", 89); } } while (0); PRUint32 blockIndex = aIndex/BLOCK_SIZE_BITS; if (blockIndex >= mBlocks.Length()) return 0; Block *block = mBlocks[blockIndex]; if (!block) return 0; return ((block->mBits[(aIndex>>3) & (BLOCK_SIZE - 1)]) & (1 << (aIndex & 0x7))) != 0; } PRBool TestRange(PRUint32 aStart, PRUint32 aEnd) { PRUint32 startBlock, endBlock, blockLen; // start point is beyond the end of the block array? return false immediately startBlock = aStart >> BLOCK_INDEX_SHIFT; blockLen = mBlocks.Length(); if (startBlock >= blockLen) return 0; // check for blocks in range, if none, return false PRUint32 blockIndex; PRBool hasBlocksInRange = 0; endBlock = aEnd >> BLOCK_INDEX_SHIFT; blockIndex = startBlock; for (blockIndex = startBlock; blockIndex <= endBlock; blockIndex++) { if (blockIndex < blockLen && mBlocks[blockIndex]) hasBlocksInRange = 1; } if (!hasBlocksInRange) return 0; Block *block; PRUint32 i, start, end; // first block, check bits if ((block = mBlocks[startBlock])) { start = aStart; end = ((aEnd)<(((startBlock+1) << BLOCK_INDEX_SHIFT) - 1)?(aEnd):(((startBlock+1) << BLOCK_INDEX_SHIFT) - 1)); for (i = start; i <= end; i++) { if ((block->mBits[(i>>3) & (BLOCK_SIZE - 1)]) & (1 << (i & 0x7))) return 1; } } if (endBlock == startBlock) return 0; // [2..n-1] blocks check bytes for (blockIndex = startBlock + 1; blockIndex < endBlock; blockIndex++) { PRUint32 index; if (blockIndex >= blockLen || !(block = mBlocks[blockIndex])) continue; for (index = 0; index < BLOCK_SIZE; index++) { if (block->mBits[index]) return 1; } } // last block, check bits if (endBlock < blockLen && (block = mBlocks[endBlock])) { start = endBlock << BLOCK_INDEX_SHIFT; end = aEnd; for (i = start; i <= end; i++) { if ((block->mBits[(i>>3) & (BLOCK_SIZE - 1)]) & (1 << (i & 0x7))) return 1; } } return 0; } void set(PRUint32 aIndex) { PRUint32 blockIndex = aIndex/BLOCK_SIZE_BITS; if (blockIndex >= mBlocks.Length()) { nsAutoPtr *blocks = mBlocks.AppendElements(blockIndex + 1 - mBlocks.Length()); if ((!!(!blocks))) // OOM return; } Block *block = mBlocks[blockIndex]; if (!block) { block = new Block; if ((!!(!block))) // OOM return; mBlocks[blockIndex] = block; } block->mBits[(aIndex>>3) & (BLOCK_SIZE - 1)] |= 1 << (aIndex & 0x7); } void set(PRUint32 aIndex, PRBool aValue) { if (aValue) set(aIndex); else clear(aIndex); } void SetRange(PRUint32 aStart, PRUint32 aEnd) { const PRUint32 startIndex = aStart/BLOCK_SIZE_BITS; const PRUint32 endIndex = aEnd/BLOCK_SIZE_BITS; if (endIndex >= mBlocks.Length()) { PRUint32 numNewBlocks = endIndex + 1 - mBlocks.Length(); nsAutoPtr *blocks = mBlocks.AppendElements(numNewBlocks); if ((!!(!blocks))) // OOM return; } for (PRUint32 i = startIndex; i <= endIndex; ++i) { const PRUint32 blockFirstBit = i * BLOCK_SIZE_BITS; const PRUint32 blockLastBit = blockFirstBit + BLOCK_SIZE_BITS - 1; Block *block = mBlocks[i]; if (!block) { PRBool fullBlock = 0; if (aStart <= blockFirstBit && aEnd >= blockLastBit) fullBlock = 1; block = new Block(fullBlock ? 0xFF : 0); if ((!!(!block))) // OOM return; mBlocks[i] = block; if (fullBlock) continue; } const PRUint32 start = aStart > blockFirstBit ? aStart - blockFirstBit : 0; const PRUint32 end = ((aEnd - blockFirstBit)<(BLOCK_SIZE_BITS - 1)?(aEnd - blockFirstBit):(BLOCK_SIZE_BITS - 1)); for (PRUint32 bit = start; bit <= end; ++bit) { block->mBits[bit>>3] |= 1 << (bit & 0x7); } } } void clear(PRUint32 aIndex) { PRUint32 blockIndex = aIndex/BLOCK_SIZE_BITS; if (blockIndex >= mBlocks.Length()) { nsAutoPtr *blocks = mBlocks.AppendElements(blockIndex + 1 - mBlocks.Length()); if ((!!(!blocks))) // OOM return; } Block *block = mBlocks[blockIndex]; if (!block) { return; } block->mBits[(aIndex>>3) & (BLOCK_SIZE - 1)] &= ~(1 << (aIndex & 0x7)); } void ClearRange(PRUint32 aStart, PRUint32 aEnd) { const PRUint32 startIndex = aStart/BLOCK_SIZE_BITS; const PRUint32 endIndex = aEnd/BLOCK_SIZE_BITS; if (endIndex >= mBlocks.Length()) { PRUint32 numNewBlocks = endIndex + 1 - mBlocks.Length(); nsAutoPtr *blocks = mBlocks.AppendElements(numNewBlocks); if ((!!(!blocks))) // OOM return; } for (PRUint32 i = startIndex; i <= endIndex; ++i) { const PRUint32 blockFirstBit = i * BLOCK_SIZE_BITS; Block *block = mBlocks[i]; if (!block) { // any nonexistent block is implicitly all clear, // so there's no need to even create it continue; } const PRUint32 start = aStart > blockFirstBit ? aStart - blockFirstBit : 0; const PRUint32 end = ((aEnd - blockFirstBit)<(BLOCK_SIZE_BITS - 1)?(aEnd - blockFirstBit):(BLOCK_SIZE_BITS - 1)); for (PRUint32 bit = start; bit <= end; ++bit) { block->mBits[bit>>3] &= ~(1 << (bit & 0x7)); } } } PRUint32 GetSize() { PRUint32 size = 0; for (PRUint32 i = 0; i < mBlocks.Length(); i++) { if (mBlocks[i]) size += sizeof(Block); size += sizeof(nsAutoPtr); } return size; } // clear out all blocks in the array void reset() { PRUint32 i; for (i = 0; i < mBlocks.Length(); i++) mBlocks[i] = 0L; } nsTArray< nsAutoPtr > mBlocks; }; namespace mozilla { // Byte-swapping types and name table structure definitions moved from // gfxFontUtils.cpp to .h file so that gfxFont.cpp can also refer to them #pragma pack(1) struct AutoSwap_PRUint16 { AutoSwap_PRUint16(PRUint16 aValue) { value = ((((aValue) & 0xff) << 8) | (((aValue) >> 8) & 0xff)); } #line 300 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFontUtils.h" operator PRUint16() const { return ((((value) & 0xff) << 8) | (((value) >> 8) & 0xff)); } operator PRUint32() const { return ((((value) & 0xff) << 8) | (((value) >> 8) & 0xff)); } operator PRUint64() const { return ((((value) & 0xff) << 8) | (((value) >> 8) & 0xff)); } PRUint16 value; }; struct AutoSwap_PRInt16 { AutoSwap_PRInt16(PRInt16 aValue) { value = ((((aValue) & 0xff) << 8) | (((aValue) >> 8) & 0xff)); } #line 313 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFontUtils.h" operator PRInt16() const { return ((((value) & 0xff) << 8) | (((value) >> 8) & 0xff)); } operator PRUint32() const { return ((((value) & 0xff) << 8) | (((value) >> 8) & 0xff)); } PRInt16 value; }; struct AutoSwap_PRUint32 { AutoSwap_PRUint32(PRUint32 aValue) { value = (((((((aValue) & 0xffff) & 0xff) << 8) | ((((aValue) & 0xffff) >> 8) & 0xff)) << 16) | ((((((aValue) >> 16) & 0xff) << 8) | ((((aValue) >> 16) >> 8) & 0xff)))); } #line 325 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFontUtils.h" operator PRUint32() const { return (((((((value) & 0xffff) & 0xff) << 8) | ((((value) & 0xffff) >> 8) & 0xff)) << 16) | ((((((value) >> 16) & 0xff) << 8) | ((((value) >> 16) >> 8) & 0xff)))); } PRUint32 value; }; struct AutoSwap_PRInt32 { AutoSwap_PRInt32(PRInt32 aValue) { value = (((((((aValue) & 0xffff) & 0xff) << 8) | ((((aValue) & 0xffff) >> 8) & 0xff)) << 16) | ((((((aValue) >> 16) & 0xff) << 8) | ((((aValue) >> 16) >> 8) & 0xff)))); } #line 336 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFontUtils.h" operator PRInt32() const { return (((((((value) & 0xffff) & 0xff) << 8) | ((((value) & 0xffff) >> 8) & 0xff)) << 16) | ((((((value) >> 16) & 0xff) << 8) | ((((value) >> 16) >> 8) & 0xff)))); } PRInt32 value; }; struct AutoSwap_PRUint64 { AutoSwap_PRUint64(PRUint64 aValue) { value = ((((aValue) & 0xff00000000000000ui64) >> 56) | (((aValue) & 0x00ff000000000000ui64) >> 40) | (((aValue) & 0x0000ff0000000000ui64) >> 24) | (((aValue) & 0x000000ff00000000ui64) >> 8) | (((aValue) & 0x00000000ff000000ui64) << 8) | (((aValue) & 0x0000000000ff0000ui64) << 24) | (((aValue) & 0x000000000000ff00ui64) << 40) | (((aValue) ) << 56)); } #line 347 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFontUtils.h" operator PRUint64() const { return ((((value) & 0xff00000000000000ui64) >> 56) | (((value) & 0x00ff000000000000ui64) >> 40) | (((value) & 0x0000ff0000000000ui64) >> 24) | (((value) & 0x000000ff00000000ui64) >> 8) | (((value) & 0x00000000ff000000ui64) << 8) | (((value) & 0x0000000000ff0000ui64) << 24) | (((value) & 0x000000000000ff00ui64) << 40) | (((value) ) << 56)); } PRUint64 value; }; struct AutoSwap_PRUint24 { operator PRUint32() const { return value[0] << 16 | value[1] << 8 | value[2]; } private: AutoSwap_PRUint24() { } PRUint8 value[3]; }; struct SFNTHeader { AutoSwap_PRUint32 sfntVersion; // Fixed, 0x00010000 for version 1.0. AutoSwap_PRUint16 numTables; // Number of tables. AutoSwap_PRUint16 searchRange; // (Maximum power of 2 <= numTables) x 16. AutoSwap_PRUint16 entrySelector; // Log2(maximum power of 2 <= numTables). AutoSwap_PRUint16 rangeShift; // NumTables x 16-searchRange. }; struct TableDirEntry { AutoSwap_PRUint32 tag; // 4 -byte identifier. AutoSwap_PRUint32 checkSum; // CheckSum for this table. AutoSwap_PRUint32 offset; // Offset from beginning of TrueType font file. AutoSwap_PRUint32 length; // Length of this table. }; struct HeadTable { enum { HEAD_VERSION = 0x00010000, HEAD_MAGIC_NUMBER = 0x5F0F3CF5, HEAD_CHECKSUM_CALC_CONST = 0xB1B0AFBA }; AutoSwap_PRUint32 tableVersionNumber; // Fixed, 0x00010000 for version 1.0. AutoSwap_PRUint32 fontRevision; // Set by font manufacturer. AutoSwap_PRUint32 checkSumAdjustment; // To compute: set it to 0, sum the entire font as ULONG, then store 0xB1B0AFBA - sum. AutoSwap_PRUint32 magicNumber; // Set to 0x5F0F3CF5. AutoSwap_PRUint16 flags; AutoSwap_PRUint16 unitsPerEm; // Valid range is from 16 to 16384. This value should be a power of 2 for fonts that have TrueType outlines. AutoSwap_PRUint64 created; // Number of seconds since 12:00 midnight, January 1, 1904. 64-bit integer AutoSwap_PRUint64 modified; // Number of seconds since 12:00 midnight, January 1, 1904. 64-bit integer AutoSwap_PRInt16 xMin; // For all glyph bounding boxes. AutoSwap_PRInt16 yMin; // For all glyph bounding boxes. AutoSwap_PRInt16 xMax; // For all glyph bounding boxes. AutoSwap_PRInt16 yMax; // For all glyph bounding boxes. AutoSwap_PRUint16 macStyle; // Bit 0: Bold (if set to 1); AutoSwap_PRUint16 lowestRecPPEM; // Smallest readable size in pixels. AutoSwap_PRInt16 fontDirectionHint; AutoSwap_PRInt16 indexToLocFormat; AutoSwap_PRInt16 glyphDataFormat; }; struct OS2Table { AutoSwap_PRUint16 version; // 0004 = OpenType 1.5 AutoSwap_PRInt16 xAvgCharWidth; AutoSwap_PRUint16 usWeightClass; AutoSwap_PRUint16 usWidthClass; AutoSwap_PRUint16 fsType; AutoSwap_PRInt16 ySubscriptXSize; AutoSwap_PRInt16 ySubscriptYSize; AutoSwap_PRInt16 ySubscriptXOffset; AutoSwap_PRInt16 ySubscriptYOffset; AutoSwap_PRInt16 ySuperscriptXSize; AutoSwap_PRInt16 ySuperscriptYSize; AutoSwap_PRInt16 ySuperscriptXOffset; AutoSwap_PRInt16 ySuperscriptYOffset; AutoSwap_PRInt16 yStrikeoutSize; AutoSwap_PRInt16 yStrikeoutPosition; AutoSwap_PRInt16 sFamilyClass; PRUint8 panose[10]; AutoSwap_PRUint32 unicodeRange1; AutoSwap_PRUint32 unicodeRange2; AutoSwap_PRUint32 unicodeRange3; AutoSwap_PRUint32 unicodeRange4; PRUint8 achVendID[4]; AutoSwap_PRUint16 fsSelection; AutoSwap_PRUint16 usFirstCharIndex; AutoSwap_PRUint16 usLastCharIndex; AutoSwap_PRInt16 sTypoAscender; AutoSwap_PRInt16 sTypoDescender; AutoSwap_PRInt16 sTypoLineGap; AutoSwap_PRUint16 usWinAscent; AutoSwap_PRUint16 usWinDescent; AutoSwap_PRUint32 codePageRange1; AutoSwap_PRUint32 codePageRange2; AutoSwap_PRInt16 sxHeight; AutoSwap_PRInt16 sCapHeight; AutoSwap_PRUint16 usDefaultChar; AutoSwap_PRUint16 usBreakChar; AutoSwap_PRUint16 usMaxContext; }; struct PostTable { AutoSwap_PRUint32 version; AutoSwap_PRInt32 italicAngle; AutoSwap_PRInt16 underlinePosition; AutoSwap_PRUint16 underlineThickness; AutoSwap_PRUint32 isFixedPitch; AutoSwap_PRUint32 minMemType42; AutoSwap_PRUint32 maxMemType42; AutoSwap_PRUint32 minMemType1; AutoSwap_PRUint32 maxMemType1; }; struct HheaTable { AutoSwap_PRUint32 version; AutoSwap_PRInt16 ascender; AutoSwap_PRInt16 descender; AutoSwap_PRInt16 lineGap; AutoSwap_PRUint16 advanceWidthMax; AutoSwap_PRInt16 minLeftSideBearing; AutoSwap_PRInt16 minRightSideBearing; AutoSwap_PRInt16 xMaxExtent; AutoSwap_PRInt16 caretSlopeRise; AutoSwap_PRInt16 caretSlopeRun; AutoSwap_PRInt16 caretOffset; AutoSwap_PRInt16 reserved1; AutoSwap_PRInt16 reserved2; AutoSwap_PRInt16 reserved3; AutoSwap_PRInt16 reserved4; AutoSwap_PRInt16 metricDataFormat; AutoSwap_PRUint16 numOfLongHorMetrics; }; struct MaxpTableHeader { AutoSwap_PRUint32 version; // CFF: 0x00005000; TrueType: 0x00010000 AutoSwap_PRUint16 numGlyphs; // truetype version has additional fields that we don't currently use }; // old 'kern' table, supported on Windows // see http://www.microsoft.com/typography/otspec/kern.htm struct KernTableVersion0 { AutoSwap_PRUint16 version; // 0x0000 AutoSwap_PRUint16 nTables; }; struct KernTableSubtableHeaderVersion0 { AutoSwap_PRUint16 version; AutoSwap_PRUint16 length; AutoSwap_PRUint16 coverage; }; // newer Mac-only 'kern' table, ignored by Windows // see http://developer.apple.com/textfonts/TTRefMan/RM06/Chap6kern.html struct KernTableVersion1 { AutoSwap_PRUint32 version; // 0x00010000 AutoSwap_PRUint32 nTables; }; struct KernTableSubtableHeaderVersion1 { AutoSwap_PRUint32 length; AutoSwap_PRUint16 coverage; AutoSwap_PRUint16 tupleIndex; }; #pragma pack() // Return just the highest bit of the given value, i.e., the highest // power of 2 that is <= value, or zero if the input value is zero. inline PRUint32 FindHighestBit(PRUint32 value) { // propagate highest bit into all lower bits of the value value |= (value >> 1); value |= (value >> 2); value |= (value >> 4); value |= (value >> 8); value |= (value >> 16); // isolate the leftmost bit return (value & ~(value >> 1)); } } // namespace mozilla // used for overlaying name changes without touching original font data struct FontDataOverlay { // overlaySrc != 0 ==> use overlay PRUint32 overlaySrc; // src offset from start of font data PRUint32 overlaySrcLen; // src length PRUint32 overlayDest; // dest offset from start of font data }; enum gfxUserFontType { GFX_USERFONT_UNKNOWN = 0, GFX_USERFONT_OPENTYPE = 1, GFX_USERFONT_SVG = 2, GFX_USERFONT_WOFF = 3 }; class __declspec(dllexport) gfxFontUtils { public: // these are public because gfxFont.cpp also looks into the name table enum { NAME_ID_FAMILY = 1, NAME_ID_STYLE = 2, NAME_ID_UNIQUE = 3, NAME_ID_FULL = 4, NAME_ID_VERSION = 5, NAME_ID_POSTSCRIPT = 6, NAME_ID_PREFERRED_FAMILY = 16, NAME_ID_PREFERRED_STYLE = 17, PLATFORM_ALL = -1, PLATFORM_ID_UNICODE = 0, // Mac OS uses this typically PLATFORM_ID_MAC = 1, PLATFORM_ID_ISO = 2, PLATFORM_ID_MICROSOFT = 3, ENCODING_ID_MAC_ROMAN = 0, // traditional Mac OS script manager encodings ENCODING_ID_MAC_JAPANESE = 1, // (there are others defined, but some were never ENCODING_ID_MAC_TRAD_CHINESE = 2, // implemented by Apple, and I have never seen them ENCODING_ID_MAC_KOREAN = 3, // used in font names) ENCODING_ID_MAC_ARABIC = 4, ENCODING_ID_MAC_HEBREW = 5, ENCODING_ID_MAC_GREEK = 6, ENCODING_ID_MAC_CYRILLIC = 7, ENCODING_ID_MAC_DEVANAGARI = 9, ENCODING_ID_MAC_GURMUKHI = 10, ENCODING_ID_MAC_GUJARATI = 11, ENCODING_ID_MAC_SIMP_CHINESE = 25, ENCODING_ID_MICROSOFT_SYMBOL = 0, // Microsoft platform encoding IDs ENCODING_ID_MICROSOFT_UNICODEBMP = 1, ENCODING_ID_MICROSOFT_SHIFTJIS = 2, ENCODING_ID_MICROSOFT_PRC = 3, ENCODING_ID_MICROSOFT_BIG5 = 4, ENCODING_ID_MICROSOFT_WANSUNG = 5, ENCODING_ID_MICROSOFT_JOHAB = 6, ENCODING_ID_MICROSOFT_UNICODEFULL = 10, LANG_ALL = -1, LANG_ID_MAC_ENGLISH = 0, // many others are defined, but most don't affect LANG_ID_MAC_HEBREW = 10, // the charset; should check all the central/eastern LANG_ID_MAC_JAPANESE = 11, // european codes, though LANG_ID_MAC_ARABIC = 12, LANG_ID_MAC_ICELANDIC = 15, LANG_ID_MAC_TURKISH = 17, LANG_ID_MAC_TRAD_CHINESE = 19, LANG_ID_MAC_URDU = 20, LANG_ID_MAC_KOREAN = 23, LANG_ID_MAC_POLISH = 25, LANG_ID_MAC_FARSI = 31, LANG_ID_MAC_SIMP_CHINESE = 33, LANG_ID_MAC_ROMANIAN = 37, LANG_ID_MAC_CZECH = 38, LANG_ID_MAC_SLOVAK = 39, LANG_ID_MICROSOFT_EN_US = 0x0409, // with Microsoft platformID, EN US lang code CMAP_MAX_CODEPOINT = 0x10ffff // maximum possible Unicode codepoint // contained in a cmap }; // name table has a header, followed by name records, followed by string data struct NameHeader { mozilla::AutoSwap_PRUint16 format; // Format selector (=0). mozilla::AutoSwap_PRUint16 count; // Number of name records. mozilla::AutoSwap_PRUint16 stringOffset; // Offset to start of string storage // (from start of table) }; struct NameRecord { mozilla::AutoSwap_PRUint16 platformID; // Platform ID mozilla::AutoSwap_PRUint16 encodingID; // Platform-specific encoding ID mozilla::AutoSwap_PRUint16 languageID; // Language ID mozilla::AutoSwap_PRUint16 nameID; // Name ID. mozilla::AutoSwap_PRUint16 length; // String length (in bytes). mozilla::AutoSwap_PRUint16 offset; // String offset from start of storage // (in bytes). }; // for reading big-endian font data on either big or little-endian platforms static inline PRUint16 ReadShortAt(const PRUint8 *aBuf, PRUint32 aIndex) { return (aBuf[aIndex] << 8) | aBuf[aIndex + 1]; } static inline PRUint16 ReadShortAt16(const PRUint16 *aBuf, PRUint32 aIndex) { const PRUint8 *buf = reinterpret_cast(aBuf); PRUint32 index = aIndex << 1; return (buf[index] << 8) | buf[index+1]; } static inline PRUint32 ReadUint24At(const PRUint8 *aBuf, PRUint32 aIndex) { return ((aBuf[aIndex] << 16) | (aBuf[aIndex + 1] << 8) | (aBuf[aIndex + 2])); } static inline PRUint32 ReadLongAt(const PRUint8 *aBuf, PRUint32 aIndex) { return ((aBuf[aIndex] << 24) | (aBuf[aIndex + 1] << 16) | (aBuf[aIndex + 2] << 8) | (aBuf[aIndex + 3])); } static nsresult ReadCMAPTableFormat12(const PRUint8 *aBuf, PRUint32 aLength, gfxSparseBitSet& aCharacterMap); static nsresult ReadCMAPTableFormat4(const PRUint8 *aBuf, PRUint32 aLength, gfxSparseBitSet& aCharacterMap); static nsresult ReadCMAPTableFormat14(const PRUint8 *aBuf, PRUint32 aLength, PRUint8*& aTable); static PRUint32 FindPreferredSubtable(const PRUint8 *aBuf, PRUint32 aBufLength, PRUint32 *aTableOffset, PRUint32 *aUVSTableOffset, PRBool *aSymbolEncoding); static nsresult ReadCMAP(const PRUint8 *aBuf, PRUint32 aBufLength, gfxSparseBitSet& aCharacterMap, PRUint32& aUVSOffset, PRPackedBool& aUnicodeFont, PRPackedBool& aSymbolFont); static PRUint32 MapCharToGlyphFormat4(const PRUint8 *aBuf, PRUnichar aCh); static PRUint32 MapCharToGlyphFormat12(const PRUint8 *aBuf, PRUint32 aCh); static PRUint16 MapUVSToGlyphFormat14(const PRUint8 *aBuf, PRUint32 aCh, PRUint32 aVS); static PRUint32 MapCharToGlyph(const PRUint8 *aBuf, PRUint32 aBufLength, PRUint32 aCh); // given a TrueType/OpenType data file, produce a EOT-format header // for use with Windows T2Embed API AddFontResource type API's // effectively hide existing fonts with matching names aHeaderLen is // the size of the header buffer on input, the actual size of the // EOT header on output static nsresult MakeEOTHeader(const PRUint8 *aFontData, PRUint32 aFontDataLength, nsTArray *aHeader, FontDataOverlay *aOverlay); // determine whether a font (which has already passed ValidateSFNTHeaders) // is CFF format rather than TrueType static PRBool IsCffFont(const PRUint8* aFontData); #line 702 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFontUtils.h" // determine the format of font data static gfxUserFontType DetermineFontDataType(const PRUint8 *aFontData, PRUint32 aFontDataLength); // checks for valid SFNT table structure, returns true if valid // does *not* guarantee that all font data is valid static PRBool ValidateSFNTHeaders(const PRUint8 *aFontData, PRUint32 aFontDataLength); // create a new name table and build a new font with that name table // appended on the end, returns true on success static nsresult RenameFont(const nsAString_internal& aName, const PRUint8 *aFontData, PRUint32 aFontDataLength, nsTArray *aNewFont); // read all names matching aNameID, returning in aNames array static nsresult ReadNames(nsTArray& aNameTable, PRUint32 aNameID, PRInt32 aPlatformID, nsTArray& aNames); // reads English or first name matching aNameID, returning in aName // platform based on OS static nsresult ReadCanonicalName(nsTArray& aNameTable, PRUint32 aNameID, nsString& aName); // convert a name from the raw name table data into an nsString, // provided we know how; return PR_TRUE if successful, or PR_FALSE // if we can't handle the encoding static PRBool DecodeFontName(const PRUint8 *aBuf, PRInt32 aLength, PRUint32 aPlatformCode, PRUint32 aScriptCode, PRUint32 aLangCode, nsAString_internal& dest); static inline bool IsJoinCauser(PRUint32 ch) { return (ch == 0x200D); } enum { kUnicodeVS1 = 0xFE00, kUnicodeVS16 = 0xFE0F, kUnicodeVS17 = 0xE0100, kUnicodeVS256 = 0xE01EF }; static inline bool IsVarSelector(PRUint32 ch) { return (ch >= kUnicodeVS1 && ch <= kUnicodeVS16) || (ch >= kUnicodeVS17 && ch <= kUnicodeVS256); } static inline bool IsInvalid(PRUint32 ch) { return (ch == 0xFFFD); } // Font code may want to know if there is the potential for bidi behavior // to be triggered by any of the characters in a text run; this can be // used to test that possibility. enum { kUnicodeBidiScriptsStart = 0x0590, kUnicodeBidiScriptsEnd = 0x08FF, kUnicodeBidiPresentationStart = 0xFB1D, kUnicodeBidiPresentationEnd = 0xFEFC, kUnicodeFirstHighSurrogateBlock = 0xD800, kUnicodeRLM = 0x200F, kUnicodeRLE = 0x202B, kUnicodeRLO = 0x202E }; static inline PRBool PotentialRTLChar(PRUnichar aCh) { if (aCh >= kUnicodeBidiScriptsStart && aCh <= kUnicodeBidiScriptsEnd) // bidi scripts Hebrew, Arabic, Syriac, Thaana, N'Ko are all encoded together return 1; if (aCh == kUnicodeRLM || aCh == kUnicodeRLE || aCh == kUnicodeRLO) // directional controls that trigger bidi layout return 1; if (aCh >= kUnicodeBidiPresentationStart && aCh <= kUnicodeBidiPresentationEnd) // presentation forms of Arabic and Hebrew letters return 1; if ((aCh & 0xFF00) == kUnicodeFirstHighSurrogateBlock) // surrogate that could be part of a bidi supplementary char // (Cypriot, Aramaic, Phoenecian, etc) return 1; // otherwise we know this char cannot trigger bidi reordering return 0; } static PRUint8 CharRangeBit(PRUint32 ch); // for a given font list pref name, set up a list of font names static void GetPrefsFontList(const char *aPrefName, nsTArray& aFontList); // generate a unique font name static nsresult MakeUniqueUserFontName(nsAString_internal& aName); protected: static nsresult ReadNames(nsTArray& aNameTable, PRUint32 aNameID, PRInt32 aLangID, PRInt32 aPlatformID, nsTArray& aNames); // convert opentype name-table platform/encoding/language values to a charset name // we can use to convert the name data to unicode, or "" if data is UTF16BE static const char* GetCharsetForFontName(PRUint16 aPlatform, PRUint16 aScript, PRUint16 aLanguage); struct MacFontNameCharsetMapping { PRUint16 mEncoding; PRUint16 mLanguage; const char *mCharsetName; bool operator<(const MacFontNameCharsetMapping& rhs) const { return (mEncoding < rhs.mEncoding) || ((mEncoding == rhs.mEncoding) && (mLanguage < rhs.mLanguage)); } }; static const MacFontNameCharsetMapping gMacFontNameCharsets[]; static const char* gISOFontNameCharsets[]; static const char* gMSFontNameCharsets[]; }; // helper class for loading in font info spaced out at regular intervals class gfxFontInfoLoader { public: // state transitions: // initial ---StartLoader with delay---> timer on delay // initial ---StartLoader without delay---> timer on interval // timer on delay ---LoaderTimerFire---> timer on interval // timer on delay ---CancelLoader---> timer off // timer on interval ---CancelLoader---> timer off // timer off ---StartLoader with delay---> timer on delay // timer off ---StartLoader without delay---> timer on interval typedef enum { stateInitial, stateTimerOnDelay, stateTimerOnInterval, stateTimerOff } TimerState; gfxFontInfoLoader() : mInterval(0), mState(stateInitial) { } virtual ~gfxFontInfoLoader() {} // start timer with an initial delay, then call Run method at regular intervals void StartLoader(PRUint32 aDelay, PRUint32 aInterval) { mInterval = aInterval; // sanity check if (mState != stateInitial && mState != stateTimerOff) CancelLoader(); // set up timer if (!mTimer) { mTimer = do_CreateInstance("@mozilla.org/timer;1"); if (!mTimer) { NS_DebugBreak_P(NS_DEBUG_WARNING, "Failure to create font info loader timer", 0L, "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFontUtils.h", 867); return; } } // need an initial delay? PRUint32 timerInterval; if (aDelay) { mState = stateTimerOnDelay; timerInterval = aDelay; } else { mState = stateTimerOnInterval; timerInterval = mInterval; } InitLoader(); // start timer mTimer->InitWithFuncCallback(LoaderTimerCallback, this, aDelay, nsITimer::TYPE_REPEATING_SLACK); } // cancel the timer and cleanup void CancelLoader() { if (mState == stateInitial) return; mState = stateTimerOff; if (mTimer) { mTimer->Cancel(); } FinishLoader(); } protected: // Init - initialization at start time after initial delay virtual void InitLoader() = 0; // Run - called at intervals, return true to indicate done virtual PRBool RunLoader() = 0; // Finish - cleanup after done virtual void FinishLoader() = 0; static void LoaderTimerCallback(nsITimer *aTimer, void *aThis) { gfxFontInfoLoader *loader = static_cast(aThis); loader->LoaderTimerFire(); } // start the timer, interval callbacks void LoaderTimerFire() { if (mState == stateTimerOnDelay) { mState = stateTimerOnInterval; mTimer->SetDelay(mInterval); } PRBool done = RunLoader(); if (done) { CancelLoader(); } } nsCOMPtr mTimer; PRUint32 mInterval; TimerState mState; }; #line 936 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFontUtils.h" #line 54 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxWindowsPlatform.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxWindowsSurface.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxASurface.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 42 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxWindowsSurface.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxImageSurface.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 43 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxWindowsSurface.h" class gfxContext; class __declspec(dllexport) gfxWindowsSurface : public gfxASurface { public: enum { FLAG_TAKE_DC = (1 << 0), FLAG_FOR_PRINTING = (1 << 1), FLAG_IS_TRANSPARENT = (1 << 2) }; gfxWindowsSurface(HWND wnd, PRUint32 flags = 0); gfxWindowsSurface(HDC dc, PRUint32 flags = 0); // Create a DIB surface gfxWindowsSurface(const gfxIntSize& size, gfxImageFormat imageFormat = ImageFormatRGB24); // Create a DDB surface; dc may be NULL to use the screen DC gfxWindowsSurface(HDC dc, const gfxIntSize& size, gfxImageFormat imageFormat = ImageFormatRGB24); gfxWindowsSurface(cairo_surface_t *csurf); void InitWithDC(PRUint32 flags); virtual ~gfxWindowsSurface(); HDC GetDC() { return mDC; } HDC GetDCWithClip(gfxContext *); already_AddRefed GetAsImageSurface(); already_AddRefed OptimizeToDDB(HDC dc, const gfxIntSize& size, gfxImageFormat format); nsresult BeginPrinting(const nsAString_internal& aTitle, const nsAString_internal& aPrintToFileName); nsresult EndPrinting(); nsresult AbortPrinting(); nsresult BeginPage(); nsresult EndPage(); virtual PRInt32 GetDefaultContextFlags() const; private: PRPackedBool mOwnsDC; PRPackedBool mForPrinting; HDC mDC; HWND mWnd; }; #line 119 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxWindowsSurface.h" #line 55 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxWindowsPlatform.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla Foundation code. * * The Initial Developer of the Original Code is Mozilla Foundation. * Portions created by the Initial Developer are Copyright (C) 2005-2009 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * Masayuki Nakano * John Daggett * Jonathan Kew * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* ** File: prtypes.h ** Description: Definitions of NSPR's basic types ** ** Prototypes and macros used to make up for deficiencies that we have found ** in ANSI environments. ** ** Since we do not wrap and all the other standard headers, authors ** of portable code will not know in general that they need these definitions. ** Instead of requiring these authors to find the dependent uses in their code ** and take the following steps only in those C files, we take steps once here ** for all C files. **/ #line 45 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxTypes.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 46 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsString.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 47 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxPoint.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 48 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFontUtils.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla Foundation code. * * The Initial Developer of the Original Code is Mozilla Foundation. * Portions created by the Initial Developer are Copyright (C) 2005-2009 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * John Daggett * Jonathan Kew * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 49 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTArray.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is C++ array template. * * The Initial Developer of the Original Code is Google Inc. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 50 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTHashtable.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is C++ hashtable templates. * * The Initial Developer of the Original Code is * Benjamin Smedberg. * Portions created by the Initial Developer are Copyright (C) 2002 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 51 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsHashKeys.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is C++ hashtable templates. * * The Initial Developer of the Original Code is * Benjamin Smedberg. * Portions created by the Initial Developer are Copyright (C) 2002 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 52 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxSkipChars.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Novell code. * * The Initial Developer of the Original Code is Novell. * Portions created by the Initial Developer are Copyright (C) 2006 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Robert O'Callahan * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* ** File: prtypes.h ** Description: Definitions of NSPR's basic types ** ** Prototypes and macros used to make up for deficiencies that we have found ** in ANSI environments. ** ** Since we do not wrap and all the other standard headers, authors ** of portable code will not know in general that they need these definitions. ** Instead of requiring these authors to find the dependent uses in their code ** and take the following steps only in those C files, we take steps once here ** for all C files. **/ #line 42 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxSkipChars.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsAutoPtr.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Scott Collins (original author of nsCOMPtr) * L. David Baron * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 43 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxSkipChars.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTArray.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is C++ array template. * * The Initial Developer of the Original Code is Google Inc. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 44 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxSkipChars.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxTypes.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 45 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxSkipChars.h" /* * gfxSkipChars is a data structure representing a list of characters that * have been skipped. The initial string is called the "original string" * and after skipping some characters, the result is called the "skipped string". * gfxSkipChars provides efficient ways to translate between offsets in the * original string and the skipped string. It is used by textrun code to keep * track of offsets before and after text transformations such as whitespace * compression and control code deletion. */ /** * gfxSkipCharsBuilder is a helper class that accumulates a list of (skip, keep) * commands and can eventually be used to construct a real gfxSkipChars. * gfxSkipCharsBuilder objects are quite large so don't keep these around. * On the positive side, the Skip/KeepChar(s) methods are very efficient, * especially when you have runs of all-kept or all-skipped characters. * * mBuffer is an array of bytes; even numbered bytes represent characters kept, * odd numbered bytes represent characters skipped. After those characters * are accounted for, we have mRunCharCount characters which are kept or * skipped depending on the value of mRunSkipped. * * mCharCount is the sum of counts of all skipped and kept characters, i.e., * the length of the original string. */ class __declspec(dllexport) gfxSkipCharsBuilder { public: gfxSkipCharsBuilder() : mCharCount(0), mRunCharCount(0), mRunSkipped(0), mInErrorState(0) {} void SkipChars(PRUint32 aChars) { DoChars(aChars, 1); } void KeepChars(PRUint32 aChars) { DoChars(aChars, 0); } void SkipChar() { SkipChars(1); } void KeepChar() { KeepChars(1); } void DoChars(PRUint32 aChars, PRBool aSkipped) { if (aSkipped != mRunSkipped && aChars > 0) { FlushRun(); } do { if (!(mRunCharCount + aChars > mRunCharCount)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Character count overflow", "mRunCharCount + aChars > mRunCharCount", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxSkipChars.h", 94); } } while (0); #line 95 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxSkipChars.h" mRunCharCount += aChars; } PRBool IsOK() { return !mInErrorState; } PRUint32 GetCharCount() { return mCharCount + mRunCharCount; } PRBool GetAllCharsKept() { return mBuffer.Length() == 0; } friend class gfxSkipChars; private: typedef nsAutoTArray Buffer; /** * Moves mRunCharCount/mRunSkipped to the buffer (updating mCharCount), * sets mRunCharCount to zero and toggles mRunSkipped. */ void FlushRun(); Buffer mBuffer; PRUint32 mCharCount; PRUint32 mRunCharCount; PRPackedBool mRunSkipped; // == mBuffer.Length()&1 PRPackedBool mInErrorState; }; /** * The gfxSkipChars list is represented as a list of bytes of the form * [chars to keep, chars to skip, chars to keep, chars to skip, ...] * In the special case where all chars are to be kept, the list is length * zero. * * A freshly-created gfxSkipChars means "all chars kept". */ class __declspec(dllexport) gfxSkipChars { public: gfxSkipChars() : mListLength(0), mCharCount(0) {} void TakeFrom(gfxSkipChars* aSkipChars) { mList = aSkipChars->mList.forget(); mListLength = aSkipChars->mListLength; mCharCount = aSkipChars->mCharCount; aSkipChars->mCharCount = 0; aSkipChars->mListLength = 0; BuildShortcuts(); } void TakeFrom(gfxSkipCharsBuilder* aSkipCharsBuilder) { if (!aSkipCharsBuilder->mBuffer.Length()) { do { if (!(!aSkipCharsBuilder->mRunSkipped)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "out of sync", "!aSkipCharsBuilder->mRunSkipped", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxSkipChars.h", 144); } } while (0); // all characters kept mCharCount = aSkipCharsBuilder->mRunCharCount; mList = 0L; mListLength = 0; } else { aSkipCharsBuilder->FlushRun(); mCharCount = aSkipCharsBuilder->mCharCount; mList = new PRUint8[aSkipCharsBuilder->mBuffer.Length()]; if (!mList) { mListLength = 0; } else { mListLength = aSkipCharsBuilder->mBuffer.Length(); memcpy(mList, aSkipCharsBuilder->mBuffer.Elements(), mListLength); } } aSkipCharsBuilder->mBuffer.Clear(); aSkipCharsBuilder->mCharCount = 0; aSkipCharsBuilder->mRunCharCount = 0; aSkipCharsBuilder->mRunSkipped = 0; BuildShortcuts(); } void SetAllKeep(PRUint32 aLength) { mCharCount = aLength; mList = 0L; mListLength = 0; } PRInt32 GetOriginalCharCount() const { return mCharCount; } friend class gfxSkipCharsIterator; private: struct Shortcut { PRUint32 mListPrefixLength; PRUint32 mListPrefixCharCount; PRUint32 mListPrefixKeepCharCount; Shortcut() {} Shortcut(PRUint32 aListPrefixLength, PRUint32 aListPrefixCharCount, PRUint32 aListPrefixKeepCharCount) : mListPrefixLength(aListPrefixLength), mListPrefixCharCount(aListPrefixCharCount), mListPrefixKeepCharCount(aListPrefixKeepCharCount) {} }; void BuildShortcuts(); nsAutoArrayPtr mList; nsAutoArrayPtr mShortcuts; PRUint32 mListLength; PRUint32 mCharCount; }; /** * A gfxSkipCharsIterator represents a position in the original string. It lets you * map efficiently to and from positions in the string after skipped characters * have been removed. You can also specify an offset that is added to all * incoming original string offsets and subtracted from all outgoing original * string offsets --- useful when the gfxSkipChars corresponds to something * offset from the original DOM coordinates, which it often does for gfxTextRuns. * * The current positions (in both the original and skipped strings) are * always constrained to be >= 0 and <= the string length. When the position * is equal to the string length, it is at the end of the string. The current * positions do not include any aOriginalStringToSkipCharsOffset. * * When the position in the original string corresponds to a skipped character, * the skipped-characters offset is the offset of the next unskipped character, * or the skipped-characters string length if there is no next unskipped character. */ class __declspec(dllexport) gfxSkipCharsIterator { public: /** * @param aOriginalStringToSkipCharsOffset add this to all incoming and * outgoing original string offsets */ gfxSkipCharsIterator(const gfxSkipChars& aSkipChars, PRInt32 aOriginalStringToSkipCharsOffset, PRInt32 aOriginalStringOffset) : mSkipChars(&aSkipChars), mOriginalStringToSkipCharsOffset(aOriginalStringToSkipCharsOffset), mListPrefixLength(0), mListPrefixCharCount(0), mListPrefixKeepCharCount(0) { SetOriginalOffset(aOriginalStringOffset); } gfxSkipCharsIterator(const gfxSkipChars& aSkipChars, PRInt32 aOriginalStringToSkipCharsOffset = 0) : mSkipChars(&aSkipChars), mOriginalStringOffset(0), mSkippedStringOffset(0), mOriginalStringToSkipCharsOffset(aOriginalStringToSkipCharsOffset), mListPrefixLength(0), mListPrefixCharCount(0), mListPrefixKeepCharCount(0) { } gfxSkipCharsIterator(const gfxSkipCharsIterator& aIterator) : mSkipChars(aIterator.mSkipChars), mOriginalStringOffset(aIterator.mOriginalStringOffset), mSkippedStringOffset(aIterator.mSkippedStringOffset), mOriginalStringToSkipCharsOffset(aIterator.mOriginalStringToSkipCharsOffset), mListPrefixLength(aIterator.mListPrefixLength), mListPrefixCharCount(aIterator.mListPrefixCharCount), mListPrefixKeepCharCount(aIterator.mListPrefixKeepCharCount) {} /** * The empty constructor creates an object that is useless until it is assigned. */ gfxSkipCharsIterator() : mSkipChars(0L) {} /** * Return true if this iterator is properly initialized and usable. */ PRBool IsInitialized() { return mSkipChars != 0L; } /** * Set the iterator to aOriginalStringOffset in the original string. * This can efficiently move forward or backward from the current position. * aOriginalStringOffset is clamped to [0,originalStringLength]. */ void SetOriginalOffset(PRInt32 aOriginalStringOffset) { SetOffsets(aOriginalStringOffset + mOriginalStringToSkipCharsOffset, 1); } /** * Set the iterator to aSkippedStringOffset in the skipped string. * This can efficiently move forward or backward from the current position. * aSkippedStringOffset is clamped to [0,skippedStringLength]. */ void SetSkippedOffset(PRUint32 aSkippedStringOffset) { SetOffsets(aSkippedStringOffset, 0); } PRUint32 ConvertOriginalToSkipped(PRInt32 aOriginalStringOffset) { SetOriginalOffset(aOriginalStringOffset); return GetSkippedOffset(); } PRUint32 ConvertSkippedToOriginal(PRInt32 aSkippedStringOffset) { SetSkippedOffset(aSkippedStringOffset); return GetOriginalOffset(); } /** * Test if the character at the current position in the original string * is skipped or not. If aRunLength is non-null, then *aRunLength is set * to a number of characters all of which are either skipped or not, starting * at this character. When the current position is at the end of the original * string, we return PR_TRUE and *aRunLength is set to zero. */ PRBool IsOriginalCharSkipped(PRInt32* aRunLength = 0L) const; void AdvanceOriginal(PRInt32 aDelta) { SetOffsets(mOriginalStringOffset + aDelta, 1); } void AdvanceSkipped(PRInt32 aDelta) { SetOffsets(mSkippedStringOffset + aDelta, 0); } /** * @return the offset within the original string */ PRInt32 GetOriginalOffset() const { return mOriginalStringOffset - mOriginalStringToSkipCharsOffset; } /** * @return the offset within the skipped string corresponding to the * current position in the original string. If the current position * in the original string is a character that is skipped, then we return * the position corresponding to the first non-skipped character in the * original string after the current position, or the length of the skipped * string if there is no such character. */ PRUint32 GetSkippedOffset() const { return mSkippedStringOffset; } PRInt32 GetOriginalEnd() const { return mSkipChars->GetOriginalCharCount() - mOriginalStringToSkipCharsOffset; } private: void SetOffsets(PRUint32 aOffset, PRBool aInOriginalString); const gfxSkipChars* mSkipChars; PRInt32 mOriginalStringOffset; PRUint32 mSkippedStringOffset; // This offset is added to map from "skipped+unskipped characters in // the original DOM string" character space to "skipped+unskipped // characters in the textrun's gfxSkipChars" character space PRInt32 mOriginalStringToSkipCharsOffset; /* * This is used to speed up cursor-style traversal. The invariant is that * the first mListPrefixLength bytes of mSkipChars.mList sum to * mListPrefixCharCount, and the even-indexed bytes in that prefix sum to * mListPrefixKeepCharCount. * Also, 0 <= mListPrefixLength < mSkipChars.mListLength, or else * mSkipChars.mListLength is zero. * Also, mListPrefixCharCount <= mOriginalStringOffset (and therefore * mListPrefixKeepCharCount < mSkippedStringOffset). */ PRUint32 mListPrefixLength; PRUint32 mListPrefixCharCount; PRUint32 mListPrefixKeepCharCount; }; #line 351 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxSkipChars.h" #line 53 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxRect.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 54 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsExpirationTracker.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Mozilla. * Portions created by the Initial Developer are Copyright (C) 2007 * the Initial Developer. All Rights Reserved. * * Contributor(s): * robert@ocallahan.org * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prlog.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 43 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsExpirationTracker.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTArray.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is C++ array template. * * The Initial Developer of the Original Code is Google Inc. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 44 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsExpirationTracker.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsITimer.h" /* * DO NOT EDIT. THIS FILE IS GENERATED FROM c:/build/hg.instantbird.org/mozilla/xpcom/threads/nsITimer.idl */ #line 45 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsExpirationTracker.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCOMPtr.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Scott Collins (original author) * L. David Baron * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 46 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsExpirationTracker.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsComponentManagerUtils.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org Code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 47 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsExpirationTracker.h" /** * Data used to track the expiration state of an object. We promise that this * is 32 bits so that objects that includes this as a field can pad and align * efficiently. */ struct nsExpirationState { enum { NOT_TRACKED = (1U << 4) - 1, MAX_INDEX_IN_GENERATION = (1U << 28) - 1 }; nsExpirationState() : mGeneration(NOT_TRACKED) {} PRBool IsTracked() { return mGeneration != NOT_TRACKED; } /** * The generation that this object belongs to, or NOT_TRACKED. */ PRUint32 mGeneration:4; PRUint32 mIndexInGeneration:28; }; /** * nsExpirationTracker can track the lifetimes and usage of a large number of * objects, and send a notification some window of time after a live object was * last used. This is very useful when you manage a large number of objects * and want to flush some after they haven't been used for a while. * nsExpirationTracker is designed to be very space and time efficient. * * The type parameter T is the object type that we will track pointers to. T * must include an accessible method GetExpirationState() that returns a * pointer to an nsExpirationState associated with the object (preferably, * stored in a field of the object). * * The parameter K is the number of generations that will be used. Increasing * the number of generations narrows the window within which we promise * to fire notifications, at a slight increase in space cost for the tracker. * We require 2 <= K <= nsExpirationState::NOT_TRACKED (currently 15). * * To use this class, you need to inherit from it and override the * NotifyExpired() method. * * The approach is to track objects in K generations. When an object is accessed * it moves from its current generation to the newest generation. Generations * are stored in a cyclic array; when a timer interrupt fires, we advance * the current generation pointer to effectively age all objects very efficiently. * By storing information in each object about its generation and index within its * generation array, we make removal of objects from a generation very cheap. * * Future work: * -- Add a method to change the timer period? */ template class nsExpirationTracker { public: /** * Initialize the tracker. * @param aTimerPeriod the timer period in milliseconds. The guarantees * provided by the tracker are defined in terms of this period. If the * period is zero, then we don't use a timer and rely on someone calling * AgeOneGeneration explicitly. */ nsExpirationTracker(PRUint32 aTimerPeriod) : mTimerPeriod(aTimerPeriod), mNewestGeneration(0), mInAgeOneGeneration(0) { extern void pr_static_assert(int arg[(K >= 2 && K <= nsExpirationState::NOT_TRACKED) ? 1 : -1]); } ~nsExpirationTracker() { if (mTimer) { mTimer->Cancel(); } } /** * Add an object to be tracked. It must not already be tracked. It will * be added to the newest generation, i.e., as if it was just used. * @return an error on out-of-memory */ nsresult AddObject(T* aObj) { nsExpirationState* state = aObj->GetExpirationState(); do { if (!(!state->IsTracked())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Tried to add an object that's already tracked", "!state->IsTracked()", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsExpirationTracker.h", 124); } } while (0); nsTArray& generation = mGenerations[mNewestGeneration]; PRUint32 index = generation.Length(); if (index > nsExpirationState::MAX_INDEX_IN_GENERATION) { NS_DebugBreak_P(NS_DEBUG_WARNING, "More than 256M elements tracked, this is probably a problem", 0L, "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsExpirationTracker.h", 128); return ((nsresult) 0x8007000eL); } if (index == 0) { // We might need to start the timer nsresult rv = CheckStartTimer(); if (((!!((rv) & 0x80000000)))) return rv; } if (!generation.AppendElement(aObj)) return ((nsresult) 0x8007000eL); state->mGeneration = mNewestGeneration; state->mIndexInGeneration = index; return 0; } /** * Remove an object from the tracker. It must currently be tracked. */ void RemoveObject(T* aObj) { nsExpirationState* state = aObj->GetExpirationState(); do { if (!(state->IsTracked())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Tried to remove an object that's not tracked", "state->IsTracked()", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsExpirationTracker.h", 149); } } while (0); nsTArray& generation = mGenerations[state->mGeneration]; PRUint32 index = state->mIndexInGeneration; do { if (!(generation.Length() > index && generation[index] == aObj)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Object is lying about its index", "generation.Length() > index && generation[index] == aObj", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsExpirationTracker.h", 153); } } while (0); #line 154 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsExpirationTracker.h" // Move the last object to fill the hole created by removing aObj PRUint32 last = generation.Length() - 1; T* lastObj = generation[last]; generation[index] = lastObj; lastObj->GetExpirationState()->mIndexInGeneration = index; generation.RemoveElementAt(last); state->mGeneration = nsExpirationState::NOT_TRACKED; // We do not check whether we need to stop the timer here. The timer // will check that itself next time it fires. Checking here would not // be efficient since we'd need to track all generations. Also we could // thrash by incessantly creating and destroying timers if someone // kept adding and removing an object from the tracker. } /** * Notify that an object has been used. * @return an error if we lost the object from the tracker... */ nsresult MarkUsed(T* aObj) { nsExpirationState* state = aObj->GetExpirationState(); if (mNewestGeneration == state->mGeneration) return 0; RemoveObject(aObj); return AddObject(aObj); } /** * The timer calls this, but it can also be manually called if you want * to age objects "artifically". This can result in calls to NotifyExpired. */ void AgeOneGeneration() { if (mInAgeOneGeneration) { NS_DebugBreak_P(NS_DEBUG_WARNING, "Can't reenter AgeOneGeneration from NotifyExpired", 0L, "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsExpirationTracker.h", 186); return; } mInAgeOneGeneration = 1; PRUint32 reapGeneration = mNewestGeneration > 0 ? mNewestGeneration - 1 : K - 1; nsTArray& generation = mGenerations[reapGeneration]; // The following is rather tricky. We have to cope with objects being // removed from this generation either because of a call to RemoveObject // (or indirectly via MarkUsed) inside NotifyExpired. Fortunately no // objects can be added to this generation because it's not the newest // generation. We depend on the fact that RemoveObject can only cause // the indexes of objects in this generation to *decrease*, not increase. // So if we start from the end and work our way backwards we are guaranteed // to see each object at least once. PRUint32 index = generation.Length(); for (;;) { // Objects could have been removed so index could be outside // the array index = ((index)<(generation.Length())?(index):(generation.Length())); if (index == 0) break; --index; NotifyExpired(generation[index]); } // Any leftover objects from reapGeneration just end up in the new // newest-generation. This is bad form, though, so warn if there are any. if (!generation.IsEmpty()) { NS_DebugBreak_P(NS_DEBUG_WARNING, "Expired objects were not removed or marked used", 0L, "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsExpirationTracker.h", 215); } // Free excess memory used by the generation array, since we probably // just removed most or all of its elements. generation.Compact(); mNewestGeneration = reapGeneration; mInAgeOneGeneration = 0; } /** * This just calls AgeOneGeneration K times. Under normal circumstances this * will result in all objects getting NotifyExpired called on them, but * if NotifyExpired itself marks some objects as used, then those objects * might not expire. This would be a good thing to call if we get into * a critically-low memory situation. */ void AgeAllGenerations() { PRUint32 i; for (i = 0; i < K; ++i) { AgeOneGeneration(); } } class Iterator { private: nsExpirationTracker* mTracker; PRUint32 mGeneration; PRUint32 mIndex; public: Iterator(nsExpirationTracker* aTracker) : mTracker(aTracker), mGeneration(0), mIndex(0) {} T* Next() { while (mGeneration < K) { nsTArray* generation = &mTracker->mGenerations[mGeneration]; if (mIndex < generation->Length()) { ++mIndex; return (*generation)[mIndex - 1]; } ++mGeneration; mIndex = 0; } return 0L; } }; friend class Iterator; PRBool IsEmpty() { for (PRUint32 i = 0; i < K; ++i) { if (!mGenerations[i].IsEmpty()) return 0; } return 1; } protected: /** * This must be overridden to catch notifications. It is called whenever * we detect that an object has not been used for at least (K-1)*mTimerPeriod * milliseconds. If timer events are not delayed, it will be called within * roughly K*mTimerPeriod milliseconds after the last use. (Unless AgeOneGeneration * or AgeAllGenerations have been called to accelerate the aging process.) * * NOTE: These bounds ignore delays in timer firings due to actual work being * performed by the browser. We use a slack timer so there is always at least * mTimerPeriod milliseconds between firings, which gives us (K-1)*mTimerPeriod * as a pretty solid lower bound. The upper bound is rather loose, however. * If the maximum amount by which any given timer firing is delayed is D, then * the upper bound before NotifyExpired is called is K*(mTimerPeriod + D). * * The NotifyExpired call is expected to remove the object from the tracker, * but it need not. The object (or other objects) could be "resurrected" * by calling MarkUsed() on them, or they might just not be removed. * Any objects left over that have not been resurrected or removed * are placed in the new newest-generation, but this is considered "bad form" * and should be avoided (we'll issue a warning). (This recycling counts * as "a use" for the purposes of the expiry guarantee above...) * * For robustness and simplicity, we allow objects to be notified more than * once here in the same timer tick. */ virtual void NotifyExpired(T* aObj) = 0; private: nsTArray mGenerations[K]; nsCOMPtr mTimer; PRUint32 mTimerPeriod; PRUint32 mNewestGeneration; PRPackedBool mInAgeOneGeneration; static void TimerCallback(nsITimer* aTimer, void* aThis) { nsExpirationTracker* tracker = static_cast(aThis); tracker->AgeOneGeneration(); // Cancel the timer if we have no objects to track if (tracker->IsEmpty()) { tracker->mTimer->Cancel(); tracker->mTimer = 0L; } } nsresult CheckStartTimer() { if (mTimer || !mTimerPeriod) return 0; mTimer = do_CreateInstance("@mozilla.org/timer;1"); if (!mTimer) return ((nsresult) 0x8007000eL); mTimer->InitWithFuncCallback(TimerCallback, this, mTimerPeriod, nsITimer::TYPE_REPEATING_SLACK); return 0; } }; #line 328 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsExpirationTracker.h" #line 55 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFontConstants.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla Foundation code. * * The Initial Developer of the Original Code is Mozilla Foundation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* font constants shared by both thebes and layout */ /* * This file is separate from gfxFont.h so that layout can include it * without bringing in gfxFont.h and everything it includes. */ #line 65 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFontConstants.h" #line 56 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxPlatform.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla Foundation code. * * The Initial Developer of the Original Code is Mozilla Foundation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Vladimir Vukicevic * Masayuki Nakano * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\prtypes.h" /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is the Netscape Portable Runtime (NSPR). * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998-2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* ** File: prtypes.h ** Description: Definitions of NSPR's basic types ** ** Prototypes and macros used to make up for deficiencies that we have found ** in ANSI environments. ** ** Since we do not wrap and all the other standard headers, authors ** of portable code will not know in general that they need these definitions. ** Instead of requiring these authors to find the dependent uses in their code ** and take the following steps only in those C files, we take steps once here ** for all C files. **/ #line 43 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxPlatform.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTArray.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is C++ array template. * * The Initial Developer of the Original Code is Google Inc. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 44 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxPlatform.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIObserver.h" /* * DO NOT EDIT. THIS FILE IS GENERATED FROM c:/build/hg.instantbird.org/mozilla/xpcom/ds/nsIObserver.idl */ /* For IDL files that don't want to include root IDL files. */ /* starting interface: nsIObserver */ /** * This interface is implemented by an object that wants * to observe an event corresponding to a topic. */ class __declspec(novtable) nsIObserver : public nsISupports { public: template struct COMTypeInfo { static const nsIID kIID ; }; static const nsIID& GetIID() {return COMTypeInfo::kIID;} /** * Observe will be called when there is a notification for the * topic |aTopic|. This assumes that the object implementing * this interface has been registered with an observer service * such as the nsIObserverService. * * If you expect multiple topics/subjects, the impl is * responsible for filtering. * * You should not modify, add, remove, or enumerate * notifications in the implemention of observe. * * @param aSubject : Notification specific interface pointer. * @param aTopic : The notification topic or subject. * @param aData : Notification specific wide string. * subject event. */ /* void observe (in nsISupports aSubject, in string aTopic, in wstring aData); */ virtual nsresult __stdcall Observe(nsISupports *aSubject, const char *aTopic, const PRUnichar *aData) = 0; }; template const nsIID nsIObserver::COMTypeInfo::kIID = {0xdb242e01, 0xe4d9, 0x11d2, { 0x9d, 0xde, 0x00, 0x00, 0x64, 0x65, 0x73, 0x74 }}; /* Use this macro when declaring classes that implement this interface. */ /* Use this macro to declare functions that forward the behavior of this interface to another object. */ /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */ #line 110 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIObserver.h" #line 113 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIObserver.h" #line 46 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxPlatform.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxTypes.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 48 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxPlatform.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxASurface.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 49 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxPlatform.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxColor.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 50 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxPlatform.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\qcms.h" extern "C" { #line 7 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\qcms.h" /* if we've already got an ICC_H header we can ignore the following */ /* icc34 defines */ /***************************************************************** Copyright (c) 1994-1996 SunSoft, Inc. Rights Reserved Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restrict- ion, including without limitation the rights to use, copy, modify, merge, publish distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON- INFRINGEMENT. IN NO EVENT SHALL SUNSOFT, INC. OR ITS PARENT COMPANY BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Except as contained in this notice, the name of SunSoft, Inc. shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without written authorization from SunSoft Inc. ******************************************************************/ /* * Color Space Signatures * Note that only icSigXYZData and icSigLabData are valid * Profile Connection Spaces (PCSs) */ typedef enum { icSigXYZData = 0x58595A20L, /* 'XYZ ' */ icSigLabData = 0x4C616220L, /* 'Lab ' */ icSigLuvData = 0x4C757620L, /* 'Luv ' */ icSigYCbCrData = 0x59436272L, /* 'YCbr' */ icSigYxyData = 0x59787920L, /* 'Yxy ' */ icSigRgbData = 0x52474220L, /* 'RGB ' */ icSigGrayData = 0x47524159L, /* 'GRAY' */ icSigHsvData = 0x48535620L, /* 'HSV ' */ icSigHlsData = 0x484C5320L, /* 'HLS ' */ icSigCmykData = 0x434D594BL, /* 'CMYK' */ icSigCmyData = 0x434D5920L, /* 'CMY ' */ icSig2colorData = 0x32434C52L, /* '2CLR' */ icSig3colorData = 0x33434C52L, /* '3CLR' */ icSig4colorData = 0x34434C52L, /* '4CLR' */ icSig5colorData = 0x35434C52L, /* '5CLR' */ icSig6colorData = 0x36434C52L, /* '6CLR' */ icSig7colorData = 0x37434C52L, /* '7CLR' */ icSig8colorData = 0x38434C52L, /* '8CLR' */ icSig9colorData = 0x39434C52L, /* '9CLR' */ icSig10colorData = 0x41434C52L, /* 'ACLR' */ icSig11colorData = 0x42434C52L, /* 'BCLR' */ icSig12colorData = 0x43434C52L, /* 'CCLR' */ icSig13colorData = 0x44434C52L, /* 'DCLR' */ icSig14colorData = 0x45434C52L, /* 'ECLR' */ icSig15colorData = 0x46434C52L, /* 'FCLR' */ icMaxEnumData = 0xFFFFFFFFL } icColorSpaceSignature; #line 77 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\qcms.h" typedef int qcms_bool; struct _qcms_transform; typedef struct _qcms_transform qcms_transform; struct _qcms_profile; typedef struct _qcms_profile qcms_profile; /* these values match the Rendering Intent values from the ICC spec */ typedef enum { QCMS_INTENT_DEFAULT = 0, QCMS_INTENT_PERCEPTUAL = 0, QCMS_INTENT_RELATIVE_COLORIMETRIC = 1, QCMS_INTENT_SATURATION = 2, QCMS_INTENT_ABSOLUTE_COLORIMETRIC = 3 } qcms_intent; /* XXX: I don't really like the _DATA_ prefix */ typedef enum { QCMS_DATA_RGB_8, QCMS_DATA_RGBA_8, QCMS_DATA_GRAY_8, QCMS_DATA_GRAYA_8 } qcms_data_type; /* the names for the following two types are sort of ugly */ typedef struct { double x; double y; double Y; } qcms_CIE_xyY; typedef struct { qcms_CIE_xyY red; qcms_CIE_xyY green; qcms_CIE_xyY blue; } qcms_CIE_xyYTRIPLE; qcms_profile* qcms_profile_create_rgb_with_gamma( qcms_CIE_xyY white_point, qcms_CIE_xyYTRIPLE primaries, float gamma); qcms_profile* qcms_profile_from_memory(const void *mem, size_t size); qcms_profile* qcms_profile_from_file(FILE *file); qcms_profile* qcms_profile_from_path(const char *path); qcms_profile* qcms_profile_sRGB(void); void qcms_profile_release(qcms_profile *profile); qcms_bool qcms_profile_is_bogus(qcms_profile *profile); qcms_intent qcms_profile_get_rendering_intent(qcms_profile *profile); icColorSpaceSignature qcms_profile_get_color_space(qcms_profile *profile); void qcms_profile_precache_output_transform(qcms_profile *profile); qcms_transform* qcms_transform_create( qcms_profile *in, qcms_data_type in_type, qcms_profile* out, qcms_data_type out_type, qcms_intent intent); void qcms_transform_release(qcms_transform *); void qcms_transform_data(qcms_transform *transform, void *src, void *dest, size_t length); } #line 152 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\qcms.h" #line 154 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\qcms.h" #line 52 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxPlatform.h" class gfxImageSurface; class gfxFont; class gfxFontGroup; struct gfxFontStyle; class gfxUserFontSet; class gfxFontEntry; class gfxProxyFontEntry; class gfxPlatformFontList; class gfxTextRun; class nsIURI; class nsIAtom; class nsIPrefBranch; // pref lang id's for font prefs // !!! needs to match the list of pref font.default.xx entries listed in all.js !!! // !!! don't use as bit mask, this may grow larger !!! enum eFontPrefLang { eFontPrefLang_Western = 0, eFontPrefLang_CentEuro = 1, eFontPrefLang_Japanese = 2, eFontPrefLang_ChineseTW = 3, eFontPrefLang_ChineseCN = 4, eFontPrefLang_ChineseHK = 5, eFontPrefLang_Korean = 6, eFontPrefLang_Cyrillic = 7, eFontPrefLang_Baltic = 8, eFontPrefLang_Greek = 9, eFontPrefLang_Turkish = 10, eFontPrefLang_Thai = 11, eFontPrefLang_Hebrew = 12, eFontPrefLang_Arabic = 13, eFontPrefLang_Devanagari = 14, eFontPrefLang_Tamil = 15, eFontPrefLang_Armenian = 16, eFontPrefLang_Bengali = 17, eFontPrefLang_Canadian = 18, eFontPrefLang_Ethiopic = 19, eFontPrefLang_Georgian = 20, eFontPrefLang_Gujarati = 21, eFontPrefLang_Gurmukhi = 22, eFontPrefLang_Khmer = 23, eFontPrefLang_Malayalam = 24, eFontPrefLang_Oriya = 25, eFontPrefLang_Telugu = 26, eFontPrefLang_Kannada = 27, eFontPrefLang_Sinhala = 28, eFontPrefLang_Tibetan = 29, eFontPrefLang_LangCount = 30, // except Others and UserDefined. eFontPrefLang_Others = 30, // x-unicode eFontPrefLang_UserDefined = 31, eFontPrefLang_CJKSet = 32, // special code for CJK set eFontPrefLang_AllCount = 33 }; enum eCMSMode { eCMSMode_Off = 0, // No color management eCMSMode_All = 1, // Color manage everything eCMSMode_TaggedOnly = 2, // Color manage tagged Images Only eCMSMode_AllCount = 3 }; // when searching through pref langs, max number of pref langs const PRUint32 kMaxLenPrefLangList = 32; typedef gfxASurface::gfxImageFormat gfxImageFormat; class __declspec(dllexport) gfxPlatform { public: /** * Return a pointer to the current active platform. * This is a singleton; it contains mostly convenience * functions to obtain platform-specific objects. */ static gfxPlatform *GetPlatform(); /** * Start up Thebes. This can fail. */ static nsresult Init(); /** * Clean up static objects to shut down thebes. */ static void Shutdown(); /** * Create an offscreen surface of the given dimensions * and image format. */ virtual already_AddRefed CreateOffscreenSurface(const gfxIntSize& size, gfxASurface::gfxContentType contentType) = 0; virtual already_AddRefed OptimizeImage(gfxImageSurface *aSurface, gfxASurface::gfxImageFormat format); /* * Font bits */ virtual void SetupClusterBoundaries(gfxTextRun *aTextRun, const PRUnichar *aString); /** * Fill aListOfFonts with the results of querying the list of font names * that correspond to the given language group or generic font family * (or both, or neither). */ virtual nsresult GetFontList(nsIAtom *aLangGroup, const nsACString_internal& aGenericFamily, nsTArray& aListOfFonts); /** * Rebuilds the any cached system font lists */ virtual nsresult UpdateFontList(); /** * Create the platform font-list object (gfxPlatformFontList concrete subclass). * This function is responsible to create the appropriate subclass of * gfxPlatformFontList *and* to call its InitFontList() method. */ virtual gfxPlatformFontList *CreatePlatformFontList() { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "oops, this platform doesn't have a gfxPlatformFontList implementation", "Not Reached", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxPlatform.h", 184); return 0L; } /** * Font name resolver, this returns actual font name(s) by the callback * function. If the font doesn't exist, the callback function is not called. * If the callback function returns PR_FALSE, the aAborted value is set to * PR_TRUE, otherwise, PR_FALSE. */ typedef PRBool (*FontResolverCallback) (const nsAString_internal& aName, void *aClosure); virtual nsresult ResolveFontName(const nsAString_internal& aFontName, FontResolverCallback aCallback, void *aClosure, PRBool& aAborted) = 0; /** * Resolving a font name to family name. The result MUST be in the result of GetFontList(). * If the name doesn't in the system, aFamilyName will be empty string, but not failed. */ virtual nsresult GetStandardFamilyName(const nsAString_internal& aFontName, nsAString_internal& aFamilyName) = 0; /** * Create the appropriate platform font group */ virtual gfxFontGroup *CreateFontGroup(const nsAString_internal& aFamilies, const gfxFontStyle *aStyle, gfxUserFontSet *aUserFontSet) = 0; /** * Look up a local platform font using the full font face name. * (Needed to support @font-face src local().) * Ownership of the returned gfxFontEntry is passed to the caller, * who must either AddRef() or delete. */ virtual gfxFontEntry* LookupLocalFont(const gfxProxyFontEntry *aProxyEntry, const nsAString_internal& aFontName) { return 0L; } /** * Activate a platform font. (Needed to support @font-face src url().) * aFontData is a NS_Malloc'ed block that must be freed by this function * (or responsibility passed on) when it is no longer needed; the caller * will NOT free it. * Ownership of the returned gfxFontEntry is passed to the caller, * who must either AddRef() or delete. */ virtual gfxFontEntry* MakePlatformFont(const gfxProxyFontEntry *aProxyEntry, const PRUint8 *aFontData, PRUint32 aLength); /** * Whether to allow downloadable fonts via @font-face rules */ PRBool DownloadableFontsEnabled(); /** * Whether to sanitize downloaded fonts using the OTS library */ PRBool SanitizeDownloadedFonts(); /** * Whether to preserve OpenType layout tables when sanitizing */ PRBool PreserveOTLTablesWhenSanitizing(); /** * Whether to use the harfbuzz shaper (depending on script complexity). * * This allows harfbuzz to be enabled selectively via the preferences. * Current "harfbuzz level" options: * <= 0 will never use the harfbuzz shaper; * = 1 will use it for "simple" scripts (Latin, Cyrillic, CJK, etc); * >= 2 will use it for all scripts, including those requiring complex * shaping for correct rendering (Arabic, Indic, etc). * * Depending how harfbuzz complex-script support evolves, we may want to * update this mechanism - e.g., separating complex-bidi from Indic, * or other distinctions. */ PRInt8 UseHarfBuzzLevel(); // check whether format is supported on a platform or not (if unclear, returns true) virtual PRBool IsFontFormatSupported(nsIURI *aFontURI, PRUint32 aFormatFlags) { return 0; } void GetPrefFonts(nsIAtom *aLanguage, nsString& array, PRBool aAppendUnicode = 1); // in some situations, need to make decisions about ambiguous characters, may need to look at multiple pref langs void GetLangPrefs(eFontPrefLang aPrefLangs[], PRUint32 &aLen, eFontPrefLang aCharLang, eFontPrefLang aPageLang); /** * Iterate over pref fonts given a list of lang groups. For a single lang * group, multiple pref fonts are possible. If error occurs, returns PR_FALSE, * PR_TRUE otherwise. Callback returns PR_FALSE to abort process. */ typedef PRBool (*PrefFontCallback) (eFontPrefLang aLang, const nsAString_internal& aName, void *aClosure); static PRBool ForEachPrefFont(eFontPrefLang aLangArray[], PRUint32 aLangArrayLen, PrefFontCallback aCallback, void *aClosure); // convert a lang group to enum constant (i.e. "zh-TW" ==> eFontPrefLang_ChineseTW) static eFontPrefLang GetFontPrefLangFor(const char* aLang); // convert a lang group atom to enum constant static eFontPrefLang GetFontPrefLangFor(nsIAtom *aLang); // convert a enum constant to lang group string (i.e. eFontPrefLang_ChineseTW ==> "zh-TW") static const char* GetPrefLangName(eFontPrefLang aLang); // map a Unicode range (based on char code) to a font language for Preferences static eFontPrefLang GetFontPrefLangFor(PRUint8 aUnicodeRange); // returns true if a pref lang is CJK static PRBool IsLangCJK(eFontPrefLang aLang); // helper method to add a pref lang to an array, if not already in array static void AppendPrefLang(eFontPrefLang aPrefLangs[], PRUint32& aLen, eFontPrefLang aAddLang); /** * Are we going to try color management? */ static eCMSMode GetCMSMode(); /** * Determines the rendering intent for color management. * * If the value in the pref gfx.color_management.rendering_intent is a * valid rendering intent as defined in gfx/qcms/qcms.h, that * value is returned. Otherwise, -1 is returned and the embedded intent * should be used. * * See bug 444014 for details. */ static int GetRenderingIntent(); /** * Convert a pixel using a cms transform in an endian-aware manner. * * Sets 'out' to 'in' if transform is NULL. */ static void TransformPixel(const gfxRGBA& in, gfxRGBA& out, qcms_transform *transform); /** * Return the output device ICC profile. */ static qcms_profile* GetCMSOutputProfile(); /** * Return the sRGB ICC profile. */ static qcms_profile* GetCMSsRGBProfile(); /** * Return sRGB -> output device transform. */ static qcms_transform* GetCMSRGBTransform(); /** * Return output -> sRGB device transform. */ static qcms_transform* GetCMSInverseRGBTransform(); /** * Return sRGBA -> output device transform. */ static qcms_transform* GetCMSRGBATransform(); virtual void FontsPrefsChanged(nsIPrefBranch *aPrefBranch, const char *aPref); /** * Returns a 1x1 surface that can be used to create graphics contexts * for measuring text etc as if they will be rendered to the screen */ gfxASurface* ScreenReferenceSurface() { return mScreenReferenceSurface; } virtual gfxImageFormat GetOffscreenFormat() { return gfxASurface::FormatFromContent(gfxASurface::CONTENT_COLOR); } protected: gfxPlatform(); virtual ~gfxPlatform(); static PRBool GetBoolPref(const char *aPref, PRBool aDefault); void AppendCJKPrefLangs(eFontPrefLang aPrefLangs[], PRUint32 &aLen, eFontPrefLang aCharLang, eFontPrefLang aPageLang); PRBool mAllowDownloadableFonts; PRBool mDownloadableFontsSanitize; PRBool mSanitizePreserveOTLTables; // whether to use the HarfBuzz layout engine PRInt8 mUseHarfBuzzLevel; private: virtual qcms_profile* GetPlatformCMSOutputProfile(); nsRefPtr mScreenReferenceSurface; nsTArray mCJKPrefLangs; nsCOMPtr overrideObserver; }; #line 390 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxPlatform.h" #line 57 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIAtom.h" /* * DO NOT EDIT. THIS FILE IS GENERATED FROM c:/build/hg.instantbird.org/mozilla/xpcom/ds/nsIAtom.idl */ /* For IDL files that don't want to include root IDL files. */ #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsStringGlue.h" /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla XPCOM Glue. * * The Initial Developer of the Original Code is * the Mozilla Foundation . * * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Benjamin Smedberg * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /** * @file nsStringGlue.h * This header exists solely to #include the proper internal/frozen string * headers, depending on whether MOZILLA_INTERNAL_API is defined. */ #line 18 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIAtom.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsCOMPtr.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Scott Collins (original author) * L. David Baron * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 19 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIAtom.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsStringBuffer.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla. * * The Initial Developer of the Original Code is IBM Corporation. * Portions created by IBM Corporation are Copyright (C) 2003 * IBM Corporation. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /** * This structure precedes the string buffers "we" allocate. It may be the * case that nsTAString::mData does not point to one of these special * buffers. The mFlags member variable distinguishes the buffer type. * * When this header is in use, it enables reference counting, and capacity * tracking. NOTE: A string buffer can be modified only if its reference * count is 1. */ class nsStringBuffer { private: friend class CheckStaticAtomSizes; PRInt32 mRefCount; PRUint32 mStorageSize; public: /** * Allocates a new string buffer, with given size in bytes and a * reference count of one. When the string buffer is no longer needed, * it should be released via Release. * * It is up to the caller to set the bytes corresponding to the string * buffer by calling the Data method to fetch the raw data pointer. Care * must be taken to properly null terminate the character array. The * storage size can be greater than the length of the actual string * (i.e., it is not required that the null terminator appear in the last * storage unit of the string buffer's data). * * @return new string buffer or null if out of memory. */ static nsStringBuffer* Alloc(size_t storageSize); /** * Resizes the given string buffer to the specified storage size. This * method must not be called on a readonly string buffer. Use this API * carefully!! * * This method behaves like the ANSI-C realloc function. (i.e., If the * allocation fails, null will be returned and the given string buffer * will remain unmodified.) * * @see IsReadonly */ static nsStringBuffer* Realloc(nsStringBuffer* buf, size_t storageSize); /** * Increment the reference count on this string buffer. */ void __fastcall AddRef(); /** * Decrement the reference count on this string buffer. The string * buffer will be destroyed when its reference count reaches zero. */ void __fastcall Release(); /** * This method returns the string buffer corresponding to the given data * pointer. The data pointer must have been returned previously by a * call to the nsStringBuffer::Data method. */ static nsStringBuffer* FromData(void* data) { return (nsStringBuffer*) ( ((char*) data) - sizeof(nsStringBuffer) ); } /** * This method returns the data pointer for this string buffer. */ void* Data() const { return (void*) ( ((char*) this) + sizeof(nsStringBuffer) ); } /** * This function returns the storage size of a string buffer in bytes. * This value is the same value that was originally passed to Alloc (or * Realloc). */ PRUint32 StorageSize() const { return mStorageSize; } /** * If this method returns false, then the caller can be sure that their * reference to the string buffer is the only reference to the string * buffer, and therefore it has exclusive access to the string buffer and * associated data. However, if this function returns true, then other * consumers may rely on the data in this buffer being immutable and * other threads may access this buffer simultaneously. */ PRBool IsReadonly() const { return mRefCount > 1; } /** * The FromString methods return a string buffer for the given string * object or null if the string object does not have a string buffer. * The reference count of the string buffer is NOT incremented by these * methods. If the caller wishes to hold onto the returned value, then * the returned string buffer must have its reference count incremented * via a call to the AddRef method. */ static nsStringBuffer* FromString(const nsAString_internal &str); static nsStringBuffer* FromString(const nsACString_internal &str); /** * The ToString methods assign this string buffer to a given string * object. If the string object does not support sharable string * buffers, then its value will be set to a copy of the given string * buffer. Otherwise, these methods increment the reference count of the * given string buffer. It is important to specify the length (in * storage units) of the string contained in the string buffer since the * length of the string may be less than its storage size. The string * must have a null terminator at the offset specified by |len|. * * NOTE: storage size is measured in bytes even for wide strings; * however, string length is always measured in storage units * (2-byte units for wide strings). */ void ToString(PRUint32 len, nsAString_internal &str, PRBool aMoveOwnership = 0); void ToString(PRUint32 len, nsACString_internal &str, PRBool aMoveOwnership = 0); }; #line 175 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsStringBuffer.h" #line 20 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIAtom.h" /* starting interface: nsIAtom */ class nsIAtom : public nsISupports { public: template struct COMTypeInfo { static const nsIID kIID ; }; static const nsIID& GetIID() {return COMTypeInfo::kIID;} /** * Get the Unicode or UTF8 value for the string */ /* [binaryname (ScriptableToString)] AString toString (); */ virtual nsresult __stdcall ScriptableToString(nsAString_internal & _retval ) = 0; /* [noscript] AUTF8String toUTF8String (); */ virtual nsresult __stdcall ToUTF8String(nsACString_internal & _retval ) = 0; /** * Compare the atom to a specific string value * Note that this will NEVER return/throw an error condition. */ /* [binaryname (ScriptableEquals)] boolean equals (in AString aString); */ virtual nsresult __stdcall ScriptableEquals(const nsAString_internal & aString, PRBool *_retval ) = 0; /* [noscript, notxpcom] boolean equalsUTF8 (in AUTF8String aString); */ virtual PRBool __stdcall EqualsUTF8(const nsACString_internal & aString) = 0; /** * Returns true if the atom is static and false otherwise. */ /* [noscript, notxpcom] boolean isStaticAtom (); */ virtual PRBool __stdcall IsStaticAtom(void) = 0; // note this is NOT virtual so this won't muck with the vtable! inline PRBool Equals(const nsAString_internal& aString) { return aString.Equals(nsDependentString(mString, mLength)); } inline const PRUnichar* GetUTF16String() { return mString; } inline const PRUint32 GetLength() { return mLength; } inline void ToString(nsAString_internal& aBuf) { nsStringBuffer::FromData(mString)->ToString(mLength, aBuf); } protected: PRUint32 mLength; PRUnichar* mString; }; template const nsIID nsIAtom::COMTypeInfo::kIID = {0x1f341018, 0x521a, 0x49de, { 0xb8, 0x06, 0x1b, 0xef, 0x5c, 0x9a, 0x00, 0xb0 }}; /* Use this macro when declaring classes that implement this interface. */ /* Use this macro to declare functions that forward the behavior of this interface to another object. */ /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */ #line 166 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIAtom.h" /* * The three forms of NS_NewAtom and do_GetAtom (for use with * |nsCOMPtr|) return the atom for the string given. At any * given time there will always be one atom representing a given string. * Atoms are intended to make string comparison cheaper by simplifying * it to pointer equality. A pointer to the atom that does not own a * reference is not guaranteed to be valid. * * The three forms of NS_NewPermanentAtom and do_GetPermanentAtom return * the atom for the given string and ensure that the atom is permanent. * An atom that is permanent will exist (occupy space at a specific * location in memory) until XPCOM is shut down. The advantage of * permanent atoms is that they do not need to maintain a reference * count, which requires locking and hurts performance. */ /** * Find an atom that matches the given UTF-8 string. * The string is assumed to be zero terminated. */ extern nsIAtom* NS_NewAtom(const char* aUTF8String); inline already_AddRefed do_GetAtom(const char* aUTF8String) { return NS_NewAtom(aUTF8String); } /** * Find an atom that matches the given UTF-8 string. */ extern nsIAtom* NS_NewAtom(const nsACString_internal& aUTF8String); inline already_AddRefed do_GetAtom(const nsACString_internal& aUTF8String) { return NS_NewAtom(aUTF8String); } /** * Find an atom that matches the given UTF-16 string. * The string is assumed to be zero terminated. */ extern nsIAtom* NS_NewAtom(const PRUnichar* aUTF16String); inline already_AddRefed do_GetAtom(const PRUnichar* aUTF16String) { return NS_NewAtom(aUTF16String); } /** * Find an atom that matches the given UTF-16 string. */ extern nsIAtom* NS_NewAtom(const nsAString_internal& aUTF16String); extern nsIAtom* NS_NewPermanentAtom(const nsAString_internal& aUTF16String); inline already_AddRefed do_GetAtom(const nsAString_internal& aUTF16String) { return NS_NewAtom(aUTF16String); } /** * Return a count of the total number of atoms currently * alive in the system. */ extern nsrefcnt NS_GetNumberOfAtoms(void); /** * Return a pointer for a static atom for the string or null if there's * no static atom for this string. */ extern nsIAtom* NS_GetStaticAtom(const nsAString_internal& aUTF16String); /** * Seal the static atom table */ extern void NS_SealStaticAtomTable(); class nsAtomString : public nsString { public: nsAtomString(nsIAtom* aAtom) { aAtom->ToString(*this); } }; class nsAtomCString : public nsCString { public: nsAtomCString(nsIAtom* aAtom) { aAtom->ToUTF8String(*this); } }; class nsDependentAtomString : public nsDependentString { public: nsDependentAtomString(nsIAtom* aAtom) : nsDependentString(aAtom->GetUTF16String(), aAtom->GetLength()) { } }; #line 250 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIAtom.h" #line 58 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsISupportsImpl.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is XPCOM. * * The Initial Developer of the Original Code is Netscape Communications Corp. * Portions created by the Initial Developer are Copyright (C) 2001 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 59 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h" #line 63 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h" class gfxContext; class gfxTextRun; class gfxFont; class gfxFontFamily; class gfxFontGroup; class gfxUserFontSet; class gfxUserFontData; class nsILanguageAtomService; typedef struct _hb_blob_t hb_blob_t; // We should eliminate these synonyms when it won't cause many merge conflicts. // We should eliminate these synonyms when it won't cause many merge conflicts. // An OpenType feature tag and value pair struct __declspec(dllexport) gfxFontFeature { PRUint32 mTag; // see http://www.microsoft.com/typography/otspec/featuretags.htm PRUint32 mValue; // 0 = off, 1 = on, larger values may be used as parameters // to features that select among multiple alternatives }; inline PRBool operator<(const gfxFontFeature& a, const gfxFontFeature& b) { return (a.mTag < b.mTag) || ((a.mTag == b.mTag) && (a.mValue < b.mValue)); } inline PRBool operator==(const gfxFontFeature& a, const gfxFontFeature& b) { return (a.mTag == b.mTag) && (a.mValue == b.mValue); } struct __declspec(dllexport) gfxFontStyle { gfxFontStyle(); gfxFontStyle(PRUint8 aStyle, PRUint16 aWeight, PRInt16 aStretch, gfxFloat aSize, nsIAtom *aLanguage, float aSizeAdjust, PRPackedBool aSystemFont, PRPackedBool aFamilyNameQuirks, PRPackedBool aPrinterFont, const nsString& aFeatureSettings, const nsString& aLanguageOverride); gfxFontStyle(const gfxFontStyle& aStyle); // The style of font (normal, italic, oblique) PRUint8 style : 7; // Say that this font is a system font and therefore does not // require certain fixup that we do for fonts from untrusted // sources. PRPackedBool systemFont : 1; // Say that this font is used for print or print preview. PRPackedBool printerFont : 1; // True if the character set quirks (for treatment of "Symbol", // "Wingdings", etc.) should be applied. PRPackedBool familyNameQuirks : 1; // The weight of the font: 100, 200, ... 900. PRUint16 weight; // The stretch of the font (the sum of various NS_FONT_STRETCH_* // constants; see gfxFontConstants.h). PRInt16 stretch; // The logical size of the font, in pixels gfxFloat size; // The aspect-value (ie., the ratio actualsize:actualxheight) that any // actual physical font created from this font structure must have when // rendering or measuring a string. A value of 0 means no adjustment // needs to be done. float sizeAdjust; // the language (may be an internal langGroup code rather than an actual // language code) specified in the document or element's lang property, // or inferred from the charset nsRefPtr language; // Language system tag, to override document language; // an OpenType "language system" tag represented as a 32-bit integer // (see http://www.microsoft.com/typography/otspec/languagetags.htm). // Normally 0, so font rendering will use the document or element language // (see above) to control any language-specific rendering, but the author // can override this for cases where the options implemented in the font // do not directly match the actual language. (E.g. lang may be Macedonian, // but the font in use does not explicitly support this; the author can // use font-language-override to request the Serbian option in the font // in order to get correct glyph shapes.) PRUint32 languageOverride; // custom opentype feature settings nsTArray featureSettings; // Return the final adjusted font size for the given aspect ratio. // Not meant to be called when sizeAdjust = 0. gfxFloat GetAdjustedSize(gfxFloat aspect) const { do { if (!(sizeAdjust != 0.0)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Not meant to be called when sizeAdjust = 0", "sizeAdjust != 0.0", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h", 174); } } while (0); gfxFloat adjustedSize = ((NS_round(size*(sizeAdjust/aspect)))>(1.0)?(NS_round(size*(sizeAdjust/aspect))):(1.0)); return ((adjustedSize)<(2000.0)?(adjustedSize):(2000.0)); } PLDHashNumber Hash() const { return ((style + (systemFont << 7) + (familyNameQuirks << 8) + (weight << 9)) + PRUint32(size*1000) + PRUint32(sizeAdjust*1000)) ^ nsISupportsHashKey::HashKey(language); } PRInt8 ComputeWeight() const; PRBool Equals(const gfxFontStyle& other) const { return (size == other.size) && (style == other.style) && (systemFont == other.systemFont) && (printerFont == other.printerFont) && (familyNameQuirks == other.familyNameQuirks) && (weight == other.weight) && (stretch == other.stretch) && (language == other.language) && (sizeAdjust == other.sizeAdjust) && (featureSettings == other.featureSettings) && (languageOverride == other.languageOverride); } static void ParseFontFeatureSettings(const nsString& aFeatureString, nsTArray& aFeatures); static PRUint32 ParseFontLanguageOverride(const nsString& aLangTag); }; class gfxFontEntry { public: public: void AddRef(void) { do { if (!(PRInt32(mRefCnt) >= 0)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "illegal refcnt", "PRInt32(mRefCnt) >= 0", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h", 209); } } while (0); do { if (NS_IsCycleCollectorThread_P()) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Changing refcount of " "gfxFontEntry" " object during Traverse is " "not permitted!", "Error", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h", 209); } else { do { if (!(_mOwningThread.GetThread() == PR_GetCurrentThread())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "gfxFontEntry" " not thread-safe", "_mOwningThread.GetThread() == PR_GetCurrentThread()", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h", 209); } } while (0); } } while (0); ++mRefCnt; NS_LogAddRef_P((this), (mRefCnt), ("gfxFontEntry"), (PRUint32) (sizeof(*this))); } void Release(void) { do { if (!(0 != mRefCnt)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "dup release", "0 != mRefCnt", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h", 209); } } while (0); do { if (NS_IsCycleCollectorThread_P()) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Changing refcount of " "gfxFontEntry" " object during Traverse is " "not permitted!", "Error", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h", 209); } else { do { if (!(_mOwningThread.GetThread() == PR_GetCurrentThread())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "gfxFontEntry" " not thread-safe", "_mOwningThread.GetThread() == PR_GetCurrentThread()", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h", 209); } } while (0); } } while (0); --mRefCnt; NS_LogRelease_P((this), (mRefCnt), ("gfxFontEntry")); if (mRefCnt == 0) { do { if (!(_mOwningThread.GetThread() == PR_GetCurrentThread())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "gfxFontEntry" " not thread-safe", "_mOwningThread.GetThread() == PR_GetCurrentThread()", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h", 209); } } while (0); mRefCnt = 1; delete this; } } protected: nsAutoRefCnt mRefCnt; nsAutoOwningThread _mOwningThread; public: gfxFontEntry(const nsAString_internal& aName, gfxFontFamily *aFamily = 0L, PRBool aIsStandardFace = 0) : mName(aName), mItalic(0), mFixedPitch(0), mIsProxy(0), mIsValid(1), mIsBadUnderlineFont(0), mIsUserFont(0), mIsLocalUserFont(0), mStandardFace(aIsStandardFace), mSymbolFont(0), mWeight(500), mStretch(0), mHasCmapTable(0), mCmapInitialized(0), mUVSOffset(0), mUVSData(0L), mUserFontData(0L), mLanguageOverride(0), mFamily(aFamily) { } virtual ~gfxFontEntry(); // unique name for the face, *not* the family const nsString& Name() const { return mName; } PRUint16 Weight() const { return mWeight; } PRInt16 Stretch() const { return mStretch; } PRBool IsUserFont() const { return mIsUserFont; } PRBool IsLocalUserFont() const { return mIsLocalUserFont; } PRBool IsFixedPitch() const { return mFixedPitch; } PRBool IsItalic() const { return mItalic; } PRBool IsBold() const { return mWeight >= 600; } // bold == weights 600 and above PRBool IsSymbolFont() const { return mSymbolFont; } inline PRBool HasCmapTable() { if (!mCmapInitialized) { ReadCMAP(); } return mHasCmapTable; } inline PRBool HasCharacter(PRUint32 ch) { if (mCharacterMap.test(ch)) return 1; return TestCharacterMap(ch); } virtual PRBool SkipDuringSystemFallback() { return 0; } virtual PRBool TestCharacterMap(PRUint32 aCh); nsresult InitializeUVSMap(); PRUint16 GetUVSGlyph(PRUint32 aCh, PRUint32 aVS); virtual nsresult ReadCMAP(); virtual PRBool MatchesGenericFamily(const nsACString_internal& aGeneric) const { return 1; } virtual PRBool SupportsLangGroup(nsIAtom *aLangGroup) const { return 1; } virtual nsresult GetFontTable(PRUint32 aTableTag, nsTArray& aBuffer) { return ((nsresult) 0x80004005L); // all platform subclasses should reimplement this! } void SetFamily(gfxFontFamily* aFamily) { mFamily = aFamily; } const nsString& FamilyName() const; already_AddRefed FindOrMakeFont(const gfxFontStyle *aStyle, PRBool aNeedsBold); // Get an existing font table cache entry in aBlob if it has been // registered, or return PR_FALSE if not. Callers must call // hb_blob_destroy on aBlob if PR_TRUE is returned. // // Note that some gfxFont implementations may not call this at all, // if it is more efficient to get the table from the OS at that level. PRBool GetExistingFontTable(PRUint32 aTag, hb_blob_t** aBlob); // Elements of aTable are transferred (not copied) to and returned in a // new hb_blob_t which is registered on the gfxFontEntry, but the initial // reference is owned by the caller. Removing the last reference // unregisters the table from the font entry. // // Pass NULL for aBuffer to indicate that the table is not present and // NULL will be returned. Also returns NULL on OOM. hb_blob_t *ShareFontTableAndGetBlob(PRUint32 aTag, nsTArray* aTable); // Preload a font table into the cache (used to store layout tables for // harfbuzz, when they will be stripped from the actual sfnt being // passed to platform font APIs for rasterization) void PreloadFontTable(PRUint32 aTag, nsTArray& aTable); nsString mName; PRPackedBool mItalic : 1; PRPackedBool mFixedPitch : 1; PRPackedBool mIsProxy : 1; PRPackedBool mIsValid : 1; PRPackedBool mIsBadUnderlineFont : 1; PRPackedBool mIsUserFont : 1; PRPackedBool mIsLocalUserFont : 1; PRPackedBool mStandardFace : 1; PRPackedBool mSymbolFont : 1; PRUint16 mWeight; PRInt16 mStretch; PRPackedBool mHasCmapTable; PRPackedBool mCmapInitialized; gfxSparseBitSet mCharacterMap; PRUint32 mUVSOffset; nsAutoArrayPtr mUVSData; gfxUserFontData* mUserFontData; nsTArray mFeatureSettings; PRUint32 mLanguageOverride; protected: friend class gfxPlatformFontList; friend class gfxMacPlatformFontList; friend class gfxUserFcFontEntry; friend class gfxFontFamily; friend class gfxSingleFaceMacFontFamily; gfxFontEntry() : mItalic(0), mFixedPitch(0), mIsProxy(0), mIsValid(1), mIsBadUnderlineFont(0), mIsUserFont(0), mIsLocalUserFont(0), mStandardFace(0), mSymbolFont(0), mWeight(500), mStretch(0), mHasCmapTable(0), mCmapInitialized(0), mUVSOffset(0), mUVSData(0L), mUserFontData(0L), mLanguageOverride(0), mFamily(0L) { } virtual gfxFont *CreateFontInstance(const gfxFontStyle *aFontStyle, PRBool aNeedsBold) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "oops, somebody didn't override CreateFontInstance", "Not Reached", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h", 355); return 0L; } gfxFontFamily *mFamily; private: /** * Font table hashtable, to support GetFontTable for harfbuzz. * * The harfbuzz shaper (and potentially other clients) needs access to raw * font table data. This needs to be cached so that it can be used * repeatedly (each time we construct a text run; in some cases, for * each character/glyph within the run) without re-fetching large tables * every time. * * Because we may instantiate many gfxFonts for the same physical font * file (at different sizes), we should ensure that they can share a * single cached copy of the font tables. To do this, we implement table * access and sharing on the fontEntry rather than the font itself. * * The default implementation uses GetFontTable() to read font table * data into byte arrays, and wraps them in blobs which are registered in * a hashtable. The hashtable can then return pre-existing blobs to * harfbuzz. * * Harfbuzz will "destroy" the blobs when it is finished with them. When * the last blob reference is removed, the FontTableBlobData user data * will remove the blob from the hashtable if still registered. */ class FontTableBlobData; /** * FontTableHashEntry manages the entries of hb_blob_ts for two * different situations: * * The common situation is to share font table across fonts with the same * font entry (but different sizes) for use by HarfBuzz. The hashtable * does not own a strong reference to the blob, but keeps a weak pointer, * managed by FontTableBlobData. Similarly FontTableBlobData keeps only a * weak pointer to the hashtable, managed by FontTableHashEntry. * * Some font tables are saved here before they would get stripped by OTS * sanitizing. These are retained for harfbuzz, which does its own * sanitizing. The hashtable owns a reference, so ownership is simple. */ class FontTableHashEntry : public nsUint32HashKey { public: // Declarations for nsTHashtable typedef nsUint32HashKey KeyClass; typedef KeyClass::KeyType KeyType; typedef KeyClass::KeyTypePointer KeyTypePointer; FontTableHashEntry(KeyTypePointer aTag) : KeyClass(aTag), mBlob() { }; // Copying transfers blob association. FontTableHashEntry(FontTableHashEntry& toCopy) : KeyClass(toCopy), mBlob(toCopy.mBlob) { toCopy.mBlob = 0L; } ~FontTableHashEntry() { Clear(); } // FontTable/Blob API // Transfer (not copy) elements of aTable to a new hb_blob_t and // return ownership to the caller. A weak reference to the blob is // recorded in the hashtable entry so that others may use the same // table. hb_blob_t * ShareTableAndGetBlob(nsTArray& aTable, nsTHashtable *aHashtable); // Transfer (not copy) elements of aTable to a new hb_blob_t that is // owned by the hashtable entry. void SaveTable(nsTArray& aTable); // Return a strong reference to the blob. // Callers must hb_blob_destroy the returned blob. hb_blob_t *GetBlob() const; void Clear(); private: static void DeleteFontTableBlobData(void *aBlobData); // not implemented FontTableHashEntry& operator=(FontTableHashEntry& toCopy); FontTableBlobData *mSharedBlobData; hb_blob_t *mBlob; }; nsTHashtable mFontTableCache; gfxFontEntry(const gfxFontEntry&); gfxFontEntry& operator=(const gfxFontEntry&); }; // used when picking fallback font struct FontSearch { FontSearch(const PRUint32 aCharacter, gfxFont *aFont) : mCh(aCharacter), mFontToMatch(aFont), mMatchRank(0) { } const PRUint32 mCh; gfxFont* mFontToMatch; PRInt32 mMatchRank; nsRefPtr mBestMatch; }; class gfxFontFamily { public: public: void AddRef(void) { do { if (!(PRInt32(mRefCnt) >= 0)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "illegal refcnt", "PRInt32(mRefCnt) >= 0", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h", 473); } } while (0); do { if (NS_IsCycleCollectorThread_P()) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Changing refcount of " "gfxFontFamily" " object during Traverse is " "not permitted!", "Error", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h", 473); } else { do { if (!(_mOwningThread.GetThread() == PR_GetCurrentThread())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "gfxFontFamily" " not thread-safe", "_mOwningThread.GetThread() == PR_GetCurrentThread()", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h", 473); } } while (0); } } while (0); ++mRefCnt; NS_LogAddRef_P((this), (mRefCnt), ("gfxFontFamily"), (PRUint32) (sizeof(*this))); } void Release(void) { do { if (!(0 != mRefCnt)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "dup release", "0 != mRefCnt", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h", 473); } } while (0); do { if (NS_IsCycleCollectorThread_P()) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Changing refcount of " "gfxFontFamily" " object during Traverse is " "not permitted!", "Error", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h", 473); } else { do { if (!(_mOwningThread.GetThread() == PR_GetCurrentThread())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "gfxFontFamily" " not thread-safe", "_mOwningThread.GetThread() == PR_GetCurrentThread()", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h", 473); } } while (0); } } while (0); --mRefCnt; NS_LogRelease_P((this), (mRefCnt), ("gfxFontFamily")); if (mRefCnt == 0) { do { if (!(_mOwningThread.GetThread() == PR_GetCurrentThread())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "gfxFontFamily" " not thread-safe", "_mOwningThread.GetThread() == PR_GetCurrentThread()", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h", 473); } } while (0); mRefCnt = 1; delete this; } } protected: nsAutoRefCnt mRefCnt; nsAutoOwningThread _mOwningThread; public: gfxFontFamily(const nsAString_internal& aName) : mName(aName), mOtherFamilyNamesInitialized(0), mHasOtherFamilyNames(0), mFaceNamesInitialized(0), mHasStyles(0), mIsSimpleFamily(0), mIsBadUnderlineFamily(0) { } virtual ~gfxFontFamily() { } const nsString& Name() { return mName; } virtual void LocalizedName(nsAString_internal& aLocalizedName); virtual PRBool HasOtherFamilyNames(); nsTArray >& GetFontList() { return mAvailableFonts; } void AddFontEntry(nsRefPtr aFontEntry) { mAvailableFonts.AppendElement(aFontEntry); } // note that the styles for this family have been added void SetHasStyles(PRBool aHasStyles) { mHasStyles = aHasStyles; } // choose a specific face to match a style using CSS font matching // rules (weight matching occurs here). may return a face that doesn't // precisely match (e.g. normal face when no italic face exists). // aNeedsSyntheticBold is set to true when synthetic bolding is // needed, false otherwise gfxFontEntry *FindFontForStyle(const gfxFontStyle& aFontStyle, PRBool& aNeedsSyntheticBold); // iterates over faces looking for a match with a given characters // used as part of the font fallback process void FindFontForChar(FontSearch *aMatchData); // read in other family names, if any, and use functor to add each into cache virtual void ReadOtherFamilyNames(gfxPlatformFontList *aPlatformFontList); // read in other localized family names, fullnames and Postscript names // for all faces and append to lookup tables virtual void ReadFaceNames(gfxPlatformFontList *aPlatformFontList, PRBool aNeedFullnamePostscriptNames); // find faces belonging to this family (platform implementations override this; // should be made pure virtual once all subclasses have been updated) virtual void FindStyleVariations() { } // search for a specific face using the Postscript name gfxFontEntry* FindFont(const nsAString_internal& aPostscriptName); // read in cmaps for all the faces void ReadCMAP() { PRUint32 i, numFonts = mAvailableFonts.Length(); // called from RunLoader BEFORE CheckForSimpleFamily so that there cannot // be any NULL entries in mAvailableFonts for (i = 0; i < numFonts; i++) mAvailableFonts[i]->ReadCMAP(); } // mark this family as being in the "bad" underline offset blacklist void SetBadUnderlineFamily() { mIsBadUnderlineFamily = 1; if (mHasStyles) { SetBadUnderlineFonts(); } } PRBool IsBadUnderlineFamily() const { return mIsBadUnderlineFamily; } // sort available fonts to put preferred (standard) faces towards the end void SortAvailableFonts(); // check whether the family fits into the simple 4-face model, // so we can use simplified style-matching; // if so set the mIsSimpleFamily flag (defaults to False before we've checked) void CheckForSimpleFamily(); protected: // fills in an array with weights of faces that match style, // returns whether any matching entries found virtual PRBool FindWeightsForStyle(gfxFontEntry* aFontsForWeights[], PRBool anItalic, PRInt16 aStretch); PRBool ReadOtherFamilyNamesForFace(gfxPlatformFontList *aPlatformFontList, nsTArray& aNameTable, PRBool useFullName = 0); // set whether this font family is in "bad" underline offset blacklist. void SetBadUnderlineFonts() { PRUint32 i, numFonts = mAvailableFonts.Length(); for (i = 0; i < numFonts; i++) { if (mAvailableFonts[i]) { mAvailableFonts[i]->mIsBadUnderlineFont = 1; } } } nsString mName; nsTArray > mAvailableFonts; PRPackedBool mOtherFamilyNamesInitialized; PRPackedBool mHasOtherFamilyNames; PRPackedBool mFaceNamesInitialized; PRPackedBool mHasStyles; PRPackedBool mIsSimpleFamily; PRPackedBool mIsBadUnderlineFamily; enum { // for "simple" families, the faces are stored in mAvailableFonts // with fixed positions: kRegularFaceIndex = 0, kBoldFaceIndex = 1, kItalicFaceIndex = 2, kBoldItalicFaceIndex = 3, // mask values for selecting face with bold and/or italic attributes kBoldMask = 0x01, kItalicMask = 0x02 }; }; struct gfxTextRange { gfxTextRange(PRUint32 aStart, PRUint32 aEnd) : start(aStart), end(aEnd) { } PRUint32 Length() const { return end - start; } nsRefPtr font; PRUint32 start, end; }; /** * Font cache design: * * The mFonts hashtable contains most fonts, indexed by (gfxFontEntry*, style). * It does not add a reference to the fonts it contains. * When a font's refcount decreases to zero, instead of deleting it we * add it to our expiration tracker. * The expiration tracker tracks fonts with zero refcount. After a certain * period of time, such fonts expire and are deleted. * * We're using 3 generations with a ten-second generation interval, so * zero-refcount fonts will be deleted 20-30 seconds after their refcount * goes to zero, if timer events fire in a timely manner. */ class __declspec(dllexport) gfxFontCache : public nsExpirationTracker { public: enum { TIMEOUT_SECONDS = 10 }; gfxFontCache() : nsExpirationTracker(TIMEOUT_SECONDS*1000) { mFonts.Init(); } ~gfxFontCache() { // Expire everything that has a zero refcount, so we don't leak them. AgeAllGenerations(); // All fonts should be gone. do { if (!(mFonts.Count() == 0)) { NS_DebugBreak_P(NS_DEBUG_WARNING, "Fonts still alive while shutting down gfxFontCache", "mFonts.Count() == 0", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h", 629); } } while (0); #line 630 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h" // Note that we have to delete everything through the expiration // tracker, since there might be fonts not in the hashtable but in // the tracker. } /* * Get the global gfxFontCache. You must call Init() before * calling this method --- the result will not be null. */ static gfxFontCache* GetCache() { return gGlobalCache; } static nsresult Init(); // It's OK to call this even if Init() has not been called. static void Shutdown(); // Look up a font in the cache. Returns an addrefed pointer, or null // if there's nothing matching in the cache already_AddRefed Lookup(const gfxFontEntry *aFontEntry, const gfxFontStyle *aFontGroup); // We created a new font (presumably because Lookup returned null); // put it in the cache. The font's refcount should be nonzero. It is // allowable to add a new font even if there is one already in the // cache with the same key; we'll forget about the old one. void AddNew(gfxFont *aFont); // The font's refcount has gone to zero; give ownership of it to // the cache. We delete it if it's not acquired again after a certain // amount of time. void NotifyReleased(gfxFont *aFont); // This gets called when the timeout has expired on a zero-refcount // font; we just delete it. virtual void NotifyExpired(gfxFont *aFont); // Cleans out the hashtable and removes expired fonts waiting for cleanup. // Other gfxFont objects may be still in use but they will be pushed // into the expiration queues and removed. void Flush() { mFonts.Clear(); AgeAllGenerations(); } protected: void DestroyFont(gfxFont *aFont); static gfxFontCache *gGlobalCache; struct Key { const gfxFontEntry* mFontEntry; const gfxFontStyle* mStyle; Key(const gfxFontEntry* aFontEntry, const gfxFontStyle* aStyle) : mFontEntry(aFontEntry), mStyle(aStyle) {} }; class HashEntry : public PLDHashEntryHdr { public: typedef const Key& KeyType; typedef const Key* KeyTypePointer; // When constructing a new entry in the hashtable, we'll leave this // blank. The caller of Put() will fill this in. HashEntry(KeyTypePointer aStr) : mFont(0L) { } HashEntry(const HashEntry& toCopy) : mFont(toCopy.mFont) { } ~HashEntry() { } PRBool KeyEquals(const KeyTypePointer aKey) const; static KeyTypePointer KeyToPointer(KeyType aKey) { return &aKey; } static PLDHashNumber HashKey(const KeyTypePointer aKey) { return ((PRInt32) (PRWord) (aKey->mFontEntry)) ^ aKey->mStyle->Hash(); } enum { ALLOW_MEMMOVE = 1 }; gfxFont* mFont; }; nsTHashtable mFonts; }; /** * This stores glyph bounds information for a particular gfxFont, at * a particular appunits-per-dev-pixel ratio (because the compressed glyph * width array is stored in appunits). * * We store a hashtable from glyph IDs to float bounding rects. For the * common case where the glyph has no horizontal left bearing, and no * y overflow above the font ascent or below the font descent, and tight * bounding boxes are not required, we avoid storing the glyph ID in the hashtable * and instead consult an array of 16-bit glyph XMost values (in appunits). * This array always has an entry for the font's space glyph --- the width is * assumed to be zero. */ class __declspec(dllexport) gfxGlyphExtents { public: gfxGlyphExtents(PRUint32 aAppUnitsPerDevUnit) : mAppUnitsPerDevUnit(aAppUnitsPerDevUnit) { do { NS_LogCtor_P((void*)this, "gfxGlyphExtents", sizeof(*this)); } while (0); mTightGlyphExtents.Init(); } ~gfxGlyphExtents(); enum { INVALID_WIDTH = 0xFFFF }; // returns INVALID_WIDTH => not a contained glyph // Otherwise the glyph has no before-bearing or vertical bearings, // and the result is its width measured from the baseline origin, in // appunits. PRUint16 GetContainedGlyphWidthAppUnits(PRUint32 aGlyphID) const { return mContainedGlyphWidths.Get(aGlyphID); } PRBool IsGlyphKnown(PRUint32 aGlyphID) const { return mContainedGlyphWidths.Get(aGlyphID) != INVALID_WIDTH || mTightGlyphExtents.GetEntry(aGlyphID) != 0L; } PRBool IsGlyphKnownWithTightExtents(PRUint32 aGlyphID) const { return mTightGlyphExtents.GetEntry(aGlyphID) != 0L; } // Get glyph extents; a rectangle relative to the left baseline origin // Returns true on success. Can fail on OOM or when aContext is null // and extents were not (successfully) prefetched. PRBool GetTightGlyphExtentsAppUnits(gfxFont *aFont, gfxContext *aContext, PRUint32 aGlyphID, gfxRect *aExtents); void SetContainedGlyphWidthAppUnits(PRUint32 aGlyphID, PRUint16 aWidth) { mContainedGlyphWidths.Set(aGlyphID, aWidth); } void SetTightGlyphExtents(PRUint32 aGlyphID, const gfxRect& aExtentsAppUnits); PRUint32 GetAppUnitsPerDevUnit() { return mAppUnitsPerDevUnit; } private: class HashEntry : public nsUint32HashKey { public: // When constructing a new entry in the hashtable, we'll leave this // blank. The caller of Put() will fill this in. HashEntry(KeyTypePointer aPtr) : nsUint32HashKey(aPtr) {} HashEntry(const HashEntry& toCopy) : nsUint32HashKey(toCopy) { x = toCopy.x; y = toCopy.y; width = toCopy.width; height = toCopy.height; } float x, y, width, height; }; typedef PRUptrdiff PtrBits; enum { BLOCK_SIZE_BITS = 7, BLOCK_SIZE = 1 << BLOCK_SIZE_BITS }; // 128-glyph blocks class GlyphWidths { public: void Set(PRUint32 aIndex, PRUint16 aValue); PRUint16 Get(PRUint32 aIndex) const { PRUint32 block = aIndex >> BLOCK_SIZE_BITS; if (block >= mBlocks.Length()) return INVALID_WIDTH; PtrBits bits = mBlocks[block]; if (!bits) return INVALID_WIDTH; PRUint32 indexInBlock = aIndex & (BLOCK_SIZE - 1); if (bits & 0x1) { if (GetGlyphOffset(bits) != indexInBlock) return INVALID_WIDTH; return GetWidth(bits); } PRUint16 *widths = reinterpret_cast(bits); return widths[indexInBlock]; } PRUint32 ComputeSize(); #line 803 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h" ~GlyphWidths(); private: static PRUint32 GetGlyphOffset(PtrBits aBits) { do { if (!(aBits & 0x1)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "This is really a pointer...", "aBits & 0x1", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h", 808); } } while (0); return (aBits >> 1) & ((1 << BLOCK_SIZE_BITS) - 1); } static PRUint32 GetWidth(PtrBits aBits) { do { if (!(aBits & 0x1)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "This is really a pointer...", "aBits & 0x1", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h", 812); } } while (0); return aBits >> (1 + BLOCK_SIZE_BITS); } static PtrBits MakeSingle(PRUint32 aGlyphOffset, PRUint16 aWidth) { return (aWidth << (1 + BLOCK_SIZE_BITS)) + (aGlyphOffset << 1) + 1; } nsTArray mBlocks; }; GlyphWidths mContainedGlyphWidths; nsTHashtable mTightGlyphExtents; PRUint32 mAppUnitsPerDevUnit; }; /** * gfxFontShaper * * This class implements text shaping (character to glyph mapping and * glyph layout). There is a gfxFontShaper subclass for each text layout * technology (uniscribe, core text, harfbuzz,....) we support. * * The shaper is responsible for setting up glyph data in gfxTextRuns. * * A generic, platform-independent shaper relies only on the standard * gfxFont interface and can work with any concrete subclass of gfxFont. * * Platform-specific implementations designed to interface to platform * shaping APIs such as Uniscribe or CoreText may rely on features of a * specific font subclass to access native font references * (such as CTFont, HFONT, DWriteFont, etc). */ class gfxFontShaper { public: gfxFontShaper(gfxFont *aFont) : mFont(aFont) { do { if (!(aFont)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "shaper requires a valid font!", "aFont", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h", 850); } } while (0); } virtual ~gfxFontShaper() { } virtual PRBool InitTextRun(gfxContext *aContext, gfxTextRun *aTextRun, const PRUnichar *aString, PRUint32 aRunStart, PRUint32 aRunLength, PRInt32 aRunScript) = 0; gfxFont *GetFont() const { return mFont; } protected: // the font this shaper is working with gfxFont * mFont; }; /* a SPECIFIC single font family */ class __declspec(dllexport) gfxFont { public: nsrefcnt AddRef(void) { do { if (!(PRInt32(mRefCnt) >= 0)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "illegal refcnt", "PRInt32(mRefCnt) >= 0", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h", 873); } } while (0); if (mExpirationState.IsTracked()) { gfxFontCache::GetCache()->RemoveObject(this); } ++mRefCnt; NS_LogAddRef_P((this), (mRefCnt), ("gfxFont"), (PRUint32) (sizeof(*this))); return mRefCnt; } nsrefcnt Release(void) { do { if (!(0 != mRefCnt)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "dup release", "0 != mRefCnt", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h", 882); } } while (0); --mRefCnt; NS_LogRelease_P((this), (mRefCnt), ("gfxFont")); if (mRefCnt == 0) { NotifyReleased(); // |this| may have been deleted. return 0; } return mRefCnt; } PRInt32 GetRefCount() { return mRefCnt; } // options to specify the kind of AA to be used when creating a font typedef enum { kAntialiasDefault, kAntialiasNone, kAntialiasGrayscale, kAntialiasSubpixel } AntialiasOption; protected: nsAutoRefCnt mRefCnt; void NotifyReleased() { gfxFontCache *cache = gfxFontCache::GetCache(); if (cache) { // Don't delete just yet; return the object to the cache for // possibly recycling within some time limit cache->NotifyReleased(this); } else { // The cache may have already been shut down. delete this; } } gfxFont(gfxFontEntry *aFontEntry, const gfxFontStyle *aFontStyle, AntialiasOption anAAOption = kAntialiasDefault); public: virtual ~gfxFont(); PRBool Valid() const { return mIsValid; } // options for the kind of bounding box to return from measurement typedef enum { LOOSE_INK_EXTENTS, // A box that encloses all the painted pixels, and may // include sidebearings and/or additional ascent/descent // within the glyph cell even if the ink is smaller. TIGHT_INK_EXTENTS, // A box that tightly encloses all the painted pixels // (although actually on Windows, at least, it may be // slightly larger than strictly necessary because // we can't get precise extents with ClearType). TIGHT_HINTED_OUTLINE_EXTENTS // A box that tightly encloses the glyph outline, // ignoring possible antialiasing pixels that extend // beyond this. // NOTE: The default implementation of gfxFont::Measure(), // which works with the glyph extents cache, does not // differentiate between this and TIGHT_INK_EXTENTS. // Whether the distinction is important depends on the // antialiasing behavior of the platform; currently the // distinction is only implemented in the gfxWindowsFont // subclass, because of ClearType's tendency to paint // outside the hinted outline. // Also NOTE: it is relatively expensive to request this, // as it does not use cached glyph extents in the font. } BoundingBoxType; const nsString& GetName() const { return mFontEntry->Name(); } const gfxFontStyle *GetStyle() const { return &mStyle; } virtual nsString GetUniqueName() { return GetName(); } virtual gfxFont* CopyWithAntialiasOption(AntialiasOption anAAOption) { // platforms where this actually matters should override return 0L; } gfxFloat GetAdjustedSize() const { return mAdjustedSize > 0.0 ? mAdjustedSize : mStyle.size; } float FUnitsToDevUnitsFactor() const { // check this was set up during font initialization do { if (!(mFUnitsConvFactor > 0.0f)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "mFUnitsConvFactor not valid", "mFUnitsConvFactor > 0.0f", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h", 971); } } while (0); return mFUnitsConvFactor; } // check whether this is an sfnt we can potentially use with harfbuzz PRBool FontCanSupportHarfBuzz() { return mFontEntry->HasCmapTable(); } // Access to raw font table data (needed for Harfbuzz): // returns a pointer to data owned by the fontEntry or the OS, // which will remain valid until released. // // Default implementations forward to the font entry, // and maintain a shared table. // // Subclasses should override this if they can provide more efficient // access than getting tables with mFontEntry->GetFontTable() and sharing // them via the entry. // // Get pointer to a specific font table, or NULL if // the table doesn't exist in the font virtual hb_blob_t *GetFontTable(PRUint32 aTag); // Subclasses may choose to look up glyph ids for characters. // If they do not override this, gfxHarfBuzzShaper will fetch the cmap // table and use that. virtual PRBool ProvidesGetGlyph() const { return 0; } // Map unicode character to glyph ID. // Only used if ProvidesGetGlyph() returns PR_TRUE. virtual PRUint32 GetGlyph(PRUint32 unicode, PRUint32 variation_selector) { return 0; } // subclasses may provide hinted glyph widths (in font units); // if they do not override this, harfbuzz will use unhinted widths // derived from the font tables virtual PRBool ProvidesHintedWidths() const { return 0; } // The return value is interpreted as a horizontal advance in 16.16 fixed // point format. virtual PRInt32 GetHintedGlyphWidth(gfxContext *aCtx, PRUint16 aGID) { return -1; } // Font metrics struct Metrics { gfxFloat xHeight; gfxFloat superscriptOffset; gfxFloat subscriptOffset; gfxFloat strikeoutSize; gfxFloat strikeoutOffset; gfxFloat underlineSize; gfxFloat underlineOffset; gfxFloat internalLeading; gfxFloat externalLeading; gfxFloat emHeight; gfxFloat emAscent; gfxFloat emDescent; gfxFloat maxHeight; gfxFloat maxAscent; gfxFloat maxDescent; gfxFloat maxAdvance; gfxFloat aveCharWidth; gfxFloat spaceWidth; gfxFloat zeroOrAveCharWidth; // width of '0', or if there is // no '0' glyph in this font, // equal to .aveCharWidth }; virtual const gfxFont::Metrics& GetMetrics() = 0; /** * We let layout specify spacing on either side of any * character. We need to specify both before and after * spacing so that substring measurement can do the right things. * These values are in appunits. They're always an integral number of * appunits, but we specify them in floats in case very large spacing * values are required. */ struct Spacing { gfxFloat mBefore; gfxFloat mAfter; }; /** * Metrics for a particular string */ struct __declspec(dllexport) RunMetrics { RunMetrics() { mAdvanceWidth = mAscent = mDescent = 0.0; mBoundingBox = gfxRect(0,0,0,0); } void CombineWith(const RunMetrics& aOther, PRBool aOtherIsOnLeft); // can be negative (partly due to negative spacing). // Advance widths should be additive: the advance width of the // (offset1, length1) plus the advance width of (offset1 + length1, // length2) should be the advance width of (offset1, length1 + length2) gfxFloat mAdvanceWidth; // For zero-width substrings, these must be zero! gfxFloat mAscent; // always non-negative gfxFloat mDescent; // always non-negative // Bounding box that is guaranteed to include everything drawn. // If a tight boundingBox was requested when these metrics were // generated, this will tightly wrap the glyphs, otherwise it is // "loose" and may be larger than the true bounding box. // Coordinates are relative to the baseline left origin, so typically // mBoundingBox.y == -mAscent gfxRect mBoundingBox; }; /** * Draw a series of glyphs to aContext. The direction of aTextRun must * be honoured. * @param aStart the first character to draw * @param aEnd draw characters up to here * @param aBaselineOrigin the baseline origin; the left end of the baseline * for LTR textruns, the right end of the baseline for RTL textruns. On return, * this should be updated to the other end of the baseline. In application * units, really! * @param aSpacing spacing to insert before and after characters (for RTL * glyphs, before-spacing is inserted to the right of characters). There * are aEnd - aStart elements in this array, unless it's null to indicate * that there is no spacing. * @param aDrawToPath when true, add the glyph outlines to the current path * instead of drawing the glyphs * * Callers guarantee: * -- aStart and aEnd are aligned to cluster and ligature boundaries * -- all glyphs use this font * * The default implementation builds a cairo glyph array and * calls cairo_show_glyphs or cairo_glyph_path. */ virtual void Draw(gfxTextRun *aTextRun, PRUint32 aStart, PRUint32 aEnd, gfxContext *aContext, PRBool aDrawToPath, gfxPoint *aBaselineOrigin, Spacing *aSpacing); /** * Measure a run of characters. See gfxTextRun::Metrics. * @param aTight if false, then return the union of the glyph extents * with the font-box for the characters (the rectangle with x=0,width= * the advance width for the character run,y=-(font ascent), and height= * font ascent + font descent). Otherwise, we must return as tight as possible * an approximation to the area actually painted by glyphs. * @param aContextForTightBoundingBox when aTight is true, this must * be non-null. * @param aSpacing spacing to insert before and after glyphs. The bounding box * need not include the spacing itself, but the spacing affects the glyph * positions. null if there is no spacing. * * Callers guarantee: * -- aStart and aEnd are aligned to cluster and ligature boundaries * -- all glyphs use this font * * The default implementation just uses font metrics and aTextRun's * advances, and assumes no characters fall outside the font box. In * general this is insufficient, because that assumption is not always true. */ virtual RunMetrics Measure(gfxTextRun *aTextRun, PRUint32 aStart, PRUint32 aEnd, BoundingBoxType aBoundingBoxType, gfxContext *aContextForTightBoundingBox, Spacing *aSpacing); /** * Line breaks have been changed at the beginning and/or end of a substring * of the text. Reshaping may be required; glyph updating is permitted. * @return true if anything was changed, false otherwise */ PRBool NotifyLineBreaksChanged(gfxTextRun *aTextRun, PRUint32 aStart, PRUint32 aLength) { return 0; } // Expiration tracking nsExpirationState *GetExpirationState() { return &mExpirationState; } // Get the glyphID of a space virtual PRUint32 GetSpaceGlyph() = 0; gfxGlyphExtents *GetOrCreateGlyphExtents(PRUint32 aAppUnitsPerDevUnit); // You need to call SetupCairoFont on the aCR just before calling this virtual void SetupGlyphExtents(gfxContext *aContext, PRUint32 aGlyphID, PRBool aNeedTight, gfxGlyphExtents *aExtents); // This is called by the default Draw() implementation above. virtual PRBool SetupCairoFont(gfxContext *aContext) = 0; PRBool IsSyntheticBold() { return mSyntheticBoldOffset != 0; } PRUint32 GetSyntheticBoldOffset() { return mSyntheticBoldOffset; } gfxFontEntry *GetFontEntry() { return mFontEntry.get(); } PRBool HasCharacter(PRUint32 ch) { if (!mIsValid) return 0; return mFontEntry->HasCharacter(ch); } PRUint16 GetUVSGlyph(PRUint32 aCh, PRUint32 aVS) { if (!mIsValid) { return 0; } return mFontEntry->GetUVSGlyph(aCh, aVS); } // Default simply calls m[Platform|HarfBuzz]Shaper->InitTextRun(). // Override if the font class wants to give special handling // to shaper failure. // Returns PR_FALSE if shaping failed (though currently we // don't have any good way to handle that situation). virtual PRBool InitTextRun(gfxContext *aContext, gfxTextRun *aTextRun, const PRUnichar *aString, PRUint32 aRunStart, PRUint32 aRunLength, PRInt32 aRunScript, PRBool aPreferPlatformShaping = 0); protected: nsRefPtr mFontEntry; PRPackedBool mIsValid; nsExpirationState mExpirationState; gfxFontStyle mStyle; nsAutoTArray mGlyphExtentsArray; gfxFloat mAdjustedSize; float mFUnitsConvFactor; // conversion factor from font units to dev units // synthetic bolding for environments where this is not supported by the platform PRUint32 mSyntheticBoldOffset; // number of devunit pixels to offset double-strike, 0 ==> no bolding // the AA setting requested for this font - may affect glyph bounds AntialiasOption mAntialiasOption; // a copy of the font without antialiasing, if needed for separate // measurement by mathml code nsAutoPtr mNonAAFont; // we may switch between these shapers on the fly, based on the script // of the text run being shaped nsAutoPtr mPlatformShaper; nsAutoPtr mHarfBuzzShaper; // Create a default platform text shaper for this font. // (TODO: This should become pure virtual once all font backends have // been updated.) virtual void CreatePlatformShaper() { } // Helper for subclasses that want to initialize standard metrics from the // tables of sfnt (TrueType/OpenType) fonts. // This will use mFUnitsConvFactor if it is already set, else compute it // from mAdjustedSize and the unitsPerEm in the font's 'head' table. // Returns TRUE and sets mIsValid=TRUE if successful; // Returns TRUE but leaves mIsValid=FALSE if the font seems to be broken. // Returns FALSE if the font does not appear to be an sfnt at all, // and should be handled (if possible) using other APIs. PRBool InitMetricsFromSfntTables(Metrics& aMetrics); // Helper to calculate various derived metrics from the results of // InitMetricsFromSfntTables or equivalent platform code void CalculateDerivedMetrics(Metrics& aMetrics); // some fonts have bad metrics, this method sanitize them. // if this font has bad underline offset, aIsBadUnderlineFont should be true. void SanitizeMetrics(gfxFont::Metrics *aMetrics, PRBool aIsBadUnderlineFont); }; // proportion of ascent used for x-height, if unable to read value from font class __declspec(dllexport) gfxTextRunFactory { public: void AddRef(void) { do { if (!(PRInt32(mRefCnt) >= 0)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "illegal refcnt", "PRInt32(mRefCnt) >= 0", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h", 1252); } } while (0); do { if (NS_IsCycleCollectorThread_P()) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Changing refcount of " "gfxTextRunFactory" " object during Traverse is " "not permitted!", "Error", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h", 1252); } else { do { if (!(_mOwningThread.GetThread() == PR_GetCurrentThread())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "gfxTextRunFactory" " not thread-safe", "_mOwningThread.GetThread() == PR_GetCurrentThread()", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h", 1252); } } while (0); } } while (0); ++mRefCnt; NS_LogAddRef_P((this), (mRefCnt), ("gfxTextRunFactory"), (PRUint32) (sizeof(*this))); } void Release(void) { do { if (!(0 != mRefCnt)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "dup release", "0 != mRefCnt", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h", 1252); } } while (0); do { if (NS_IsCycleCollectorThread_P()) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Changing refcount of " "gfxTextRunFactory" " object during Traverse is " "not permitted!", "Error", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h", 1252); } else { do { if (!(_mOwningThread.GetThread() == PR_GetCurrentThread())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "gfxTextRunFactory" " not thread-safe", "_mOwningThread.GetThread() == PR_GetCurrentThread()", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h", 1252); } } while (0); } } while (0); --mRefCnt; NS_LogRelease_P((this), (mRefCnt), ("gfxTextRunFactory")); if (mRefCnt == 0) { do { if (!(_mOwningThread.GetThread() == PR_GetCurrentThread())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "gfxTextRunFactory" " not thread-safe", "_mOwningThread.GetThread() == PR_GetCurrentThread()", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h", 1252); } } while (0); mRefCnt = 1; delete this; } } protected: nsAutoRefCnt mRefCnt; nsAutoOwningThread _mOwningThread; public: public: // Flags in the mask 0xFFFF0000 are reserved for textrun clients // Flags in the mask 0x0000F000 are reserved for per-platform fonts // Flags in the mask 0x00000FFF are set by the textrun creator. enum { CACHE_TEXT_FLAGS = 0xF0000000, USER_TEXT_FLAGS = 0x0FFF0000, PLATFORM_TEXT_FLAGS = 0x0000F000, TEXTRUN_TEXT_FLAGS = 0x00000FFF, SETTABLE_FLAGS = CACHE_TEXT_FLAGS | USER_TEXT_FLAGS, /** * When set, the text string pointer used to create the text run * is guaranteed to be available during the lifetime of the text run. */ TEXT_IS_PERSISTENT = 0x0001, /** * When set, the text is known to be all-ASCII (< 128). */ TEXT_IS_ASCII = 0x0002, /** * When set, the text is RTL. */ TEXT_IS_RTL = 0x0004, /** * When set, spacing is enabled and the textrun needs to call GetSpacing * on the spacing provider. */ TEXT_ENABLE_SPACING = 0x0008, /** * When set, GetHyphenationBreaks may return true for some character * positions, otherwise it will always return false for all characters. */ TEXT_ENABLE_HYPHEN_BREAKS = 0x0010, /** * When set, the text has no characters above 255 and it is stored * in the textrun in 8-bit format. */ TEXT_IS_8BIT = 0x0020, /** * When set, the RunMetrics::mBoundingBox field will be initialized * properly based on glyph extents, in particular, glyph extents that * overflow the standard font-box (the box defined by the ascent, descent * and advance width of the glyph). When not set, it may just be the * standard font-box even if glyphs overflow. */ TEXT_NEED_BOUNDING_BOX = 0x0040, /** * When set, optional ligatures are disabled. Ligatures that are * required for legible text should still be enabled. */ TEXT_DISABLE_OPTIONAL_LIGATURES = 0x0080, /** * When set, the textrun should favour speed of construction over * quality. This may involve disabling ligatures and/or kerning or * other effects. */ TEXT_OPTIMIZE_SPEED = 0x0100 }; /** * This record contains all the parameters needed to initialize a textrun. */ struct Parameters { // A reference context suggesting where the textrun will be rendered gfxContext *mContext; // Pointer to arbitrary user data (which should outlive the textrun) void *mUserData; // A description of which characters have been stripped from the original // DOM string to produce the characters in the textrun. May be null // if that information is not relevant. gfxSkipChars *mSkipChars; // A list of where linebreaks are currently placed in the textrun. May // be null if mInitialBreakCount is zero. PRUint32 *mInitialBreaks; PRUint32 mInitialBreakCount; // The ratio to use to convert device pixels to application layout units PRUint32 mAppUnitsPerDevUnit; }; virtual ~gfxTextRunFactory() {} }; /** * gfxTextRun is an abstraction for drawing and measuring substrings of a run * of text. It stores runs of positioned glyph data, each run having a single * gfxFont. The glyphs are associated with a string of source text, and the * gfxTextRun APIs take parameters that are offsets into that source text. * * gfxTextRuns are not refcounted. They should be deleted when no longer required. * * gfxTextRuns are mostly immutable. The only things that can change are * inter-cluster spacing and line break placement. Spacing is always obtained * lazily by methods that need it, it is not cached. Line breaks are stored * persistently (insofar as they affect the shaping of glyphs; gfxTextRun does * not actually do anything to explicitly account for line breaks). Initially * there are no line breaks. The textrun can record line breaks before or after * any given cluster. (Line breaks specified inside clusters are ignored.) * * It is important that zero-length substrings are handled correctly. This will * be on the test! * * gfxTextRun stores a list of zero or more glyphs for each character. For each * glyph we store the glyph ID, the advance, and possibly an xoffset and yoffset. * The idea is that a string is rendered by a loop that draws each glyph * at its designated offset from the current point, then advances the current * point by the glyph's advance in the direction of the textrun (LTR or RTL). * Each glyph advance is always rounded to the nearest appunit; this ensures * consistent results when dividing the text in a textrun into multiple text * frames (frame boundaries are always aligned to appunits). We optimize * for the case where a character has a single glyph and zero xoffset and yoffset, * and the glyph ID and advance are in a reasonable range so we can pack all * necessary data into 32 bits. * * gfxTextRun methods that measure or draw substrings will associate all the * glyphs in a cluster with the first character of the cluster; if that character * is in the substring, the glyphs will be measured or drawn, otherwise they * won't. */ class __declspec(dllexport) gfxTextRun { public: virtual ~gfxTextRun(); typedef gfxFont::RunMetrics Metrics; // Public textrun API for general use PRBool IsClusterStart(PRUint32 aPos) { do { if (!(0 <= aPos && aPos < mCharacterCount)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "aPos out of range", "0 <= aPos && aPos < mCharacterCount", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h", 1382); } } while (0); return mCharacterGlyphs[aPos].IsClusterStart(); } PRBool IsLigatureGroupStart(PRUint32 aPos) { do { if (!(0 <= aPos && aPos < mCharacterCount)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "aPos out of range", "0 <= aPos && aPos < mCharacterCount", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h", 1386); } } while (0); return mCharacterGlyphs[aPos].IsLigatureGroupStart(); } PRBool CanBreakLineBefore(PRUint32 aPos) { do { if (!(0 <= aPos && aPos < mCharacterCount)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "aPos out of range", "0 <= aPos && aPos < mCharacterCount", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h", 1390); } } while (0); return mCharacterGlyphs[aPos].CanBreakBefore(); } PRUint32 GetLength() { return mCharacterCount; } // All PRUint32 aStart, PRUint32 aLength ranges below are restricted to // grapheme cluster boundaries! All offsets are in terms of the string // passed into MakeTextRun. // All coordinates are in layout/app units /** * Set the potential linebreaks for a substring of the textrun. These are * the "allow break before" points. Initially, there are no potential * linebreaks. * * This can change glyphs and/or geometry! Some textruns' shapes * depend on potential line breaks (e.g., title-case-converting textruns). * This function is virtual so that those textruns can reshape themselves. * * @return true if this changed the linebreaks, false if the new line * breaks are the same as the old */ virtual PRBool SetPotentialLineBreaks(PRUint32 aStart, PRUint32 aLength, PRPackedBool *aBreakBefore, gfxContext *aRefContext); /** * Layout provides PropertyProvider objects. These allow detection of * potential line break points and computation of spacing. We pass the data * this way to allow lazy data acquisition; for example BreakAndMeasureText * will want to only ask for properties of text it's actually looking at. * * NOTE that requested spacing may not actually be applied, if the textrun * is unable to apply it in some context. Exception: spacing around a * whitespace character MUST always be applied. */ class PropertyProvider { public: // Detect hyphenation break opportunities in the given range; breaks // not at cluster boundaries will be ignored. virtual void GetHyphenationBreaks(PRUint32 aStart, PRUint32 aLength, PRPackedBool *aBreakBefore) = 0; // Returns the extra width that will be consumed by a hyphen. This should // be constant for a given textrun. virtual gfxFloat GetHyphenWidth() = 0; typedef gfxFont::Spacing Spacing; /** * Get the spacing around the indicated characters. Spacing must be zero * inside clusters. In other words, if character i is not * CLUSTER_START, then character i-1 must have zero after-spacing and * character i must have zero before-spacing. */ virtual void GetSpacing(PRUint32 aStart, PRUint32 aLength, Spacing *aSpacing) = 0; }; /** * Draws a substring. Uses only GetSpacing from aBreakProvider. * The provided point is the baseline origin on the left of the string * for LTR, on the right of the string for RTL. * @param aDirtyRect if non-null, drawing outside of the rectangle can be * (but does not need to be) dropped. Note that if this is null, we cannot * draw partial ligatures and we will assert if partial ligatures * are detected. * @param aAdvanceWidth if non-null, the advance width of the substring * is returned here. * * Drawing should respect advance widths in the sense that for LTR runs, * Draw(ctx, pt, offset1, length1, dirty, &provider, &advance) followed by * Draw(ctx, gfxPoint(pt.x + advance, pt.y), offset1 + length1, length2, * dirty, &provider, nsnull) should have the same effect as * Draw(ctx, pt, offset1, length1+length2, dirty, &provider, nsnull). * For RTL runs the rule is: * Draw(ctx, pt, offset1 + length1, length2, dirty, &provider, &advance) followed by * Draw(ctx, gfxPoint(pt.x + advance, pt.y), offset1, length1, * dirty, &provider, nsnull) should have the same effect as * Draw(ctx, pt, offset1, length1+length2, dirty, &provider, nsnull). * * Glyphs should be drawn in logical content order, which can be significant * if they overlap (perhaps due to negative spacing). */ void Draw(gfxContext *aContext, gfxPoint aPt, PRUint32 aStart, PRUint32 aLength, const gfxRect *aDirtyRect, PropertyProvider *aProvider, gfxFloat *aAdvanceWidth); /** * Renders a substring to a path. Uses only GetSpacing from aBreakProvider. * The provided point is the baseline origin on the left of the string * for LTR, on the right of the string for RTL. * @param aAdvanceWidth if non-null, the advance width of the substring * is returned here. * * Drawing should respect advance widths in the way that Draw above does. * * Glyphs should be drawn in logical content order. * * UNLIKE Draw above, this cannot be used to render substrings that start or * end inside a ligature. */ void DrawToPath(gfxContext *aContext, gfxPoint aPt, PRUint32 aStart, PRUint32 aLength, PropertyProvider *aBreakProvider, gfxFloat *aAdvanceWidth); /** * Computes the ReflowMetrics for a substring. * Uses GetSpacing from aBreakProvider. * @param aBoundingBoxType which kind of bounding box (loose/tight) */ Metrics MeasureText(PRUint32 aStart, PRUint32 aLength, gfxFont::BoundingBoxType aBoundingBoxType, gfxContext *aRefContextForTightBoundingBox, PropertyProvider *aProvider); /** * Computes just the advance width for a substring. * Uses GetSpacing from aBreakProvider. */ gfxFloat GetAdvanceWidth(PRUint32 aStart, PRUint32 aLength, PropertyProvider *aProvider); /** * Clear all stored line breaks for the given range (both before and after), * and then set the line-break state before aStart to aBreakBefore and * after the last cluster to aBreakAfter. * * We require that before and after line breaks be consistent. For clusters * i and i+1, we require that if there is a break after cluster i, a break * will be specified before cluster i+1. This may be temporarily violated * (e.g. after reflowing line L and before reflowing line L+1); to handle * these temporary violations, we say that there is a break betwen i and i+1 * if a break is specified after i OR a break is specified before i+1. * * This can change textrun geometry! The existence of a linebreak can affect * the advance width of the cluster before the break (when kerning) or the * geometry of one cluster before the break or any number of clusters * after the break. (The one-cluster-before-the-break limit is somewhat * arbitrary; if some scripts require breaking it, then we need to * alter nsTextFrame::TrimTrailingWhitespace, perhaps drastically becase * it could affect the layout of frames before it...) * * We return true if glyphs or geometry changed, false otherwise. This * function is virtual so that gfxTextRun subclasses can reshape * properly. * * @param aAdvanceWidthDelta if non-null, returns the change in advance * width of the given range. */ virtual PRBool SetLineBreaks(PRUint32 aStart, PRUint32 aLength, PRBool aLineBreakBefore, PRBool aLineBreakAfter, gfxFloat *aAdvanceWidthDelta, gfxContext *aRefContext); /** * Finds the longest substring that will fit into the given width. * Uses GetHyphenationBreaks and GetSpacing from aBreakProvider. * Guarantees the following: * -- 0 <= result <= aMaxLength * -- result is the maximal value of N such that either * N < aMaxLength && line break at N && GetAdvanceWidth(aStart, N) <= aWidth * OR N < aMaxLength && hyphen break at N && GetAdvanceWidth(aStart, N) + GetHyphenWidth() <= aWidth * OR N == aMaxLength && GetAdvanceWidth(aStart, N) <= aWidth * where GetAdvanceWidth assumes the effect of * SetLineBreaks(aStart, N, aLineBreakBefore, N < aMaxLength, aProvider) * -- if no such N exists, then result is the smallest N such that * N < aMaxLength && line break at N * OR N < aMaxLength && hyphen break at N * OR N == aMaxLength * * The call has the effect of * SetLineBreaks(aStart, result, aLineBreakBefore, result < aMaxLength, aProvider) * and the returned metrics and the invariants above reflect this. * * @param aMaxLength this can be PR_UINT32_MAX, in which case the length used * is up to the end of the string * @param aLineBreakBefore set to true if and only if there is an actual * line break at the start of this string. * @param aSuppressInitialBreak if true, then we assume there is no possible * linebreak before aStart. If false, then we will check the internal * line break opportunity state before deciding whether to return 0 as the * character to break before. * @param aTrimWhitespace if non-null, then we allow a trailing run of * spaces to be trimmed; the width of the space(s) will not be included in * the measured string width for comparison with the limit aWidth, and * trimmed spaces will not be included in returned metrics. The width * of the trimmed spaces will be returned in aTrimWhitespace. * Trimmed spaces are still counted in the "characters fit" result. * @param aMetrics if non-null, we fill this in for the returned substring. * If a hyphenation break was used, the hyphen is NOT included in the returned metrics. * @param aBoundingBoxType whether to make the bounding box in aMetrics tight * @param aRefContextForTightBoundingBox a reference context to get the * tight bounding box, if requested * @param aUsedHyphenation if non-null, records if we selected a hyphenation break * @param aLastBreak if non-null and result is aMaxLength, we set this to * the maximal N such that * N < aMaxLength && line break at N && GetAdvanceWidth(aStart, N) <= aWidth * OR N < aMaxLength && hyphen break at N && GetAdvanceWidth(aStart, N) + GetHyphenWidth() <= aWidth * or PR_UINT32_MAX if no such N exists, where GetAdvanceWidth assumes * the effect of * SetLineBreaks(aStart, N, aLineBreakBefore, N < aMaxLength, aProvider) * * @param aCanWordWrap true if we can break between any two grapheme * clusters. This is set by word-wrap: break-word * * @param aBreakPriority in/out the priority of the break opportunity * saved in the line. If we are prioritizing break opportunities, we will * not set a break with a lower priority. @see gfxBreakPriority. * * Note that negative advance widths are possible especially if negative * spacing is provided. */ PRUint32 BreakAndMeasureText(PRUint32 aStart, PRUint32 aMaxLength, PRBool aLineBreakBefore, gfxFloat aWidth, PropertyProvider *aProvider, PRBool aSuppressInitialBreak, gfxFloat *aTrimWhitespace, Metrics *aMetrics, gfxFont::BoundingBoxType aBoundingBoxType, gfxContext *aRefContextForTightBoundingBox, PRBool *aUsedHyphenation, PRUint32 *aLastBreak, PRBool aCanWordWrap, gfxBreakPriority *aBreakPriority); /** * Update the reference context. * XXX this is a hack. New text frame does not call this. Use only * temporarily for old text frame. */ void SetContext(gfxContext *aContext) {} // Utility getters PRBool IsRightToLeft() const { return (mFlags & gfxTextRunFactory::TEXT_IS_RTL) != 0; } gfxFloat GetDirection() const { return (mFlags & gfxTextRunFactory::TEXT_IS_RTL) ? -1.0 : 1.0; } void *GetUserData() const { return mUserData; } void SetUserData(void *aUserData) { mUserData = aUserData; } PRUint32 GetFlags() const { return mFlags; } void SetFlagBits(PRUint32 aFlags) { do { if (!(!(aFlags & ~gfxTextRunFactory::SETTABLE_FLAGS))) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Only user flags should be mutable", "!(aFlags & ~gfxTextRunFactory::SETTABLE_FLAGS)", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h", 1637); } } while (0); #line 1638 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h" mFlags |= aFlags; } void ClearFlagBits(PRUint32 aFlags) { do { if (!(!(aFlags & ~gfxTextRunFactory::SETTABLE_FLAGS))) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Only user flags should be mutable", "!(aFlags & ~gfxTextRunFactory::SETTABLE_FLAGS)", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h", 1642); } } while (0); #line 1643 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h" mFlags &= ~aFlags; } const gfxSkipChars& GetSkipChars() const { return mSkipChars; } PRUint32 GetAppUnitsPerDevUnit() const { return mAppUnitsPerDevUnit; } gfxFontGroup *GetFontGroup() const { return mFontGroup; } const PRUint8 *GetText8Bit() const { return (mFlags & gfxTextRunFactory::TEXT_IS_8BIT) ? mText.mSingle : 0L; } const PRUnichar *GetTextUnicode() const { return (mFlags & gfxTextRunFactory::TEXT_IS_8BIT) ? 0L : mText.mDouble; } const void *GetTextAt(PRUint32 aIndex) { return (mFlags & gfxTextRunFactory::TEXT_IS_8BIT) ? static_cast(mText.mSingle + aIndex) : static_cast(mText.mDouble + aIndex); } const PRUnichar GetChar(PRUint32 i) const { return (mFlags & gfxTextRunFactory::TEXT_IS_8BIT) ? mText.mSingle[i] : mText.mDouble[i]; } PRUint32 GetHashCode() const { return mHashCode; } void SetHashCode(PRUint32 aHash) { mHashCode = aHash; } // Call this, don't call "new gfxTextRun" directly. This does custom // allocation and initialization static gfxTextRun *Create(const gfxTextRunFactory::Parameters *aParams, const void *aText, PRUint32 aLength, gfxFontGroup *aFontGroup, PRUint32 aFlags); // Clone this textrun, according to the given parameters. This textrun's // glyph data is copied, so the text and length must be the same as this // textrun's. If there's a problem, return null. Actual linebreaks will // be set as per aParams; there will be no potential linebreaks. // If aText is not persistent (aFlags & TEXT_IS_PERSISTENT), the // textrun will copy it. virtual gfxTextRun *Clone(const gfxTextRunFactory::Parameters *aParams, const void *aText, PRUint32 aLength, gfxFontGroup *aFontGroup, PRUint32 aFlags); /** * This class records the information associated with a character in the * input string. It's optimized for the case where there is one glyph * representing that character alone. * * A character can have zero or more associated glyphs. Each glyph * has an advance width and an x and y offset. * A character may be the start of a cluster. * A character may be the start of a ligature group. * A character can be "missing", indicating that the system is unable * to render the character. * * All characters in a ligature group conceptually share all the glyphs * associated with the characters in a group. */ class CompressedGlyph { public: CompressedGlyph() { mValue = 0; } enum { // Indicates that a cluster and ligature group starts at this // character; this character has a single glyph with a reasonable // advance and zero offsets. A "reasonable" advance // is one that fits in the available bits (currently 14) (specified // in appunits). FLAG_IS_SIMPLE_GLYPH = 0x80000000U, // Indicates that a linebreak is allowed before this character FLAG_CAN_BREAK_BEFORE = 0x40000000U, // The advance is stored in appunits ADVANCE_MASK = 0x3FFF0000U, ADVANCE_SHIFT = 16, GLYPH_MASK = 0x0000FFFFU, // Non-simple glyphs may or may not have glyph data in the // corresponding mDetailedGlyphs entry. They have the following // flag bits: // When NOT set, indicates that this character corresponds to a // missing glyph and should be skipped (or possibly, render the character // Unicode value in some special way). If there are glyphs, // the mGlyphID is actually the UTF16 character code. The bit is // inverted so we can memset the array to zero to indicate all missing. FLAG_NOT_MISSING = 0x01, FLAG_NOT_CLUSTER_START = 0x02, FLAG_NOT_LIGATURE_GROUP_START = 0x04, GLYPH_COUNT_MASK = 0x00FFFF00U, GLYPH_COUNT_SHIFT = 8 }; // "Simple glyphs" have a simple glyph ID, simple advance and their // x and y offsets are zero. Also the glyph extents do not overflow // the font-box defined by the font ascent, descent and glyph advance width. // These case is optimized to avoid storing DetailedGlyphs. // Returns true if the glyph ID aGlyph fits into the compressed representation static PRBool IsSimpleGlyphID(PRUint32 aGlyph) { return (aGlyph & GLYPH_MASK) == aGlyph; } // Returns true if the advance aAdvance fits into the compressed representation. // aAdvance is in appunits. static PRBool IsSimpleAdvance(PRUint32 aAdvance) { return (aAdvance & (ADVANCE_MASK >> ADVANCE_SHIFT)) == aAdvance; } PRBool IsSimpleGlyph() const { return (mValue & FLAG_IS_SIMPLE_GLYPH) != 0; } PRUint32 GetSimpleAdvance() const { return (mValue & ADVANCE_MASK) >> ADVANCE_SHIFT; } PRUint32 GetSimpleGlyph() const { return mValue & GLYPH_MASK; } PRBool IsMissing() const { return (mValue & (FLAG_NOT_MISSING|FLAG_IS_SIMPLE_GLYPH)) == 0; } PRBool IsClusterStart() const { return (mValue & FLAG_IS_SIMPLE_GLYPH) || !(mValue & FLAG_NOT_CLUSTER_START); } PRBool IsLigatureGroupStart() const { return (mValue & FLAG_IS_SIMPLE_GLYPH) || !(mValue & FLAG_NOT_LIGATURE_GROUP_START); } PRBool IsLigatureContinuation() const { return (mValue & FLAG_IS_SIMPLE_GLYPH) == 0 && (mValue & (FLAG_NOT_LIGATURE_GROUP_START | FLAG_NOT_MISSING)) == (FLAG_NOT_LIGATURE_GROUP_START | FLAG_NOT_MISSING); } PRBool CanBreakBefore() const { return (mValue & FLAG_CAN_BREAK_BEFORE) != 0; } // Returns FLAG_CAN_BREAK_BEFORE if the setting changed, 0 otherwise PRUint32 SetCanBreakBefore(PRBool aCanBreakBefore) { do { if (!(aCanBreakBefore == 0 || aCanBreakBefore == 1)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Bogus break-before value!", "aCanBreakBefore == PR_FALSE || aCanBreakBefore == PR_TRUE", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h", 1764); } } while (0); #line 1765 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h" PRUint32 breakMask = aCanBreakBefore*FLAG_CAN_BREAK_BEFORE; PRUint32 toggle = breakMask ^ (mValue & FLAG_CAN_BREAK_BEFORE); mValue ^= toggle; return toggle; } CompressedGlyph& SetSimpleGlyph(PRUint32 aAdvanceAppUnits, PRUint32 aGlyph) { do { if (!(IsSimpleAdvance(aAdvanceAppUnits))) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Advance overflow", "IsSimpleAdvance(aAdvanceAppUnits)", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h", 1772); } } while (0); do { if (!(IsSimpleGlyphID(aGlyph))) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Glyph overflow", "IsSimpleGlyphID(aGlyph)", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h", 1773); } } while (0); mValue = (mValue & FLAG_CAN_BREAK_BEFORE) | FLAG_IS_SIMPLE_GLYPH | (aAdvanceAppUnits << ADVANCE_SHIFT) | aGlyph; return *this; } CompressedGlyph& SetComplex(PRBool aClusterStart, PRBool aLigatureStart, PRUint32 aGlyphCount) { mValue = (mValue & FLAG_CAN_BREAK_BEFORE) | FLAG_NOT_MISSING | (aClusterStart ? 0 : FLAG_NOT_CLUSTER_START) | (aLigatureStart ? 0 : FLAG_NOT_LIGATURE_GROUP_START) | (aGlyphCount << GLYPH_COUNT_SHIFT); return *this; } /** * Missing glyphs are treated as cluster and ligature group starts. */ CompressedGlyph& SetMissing(PRUint32 aGlyphCount) { mValue = (mValue & FLAG_CAN_BREAK_BEFORE) | (aGlyphCount << GLYPH_COUNT_SHIFT); return *this; } PRUint32 GetGlyphCount() const { do { if (!(!IsSimpleGlyph())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Expected non-simple-glyph", "!IsSimpleGlyph()", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h", 1795); } } while (0); return (mValue & GLYPH_COUNT_MASK) >> GLYPH_COUNT_SHIFT; } private: PRUint32 mValue; }; /** * When the glyphs for a character don't fit into a CompressedGlyph record * in SimpleGlyph format, we use an array of DetailedGlyphs instead. */ struct DetailedGlyph { /** The glyphID, or the Unicode character * if this is a missing glyph */ PRUint32 mGlyphID; /** The advance, x-offset and y-offset of the glyph, in appunits * mAdvance is in the text direction (RTL or LTR) * mXOffset is always from left to right * mYOffset is always from top to bottom */ PRInt32 mAdvance; float mXOffset, mYOffset; }; // The text is divided into GlyphRuns as necessary struct GlyphRun { nsRefPtr mFont; // never null PRUint32 mCharacterOffset; // into original UTF16 string }; class __declspec(dllexport) GlyphRunIterator { public: GlyphRunIterator(gfxTextRun *aTextRun, PRUint32 aStart, PRUint32 aLength) : mTextRun(aTextRun), mStartOffset(aStart), mEndOffset(aStart + aLength) { mNextIndex = mTextRun->FindFirstGlyphRunContaining(aStart); } PRBool NextRun(); GlyphRun *GetGlyphRun() { return mGlyphRun; } PRUint32 GetStringStart() { return mStringStart; } PRUint32 GetStringEnd() { return mStringEnd; } private: gfxTextRun *mTextRun; GlyphRun *mGlyphRun; PRUint32 mStringStart; PRUint32 mStringEnd; PRUint32 mNextIndex; PRUint32 mStartOffset; PRUint32 mEndOffset; }; class GlyphRunOffsetComparator { public: PRBool Equals(const GlyphRun& a, const GlyphRun& b) const { return a.mCharacterOffset == b.mCharacterOffset; } PRBool LessThan(const GlyphRun& a, const GlyphRun& b) const { return a.mCharacterOffset < b.mCharacterOffset; } }; friend class GlyphRunIterator; friend class FontSelector; // API for setting up the textrun glyphs. Should only be called by // things that construct textruns. /** * We've found a run of text that should use a particular font. Call this * only during initialization when font substitution has been computed. * Call it before setting up the glyphs for the characters in this run; * SetMissingGlyph requires that the correct glyphrun be installed. * * If aForceNewRun, a new glyph run will be added, even if the * previously added run uses the same font. If glyph runs are * added out of strictly increasing aStartCharIndex order (via * force), then SortGlyphRuns must be called after all glyph runs * are added before any further operations are performed with this * TextRun. */ nsresult AddGlyphRun(gfxFont *aFont, PRUint32 aStartCharIndex, PRBool aForceNewRun = 0); void ResetGlyphRuns() { mGlyphRuns.Clear(); } void SortGlyphRuns(); void SanitizeGlyphRuns(); // Call the following glyph-setters during initialization or during reshaping // only. It is OK to overwrite existing data for a character. /** * Set the glyph data for a character. aGlyphs may be null if aGlyph is a * simple glyph or has no associated glyphs. If non-null the data is copied, * the caller retains ownership. */ void SetSimpleGlyph(PRUint32 aCharIndex, CompressedGlyph aGlyph) { do { if (!(aGlyph.IsSimpleGlyph())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Should be a simple glyph here", "aGlyph.IsSimpleGlyph()", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h", 1891); } } while (0); if (mCharacterGlyphs) { mCharacterGlyphs[aCharIndex] = aGlyph; } if (mDetailedGlyphs) { mDetailedGlyphs[aCharIndex] = 0L; } } void SetGlyphs(PRUint32 aCharIndex, CompressedGlyph aGlyph, const DetailedGlyph *aGlyphs); void SetMissingGlyph(PRUint32 aCharIndex, PRUint32 aUnicodeChar); void SetSpaceGlyph(gfxFont *aFont, gfxContext *aContext, PRUint32 aCharIndex); // If the character at aIndex is default-ignorable, set the glyph // to be invisible-missing and return TRUE, else return FALSE PRBool FilterIfIgnorable(PRUint32 aIndex); /** * Prefetch all the glyph extents needed to ensure that Measure calls * on this textrun not requesting tight boundingBoxes will succeed. Note * that some glyph extents might not be fetched due to OOM or other * errors. */ void FetchGlyphExtents(gfxContext *aRefContext); // API for access to the raw glyph data, needed by gfxFont::Draw // and gfxFont::GetBoundingBox const CompressedGlyph *GetCharacterGlyphs() { return mCharacterGlyphs; } const DetailedGlyph *GetDetailedGlyphs(PRUint32 aCharIndex) { return mDetailedGlyphs ? mDetailedGlyphs[aCharIndex].get() : 0L; } PRBool HasDetailedGlyphs() { return mDetailedGlyphs.get() != 0L; } PRUint32 CountMissingGlyphs(); const GlyphRun *GetGlyphRuns(PRUint32 *aNumGlyphRuns) { *aNumGlyphRuns = mGlyphRuns.Length(); return mGlyphRuns.Elements(); } // Returns the index of the GlyphRun containing the given offset. // Returns mGlyphRuns.Length() when aOffset is mCharacterCount. PRUint32 FindFirstGlyphRunContaining(PRUint32 aOffset); // Copy glyph data for a range of characters from aSource to this // textrun. If aStealData is true then we actually steal the glyph data, // setting the data in aSource to "missing". aDest should be in the last // glyphrun. virtual void CopyGlyphDataFrom(gfxTextRun *aSource, PRUint32 aStart, PRUint32 aLength, PRUint32 aDest, PRBool aStealData); nsExpirationState *GetExpirationState() { return &mExpirationState; } struct LigatureData { // textrun offsets of the start and end of the containing ligature PRUint32 mLigatureStart; PRUint32 mLigatureEnd; // appunits advance to the start of the ligature part within the ligature; // never includes any spacing gfxFloat mPartAdvance; // appunits width of the ligature part; includes before-spacing // when the part is at the start of the ligature, and after-spacing // when the part is as the end of the ligature gfxFloat mPartWidth; PRPackedBool mClipBeforePart; PRPackedBool mClipAfterPart; }; // user font set generation when text run was created PRUint64 GetUserFontSetGeneration() { return mUserFontSetGeneration; } // number of entries referencing this textrun in the gfxTextRunWordCache PRUint32 mCachedWords; // generation of gfxTextRunWordCache that refers to this textrun; // if the cache gets cleared, then mCachedWords is no longer meaningful PRUint32 mCacheGeneration; void Dump(FILE* aOutput); #line 1969 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h" // post-process glyph advances to deal with synthetic bolding void AdjustAdvancesForSyntheticBold(PRUint32 aStart, PRUint32 aLength); protected: /** * Initializes the textrun to blank. * @param aGlyphStorage preallocated array of CompressedGlyph[aLength] * for the textrun to use; if aText is not persistent, then it has also * been appended to this array, so it must NOT be freed separately. */ gfxTextRun(const gfxTextRunFactory::Parameters *aParams, const void *aText, PRUint32 aLength, gfxFontGroup *aFontGroup, PRUint32 aFlags, CompressedGlyph *aGlyphStorage); /** * Helper for the Create() factory method to allocate the required * glyph storage, and copy the text (modifying the aText parameter) * if it is not flagged as persistent. */ static CompressedGlyph* AllocateStorage(const void*& aText, PRUint32 aLength, PRUint32 aFlags); private: // **** general helpers **** // Allocate aCount DetailedGlyphs for the given index DetailedGlyph *AllocateDetailedGlyphs(PRUint32 aCharIndex, PRUint32 aCount); // Spacing for characters outside the range aSpacingStart/aSpacingEnd // is assumed to be zero; such characters are not passed to aProvider. // This is useful to protect aProvider from being passed character indices // it is not currently able to handle. PRBool GetAdjustedSpacingArray(PRUint32 aStart, PRUint32 aEnd, PropertyProvider *aProvider, PRUint32 aSpacingStart, PRUint32 aSpacingEnd, nsTArray *aSpacing); // **** ligature helpers **** // (Platforms do the actual ligaturization, but we need to do a bunch of stuff // to handle requests that begin or end inside a ligature) // if aProvider is null then mBeforeSpacing and mAfterSpacing are set to zero LigatureData ComputeLigatureData(PRUint32 aPartStart, PRUint32 aPartEnd, PropertyProvider *aProvider); gfxFloat ComputePartialLigatureWidth(PRUint32 aPartStart, PRUint32 aPartEnd, PropertyProvider *aProvider); void DrawPartialLigature(gfxFont *aFont, gfxContext *aCtx, PRUint32 aStart, PRUint32 aEnd, const gfxRect *aDirtyRect, gfxPoint *aPt, PropertyProvider *aProvider); // Advance aStart to the start of the nearest ligature; back up aEnd // to the nearest ligature end; may result in *aStart == *aEnd void ShrinkToLigatureBoundaries(PRUint32 *aStart, PRUint32 *aEnd); // result in appunits gfxFloat GetPartialLigatureWidth(PRUint32 aStart, PRUint32 aEnd, PropertyProvider *aProvider); void AccumulatePartialLigatureMetrics(gfxFont *aFont, PRUint32 aStart, PRUint32 aEnd, gfxFont::BoundingBoxType aBoundingBoxType, gfxContext *aRefContext, PropertyProvider *aProvider, Metrics *aMetrics); // **** measurement helper **** void AccumulateMetricsForRun(gfxFont *aFont, PRUint32 aStart, PRUint32 aEnd, gfxFont::BoundingBoxType aBoundingBoxType, gfxContext *aRefContext, PropertyProvider *aProvider, PRUint32 aSpacingStart, PRUint32 aSpacingEnd, Metrics *aMetrics); // **** drawing helper **** void DrawGlyphs(gfxFont *aFont, gfxContext *aContext, PRBool aDrawToPath, gfxPoint *aPt, PRUint32 aStart, PRUint32 aEnd, PropertyProvider *aProvider, PRUint32 aSpacingStart, PRUint32 aSpacingEnd); // All our glyph data is in logical order, not visual. // mCharacterGlyphs is allocated by the factory that creates the textrun, // to avoid the possibility of failure during the constructor; // however, ownership passes to the textrun during construction and so // it must be deleted in the destructor. CompressedGlyph* mCharacterGlyphs; nsAutoArrayPtr > mDetailedGlyphs; // only non-null if needed // XXX this should be changed to a GlyphRun plus a maybe-null GlyphRun*, // for smaller size especially in the super-common one-glyphrun case nsAutoTArray mGlyphRuns; // When TEXT_IS_8BIT is set, we use mSingle, otherwise we use mDouble. // When TEXT_IS_PERSISTENT is set, we don't own the text, otherwise we // own the text. When we own the text, it's allocated fused with the // mCharacterGlyphs array, and therefore need not be explicitly deleted. // This text is not null-terminated. union { const PRUint8 *mSingle; const PRUnichar *mDouble; } mText; void *mUserData; gfxFontGroup *mFontGroup; // addrefed gfxSkipChars mSkipChars; nsExpirationState mExpirationState; PRUint32 mAppUnitsPerDevUnit; PRUint32 mFlags; PRUint32 mCharacterCount; PRUint32 mHashCode; PRUint64 mUserFontSetGeneration; // user font set generation when text run created }; class __declspec(dllexport) gfxFontGroup : public gfxTextRunFactory { public: static void Shutdown(); // platform must call this to release the languageAtomService gfxFontGroup(const nsAString_internal& aFamilies, const gfxFontStyle *aStyle, gfxUserFontSet *aUserFontSet = 0L); virtual ~gfxFontGroup(); virtual gfxFont *GetFontAt(PRInt32 i) { // If it turns out to be hard for all clients that cache font // groups to call UpdateFontList at appropriate times, we could // instead consider just calling UpdateFontList from someplace // more central (such as here). do { if (!(!mUserFontSet || mCurrGeneration == GetGeneration())) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Whoever was caching this font group should have " "called UpdateFontList on it", "!mUserFontSet || mCurrGeneration == GetGeneration()", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h", 2091); } } while (0); #line 2092 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h" do { if (!(mFonts.Length() > PRUint32(i))) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "Requesting a font index that doesn't exist", "mFonts.Length() > PRUint32(i)", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h", 2093); } } while (0); #line 2094 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h" return static_cast(mFonts[i]); } virtual PRUint32 FontListLength() const { return mFonts.Length(); } PRBool Equals(const gfxFontGroup& other) const { return mFamilies.Equals(other.mFamilies) && mStyle.Equals(other.mStyle); } const gfxFontStyle *GetStyle() const { return &mStyle; } virtual gfxFontGroup *Copy(const gfxFontStyle *aStyle); /** * The listed characters should not be passed in to MakeTextRun and should * be treated as invisible and zero-width. */ static PRBool IsInvalidChar(PRUnichar ch); /** * Make a textrun for an empty string. This is fast; if you call it, * don't bother caching the result. */ gfxTextRun *MakeEmptyTextRun(const Parameters *aParams, PRUint32 aFlags); /** * Make a textrun for a single ASCII space. This is fast; if you call it, * don't bother caching the result. */ gfxTextRun *MakeSpaceTextRun(const Parameters *aParams, PRUint32 aFlags); /** * Make a textrun for a given string. * If aText is not persistent (aFlags & TEXT_IS_PERSISTENT), the * textrun will copy it. * This calls FetchGlyphExtents on the textrun. */ virtual gfxTextRun *MakeTextRun(const PRUnichar *aString, PRUint32 aLength, const Parameters *aParams, PRUint32 aFlags); /** * Make a textrun for a given string. * If aText is not persistent (aFlags & TEXT_IS_PERSISTENT), the * textrun will copy it. * This calls FetchGlyphExtents on the textrun. */ virtual gfxTextRun *MakeTextRun(const PRUint8 *aString, PRUint32 aLength, const Parameters *aParams, PRUint32 aFlags); /* helper function for splitting font families on commas and * calling a function for each family to fill the mFonts array */ typedef PRBool (*FontCreationCallback) (const nsAString_internal& aName, const nsACString_internal& aGenericName, void *closure); PRBool ForEachFont(const nsAString_internal& aFamilies, nsIAtom *aLanguage, FontCreationCallback fc, void *closure); PRBool ForEachFont(FontCreationCallback fc, void *closure); /** * Check whether a given font (specified by its gfxFontEntry) * is already in the fontgroup's list of actual fonts */ PRBool HasFont(const gfxFontEntry *aFontEntry); const nsString& GetFamilies() { return mFamilies; } // This returns the preferred underline for this font group. // Some CJK fonts have wrong underline offset in its metrics. // If this group has such "bad" font, each platform's gfxFontGroup initialized mUnderlineOffset. // The value should be lower value of first font's metrics and the bad font's metrics. // Otherwise, this returns from first font's metrics. enum { UNDERLINE_OFFSET_NOT_SET = 32767 }; virtual gfxFloat GetUnderlineOffset() { if (mUnderlineOffset == UNDERLINE_OFFSET_NOT_SET) mUnderlineOffset = GetFontAt(0)->GetMetrics().underlineOffset; return mUnderlineOffset; } virtual already_AddRefed FindFontForChar(PRUint32 ch, PRUint32 prevCh, PRInt32 aRunScript, gfxFont *aPrevMatchedFont); // search through pref fonts for a character, return nsnull if no matching pref font virtual already_AddRefed WhichPrefFontSupportsChar(PRUint32 aCh); virtual already_AddRefed WhichSystemFontSupportsChar(PRUint32 aCh); void ComputeRanges(nsTArray& mRanges, const PRUnichar *aString, PRUint32 begin, PRUint32 end, PRInt32 aRunScript); gfxUserFontSet* GetUserFontSet(); // With downloadable fonts, the composition of the font group can change as fonts are downloaded // for each change in state of the user font set, the generation value is bumped to avoid picking up // previously created text runs in the text run word cache. For font groups based on stylesheets // with no @font-face rule, this always returns 0. PRUint64 GetGeneration(); // If there is a user font set, check to see whether the font list or any // caches need updating. virtual void UpdateFontList(); protected: nsString mFamilies; gfxFontStyle mStyle; nsTArray< nsRefPtr > mFonts; gfxFloat mUnderlineOffset; gfxUserFontSet* mUserFontSet; PRUint64 mCurrGeneration; // track the current user font set generation, rebuild font list if needed // cache the most recent pref font to avoid general pref font lookup nsRefPtr mLastPrefFamily; nsRefPtr mLastPrefFont; eFontPrefLang mLastPrefLang; // lang group for last pref font PRBool mLastPrefFirstFont; // is this the first font in the list of pref fonts for this lang group? eFontPrefLang mPageLang; // Used for construction/destruction. Not intended to change the font set // as invalidation of font lists and caches is not considered. void SetUserFontSet(gfxUserFontSet *aUserFontSet); // Initialize the list of fonts void BuildFontList(); // Init this font group's font metrics. If there no bad fonts, you don't need to call this. // But if there are one or more bad fonts which have bad underline offset, // you should call this with the *first* bad font. void InitMetricsForBadFont(gfxFont* aBadFont); // Set up the textrun glyphs, by finding script and font ranges // and calling each font's InitTextRun() as appropriate void InitTextRun(gfxContext *aContext, gfxTextRun *aTextRun, const PRUnichar *aString, PRUint32 aLength); // InitTextRun helper to handle a single script run void InitTextRun(gfxContext *aContext, gfxTextRun *aTextRun, const PRUnichar *aString, PRUint32 aTotalLength, PRUint32 aScriptRunStart, PRUint32 aScriptRunEnd, PRInt32 aRunScript); /* If aResolveGeneric is true, then CSS/Gecko generic family names are * replaced with preferred fonts. * * If aResolveFontName is true then fc() is called only for existing fonts * and with actual font names. If false then fc() is called with each * family name in aFamilies (after resolving CSS/Gecko generic family names * if aResolveGeneric). */ PRBool ForEachFontInternal(const nsAString_internal& aFamilies, nsIAtom *aLanguage, PRBool aResolveGeneric, PRBool aResolveFontName, FontCreationCallback fc, void *closure); static PRBool FontResolverProc(const nsAString_internal& aName, void *aClosure); static PRBool FindPlatformFont(const nsAString_internal& aName, const nsACString_internal& aGenericName, void *closure); static nsILanguageAtomService* gLangService; }; #line 2269 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxFont.h" #line 56 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxWindowsPlatform.h" #line 63 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxWindowsPlatform.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxPlatform.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Mozilla Foundation code. * * The Initial Developer of the Original Code is Mozilla Foundation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Vladimir Vukicevic * Masayuki Nakano * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 64 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxWindowsPlatform.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxContext.h" /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Oracle Corporation code. * * The Initial Developer of the Original Code is Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Stuart Parmenter * Vladimir Vukicevic * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 65 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxWindowsPlatform.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsTArray.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is C++ array template. * * The Initial Developer of the Original Code is Google Inc. * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Darin Fisher * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 67 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxWindowsPlatform.h" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsDataHashtable.h" /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is C++ hashtable templates. * * The Initial Developer of the Original Code is * Benjamin Smedberg. * Portions created by the Initial Developer are Copyright (C) 2002 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #line 68 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxWindowsPlatform.h" // Utility to get a Windows HDC from a thebes context, // used by both GDI and Uniscribe font shapers struct DCFromContext { DCFromContext(gfxContext *aContext) { dc = 0; nsRefPtr aSurface = aContext->CurrentSurface(); do { if (!(aSurface)) { NS_DebugBreak_P(NS_DEBUG_ASSERTION, "DCFromContext: null surface", "aSurface", "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxWindowsPlatform.h", 82); } } while (0); if (aSurface && (aSurface->GetType() == gfxASurface::SurfaceTypeWin32 || aSurface->GetType() == gfxASurface::SurfaceTypeWin32Printing)) { dc = static_cast(aSurface.get())->GetDC(); needsRelease = 0; } if (!dc) { dc = GetDC(0); SetGraphicsMode(dc, 2); needsRelease = 1; } } ~DCFromContext() { if (needsRelease) ReleaseDC(0, dc); } operator HDC () { return dc; } HDC dc; PRBool needsRelease; }; class __declspec(dllexport) gfxWindowsPlatform : public gfxPlatform { public: gfxWindowsPlatform(); virtual ~gfxWindowsPlatform(); static gfxWindowsPlatform *GetPlatform() { return (gfxWindowsPlatform*) gfxPlatform::GetPlatform(); } virtual gfxPlatformFontList* CreatePlatformFontList(); already_AddRefed CreateOffscreenSurface(const gfxIntSize& size, gfxASurface::gfxContentType contentType); enum RenderMode { /* Use GDI and windows surfaces */ RENDER_GDI = 0, /* Use 32bpp image surfaces and call StretchDIBits */ RENDER_IMAGE_STRETCH32, /* Use 32bpp image surfaces, and do 32->24 conversion before calling StretchDIBits */ RENDER_IMAGE_STRETCH24, /* Use DirectDraw on Windows CE */ RENDER_DDRAW, /* Use 24bpp image surfaces, with final DirectDraw 16bpp blt on Windows CE */ RENDER_IMAGE_DDRAW16, /* Use DirectDraw with OpenGL on Windows CE */ RENDER_DDRAW_GL, /* Use Direct2D rendering */ RENDER_DIRECT2D, /* max */ RENDER_MODE_MAX }; RenderMode GetRenderMode() { return mRenderMode; } void SetRenderMode(RenderMode rmode) { mRenderMode = rmode; } /** * Updates render mode with relation to the current preferences and * available devices. */ void UpdateRenderMode(); /** * Verifies a D2D device is present and working, will attempt to create one * it is non-functional or non-existant. * * \param aAttemptForce Attempt to force D2D cairo device creation by using * cairo device creation routines. */ void VerifyD2DDevice(PRBool aAttemptForce); HDC GetScreenDC() { return mScreenDC; } nsresult GetFontList(nsIAtom *aLangGroup, const nsACString_internal& aGenericFamily, nsTArray& aListOfFonts); nsresult UpdateFontList(); nsresult ResolveFontName(const nsAString_internal& aFontName, FontResolverCallback aCallback, void *aClosure, PRBool& aAborted); nsresult GetStandardFamilyName(const nsAString_internal& aFontName, nsAString_internal& aFamilyName); gfxFontGroup *CreateFontGroup(const nsAString_internal &aFamilies, const gfxFontStyle *aStyle, gfxUserFontSet *aUserFontSet); /** * Look up a local platform font using the full font face name (needed to support @font-face src local() ) */ virtual gfxFontEntry* LookupLocalFont(const gfxProxyFontEntry *aProxyEntry, const nsAString_internal& aFontName); /** * Activate a platform font (needed to support @font-face src url() ) */ virtual gfxFontEntry* MakePlatformFont(const gfxProxyFontEntry *aProxyEntry, const PRUint8 *aFontData, PRUint32 aLength); /** * Check whether format is supported on a platform or not (if unclear, returns true) */ virtual PRBool IsFontFormatSupported(nsIURI *aFontURI, PRUint32 aFormatFlags); /* Find a FontFamily/FontEntry object that represents a font on your system given a name */ gfxFontFamily *FindFontFamily(const nsAString_internal& aName); gfxFontEntry *FindFontEntry(const nsAString_internal& aName, const gfxFontStyle& aFontStyle); PRBool GetPrefFontEntries(const nsCString& aLangGroup, nsTArray > *array); void SetPrefFontEntries(const nsCString& aLangGroup, nsTArray >& array); void ClearPrefFonts() { mPrefFonts.Clear(); } // ClearType is not always enabled even when available (e.g. Windows XP) // if either of these prefs are enabled and apply, use ClearType rendering PRBool UseClearTypeForDownloadableFonts(); PRBool UseClearTypeAlways(); // OS version in 16.16 major/minor form // based on http://msdn.microsoft.com/en-us/library/ms724834(VS.85).aspx enum { kWindowsUnknown = 0, kWindows2000 = 0x50000, kWindowsXP = 0x50001, kWindowsServer2003 = 0x50002, kWindowsVista = 0x60000, kWindows7 = 0x60001 }; static PRInt32 WindowsOSVersion(); virtual void FontsPrefsChanged(nsIPrefBranch *aPrefBranch, const char *aPref); inline PRBool DWriteEnabled() { return 0; } #line 238 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxWindowsPlatform.h" protected: RenderMode mRenderMode; PRBool mUseClearTypeForDownloadableFonts; PRBool mUseClearTypeAlways; HDC mScreenDC; private: void Init(); PRBool mUseDirectWrite; PRBool mUsingGDIFonts; virtual qcms_profile* GetPlatformCMSOutputProfile(); // TODO: unify this with mPrefFonts (NB: holds families, not fonts) in gfxPlatformFontList nsDataHashtable > > mPrefFonts; }; #line 274 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\gfxWindowsPlatform.h" #line 46 "c:/build/hg.instantbird.org/mozilla/gfx/layers/d3d9/LayerManagerD3D9.cpp" #line 1 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIGfxInfo.h" /* * DO NOT EDIT. THIS FILE IS GENERATED FROM c:/build/hg.instantbird.org/mozilla/widget/public/nsIGfxInfo.idl */ /* For IDL files that don't want to include root IDL files. */ /* starting interface: nsIGfxInfo */ class __declspec(novtable) nsIGfxInfo : public nsISupports { public: template struct COMTypeInfo { static const nsIID kIID ; }; static const nsIID& GetIID() {return COMTypeInfo::kIID;} /* readonly attribute boolean D2DEnabled; */ virtual nsresult __stdcall GetD2DEnabled(PRBool *aD2DEnabled) = 0; /* readonly attribute boolean DWriteEnabled; */ virtual nsresult __stdcall GetDWriteEnabled(PRBool *aDWriteEnabled) = 0; /** * The name of the display adapter. */ /* readonly attribute DOMString adapterDescription; */ virtual nsresult __stdcall GetAdapterDescription(nsAString_internal & aAdapterDescription) = 0; /* readonly attribute DOMString adapterDriver; */ virtual nsresult __stdcall GetAdapterDriver(nsAString_internal & aAdapterDriver) = 0; /* readonly attribute unsigned long adapterVendorID; */ virtual nsresult __stdcall GetAdapterVendorID(PRUint32 *aAdapterVendorID) = 0; /* readonly attribute unsigned long adapterDeviceID; */ virtual nsresult __stdcall GetAdapterDeviceID(PRUint32 *aAdapterDeviceID) = 0; /** * The amount of RAM in MB in the display adapter. */ /* readonly attribute DOMString adapterRAM; */ virtual nsresult __stdcall GetAdapterRAM(nsAString_internal & aAdapterRAM) = 0; /* readonly attribute DOMString adapterDriverVersion; */ virtual nsresult __stdcall GetAdapterDriverVersion(nsAString_internal & aAdapterDriverVersion) = 0; /* readonly attribute DOMString adapterDriverDate; */ virtual nsresult __stdcall GetAdapterDriverDate(nsAString_internal & aAdapterDriverDate) = 0; enum { FEATURE_DIRECT2D = 1 }; enum { FEATURE_DIRECT3D_9_LAYERS = 2 }; enum { FEATURE_DIRECT3D_10_LAYERS = 3 }; enum { FEATURE_DIRECT3D_10_1_LAYERS = 4 }; enum { FEATURE_OPENGL_LAYERS = 5 }; enum { FEATURE_WEBGL_OPENGL = 6 }; enum { FEATURE_WEBGL_ANGLE = 7 }; enum { FEATURE_NO_INFO = 1 }; enum { FEATURE_BLOCKED_DRIVER_VERSION = 2 }; enum { FEATURE_BLOCKED_DEVICE = 3 }; enum { FEATURE_DISCOURAGED = 4 }; enum { FEATURE_BLOCKED_OS_VERSION = 5 }; /** * Ask about a feature, and return the status of that feature */ /* long getFeatureStatus (in long aFeature); */ virtual nsresult __stdcall GetFeatureStatus(PRInt32 aFeature, PRInt32 *_retval ) = 0; /* DOMString getFeatureSuggestedDriverVersion (in long aFeature); */ virtual nsresult __stdcall GetFeatureSuggestedDriverVersion(PRInt32 aFeature, nsAString_internal & _retval ) = 0; /** * WebGL info; valid params are "full-renderer", "vendor", "renderer", "version", * "shading_language_version", "extensions". These return info from * underlying GL impl that's used to implement WebGL. */ /* DOMString getWebGLParameter (in DOMString aParam); */ virtual nsresult __stdcall GetWebGLParameter(const nsAString_internal & aParam, nsAString_internal & _retval ) = 0; }; template const nsIID nsIGfxInfo::COMTypeInfo::kIID = {0xd2bfa0fd, 0x8f73, 0x4660, { 0x96, 0x09, 0xf9, 0x99, 0x68, 0x02, 0x43, 0xb1 }}; /* Use this macro when declaring classes that implement this interface. */ /* Use this macro to declare functions that forward the behavior of this interface to another object. */ /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */ #line 259 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIGfxInfo.h" #line 262 "c:\\build\\obj-instantbird-dbg\\mozilla\\dist\\include\\nsIGfxInfo.h" #line 47 "c:/build/hg.instantbird.org/mozilla/gfx/layers/d3d9/LayerManagerD3D9.cpp" namespace mozilla { namespace layers { DeviceManagerD3D9 *LayerManagerD3D9::mDefaultDeviceManager = 0L; LayerManagerD3D9::LayerManagerD3D9(nsIWidget *aWidget) { mWidget = aWidget; mCurrentCallbackInfo.Callback = 0; mCurrentCallbackInfo.CallbackData = 0; } LayerManagerD3D9::~LayerManagerD3D9() { Destroy(); } PRBool LayerManagerD3D9::Initialize() { nsCOMPtr gfxInfo = do_GetService("@mozilla.org/gfx/info;1"); if (gfxInfo) { PRInt32 status; if (((!!(!((gfxInfo->GetFeatureStatus(nsIGfxInfo::FEATURE_DIRECT3D_9_LAYERS, &status)) & 0x80000000))))) { if (status != nsIGfxInfo::FEATURE_NO_INFO) { NS_DebugBreak_P(NS_DEBUG_WARNING, "Direct3D 9-accelerated layers are not supported on this system.", 0L, "c:/build/hg.instantbird.org/mozilla/gfx/layers/d3d9/LayerManagerD3D9.cpp", 78); return 0; } } } if (!mDefaultDeviceManager) { mDeviceManager = new DeviceManagerD3D9; if (!mDeviceManager->Init()) { mDeviceManager = 0L; return 0; } mDefaultDeviceManager = mDeviceManager; } else { mDeviceManager = mDefaultDeviceManager; } mSwapChain = mDeviceManager-> CreateSwapChain((HWND)mWidget->GetNativeData(0)); if (!mSwapChain) { return 0; } return 1; } void LayerManagerD3D9::SetClippingRegion(const nsIntRegion &aClippingRegion) { mClippingRegion = aClippingRegion; } void LayerManagerD3D9::Destroy() { if (!IsDestroyed()) { if (mRoot) { static_cast(mRoot->ImplData())->LayerManagerDestroyed(); } /* Important to release this first since it also holds a reference to the * device manager */ mSwapChain = 0L; mDeviceManager = 0L; } LayerManager::Destroy(); } void LayerManagerD3D9::BeginTransaction() { } void LayerManagerD3D9::BeginTransactionWithTarget(gfxContext *aTarget) { mTarget = aTarget; } void LayerManagerD3D9::EndConstruction() { } void LayerManagerD3D9::EndTransaction(DrawThebesLayerCallback aCallback, void* aCallbackData) { mCurrentCallbackInfo.Callback = aCallback; mCurrentCallbackInfo.CallbackData = aCallbackData; // The results of our drawing always go directly into a pixel buffer, // so we don't need to pass any global transform here. mRoot->ComputeEffectiveTransforms(gfx3DMatrix()); Render(); /* Clean this out for sanity */ mCurrentCallbackInfo.Callback = 0; mCurrentCallbackInfo.CallbackData = 0; // Clear mTarget, next transaction could have no target mTarget = 0; } void LayerManagerD3D9::SetRoot(Layer *aLayer) { mRoot = aLayer; } already_AddRefed LayerManagerD3D9::CreateThebesLayer() { nsRefPtr layer = new ThebesLayerD3D9(this); return layer.forget(); } already_AddRefed LayerManagerD3D9::CreateContainerLayer() { nsRefPtr layer = new ContainerLayerD3D9(this); return layer.forget(); } already_AddRefed LayerManagerD3D9::CreateImageLayer() { nsRefPtr layer = new ImageLayerD3D9(this); return layer.forget(); } already_AddRefed LayerManagerD3D9::CreateColorLayer() { nsRefPtr layer = new ColorLayerD3D9(this); return layer.forget(); } already_AddRefed LayerManagerD3D9::CreateCanvasLayer() { nsRefPtr layer = new CanvasLayerD3D9(this); return layer.forget(); } already_AddRefed LayerManagerD3D9::CreateImageContainer() { nsRefPtr container = new ImageContainerD3D9(this); return container.forget(); } cairo_user_data_key_t gKeyD3D9Texture; void ReleaseTexture(void *texture) { static_cast(texture)->Release(); } already_AddRefed LayerManagerD3D9::CreateOptimalSurface(const gfxIntSize &aSize, gfxASurface::gfxImageFormat aFormat) { return LayerManager::CreateOptimalSurface(aSize, aFormat); #line 255 "c:/build/hg.instantbird.org/mozilla/gfx/layers/d3d9/LayerManagerD3D9.cpp" } void LayerManagerD3D9::ReportFailure(const nsACString_internal &aMsg, HRESULT aCode) { // We could choose to abort here when hr == E_OUTOFMEMORY. nsCString msg; msg.Append(aMsg); msg.AppendLiteral(" Error code: "); msg.AppendInt(PRUint32(aCode)); NS_DebugBreak_P(NS_DEBUG_WARNING, msg.BeginReading(), 0L, "c:/build/hg.instantbird.org/mozilla/gfx/layers/d3d9/LayerManagerD3D9.cpp", 265); } void LayerManagerD3D9::Render() { if (!mSwapChain->PrepareForRendering()) { return; } deviceManager()->SetupRenderState(); SetupPipeline(); nsIntRect rect; mWidget->GetClientBounds(rect); device()->Clear(0, 0, 0x00000001l, 0x00000000, 0, 0); device()->BeginScene(); if (mRoot) { const nsIntRect *clipRect = mRoot->GetClipRect(); RECT r; if (clipRect) { r.left = (LONG)clipRect->x; r.top = (LONG)clipRect->y; r.right = (LONG)(clipRect->x + clipRect->width); r.bottom = (LONG)(clipRect->y + clipRect->height); } else { r.left = r.top = 0; r.right = rect.width; r.bottom = rect.height; } device()->SetScissorRect(&r); static_cast(mRoot->ImplData())->RenderLayer(); } device()->EndScene(); if (!mTarget) { const nsIntRect *r; for (nsIntRegionRectIterator iter(mClippingRegion); (r = iter.Next()) != 0L;) { mSwapChain->Present(*r); } } else { PaintToTarget(); } } void LayerManagerD3D9::SetupPipeline() { nsIntRect rect; mWidget->GetClientBounds(rect); gfx3DMatrix viewMatrix; /* * Matrix to transform to viewport space ( <-1.0, 1.0> topleft, * <1.0, -1.0> bottomright) */ viewMatrix._11 = 2.0f / rect.width; viewMatrix._22 = -2.0f / rect.height; viewMatrix._41 = -1.0f; viewMatrix._42 = 1.0f; HRESULT hr = device()->SetVertexShaderConstantF(CBmProjection, &viewMatrix._11, 4); if ((((HRESULT)(hr)) < 0)) { NS_DebugBreak_P(NS_DEBUG_WARNING, "Failed to set projection shader constant!", 0L, "c:/build/hg.instantbird.org/mozilla/gfx/layers/d3d9/LayerManagerD3D9.cpp", 335); } hr = device()->SetVertexShaderConstantF(CBvTextureCoords, ShaderConstantRect(0, 0, 1.0f, 1.0f), 1); if ((((HRESULT)(hr)) < 0)) { NS_DebugBreak_P(NS_DEBUG_WARNING, "Failed to set texCoords shader constant!", 0L, "c:/build/hg.instantbird.org/mozilla/gfx/layers/d3d9/LayerManagerD3D9.cpp", 343); } float offset[] = { 0, 0, 0, 0 }; hr = device()->SetVertexShaderConstantF(CBvRenderTargetOffset, offset, 1); if ((((HRESULT)(hr)) < 0)) { NS_DebugBreak_P(NS_DEBUG_WARNING, "Failed to set RenderTargetOffset shader constant!", 0L, "c:/build/hg.instantbird.org/mozilla/gfx/layers/d3d9/LayerManagerD3D9.cpp", 350); } } void LayerManagerD3D9::PaintToTarget() { nsRefPtr backBuff; nsRefPtr destSurf; device()->GetRenderTarget(0, getter_AddRefs(backBuff)); D3DSURFACE_DESC desc; backBuff->GetDesc(&desc); device()->CreateOffscreenPlainSurface(desc.Width, desc.Height, D3DFMT_A8R8G8B8, D3DPOOL_SYSTEMMEM, getter_AddRefs(destSurf), 0); device()->GetRenderTargetData(backBuff, destSurf); D3DLOCKED_RECT rect; destSurf->LockRect(&rect, 0, 0x00000010L); nsRefPtr imageSurface = new gfxImageSurface((unsigned char*)rect.pBits, gfxIntSize(desc.Width, desc.Height), rect.Pitch, gfxASurface::ImageFormatARGB32); mTarget->SetSource(imageSurface); mTarget->SetOperator(gfxContext::OPERATOR_OVER); mTarget->Paint(); destSurf->UnlockRect(); } LayerD3D9::LayerD3D9(LayerManagerD3D9 *aManager) : mD3DManager(aManager) { } } /* namespace layers */ } /* namespace mozilla */