Log in

View Full Version : What are the entrypoints for VSFilter.dll


arman68
30th December 2003, 16:36
I am trying to control DirectVobSub externally to disable, enable and change subtitles. I have tried sending the function keys F13-F17 in various ways with no success.

Is there any entry point to VSFilter which I could use for that purpose?

Kaiousama
30th December 2003, 20:08
So do i have the same question, i've tried to control VSFilter from external applications but i don't know how to access to its methods and properties.

Thanks

arman68
5th January 2004, 23:25
In SysTray.cpp I have found this:

LRESULT CALLBACK HookProc(UINT code, WPARAM wParam, LPARAM lParam)
{
MSG* msg = (MSG*)lParam;

if(msg->message == WM_KEYDOWN)
{
switch(msg->wParam)
{
case VK_F13: PostMessage(HWND_BROADCAST, WM_DVSPREVSUB, 0, 0); break;
case VK_F14: PostMessage(HWND_BROADCAST, WM_DVSNEXTSUB, 0, 0); break;
case VK_F15: PostMessage(HWND_BROADCAST, WM_DVSHIDESUB, 0, 0); break;
case VK_F16: PostMessage(HWND_BROADCAST, WM_DVSSHOWSUB, 0, 0); break;
case VK_F17: PostMessage(HWND_BROADCAST, WM_DVSSHOWHIDESUB, 0, 0); break;
default: break;
}
}

// Always call next hook in chain
return CallNextHookEx(g_hHook, code, wParam, lParam);
}

F13 to F17 seem to be properly defined; I am not sure why I cannot get it to work.

What I have found though is one of the Remote Wonder plugins that can control DVobSub does the following:


// Get DirectVobSub window
HWND hDVS = FindWindow(NULL, "DVSWND");
(...)
case RMCTRL_UP:
if (hDVS)
{
PostMessage(hDVS, RegisterWindowMessage(TEXT("WM_DVSPREVSUB")), 0, 0);
}
return TRUE;

case RMCTRL_DOWN:
if (hDVS)
{
PostMessage(hDVS, RegisterWindowMessage(TEXT("WM_DVSNEXTSUB")), 0, 0);
}
return TRUE;


Any way to do something similar from a Windows Script?