Controlling the Browser
Our company has the ability to control the browser, allowing for modifications and enhancements to existing browsers. We can take an existing browser and integrate changes or add new features to optimize and customize the browsing experience.
Control The Browser With Some Code Samples
Sample 1: inject a Splash Screen image into the Chrome message
Using 'GetRunningObjectTable' WIN32 function to find and intercept the Chrome messages. After spying these messages, finding the specific injection point to inject a Splash Screen image into the Chrome message queue!
// get pointer to this computer's Running Object Table
if (GetRunningObjectTable(NULL, &pROT) != S_OK) {
ATLTRACE("RegisterWithROT: Error, can't get ROT\n");
return FALSE;
}
// convert the guid to a wide-char moniker name
StringFromCLSID(regName, &monikerName);
// create the moniker
hr = CreateItemMoniker(m_delim, monikerName, &pMon);
if (!SUCCEEDED(hr)) {
ATLTRACE("RegisterWithROT: Error, cannot create moniker\n");
return FALSE;
}
Splitting Chrome UI
// get pointer to this computer's Running Object Table
if (GetRunningObjectTable(NULL, &pROT) != S_OK) {
ATLTRACE("RegisterWithROT: Error, can't get ROT\n");
return FALSE;
}
// convert the guid to a wide-char moniker name
StringFromCLSID(regName, &monikerName);
// create the moniker
hr = CreateItemMoniker(m_delim, monikerName, &pMon);
if (!SUCCEEDED(hr)) {
ATLTRACE("RegisterWithROT: Error, cannot create moniker\n");
return FALSE;
}
Using 'SetWindowRgn' function I have succeeded splitting the Chrome UI. Current improving the product split abilities.