ReactOS  0.4.13-dev-563-g0561610
ipaddress.c File Reference
#include <ctype.h>
#include <stdlib.h>
#include <stdarg.h>
#include <stdio.h>
#include <string.h>
#include "windef.h"
#include "winbase.h"
#include "wingdi.h"
#include "winuser.h"
#include "winnls.h"
#include "commctrl.h"
#include "comctl32.h"
#include "uxtheme.h"
#include "vsstyle.h"
#include "vssym32.h"
#include "wine/unicode.h"
#include "wine/debug.h"
#include "wine/heap.h"
Include dependency graph for ipaddress.c:

Go to the source code of this file.

Classes

struct  IPPART_INFO
 
struct  IPADDRESS_INFO
 

Macros

#define POS_DEFAULT   0
 
#define POS_LEFT   1
 
#define POS_RIGHT   2
 
#define POS_SELALL   3
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (ipaddress)
 
static LRESULT CALLBACK IPADDRESS_SubclassProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
 
static void IPADDRESS_UpdateText (const IPADDRESS_INFO *infoPtr)
 
static LRESULT IPADDRESS_Notify (const IPADDRESS_INFO *infoPtr, UINT command)
 
static INT IPADDRESS_IPNotify (const IPADDRESS_INFO *infoPtr, INT field, INT value)
 
static int IPADDRESS_GetPartIndex (const IPADDRESS_INFO *infoPtr, HWND hwnd)
 
static LRESULT IPADDRESS_Draw (const IPADDRESS_INFO *infoPtr, HDC hdc)
 
static LRESULT IPADDRESS_Create (HWND hwnd, const CREATESTRUCTA *lpCreate)
 
static LRESULT IPADDRESS_Destroy (IPADDRESS_INFO *infoPtr)
 
static LRESULT IPADDRESS_Enable (IPADDRESS_INFO *infoPtr, BOOL enabled)
 
static LRESULT IPADDRESS_Paint (const IPADDRESS_INFO *infoPtr, HDC hdc)
 
static BOOL IPADDRESS_IsBlank (const IPADDRESS_INFO *infoPtr)
 
static int IPADDRESS_GetAddress (const IPADDRESS_INFO *infoPtr, LPDWORD ip_address)
 
static BOOL IPADDRESS_SetRange (IPADDRESS_INFO *infoPtr, int index, WORD range)
 
static void IPADDRESS_ClearAddress (const IPADDRESS_INFO *infoPtr)
 
static LRESULT IPADDRESS_SetAddress (const IPADDRESS_INFO *infoPtr, DWORD ip_address)
 
static void IPADDRESS_SetFocusToField (const IPADDRESS_INFO *infoPtr, INT index)
 
static BOOL IPADDRESS_ConstrainField (const IPADDRESS_INFO *infoPtr, int currentfield)
 
static BOOL IPADDRESS_GotoNextField (const IPADDRESS_INFO *infoPtr, int cur, int sel)
 
static LRESULT WINAPI IPADDRESS_WindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
 
void IPADDRESS_Register (void)
 
void IPADDRESS_Unregister (void)
 

Variables

static const WCHAR IP_SUBCLASS_PROP []
 

Macro Definition Documentation

◆ POS_DEFAULT

#define POS_DEFAULT   0

Definition at line 66 of file ipaddress.c.

◆ POS_LEFT

#define POS_LEFT   1

Definition at line 67 of file ipaddress.c.

◆ POS_RIGHT

#define POS_RIGHT   2

Definition at line 68 of file ipaddress.c.

◆ POS_SELALL

#define POS_SELALL   3

Definition at line 69 of file ipaddress.c.

Function Documentation

◆ IPADDRESS_ClearAddress()

static void IPADDRESS_ClearAddress ( const IPADDRESS_INFO infoPtr)
static

Definition at line 362 of file ipaddress.c.

363 {
364  static const WCHAR nil[] = { 0 };
365  int i;
366 
367  TRACE("\n");
368 
369  for (i = 0; i < 4; i++)
370  SetWindowTextW (infoPtr->Part[i].EditHwnd, nil);
371 }
BOOL WINAPI SetWindowTextW(_In_ HWND, _In_opt_ LPCWSTR)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
HWND EditHwnd
Definition: ipaddress.c:49
#define TRACE(s)
Definition: solgame.cpp:4
__wchar_t WCHAR
Definition: xmlstorage.h:180
IPPART_INFO Part[4]
Definition: ipaddress.c:60
#define nil
Definition: compat.h:23

Referenced by IPADDRESS_WindowProc().

◆ IPADDRESS_ConstrainField()

static BOOL IPADDRESS_ConstrainField ( const IPADDRESS_INFO infoPtr,
int  currentfield 
)
static

Definition at line 407 of file ipaddress.c.

408 {
409  static const WCHAR fmt[] = { '%', 'd', 0 };
410  const IPPART_INFO *part;
411  int curValue, newValue;
412  WCHAR field[10];
413 
414  TRACE("(currentfield=%d)\n", currentfield);
415 
416  if (currentfield < 0 || currentfield > 3) return FALSE;
417 
418  part = &infoPtr->Part[currentfield];
419  if (!GetWindowTextW (part->EditHwnd, field, 4)) return FALSE;
420 
421  curValue = atoiW(field);
422  TRACE(" curValue=%d\n", curValue);
423 
424  newValue = IPADDRESS_IPNotify(infoPtr, currentfield, curValue);
425  TRACE(" newValue=%d\n", newValue);
426 
427  if (newValue < part->LowerLimit) newValue = part->LowerLimit;
428  if (newValue > part->UpperLimit) newValue = part->UpperLimit;
429 
430  if (newValue == curValue) return FALSE;
431 
432  wsprintfW (field, fmt, newValue);
433  TRACE(" field=%s\n", debugstr_w(field));
434  return SetWindowTextW (part->EditHwnd, field);
435 }
int WINAPIV wsprintfW(_Out_ LPWSTR, _In_ _Printf_format_string_ LPCWSTR,...)
BOOL WINAPI SetWindowTextW(_In_ HWND, _In_opt_ LPCWSTR)
#define debugstr_w
Definition: kernel32.h:32
static INT IPADDRESS_IPNotify(const IPADDRESS_INFO *infoPtr, INT field, INT value)
Definition: ipaddress.c:107
HWND EditHwnd
Definition: ipaddress.c:49
#define TRACE(s)
Definition: solgame.cpp:4
__wchar_t WCHAR
Definition: xmlstorage.h:180
Definition: parser.c:43
int WINAPI GetWindowTextW(HWND hWnd, LPWSTR lpString, int nMaxCount)
Definition: window.c:1378
IPPART_INFO Part[4]
Definition: ipaddress.c:60
INT LowerLimit
Definition: ipaddress.c:50
INT UpperLimit
Definition: ipaddress.c:51
Definition: dsound.c:943
WINE_UNICODE_INLINE int atoiW(const WCHAR *str)
Definition: unicode.h:315

