private void CheckPinMultipleBuffers()
{
if (_bufferList == null)
{
// No buffer list is set so unpin any existing multiple buffer pinning.
if (_pinState == PinState.MultipleBuffer)
{
FreeOverlapped(false);
}
}
else
{
if (!(_pinState == PinState.MultipleBuffer) || _bufferListChanged)
{
// Need to setup a new Overlapped.
_bufferListChanged = false;
FreeOverlapped(false);
try
{
SetupOverlappedMultiple();
}
catch (Exception)
{
FreeOverlapped(false);
throw;
}
}
}
}