IMetaDataEmit-Schnittstelle
Aktualisiert: November 2007
Stellt Methoden bereit, um Metadaten über die Assembly im momentan definierten Bereich zu erstellen, zu ändern und zu speichern. Die Metadaten können im Arbeitsspeicher oder auf einem Datenträger gespeichert werden.
interface IMetaDataEmit : IUnknown {
HRESULT ApplyEditAndContinue (
[in] IUnknown *pImport
);
HRESULT DefineCustomAttribute (
[in] mdToken tkObj,
[in] mdToken tkType,
[in] void const *pCustomAttribute,
[in] ULONG cbCustomAttribute,
[out] mdCustomAttribute *pcv
);
HRESULT DefineEvent (
[in] mdTypeDef td,
[in] LPCWSTR szEvent,
[in] DWORD dwEventFlags,
[in] mdToken tkEventType,
[in] mdMethodDef mdAddOn,
[in] mdMethodDef mdRemoveOn,
[in] mdMethodDef mdFire,
[in] mdMethodDef rmdOtherMethods[],
[out] mdEvent *pmdEvent
);
HRESULT DefineField (
[in] mdTypeDef td,
[in] LPCWSTR szName,
[in] DWORD dwFieldFlags,
[in] PCCOR_SIGNATURE pvSigBlob,
[in] ULONG cbSigBlob,
[in] DWORD dwCPlusTypeFlag,
[in] void const *pValue,
[in] ULONG cchValue,
[out] mdFieldDef *pmd
);
HRESULT DefineImportMember (
[in] IMetaDataAssemblyImport *pAssemImport,
[in] const void *pbHashValue,
[in] ULONG cbHashValue,
[in] IMetaDataImport *pImport,
[in] mdToken mbMember,
[in] IMetaDataAssemblyEmit *pAssemEmit,
[in] mdToken tkParent,
[out] mdMemberRef *pmr
);
HRESULT DefineImportType (
[in] IMetaDataAssemblyImport *pAssemImport,
[in] const void *pbHashValue,
[in] ULONG cbHashValue,
[in] IMetaDataImport *pImport,
[in] mdTypeDef tdImport,
[in] IMetaDataAssemblyEmit *pAssemEmit,
[out] mdTypeRef *ptr
);
HRESULT DefineMemberRef (
[in] mdToken tkImport,
[in] LPCWSTR szName,
[in] PCCOR_SIGNATURE pvSigBlob,
[in] ULONG cbSigBlob,
[out] mdMemberRef *pmr
);
HRESULT DefineMethod (
[in] mdTypeDef td,
[in] LPCWSTR szName,
[in] DWORD dwMethodFlags,
[in] PCCOR_SIGNATURE pvSigBlob,
[in] ULONG cbSigBlob,
[in] ULONG ulCodeRVA,
[in] DWORD dwImplFlags,
[out] mdMethodDef *pmd
);
HRESULT DefineMethodImpl (
[in] mdTypeDef td,
[in] mdToken tkBody,
[in] mdToken tkDecl
);
HRESULT DefineModuleRef (
[in] LPCWSTR szName,
[out] mdModuleRef *pmur
);
HRESULT DefineNestedType (
[in] LPCWSTR szTypeDef,
[in] DWORD dwTypeDefFlags,
[in] mdToken tkExtends,
[in] mdToken rtkImplements[],
[in] mdTypeDef tdEncloser,
[out] mdTypeDef *ptd
);
HRESULT DefineParam (
[in] mdMethodDef md,
[in] ULONG ulParamSeq,
[in] LPCWSTR szName,
[in] DWORD dwParamFlags,
[in] DWORD dwCPlusTypeFlag,
[in] void const *pValue,
[in] ULONG cchValue,
[out] mdParamDef *ppd
);
HRESULT DefinePermissionSet (
[in] mdToken tk,
[in] DWORD dwAction,
[in] void const *pvPermission,
[in] ULONG cbPermission,
[out] mdPermission *ppm
);
HRESULT DefinePinvokeMap (
[in] mdToken tk,
[in] DWORD dwMappingFlags,
[in] LPCWSTR szImportName,
[in] mdModuleRef mrImportDLL
);
HRESULT DefineProperty (
[in] mdTypeDef td,
[in] LPCWSTR szProperty,
[in] DWORD dwPropFlags,
[in] PCCOR_SIGNATURE pvSig,
[in] ULONG cbSig,
[in] DWORD dwCPlusTypeFlag,
[in] void const *pValue,
[in] ULONG cchValue,
[in] mdMethodDef mdSetter,
[in] mdMethodDef mdGetter,
[in] mdMethodDef rmdOtherMethods[],
[out] mdProperty *pmdProp
);
HRESULT DefineSecurityAttributeSet (
[in] mdToken tkObj,
[in] COR_SECATTR rSecAttrs[],
[in] ULONG cSecAttrs,
[out] ULONG *pulErrorAttr
);
HRESULT DefineTypeDef (
[in] LPCWSTR szTypeDef,
[in] DWORD dwTypeDefFlags,
[in] mdToken tkExtends,
[in] mdToken rtkImplements[],
[out] mdTypeDef *ptd
);
HRESULT DefineTypeRefByName (
[in] mdToken tkResolutionScope,
[in] LPCWSTR szName,
[out] mdTypeRef *ptr
);
HRESULT DefineUserString (
[in] LPCWSTR szString,
[in] ULONG cchString,
[out] mdString *pstk
);
HRESULT DeleteClassLayout (
[in] mdTypeDef td
);
HRESULT DeleteFieldMarshal (
[in] mdToken tk
);
HRESULT DeletePinvokeMap (
[in] mdToken tk
);
HRESULT DeleteToken (
[in] mdToken tkObj
);
HRESULT GetSaveSize (
[in] CorSaveSize fSave,
[out] DWORD *pdwSaveSize
);
HRESULT GetTokenFromSig (
[in] PCCOR_SIGNATURE pvSig,
[in] ULONG cbSig,
[out] mdSignature *pmsig
);
HRESULT GetTokenFromTypeSpec (
[in] PCCOR_SIGNATURE pvSig,
[in] ULONG cbSig,
[out] mdTypeSpec *ptypespec
);
HRESULT Merge (
[in] IMetaDataImport *pImport,
[in] IMapToken *pHostMapToken,
[in] IUnknown *pHandler
);
HRESULT MergeEnd ();
HRESULT Save (
[in] LPCWSTR szFile,
[in] DWORD dwSaveFlags
);
HRESULT SaveToMemory (
[in] void *pbData,
[in] ULONG cbData
);
HRESULT SaveToStream (
[in] IStream *pIStream,
[in] DWORD dwSaveFlags
);
HRESULT SetClassLayout (
[in] mdTypeDef td,
[in] DWORD dwPackSize,
[in] COR_FIELD_OFFSET rFieldOffsets[],
[in] ULONG ulClassSize
);
HRESULT SetCustomAttributeValue (
[in] mdCustomAttribute pcv,
[in] void const *pCustomAttribute,
[in] ULONG cbCustomAttribute
);
HRESULT SetEventProps (
[in] mdEvent ev,
[in] DWORD dwEventFlags,
[in] mdToken tkEventType,
[in] mdMethodDef mdAddOn,
[in] mdMethodDef mdRemoveOn,
[in] mdMethodDef mdFire,
[in] mdMethodDef rmdOtherMethods[]
);
HRESULT SetFieldMarshal (
[in] mdToken tk,
[in] PCCOR_SIGNATURE pvNativeType,
[in] ULONG cbNativeType
);
HRESULT SetFieldProps (
[in] mdFieldDef fd,
[in] DWORD dwFieldFlags,
[in] DWORD dwCPlusTypeFlag,
[in] void const *pValue,
[in] ULONG cchValue
);
HRESULT SetFieldRVA (
[in] mdFieldDef fd,
[in] ULONG ulRVA
);
HRESULT SetHandler (
[in] IUnknown *pUnk
);
HRESULT SetMethodProps (
[in] mdMethodDef md,
[in] DWORD dwMethodFlags,
[in] ULONG ulCodeRVA,
[in] DWORD dwImplFlags
);
HRESULT SetMethodImplFlags (
[in] mdMethodDef md,
[in] DWORD dwImplFlags
);
HRESULT SetModuleProps (
[in] LPCWSTR szName
);
HRESULT SetParamProps (
[in] mdParamDef pd,
[in] LPCWSTR szName,
[in] DWORD dwParamFlags,
[in] DWORD dwCPlusTypeFlag,
[in] void const *pValue,
[in] ULONG cchValue
);
HRESULT SetParent (
[in] mdMemberRef mr,
[in] mdToken tk
);
HRESULT SetPermissionSetProps (
[in] mdToken tk,
[in] DWORD dwAction,
[in] void const *pvPermission,
[in] ULONG cbPermission,
[out] mdPermission *ppm
);
HRESULT SetPinvokeMap (
[in] mdToken tk,
[in] DWORD dwMappingFlags,
[in] LPCWSTR szImportName,
[in] mdModuleRef mrImportDLL
);
HRESULT SetPropertyProps (
[in] mdProperty pr,
[in] DWORD dwPropFlags,
[in] DWORD dwCPlusTypeFlag,
[in] void const *pValue,
[in] ULONG cchValue,
[in] mdMethodDef mdSetter,
[in] mdMethodDef mdGetter,
[in] mdMethodDef rmdOtherMethods[]
);
HRESULT SetRVA (
[in] mdMethodDef md,
[in] ULONG ulRVA
);
HRESULT SetTypeDefProps (
[in] mdTypeDef td,
[in] DWORD dwTypeDefFlags,
[in] mdToken tkExtends,
[in] mdToken rtkImplements[]
);
HRESULT TranslateSigWithScope (
[in] IMetaDataAssemblyImport *pAssemImport,
[in] const void *pbHashValue,
[in] ULONG cbHashValue,
[in] IMetaDataImport *import,
[in] PCCOR_SIGNATURE pbSigBlob,
[in] ULONG cbSigBlob,
[in] IMetaDataAssemblyEmit *pAssemEmit,
[in] IMetaDataEmit *emit,
[out] PCOR_SIGNATURE pvTranslatedSig,
[in] ULONG cbTranslatedSigMax,
[out] ULONG *pcbTranslatedSig
);
};
Methoden
Methode |
Beschreibung |
---|---|
Aktualisiert den aktuellen Assemblybereich mit den Änderungen, die im angegebenen pImport vorgenommen wurden. |
|
Erstellt eine Definition für ein benutzerdefiniertes Attribut mit der angegebenen Metadatensignatur, die dem angegebenen Objekt zugeordnet werden soll, und ruft ein Token für die betreffende benutzerdefinierte Attributdefinition ab. |
|
Erstellt eine Definition für ein Ereignis mit der angegebenen Metadatensignatur und ruft ein Token für die Ereignisdefinition ab. |
|
Erstellt eine Definition für ein Feld mit der angegebenen Metadatensignatur und ruft ein Token für die betreffende Felddefinition ab. |
|
Erstellt eine Definition für einen Member eines Typs, der in einem Modul außerhalb des aktuellen Bereichs definiert wird und ruft ein Token für diese Verweisdefinition ab. |
|
Erstellt eine Definition für einen Verweis auf einen Typ, der in einem Modul außerhalb des aktuellen Bereichs definiert ist, und ruft ein Token für diese Referenzdefinition ab. |
|
Erstellt eine Definition für einen Verweis auf einen Member eines Moduls außerhalb des aktuellen Bereichs und ruft ein Token für diese Referenzdefinition ab. |
|
Erstellt eine Definition für eine Methode mit der angegebenen Signatur und gibt ein Token für diese Methodendefinition zurück. |
|
Erstellt eine Definition für die Implementierung einer Methode, die von einer Schnittstelle geerbt wird, und gibt ein Token für die betreffende Definition der Methodenimplementierung zurück. |
|
Erstellt die Metadatensignatur für ein Modul mit dem angegebenen Namen. |
|
Erstellt die Metadatensignatur einer Typdefinition und gibt ein mdTypeDef-Token für diesen Typ zurück. Gibt außerdem an, dass der definierte Typ ein Member des Typs ist, auf den tdEncloser verweist. |
|
Erstellt für die Methode, auf die vom angegebenen Token verwiesen wird, eine Parameterdefinition mit der angegebenen Signatur und ruft ein Token für die Parameterdefinition ab. |
|
Erstellt eine Definition für einen Berechtigungssatz mit der angegebenen Metadatensignatur und ruft ein Token für diese Berechtigungssatzdefinition ab. |
|
Legt Features der PInvoke-Signatur der Methode fest, auf die vom angegebenen Token verwiesen wird. |
|
Erstellt eine Eigenschaftendefinition für den angegebenen Typ mit dem angegebenen get-Methodenaccessor und dem set-Methodenaccessor und ruft ein Token für die betreffende Eigenschaftendefinition ab. |
|
Erstellt eine Reihe von Sicherheitsberechtigungen, die an das Objekt angefügt werden, auf das das angegebene Token verweist. |
|
Erstellt eine Typdefinition für einen Common Language Runtime-Typ und ruft das Metadatentoken für die Typdefinition ab. |
|
Ruft ein Metadatentoken für einen Typ ab, der in einem anderen Modul außerhalb des aktuellen Bereichs definiert ist. |
|
Ruft ein Metadatentoken für das angegebene Zeichenfolgenliteral ab. |
|
Zerstört die Metadatensignatur des Klassenlayouts für den Typ, auf den vom angegebenen Token verwiesen wird. |
|
Zerstört die Metadatensignatur für das Marshalling von PInvoke des Objekts, auf das vom angegebenen Token verwiesen wird. |
|
Zerstört die Metadaten für die Zuordnung von PInvoke für das Objekt, auf das vom angegebenen Token verwiesen wird. |
|
Löscht das angegebene Token aus dem aktuellen Gültigkeitsbereich der Metadaten. |
|
Ruft die geschätzte binäre Größe der Assembly im aktuellen Gültigkeitsbereich ab. |
|
Ruft ein Token für die angegebene Metadatensignatur ab. |
|
Ruft ein Metadatentoken für den Typ mit der angegebenen Metadatensignatur ab. |
|
Fügt den angegebenen importierten Bereich zur Liste der Bereiche hinzu, die zusammengeführt werden sollen. |
|
Führt sämtliche Metadatenbereiche, die durch einen oder mehrere vorausgehende Aufrufe von IMetaDataEmit::Merge angegeben wurden, im aktuellen Bereich zusammen. |
|
Speichert alle Metadaten im aktuellen Bereich in die Datei an der angegebenen Adresse. |
|
Speichert alle Metadaten im aktuellen Gültigkeitsbereich in den angegebenen Bereich des Arbeitsspeichers. |
|
Speichert alle Metadaten im aktuellen Bereich in den angegebenen IStream. |
|
Ruft die Klassenlayoutsignatur eines durch einen vorherigen Aufruf von IMetaDataEmit::DefineTypeDef definierten Typs ab oder aktualisiert sie. |
|
Legt den Wert eines benutzerdefinierten Attributs fest, das durch einen früheren Aufruf von IMetaDataEmit::DefineCustomAttribute definiert wurde, oder aktualisiert diesen Wert. |
|
Legt das angegebene Feature eines Ereignisses, das durch einen vorausgehenden Aufruf von IMetaDataEmit::DefineEvent definiert wurde, fest oder aktualisiert es. |
|
Legt die PInvoke-Marshallinginformationen für das Feld, die Methodenrückgabe oder den Methodenparameter fest, auf vom angegebenen Token verwiesen wird. |
|
Legt den Standardwert für das Feld fest, auf das das angegebene Feldtoken verweist, oder aktualisiert ihn. |
|
Legt einen globalen Variablenwert für die relative virtuelle Adresse des Felds fest, auf das vom angegebenen Token verwiesen wird. |
|
Legt die Methode fest, auf die von dem angegeben IUnknown-Zeiger als Benachrichtigungsrückruf für Neuzuordnungen von Tokens verwiesen wurde. |
|
Legt die Metadatensignatur der geerbten Methodenimplementierung, auf die das angegebene Token verweist, fest oder aktualisiert sie. |
|
Legt das unter der angegebenen relativen virtuellen Adresse gespeicherte Feature einer Methode fest, die durch einen vorherigen Aufruf von IMetaDataEmit::DefineMethod definiert wurde, oder aktualisiert dieses. |
|
Aktualisiert Verweise auf ein Modul, die bei einem vorherigen Aufruf von IMetaDataEmit::DefineModuleRef definiert wurden. |
|
Legt die Features eines Methodenparameters fest, der durch einen vorherigen Aufruf von IMetaDataEmit::DefineParam definiert wurde, bzw. ändert diese. |
|
Legt fest, dass der angegebene Member, wie er in einem vorhergehenden Aufruf von IMetaDataEmit::DefineMemberRef definiert wurde, ein Member des angegebenen Typs ist, wie er in einem vorhergehenden Aufruf von IMetaDataEmit::DefineTypeDef definiert wurde. |
|
Legt die Features der Metadatensignatur eines Berechtigungssatzes fest, der durch einen vorherigen Aufruf von IMetaDataEmit::DefinePermissionSet definiert wurde, bzw. aktualisiert diese. |
|
Legt die Features der PInvoke-Signatur einer Methode fest oder ändert diese gemäß der Definition eines früheren Aufrufs an IMetaDataEmit::DefinePinvokeMap. |
|
Legt die in Metadaten gespeicherten Features für eine Eigenschaft fest, die zuvor durch einen Aufruf vonIMetaDataEmit::DefineProperty definiert wurde. |
|
Legt die relative virtuelle Adresse der angegebenen Methode fest. |
|
Legt Features eines Typs fest, der bei einem vorherigen Aufruf von IMetaDataEmit::DefineTypeDef definiert wurde. |
|
Importiert eine Assembly in den aktuellen Bereich und ruft eine neue Metadatensignatur für den zusammengeführten Bereich ab. |
Anforderungen
Plattformen: siehe Systemanforderungen für .NET Framework.
Header: Cor.h
Bibliothek: als Ressource in MsCorEE.dll verwendet
.NET Framework-Versionen: 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1, 1.0