واجهة IMetaDataImport
قم بتوفير طرق من أجل استيراد ومعالجة بيانات التعريف الموجود من ملف محمول تنفيذي (PE) أو أي مصدر آخر، مثل مكتبة نوع أو ثنائي بيانات تعريف مستقل، وقت التشغيل.
interface IMetaDataImport : IUnknown {
void CloseEnum (
HCORENUM hEnum
);
HRESULT CountEnum (
HCORENUM hEnum,
ULONG *pulCount
);
HRESULT EnumCustomAttributes (
HCORENUM *phEnum,
mdToken tk,
mdToken tkType,
mdCustomAttribute rCustomAttributes[],
ULONG cMax,
ULONG *pcCustomAttributes
);
HRESULT EnumEvents (
HCORENUM *phEnum,
mdTypeDef td,
mdEvent rEvents[],
ULONG cMax,
ULONG *pcEvents
);
HRESULT EnumFields (
HCORENUM *phEnum,
mdTypeDef cl,
mdFieldDef rFields[],
ULONG cMax,
ULONG *pcTokens
);
HRESULT EnumFieldsWithName (
HCORENUM *phEnum,
mdTypeDef cl,
LPCWSTR szName,
mdFieldDef rFields[],
ULONG cMax,
ULONG *pcTokens
);
HRESULT EnumInterfaceImpls (
HCORENUM *phEnum,
mdTypeDef td,
mdInterfaceImpl rImpls[],
ULONG cMax,
ULONG* pcImpls
);
HRESULT EnumMemberRefs (
HCORENUM *phEnum,
mdToken tkParent,
mdMemberRef rMemberRefs[],
ULONG cMax,
ULONG *pcTokens
);
HRESULT EnumMembers (
HCORENUM *phEnum,
mdTypeDef cl,
mdToken rMembers[],
ULONG cMax,
ULONG *pcTokens
);
HRESULT EnumMembersWithName (
HCORENUM *phEnum,
mdTypeDef cl,
LPCWSTR szName,
mdToken rMembers[],
ULONG cMax,
ULONG *pcTokens
);
HRESULT EnumMethodImpls (
HCORENUM *phEnum,
mdTypeDef td,
mdToken rMethodBody[],
mdToken rMethodDecl[],
ULONG cMax,
ULONG *pcTokens
);
HRESULT EnumMethods (
HCORENUM *phEnum,
mdTypeDef cl,
mdMethodDef rMethods[],
ULONG cMax,
ULONG *pcTokens
);
HRESULT EnumMethodSemantics (
HCORENUM *phEnum,
mdMethodDef mb,
mdToken rEventProp[],
ULONG cMax,
ULONG *pcEventProp
);
HRESULT EnumMethodsWithName (
HCORENUM *phEnum,
mdTypeDef cl,
LPCWSTR szName,
mdMethodDef rMethods[],
ULONG cMax,
ULONG *pcTokens
);
HRESULT EnumModuleRefs (
HCORENUM *phEnum,
mdModuleRef rModuleRefs[],
ULONG cMax,
ULONG *pcModuleRefs
);
HRESULT EnumParams (
HCORENUM *phEnum,
mdMethodDef mb,
mdParamDef rParams[],
ULONG cMax,
ULONG *pcTokens
);
HRESULT EnumPermissionSets
HCORENUM *phEnum,
mdToken tk,
DWORD dwActions,
mdPermission rPermission[],
ULONG cMax,
ULONG *pcTokens
);
HRESULT EnumProperties (
HCORENUM *phEnum,
mdTypeDef td,
mdProperty rProperties[],
ULONG cMax,
ULONG *pcProperties
);
HRESULT EnumSignatures (
HCORENUM *phEnum,
mdSignature rSignatures[],
ULONG cMax,
ULONG *pcSignatures
);
HRESULT EnumTypeDefs (
HCORENUM *phEnum,
mdTypeDef rTypeDefs[],
ULONG cMax,
ULONG *pcTypeDefs
);
HRESULT EnumTypeRefs (
HCORENUM *phEnum,
mdTypeRef rTypeRefs[],
ULONG cMax,
ULONG *pcTypeRefs
);
HRESULT EnumTypeSpecs (
HCORENUM *phEnum,
mdTypeSpec rTypeSpecs[],
ULONG cMax,
ULONG *pcTypeSpecs
);
HRESULT EnumUnresolvedMethods (
HCORENUM *phEnum,
mdToken rMethods[],
ULONG cMax,
ULONG *pcTokens
);
HRESULT EnumUserStrings (
HCORENUM *phEnum,
mdString rStrings[],
ULONG cMax,
ULONG *pcStrings
);
HRESULT FindField (
mdTypeDef td,
LPCWSTR szName,
PCCOR_SIGNATURE pvSigBlob,
ULONG cbSigBlob,
mdFieldDef *pmb
);
HRESULT FindMember (
mdTypeDef td,
LPCWSTR szName,
PCCOR_SIGNATURE pvSigBlob,
ULONG cbSigBlob,
mdToken *pmb
);
HRESULT FindMemberRef (
mdTypeRef td,
LPCWSTR szName,
PCCOR_SIGNATURE pvSigBlob,
ULONG cbSigBlob,
mdMemberRef *pmr
);
HRESULT FindMethod (
mdTypeDef td,
LPCWSTR szName,
PCCOR_SIGNATURE pvSigBlob,
ULONG cbSigBlob,
mdMethodDef *pmb
);
HRESULT FindTypeDefByName
LPCWSTR szTypeDef,
mdToken tkEnclosingClass,
mdTypeDef *ptd
);
HRESULT FindTypeRef (
mdToken tkResolutionScope,
LPCWSTR szName,
mdTypeRef *ptr
);
HRESULT GetClassLayout (
mdTypeDef td,
DWORD *pdwPackSize,
COR_FIELD_OFFSET rFieldOffset[],
ULONG cMax,
ULONG *pcFieldOffset,
ULONG *pulClassSize
);
HRESULT GetCustomAttributeByName (
mdToken tkObj,
LPCWSTR szName,
const void **ppData,
ULONG *pcbData
);
HRESULT GetCustomAttributeProps (
mdCustomAttribute cv,
mdToken *ptkObj,
mdToken *ptkType,
void const **ppBlob,
ULONG *pcbSize
);
HRESULT GetEventProps (
mdEvent ev,
mdTypeDef *pClass,
LPCWSTR szEvent,
ULONG cchEvent,
ULONG *pchEvent,
DWORD *pdwEventFlags,
mdToken *ptkEventType,
mdMethodDef *pmdAddOn,
mdMethodDef *pmdRemoveOn,
mdMethodDef *pmdFire,
mdMethodDef rmdOtherMethod[],
ULONG cMax,
ULONG *pcOtherMethod
);
HRESULT GetFieldMarshal (
mdToken tk,
PCCOR_SIGNATURE *ppvNativeType,
ULONG *pcbNativeType
);
HRESULT GetFieldProps (
mdFieldDef mb,
mdTypeDef *pClass,
LPWSTR szField,
ULONG cchField,
ULONG *pchField,
DWORD *pdwAttr,
PCCOR_SIGNATURE *ppvSigBlob,
ULONG *pcbSigBlob,
DWORD *pdwCPlusTypeFlag,
UVCP_CONSTANT *ppValue,
ULONG *pcchValue
);
HRESULT GetInterfaceImplProps (
mdInterfaceImpl iiImpl,
mdTypeDef *pClass,
mdToken *ptkIface)
);
HRESULT GetMemberProps (
mdToken mb,
mdTypeDef *pClass,
LPWSTR szMember,
ULONG cchMember,
ULONG *pchMember,
DWORD *pdwAttr,
PCCOR_SIGNATURE *ppvSigBlob,
ULONG *pcbSigBlob,
ULONG *pulCodeRVA,
DWORD *pdwImplFlags,
DWORD *pdwCPlusTypeFlag,
UVCP_CONSTANT *ppValue,
ULONG *pcchValue
);
HRESULT GetMemberRefProps (
mdMemberRef mr,
mdToken *ptk,
LPWSTR szMember,
ULONG cchMember,
ULONG *pchMember,
PCCOR_SIGNATURE *ppvSigBlob,
ULONG *pbSig
);
HRESULT GetMethodProps (
mdMethodDef mb,
mdTypeDef *pClass,
LPWSTR szMethod,
ULONG cchMethod,
ULONG *pchMethod,
DWORD *pdwAttr,
PCCOR_SIGNATURE *ppvSigBlob,
ULONG *pcbSigBlob,
ULONG *pulCodeRVA,
DWORD *pdwImplFlags
);
HRESULT GetMethodSemantics (
mdMethodDef mb,
mdToken tkEventProp,
DWORD *pdwSemanticsFlags
);
HRESULT GetModuleFromScope (
mdModule *pmd
);
HRESULT GetModuleRefProps (
mdModuleRef mur,
LPWSTR szName,
ULONG cchName,
ULONG *pchName
);
HRESULT GetNameFromToken (
mdToken tk,
MDUTF8CSTR *pszUtf8NamePtr
);
HRESULT GetNativeCallConvFromSig (
void const *pvSig,
ULONG cbSig,
ULONG *pCallConv
);
HRESULT GetNestedClassProps (
mdTypeDef tdNestedClass,
mdTypeDef *ptdEnclosingClass
);
HRESULT GetParamForMethodIndex (
mdMethodDef md,
ULONG ulParamSeq,
mdParamDef *ppd
);
HRESULT GetParamProps (
mdParamDef tk,
mdMethodDef *pmd,
ULONG *pulSequence,
LPWSTR szName,
ULONG cchName,
ULONG *pchName,
DWORD *pdwAttr,
DWORD *pdwCPlusTypeFlag,
UVCP_CONSTANT *ppValue,
ULONG *pcchValue
);
HRESULT GetPermissionSetProps (
mdPermission pm,
DWORD *pdwAction,
void const **ppvPermission,
ULONG *pcbPermission
);
HRESULT GetPinvokeMap (
mdToken tk,
DWORD *pdwMappingFlags,
LPWSTR szImportName,
ULONG cchImportName,
ULONG *pchImportName,
mdModuleRef *pmrImportDLL
);
HRESULT GetPropertyProps (
mdProperty prop,
mdTypeDef *pClass,
LPCWSTR szProperty,
ULONG cchProperty,
ULONG *pchProperty,
DWORD *pdwPropFlags,
PCCOR_SIGNATURE *ppvSig,
ULONG *pbSig,
DWORD *pdwCPlusTypeFlag,
UVCP_CONSTANT *ppDefaultValue,
ULONG *pcchDefaultValue,
mdMethodDef *pmdSetter,
mdMethodDef *pmdGetter,
mdMethodDef rmdOtherMethod[],
ULONG cMax,
ULONG *pcOtherMethod
);
HRESULT GetRVA (
mdToken tk,
ULONG *pulCodeRVA,
DWORD *pdwImplFlags
);
HRESULT GetScopeProps (
LPWSTR szName,
ULONG cchName,
ULONG *pchName,
GUID *pmvid
);
HRESULT GetSigFromToken (
mdSignature mdSig,
PCCOR_SIGNATURE *ppvSig,
ULONG *pcbSig
);
HRESULT GetTypeDefProps
mdTypeDef td,
LPWSTR szTypeDef,
ULONG cchTypeDef,
ULONG *pchTypeDef,
DWORD *pdwTypeDefFlags,
mdToken *ptkExtends
);
HRESULT GetTypeRefProps (
mdTypeRef tr,
mdToken *ptkResolutionScope,
LPWSTR szName,
ULONG cchName,
ULONG *pchName
);
HRESULT GetTypeSpecFromToken (
mdTypeSpec typespec,
PCCOR_SIGNATURE *ppvSig,
ULONG *pcbSig
);
HRESULT GetUserString (
mdString stk,
LPWSTR szString,
ULONG cchString,
ULONG *pchString
);
HRESULT IsGlobal (
mdToken pd,
int *pbGlobal
);
BOOL IsValidToken (
mdToken tk
);
HRESULT ResetEnum (
HCORENUM hEnum,
ULONG ulPos
);
HRESULT ResolveTypeRef (
mdTypeRef tr,
REFIID riid,
IUnknown **ppIScope,
mdTypeDef *ptd
);
};
الأساليب
Method |
الوصف |
---|---|
إغلاق العداد مع المحدد مؤشر. |
|
يحصل على عدد العناصر في العداد مع المؤشر المحدد. |
|
تعداد قائمة برموز تعريف السمة المخصصة المقترنة المحدد نوع أو عضو. |
|
تعداد تعريف حدث رموز مميزة للرمز المميز TypeDef المحدد. |
|
تعداد FieldDef المميزة نوع المشار إليه بواسطة رمز Def نوع المحدد. |
|
تعداد FieldDef رموز مميزة من النوع المحدد بالاسم المحدد. |
|
تعداد الرموز المميزة MethodDef التي تمثل تطبيقات واجهة. |
|
تعداد الرموز المميزة MemberRef يمثل الأعضاء المحدد نوع. |
|
تعداد الرموز المميزة MemberDef الذي يمثل الأعضاء المحدد نوع. |
|
تعداد الرموز المميزة MemberDef الذي يمثل الأعضاء المحدد نوع بالاسم المحدد. |
|
تعداد MethodBody و MethodDeclaration المميزة التي تمثل أساليب المحدد نوع. |
|
تعداد الرموز المميزة MethodDef يمثل أساليب المحدد نوع. |
|
تعداد الخصائص وأحداث التغيير بالخاصية التي الأسلوب المحدد هو ذات الصلة. |
|
الأساليب التي لها الاسم المحدد والتي يتم تعريفها بواسطة تعداد نوع المشار إليه بواسطة رمز Def نوع المحدد. |
|
تعداد ModuleRef رموز مميزة التي تمثل الوحدات النمطية التي تم استيرادها. |
|
تعداد ParamDef رموز مميزة الذي يمثل معلمات الأسلوب المشار إليه بواسطة رمز MethodDef المحدد. |
|
تعداد الأذونات للكائنات في معين بيانات التعريف النطاق. |
|
تعداد الرموز المميزة PropertyDef التي تمثل الخصائص نوع المشار إليه بواسطة رمز Def نوع المحدد. |
|
تعداد توقيع رموز مميزة يمثل التواقيع مستقلة في نطاق الحالي. |
|
تعداد TypeDef رموز مميزة التي تمثل الجميع أنواع داخل نطاق الحالي. |
|
تعداد الرموز المميزة TypeRef المعرفة في الحالي بيانات التعريف نطاق. |
|
تعداد الرموز المميزة يتضمن TypeSpec المعرفة في الحالي بيانات التعريف نطاق. |
|
تعداد الرموز المميزة MemberDef التي تمثل الأساليب التي لم يتم حلها في الحالي بيانات التعريف نطاق. |
|
تعداد الرموز المميزة لسلسلة أحرف يمثل الثابت ترميز السلاسل في الحالي بيانات التعريف نطاق. |
|
يحصل FieldDef الرمز المميز للحقل هو عضو من النوع المحدد، وتوقيع الاسم وبيانات التعريف المحددة. |
|
يحصل على مرجع إلى MemberDef الرمز المميز للعضو المعرفة بواسطة المحدد نوع بتوقيع الاسم وبيانات التعريف المحددة. |
|
يحصل على مرجع إلى MemberRef الرمز المميز للعضو المعرفة بواسطة المحدد نوع بتوقيع الاسم وبيانات التعريف المحددة. |
|
يحصل على مرجع إلى MethodDef الرمز المميز للأسلوب الذي تم تعريفها مع المحدد نوع بتوقيع الاسم وبيانات التعريف المحددة. |
|
يحصل على مؤشر إلى بيانات التعريف نوع Def الرمز المميز نوع بالاسم المحدد. |
|
يحصل على مرجع إلى الرمز المميز لبيانات التعريف نوع المرجع الذي يشير نوع في مجال بحث المحدد بالاسم المحدد. |
|
يحصل على معلومات تخطيط للفئة المشار إليها بواسطة الرمز المميز TypeDef المحدد. |
|
يحصل على الالقيمة سمة مخصصة، يعطي اسمها. |
|
يحصل على القيمة السمة المخصصة، تعطي رمز بيانات التعريف الخاصة بها. |
|
الحصول على بيانات تعريف (بما في ذلك التصريح نوع، طرق إضافة وإزالة التفويضات، أي علامات والآخر بيانات المقترنة) للحدث تمثيلها بواسطة رمز مميز للحدث المحدد. |
|
يحصل على مؤشر إلى الأصلي، غير مدارة نوع الحقل الذي يمثله الرمز المميز لبيانات تعريف الحقل المحدد. |
|
الحصول على بيانات التعريف المقترنة مع الحقل المشار إليه بواسطة رمز FieldDef المحدد. |
|
يحصل على مرجع إلى الرموز المميزة لبيانات التعريف نوع الذي يقوم بتطبيق الأسلوب المحدد والتي بتعريف هذه الطريقة للواجهة. |
|
الحصول على بيانات تعريف (بما في ذلك اسم وتوقيع ثنائي العنوان الظاهري النسبي) من نوع العضو المشار إليه بواسطة رمز مميز لبيانات التعريف المحددة. |
|
الحصول على بيانات التعريف المقترنة مع العضو المشار إليه بواسطة الرمز المميز المحدد. |
|
الحصول على بيانات التعريف المقترنة أسلوب المشار إليه بواسطة رمز Def أسلوب المحدد. |
|
يحصل على مؤشر إلى العلاقة بين أسلوب المشار إليها بالرمز المميز أسلوب Def المحدد والخاصية المزدوجة والأحداث المشار إليها برمز EventProp المحدد. |
|
يحصل على مؤشر إلى بيانات التعريف الرمز المميز لوحدة نمطية المشار إليها في الحالي بيانات التعريف نطاق. |
|
الحصول على اسم وحدة نمطية? للرجوع إليها بواسطة المحدد بيانات التعريف الرمز المميز. |
|
الحصول على اسم UTF-8 الكائن المشار إليه بواسطة رمز مميز لبيانات التعريف المحددة. |
|
يحصل على اصطلاح استدعاء أصلي أسلوب الذي يتم تمثيله بالمؤشر توقيع المحدد. |
|
يحصل على TypeDef في الرمز المميز لنوع الأصل المضمنة المتداخلة النوع المحدد. |
|
إحضار مؤشر إلى الرمز المميز الذي يمثل معلمة في الموضع الترتيبي لحقل المحدد في التسلسل معلمات الأسلوب للأسلوب الذي يمثله الرمز المميز MethodDef المحدد. |
|
Gets بيانات التعريف قيم for the معلمة مشار إليها بواسطة the specified ParamDef token. |
|
Gets the بيانات التعريف associated مع the النظام.الأمان.PermissionSet represented بواسطة the specified إذن token. |
|
Gets a ModuleRef token إلى represent the الهدف تجميع of a PInvoke يتصل. |
|
Gets the بيانات التعريف associated مع the خاصية represented بواسطة the specified token. |
|
Gets the offset of the نسبي ظاهري العنوان of the تعليمات برمجية كائن represented بواسطة the specified token. |
|
Gets the اسم و optionally the الإصدار معرّف of the تجميع أو وحدة نمطية? في the الحالي بيانات التعريف نطاق. |
|
Gets the ثنائي بيانات التعريف توقيع associated مع the specified token. |
|
إرجاع بيانات التعريف معلومات for the نوع represented بواسطة the specified TypeDef token. |
|
Gets the بيانات التعريف associated مع the نوع مشار إليها بواسطة the specified TypeRef token. |
|
Gets the ثنائي بيانات التعريف توقيع of the نوع specification represented بواسطة the specified token. |
|
Gets the قيمة حرفية سلسلة represented بواسطة the specified بيانات التعريف token. |
|
الحصول القيمة تشير إلى ما إذا كان الحقل، أسلوب، أو نوع تمثيلها بواسطة رمز بيانات التعريف المحدد الذي يحتوي نطاق عمومي. |
|
الحصول على القيمة تشير إلى ما إذا كان الرمز المميز المحدد يحتوي على مرجع صالح لتعليمة برمجية كائن. |
|
إعادة تعيين العداد المحدد إلى المحدد موضع. |
|
يحصل على نوع المعلومات الخاصة نوع المشار إليها برمز نوع المرجع المحدد. |
ملاحظات
التصميم IMetaDataImportواجهة هو مخصصة أساسا للاستخدام بالأدوات والخدمات التي سيتم استيراد معلومات النوع (على سبيل المثال، أدوات التطوير) أو إدارة المكونات الموزعة (على سبيل المثال، خدمات تحليل/تنشيط). وظائف في IMetaDataImportتقع في فئات المهام التالية:
تعداد مجموعات عناصر الموجودة في نطاق بيانات التعريف.
البحث عن العنصر يحتوي على التعيين معينة من خصائص.
الحصول على خصائص محدد العنصر.
طرق يحصل مصممة خصيصا إلى العودة valued على مفرد من خصائص عنصر بيانات التعريف. عند خاصية هو مرجع إلى عنصر آخر، رمز مميز لهذا العنصر هو التي يتم إرجاعها. يمكن أن يكون أي نوع إدخال المؤشر فارغة (NULL) للإشارة إلى أن القيمة معينة هو غير المطلوبة. إلى الحصول على خصائص الكائنات مجموعة بشكل أساسي (على سبيل المثال، مجموعة واجهات تطبيق فئة)، واستخدام أساليب التعداد.
المتطلبات
الأنظمة الأساسية: See متطلبات النظام إطار عمل .NET.
**Header:**Cor.h
**المكتبة:**يستخدم كـ مورد في MsCorEE.dll
.NET Framework Versions: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1, 1.0