Using Direct Interface Block definitions with Classes, and am running into an error when utilizing a "UserWritten" Inherit statement in a Direct Interface Block.
The Error, a "CLASS Expected" error associated with the use of an Inherit Statement in a Direct Interface Block, does not occur when the Direct Interface Block is excluded. (Though the same "UserWritten" Inherit Statement is still included in the derived Class implementation code.)
Example Code:
It other words, it (the compiler) is happy with "INHERIT CLASS1, CLASS1Interface" as implementation code but not as definition code that is part of a Direct Interface Block. Any insights as to why the Inherit Statement "INHERIT CLASS1, CLASS1Interface" compiles happily until a Direct Interface Block definition is included?
The Error, a "CLASS Expected" error associated with the use of an Inherit Statement in a Direct Interface Block, does not occur when the Direct Interface Block is excluded. (Though the same "UserWritten" Inherit Statement is still included in the derived Class implementation code.)
Example Code:
Code:
INTERFACE CLASS1Interface
INHERIT IUNKNOWN
Method aRoutine() as Long
END INTERFACE
CLASS CLASS1
INTERFACE CLASS1Interface
INHERIT IUNKNOWN
Method aRoutine() as Long
End Method
END INTERFACE
END CLASS
'Code compiles as shown with the Direct
'Interface Block below commented out. However,
'if conditional Direct Interface Block
'below is included in the compile,
'changing #if(0) to #if(1), then the
'compiler complains...
' "CLASS Expected"
' Compiler complains about the
' inheritance ONLY with the
' Direct Interface Block below active.
'--
#if(0)
INTERFACE CLASS2Interface
INHERIT CLASS1, CLASS1Interface '<-Not Happy
Method aTest() as Long
END INTERFACE
#endif
CLASS CLASS2
INTERFACE CLASS2Interface
INHERIT CLASS1, CLASS1Interface '<- Happy
Method aTest() as Long
End Method
END INTERFACE
END CLASS
function pbmain()
waitkey$
end Function