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 120