Referenced by IPADDRESS_GotoNextField(), IPADDRESS_SubclassProc(), and IPADDRESS_WindowProc().

◆ IPADDRESS_Create()

static LRESULT IPADDRESS_Create ( HWND  hwnd,
const CREATESTRUCTA lpCreate 
)
static

Definition at line 209 of file ipaddress.c.

210 {
211  IPADDRESS_INFO *infoPtr;
212  RECT rcClient, edit;
213  int i, fieldsize;
214  HFONT hFont, hSysFont;
215  LOGFONTW logFont, logSysFont;
216 
217  TRACE("\n");
218 
221 
222  infoPtr = heap_alloc_zero (sizeof(*infoPtr));
223  if (!infoPtr) return -1;
224  SetWindowLongPtrW (hwnd, 0, (DWORD_PTR)infoPtr);
225 
226  GetClientRect (hwnd, &rcClient);
227 
228  fieldsize = (rcClient.right - rcClient.left) / 4;
229 
230  edit.top = rcClient.top + 2;
231  edit.bottom = rcClient.bottom - 2;
232 
233  infoPtr->Self = hwnd;
234  infoPtr->Enabled = TRUE;
235  infoPtr->Notify = lpCreate->hwndParent;
236 
237  hSysFont = GetStockObject(ANSI_VAR_FONT);
238  GetObjectW(hSysFont, sizeof(LOGFONTW), &logSysFont);
240  strcpyW(logFont.lfFaceName, logSysFont.lfFaceName);
241  hFont = CreateFontIndirectW(&logFont);
242 
243  for (i = 0; i < 4; i++) {
244  IPPART_INFO* part = &infoPtr->Part[i];
245 
246  part->LowerLimit = 0;
247  part->UpperLimit = 255;
248  edit.left = rcClient.left + i*fieldsize + 6;
249  edit.right = rcClient.left + (i+1)*fieldsize - 2;
250  part->EditHwnd =
252  edit.left, edit.top, edit.right - edit.left,
253  edit.bottom - edit.top, hwnd, (HMENU) 1,
257  part->OrigProc = (WNDPROC)
260  EnableWindow(part->EditHwnd, infoPtr->Enabled);
261  }
262 
263  IPADDRESS_UpdateText (infoPtr);
264 
265  return 0;
266 }
HGDIOBJ WINAPI GetStockObject(_In_ int)
#define ES_CENTER
Definition: pedump.c:665
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
#define TRUE
Definition: types.h:120
#define WC_EDITW
Definition: commctrl.h:4658
LONG top
Definition: windef.h:292
UINT_PTR WPARAM
Definition: windef.h:207
#define WS_CHILD
Definition: pedump.c:617
#define GetWindowLongPtrW
Definition: winuser.h:4698
LONG left
Definition: windef.h:291
LONG right
Definition: windef.h:293
#define CreateWindowW(a, b, c, d, e, f, g, h, i, j, k)
Definition: winuser.h:4185
HFONT hFont
Definition: main.c:53
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
LONG WINAPI SetWindowLongW(_In_ HWND, _In_ int, _In_ LONG)
LONG WINAPI GetWindowLongW(_In_ HWND, _In_ int)
smooth NULL
Definition: ftsmooth.c:416
HFONT WINAPI CreateFontIndirectW(_In_ const LOGFONTW *)
HWND EditHwnd
Definition: ipaddress.c:49
BOOL WINAPI SystemParametersInfoW(_In_ UINT, _In_ UINT, _Inout_opt_ PVOID, _In_ UINT)
static LRESULT CALLBACK IPADDRESS_SubclassProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: ipaddress.c:499
#define TRACE(s)
Definition: solgame.cpp:4
BOOL WINAPI SetPropW(_In_ HWND, _In_ LPCWSTR, _In_opt_ HANDLE)
static void IPADDRESS_UpdateText(const IPADDRESS_INFO *infoPtr)
Definition: ipaddress.c:74
uint32_t DWORD_PTR
Definition: typedefs.h:63
#define GWLP_WNDPROC
Definition: treelist.c:66
BOOL WINAPI EnableWindow(_In_ HWND, _In_ BOOL)
LRESULT(CALLBACK * WNDPROC)(HWND, UINT, WPARAM, LPARAM)
Definition: winuser.h:2859
#define GWL_STYLE
Definition: winuser.h:846
static const WCHAR IP_SUBCLASS_PROP[]
Definition: ipaddress.c:63
int WINAPI GetObjectW(_In_ HANDLE h, _In_ int c, _Out_writes_bytes_opt_(c) LPVOID pv)
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
WNDPROC OrigProc
Definition: ipaddress.c:52
WINE_UNICODE_INLINE WCHAR * strcpyW(WCHAR *dst, const WCHAR *src)
Definition: unicode.h:219
#define WS_BORDER
Definition: pedump.c:625
#define ANSI_VAR_FONT
Definition: wingdi.h:906
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
IPPART_INFO Part[4]
Definition: ipaddress.c:60
#define SPI_GETICONTITLELOGFONT
Definition: winuser.h:1362
#define WM_SETFONT
Definition: winuser.h:1632
static DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
#define GWLP_HINSTANCE
Definition: winuser.h:850
INT LowerLimit
Definition: ipaddress.c:50
WCHAR lfFaceName[LF_FACESIZE]
Definition: dimm.idl:72
INT UpperLimit
Definition: ipaddress.c:51
LONG bottom
Definition: windef.h:294
#define SetWindowLongPtrW
Definition: winuser.h:5215
#define WS_VISIBLE
Definition: pedump.c:620
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
Definition: ordinal.c:60

Referenced by IPADDRESS_WindowProc().

◆ IPADDRESS_Destroy()

static LRESULT IPADDRESS_Destroy ( IPADDRESS_INFO infoPtr)
static

