dshow/Filter.cs
(开头部分) 2KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
namespace dshow
{
using System;
using System.Runtime.InteropServices;
using dshow.Core;
/// <summary>
/// Summary description for Filter.
/// </summary>
public class Filter : IComparable
{
// Device name
public readonly string Name;
// Moniker string
public readonly string MonikerString;
// Create new filter from moneker`s string
public Filter(string monikerString)
{
MonikerString = monikerString;
Name = GetName(monikerString);
}
// Create new filter from it's Moniker
internal Filter(UCOMIMoniker moniker)
{
MonikerString = GetMonikerString(moniker);
Name = GetName(moniker);
}
// Get moniker string of the moniker
private string GetMonikerString(UCOMIMoniker moniker)
{
string str;
moniker.GetDisplayName(null, null, out str);
return str;
}
// Get filter name represented by the moniker
private string GetName(UCOMIMoniker moniker)
{
Object bagObj = null;
IPropertyBag bag = null;
try
{
Guid bagId = typeof(IPropertyBag).GUID;
// get property bag of the moniker
moniker.BindToStorage(null, null, ref bagId, out bagObj);
bag = (IPropertyBag) bagObj;
// read FriendlyName
object val = "";
int hr = bag.Read("FriendlyName", ref val, IntPtr.Zero);
if (hr != 0)
Marshal.ThrowExceptionForHR(hr);
// get it as string
后面还有 59 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。