27 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Factor
		
	
	
USING: help.markup help.syntax io kernel math quotations
 | 
						|
multiline ;
 | 
						|
IN: windows.com.syntax
 | 
						|
 | 
						|
HELP: COM-INTERFACE:
 | 
						|
{ $syntax <"
 | 
						|
COM-INTERFACE: <interface> <parent> <iid>
 | 
						|
    <function-1> ( <params1> )
 | 
						|
    <function-2> ( <params2> )
 | 
						|
    ... ;
 | 
						|
"> }
 | 
						|
{ $description "\nFor the interface " { $snippet "<interface>" } ", a word " { $snippet "<interface>-iid ( -- iid )" } " is defined to push the interface GUID (IID) onto the stack. Words of the form " { $snippet "<interface>::<function>" } " are also defined to invoke each method, as well as the methods inherited from " { $snippet "<parent>" } ". A " { $snippet "<parent>" } " of " { $snippet "f" } " indicates that the interface is a root interface. (Note that COM conventions demand that all interfaces at least inherit from " { $snippet "IUnknown" } ".)\n\nExample:" }
 | 
						|
{ $code <"
 | 
						|
COM-INTERFACE: IUnknown f {00000000-0000-0000-C000-000000000046}
 | 
						|
    HRESULT QueryInterface ( REFGUID iid, void** ppvObject )
 | 
						|
    ULONG AddRef ( )
 | 
						|
    ULONG Release ( ) ;
 | 
						|
 | 
						|
COM-INTERFACE: ISimple IUnknown {216fb341-0eb2-44b1-8edb-60b76e353abc}
 | 
						|
    HRESULT returnOK ( )
 | 
						|
    HRESULT returnError ( ) ;
 | 
						|
 | 
						|
COM-INTERFACE: IInherited ISimple {9620ecec-8438-423b-bb14-86f835aa40dd}
 | 
						|
    int getX ( )
 | 
						|
    void setX ( int newX ) ;
 | 
						|
"> } ;
 |