title: Mqrtlarge and large message handling differ between Biztalk versions?
body: <p>We've developed a component for sending and reading large messages to msmq queues for communication with Biztalk as implemented as described in this MSDN-article: <a href="http://msdn.microsoft.com/en-us/library/aa560386.aspx" rel="nofollow">http://msdn.microsoft.com/en-us/library/aa560386.aspx</a></p>
  
  <p>Simply explained, you use the PROPID_M_EXTENSION field to describe the parts of the messages using the following content:</p>
  
  <p>GUID defining that it is a multi-part message (16b)
  GUID for the message (16b)
  Total size of the entire message (4b)
  Current part number (2b)
  Number of message parts (2b)
  This works perfectly with Biztalk 2006, however with newer editions (2010/2013) it does not work at all.</p>
  
  <p>We've sent large messages out from Biztalk 2013 to a queue and analyzed the field and it seems that the content of PROPID_M_EXTENSION is:</p>
  
  <p>GUID defining that it is a multi-part message (16b)
  GUID for the message (16b)
  Part number (2b)
  Empty data (2b)
  1 if it is the last part, otherwise 0 (1b)
  3 unknown bytes
  The problem is the last three bytes, that we can't figure out the purpose of and how to calculate.</p>
  
  <p>The values differs depending on the message content and size. And it feels like some sort of check sum, but we need to be able to set this manually.</p>
  
  <p>Any ideas? There is very little information about this around the web?</p>
  
  <p>The existing mqlarge-dll is in native code and can only be decompiled to assembler, which (for me at least) is hard to debug.</p>
  
  <p>A way around it would be to include a reference to mqlarge in our project and use the existing assembly, but we would rather have our own code and not be dependent on a dll. And it bugs me not to know how it works as well :)</p>