本文整理汇总了C#中ComPtr.Dispose方法的典型用法代码示例。如果您正苦于以下问题:C# ComPtr.Dispose方法的具体用法?C# ComPtr.Dispose怎么用?C# ComPtr.Dispose使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ComPtr
的用法示例。
在下文中一共展示了ComPtr.Dispose方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetSymbol
public static ComPtr<IDiaSymbol> GetSymbol(this IDiaSymbol symbol, SymTagEnum symTag, string name, Predicate<IDiaSymbol> filter = null) {
var result = new ComPtr<IDiaSymbol>();
IDiaEnumSymbols enumSymbols;
symbol.findChildren(symTag, name, 1, out enumSymbols);
using (ComPtr.Create(enumSymbols)) {
int n = enumSymbols.count;
if (n == 0) {
Debug.Fail("Symbol '" + name + "' was not found.");
throw new ArgumentException();
}
try {
for (int i = 0; i < n; ++i) {
using (var item = ComPtr.Create(enumSymbols.Item((uint)i))) {
if (filter == null || filter(item.Object)) {
if (result.Object == null) {
result = item.Detach();
} else {
Debug.Fail("Found more than one symbol named '" + name + "' and matching the filter.");
throw new ArgumentException();
}
}
}
}
} catch {
result.Dispose();
throw;
}
}
return result;
}