View Single Post
Old 05-10-2008, 08:18 AM   #15
sws
Code Monkey
 
sws's Avatar
 
Join Date: Sep 2007
Location: Madison, WI
Posts: 857
Default

Hey Deric,
As Xen said, you really can't send "complex" keystrokes into Reaper very easily. If you're trying to just call a command, use the Main_OnCommand() functionality.

Are you trying to use a button on the control surface as a shift/control/alt key for modifying mouse events? Then use the control surface class funtion IsKeyDown(). Reaper calls this function in your code everytime it needs to know if there are keys down. You return true if that key is pressed on your surface. In the MCU code it's like this:
Code:
    bool IsKeyDown(int key) 
    { 
      if (m_midiin && !m_is_mcuex)
      {
        if (key == VK_SHIFT) return !!(m_mackie_modifiers&1);
        if (key == VK_CONTROL) return !!(m_mackie_modifiers&4);
        if (key == VK_MENU) return !!(m_mackie_modifiers&8);
      }
VK_MENU is the "ALT" key.

Single keystrokes are easily sent with:
Code:
PostMessage(hwnd, WM_KEYDOWN, key, 0);
PostMessage(hwnd, WM_KEYUP, key, 0);
I can't find a way to make mouseclicks work, unfortunately.

Hope this helps!
sws is offline   Reply With Quote