interface ITable; interface ITableEnumEntries; [ helpstring("ITable"), object, pointer_default(unique), uuid(0156742F-62A0-11d1-BC72-00C04FC3092D) ] interface ITable : IUnknown { import "wtypes.idl"; import "ocidl.idl"; typedef enum _LINKCOSTTYPE { HIPRI_ONLY = 0, MONEY_COST_ALLOWED, MESSAGE_SIZE_ALLOWED, NORMAL } LINKCOSTTYPE; HRESULT EnumNextHopEntries( [in] LINKCOSTTYPE Type, [out] ITableEnumEntries **ppEnum); HRESULT QuerySite( [in] LPSTR pszNode, [in,out] DWORD *pdwSiteLen, [out,size_is(*pdwSiteLen)] LPSTR pszSite); HRESULT QuerySourceServer( [in,out] DWORD *pdwServerLen, [out,size_is(*pdwServerLen)] LPSTR pszServer); HRESULT QuerySourceSite( [in,out] DWORD *pdwSiteLen, [out,size_is(*pdwSiteLen)] LPSTR pszSite); HRESULT IsServerInBH( [in] LPSTR pszServer, [in] LPSTR pszBridgeHead); HRESULT IsServerInAnyBH( [in] LPSTR pszServer); HRESULT QueryLinkStatus( [in] LPSTR pszLink, [in] BOOL *pfStatus); }; [ helpstring("ITableEnumEntries"), object, pointer_default(unique), uuid(9164C121-63AF-11d1-99DC-0000860F614C), ] interface ITableEnumEntries : IUnknown { typedef struct _NEXTHOP_ENTRY { LPSTR pszDestination; LPSTR pszNextHop; DWORD dwCost; } NEXTHOP_ENTRY, *LPNEXTHOP_ENTRY; HRESULT Next( [in] ULONG cFetch, [in,out] LPNEXTHOP_ENTRY rgEntry, [out] ULONG *pcFetched); HRESULT Skip( [in] ULONG cItems); HRESULT Reset(void); HRESULT Clone( [out] ITableEnumEntries **ppEnum); HRESULT Count( [out] ULONG *pcItems); } [ version(1.0), helpstring("ITableLib tlb"), uuid(01567430-62A0-11d1-BC72-00C04FC3092D) ] library TableLib { import "wtypes.idl"; import "ocidl.idl"; [ helpstring("Table com class"), uuid(01567431-62A0-11d1-BC72-00C04FC3092D) ] coclass Table { [default] interface ITable; } [ helpstring("TableEnumEntries com class"), uuid(9164C123-63AF-11d1-99DC-0000860F614C) ] coclass TableEnumEntries { [default] interface ITableEnumEntries; } };