Definition at line 269 of file ipaddress.c.

270 {
271  int i;
272 
273  TRACE("\n");
274 
275  for (i = 0; i < 4; i++) {
276  IPPART_INFO* part = &infoPtr->Part[i];
278  }
279 
280  SetWindowLongPtrW (infoPtr->Self, 0, 0);
281  heap_free (infoPtr);
282  return 0;
283 }
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
HWND EditHwnd
Definition: ipaddress.c:49
#define TRACE(s)
Definition: solgame.cpp:4
uint32_t DWORD_PTR
Definition: typedefs.h:63
#define GWLP_WNDPROC
Definition: treelist.c:66
WNDPROC OrigProc
Definition: ipaddress.c:52
IPPART_INFO Part[4]
Definition: ipaddress.c:60
#define SetWindowLongPtrW
Definition: winuser.h:5215
static BOOL heap_free(void *mem)
Definition: appwiz.h:75

Referenced by IPADDRESS_WindowProc().

◆ IPADDRESS_Draw()

static LRESULT IPADDRESS_Draw ( const IPADDRESS_INFO infoPtr,
HDC  hdc 
)
static

Definition at line 142 of file ipaddress.c.

143 {
144  static const WCHAR dotW[] = { '.', 0 };
145  RECT rect, rcPart;
146  COLORREF bgCol, fgCol;
147  HTHEME theme;
148  int i, state = ETS_NORMAL;
149 
150  TRACE("\n");
151 
152  GetClientRect (infoPtr->Self, &rect);
153 
154  theme = OpenThemeData(infoPtr->Self, WC_EDITW);
155 
156  if (theme) {
157  DWORD dwStyle = GetWindowLongW (infoPtr->Self, GWL_STYLE);
158 
159  if (!infoPtr->Enabled)
161  else if (dwStyle & ES_READONLY)
163  else if (GetFocus() == infoPtr->Self)
164  state = ETS_FOCUSED;
165 
166  GetThemeColor(theme, EP_EDITTEXT, state, TMT_FILLCOLOR, &bgCol);
167  GetThemeColor(theme, EP_EDITTEXT, state, TMT_TEXTCOLOR, &fgCol);
168 
170  DrawThemeParentBackground(infoPtr->Self, hdc, &rect);
171  DrawThemeBackground (theme, hdc, EP_EDITTEXT, state, &rect, 0);
172  } else {
173  if (infoPtr->Enabled) {
174  bgCol = comctl32_color.clrWindow;
176  } else {
177  bgCol = comctl32_color.clr3dFace;
178  fgCol = comctl32_color.clrGrayText;
179  }
180 
181  FillRect (hdc, &rect, (HBRUSH)(DWORD_PTR)(bgCol+1));
183  }
184 
185  SetBkColor (hdc, bgCol);
186  SetTextColor(hdc, fgCol);
187 
188  for (i = 0; i < 3; i++) {
189  GetWindowRect (infoPtr->Part[i].EditHwnd, &rcPart);
190  MapWindowPoints( 0, infoPtr->Self, (POINT *)&rcPart, 2 );
191  rect.left = rcPart.right;
192  GetWindowRect (infoPtr->Part[i+1].EditHwnd, &rcPart);
193  MapWindowPoints( 0, infoPtr->Self, (POINT *)&rcPart, 2 );
194  rect.right = rcPart.left;
195 
196  if (theme)
198  else
200  }
201 
202  if (theme)
203  CloseThemeData(theme);
204 
205  return 0;
206 }
#define WC_EDITW
Definition: commctrl.h:4658
int WINAPI MapWindowPoints(_In_opt_ HWND hWndFrom, _In_opt_ HWND hWndTo, _Inout_updates_(cPoints) LPPOINT lpPoints, _In_ UINT cPoints)
static HTHEME(WINAPI *pOpenThemeDataEx)(HWND
#define ES_READONLY
Definition: pedump.c:675
LONG left
Definition: windef.h:291
COLORREF clr3dFace
Definition: comctl32.h:167
LONG right
Definition: windef.h:293
HRESULT WINAPI DrawThemeBackground(HTHEME hTheme, HDC hdc, int iPartId, int iStateId, const RECT *pRect, const RECT *pClipRect)
Definition: draw.c:128
& rect
Definition: startmenu.cpp:1413
#define BF_ADJUST
Definition: winuser.h:470
COLORREF WINAPI SetBkColor(_In_ HDC, _In_ COLORREF)
Definition: dc.c:975
COLORREF clrWindowText
Definition: comctl32.h:169
BOOL WINAPI IsThemeBackgroundPartiallyTransparent(HTHEME hTheme, int iPartId, int iStateId)
Definition: draw.c:1883
#define BF_RECT
Definition: winuser.h:462
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
BOOL WINAPI DrawEdge(_In_ HDC, _Inout_ LPRECT, _In_ UINT, _In_ UINT)
#define TMT_TEXTCOLOR
Definition: vssym32.h:328
LONG WINAPI GetWindowLongW(_In_ HWND, _In_ int)
HWND EditHwnd
Definition: ipaddress.c:49
HRESULT WINAPI DrawThemeParentBackground(HWND hwnd, HDC hdc, RECT *prc)
Definition: draw.c:72
#define TRACE(s)
Definition: solgame.cpp:4
__wchar_t WCHAR
Definition: xmlstorage.h:180
DWORD COLORREF
Definition: windef.h:285
unsigned long DWORD
Definition: ntddk_ex.h:95
HTHEME WINAPI OpenThemeData(HWND hwnd, LPCWSTR classlist)
Definition: system.c:835
COMCTL32_SysColor comctl32_color
Definition: commctrl.c:82
HDC hdc
Definition: main.c:9
static int state
Definition: maze.c:121
uint32_t DWORD_PTR
Definition: typedefs.h:63
HRESULT WINAPI GetThemeColor(HTHEME hTheme, int iPartId, int iStateId, int iPropId, COLORREF *pColor)
Definition: property.c:45
#define GWL_STYLE
Definition: winuser.h:846
COLORREF WINAPI SetTextColor(_In_ HDC, _In_ COLORREF)
Definition: text.c:886
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
#define DT_SINGLELINE
Definition: winuser.h:540
COLORREF clrGrayText
Definition: comctl32.h:170
IPPART_INFO Part[4]
Definition: ipaddress.c:60
HWND WINAPI GetFocus(void)
Definition: window.c:1875
#define DT_CENTER
Definition: winuser.h:527
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)
#define EDGE_SUNKEN
Definition: winuser.h:451
int WINAPI FillRect(HDC, LPCRECT, HBRUSH)
COLORREF clrWindow
Definition: comctl32.h:168
#define DT_BOTTOM
Definition: winuser.h:525
static const WCHAR dotW[]
Definition: directory.c:80
HRESULT WINAPI CloseThemeData(HTHEME hTheme)
Definition: system.c:950
HRESULT WINAPI DrawThemeText(HTHEME hTheme, HDC hdc, int iPartId, int iStateId, LPCWSTR pszText, int iCharCount, DWORD dwTextFlags, DWORD dwTextFlags2, const RECT *pRect)
Definition: draw.c:1377
#define TMT_FILLCOLOR
Definition: vssym32.h:327
INT WINAPI DrawTextW(HDC hdc, LPCWSTR str, INT count, LPRECT rect, UINT flags)
Definition: defwnd.c:17

