namespace AnimalLib {
Interface IAnimal
{
void Eat();
void Sleep();
}
Interface IHuman
extends IAnimal
{
void Walk():
void Talk():
}
Class Person
implements IHuman
{
void Eat();
void Sleep();
void Walk():
void Talk():
String GetName();
short GetAge();
}
}
|
[uuid(0000…0000), version(1.0)]
library c:\winnt\system32\mamsvr.dll
{
[uuid(0000…0000)]
interface IAnimal : IUnknown
{
HRESULT Eat();
HRESULT Sleep();
}
[uuid(0000…0000)]
interface IHuman : IUnknown // does not have the methods of IAnimal
{
HRESULT Walk();
HRESULT Talk();
}
[uuid(0000…0000), dual, odl, oleautomation]
interface _Person : IDispatch
{
[id(0x00000000)] HRESULT ToString([out, retval] BSTR* pRetVal);
[id(0x60020000)] HRESULT Init();
[id(0x60020001)] HRESULT GetClass([out, retval] _Class** pRetVal);
[id(0x60020003)] HRESULT Equals([in] _Object* obj, [out, retval] VARIANT_BOOL* pRetVal);
[id(0x60020004)] HRESULT GetHashCode([out, retval] long* pRetVal);
[id(0x60020005)] HRESULT Clone([out, retval] _Object** pRetVal);
[id(0x60020006)] HRESULT Dispatch([in] BSTR name,[in] _Variant** parameters,
[out, retval] _Variant** pRetVal);
[id(0x60020007)] HRESULT Wait();
[id(0x60020008)] HRESULT Wait_2([in] long p1);
[id(0x60020009)] HRESULT Notify()
[id(0x6002000a)] HRESULT NotifyAll();
[id(0x6002000b)] HRESULT Finalize();
[id(0x6002000c)] HRESULT GetObjectContext([out, retval] long* pRetVal);
[id(0x6002000d)] HRESULT Eat();
[id(0x6002000e)] HRESULT Sleep();
[id(0x6002000f)] HRESULT Walk();
[id(0x60020010)] HRESULT Talk();
}
[uuid(0000…0000)]
coclass Person
{
[default] interface _Person;
}
}
|