Здравствуйте, Mystic Artifact, Вы писали:
MA> Сильно-отрицательные координаты (при постоянном видимом окне) как раз должны бы работать. Что если вообще сделать нормально видимым — принимает ли оно ввод? А если оставить пару пикселов? 
Только что проверил еще раз: [-3000, -3000] при нормально видимом окне не работает. Координаты в SetCursorPos проверил — там везде в районе [-3000 плюс смещение].
А фактически при любых отрицательных координатах клика я вижу, что генерируется клик на левый верхний угол приложения (где [0,0]) и открывает системное меню окна.
Вчера еще забыл упомянуть, в том коде:
static int PosX = 30;
static int PosY = PosX;
static UINT uFlags = 0;
SetWindowPos(hwnd, HWND_TOP, PosX, PosY, nSizeX, nSizeY, uFlags);
когда координаты входят в видимую область экрана, то клики проходят. Даже когда какой-нибудь [2500,20], который всё равно в зоне видимости (там у меня второй монитор), тоже ввод принимает.
А когда я рантайм меняю их на более отдалённые — ввод уже перестает работать.
И ЕМНИП, когда виден лишь кусочек окна в углу экрана — работает частично, только на размер этого видимого куска.
C>>ЗЫ. Нагуглил еще AttachThreadInput()
MA> Тут, по идее это лишнее, если IE создает окно связанное с твоим потоком. Если же со своим — тогда стоит покопать в этом направлении.
Создаю новый поток, и уже с этого нового потока линкуюсь к браузеру и т.д.:
if (byCodeOption == 102) // moved to a separate thread
{
void * hUpdateThread = (HANDLE)_beginthread(BrowserThread, 0, (void *)0);
const DWORD dwCurrentThread = GetCurrentThreadId();
if (webBrowser1)
{
HWND hWnBrwsr;
webBrowser1->GetWindow(&hWnBrwsr);
hUpdateThread = (void *)GetWindowThreadProcessId(hWnBrwsr, NULL);
}
AttachThreadInput(dwCurrentThread, (DWORD) hUpdateThread, TRUE);
}
else
CreateBrowser();
Тут пока разбираюсь.
MA> PS: В дополнение ко всему IE наверняка еще и вызывает что-то на подобии GetKeyState для определения состояния клавиш-модификаторов, в том числе и мышиных (VK_LBUTTON). Он вполне может реагировать на внешние события как триггер обработки клавиатуры/мышки, ставить в очередь, и дочитывать реальное/текущее состояние для фильтрации событий совсем чуток погодя. Таким образом если вы пробрасываете настоящие нажатия — оно будет/должно работать, а если синтезируете события полностью программно, то не будет. 
Намекните, пожалуйста, что за настоящие нажатия имеются в виду? На уровне драйвера мыши?
MA> PPS: Не меняет ли IE размер своего окна на 0х0 в случае, если окно прячется?
Надо бы попробовать в Spy++.