mirror of
https://github.com/WinampDesktop/winamp.git
synced 2025-06-18 20:15:46 -04:00
Initial community commit
This commit is contained in:
91
Src/Plugins/General/gen_hotkeys/wa_hotkeys.h
Normal file
91
Src/Plugins/General/gen_hotkeys/wa_hotkeys.h
Normal file
@ -0,0 +1,91 @@
|
||||
#ifndef WA_HOTKEYS
|
||||
#define WA_HOTKEYS
|
||||
|
||||
/*
|
||||
** #define IPC_GEN_HOTKEYS_ADD xxxx // pass a genHotkeysAddStruct * struct in data
|
||||
**
|
||||
** To get the IPC_GEN_HOTKEYS_ADD IPC number, you need to do this:
|
||||
**
|
||||
** genhotkeys_add_ipc=SendMessage(winampWindow,WM_WA_IPC,(WPARAM)&"GenHotkeysAdd",IPC_REGISTER_WINAMP_IPCMESSAGE);
|
||||
**
|
||||
** Then you can use:
|
||||
**
|
||||
** PostMessage(winampWindow,WM_WA_IPC,(WPARAM)&myGenHotkeysAddStruct,genhotkeys_add_ipc);
|
||||
*/
|
||||
|
||||
//flags for the genHotkeysAddStruct struct
|
||||
#define HKF_BRING_TO_FRONT 0x1 // calls SetForegroundWindow before sending the message
|
||||
#define HKF_HWND_WPARAM 0x2 // sets wParam with Winamp's window handle
|
||||
#define HKF_COPY 0x4 // copies returned text to the clipboard (using CF_TEXT)
|
||||
#define HKF_PLPOS_WPARAM 0x8 // sets wParam with current pledit position
|
||||
#define HKF_ISPLAYING_WL 0x10 // sets wParam to genHotkeysAddStruct's wParam if playing, lParam if not
|
||||
// uses IPC_ISPLAYING to check if playing
|
||||
#define HKF_SHOWHIDE 0x20 // brings Winamp to front or minimizes Winamp if already at front
|
||||
#define HKF_NOSENDMSG 0x40 // don't send any message to the winamp window
|
||||
|
||||
#define HKF_COPYW 0x80 // copies returned text to the clipboard (using CF_UNICODETEXT)
|
||||
#define HKF_UNICODE_NAME 0x100 // set this when the 'name' is passed as a unicode string
|
||||
|
||||
#define HKF_DISABLED 0x80000000
|
||||
|
||||
#include "WinDef.h"
|
||||
|
||||
typedef struct {
|
||||
char *name; //name that will appear in the Global Hotkeys preferences panel
|
||||
DWORD flags; //one or more flags from above
|
||||
UINT uMsg; //message that will be sent to winamp's main window (must always be !=NULL)
|
||||
WPARAM wParam; //wParam that will be sent to winamp's main window
|
||||
LPARAM lParam; //lParam that will be sent to winamp's main window
|
||||
char *id; //unique string to identify this command - case insensitive
|
||||
HWND wnd; //set the HWND to send message (or 0 for main winamp window)
|
||||
|
||||
int extended[6]; //for future extension - always set to zero!
|
||||
} genHotkeysAddStruct;
|
||||
|
||||
/*
|
||||
** Before calling this function you need to setup the genHotkeysAddStruct struct
|
||||
**
|
||||
** genHotkeysAddStruct test_key = {0}; // this will make the compiler zero the struct for you
|
||||
** // though you can do it manually if you want to as well
|
||||
**
|
||||
** UINT test_ipc = 0; // this will hold the uMsg value to look for in the assigned window proc
|
||||
**
|
||||
** // then call the function to register the hotkey
|
||||
** AddGlobalHotkey(&test_key,"Playback: Test key","Test_key",&test_ipc);
|
||||
**
|
||||
** void AddGlobalHotkey(genHotkeysAddStruct *hotkey, char* name, char* id, int* ipc){
|
||||
** UINT genhotkeys_add_ipc = 0;
|
||||
** hotkey->wnd = 0;
|
||||
** hotkey->flags = 0;
|
||||
** hotkey->name = name;
|
||||
** hotkey->id = id;
|
||||
** *ipc = hotkey->uMsg = SendMessage(winampWindow,WM_WA_IPC,(WPARAM)&hotkey->id,IPC_REGISTER_WINAMP_IPCMESSAGE);
|
||||
**
|
||||
** genhotkeys_add_ipc=SendMessage(winampWindow,WM_WA_IPC,(WPARAM)&"GenHotkeysAdd",IPC_REGISTER_WINAMP_IPCMESSAGE);
|
||||
** PostMessage(winampWindow,WM_WA_IPC,(WPARAM)hotkey,genhotkeys_add_ipc);
|
||||
** }
|
||||
*/
|
||||
|
||||
/*
|
||||
** This shows how to detect the registered hotkey message
|
||||
** then it's upto you what you do
|
||||
**
|
||||
** LRESULT CALLBACK WinampWnd(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam){
|
||||
** int ret = 0;
|
||||
**
|
||||
** // handles the hotkey for the option :o)
|
||||
** if(uMsg == test_ipc){
|
||||
** // here you can do things needed for the hotkey you registered
|
||||
** }
|
||||
**
|
||||
** // do stuff before the winamp proc has been called
|
||||
**
|
||||
** ret = CallWindowProc(WinampProc,hwnd,uMsg,wParam,lParam);
|
||||
**
|
||||
** // do other stuff after the winamp proc has been called
|
||||
** // then return the value from CallWindowProc(..)
|
||||
** return ret;
|
||||
** }
|
||||
*/
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user