blob: 054ca08c5fbe0f785acdca59b111613ad5056879 [file] [log] [blame]
// 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.
#ifndef WEBMDSHOW_COMMON_COMREG_H_
#define WEBMDSHOW_COMMON_COMREG_H_
#include <oaidl.h>
#include <strmif.h>
#include <string>
namespace ComReg {
enum { guid_buflen = CHARS_IN_GUID }; // includes braces and terminating NUL
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
}
#endif // WEBMDSHOW_COMMON_COMREG_H_