From YYpBD's MediaWiki
BOOL LowerSip( void )
{
BOOL fRes = FALSE;
SIPINFO si;
memset(&si, 0, sizeof(si));
si.cbSize = sizeof(si);
if(SHSipInfo(SPI_GETSIPINFO, 0, &si, 0))
{
si.fdwFlags &= ~SIPF_ON;
fRes = SHSipInfo( SPI_SETSIPINFO, 0, &si, 0 );
}
return fRes;
}
WndProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam )
{
SIPINFO si;
switch( msg )
{
case WM_SETTINGCHANGE:
switch( wParam )
{
case SPI_SETSIPINFO:
memset( &si, 0, sizeof( si ) );
si.cbSize = sizeof( si );
if( SHSipInfo( SPI_GETSIPINFO, 0, &si, 0 ) )
{
MoveWindow(
hwnd,
si.rcVisibleDesktop.left,
si.rcVisibleDesktop.top,
si.rcVisibleDesktop.right –
si.rcVisibleDesktop.left,
si.rcVisibleDesktop.bottom -
si.rcVisibleDesktop.top,
TRUE );
}
break;
}
break;
}
return 0;
}