summaryrefslogtreecommitdiff
path: root/vendor/winapi/src/um/d2d1svg.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/winapi/src/um/d2d1svg.rs')
-rw-r--r--vendor/winapi/src/um/d2d1svg.rs411
1 files changed, 411 insertions, 0 deletions
diff --git a/vendor/winapi/src/um/d2d1svg.rs b/vendor/winapi/src/um/d2d1svg.rs
new file mode 100644
index 0000000..33e133e
--- /dev/null
+++ b/vendor/winapi/src/um/d2d1svg.rs
@@ -0,0 +1,411 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Mappings for the contents of d2d1svg.h
+use ctypes::c_void;
+use shared::basetsd::UINT32;
+use shared::guiddef::REFIID;
+use shared::minwindef::{BOOL, FLOAT};
+use shared::ntdef::{PCWSTR, PWSTR, WCHAR};
+use shared::winerror::HRESULT;
+use um::d2d1::{
+ D2D1_CAP_STYLE_FLAT, D2D1_CAP_STYLE_ROUND, D2D1_CAP_STYLE_SQUARE, D2D1_COLOR_F, D2D1_FILL_MODE,
+ D2D1_LINE_JOIN_BEVEL, D2D1_LINE_JOIN_MITER_OR_BEVEL, D2D1_LINE_JOIN_ROUND, D2D1_POINT_2F,
+ D2D1_SIZE_F, ID2D1Resource, ID2D1ResourceVtbl
+};
+use um::d2d1_1::ID2D1PathGeometry1;
+use um::objidlbase::IStream;
+ENUM!{enum D2D1_SVG_PAINT_TYPE {
+ D2D1_SVG_PAINT_TYPE_NONE = 0,
+ D2D1_SVG_PAINT_TYPE_COLOR = 1,
+ D2D1_SVG_PAINT_TYPE_CURRENT_COLOR = 2,
+ D2D1_SVG_PAINT_TYPE_URI = 3,
+ D2D1_SVG_PAINT_TYPE_URI_NONE = 4,
+ D2D1_SVG_PAINT_TYPE_URI_COLOR = 5,
+ D2D1_SVG_PAINT_TYPE_URI_CURRENT_COLOR = 6,
+}}
+ENUM!{enum D2D1_SVG_LENGTH_UNITS {
+ D2D1_SVG_LENGTH_UNITS_NUMBER = 0,
+ D2D1_SVG_LENGTH_UNITS_PERCENTAGE = 1,
+}}
+ENUM!{enum D2D1_SVG_DISPLAY {
+ D2D1_SVG_DISPLAY_INLINE = 0,
+ D2D1_SVG_DISPLAY_NONE = 1,
+}}
+ENUM!{enum D2D1_SVG_VISIBILITY {
+ D2D1_SVG_VISIBILITY_VISIBLE = 0,
+ D2D1_SVG_VISIBILITY_HIDDEN = 1,
+}}
+ENUM!{enum D2D1_SVG_OVERFLOW {
+ D2D1_SVG_OVERFLOW_VISIBLE = 0,
+ D2D1_SVG_OVERFLOW_HIDDEN = 1,
+}}
+ENUM!{enum D2D1_SVG_LINE_CAP {
+ D2D1_SVG_LINE_CAP_BUTT = D2D1_CAP_STYLE_FLAT,
+ D2D1_SVG_LINE_CAP_SQUARE = D2D1_CAP_STYLE_SQUARE,
+ D2D1_SVG_LINE_CAP_ROUND = D2D1_CAP_STYLE_ROUND,
+}}
+ENUM!{enum D2D1_SVG_LINE_JOIN {
+ D2D1_SVG_LINE_JOIN_BEVEL = D2D1_LINE_JOIN_BEVEL,
+ D2D1_SVG_LINE_JOIN_MITER = D2D1_LINE_JOIN_MITER_OR_BEVEL,
+ D2D1_SVG_LINE_JOIN_ROUND = D2D1_LINE_JOIN_ROUND,
+}}
+ENUM!{enum D2D1_SVG_ASPECT_ALIGN {
+ D2D1_SVG_ASPECT_ALIGN_NONE = 0,
+ D2D1_SVG_ASPECT_ALIGN_X_MIN_Y_MIN = 1,
+ D2D1_SVG_ASPECT_ALIGN_X_MID_Y_MIN = 2,
+ D2D1_SVG_ASPECT_ALIGN_X_MAX_Y_MIN = 3,
+ D2D1_SVG_ASPECT_ALIGN_X_MIN_Y_MID = 4,
+ D2D1_SVG_ASPECT_ALIGN_X_MID_Y_MID = 5,
+ D2D1_SVG_ASPECT_ALIGN_X_MAX_Y_MID = 6,
+ D2D1_SVG_ASPECT_ALIGN_X_MIN_Y_MAX = 7,
+ D2D1_SVG_ASPECT_ALIGN_X_MID_Y_MAX = 8,
+ D2D1_SVG_ASPECT_ALIGN_X_MAX_Y_MAX = 9,
+}}
+ENUM!{enum D2D1_SVG_ASPECT_SCALING {
+ D2D1_SVG_ASPECT_SCALING_MEET = 0,
+ D2D1_SVG_ASPECT_SCALING_SLICE = 1,
+}}
+ENUM!{enum D2D1_SVG_PATH_COMMAND {
+ D2D1_SVG_PATH_COMMAND_CLOSE_PATH = 0,
+ D2D1_SVG_PATH_COMMAND_MOVE_ABSOLUTE = 1,
+ D2D1_SVG_PATH_COMMAND_MOVE_RELATIVE = 2,
+ D2D1_SVG_PATH_COMMAND_LINE_ABSOLUTE = 3,
+ D2D1_SVG_PATH_COMMAND_LINE_RELATIVE = 4,
+ D2D1_SVG_PATH_COMMAND_CUBIC_ABSOLUTE = 5,
+ D2D1_SVG_PATH_COMMAND_CUBIC_RELATIVE = 6,
+ D2D1_SVG_PATH_COMMAND_QUADRADIC_ABSOLUTE = 7,
+ D2D1_SVG_PATH_COMMAND_QUADRADIC_RELATIVE = 8,
+ D2D1_SVG_PATH_COMMAND_ARC_ABSOLUTE = 9,
+ D2D1_SVG_PATH_COMMAND_ARC_RELATIVE = 10,
+ D2D1_SVG_PATH_COMMAND_HORIZONTAL_ABSOLUTE = 11,
+ D2D1_SVG_PATH_COMMAND_HORIZONTAL_RELATIVE = 12,
+ D2D1_SVG_PATH_COMMAND_VERTICAL_ABSOLUTE = 13,
+ D2D1_SVG_PATH_COMMAND_VERTICAL_RELATIVE = 14,
+ D2D1_SVG_PATH_COMMAND_CUBIC_SMOOTH_ABSOLUTE = 15,
+ D2D1_SVG_PATH_COMMAND_CUBIC_SMOOTH_RELATIVE = 16,
+ D2D1_SVG_PATH_COMMAND_QUADRADIC_SMOOTH_ABSOLUTE = 17,
+ D2D1_SVG_PATH_COMMAND_QUADRADIC_SMOOTH_RELATIVE = 18,
+}}
+ENUM!{enum D2D1_SVG_UNIT_TYPE {
+ D2D1_SVG_UNIT_TYPE_USER_SPACE_ON_USE = 0,
+ D2D1_SVG_UNIT_TYPE_OBJECT_BOUNDING_BOX = 1,
+}}
+ENUM!{enum D2D1_SVG_ATTRIBUTE_STRING_TYPE {
+ D2D1_SVG_ATTRIBUTE_STRING_TYPE_SVG = 0,
+ D2D1_SVG_ATTRIBUTE_STRING_TYPE_ID = 1,
+}}
+ENUM!{enum D2D1_SVG_ATTRIBUTE_POD_TYPE {
+ D2D1_SVG_ATTRIBUTE_POD_TYPE_FLOAT = 0,
+ D2D1_SVG_ATTRIBUTE_POD_TYPE_COLOR = 1,
+ D2D1_SVG_ATTRIBUTE_POD_TYPE_FILL_MODE = 2,
+ D2D1_SVG_ATTRIBUTE_POD_TYPE_DISPLAY = 3,
+ D2D1_SVG_ATTRIBUTE_POD_TYPE_OVERFLOW = 4,
+ D2D1_SVG_ATTRIBUTE_POD_TYPE_LINE_CAP = 5,
+ D2D1_SVG_ATTRIBUTE_POD_TYPE_LINE_JOIN = 6,
+ D2D1_SVG_ATTRIBUTE_POD_TYPE_VISIBILITY = 7,
+ D2D1_SVG_ATTRIBUTE_POD_TYPE_MATRIX = 8,
+ D2D1_SVG_ATTRIBUTE_POD_TYPE_UNIT_TYPE = 9,
+ D2D1_SVG_ATTRIBUTE_POD_TYPE_EXTEND_MODE = 10,
+ D2D1_SVG_ATTRIBUTE_POD_TYPE_PRESERVE_ASPECT_RATIO = 11,
+ D2D1_SVG_ATTRIBUTE_POD_TYPE_VIEWBOX = 12,
+ D2D1_SVG_ATTRIBUTE_POD_TYPE_LENGTH = 13,
+}}
+STRUCT!{struct D2D1_SVG_LENGTH {
+ value: FLOAT,
+ units: D2D1_SVG_LENGTH_UNITS,
+}}
+STRUCT!{struct D2D1_SVG_PRESERVE_ASPECT_RATIO {
+ defer: BOOL,
+ align: D2D1_SVG_ASPECT_ALIGN,
+ meetOrSlice: D2D1_SVG_ASPECT_SCALING,
+}}
+STRUCT!{struct D2D1_SVG_VIEWBOX {
+ x: FLOAT,
+ y: FLOAT,
+ width: FLOAT,
+ height: FLOAT,
+}}
+DEFINE_GUID!{IID_ID2D1SvgAttribute,
+ 0xc9cdb0dd, 0xf8c9, 0x4e70, 0xb7, 0xc2, 0x30, 0x1c, 0x80, 0x29, 0x2c, 0x5e}
+DEFINE_GUID!{IID_ID2D1SvgPaint,
+ 0xd59bab0a, 0x68a2, 0x455b, 0xa5, 0xdc, 0x9e, 0xb2, 0x85, 0x4e, 0x24, 0x90}
+DEFINE_GUID!{IID_ID2D1SvgStrokeDashArray,
+ 0xf1c0ca52, 0x92a3, 0x4f00, 0xb4, 0xce, 0xf3, 0x56, 0x91, 0xef, 0xd9, 0xd9}
+DEFINE_GUID!{IID_ID2D1SvgPointCollection,
+ 0x9dbe4c0d, 0x3572, 0x4dd9, 0x98, 0x25, 0x55, 0x30, 0x81, 0x3b, 0xb7, 0x12}
+DEFINE_GUID!{IID_ID2D1SvgPathData,
+ 0xc095e4f4, 0xbb98, 0x43d6, 0x97, 0x45, 0x4d, 0x1b, 0x84, 0xec, 0x98, 0x88}
+DEFINE_GUID!{IID_ID2D1SvgElement,
+ 0xac7b67a6, 0x183e, 0x49c1, 0xa8, 0x23, 0x0e, 0xbe, 0x40, 0xb0, 0xdb, 0x29}
+DEFINE_GUID!{IID_ID2D1SvgDocument,
+ 0x86b88e4d, 0xafa4, 0x4d7b, 0x88, 0xe4, 0x68, 0xa5, 0x1c, 0x4a, 0x0a, 0xec}
+RIDL!{#[uuid(0xc9cdb0dd, 0xf8c9, 0x4e70, 0xb7, 0xc2, 0x30, 0x1c, 0x80, 0x29, 0x2c, 0x5e)]
+interface ID2D1SvgAttribute(ID2D1SvgAttributeVtbl): ID2D1Resource(ID2D1ResourceVtbl) {
+ fn GetElement(
+ element: *mut *mut ID2D1SvgElement,
+ ) -> (),
+ fn Clone(
+ attribute: *mut *mut ID2D1SvgAttribute,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0xd59bab0a, 0x68a2, 0x455b, 0xa5, 0xdc, 0x9e, 0xb2, 0x85, 0x4e, 0x24, 0x90)]
+interface ID2D1SvgPaint(ID2D1SvgPaintVtbl): ID2D1SvgAttribute(ID2D1SvgAttributeVtbl) {
+ fn SetPaintType(
+ paintType: D2D1_SVG_PAINT_TYPE,
+ ) -> HRESULT,
+ fn GetPaintType() -> D2D1_SVG_PAINT_TYPE,
+ fn SetColor(
+ color: D2D1_COLOR_F,
+ ) -> HRESULT,
+ fn GetColor(
+ color: *mut D2D1_COLOR_F,
+ ) -> (),
+ fn SetId(
+ id: PCWSTR,
+ ) -> HRESULT,
+ fn GetId(
+ id: PWSTR,
+ idCount: UINT32,
+ ) -> HRESULT,
+ fn GetIdLength() -> UINT32,
+}}
+RIDL!{#[uuid(0xf1c0ca52, 0x92a3, 0x4f00, 0xb4, 0xce, 0xf3, 0x56, 0x91, 0xef, 0xd9, 0xd9)]
+interface ID2D1SvgStrokeDashArray(ID2D1SvgStrokeDashArrayVtbl):
+ ID2D1SvgAttribute(ID2D1SvgAttributeVtbl) {
+ fn RemoveDashesAtEnd(
+ dashesCount: UINT32,
+ ) -> HRESULT,
+ fn UpdateDashes_1(
+ dashes: *const D2D1_SVG_LENGTH,
+ dashesCount: UINT32,
+ startIndex: UINT32,
+ ) -> HRESULT,
+ fn UpdateDashes_2(
+ dashes: *const FLOAT,
+ dashesCount: UINT32,
+ startIndex: UINT32,
+ ) -> HRESULT,
+ fn GetDashes_1(
+ dashes: *mut D2D1_SVG_LENGTH,
+ dashesCount: UINT32,
+ startIndex: UINT32,
+ ) -> HRESULT,
+ fn GetDashes_2(
+ dashes: *mut FLOAT,
+ dashesCount: UINT32,
+ startIndex: UINT32,
+ ) -> HRESULT,
+ fn GetDashesCount() -> UINT32,
+}}
+RIDL!{#[uuid(0x9dbe4c0d, 0x3572, 0x4dd9, 0x98, 0x25, 0x55, 0x30, 0x81, 0x3b, 0xb7, 0x12)]
+interface ID2D1SvgPointCollection(ID2D1SvgPointCollectionVtbl):
+ ID2D1SvgAttribute(ID2D1SvgAttributeVtbl) {
+ fn RemovePointsAtEnd(
+ pointsCount: UINT32,
+ ) -> HRESULT,
+ fn UpdatePoints(
+ points: *const D2D1_POINT_2F,
+ pointsCount: UINT32,
+ startIndex: UINT32,
+ ) -> HRESULT,
+ fn GetPoints(
+ points: *mut D2D1_POINT_2F,
+ pointsCount: UINT32,
+ startIndex: UINT32,
+ ) -> HRESULT,
+ fn GetPointsCount() -> UINT32,
+}}
+RIDL!{#[uuid(0xc095e4f4, 0xbb98, 0x43d6, 0x97, 0x45, 0x4d, 0x1b, 0x84, 0xec, 0x98, 0x88)]
+interface ID2D1SvgPathData(ID2D1SvgPathDataVtbl): ID2D1SvgAttribute(ID2D1SvgAttributeVtbl) {
+ fn RemoveSegmentDataAtEnd(
+ dataCount: UINT32,
+ ) -> HRESULT,
+ fn UpdateSegmentData(
+ data: *const FLOAT,
+ dataCount: UINT32,
+ startIndex: UINT32,
+ ) -> HRESULT,
+ fn GetSegmentData(
+ data: *mut FLOAT,
+ dataCount: UINT32,
+ startIndex: UINT32,
+ ) -> HRESULT,
+ fn GetSegmentDataCount() -> UINT32,
+ fn RemoveCommandsAtEnd(
+ commandsCount: UINT32,
+ ) -> HRESULT,
+ fn UpdateCommands(
+ commands: *const D2D1_SVG_PATH_COMMAND,
+ commandsCount: UINT32,
+ startIndex: UINT32,
+ ) -> HRESULT,
+ fn GetCommands(
+ commands: *mut D2D1_SVG_PATH_COMMAND,
+ commandsCount: UINT32,
+ startIndex: UINT32,
+ ) -> HRESULT,
+ fn GetCommandsCount() -> UINT32,
+ fn CreatePathGeometry(
+ fillMode: D2D1_FILL_MODE,
+ pathGeometry: *mut *mut ID2D1PathGeometry1,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0xac7b67a6, 0x183e, 0x49c1, 0xa8, 0x23, 0x0e, 0xbe, 0x40, 0xb0, 0xdb, 0x29)]
+interface ID2D1SvgElement(ID2D1SvgElementVtbl): ID2D1Resource(ID2D1ResourceVtbl) {
+ fn GetDocument(
+ document: *mut *mut ID2D1SvgDocument,
+ ) -> (),
+ fn GetTagName(
+ name: PWSTR,
+ nameCount: UINT32,
+ ) -> HRESULT,
+ fn GetTagNameLength() -> UINT32,
+ fn IsTextContent() -> BOOL,
+ fn GetParent(
+ parent: *mut *mut ID2D1SvgElement,
+ ) -> (),
+ fn HasChildren() -> BOOL,
+ fn GetFirstChild(
+ child: *mut *mut ID2D1SvgElement,
+ ) -> (),
+ fn GetLastChild(
+ child: *mut *mut ID2D1SvgElement,
+ ) -> (),
+ fn GetPreviousChild(
+ referenceChild: *mut ID2D1SvgElement,
+ previousChild: *mut *mut ID2D1SvgElement,
+ ) -> HRESULT,
+ fn GetNextChild(
+ referenceChild: *mut ID2D1SvgElement,
+ nextChild: *mut *mut ID2D1SvgElement,
+ ) -> HRESULT,
+ fn InsertChildBefore(
+ newChild: *mut ID2D1SvgElement,
+ referenceChild: *mut ID2D1SvgElement,
+ ) -> HRESULT,
+ fn AppendChild(
+ newChild: *mut ID2D1SvgElement,
+ ) -> HRESULT,
+ fn ReplaceChild(
+ newChild: *mut ID2D1SvgElement,
+ oldChild: *mut ID2D1SvgElement,
+ ) -> HRESULT,
+ fn RemoveChild(
+ oldChild: *mut ID2D1SvgElement,
+ ) -> HRESULT,
+ fn IsAttributeSpecified(
+ name: PCWSTR, inherited: *mut BOOL,
+ ) -> BOOL,
+ fn GetSpecifiedAttributeCount() -> UINT32,
+ fn GetSpecifiedAttributeName(
+ index: UINT32,
+ name: PWSTR,
+ nameCount: UINT32,
+ inherited: *mut BOOL,
+ ) -> HRESULT,
+ fn GetSpecifiedAttributeNameLength(
+ index: UINT32,
+ nameLength: *mut UINT32,
+ inherited: *mut BOOL,
+ ) -> HRESULT,
+ fn RemoveAttribute(
+ name: PCWSTR,
+ ) -> HRESULT,
+ fn SetTextValue(
+ name: *const WCHAR,
+ nameCount: UINT32,
+ ) -> HRESULT,
+ fn GetTextValue(
+ name: PWSTR,
+ nameCount: UINT32,
+ ) -> HRESULT,
+ fn GetTextValueLength() -> UINT32,
+ fn SetAttributeValue_1(
+ name: PCWSTR,
+ value: *mut ID2D1SvgAttribute,
+ ) -> HRESULT,
+ fn SetAttributeValue_2(
+ name: PCWSTR,
+ type_: D2D1_SVG_ATTRIBUTE_POD_TYPE,
+ value: *const c_void,
+ valueSizeInBytes: UINT32,
+ ) -> HRESULT,
+ fn SetAttributeValue_3(
+ name: PCWSTR,
+ type_: D2D1_SVG_ATTRIBUTE_STRING_TYPE,
+ value: PCWSTR,
+ ) -> HRESULT,
+ fn GetAttributeValue_1(
+ name: PCWSTR,
+ riid: REFIID,
+ value: *mut *mut c_void,
+ ) -> HRESULT,
+ fn GetAttributeValue_2(
+ name: PCWSTR,
+ type_: D2D1_SVG_ATTRIBUTE_POD_TYPE,
+ value: *mut c_void,
+ valueSizeInBytes: UINT32,
+ ) -> HRESULT,
+ fn GetAttributeValue_3(
+ name: PCWSTR,
+ type_: D2D1_SVG_ATTRIBUTE_STRING_TYPE,
+ value: PWSTR,
+ valueCount: UINT32,
+ ) -> HRESULT,
+ fn GetAttributeValueLength(
+ name: PCWSTR,
+ type_: D2D1_SVG_ATTRIBUTE_STRING_TYPE,
+ valueLength: *mut UINT32,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0x86b88e4d, 0xafa4, 0x4d7b, 0x88, 0xe4, 0x68, 0xa5, 0x1c, 0x4a, 0x0a, 0xec)]
+interface ID2D1SvgDocument(ID2D1SvgDocumentVtbl): ID2D1Resource(ID2D1ResourceVtbl) {
+ fn SetViewportSize(
+ viewportSize: D2D1_SIZE_F,
+ ) -> HRESULT,
+ fn GetViewportSize() -> D2D1_SIZE_F,
+ fn SetRoot(
+ root: *mut ID2D1SvgElement,
+ ) -> HRESULT,
+ fn GetRoot(
+ root: *mut *mut ID2D1SvgElement,
+ ) -> (),
+ fn FindElementById(
+ id: PCWSTR,
+ svgElement: *mut *mut ID2D1SvgElement,
+ ) -> HRESULT,
+ fn Serialize(
+ outputXmlStream: *mut IStream,
+ subtree: *mut ID2D1SvgElement,
+ ) -> HRESULT,
+ fn Deserialize(
+ inputXmlStream: *mut IStream,
+ subtree: *mut *mut ID2D1SvgElement,
+ ) -> HRESULT,
+ fn CreatePaint(
+ paintType: D2D1_SVG_PAINT_TYPE,
+ color: *const D2D1_COLOR_F,
+ id: PCWSTR,
+ paint: *mut *mut ID2D1SvgPaint,
+ ) -> HRESULT,
+ fn CreateStrokeDashArray(
+ dashes: *const D2D1_SVG_LENGTH,
+ dashesCount: UINT32,
+ strokeDashArray: *mut *mut ID2D1SvgStrokeDashArray,
+ ) -> HRESULT,
+ fn CreatePointCollection(
+ points: *const D2D1_POINT_2F,
+ pountsCount: UINT32,
+ pointCollection: *mut ID2D1SvgPointCollection,
+ ) -> HRESULT,
+ fn CreatePathData(
+ segmentData: *const FLOAT,
+ segmentDataCount: UINT32,
+ commands: *const D2D1_SVG_PATH_COMMAND,
+ commandsCount: UINT32,
+ pathData: *mut *mut ID2D1SvgPathData,
+ ) -> HRESULT,
+}}