aboutsummaryrefslogtreecommitdiff
path: root/x86_64-w64-mingw32/include/mxdc.h
blob: 05d322c4365ab622525cfd36e84b31ab0ef28232 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
/**
 * This file is part of the mingw-w64 runtime package.
 * No warranty is given; refer to the file DISCLAIMER within this package.
 */

#ifndef _MXDC_H_
#define _MXDC_H_

#include <winapifamily.h>

#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)

#ifdef __cplusplus
extern "C" {
#endif

#include <pshpack1.h>

  typedef enum tagMxdcS0PageEnums {
    MXDC_RESOURCE_TTF = 0,
    MXDC_RESOURCE_JPEG = 1,
    MXDC_RESOURCE_PNG = 2,
    MXDC_RESOURCE_TIFF = 3,
    MXDC_RESOURCE_WDP = 4,
    MXDC_RESOURCE_DICTIONARY = 5,
    MXDC_RESOURCE_ICC_PROFILE = 6,
    MXDC_RESOURCE_JPEG_THUMBNAIL = 7,
    MXDC_RESOURCE_PNG_THUMBNAIL = 8,
    MXDC_RESOURCE_MAX
  } MXDC_S0_PAGE_ENUMS;

#if NTDDI_VERSION >= 0x06000100
  typedef enum tagMxdcLandscapeRotationEnums {
    MXDC_LANDSCAPE_ROTATE_NONE = 0,
    MXDC_LANDSCAPE_ROTATE_COUNTERCLOCKWISE_90_DEGREES = 90,
    MXDC_LANDSCAPE_ROTATE_COUNTERCLOCKWISE_270_DEGREES = -90
  } MXDC_LANDSCAPE_ROTATION_ENUMS;

  typedef enum tagMxdcImageTypeEnums {
    MXDC_IMAGETYPE_JPEGHIGH_COMPRESSION = 1,
    MXDC_IMAGETYPE_JPEGMEDIUM_COMPRESSION = 2,
    MXDC_IMAGETYPE_JPEGLOW_COMPRESSION = 3,
    MXDC_IMAGETYPE_PNG = 4
  } MXDC_IMAGE_TYPE_ENUMS;
#endif

  typedef struct tagMxdcEscapeHeader {
    ULONG cbInput;
    ULONG cbOutput;
    ULONG opCode;
  } MXDC_ESCAPE_HEADER_T, *P_MXDC_ESCAPE_HEADER_T;

  typedef struct tagMxdcGetFileNameData {
    ULONG cbOutput;
    wchar_t wszData[1];
  } MXDC_GET_FILENAME_DATA_T, *P_MXDC_GET_FILENAME_DATA_T;

  typedef struct tagMxdcS0PageData {
    DWORD dwSize;
    BYTE bData[1];
  } MXDC_S0PAGE_DATA_T, *P_MXDC_S0PAGE_DATA_T;

  typedef struct tagMxdcXpsS0PageResource {
    DWORD dwSize;
    DWORD dwResourceType;
    BYTE szUri[MAX_PATH];
    DWORD dwDataSize;
    BYTE bData[1];
  } MXDC_XPS_S0PAGE_RESOURCE_T, *P_MXDC_XPS_S0PAGE_RESOURCE_T;

  typedef struct tagMxdcPrintTicketPassthrough {
    DWORD dwDataSize;
    BYTE bData[1];
  } MXDC_PRINTTICKET_DATA_T, *P_MXDC_PRINTTICKET_DATA_T;

  typedef struct tagMxdcPrintTicketEscape {
    MXDC_ESCAPE_HEADER_T mxdcEscape;
    MXDC_PRINTTICKET_DATA_T printTicketData;
  } MXDC_PRINTTICKET_ESCAPE_T, *P_MXDC_PRINTTICKET_ESCAPE_T;

  typedef struct tagMxdcS0PagePassthroughEscape {
    MXDC_ESCAPE_HEADER_T mxdcEscape;
    MXDC_S0PAGE_DATA_T xpsS0PageData;
  } MXDC_S0PAGE_PASSTHROUGH_ESCAPE_T, *P_MXDC_S0PAGE_PASSTHROUGH_ESCAPE_T;

  typedef struct tagMxdcS0PageResourceEscape {
    MXDC_ESCAPE_HEADER_T mxdcEscape;
    MXDC_XPS_S0PAGE_RESOURCE_T xpsS0PageResourcePassthrough;
  } MXDC_S0PAGE_RESOURCE_ESCAPE_T, *P_MXDC_S0PAGE_RESOURCE_ESCAPE_T;

#include <poppack.h>

#define MXDC_ESCAPE 4122

#define MXDCOP_GET_FILENAME 14
#define MXDCOP_PRINTTICKET_FIXED_DOC_SEQ 22
#define MXDCOP_PRINTTICKET_FIXED_DOC 24
#define MXDCOP_PRINTTICKET_FIXED_PAGE 26
#define MXDCOP_SET_S0PAGE 28
#define MXDCOP_SET_S0PAGE_RESOURCE 30
#define MXDCOP_SET_XPSPASSTHRU_MODE 32

#if NTDDI_VERSION >= 0x06000100
#define MXDC_IMAGEABLE_AREA_PROP_NAME_WSTR (L"MxdcImageableArea")
#define MXDC_IMAGE_COMPRESSION_TYPE_PROP_NAME_WSTR (L"MxdcImageCompressionType")
#define MXDC_DOTS_PER_INCH_PROP_NAME_WSTR (L"MxdcDotsPerInch")
#define MXDC_LANDSCAPE_ROTATION_PROP_NAME_WSTR (L"MxdcLandscapeRotation")
#endif

#if NTDDI_VERSION >= 0x06000100
  HRESULT WINAPI MxdcGetPDEVAdjustment (HANDLE hPrinter, ULONG cbDevMode, const DEVMODE *pDevMode, ULONG cbIn, const VOID *pvIn, ULONG cbPrintPropertiesCollection, PrintPropertiesCollection *pPrintPropertiesCollection);
#endif

#ifdef __cplusplus
}
#endif

#endif
#endif