# Environnements de dveloppement > Autres EDI > Powerbuilder >  [PowerBuilder] Function PeekMessage Lib "user32"

## jpdar

Bonjour, 

Sous Powerbuilder je souhaite dclarer et utiliser l'api windows "Private Declare Function PeekMessage Lib "user32" Alias "PeekMessageA" (lpMsg As Msg, ByVal hWnd As Long, ByVal wMsgFilterMin As Long, ByVal wMsgFilterMax As Long, ByVal wRemoveMsg As Long) As Long "

Le premier problme vient du fait que lpmsg est de type Msg qui n'est pas connu par PB, peut etre est il possible de le dclarer mais ou ??

D'autre part je souhaiterai detecter voire arreter lors d'un traitement repetitif la serie de messagebox d'erreur par un escape ou un ctrl C ralis par l'utilisateur. Je ne peux pas utiliser Yield() car l'apparition de ces messagebox met yield a true dans tous les cas or je souhaite detecter seulement le cas Ctrl C (ou escape peu importe).
C'est pour cette derniere raison que je me sui tourne vers les API de windows !!!

Merci 

jpdar

----------


## Thig

Bonjour

Essaye de crer une structure PB str_win_message correspondant  la structure C/C++ de l'API Windows. REF permet d'utiliser un pointeur sur cette structure.



```
FUNCTION BOOLean PeekMessage&#40;REF str_win_message lpmsg,uint hwnd, uint ufilterfirst, uint ufilterlast, uint fuRemove&#41; library "user32.dll"
```


A+ Thig

----------


## jpdar

Merci,

J'ai pu avancer mais je bute sur point de la structure str_win_message lpmsg, j'ai essaye de le declarer dans une autre structure mais powerbuilderne semble pas accepter dans la structure str_win_message la struct point !!!

Je ne sais pas comment faire.
En plus par quoi remplacer DWORD, WPARAM, ... dans PB

D'autre part je souhaiterai savoir une fois ces problemes resolus comment utiliser peekmessage pour savoir si l'utilisateur a fait un ctrl C pendant l'execution d'un programme ???

Merci pour toute reponse susceptible de me permettre d'avancer !!!


jpdar

----------


## Thig

Bonjour.

Il faut dclarer une structure pb locale ou globale de ce type :

=>  New / Pb object / Structure :



```

```

Pour l'utilisation de la fonction, il faut voir la doc Windows ... personnellement, pour capturer un vnement clavier, j'utilise plutt  l'vent "Key" d'une fentre ou la fonction Pb "keyDown()"

A+ Thig

----------


## jpdar

En fait le probleme vient du fait que pt est aussi une structure donc il faut la declarer en structure globale et ensuite l'integrer a la struct str_win_message et ca marche.

Par contre je ne sais pas quelle doivent etre les param wparam et lparam
pour verifier si le ctrl C par exemple a ete appuye !!!

Merci.

jpdar

----------