Referenced by IPADDRESS_Paint().

◆ IPADDRESS_Enable()

static LRESULT IPADDRESS_Enable ( IPADDRESS_INFO infoPtr,
BOOL  enabled 
)
static

Definition at line 286 of file ipaddress.c.

287 {
288  int i;
289 
290  infoPtr->Enabled = enabled;
291 
292  for (i = 0; i < 4; i++)
293  EnableWindow(infoPtr->Part[i].EditHwnd, enabled);
294 
295  InvalidateRgn(infoPtr->Self, NULL, FALSE);
296  return 0;
297 }
GLenum GLenum GLsizei const GLuint GLboolean enabled
Definition: glext.h:7750
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
smooth NULL
Definition: ftsmooth.c:416
HWND EditHwnd
Definition: ipaddress.c:49
BOOL WINAPI InvalidateRgn(_In_ HWND, _In_opt_ HRGN, _In_ BOOL)
BOOL WINAPI EnableWindow(_In_ HWND, _In_ BOOL)
IPPART_INFO Part[4]
Definition: ipaddress.c:60

Referenced by IPADDRESS_WindowProc().

◆ IPADDRESS_GetAddress()

static int IPADDRESS_GetAddress ( const IPADDRESS_INFO infoPtr,
LPDWORD  ip_address 
)
static

Definition at line 328 of file ipaddress.c.

329 {
330  WCHAR field[5];
331  int i, invalid = 0;
332  DWORD ip_addr = 0;
333 
334  TRACE("\n");
335 
336  for (i = 0; i < 4; i++) {
337  ip_addr *= 256;
338  if (GetWindowTextW (infoPtr->Part[i].EditHwnd, field, 4))
339  ip_addr += atolW(field);
340  else
341  invalid++;
342  }
343  *ip_address = ip_addr;
344 
345  return 4 - invalid;
346 }
static const WCHAR invalid[]
Definition: assoc.c:39
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
WINE_UNICODE_INLINE long int atolW(const WCHAR *str)
Definition: unicode.h:310
HWND EditHwnd
Definition: ipaddress.c:49
#define TRACE(s)
Definition: solgame.cpp:4
__wchar_t WCHAR
Definition: xmlstorage.h:180
Definition: parser.c:43
unsigned long DWORD
Definition: ntddk_ex.h:95
int WINAPI GetWindowTextW(HWND hWnd, LPWSTR lpString, int nMaxCount)
Definition: window.c:1378
IPPART_INFO Part[4]
Definition: ipaddress.c:60

Referenced by IPADDRESS_WindowProc().

◆ IPADDRESS_GetPartIndex()

static int IPADDRESS_GetPartIndex ( const IPADDRESS_INFO infoPtr,
HWND  hwnd 
)
static

Definition at line 128 of file ipaddress.c.

129 {
130  int i;
131 
132  TRACE("(hwnd=%p)\n", hwnd);
133 
134  for (i = 0; i < 4; i++)
135  if (infoPtr->Part[i].EditHwnd == hwnd) return i;
136 
137  ERR("We subclassed the wrong window! (hwnd=%p)\n", hwnd);
138  return -1;
139 }
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
HWND EditHwnd
Definition: ipaddress.c:49
#define TRACE(s)
Definition: solgame.cpp:4
#define ERR(fmt,...)
Definition: debug.h:109
IPPART_INFO Part[4]
Definition: ipaddress.c:60

Referenced by IPADDRESS_SubclassProc(), and IPADDRESS_WindowProc().

◆ IPADDRESS_GotoNextField()

static BOOL IPADDRESS_GotoNextField ( const IPADDRESS_INFO infoPtr,
int  cur,
int  sel 
)
static

Definition at line 438 of file ipaddress.c.

439 {
440  TRACE("\n");
441 
442  if(cur >= -1 && cur < 4) {
443  IPADDRESS_ConstrainField(infoPtr, cur);
444 
445  if(cur < 3) {
446  const IPPART_INFO *next = &infoPtr->Part[cur + 1];
447  int start = 0, end = 0;
448  SetFocus (next->EditHwnd);
449  if (sel != POS_DEFAULT) {
450  if (sel == POS_RIGHT)
451  start = end = GetWindowTextLengthW(next->EditHwnd);
452  else if (sel == POS_SELALL)
453  end = -1;
454  SendMessageW(next->EditHwnd, EM_SETSEL, start, end);
455  }
456  return TRUE;
457  }
458 
459  }
460  return FALSE;
461 }
#define POS_SELALL
Definition: ipaddress.c:69
#define TRUE
Definition: types.h:120
HWND WINAPI SetFocus(_In_opt_ HWND)
GLuint GLuint end
Definition: gl.h:1545
#define TRACE(s)
Definition: solgame.cpp:4
int WINAPI GetWindowTextLengthW(_In_ HWND)
#define EM_SETSEL
Definition: winuser.h:1979
static unsigned __int64 next
Definition: rand_nt.c:6
GLuint start
Definition: gl.h:1545
#define POS_DEFAULT
Definition: ipaddress.c:66
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
IPPART_INFO Part[4]
Definition: ipaddress.c:60
static BOOL IPADDRESS_ConstrainField(const IPADDRESS_INFO *infoPtr, int currentfield)
Definition: ipaddress.c:407
#define POS_RIGHT
Definition: ipaddress.c:68

Referenced by IPADDRESS_SubclassProc().

◆ IPADDRESS_IPNotify()

