private byte[] GetPostData(BINDINFO BindInfo) { if (BindInfo.dwBindVerb != BINDVERB.BINDVERB_POST) // TODO figure out PUT return new byte[0]; byte[] result = new byte[0]; if (BindInfo.stgmedData.enumType == TYMED.TYMED_HGLOBAL) { UInt32 length = BindInfo.cbStgmedData; result = new byte[length]; Marshal.Copy (BindInfo.stgmedData.u, result, 0, (int) length); if (BindInfo.stgmedData.pUnkForRelease == null) Marshal.FreeHGlobal (BindInfo.stgmedData.u); } return result; }
private BINDINFO GetBindInfo(IInternetBindInfo pOIBindInfo) { BINDINFO BindInfo = new BINDINFO(); BindInfo.cbSize = (UInt32) Marshal.SizeOf (typeof (BINDINFO)); UInt32 AsyncFlag; pOIBindInfo.GetBindInfo (out AsyncFlag, ref BindInfo); return BindInfo; }