Avatar billede moonseer Nybegynder
21. marts 2003 - 12:25 Der er 11 kommentarer og
1 løsning

Tilføj en knap til outlook express toolbar

Hej

Jeg prøver at tilføje en knap til outlook express's toolbar.

Jeg har søgt snart overalt på nettet, og det bedste (og eneste)jeg har fundet er nedenstående eksempel.

Jeg kan ikke få eksemplet til at virke, så det er der måske nogen herinde der kan?, eller ved om det kan gøres på en anden måde.

Efter hvad jeg kan finde ud, skal det laved ved hjælp af windows hook programming.

Håber at der er nogen der kan løse dette lille problem.

Martin
Avatar billede Brian Moos Lindberg Praktikant
21. marts 2003 - 12:28 #1
hvilket eksempel ?
Avatar billede impulze Nybegynder
21. marts 2003 - 12:29 #2
højere klik på toolbaren >> tilpas >> der?

ved ikke, men måske ;D
Avatar billede Brian Moos Lindberg Praktikant
21. marts 2003 - 12:30 #3
impulze -> se lige hvilken kategori vi befinder os i...
Avatar billede moonseer Nybegynder
21. marts 2003 - 12:34 #4
UPS, det var vist lige FJOLS til mig.

Her er det så.

LRESULT CALLBACK CBTProc(int nCode, WPARAM wParam, LPARAM lParam)
{
HWND hWnd;
TCHAR szClass[BUFSIZE];

if(nCode < 0)
  return CallNextHookEx(g_hhHook, nCode, wParam, lParam);

hWnd = (HWND)wParam;

switch(nCode)
{
case HCBT_CREATEWND:
  GetClassName(hWnd, szClass, sizeof(szClass) - 1);
  if(!strcmp(szClass, "ATH_Note"))
  {
  g_bHookInit = FALSE;
  g_pfnOutlookExProc =
    (WNDPROC) SetWindowLong(hWnd, GWL_WNDPROC, (LONG)OutlookExpressProc);
  }
  break;
}

return CallNextHookEx(g_hhHook, nCode, wParam, lParam);
}

LRESULT CALLBACK OutlookExpressProc(HWND hwnd, UINT uiMsg, WPARAM wParam,
LPARAM lParam)
{
static int iTimerID = 0;

if (iTimerID == 0)
  iTimerID = SetTimer(hwnd, 1, 100, NULL);

switch (uiMsg)
{
case WM_CREATE:
  iTimerID = 0;
  break;

case WM_TIMER:
  KillTimer(hwnd, iTimerID);

  if(!g_bHookInit)
  {
  HWND hwndSizableRebar;
  HWND hwndReBarWindow32;
  REBARBANDINFO rbBand;

  hwndSizableRebar  = FindWindowEx(hwnd, NULL, "SizableRebar", NULL);
  hwndReBarWindow32 = FindWindowEx(hwndSizableRebar, NULL, "ReBarWindow32",
NULL);

  rbBand.cbSize = sizeof(REBARBANDINFO);
  rbBand.fMask  = RBBIM_CHILD;
  SendMessage(hwndReBarWindow32, RB_GETBANDINFO, 2, (LPARAM)&rbBand);

  if(rbBand.hwndChild != NULL)
  {
    TBBUTTON tbButton;
    SendMessage(rbBand.hwndChild, TB_GETBUTTON, 0, (LPARAM)&tbButton);

    char szBuf[256];
    LoadString(g_hInst, IDS_CUSTOMBTN, (LPSTR) &szBuf, strlen(szBuf) - 1);
    int iBtnStringID = SendMessage(rbBand.hwndChild, TB_ADDSTRING, (WPARAM)
0, (LPARAM) (LPSTR) szBuf);

    tbButton.idCommand = ID_OE_CUSTOMBTN;
    tbButton.dwData    = 100;
    tbButton.iString  = iBtnStringID;
    tbButton.fsState  = TBSTATE_ENABLED;
    tbButton.fsStyle  = TBSTYLE_AUTOSIZE | TBSTYLE_BUTTON;
    SendMessage(rbBand.hwndChild, TB_INSERTBUTTON, 1, (LPARAM)&tbButton);

    g_hwndToolbar = rbBand.hwndChild;
    g_bHookInit = TRUE;
  }
  }
  break;
}

switch (LOWORD(wParam))
{
case ID_OE_CUSTOMBTN:
  MessageBox(NULL, "CUSTOMBTN", "Outlook Express", IDOK);
  break;

case ID_OE_SEND:
  MessageBox(NULL, "Send", "Outlook Express", IDOK);
  break;

default:
  break;
}

return CallWindowProc(g_pfnOutlookExProc, hwnd, uiMsg, wParam, lParam);
}
Avatar billede Brian Moos Lindberg Praktikant
21. marts 2003 - 12:36 #5
/me har ingen forstand på c/c++... det var bare fordi eksemplet manglede at spørgsmålet fangede min interesse... ;-P
/Brian.
Avatar billede tam Nybegynder
21. marts 2003 - 12:44 #6
Du kan finde et eksempel i C++ forum'et på http://codeproject.com der blev det diskuteret i sidste uge, lagde jeg mærke til.
Avatar billede moonseer Nybegynder
21. marts 2003 - 13:23 #7
Jeg kan ikke lige finde eksemplet, du har vel ikke er link til artiklen på codeproject
Avatar billede tam Nybegynder
21. marts 2003 - 13:53 #8
Desværre, nu kan jeg heller ikke finde det. Hvis jeg finder det poster jeg lige et link...
Avatar billede moonseer Nybegynder
09. april 2003 - 22:10 #9
Hallo, Jeg har stadig ikke fundet ud af det. Er der ingen andre der har et forslag.
Avatar billede segmose Nybegynder
10. april 2003 - 09:11 #10
Beskriv venligst problemet nærmere, kan det ikke compile, kalder den ikke tilbage eller hvad?
Avatar billede moonseer Nybegynder
10. april 2003 - 14:46 #11
Det der er problemet er at jeg har fundet eksemplet, men ud fra hvad jeg kan finde ud af mangler noget  af det. Der hvor jeg fandt det har vedkommenede altså ikke postet hele sin kode gætter jeg på.

Og jeg ved ikke hvad der mere skal til for at det kan virke.

Det kan som du selv siger ikke compile, jeg kan ikke lige huske fejlen nu, men jeg kan poste den iaften.
Avatar billede moonseer Nybegynder
01. august 2003 - 12:07 #12
Hmmm.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester