| // Copyright (c) 2010 The WebM project authors. All Rights Reserved. | |
| // | |
| // Use of this source code is governed by a BSD-style license | |
| // that can be found in the LICENSE file in the root of the source | |
| // tree. An additional intellectual property rights grant can be found | |
| // in the file PATENTS. All contributing project authors may | |
| // be found in the AUTHORS file in the root of the source tree. | |
| #pragma once | |
| //#ifndef _WINDOWS_ | |
| //#include <windows.h> | |
| //#endif | |
| #include <oaidl.h> | |
| #include <string> | |
| namespace ComReg | |
| { | |
| enum { guid_buflen = 39 }; //includes braces and terminating NUL | |
| //CHARS_IN_GUID //see strmif.h | |
| GUID GUIDFromString(const wchar_t*); | |
| HRESULT ComRegGetModuleFileName(HMODULE, std::wstring&); | |
| enum ThreadingModel | |
| { | |
| kSingleThreading = -1, //no threading model | |
| kApartment = 0, | |
| kFree, | |
| kBoth | |
| }; | |
| HRESULT RegisterCoclass( | |
| const GUID& clsid, | |
| const wchar_t* friendlyname, | |
| const wchar_t* inprocserver, | |
| const wchar_t* versionindependentprogid, | |
| const wchar_t* progid, | |
| bool insertable, | |
| bool control, //TODO: add category support | |
| ThreadingModel, | |
| const GUID& typelib, | |
| const wchar_t* version, | |
| int toolboxbitmap32); | |
| HRESULT UnRegisterCoclass(const GUID&); | |
| HRESULT RegisterTypeLibResource( | |
| const wchar_t* fullpath, | |
| const wchar_t* helpdir); | |
| HRESULT UnRegisterTypeLibResource(const wchar_t* fullpath); | |
| HRESULT GetTypeLibAttr(const wchar_t*, TLIBATTR&); | |
| //DirectShow | |
| HRESULT RegisterCustomFileType( | |
| const wchar_t* ext, | |
| const GUID& filter, | |
| const GUID& mediatype, | |
| const GUID& subtype); | |
| HRESULT UnRegisterCustomFileType( | |
| const wchar_t* ext, | |
| const GUID& filter); | |
| HRESULT RegisterCustomFileType( | |
| const wchar_t* const* argv, //array of check-byte strings | |
| const GUID& filter, | |
| const GUID& mediatype, | |
| const GUID& subtype); | |
| HRESULT RegisterProtocolSource( | |
| const wchar_t* protocol, | |
| const wchar_t* ext, | |
| const GUID& filter); | |
| HRESULT UnRegisterProtocolSource( | |
| const wchar_t* protocol, | |
| const wchar_t* ext, | |
| const GUID& filter); | |
| //Media Foundation | |
| #if (_WIN32_WINNT >= 0x0601) | |
| HRESULT RegisterByteStreamHandler( | |
| const wchar_t* ext, | |
| const GUID& clsid, | |
| const wchar_t* friendly_name); | |
| HRESULT UnRegisterByteStreamHandler( | |
| const wchar_t* ext, | |
| const GUID& clsid); | |
| #endif | |
| } |