static INT IPADDRESS_IPNotify ( const IPADDRESS_INFO infoPtr,
INT  field,
INT  value 
)
static

Definition at line 107 of file ipaddress.c.

108 {
109  NMIPADDRESS nmip;
110 
111  TRACE("(field=%x, value=%d)\n", field, value);
112 
113  nmip.hdr.hwndFrom = infoPtr->Self;
114  nmip.hdr.idFrom = GetWindowLongPtrW (infoPtr->Self, GWLP_ID);
115  nmip.hdr.code = IPN_FIELDCHANGED;
116 
117  nmip.iField = field;
118  nmip.iValue = value;
119 
120  SendMessageW (infoPtr->Notify, WM_NOTIFY, nmip.hdr.idFrom, (LPARAM)&nmip);
121 
122  TRACE("<-- %d\n", nmip.iValue);
123 
124  return nmip.iValue;
125 }
#define IPN_FIELDCHANGED
Definition: commctrl.h:4449
#define GetWindowLongPtrW
Definition: winuser.h:4698
UINT code
Definition: winuser.h:3112
UINT_PTR idFrom
Definition: winuser.h:3111
LONG_PTR LPARAM
Definition: windef.h:208
#define TRACE(s)
Definition: solgame.cpp:4
Definition: parser.c:43
HWND hwndFrom
Definition: winuser.h:3110
GLsizei const GLfloat * value
Definition: glext.h:6069
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define GWLP_ID
Definition: winuser.h:854
#define WM_NOTIFY
Definition: richedit.h:61

Referenced by IPADDRESS_ConstrainField().

◆ IPADDRESS_IsBlank()

static BOOL IPADDRESS_IsBlank ( const IPADDRESS_INFO infoPtr)
static

Definition at line 315 of file ipaddress.c.

316 {
317  int i;
318 
319  TRACE("\n");
320 
321  for (i = 0; i < 4; i++)
322  if (GetWindowTextLengthW (infoPtr->Part[i].EditHwnd)) return FALSE;
323 
324  return TRUE;
325 }
#define TRUE
Definition: types.h:120
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
HWND EditHwnd
Definition: ipaddress.c:49
#define TRACE(s)
Definition: solgame.cpp:4
int WINAPI GetWindowTextLengthW(_In_ HWND)
IPPART_INFO Part[4]
Definition: ipaddress.c:60

Referenced by IPADDRESS_WindowProc().

◆ IPADDRESS_Notify()

static LRESULT IPADDRESS_Notify ( const IPADDRESS_INFO infoPtr,
UINT  command 
)
static

Definition at line 97 of file ipaddress.c.

