K-Meleon

#include "stdafx.h"

#define KMELEON_PLUGIN_EXPORTS?
#include "kmeleon_plugin.h"

BOOL APIENTRY DllMain? (
        HANDLE hModule,
        DWORD ul_reason_for_call,
        LPVOID lpReserved) { 

  return TRUE;
}

LRESULT CALLBACK WndProc? (
        HWND hWnd, UINT message, 
        WPARAM wParam, 
        LPARAM lParam);

void * KMeleonWndProc?;

int Init();
void Create(HWND parent);
void Config(HWND parent);
void Quit();
void DoMenu?(HMENU menu, char *param);
long DoMessage?(const char *to, const char *from, const char *subject, long data1, long data2);
void DoRebar?(HWND rebarWnd);
int DoAccel?(char *param);

kmeleonPlugin kPlugin = {
   KMEL_PLUGIN_VER?,
   "A Plugin That Does Nothing",
   DoMessage?
};

long DoMessage?(const char *to, const char *from, const char *subject, long data1, long data2)
{
   if (to0?  '*' || stricmp(to, kPlugin.dllname)  0) {
      if (stricmp(subject, "Init") == 0) {
         Init();
      }
      else if (stricmp(subject, "Create") == 0) {
         Create((HWND)data1);
      }
      else if (stricmp(subject, "Config") == 0) {
         Config((HWND)data1);
      }
      else if (stricmp(subject, "Quit") == 0) {
         Quit();
      }
      else if (stricmp(subject, "DoMenu?") == 0) {
         DoMenu?((HMENU)data1, (char *)data2);
      }
      else if (stricmp(subject, "DoRebar?") == 0) {
         DoRebar?((HWND)data1);
      }
      else if (stricmp(subject, "DoAccel?") == 0) {
          *(int *)data2 = DoAccel?((char *)data1);
      }
      else return 0;

      return 1;
   }
   return 0;
}

int Init(){
   return true;
}

void Create(HWND parent){
   KMeleonWndProc? = (void *) GetWindowLong?(parent, GWL_WNDPROC);
   SetWindowLong?(parent, GWL_WNDPROC, (LONG)WndProc?);
}

void Config(HWND parent){
   MessageBox?(parent, "This plugin does absolutely nothing", "Nothing", 0);
}

void Quit(){
}

void DoMenu?(HMENU menu, char *param){
}

int DoAccel?(char *param) {
   return 0;
}

void DoRebar?(HWND rebarWnd){
}

LRESULT CALLBACK WndProc?(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){
   if (message == WM_COMMAND){
          WORD command = LOWORD(wParam);
   }

   return CallWindowProc?((WNDPROC)KMeleonWndProc?, hWnd, message, wParam, lParam);
}

extern "C" {
   KMELEON_PLUGIN kmeleonPlugin *GetKmeleonPlugin?() {
          return &kPlugin;
   }


K-Meleon

(c) 2000-2010 kmeleonbrowser.org. All rights reserved.
design by splif.