/// <summary> /// For a given type, analyze all the variables defined by it /// </summary> private void ScanDefinedVariables(ITypeInfo typeInfo, TYPEATTR typeAttributes) { for (int definedVarIndex = 0; definedVarIndex < typeAttributes.cVars; definedVarIndex++) { IntPtr varDescHandleToRelease = IntPtr.Zero; try { ComReference.GetVarDescForVarIndex(typeInfo, definedVarIndex, out VARDESC varDesc, out varDescHandleToRelease); AnalyzeElement(typeInfo, varDesc.elemdescVar); } finally { if (varDescHandleToRelease != IntPtr.Zero) { typeInfo.ReleaseVarDesc(varDescHandleToRelease); } } } }
private void ScanDefinedVariables(ITypeInfo typeInfo, System.Runtime.InteropServices.ComTypes.TYPEATTR typeAttributes) { for (int i = 0; i < typeAttributes.cVars; i++) { IntPtr zero = IntPtr.Zero; try { System.Runtime.InteropServices.ComTypes.VARDESC vardesc; ComReference.GetVarDescForVarIndex(typeInfo, i, out vardesc, out zero); this.AnalyzeElement(typeInfo, vardesc.elemdescVar); } finally { if (zero != IntPtr.Zero) { typeInfo.ReleaseVarDesc(zero); } } } }