GUID: literals for COM

db4
U-VICTORIA\Administrator 2008-07-11 21:18:32 -07:00
parent bc786e1552
commit 894907d84d
3 changed files with 35 additions and 30 deletions

View File

@ -16,10 +16,10 @@ COM-INTERFACE: IUnrelated IUnknown {b06ac3f4-30e4-406b-a7cd-c29cead4552c}
int xPlus ( int y ) int xPlus ( int y )
int xMulAdd ( int mul, int add ) ; int xMulAdd ( int mul, int add ) ;
"{216fb341-0eb2-44b1-8edb-60b76e353abc}" string>guid 1array [ ISimple-iid ] unit-test { GUID: {216fb341-0eb2-44b1-8edb-60b76e353abc} } [ ISimple-iid ] unit-test
"{9620ecec-8438-423b-bb14-86f835aa40dd}" string>guid 1array [ IInherited-iid ] unit-test { GUID: {9620ecec-8438-423b-bb14-86f835aa40dd} } [ IInherited-iid ] unit-test
"{00000000-0000-0000-C000-000000000046}" string>guid 1array [ IUnknown-iid ] unit-test { GUID: {00000000-0000-0000-C000-000000000046} } [ IUnknown-iid ] unit-test
"{b06ac3f4-30e4-406b-a7cd-c29cead4552c}" string>guid 1array [ IUnrelated-iid ] unit-test { GUID: {b06ac3f4-30e4-406b-a7cd-c29cead4552c} } [ IUnrelated-iid ] unit-test
{ (( -- iid )) } [ \ ISimple-iid stack-effect ] unit-test { (( -- iid )) } [ \ ISimple-iid stack-effect ] unit-test
{ (( this -- HRESULT )) } [ \ ISimple::returnOK stack-effect ] unit-test { (( this -- HRESULT )) } [ \ ISimple::returnOK stack-effect ] unit-test

56
extra/windows/com/syntax/syntax-docs.factor Normal file → Executable file
View File

@ -1,26 +1,30 @@
USING: help.markup help.syntax io kernel math quotations USING: help.markup help.syntax io kernel math quotations
multiline ; multiline ;
IN: windows.com.syntax IN: windows.com.syntax
HELP: COM-INTERFACE: HELP: GUID:
{ $syntax <" { $syntax "GUID: {01234567-89ab-cdef-0123-456789abcdef}" }
COM-INTERFACE: <interface> <parent> <iid> { $description "\nCreate a COM globally-unique identifier (GUID) literal at parse time, and push it onto the data stack." } ;
<function-1> ( <params1> )
<function-2> ( <params2> ) HELP: COM-INTERFACE:
... ; { $syntax <"
"> } COM-INTERFACE: <interface> <parent> <iid>
{ $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:" } <function-1> ( <params1> )
{ $code <" <function-2> ( <params2> )
COM-INTERFACE: IUnknown f {00000000-0000-0000-C000-000000000046} ... ;
HRESULT QueryInterface ( REFGUID iid, void** ppvObject ) "> }
ULONG AddRef ( ) { $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:" }
ULONG Release ( ) ; { $code <"
COM-INTERFACE: IUnknown f {00000000-0000-0000-C000-000000000046}
COM-INTERFACE: ISimple IUnknown {216fb341-0eb2-44b1-8edb-60b76e353abc} HRESULT QueryInterface ( REFGUID iid, void** ppvObject )
HRESULT returnOK ( ) ULONG AddRef ( )
HRESULT returnError ( ) ; ULONG Release ( ) ;
COM-INTERFACE: IInherited ISimple {9620ecec-8438-423b-bb14-86f835aa40dd} COM-INTERFACE: ISimple IUnknown {216fb341-0eb2-44b1-8edb-60b76e353abc}
int getX ( ) HRESULT returnOK ( )
void setX ( int newX ) ; HRESULT returnError ( ) ;
"> } ;
COM-INTERFACE: IInherited ISimple {9620ecec-8438-423b-bb14-86f835aa40dd}
int getX ( )
void setX ( int newX ) ;
"> } ;

View File

@ -100,3 +100,4 @@ PRIVATE>
define-words-for-com-interface define-words-for-com-interface
; parsing ; parsing
: GUID: scan string>guid parsed ; parsing