Unless you are actively changing the signal line, is the value set in DCB used?
Other than that, you control the signal line yourself, so you should remember it each time you change it.  
As long as you have the serial port open, you have all control and nothing else will change.
Isn't there anybody who uses handshake or toggle mode now?  
SetDefaultCommConfigW function
BOOL SetDefaultCommConfigW(
  LPCWSTR      lpszName,
  LPCOMMCONFIG lpCC,
  DWORD        dwSize
);
SetCommConfig function
BOOL SetCommConfig(
  HANDLE       hCommDev,
  LPCOMMCONFIG lpCC,
  DWORD        dwSize
);
GetCommConfig function 
BOOL GetCommConfig(
  HANDLE       hCommDev,
  LPCOMMCONFIG lpCC,
  LPDWORD      lpdwSize
);
COMMCONFIG structure
typedef struct _COMMCONFIG {
    ...
  DCB   dcb;
    ...
} COMMCONFIG, *LPCOMMCONFIG;
DCB structure 
typedef struct _DCB {
  DWORD DCBlength;
    ...
  DWORD fDtrControl : 2;
    ...
  DWORD fRtsControl : 2;
    ...
} DCB, *LPDCB;
DTR_CONTROL_DISABLE   0x00
DTR_CONTROL_ENABLE    0x01
DTR_CONTROL_HANDSHAKE 0x02
RTS_CONTROL_DISABLE   0x00
RTS_CONTROL_ENABLE    0x01
RTS_CONTROL_HANDSHAKE 0x02
RTS_CONTROL_TOGGLE    0x03
If you still want to do so, use DeviceIoControl() commented by @Hans Passant.
However, there is no guarantee that it is properly supported, since most people will not use it.  
Device Input and Output Control (IOCTL)
DeviceIoControl function 
The following is a sample DeviceIoControl call for a DISK drive, but you can call it by changing each of these parameters to those related to IOCTL_SERIAL_GET_DTRRTS for the serial port.
Calling DeviceIoControl 
Serial Device Control Requests
IOCTL_SERIAL_GET_DTRRTS IOCTL