1/**
  2 * This file is part of the mingw-w64 runtime package.
  3 * No warranty is given; refer to the file DISCLAIMER within this package.
  4 */
  5
  6#ifndef _MXDC_H_
  7#define _MXDC_H_
  8
  9#include <winapifamily.h>
 10
 11#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
 12
 13#ifdef __cplusplus
 14extern "C" {
 15#endif
 16
 17#include <pshpack1.h>
 18
 19  typedef enum tagMxdcS0PageEnums {
 20    MXDC_RESOURCE_TTF = 0,
 21    MXDC_RESOURCE_JPEG = 1,
 22    MXDC_RESOURCE_PNG = 2,
 23    MXDC_RESOURCE_TIFF = 3,
 24    MXDC_RESOURCE_WDP = 4,
 25    MXDC_RESOURCE_DICTIONARY = 5,
 26    MXDC_RESOURCE_ICC_PROFILE = 6,
 27    MXDC_RESOURCE_JPEG_THUMBNAIL = 7,
 28    MXDC_RESOURCE_PNG_THUMBNAIL = 8,
 29    MXDC_RESOURCE_MAX
 30  } MXDC_S0_PAGE_ENUMS;
 31
 32#if NTDDI_VERSION >= 0x06000100
 33  typedef enum tagMxdcLandscapeRotationEnums {
 34    MXDC_LANDSCAPE_ROTATE_NONE = 0,
 35    MXDC_LANDSCAPE_ROTATE_COUNTERCLOCKWISE_90_DEGREES = 90,
 36    MXDC_LANDSCAPE_ROTATE_COUNTERCLOCKWISE_270_DEGREES = -90
 37  } MXDC_LANDSCAPE_ROTATION_ENUMS;
 38
 39  typedef enum tagMxdcImageTypeEnums {
 40    MXDC_IMAGETYPE_JPEGHIGH_COMPRESSION = 1,
 41    MXDC_IMAGETYPE_JPEGMEDIUM_COMPRESSION = 2,
 42    MXDC_IMAGETYPE_JPEGLOW_COMPRESSION = 3,
 43    MXDC_IMAGETYPE_PNG = 4
 44  } MXDC_IMAGE_TYPE_ENUMS;
 45#endif
 46
 47  typedef struct tagMxdcEscapeHeader {
 48    ULONG cbInput;
 49    ULONG cbOutput;
 50    ULONG opCode;
 51  } MXDC_ESCAPE_HEADER_T, *P_MXDC_ESCAPE_HEADER_T;
 52
 53  typedef struct tagMxdcGetFileNameData {
 54    ULONG cbOutput;
 55    wchar_t wszData[1];
 56  } MXDC_GET_FILENAME_DATA_T, *P_MXDC_GET_FILENAME_DATA_T;
 57
 58  typedef struct tagMxdcS0PageData {
 59    DWORD dwSize;
 60    BYTE bData[1];
 61  } MXDC_S0PAGE_DATA_T, *P_MXDC_S0PAGE_DATA_T;
 62
 63  typedef struct tagMxdcXpsS0PageResource {
 64    DWORD dwSize;
 65    DWORD dwResourceType;
 66    BYTE szUri[MAX_PATH];
 67    DWORD dwDataSize;
 68    BYTE bData[1];
 69  } MXDC_XPS_S0PAGE_RESOURCE_T, *P_MXDC_XPS_S0PAGE_RESOURCE_T;
 70
 71  typedef struct tagMxdcPrintTicketPassthrough {
 72    DWORD dwDataSize;
 73    BYTE bData[1];
 74  } MXDC_PRINTTICKET_DATA_T, *P_MXDC_PRINTTICKET_DATA_T;
 75
 76  typedef struct tagMxdcPrintTicketEscape {
 77    MXDC_ESCAPE_HEADER_T mxdcEscape;
 78    MXDC_PRINTTICKET_DATA_T printTicketData;
 79  } MXDC_PRINTTICKET_ESCAPE_T, *P_MXDC_PRINTTICKET_ESCAPE_T;
 80
 81  typedef struct tagMxdcS0PagePassthroughEscape {
 82    MXDC_ESCAPE_HEADER_T mxdcEscape;
 83    MXDC_S0PAGE_DATA_T xpsS0PageData;
 84  } MXDC_S0PAGE_PASSTHROUGH_ESCAPE_T, *P_MXDC_S0PAGE_PASSTHROUGH_ESCAPE_T;
 85
 86  typedef struct tagMxdcS0PageResourceEscape {
 87    MXDC_ESCAPE_HEADER_T mxdcEscape;
 88    MXDC_XPS_S0PAGE_RESOURCE_T xpsS0PageResourcePassthrough;
 89  } MXDC_S0PAGE_RESOURCE_ESCAPE_T, *P_MXDC_S0PAGE_RESOURCE_ESCAPE_T;
 90
 91#include <poppack.h>
 92
 93#define MXDC_ESCAPE 4122
 94
 95#define MXDCOP_GET_FILENAME 14
 96#define MXDCOP_PRINTTICKET_FIXED_DOC_SEQ 22
 97#define MXDCOP_PRINTTICKET_FIXED_DOC 24
 98#define MXDCOP_PRINTTICKET_FIXED_PAGE 26
 99#define MXDCOP_SET_S0PAGE 28
100#define MXDCOP_SET_S0PAGE_RESOURCE 30
101#define MXDCOP_SET_XPSPASSTHRU_MODE 32
102
103#if NTDDI_VERSION >= 0x06000100
104#define MXDC_IMAGEABLE_AREA_PROP_NAME_WSTR (L"MxdcImageableArea")
105#define MXDC_IMAGE_COMPRESSION_TYPE_PROP_NAME_WSTR (L"MxdcImageCompressionType")
106#define MXDC_DOTS_PER_INCH_PROP_NAME_WSTR (L"MxdcDotsPerInch")
107#define MXDC_LANDSCAPE_ROTATION_PROP_NAME_WSTR (L"MxdcLandscapeRotation")
108#endif
109
110#if NTDDI_VERSION >= 0x06000100
111  HRESULT WINAPI MxdcGetPDEVAdjustment (HANDLE hPrinter, ULONG cbDevMode, const DEVMODE *pDevMode, ULONG cbIn, const VOID *pvIn, ULONG cbPrintPropertiesCollection, PrintPropertiesCollection *pPrintPropertiesCollection);
112#endif
113
114#ifdef __cplusplus
115}
116#endif
117
118#endif
119#endif