/*
* NDR Types
*
* Copyright 2006 Robert Shearman (for CodeWeavers)
*
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
/*
* Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
* other than GPL or LGPL is available it will apply instead, Oracle elects to use only
* the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
* a choice of LGPL license versions is made available with the language indicating
* that LGPLv2 or any later version may be used, or where a choice of which version
* of the LGPL is applied is otherwise unspecified.
*/
#ifndef __NDRTYPES_H__
#define __NDRTYPES_H__
#include <limits.h>
typedef struct
{
* parameter, other parameters may be skipped, using the value in
* NDR_PROC_PARTIAL_OIF_HEADER::constant_client_buffer_size instead. */
* parameter, other parameters may be skipped, using the value in
* NDR_PROC_PARTIAL_OIF_HEADER::constant_server_buffer_size instead. */
* format defined by NDR_PARAM_OIF_BASETYPE rather than by
* NDR_PARAM_OIF_OTHER. */
* value. Can be of type: structure, union, transmit_as, represent_as,
* wire_marshal and SAFEARRAY. */
* pointer to anything other than another pointer, and which has no
* allocate attributes. */
* for when the free instance routine should not be called. */
* specifies the size of the object in numbers of 8byte blocks needed.
* It will be stored on the server's stack rather than using an allocate
* call. */
typedef struct
{
* sizing pass. */
* sizing pass. */
* procedure. */
* extensions are in use. */
* procedure. */
typedef struct
{
* descriptors in use. */
* check. */
* check. */
* routine @ NotifyIndex. */
* NotifyIndex. */
/* Win2000 extensions */
typedef struct
{
/* size in bytes of all following extensions */
unsigned char Size;
/* client cache size hint */
unsigned short ClientCorrHint;
/* server cache size hint */
unsigned short ServerCorrHint;
/* index of routine in MIDL_STUB_DESC::NotifyRoutineTable to call if
* HasNotify or HasNotify2 flag set */
unsigned short NotifyIndex;
typedef struct
{
/* size in bytes of all following extensions */
unsigned char Size;
/* client cache size hint */
unsigned short ClientCorrHint;
/* server cache size hint */
unsigned short ServerCorrHint;
/* index of routine in MIDL_STUB_DESC::NotifyRoutineTable to call if
* HasNotify or HasNotify2 flag set */
unsigned short NotifyIndex;
unsigned short FloatArgMask;
typedef enum
{
/* flags for all handle types */
/* flags for context handles */
#endif