98 {
99  HWND hwnd = infoPtr->Self;
100 
101  TRACE("(command=%x)\n", command);
102 
103  return SendMessageW (infoPtr->Notify, WM_COMMAND,
105 }
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
#define MAKEWPARAM(l, h)
Definition: winuser.h:3916
#define GetWindowLongPtrW
Definition: winuser.h:4698
LONG_PTR LPARAM
Definition: windef.h:208
#define TRACE(s)
Definition: solgame.cpp:4
#define WM_COMMAND
Definition: winuser.h:1716
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define GWLP_ID
Definition: winuser.h:854

Referenced by IPADDRESS_SetAddress(), IPADDRESS_SubclassProc(), and IPADDRESS_WindowProc().

◆ IPADDRESS_Paint()

static LRESULT IPADDRESS_Paint ( const IPADDRESS_INFO infoPtr,
HDC  hdc 
)
static

Definition at line 300 of file ipaddress.c.

301 {
302  PAINTSTRUCT ps;
303 
304  TRACE("\n");
305 
306  if (hdc) return IPADDRESS_Draw (infoPtr, hdc);
307 
308  hdc = BeginPaint (infoPtr->Self, &ps);
309  IPADDRESS_Draw (infoPtr, hdc);
310  EndPaint (infoPtr->Self, &ps);
311  return 0;
312 }
BOOL WINAPI EndPaint(_In_ HWND, _In_ const PAINTSTRUCT *)
HDC WINAPI BeginPaint(_In_ HWND, _Out_ LPPAINTSTRUCT)
#define TRACE(s)
Definition: solgame.cpp:4
HDC hdc
Definition: main.c:9
static LRESULT IPADDRESS_Draw(const IPADDRESS_INFO *infoPtr, HDC hdc)
Definition: ipaddress.c:142

Referenced by IPADDRESS_WindowProc().

◆ IPADDRESS_Register()

void IPADDRESS_Register ( void  )

Definition at line 650 of file ipaddress.c.

651 {
652  WNDCLASSW wndClass;
653 
654  ZeroMemory (&wndClass, sizeof(WNDCLASSW));
657  wndClass.cbClsExtra = 0;
658  wndClass.cbWndExtra = sizeof(IPADDRESS_INFO *);
659  wndClass.hCursor = LoadCursorW (0, (LPWSTR)IDC_IBEAM);
660  wndClass.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
661  wndClass.lpszClassName = WC_IPADDRESSW;
662 
663  RegisterClassW (&wndClass);
664 }
#define WC_IPADDRESSW
Definition: commctrl.h:4444
UINT style
Definition: winuser.h:3129
#define ZeroMemory
Definition: winbase.h:1635
#define CS_HREDRAW
Definition: winuser.h:648
int cbClsExtra
Definition: winuser.h:3131
static LRESULT WINAPI IPADDRESS_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: ipaddress.c:582
#define COLOR_WINDOW
Definition: winuser.h:908
#define IDC_IBEAM
Definition: winuser.h:683
ATOM WINAPI RegisterClassW(_In_ CONST WNDCLASSW *)
WNDPROC lpfnWndProc
Definition: winuser.h:3130
LPCWSTR lpszClassName
Definition: winuser.h:3138
#define CS_VREDRAW
Definition: winuser.h:653
int cbWndExtra
Definition: winuser.h:3132
#define CS_GLOBALCLASS
Definition: winuser.h:647
HCURSOR WINAPI LoadCursorW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
Definition: cursoricon.c:2074
#define CS_DBLCLKS
Definition: winuser.h:646
HCURSOR hCursor
Definition: winuser.h:3135
HBRUSH hbrBackground
Definition: winuser.h:3136
WCHAR * LPWSTR
Definition: xmlstorage.h:184

Referenced by DllMain().

◆ IPADDRESS_SetAddress()

static LRESULT IPADDRESS_SetAddress ( const IPADDRESS_INFO infoPtr,
DWORD  ip_address 
)
static

Definition at line 374 of file ipaddress.c.

375 {
376  WCHAR buf[20];
377  static const WCHAR fmt[] = { '%', 'd', 0 };
378  int i;
379 
380  TRACE("\n");
381 
382  for (i = 3; i >= 0; i--) {
383  const IPPART_INFO* part = &infoPtr->Part[i];
384  int value = ip_address & 0xff;
385  if ( (value >= part->LowerLimit) && (value <= part->UpperLimit) ) {
386  wsprintfW (buf, fmt, value);
387  SetWindowTextW (part->EditHwnd, buf);
388  IPADDRESS_Notify (infoPtr, EN_CHANGE);
389  }
390  ip_address >>= 8;
391  }
392 
393  return TRUE;
394 }
int WINAPIV wsprintfW(_Out_ LPWSTR, _In_ _Printf_format_string_ LPCWSTR,...)
#define TRUE
Definition: types.h:120
static LRESULT IPADDRESS_Notify(const IPADDRESS_INFO *infoPtr, UINT command)
Definition: ipaddress.c:97
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
BOOL WINAPI SetWindowTextW(_In_ HWND, _In_opt_ LPCWSTR)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
HWND EditHwnd
Definition: ipaddress.c:49
#define TRACE(s)
Definition: solgame.cpp:4
__wchar_t WCHAR
Definition: xmlstorage.h:180
IPPART_INFO Part[4]
Definition: ipaddress.c:60
INT LowerLimit
Definition: ipaddress.c:50
Definition: dsound.c:943
#define EN_CHANGE
Definition: winuser.h:1983

Referenced by IPADDRESS_WindowProc().

◆ IPADDRESS_SetFocusToField()

static void IPADDRESS_SetFocusToField ( const IPADDRESS_INFO infoPtr,
INT  index 
)
static

Definition at line 397 of file ipaddress.c.

398 {
399  TRACE("(index=%d)\n", index);
400 
401  if (index > 3 || index < 0) index=0;
402 
403  SetFocus (infoPtr->Part[index].EditHwnd);
404 }
HWND WINAPI SetFocus(_In_opt_ HWND)
GLuint index
Definition: glext.h:6031
HWND EditHwnd
Definition: ipaddress.c:49
#define TRACE(s)
Definition: solgame.cpp:4
IPPART_INFO Part[4]
Definition: ipaddress.c:60

Referenced by IPADDRESS_WindowProc().

◆ IPADDRESS_SetRange()

static BOOL IPADDRESS_SetRange ( IPADDRESS_INFO infoPtr,
int  index,
WORD  range 
)
static

Definition at line 349 of file ipaddress.c.

350 {
351  TRACE("\n");
352 
353  if ( (index < 0) || (index > 3) ) return FALSE;
354 
355  infoPtr->Part[index].LowerLimit = range & 0xFF;
356  infoPtr->Part[index].UpperLimit = (range >> 8) & 0xFF;
357 
358  return TRUE;
359 }
#define TRUE
Definition: types.h:120
GLuint index
Definition: glext.h:6031
#define TRACE(s)
Definition: solgame.cpp:4
#define index(s, c)
Definition: various.h:29
GLenum GLint * range
Definition: glext.h:7539
IPPART_INFO Part[4]
Definition: ipaddress.c:60
INT LowerLimit
Definition: ipaddress.c:50
INT UpperLimit
Definition: ipaddress.c:51

Referenced by IPADDRESS_WindowProc().

◆ IPADDRESS_SubclassProc()

LRESULT CALLBACK IPADDRESS_SubclassProc ( HWND  hwnd,
UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam 
)
static

Definition at line 499 of file ipaddress.c.

500 {
502  IPADDRESS_INFO *infoPtr = (IPADDRESS_INFO *)GetWindowLongPtrW (Self, 0);
503  CHAR c = (CHAR)wParam;
504  INT index, len = 0, startsel, endsel;
505  IPPART_INFO *part;
506 
507  TRACE("(hwnd=%p msg=0x%x wparam=0x%lx lparam=0x%lx)\n", hwnd, uMsg, wParam, lParam);
508 
509  if ( (index = IPADDRESS_GetPartIndex(infoPtr, hwnd)) < 0) return 0;
510  part = &infoPtr->Part[index];
511 
512  if (uMsg == WM_CHAR || uMsg == WM_KEYDOWN) {
514  SendMessageW(hwnd, EM_GETSEL, (WPARAM)&startsel, (LPARAM)&endsel);
515  }
516  switch (uMsg) {
517  case WM_CHAR:
518  if(isdigit(c)) {
519  if(len == 2 && startsel==endsel && endsel==len) {
520  /* process the digit press before we check the field */
521  int return_val = CallWindowProcW (part->OrigProc, hwnd, uMsg, wParam, lParam);
522 
523  /* if the field value was changed stay at the current field */
524  if(!IPADDRESS_ConstrainField(infoPtr, index))
526 
527  return return_val;
528  } else if (len == 3 && startsel==endsel && endsel==len)
530  else if (len < 3 || startsel != endsel) break;
531  } else if(c == '.' || c == ' ') {
532  if(len && startsel==endsel && startsel != 0) {
534  }
535  } else if (c == VK_BACK) break;
536  return 0;
537 
538  case WM_KEYDOWN:
539  switch(c) {
540  case VK_RIGHT:
541  if(startsel==endsel && startsel==len) {
543  return 0;
544  }
545  break;
546  case VK_LEFT:
547  if(startsel==0 && startsel==endsel && index > 0) {
548  IPADDRESS_GotoNextField(infoPtr, index - 2, POS_RIGHT);
549  return 0;
550  }
551  break;
552  case VK_BACK:
553  if(startsel==endsel && startsel==0 && index > 0) {
554  IPPART_INFO *prev = &infoPtr->Part[index-1];
555  WCHAR val[10];
556 
557  if(GetWindowTextW(prev->EditHwnd, val, 5)) {
558  val[lstrlenW(val) - 1] = 0;
559  SetWindowTextW(prev->EditHwnd, val);
560  }
561 
562  IPADDRESS_GotoNextField(infoPtr, index - 2, POS_RIGHT);
563  return 0;
564  }
565  break;
566  }
567  break;
568  case WM_KILLFOCUS:
569  if (IPADDRESS_GetPartIndex(infoPtr, (HWND)wParam) < 0)
570  IPADDRESS_Notify(infoPtr, EN_KILLFOCUS);
571  break;
572  case WM_SETFOCUS:
573  if (IPADDRESS_GetPartIndex(infoPtr, (HWND)wParam) < 0)
574  IPADDRESS_Notify(infoPtr, EN_SETFOCUS);
575  break;
576  }
577  return CallWindowProcW (part->OrigProc, hwnd, uMsg, wParam, lParam);
578 }
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
#define POS_SELALL
Definition: ipaddress.c:69
#define WM_CHAR
Definition: winuser.h:1693
static LRESULT IPADDRESS_Notify(const IPADDRESS_INFO *infoPtr, UINT command)
Definition: ipaddress.c:97
char CHAR
Definition: xmlstorage.h:175
static BOOL IPADDRESS_GotoNextField(const IPADDRESS_INFO *infoPtr, int cur, int sel)
Definition: ipaddress.c:438
#define VK_LEFT
Definition: winuser.h:2178
BOOL WINAPI SetWindowTextW(_In_ HWND, _In_opt_ LPCWSTR)
UINT_PTR WPARAM
Definition: windef.h:207
#define GetWindowLongPtrW
Definition: winuser.h:4698
#define lstrlenW
Definition: compat.h:407
int32_t INT
Definition: typedefs.h:56
WPARAM wParam
Definition: combotst.c:138
#define POS_LEFT
Definition: ipaddress.c:67
#define EM_GETSEL
Definition: winuser.h:1958
#define EN_KILLFOCUS
Definition: winuser.h:1986
#define EN_SETFOCUS
Definition: winuser.h:1988
#define WM_KEYDOWN
Definition: winuser.h:1691
LONG_PTR LPARAM
Definition: windef.h:208
GLuint index
Definition: glext.h:6031
HWND EditHwnd
Definition: ipaddress.c:49
#define isdigit(c)
Definition: acclib.h:68
GLuint GLfloat * val
Definition: glext.h:7180
#define TRACE(s)
Definition: solgame.cpp:4
#define WM_KILLFOCUS
Definition: winuser.h:1596
__wchar_t WCHAR
Definition: xmlstorage.h:180
int WINAPI GetWindowTextLengthW(_In_ HWND)
const GLubyte * c
Definition: glext.h:8905
#define index(s, c)
Definition: various.h:29
GLenum GLsizei len
Definition: glext.h:6722
#define VK_BACK
Definition: winuser.h:2152
#define VK_RIGHT
Definition: winuser.h:2180
static const WCHAR IP_SUBCLASS_PROP[]
Definition: ipaddress.c:63
WNDPROC OrigProc
Definition: ipaddress.c:52
int WINAPI GetWindowTextW(HWND hWnd, LPWSTR lpString, int nMaxCount)
Definition: window.c:1378
#define POS_DEFAULT
Definition: ipaddress.c:66
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
IPPART_INFO Part[4]
Definition: ipaddress.c:60
static int IPADDRESS_GetPartIndex(const IPADDRESS_INFO *infoPtr, HWND hwnd)
Definition: ipaddress.c:128
HANDLE WINAPI GetPropW(_In_ HWND, _In_ LPCWSTR)
LRESULT WINAPI CallWindowProcW(_In_ WNDPROC, _In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define WM_SETFOCUS
Definition: winuser.h:1595
#define CHAR(Char)
LPARAM lParam
Definition: combotst.c:139
static BOOL IPADDRESS_ConstrainField(const IPADDRESS_INFO *infoPtr, int currentfield)
Definition: ipaddress.c:407
#define POS_RIGHT
Definition: ipaddress.c:68

Referenced by IPADDRESS_Create().

◆ IPADDRESS_Unregister()

void IPADDRESS_Unregister ( void  )

Definition at line 667 of file ipaddress.c.

668 {
670 }
#define WC_IPADDRESSW
Definition: commctrl.h:4444
BOOL WINAPI UnregisterClassW(_In_ LPCWSTR, HINSTANCE)
smooth NULL
Definition: ftsmooth.c:416

Referenced by DllMain().

◆ IPADDRESS_UpdateText()

static void IPADDRESS_UpdateText ( const IPADDRESS_INFO infoPtr)
static

Definition at line 74 of file ipaddress.c.

75 {
76  static const WCHAR zero[] = {'0', 0};
77  static const WCHAR dot[] = {'.', 0};
78  WCHAR field[4];
79  WCHAR ip[16];
80  INT i;
81 
82  ip[0] = 0;
83 
84  for (i = 0; i < 4; i++) {
85  if (GetWindowTextW (infoPtr->Part[i].EditHwnd, field, 4))
86  strcatW(ip, field);
87  else
88  /* empty edit treated as zero */
89  strcatW(ip, zero);
90  if (i != 3)
91  strcatW(ip, dot);
92  }
93 
94  SetWindowTextW(infoPtr->Self, ip);
95 }
BOOL WINAPI SetWindowTextW(_In_ HWND, _In_opt_ LPCWSTR)
int32_t INT
Definition: typedefs.h:56
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
HWND EditHwnd
Definition: ipaddress.c:49
Definition: dhcpd.h:61
__wchar_t WCHAR
Definition: xmlstorage.h:180
Definition: parser.c:43
static double zero
Definition: j0_y0.c:96
int WINAPI GetWindowTextW(HWND hWnd, LPWSTR lpString, int nMaxCount)
Definition: window.c:1378
IPPART_INFO Part[4]
Definition: ipaddress.c:60
WINE_UNICODE_INLINE WCHAR * strcatW(WCHAR *dst, const WCHAR *src)
Definition: unicode.h:242

Referenced by IPADDRESS_Create(), and IPADDRESS_WindowProc().

◆ IPADDRESS_WindowProc()

static LRESULT WINAPI IPADDRESS_WindowProc ( HWND  hwnd,
UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam 
)
static

Definition at line 582 of file ipaddress.c.

583 {
585 
586  TRACE("(hwnd=%p msg=0x%x wparam=0x%lx lparam=0x%lx)\n", hwnd, uMsg, wParam, lParam);
587 
588  if (!infoPtr && (uMsg != WM_CREATE))
589  return DefWindowProcW (hwnd, uMsg, wParam, lParam);
590 
591  switch (uMsg)
592  {
593  case WM_CREATE:
595 
596  case WM_DESTROY:
597  return IPADDRESS_Destroy (infoPtr);
598 
599  case WM_ENABLE:
600  return IPADDRESS_Enable (infoPtr, (BOOL)wParam);
601 
602  case WM_PAINT:
603  return IPADDRESS_Paint (infoPtr, (HDC)wParam);
604 
605  case WM_COMMAND:
606  switch(wParam >> 16) {
607  case EN_CHANGE:
608  IPADDRESS_UpdateText(infoPtr);
609  IPADDRESS_Notify(infoPtr, EN_CHANGE);
610  break;
611  case EN_KILLFOCUS:
613  break;
614  }
615  break;
616 
617  case WM_SYSCOLORCHANGE:
619  return 0;
620 
621  case IPM_CLEARADDRESS:
622  IPADDRESS_ClearAddress (infoPtr);
623  break;
624 
625  case IPM_SETADDRESS:
626  return IPADDRESS_SetAddress (infoPtr, (DWORD)lParam);
627 
628  case IPM_GETADDRESS:
629  return IPADDRESS_GetAddress (infoPtr, (LPDWORD)lParam);
630 
631  case IPM_SETRANGE:
632  return IPADDRESS_SetRange (infoPtr, (int)wParam, (WORD)lParam);
633 
634  case IPM_SETFOCUS:
635  IPADDRESS_SetFocusToField (infoPtr, (int)wParam);
636  break;
637 
638  case IPM_ISBLANK:
639  return IPADDRESS_IsBlank (infoPtr);
640 
641  default:
642  if ((uMsg >= WM_USER) && (uMsg < WM_APP) && !COMCTL32_IsReflectedMessage(uMsg))
643  ERR("unknown msg %04x wp=%08lx lp=%08lx\n", uMsg, wParam, lParam);
644  return DefWindowProcW (hwnd, uMsg, wParam, lParam);
645  }
646  return 0;
647 }
static BOOL IPADDRESS_IsBlank(const IPADDRESS_INFO *infoPtr)
Definition: ipaddress.c:315
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
#define WM_SYSCOLORCHANGE
Definition: winuser.h:1608
static int IPADDRESS_GetAddress(const IPADDRESS_INFO *infoPtr, LPDWORD ip_address)
Definition: ipaddress.c:328
static LRESULT IPADDRESS_Enable(IPADDRESS_INFO *infoPtr, BOOL enabled)
Definition: ipaddress.c:286
static LRESULT IPADDRESS_Notify(const IPADDRESS_INFO *infoPtr, UINT command)
Definition: ipaddress.c:97
static HDC
Definition: imagelist.c:92
#define GetWindowLongPtrW
Definition: winuser.h:4698
WPARAM wParam
Definition: combotst.c:138
#define WM_ENABLE
Definition: winuser.h:1597
LRESULT WINAPI DefWindowProcW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define IPM_ISBLANK
Definition: commctrl.h:4442
#define EN_KILLFOCUS
Definition: winuser.h:1986
static LRESULT IPADDRESS_SetAddress(const IPADDRESS_INFO *infoPtr, DWORD ip_address)
Definition: ipaddress.c:374
#define IPM_SETADDRESS
Definition: commctrl.h:4438
unsigned int BOOL
Definition: ntddk_ex.h:94
#define IPM_GETADDRESS
Definition: commctrl.h:4439
static LRESULT IPADDRESS_Paint(const IPADDRESS_INFO *infoPtr, HDC hdc)
Definition: ipaddress.c:300
static BOOL IPADDRESS_SetRange(IPADDRESS_INFO *infoPtr, int index, WORD range)
Definition: ipaddress.c:349
static void IPADDRESS_SetFocusToField(const IPADDRESS_INFO *infoPtr, INT index)
Definition: ipaddress.c:397
#define WM_DESTROY
Definition: winuser.h:1591
static void IPADDRESS_ClearAddress(const IPADDRESS_INFO *infoPtr)
Definition: ipaddress.c:362
#define TRACE(s)
Definition: solgame.cpp:4
unsigned short WORD
Definition: ntddk_ex.h:93
unsigned long DWORD
Definition: ntddk_ex.h:95
static LRESULT IPADDRESS_Create(HWND hwnd, const CREATESTRUCTA *lpCreate)
Definition: ipaddress.c:209
#define WM_PAINT
Definition: winuser.h:1602
static void IPADDRESS_UpdateText(const IPADDRESS_INFO *infoPtr)
Definition: ipaddress.c:74
#define WM_APP
Definition: eventvwr.h:70
#define WM_COMMAND
Definition: winuser.h:1716
#define WM_USER
Definition: winuser.h:1856
#define ERR(fmt,...)
Definition: debug.h:109
static int IPADDRESS_GetPartIndex(const IPADDRESS_INFO *infoPtr, HWND hwnd)
Definition: ipaddress.c:128
#define IPM_SETRANGE
Definition: commctrl.h:4440
#define IPM_CLEARADDRESS
Definition: commctrl.h:4437
static LRESULT IPADDRESS_Destroy(IPADDRESS_INFO *infoPtr)
Definition: ipaddress.c:269
#define WM_CREATE
Definition: winuser.h:1590
uint32_t * LPDWORD
Definition: typedefs.h:57
BOOL COMCTL32_IsReflectedMessage(UINT uMsg) DECLSPEC_HIDDEN
Definition: commctrl.c:1748
#define IPM_SETFOCUS
Definition: commctrl.h:4441
LPARAM lParam
Definition: combotst.c:139
VOID COMCTL32_RefreshSysColors(void) DECLSPEC_HIDDEN
Definition: commctrl.c:1586
static BOOL IPADDRESS_ConstrainField(const IPADDRESS_INFO *infoPtr, int currentfield)
Definition: ipaddress.c:407
#define EN_CHANGE
Definition: winuser.h:1983

Referenced by IPADDRESS_Register().

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( ipaddress  )

Variable Documentation

◆ IP_SUBCLASS_PROP

const WCHAR IP_SUBCLASS_PROP[]
static
Initial value:
=
{ 'C', 'C', 'I', 'P', '3', '2', 'S', 'u', 'b', 'c', 'l', 'a', 's', 's', 'I', 'n', 'f', 'o', 0 }

Definition at line 63 of file ipaddress.c.

Referenced by IPADDRESS_Create(), and IPADDRESS_SubclassProc().