interface __declspec(uuid("FF762ACC-13EC-463A-A29C-FD4B0CD3E019"))
ISupportedSites: public IUnknown {
enum { kVersion = 5 };
// Version number equals to total number of functions within the interface
// (ISupportedSites::kVersion is the current version). New functions are
// appended to the interface. Function signatures are never change. Therefore
// version number is the way to check whether particular function is available
// in the interface
STDMETHOD_(UINT, GetVersion)() = 0;
// Number of supported sites
STDMETHOD_(UINT, GetCount)() = 0;
// Get site name or NULL if index >= GetCount()
STDMETHOD_(BSTR, GetName)(UINT index) = 0;
// Test whether
url can be analyzed for video retrieving. S_FALSE means that
//
url seems from the supported site but not a valid video clip page. When
// S_OK is returned, canonical_url will contain canonical page
url, otherwise
// it will not be changed
// If explicitly == TRUE then S_OK will be returned only if
URL definitely
// points to video page
URL instead of maybe just to some other page from the
// supported site. This can be determined only for few sites, for others need
// page data to determine this
STDMETHOD(Test)(__in LPCWSTR
url, __in BOOL explicitly, __out_opt BSTR* canonical_url) = 0;
// Returns clip start time encoded in
URL, in milliseconds
STDMETHOD_(UINT, GetStartTime)(LPCWSTR
url) = 0;
};