cb.zip | The three different comboboxes are shown. Only a couple of the notification messages (CBN_xxx) and CB_xxx messages are coded. The rest is up to you. |
context.zip | In this sample you can click the right mouse button in the main window to popup a submenu with the same menuitem as from the main menu. |
divcontr.zip | Diverse controls: buttons, progressbar, statusbar, tooltips, trackbar and updown control. The statusbar shows also, how you can insert the version etc. information into the properties of your program. |
ipctrl.zip |
This control (since version 4.71 of Comctl32.dll) lets you input an
IP address. It does a little bit checking, too. You must insert a couple of
definitions into the windows.inc (I copied them to the beginning of the source code).
Reference: http://bcarroll.siscom.net/HTMLDocs/IE4ResKit/itt/commctls/ipaddress/IPAddress.htm#ch_ipadd_make |
listview.zip (added 06.13.01) |
This code shows how you implement the label editing in a listview control. It made
me a lot of headache. The solution was RTFM. It also shows how to use the callback function and to sort the items. Reference: Nancy W. Cluts, Programming the Windows 95 User Interface, Redmond 1995 http://bcarroll.siscom.net/HTMLDocs/IE4ResKit/itt/commctls/listview/ListView.htm#ch_listview |
propshee.zip |
This sample shows an up-down control with the range 9-19 at startup. In the
2-page propertysheet you can change the range and change the the system text color
in blue (I know it is a bit silly, but you can change it back!). The user input is
checked only in so far that upper limit is greater than lower limit. Reference: Nancy W. Cluts, Programming the Windows 95 User Interface, Redmond 1995 |
rebar.zip |
This is a port of a msdn sample program. You may have to insert some definitions
in your windows.inc file if you want to build a new exe-file. The code is not
very tight. The web site below explains the code which was written in C++.
Reference: The Rebar Control: Using a Coolbar in Your Application, in: http://msdn.microsoft.com/library/techart/msdn_rebar.htm |
tabcntrl.zip | You should use property sheets instead of tab controls. That's why this
sample only shows the bare bones. Reference: http://bcarroll.siscom.net/HTMLDocs/IE4ResKit/itt/commctls/tab/Tab.htm |
taskbar.zip |
This one puts an icon in the taskbar notification area (=where the time resides), displays
a tip when the mouse pointer stays on that icon and popups a message box, if you click
on the icon with the left mouse button. Reference: Nancy W. Cluts, Programming the Windows 95 User Interface, Redmond 1995 |
anonpipe.zip (Added 08.22.01) |
Start the anonpipe.exe and from the menu create an anonymous pipe and a process, which is the winclien.exe. When the client window
is displayed you write a message and put it into the pipe. Back in the server window you can read the pipe. Read in MSDN more about anonymous pipes. |
echoclnt.zip | Echo client creates a socket, sends one datagram
to the port 7 on a remote host (echo server) and waits 10 seconds for a reply.
The Programm shows also how you can
en- and disable menuitems. It also uses a statusbar and a timer. Reference: Arthur Dumas, Programming WinSock, Indianapolis 1995 |
finger.zip | Finger is a connection oriented protocol. You create a socket and
connect to the port 79 on a remote host. The Programm shows also how you can
en- and disable menuitems. Reference: Arthur Dumas, Programming WinSock, Indianapolis 1995 |
mailslot.zip | This sample has both the client and server part. It works on the local machine: The client uses in CreateFile \\.\mailslot\sample_mailslot as filename. The mailslot on the server is defined as \\.\mailslot\sample_mailslot. |
netenum.zip (Added 08.04.02) |
You must enter a domain name into the source before compiling and linking. The program demonstrates the use of NetServerEnum function. I included a small help file, mainly to learn how to do it. |
npipe1.zip | This one, demonstrating the named pipe, works on the local machine. (It will also work over the network, if you login into both machines with the same userID and password. That's because SECURITY_ATTRIBUTES in CreateNamedPipe is NULL.) The programm shows also how you can en- and disable menuitems. You step through the program on a determined path: create a named pipe, write a message, choose the server, write into the pipe, read the pipe. That's why you must use it on your local machine. The program has both the client and server part. The named pipe on server is defined as \\.\pipe\sample_pipe. You must use in the client the server name, not the period. |
npipe2.zip | This one, demonstrating the named pipe, works over the network.
That's
because SECURITY_ATTRIBUTES in CreateNamedPipe is used. The client and the server are
both in the same program. On the server you create the pipe and read the pipe.
On the client you write the message and write it into the pipe.
The named pipe on server side is defined as \\.\pipe\sample_pipe.
On the client side you must change the server name and the account name (I
used xyz and misterx).
In the code there is a lot of error handling. Reference: http://devcentral.iftech.com/learning/tutorials/mfc-win32/nt/5.asp |
servenum.zip (Added 11.04.02) |
The program demonstrates the use of EnumServicesStatus function. You can choose some parameters to gauge the search. The default type is SERVICE_WIN32 and the default state SERVICE_ACTIVE. The style of the listbox es is LBS_MULTIPLESEL. Right click on one of 10 first rows shows the types of the service. |
tcpecho.zip | Here is a sample which consists of a stream echo server and a correponding client.
The client creates a socket, connects(!) to the listening server port 7 and sends every 5 seconds data to the server waiting for the data to be returned by the server. The client
displays in a listbox some information on the fly. Note: The program is very simple insofar
as only one client can be connected to the server at a time.
The Programm shows also how you can insert the version register into the properties window
for your program.
Reference: Arthur Dumas, Programming WinSock, Indianapolis 1995 Look also in http://www.sockets.com/sample.htm for samples in C/C++ |
winsock.zip | WSAStartup is called and the information in the structure WSADATA read and displayed.
That's all. Reference: Arthur Dumas, Programming WinSock, Indianapolis 1995 |
bitmap.zip | The tiny sample displays a bitmap with the letter A. When the mouse is on the bitmap it looks like a button and the A is colored. You can use it like a normal button to end the dialog: just click the left mouse button. |
dll.zip | This is step two to Iczelion's tutorial number 17 (I included it). It shows how to load (implicit and explicit) a DLL, which displays Winsocket Info in a dialog box. |
hrtimer.zip (Added 03.12.03) |
The variable in the QueryPerformanceFrequency and QueryPerformanceCounter API functions must be defined DWORD aligned. By chance you can get it all right, but ALIGN 4 makes it sure. |
icons.zip | Demonstrates the use of ExtractIconEx function. |
moushook.zip | This sample displays the mouse coordinates in the status window. This is not a global hook! |
owner.zip | This one shows how to use owner drawn buttons. It is from Win32 Programmer's reference. Look there for "Using Owner-Drawn Buttons". |
pe.zip (Added 08.21.01) |
Me too! There are a lot of PE analyzers around. They do many amazing things, except they
don't let me print the listing of the header (I don't live in a paperless world). That's why I coded my own program. I think it runs only on NT. It shows you also some image directories (import, export and resource). The splitter window is from Ernest Murphy. If you right click the characteristics fields you get them analysed. Look for PEditor if you want a nice PE editor. |
printbmp.zip |
Here is the port of the sample how to print a bitmap file. It prints the
winlogo.bmp which should be in the same directory with the program.
The GetOpenFileName dialog lets you choose a filename which is printed at the top
of the page. None the less the winlogo.bmp is printed.
You can edit the source and use the dialog to load a bitmap file.
Reference: Win32.hlp (Printing a Document) |
pview.zip |
This sample enumerates the running processes in NT 4.0 and displays the process ID, the base
name, the full path and the no. of modules in a list view. It uses the procedures in
PSAPI.DLL.
In Windows 9x and 2000 you will use the ToolHelp32 group of APIs.
Reference: http://support.microsoft.com/support/kb/articles/Q175/0/30.asp |
pview9x.zip |
This sample enumerates the running processes in Windows 9x and displays the process ID, the full path and the no. of threads in a list view. It uses the procedures in
the ToolHelp32 group of APIs. It should run also in Windows 2000.
Reference: http://support.microsoft.com/support/kb/articles/Q175/0/30.asp |
rect.zip (Updated 03.13.03) |
This is the ported sample from Win32 Programmer's reference : "Using rectangles". You learn a lot. WNDCLASSEX worked in NT 4.0 but not in W2K; I changed it to WNDCLASS which's fine in W2K. |
riched.zip |
This is a very simple richtext edit control. You can use it with riched.dll version 1.0
to 3.0. I used windows.inc version 1.13. Later versions may need modifications
in the code. You can choose a font and save a text. The rest is up to you. Reference: Nancy W. Cluts, Programming the Windows 95 User Interface, Redmond 1995 |
service1.zip |
This is a port of a simple NT service program. All it does is beep every 5 seconds.
You install the service with beep_srv.exe. This inserts the service into the service control manager's (SCM) database and loads the service. You must start the service manually in Services window in 30 seconds after loading. You can pause and continue the service there. If you stop the service, it is removed from the memory. With remove.exe you remove the service from the SCM database.
The web site below explains the code which was written in C++.
Reference: http://www.rdbooks.com/store/products/chapter/ntprch11.htm Read about NT services also in: http://devcentral.iftech.com/learning/tutorials/mfc-win32/nt/3.asp |
service2.zip |
This is a port of a NT service sample program published in msj. It consist of a client and a server program.
The server creates a pipe and waits for a client to use the pipe to get the
time from the server. You install the service from the command line: timesrv -install. This inserts the service into the service control manager's (SCM) database and loads the service. You must start the service manually in Services window in 30 seconds after loading. You can pause and continue the service there. If you stop the service, it is removed from the memory. With timeserv -remove you remove the service from the SCM database. I let the error checking in the code.
The web sites below explain the code which was written in C++.
Reference: http://msdn.microsoft.com/msj/1097/WINNT.htm http://msdn.microsoft.com/msj/0298/service.htm http://msdn.microsoft.com/msj/0298/servicetextfigs.htm Read about I/O completion ports in: http://www.sysinternals.com/comport.htm |
comclien.zip (Added 07.23.01) |
I am learning COM (Component Object Model) . I suggest everybody should start learning with the client e.g. this one,
which uses the ActiveDesktop
Interface to display the name of your wallpaper file and makes in c: a shortcut to that file. It's the port of Michael Dunn's
excellent tutorial. Reference: http://www.codeproject.com/com/comintro.asp and "Accessing COM Object from Assembly" in \masm32\com\docs. |
comclie1.zip (Added 07.23.01) |
This is another client program which shows the non-folder items on your desktop. It uses a slow
routine to display the icons in the listview. The carcass is by Bill T., but he did not complete it. He is lazy! See: http://thunder.prohosting.com/~asm1/articles/com_1.txt |
msgbox.zip (Added 07.31.01) |
Here is a simple server program which derives from IUnknown interface and only adds one method: the client can use
the method to display a Text in the message box. You should read Michael Dunn's excellent tutorial. I reused a lot of Ernie's code. To be able to use the server you must register the server with r.bat; with u.bat you unregister the server. Msgboxcl.exe is the client. Reference: http://www.codeproject.com/com/comintro2.asp |
mycontex.zip (Added 08.01.01) |
A server program which implements IShellExtInit and IContextMenu interfaces: If you right click on a filename in explorer and
choose the "Testmenu" from the popup menu, a messagebox with the filename is displayed. I minimized Andycar's more complex code to the essential stuff.
You should read Michael Dunn's excellent tutorial. I again reused a lot of Ernie's code. To be able to use the server you must register the server with r.bat; with u.bat you unregister the server. Reference: http://www.codeproject.com/com/comintro2.asp Nancy W. Cluts, Programming the Windows 95 User Interface, Redmond 1995 |
myprop.zip (Added 08.13.01) |
A server program which implements IShellExtInit and IShellPropSheetExt interfaces: If you right click on a filename in explorer and
choose "Properties" from the popup menu, you see the added property page (My Properties). It is displayed for all files (*) and
the page only shows a radio button control (I reused an old code).
You should read Michael Dunn's excellent tutorial. I again reused a lot of Ernie's code. To be able to use the server you must register the server with r.bat; with u.bat you unregister the server. Reference: http://www.codeproject.com/com/comintro2.asp Nancy W. Cluts, Programming the Windows 95 User Interface, Redmond 1995 |