/// <summary> /// Get stream at specified location. /// </summary> /// <param name="field">Index into record to get stream.</param> /// <param name="buffer">buffer to receive bytes from stream.</param> /// <param name="requestedBufferSize">Buffer size to read.</param> /// <returns>Stream read into string.</returns> public int GetStream(int field, byte[] buffer, int requestedBufferSize) { int bufferSize = 255; if (requestedBufferSize > 0) { bufferSize = requestedBufferSize; } int error = MsiInterop.MsiRecordReadStream(this.Handle, field, buffer, ref bufferSize); if (0 != error) { throw new Win32Exception(error); } return(bufferSize); }