I am watching at this page -> https://msdn.microsoft.com/en-us/library/windows/desktop/dd371301(v=vs.85).aspx
HRESULT CreateStrokeStyle(
[ref] const D2D1_STROKE_STYLE_PROPERTIES &strokeStyleProperties,
[in, optional] const FLOAT *dashes,
UINT dashesCount,
[out] ID2D1StrokeStyle **strokeStyle
);
notice the second optional argument followed by two non-optional ones...how in the world am I supposed to use the function without passing the second argument, if it is on the middle?! x_x