NGWS SDK Documentation  

This is preliminary documentation and subject to change.
To comment on this topic, please send us email at ngwssdk@microsoft.com. Thanks!

Sample 3

NGWS Runtime Metadata COM Type library
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;
   }
}