Structs and Interfaces in COM Bindings

Adam Wilson via Digitalmars-d digitalmars-d at puremagic.com
Sun May 18 17:42:23 PDT 2014


Hi guys,

I have been beating my head against this wall for a few days and I am  
having difficult understanding what's going on here. I am building the  
DirectX COM bindings for Aurora and DMD is popping out an "Undefined  
Identifier" error when I use an interface as a member of a struct.  
Consider the following:

public struct DWRITE_GLYPH_RUN {
	IDWriteFontFace fontFace; //Error: Undefined Identifier
	//...
}

// ... More Structs. Followed by some Interfaces.

mixin(uuid!(IDWriteFontFace, "5f49804d-7024-4d43-bfa9-d25984f53849"));
public interface IDWriteFontFace : IUnknown
{
extern(Windows):
	HRESULT GetDesignGlyphMetrics(const(uint*) Indices, uint Count,  
DWRITE_GLYPH_METRICS*
	//...
	void ReleaseFontTable(void* TableContext);
}

//... More Interfaces

mixin(uuid!(IDWriteGdiInterop, "1edd9491-9853-4299-898f-6432983b6f3a"));
public interface IDWriteGdiInterop : IUnknown
{
extern(Windows):
	//...
	HRESULT CreateFontFaceFromHdc(HDC HDC, IDWriteFontFace * FontFace); //  
NOT an error here
	//...
}

I am fighting a bug in 2.065.0 or am I doing something wrong?

Full source: https://github.com/auroragraphics/directx

Any help would be greatly appreciated!

-- 
Adam Wilson
GitHub/IRC: LightBender
Aurora Project Coordinator


More information about the Digitalmars-d mailing list