Exemplo n.º 1
0
        public PinvokeMap GetPinvokeMap(uint fieldDef_methodDef)
        {
            PinvokeMap ret = new PinvokeMap();

            ret.Token      = fieldDef_methodDef;
            ret.ImportName = Util.GetString(delegate(uint pStringLenght, out uint stringLenght, System.IntPtr pString) {
                metaData.GetPinvokeMap(
                    ret.Token,
                    out ret.Flags,
                    pString, pStringLenght, out stringLenght,
                    out ret.ModuleRef
                    );
            });
            return(ret);
        }
Exemplo n.º 2
0
		public unsafe static string GetPinvokeMapName(IMetaDataImport mdi, uint token) {
			if (mdi == null)
				return null;
			char[] nameBuf = null;
			uint chImportName;
			int hr = mdi.GetPinvokeMap(token, IntPtr.Zero, IntPtr.Zero, 0, new IntPtr(&chImportName), IntPtr.Zero);
			if (hr >= 0 && chImportName != 0) {
				nameBuf = new char[chImportName];
				fixed (char* p = &nameBuf[0])
					hr = mdi.GetPinvokeMap(token, IntPtr.Zero, new IntPtr(p), (uint)nameBuf.Length, new IntPtr(&chImportName), IntPtr.Zero);
			}
			if (hr < 0)
				return null;

			return chImportName <= 1 ? string.Empty : new string(nameBuf, 0, (int)chImportName - 1);
		}
Exemplo n.º 3
0
		public unsafe static bool GetPinvokeMapProps(IMetaDataImport mdi, uint token, out PInvokeAttributes attrs, out uint moduleToken) {
			attrs = 0;
			moduleToken = 0;
			if (mdi == null)
				return false;

			uint dwMappingFlags, mrImportDLL;
			int hr = mdi.GetPinvokeMap(token, new IntPtr(&dwMappingFlags), IntPtr.Zero, 0, IntPtr.Zero, new IntPtr(&mrImportDLL));
			if (hr != 0)
				return false;
			attrs = (PInvokeAttributes)dwMappingFlags;
			moduleToken = mrImportDLL;
			return true;
		}