Handling errors in @DbColumn/@DbLookup
Last Modified: Sun, Dec 27 1998
Description
Entry not found in index or view index not built (or) Server Error: Entry not
found in index! - Sounds familiar?
Details
Obviously you don't want this message displayed to a user of your database!
Here is a way to avoid this message...
If your code for the @DbColumn or @DbLookup reads like this:
@DbColumn("":"";"";"view";1);
Change it to read it like this:
retValues:=@DbColumn("":"";"";"view";1);
@If( @IsError( retValues );
"<>";
retValues
);
Remarks
· The above code makes use of the @IsError function to find out if the
result returned is infact an error. This helps you trap the error, before its
throw out as a message by the system.
@DbLookup and @DbColumn Error Messages in Notes (using: Lotus Notes) [Article, Error Handling, Lotus Notes, @DBColumn, @DBLookup] www.support.lotus.com 14-Nov-2001
Title: @DbLookup and @DbColumn Error Messages in Notes
Product Area: Domino Server, Notes
Product: Domino Server 5.x, Domino Server 4.6x, Domino Server 4.5x, Notes
Client 5.x, Notes 4.x, Notes 3.x
Topic: Workstation/Desktop \\ Application Development \\ @Functions/Formulas
Number: 112151
Date: 08/29/2001
Problem:
Below is a listing of the common error messages reported when using @DbLookup
and @DbColumn in formulas. These errors come from a number of sources, ranging
from incorrect syntax to a value not being found. The order is roughly that in
which the errors would occur, were you to commit more than one mistake in
writing your formula. You may capture any of these errors with the @Iserror
function.
Solution:
1. Unknown @Function. You will get this error message if you attempt to save a
formula with an incorrectly spelled function, (e.g., @DbLooku [the 'p' at the
end is missing]).
2. Insufficient Arguments for @Function. This message appears when the formula
executes, if the @Db function is part of an another @Function, such as an
@Prompt, and you have not included all of the parameters required by the other
@Function.
3. @If Must Have an Odd Number of Arguments. Same as #2, but specifically for
@If.
4. Insufficient Arguments for Database Function. Same as #2, but specifically
for the @Db function itself.
5. The necessary external database driver cannot be located. 'Notes' is
misspelled in the class argument or the specified datalens driver cannot be
found. For example, @DbLookup("Nortes"; etc ... )
6. The database was not found, please select servers to search. If the Server
Name was left out of the formula, you will get this error message.
7. Server not responding. The Server is either not responding or it is
incorrectly specified in the formula. To test: Manually try to open the server.
If it can be opened, the name is probably specified incorrectly.
8. ERROR: You are not authorized to perform that operation. This error will ... (cont.)
Showing progress bar with class (using: Lotus Notes 5) [Class, Lotus Notes, LotusScript, Progress Bar, Tip] www.searchdomino.com 09-Oct-2001 by Jose Cruz
Showing progress bar with class
Jose Cruz
09 Oct 2001, Rating --- (out of 5)
With this code, you can show the progress of a long lasting work.
Declare Public Function NEMProgressBegin Lib "nnotesws.dll" (Byval
wFlags As Integer) As Long
Declare Public Sub NEMProgressSetBarRange Lib "nnotesws.dll" (Byval
hWnd As Long,Byval dwMax As Long)
Declare Public Sub NEMProgressDeltaPos Lib "nnotesws.dll" (Byval
hWnd As Long,Byval dwIncrement As Long)
Declare Public Sub NEMProgressSetBarPos Lib "nnotesws.dll" (Byval
hWnd As Long,Byval dwPos As Long)
Declare Public Sub NEMProgressSetText Lib "nnotesws.dll" (Byval
hWnd As Long,Byval pcszLine1 As String)
Declare Public Sub NEMProgressEnd Lib "nnotesws.dll" (Byval hWnd As
Long)
Public Class CProgressBar
Private hWnd As Long
Property Set Range As Long
NEMProgressSetBarRange hWnd,Range
End Property
Property Set Delta As Long
NEMProgressDeltaPos hWnd, Delta
End Property
Property Set Pos As Long
NEMProgressDeltaPos hWnd, Me.Pos
End Property
Property Set Text As String
NEMProgressSetText hWnd,Text
End Property
Property Set Progress (Pos As Long) As String
Me.Pos = Pos
Text = Progress
End Property
Property Set ProgressBy (Delta As Long) As String
Me.Delta = Delta
Text = ProgressBy
End Property
Private Sub Init
Range = 100
Delta = 1
Text = ""
Pos = 0
End Sub
Sub New (Range As Long)
hWnd = NEMProgressBegin (2)
Init
If Range <> 0 Then Me.Range = Range
End Sub
Sub Delay (Seconds As Integer)
Dim Started
Started = Now
While (Now - Started) * 24 * 60 * 60 < Seconds
'Do nothing
Wend
End Sub
Sub Delete
NEMProgressEnd hWnd
End Sub
End Class
'******************************
'Calling function**************
'Variable de barra de
progreso******************************************************
Dim oBarraProgreso As CProgressBar
lNoDocsRespaldo = colDocsAMover.count
Set oBarraProgreso = New CProgressBar( colDocsAMov ... (cont.)
Export any view to Excel (using: Lotus Notes 5) [Agent, Excel, Exporting, Lotus Notes, Tip, View] www.searchdomino.com 30-Sep-2001 by Art Yates
Export any view to Excel
Art Yates
30 Sep 2001, Rating 4.43 (out of 5)
Exports all records of any view to Excel
Sub Initialize
'Create an Excel Spreadsheet from any view
'11/3/2000 Art Yates
Dim Session As New NotesSession ,db As NotesDatabase
Dim sourceview As NotesView,sourcedoc As NotesDocument
Dim dataview As NotesView, dc As NotesDocumentCollection
Dim datadoc As NotesDocument, maxcols As Integer
Dim WS As New Notesuiworkspace
Dim ViewString As String, Scope As String, GetField As Variant
Dim C As NotesViewColumn, FieldName As String, K As Integer,N As Integer
Dim xlApp As Variant, xlsheet As Variant, rows As Integer, cols As
Integer
Dim nitem As NotesItem , entry As NotesViewEntry, vwNav As
NotesViewNavigator
Dim ShowView() As Variant, i As Integer, VList As Variant, ColVals As
Variant
Set db = session.CurrentDatabase 'link to current database
'fetch then display a list of views in the database
Vlist= db.views
K=Ubound(Vlist) 'get size of list
Redim Preserve ShowView(K)
N=-1
For i = 0 To K
If Len(Vlist(i).Name) >0 Then
FieldName=Trim(Vlist(i).Name)
If Mid(Fieldname,1,1) <>"(" Then 'do not show hidden
views
N=N+1
ShowView(N) = FieldName
End If
End If
Next i
Redim Preserve ShowView(N)
'now sort the list - by default views are listing in the order that they
were created
For i=0 To N
For K=i To N
If ShowView(i) > ShowView(k) Then
FieldName=ShowView(i)
ShowView(i) = ShowView(k)
ShowView(k)=FieldName
End If
Next k
Next i
viewstring= ws.Prompt(PROMPT_OKCANCELLIST,"List of Views","Choose a
View","",ShowView )
If Len(viewstring)=0 Then Exit Sub
'ViewString ="Dan's View"
Set dataview = db.getview(ViewString) 'get selected view
Set vwnav= dataview.createViewnav()
rows = 1
cols = 1
maxcols=dataview.ColumnCount 'how many columns?
Set xlApp = CreateObject("Excel.Application") 'start Excel with OLE
Automation
xlApp.StatusBar = " ... (cont.)
Programmatically Save HTML to File (using: Visual Basic 6.0, Visual C++ 6.0) [Document Object Model, DOM, HTML, IWebBrowser2 Interface, Tip, Visual Basic, IHTMLDocument2 Interface, Visual C++] www.pinnaclepublishing.com 27-Sep-2001
Programmatically Save HTML to File
---------------------------------------------------------
You can use the Internet Explorer Document Object Model
to capture all of the HTML sources into a string variable
which you can then write out to a text file and save to
disk.
Dim hElm As IHTMLElement
Dim htmltext As String
Dim fso As Object
Dim file As Object
Set hElm = WebBrowser1.Document.all.tags("html").Item(0)
htmltext = hElm.outerHTML
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.OpenTextFile("c:\test.htm", 2, True)
file.write htmltext
file.Close
Set file = Nothing
Set fso = Nothing
For a VC++ example, see Q292485 at
http://support.microsoft.com/support/kb/articles/Q292/4/85.asp.
Visual C++ Solution
Accomplishing this task from a Visual C++ host is very straightforward. You can
use an IWebBrowser2 interface to call the QueryInterface method for the
IHTMLDocument2 interface. After you obtain a pointer to the document, then call
QueryInterface for the IPersistFile interface. After you obtain this interface
pointer, you can call the save method to save the file to disk.
HRESULT hr = E_FAIL;
IDispatch* pDisp = NULL;
IHTMLDocument2* pDoc = NULL;
pDisp = m_webOC.GetDocument();
if(SUCCEEDED(hr = pDisp->QueryInterface(IID_IHTMLDocument2,(void**)&pDoc)))
{
IPersistFile* pFile = NULL;
if(SUCCEEDED(pDoc->QueryInterface(IID_IPersistFile,(void**)&pFile)))
{
LPCOLESTR file = L"c:\\test1.htm";
pFile->Save(file,TRUE);
}
}
Common Win32 Exceptions (using: Windows NT) [Exception, Tip, Windows NT] www.iseran.com 27-Sep-2001
These are the exceptions that you often either hit in the debugger or when an
app crashes. If it is not your application, and you lack the source, there is
nothing you can do except complain to the software vendor, who will no doubt
claim it works for them and the fault is the display driver or some change you
made to your registry. They may even be right.
If it's your own app that goes belly up, this list can be used as a starting
point to tracking the bug down, as the nature of the exception provides some
hint as to what went wrong. Also, with Visual Studio 6.0, you can add the error
register to your watch window (enter "err, hr" as the variable) to make the
result of the last API call visible. Finally, use the code walkthrough
checklist to see if you've made a common mistake.
All these exceptions and their meaning are listed in WINNT.H, where they are
prefixed with the name "STATUS_" rather then "EXCEPTION_", winbase.h, and
winerror.h. What they mean can be gleaned from various bits of documentation,
and experience. Common exceptions are in bold.
Floating point exceptions are (seemingly) off by default. Look up _controlfp()
in the manuals to see how to turn these on, and then _fpieee_flt() to see how
to make practical use of them.
Warnings
0x80000001
EXCEPTION_GUARD_PAGE
Memory Allocated as PAGE_GUARD by VirtualAlloc() has been accessed.
0x80000002
EXCEPTION_DATATYPE_MISALIGNMENT
The thread tried to read or write data that is misaligned on hardware that
doesn't provide alignment. . SetErrorMode() may be used to modify the system's
behaviour and auto-correct such misalignment, albeit at significantly imparied
performance.
Not found on x86 boxes, but may appear on Merced or on on CE units.
0x80000003
EXCEPTION_BREAKPOINT
A breakpoint was encountered. You can actually skip to the next instruction now
if you're devious with Exception filters.
The OS jumps to a breakpoint when HeapFree() shows guard byte corruption or
other trouble.
0x80000004
EXCEPTION_S ... (cont.)
How do I recurse through a Directory tree ? [Directory, FindFirstFile(), FILE_ATTRIBUTE_DIRECTORY, Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
2.
How do I recurse through a Directory tree ?
This code is taken from a utility for counting lines in all files
matching a given spec, in or below a certain folder. It illustrates the
technique for recursing into folders quite well.
UINT CCountlinesDlg::GetLineCountForFiles (CString& csStartFolder,
CString& csFileSpec,
BOOL bRecurse)
{
UINT uRetVal = 0;
HANDLE hFF = 0;
WIN32_FIND_DATA wfd;
int iDotIndex=0;
CString csPath ;
CString csFile ;
CString csSubPath ;
CString csTgt;
CString csExtension;
CString csUpperFileSpec = csFileSpec;
csUpperFileSpec.MakeUpper();
m_csOutputDir = csStartFolder ;
UpdateData (FALSE);
csTgt = csStartFolder + "\\*.*";
hFF = FindFirstFile (csTgt,&wfd);
if (hFF != INVALID_HANDLE_VALUE)
{
if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
if (strcmp (wfd.cFileName, ".") &&
strcmp (wfd.cFileName, "..") &&
bRecurse)
{
// recurse into the subdir:
csSubPath = csStartFolder + "\\" + wfd.cFileName;
uRetVal += GetLineCountForFiles (csSubPath,csFileSpec,bRecurse);
}
}
else
{
// Is this one of the target files ?
csFile = wfd.cFileName;
iDotIndex = csFile.ReverseFind ('.');
csExtension = csFile.Right (csFile.GetLength() - (iDotIndex+1));
csExtension.MakeUpper ();
if (csExtension == csUpperFileSpec)
{
csFile = csStartFolder + "\\" + wfd.cFileName;
uRetVal += CountLinesIn (csFile);
m_csOutputFile.Format ("%s : %u", wfd.cFileName, uRetVal);
UpdateData (FALSE);
}
}
while (FindNextFile (hFF, &wfd))
{
if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
... (cont.)
How do I extract the Version of an EXE, DLL etc ? [Version, EXE, DLL, GetFileVersionInfoSize(), GetFileVersionInfo(), VerQueryValue(), Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
3.
How do I extract the Version of an EXE, DLL etc ?
I make no promises as to quality, but it _does_ work. All error
handling and parameter validation has been removed for brevity.
void GetVersionOfFile (char * pszAppName, // file
char * pszVerBuff, // receives version
int iVerBuffLen, // size of buffer
char * pszLangBuff, // receives language
int iLangBuffLen) // size of buffer
{
DWORD dwScratch;
DWORD * pdwLangChar;
DWORD dwInfSize ;
UINT uSize;
BYTE * pbyInfBuff;
char szVersion [32];
char szResource [80];
char * pszVersion = szVersion;
dwInfSize = GetFileVersionInfoSize (pszAppName, &dwScratch);
if (dwInfSize)
{
pbyInfBuff = new BYTE [dwInfSize];
memset (pbyInfBuff, 0, dwInfSize);
if (pbyInfBuff)
{
if (GetFileVersionInfo (pszAppName, 0, dwInfSize, pbyInfBuff))
{
if (VerQueryValue (pbyInfBuff,
"\\VarFileInfo\\Translation",
(void**)(&pdwLangChar),
&uSize))
{
if (VerLanguageName (LOWORD (*pdwLangChar),
szResource,
sizeof(szResource)))
{
strncpy (pszLangBuff, szResource, iLangBuffLen);
}
wsprintf (szResource, "\\StringFileInfo\\%04X%04X\\FileVersion",
LOWORD (*pdwLangChar), HIWORD (*pdwLangChar));
if (VerQueryValue (pbyInfBuff,
szResource,
(void**)(&pszVersion),
&uSize))
{
strncpy (pszVerBuff, pszVersion, iVerBuffLen-1);
}
}
}
delete [] pbyInfBuff;
... (cont.)
How do I ensure that only one instance of my program runs ? (using: Visual C++ 6.0) [Article, CreateMutex(), Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
7.
How do I ensure that only one instance of my program runs ?
Take a look at this code. The first piece of code would be called very
early in your program, typically inside InitInstance for an MFC program.
if (WeAreAlone ("Some_Unique_Name_Or_Other"))
{
// Proceed
}
else
DebugMessage ("Error: app already running!");
BOOL CMyApp::WeAreAlone (LPSTR szName)
{
HANDLE hMutex = CreateMutex (NULL, TRUE, szName);
if (GetLastError() == ERROR_ALREADY_EXISTS)
{
CloseHandle(hMutex);
return FALSE;
}
return TRUE;
}
Why go to this complexity ? You may well ask. Some people just check
for a fixed window class, indeed Microsofts own sample code does exactly this.
The problem is that if your application is started up programmatically, the
second instance may be running before the first instance has managed to create
its window, and the window-class-based method will not work under those
circumstances.
What are the pros and cons of the different IPC methods ? [IPC, Named Pipe, Mailslot, WM_COPYDATA, Memory Mapped File, Shared Section, DDE, NetDDE, ddeml, Socket, Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
9.
What are the pros and cons of the different IPC methods ?
Named Pipes (or anonymous)
Use file APIs, so relatively simple to implement if you're at all
file-savvy. Not queued. Connection-oriented, i.e. point to point, and therefore
can't broadcast. Win9x can act as a named pipe client, but not as a named pipe
server. NT can do both.
Mailslots
Queued, connectionless and can therefore broadcast. Simple to use, but
have some drawbacks :
Because the sender doesn't know what protocols are installed on the
receiver, mailslot messages are duplicated on every installed protocol, and
it's your responsibility to sort out the resulting mess (usually with some sort
of tagging system). A length limit of 400 bytes or so. Don't have guaranteed
delivery, though I've yet to see one fail to arrive (on a LAN : see point 4).
Broadcasting to a group (e.g. a domain) works fine... until you want to do it
outwards over a RAS link. Then it just plain breaks. You won't find this fact
documented anywhere, as far as I can find. But it bit me, it bit Intel, and it
will bite you as well. Microsoft explained this blocking behaviour to me as
their desire not to flood another network with broadcast UDP, which is fair
enough... if they'd actually got it right. In actuality, about one message in 6
gets through.
WM_COPYDATA
Very simple to use. Obviously message based, so you have to pump
messages. If you need something quick and dirty for occasional-use messaging,
both apps (or at a minimum the receiver app) have a message pump and you can
get a window handle, this is hard to beat.
Memory Mapped Files
MMFs don't necessarily need to be associated with a disk file, so you
can use them for IPC. Since MMFs are the underlying implementation technique
for most of the other IPC methods, you won't get much better performance if a
shared memory technique fits your requirement.
DLL Shared Sections
These require you to write a DLL of course, w ... (cont.)
Given a PID, how do I find the name of the process executable ? [PID, OpenProcess(), EnumProcessModules(), GetModuleBaseName(), Process ID, Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
13.
Given a PID, how do I find the name of the process executable ?
The key here is to use OpenProcess(), EnumProcessModules() and
GetModuleBaseName(). Assume that the Process ID is in the value DWORD dwPid.
HANDLE hProc;
char szProcessName [80];
HMODULE ahMod [10];
DWORD dwNeeded;
hProc = OpenProcess (PROCESS_QUERY_INFORMATION|PROCESS_VM_READ,
FALSE,
dwPid);
if (hProc)
{
if (EnumProcessModules (hProc,
ahMod,
sizeof(ahMod),
&dwNeeded))
{
if (GetModuleBaseName (hProc,
ahMod[0],
szProcessName,
sizeof(szProcessName)))
{
}
else
{
}
}
CloseHandle (hProc);
}
}
How do I delete a Directory tree that isn't empty ? [Directory, Shell, SHFileOperation(), SHFILEOPSTRUCT, Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
28.
How do I delete a Directory tree that isn't empty ?
You can't use RemoveDirectory, because it only works on empty
directories/folders. But you CAN use a Shell function for this, the ubiquitous
SHFileOperation() :
SHFILEOPSTRUCT sh;
sh.hwnd = GetSafeHwnd();
sh.wFunc = FO_DELETE;
sh.pFrom = "c:\\test\0";
sh.pTo = NULL;
sh.fFlags = FOF_NOCONFIRMATION | FOF_SILENT;
sh.hNameMappings = 0;
sh.lpszProgressTitle = NULL;
SHFileOperation (&sh);
That code will softly and silently remove an entire tree, starting from
(and including) c:\test.
NOTE : under NT, this may fail because a process has a folder or
subfolder as its current directory. This problem does not arise in Win9x.
~ Extra Wrinkle ~
This comes courtesy of Ed Eichman, who wrote to tell me about a problem
he had with removing a folder tree:
>> I had a "remove dir" function that removed all files in the dir, and
then deleted the dir itself. I used CFileFind to get and delete the files, and
then called _rmdir WITHOUT FIRST CALLING CFileFind.Close ()! Adding the Close
fixed my problem.
How do I get started working with Threads ? [Thread, Worker Thread, CreateThread(), AfxBeginThread(), Critical Section, Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
31.
How do I get started working with Threads ?
Threads are really not that difficult, and worker threads in particular
are quite easy (worker threads don't have a user interface, they just do work
in the background). MFC isn't really threadsafe, and rather than spend time
remembering what I can and can't do with MFC and threads, I just avoid the use
of MFC within threads: my apps tend to have an MFC core with pure C/SDK worker
threads.
Essentially a Worker Thread consists of a function, which is specified
when the thread is created (using CreateThread() for an SDK program, or
AfxBeginThread() for an MFC program). When the function exits, the thread is
done. CreateThread looks complex, but most of its parameters can be left at the
defaults.
The only mildly tricky part is ensuring that the threads get killed off
if your app is closed down: this usually requires that your main thread set an
"event" (see CreateEvent/SetEvent) which the worker(s) can check - if it/they
see the event set they drop out of their processing loop, exit and therefore
cease.
Of course if you want multiple threads accessing a single resource
(such as a data structure), you'll need to read up on synchronisation using
Critical Section objects. Actually getting to the shared object is trivial, as
threads share the same address space. Think of it like this : processes are the
unit of addressability ; threads are the unit of executability.
Check out these fragments of code, which are from a multithreaded
application I wrote recently. The application creates a closure event thus :
m_hCloseEvent = CreateEvent (NULL, TRUE, FALSE, "AG61_BN9_RMM_CLOSE");
and this event is used when closing down the threads, as we'll see
below.
This is the part that starts the threads :
CWinThread * pNewThread;
...This code then appears inside a loop which sets up the threads...
m_ateThreadTable [m_iThreadCount].iPortNum = iComNum;
m_ateThreadTable [m_iThreadCo ... (cont.)
I start another app and try and wait synchronously on its Process Handle, but both processes hang. Why? [Process Handle, ShellExecuteEx(), CreateProcess(), HWND_BROADCAST, HWND_TOPMOST, SendMessageTimeout(), SendMessage(), Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
34.
I start another app and try and wait synchronously on its Process
Handle, but both processes hang. Why?
This situation arises when you use ShellExecuteEx() or CreateProcess()
to start another application from your GUI application, then try to wait
synchronously using WaitForSingleObject on its process handle.
The problem arises because your application has a window but isn't
pumping messages. If the spawned application invokes SendMessage with one of
the broadcast targets (HWND_BROADCAST or HWND_TOPMOST), then the SendMessage
won't return to the new application until all applications have handled the
message - but your app can't handle the message because it isn't pumping
messages.... so the new app locks up, so your wait never succeeds.... DEADLOCK.
If you have absolute control over the spawned application, then there
are measures you can take, such as using SendMessageTimeout() rather than
SendMessage (e.g. for DDE initiations, if anybody is still using that). But
there are situations which cause implicit SendMessage() broadcasts over which
you have no control, such as using the SetSysColors API for instance.
The only safe ways round this are (a) split off the Wait into a
separate thread, or (b) use a timeout on the Wait and use PeekMessage in your
Wait loop to ensure that you pump messages. You could also try using the
MsgWaitForMultipleObjects API, but that's not the easiest function in the world
to get your head around....
How do I get the name of the EXE associated with a given window ? [EXE, PPERF_DATA_BLOCK, PPERF_OBJECT_TYPE, PPERF_INSTANCE_DEFINITION, PPERF_COUNTER_BLOCK, PPERF_COUNTER_DEFINITION, GetWindowThreadProcessId(), Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
38.
How do I get the name of the EXE associated with a given window ?
Once upon a 16-bit time this was trivial, but now it's harder. The code
below is a (bug-corrected) version of an MS sample:
BOOL MyGetWindowExeFilename (HWND hWnd,
char * pszFilename,
int iSizeofBuff)
{
DWORD dwActiveProcessId;
DWORD CurrentProcessId;
BOOL bFound = FALSE;
char szIndex[512] = "";
DWORD dwBytes = 12000;
DWORD dwProcessIdOffset;
DWORD dwIndex;
int i;
PPERF_DATA_BLOCK pdb;
PPERF_OBJECT_TYPE pot;
PPERF_INSTANCE_DEFINITION pid;
PPERF_COUNTER_BLOCK pcb;
PPERF_COUNTER_DEFINITION pcd;
// Get PID corresponding to this window handle.
GetWindowThreadProcessId (hWnd, &dwActiveProcessId);
// Get the index for the PROCESS object.
if (GetIndex ("Process", szIndex) != ERROR_SUCCESS)
{
return FALSE;
}
// Get memory for PPERF_DATA_BLOCK.
pdb = (PPERF_DATA_BLOCK) HeapAlloc (GetProcessHeap(),
HEAP_ZERO_MEMORY,
dwBytes);
// Get performance data.
while (RegQueryValueEx (HKEY_PERFORMANCE_DATA,
(LPTSTR)szIndex,
NULL,
NULL,
(LPBYTE)pdb,
&dwBytes) == ERROR_MORE_DATA)
{
// Increase memory.
dwBytes += 1000;
// Allocated memory is too small; reallocate new memory.
pdb = (PPERF_DATA_BLOCK) HeapReAlloc (GetProcessHeap(),
HEAP_ZERO_MEMORY,
(LPVOID)pdb,
dwBytes);
}
// Get PERF_OBJECT_TYPE.
pot = (PPERF_OBJECT_TYPE)((PBYTE)pdb + pdb->HeaderLength);
// Get the first counter definition.
pcd = (PPERF_COUNTER_DEFINITION) ... (cont.)
How do I run another program from my program ? [system(), _spawn(), WinExec(), ShellExecute(), ShellExecuteEx(), CreateProcess(), Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
43.
How do I run another program from my program ?
This question comes up at least once a week in the Microsoft public
newsgroups. It seems simple, but there are many options for running another
program, and the differences between them can be subtle. Basically, the
available methods are as follows :
system()
Passes a command to the command interpreter (CMD.EXE on Windows NT).
The simplest way of getting something done, but you might not like the "DOS"
box that pops up when you invoke it.
_spawn()
Part of the C runtime, _spawn is actually a family of functions - see
the runtime library help for details. Because it's part of the CRT, it is at
least portable.
WinExec()
Obsolete in the 32-bit world, included only for compatibility with 16
bit code.
ShellExecute()
Part of the Win32 API, ShellExecute is the simple launching API of
choice for the foreseeable future, because it will check against operator
execute privileges under Windows 2000.
ShellExecuteEx()
Essentially the same as ShellExecute, but takes a structure for a
little more flexibility. One notable extra feature is that the Ex version
allows you to get a handle to the created process.
CreateProcess()
This is how real men launch their processes. CreateProcess is the
underlying API for starting another process, and give maximum power at the
expense of being a little more troublesome to drive. .
The last two functions have the advantage that you can get a process
handle back from them and then wait on that handle, allowing you to invoke
another process synchronously : so you can invoke another process, have that
process run to completion, and then your original process resumes, knowing that
the child process at least ran (you have to invent your own mechanism for
finding out whether the child did what it was supposed to, of course).
I can't make CreateProcess() launch my process or handle its parameters. Why ? [CreateProcess(), STARTUPINFO, PROCESS_INFORMATION, PATH, Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
46.
I can't make CreateProcess() launch my process or handle its
parameters. Why ?
There are two main things that can go wrong when using CreateProcess.
A. Unqualified App Names
The first problem is a failure to realise how CreateProcess behaves
when you give an application name. Let's say I call CreateProcess like this :
BOOL bRet ;
STARTUPINFO sui ;
PROCESS_INFORMATION pi ;
sui.cb = sizeof (STARTUPINFO);
GetStartupInfo (&sui);
sui.dwFlags = STARTF_USESHOWWINDOW ;
sui.wShowWindow = SW_SHOW ;
bRet = CreateProcess ("myapp.exe",
NULL,
NULL, NULL, FALSE,
0, NULL, NULL,
&sui,
&pi);
Chances are that will fail. Why ? Because the application name is not
fully qualified. If you simply use the EXE name, in the first parameter,
CreateProcess requires that the EXE be fully qualified, i.e. it contain the
full path to the EXE file. If, on the other hand, you called it like this :
bRet = CreateProcess (NULL,
"myapp.exe",
NULL, NULL, FALSE,
0, NULL, NULL,
&sui,
&pi);
That would probably work, because if the EXE name is given as part of
the command line Windows will apply the same searching rules as if you had
simply typed the name at the command prompt, i.e. it will search in the
following places :
- The directory from which the application loaded.
- The current directory for the parent process.
- Windows 95/98: The Windows system directory.
- Windows NT/2000: The 32-bit Windows system directory (usual name
System32).
- Windows NT/2000: The 16-bit Windows system directory (usual name
System).
- The Windows directory.
- The directories that are listed in the PATH environment variable
If you give a command line which contains spaces, you'll need to use
quotes to ... (cont.)
How do I determine the full path to my own executable file at run-time ? [GetModuleFileName(), Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
48.
How do I determine the full path to my own executable file at run-time ?
Easy peasy. Just call GetModuleFileName() using NULL for the HMODULE
parameter.
NB : Windows 95 developers - read the help, there are some
long-filename problems that affect only you.
How do I start another Process and wait for it to complete before continuing ? [Process, CreateProcess(), ShellExecuteEx(), SHELLEXECUTEINFO, Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
58.
How do I start another Process and wait for it to complete before
continuing ?
The trick here is to realize that you can wait on the handle to a
process. You need to use CreateProcess() or ShellExecuteEx(), because you need
some way to get that handle to the newly-started process. Then you can use
WaitForSingleObject to wait on the handle. The example code below uses
ShellExecuteEx:
SHELLEXECUTEINFO sei = {0};
sei.cbSize = sizeof (SHELLEXECUTEINFO);
sei.fMask = SEE_MASK_NOCLOSEPROCESS;
sei.lpVerb = "open";
sei.lpFile = "notepad.exe";
sei.nShow = SW_SHOWNORMAL;
if (ShellExecuteEx (&sei))
{
WaitForSingleObject (sei.hProcess, INFINITE);
}
Some problems can arise with this technique. The most serious one is
described in Tip 34, but you can also run into problems with processes which
themselves start other processes, The commonest example being InstallShield (I
hate InstallShield with such venom it's difficult to maintain my composure, so
I'll just go have a beer instead...).
How do I put an Icon in the System Tray ? [Icon, System Tray, NOTIFYICONDATA, Shell_NotifyIcon(), Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
1.
How do I put an Icon in the System Tray ?
This loads the systray icon, giving it an ID because I have more than
one tray icon. The private message is also specified.
void CMainFrame::AddMyIcon (void)
{
NOTIFYICONDATA tnid;
CString csTip ;
tnid.cbSize = sizeof(NOTIFYICONDATA);
tnid.hWnd = GetSafeHwnd();
tnid.uID = SYSTRAY_QUICK_ID; // personal ID
tnid.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP;
tnid.uCallbackMessage = PRIV_SYSTRAY_ICON;
tnid.hIcon = m_hIconPhone ;
if (csTip.LoadString (IDS_QUICKMENU))
strncpy (tnid.szTip, csTip, sizeof(tnid.szTip));
else
tnid.szTip[0] = '\0';
Shell_NotifyIcon(NIM_ADD, &tnid);
}
This appears in the mainframe message map, and specifies a message sent
when the user interacts with the icon. Note that the message ID matches that
specified in the uCallbackMessage structure member.
ON_MESSAGE (PRIV_SYSTRAY_ICON, OnSysTrayIconClick)
This handles the click message declared above.
afx_msg LONG CMainFrame::OnSysTrayIconClick (WPARAM wParam, LPARAM lParam)
{
switch (wParam)
{
// bunch of other code omitted here. Note that the
// ID here matches that specified when the icon
// was inserted, in the uID structure member.
case SYSTRAY_QUICK_ID:
switch (lParam)
{
case WM_LBUTTONDOWN:
case WM_RBUTTONDOWN:
ShowQuickMenu ();
break ;
}
break ;
default:
DebugMessage ("......");
break ;
}
return TRUE ;
}
This shows the menu for the systray icon. The popup menu is loaded
elsewhere (and it MUST be a popup, or you'll get a bizarre minimal-width empty
menu appearing). You can create a single bar menu with several popups, and use
GetSubMenu to choose the one you want for any particular circumstance.
void CMainFrame::ShowQuickMenu ()
{
... (cont.)
How do I find the default Web Browser application name ? [Web Browser, FindExecutable(), Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
18.
How do I find the default Web Browser application name ?
Create a temporary .HTM file and use the API call FindExecutable() to
find the program associated with it. This trick works for all associated file
types.
How do I stop my application appearing on the Taskbar ? [Taskbar, WS_EX_TOOLWINDOW, Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
20.
How do I stop my application appearing on the Taskbar ?
There is more than one way to skin a cat (never understood that
proverb...perhaps it depends on whether you boil the cat first? I dunno,
anyway, we're digressing), and there is more than one way to stop a window
appearing on the taskbar.
Rather than WS_EX_APPWINDOW, give your window the WS_EX_TOOLWINDOW
extended style. Since toolbars don't appear on the taskbar, this will prevent
it appearing there. Unfortunately, this has some rather negative repercussions
on the appearance of your window : it gets a thin caption with smaller title,
and loses its system menu. This is not acceptable to many people.
Windows owned by an invisible window won't appear on the taskbar.
"Great", say you, "but my app is dialog based, so what now Mr Smarty ?". Well,
you can either recast your dialog app as an SDI with a hidden main window, and
have that main window shown at startup, or you can create your own hidden
window and set that as your dialogs owner, or you could just go look at tip #
26, which explains the best way....
Why doesn't my Context Menu dismiss properly when I click elsewhere ? [Context Menu, TrackPopupMenu(), Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
21.
Why doesn't my Context Menu dismiss properly when I click elsewhere ?
This is a known problem with TrackPopupMenu(). The cure is simple,
though somewhat obscure. Immediately before you call TrackPopupMenu, make a
call to SetForegroundWindow for your menu's owner window. Then immediately
after the call to TrackPopupMenu, post the same window a WM_NULL message.
Bizarre, but it works. Look at this sample code:
HMENU hQuick = ::GetSubMenu (m_hUtility, IDM_QUICK);
POINT CurPos ;
GetCursorPos (&CurPos);
SetForegroundWindow (); // Bodge
TrackPopupMenu (hQuick,
TPM_LEFTBUTTON,
CurPos.x,
CurPos.y,
0,
GetSafeHwnd(),
NULL);
PostMessage (WM_NULL, 0, 0); // Bodge
How do I start, detect and stop Screen Savers ? [Screen Saver, WM_SYSCOMMAND, SC_SCREENSAVE, OpenDesktop, SystemParametersInfo(), GetForegroundWindow(), Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
22.
How do I start, detect and stop Screen Savers ?
Starting
The method for starting a screen saver is simple, but surprising. You
post your own window a message ! Post yourself the WM_SYSCOMMAND message with
the SC_SCREENSAVE parameter :
// Uses MFC CWnd::PostMessage
PostMessage (WM_SYSCOMMAND, SC_SCREENSAVE);
Detecting and Stopping
Stopping a screen saver is somewhat more complex. The
Microsoft-documented way of doing this is to look for the special screen-saver
desktop, enumerate all windows on that desktop, and close them, as follows:
hdesk = OpenDesktop(TEXT("Screen-saver"),
0,
FALSE,
DESKTOP_READOBJECTS | DESKTOP_WRITEOBJECTS);
if (hdesk)
{
EnumDesktopWindows (hdesk, (WNDENUMPROC)KillScreenSaverFunc, 0);
CloseDesktop (hdesk);
}
// ----------------------------------------------------------------
BOOL CALLBACK KillScreenSaverFunc (HWND hwnd, LPARAM lParam)
{
PostMessage(hwnd, WM_CLOSE, 0, 0);
return TRUE;
}
However, I can't recommend this approach. I have found when using this
code, NT4 very occasionally seems to get confused and pass you back the normal
desktop handle, in which case you end up trying to close all the normal
application windows. Note : this bug has now FINALLY been acknowledged by
Microsoft - see Knowledgebase article Q230117
You can avoid this problem by taking advantage of the fact that all
screen savers built using the MS standard lib file will have the same window
class name. So if you change the above callback function code to read as
follows :
BOOL CALLBACK KillScreenSaverFunc (HWND hwnd, LPARAM lParam)
{
char szClass [32];
GetClassName (hwnd, szClass, sizeof(szClass)-1);
if (strcmpi (szClass, "WindowsScreenSaverClass") == 0)
PostMessage (hwnd, WM_CLOSE, 0, 0);
return TRUE;
}
Then the code will only close the correct window when the OS returns
the correct deskto ... (cont.)
How do I get the Handle of the Taskbar ? (using: Visual C++ 6.0) [Article, FindWindowEx(), Handle, Taskbar, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
30.
How do I get the Handle of the Taskbar ?
Easy-peasy. Like this:
HWND hSysTray = ::FindWindow ("Shell_TrayWnd", NULL) ;
Additional wrinkle : call FindWindowEx() with the above window handle
as the parent window to find a class named "Button". That will give you the
Start button handle. Don't think you can mess around with the Start menu
directly from there though - the Start menu is actually a custom control, not a
menu.
How do I get back the OLD SetForegroundWindow() behaviour ? (using: Visual C++ 6.0) [Article, AttachThreadInput(), GetForegroundWindow(), SetForegroundWindow(), Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
33.
How do I get back the OLD SetForegroundWindow() behaviour ?
NOTE : These solutions don't work with the Windows 2000 gold code. They
USED to work on the betas, but we publicised those methods and Microsoft closed
the loopholes as fast as we told people about them, until now you have to get
really down and dirty. I can't discuss the methods we use, because I need them
to work and can't afford to have Microsoft shut that door... doesn't this make
you sick ?
Method 1
For Windows 98/IE5, Microsoft changed the behaviour of
SetForegroundWindow so as to stop you grabbing the focus. Normally, this would
be entirely laudable (most applications don't REALLY need to grab focus, they
just do it anyway), but there are some special kinds of applications which
really need to be able to grab focus. Fortunately, there is a workaround. This
involves using the lock timeout feature that also arrived with the new UI.
void CMyDlg::ActualSetForegroundWindow (HWND hWnd)
{
DWORD dwTimeoutMS;
// Get the current lock timeout.
SystemParametersInfo (0x2000, 0, &dwTimeoutMS, 0);
// Set the lock timeout to zero
SystemParametersInfo (0x2001, 0, 0, 0);
// Perform the SetForegroundWindow
::SetForegroundWindow (hWnd);
// Set the timeout back
SystemParametersInfo (0x2001, 0, (LPVOID)dwTimeoutMS, 0);
}
If you have the latest header files, you'll see the following
definitions:
#define SPI_GETFOREGROUNDLOCKTIMEOUT 0x2000
#define SPI_SETFOREGROUNDLOCKTIMEOUT 0x2001
I just use the literal values here to ensure it compiles for everybody.
Method 2
Here's a method which uses a different tack. Since Windows permits the
foreground process to set the foreground window without any restrictions, this
code attaches to the foreground thread's input queue so as to "look" like it,
then calls SetForegroundWindow as before:
BOOL W2K_SetForegroundWindow (HWND hWndToForce)
{
HWND hCurrWnd;
int iMyTID; ... (cont.)
My app leaves a phantom gray button on the Taskbar when it exits. [Taskbar, WS_EX_TOOLWINDOW, ShowWindow(), SW_HIDE, WM_CLOSE, WM_DESTROY, Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
36.
My app leaves a phantom gray button on the Taskbar when it exits.
You get this problem when you change the window styles that affect the
visibility of a window in the taskbar, you naughty little tinker....
For example, if you change your windows extended style to include
WS_EX_TOOLWINDOW style (a common trick to prevent a window appearing in the
taskbar) and then fail to reset the extended style before closing the window,
the taskbar shows a phantom gray button, which vanishes when clicked.
Solutions ?
Reset the style bits of the window before closing your app, or Call
ShowWindow() with SW_HIDE for the application's main window while processing
WM_CLOSE or WM_DESTROY
SHFileOperation() gives file system error 1026. Why ? [SHFileOperation(), SHFILEOPSTRUCT, Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
42.
SHFileOperation() gives file system error 1026. Why ?
This problem comes up periodically, and is usually due to the lack of
double-nulling which SHFileOperation requires in its parameters (because they
can be multi-file lists, delimited with single NULLs and terminated with a
double NULL). Take the following code (this is all done in debug mode, by the
way) :
void CTestbed2Dlg::test_shfo (CString& csFilesSrc, CString& csFilesDst)
{
SHFILEOPSTRUCT shfos;
char szDebug [100];
int iSHerr;
shfos.hwnd = GetSafeHwnd();
shfos.wFunc = FO_COPY;
shfos.pFrom = csFilesSrc;
shfos.pTo = csFilesDst;
shfos.fFlags= FOF_NOCONFIRMATION;
shfos.lpszProgressTitle = "Testbed2";
iSHerr = SHFileOperation (&shfos);
if (iSHerr == 0)
AfxMessageBox ("Worked fine");
else
{
wsprintf (szDebug, "SHFO gave error %d", GetLastError());
AfxMessageBox (szDebug);
}
}
and call it like this :
CString csSrc;
CString csDst;
csSrc = "C:\\Scratch\\*.*";
csDst = "d:\\Scratch";
test_shfo (csSrc, csDst);
You'll get file system error 1026 every time. Modify the function code
to use local arrays like this :
void CTestbed2Dlg::test_shfo (CString& csFilesSrc, CString& csFilesDst)
{
SHFILEOPSTRUCT shfos;
char szDebug [100];
int iSHerr;
char szSrc [_MAX_PATH];
char szDst [_MAX_PATH];
strcpy (szSrc, csFilesSrc);
strcpy (szDst, csFilesDst);
shfos.hwnd = GetSafeHwnd();
shfos.wFunc = FO_COPY;
shfos.pFrom = szSrc;
shfos.pTo = szDst;
shfos.fFlags= FOF_NOCONFIRMATION;
shfos.lpszProgressTitle = "Testbed2";
iSHerr = SHFileOperation (&shfos);
if (iSHerr == 0)
AfxMessageBox ("Worked fine");
else
{
wsprintf (szDebug, "SHFO gave error %d", GetLastError());
AfxMessageBox (szDebug);
}
}
and call it exactly the same way, (note - still no explicit
double-nulling), a ... (cont.)
My app sometimes crashes when the user clicks on a Tree Control. Why ? [Tree Control, COMCTL32.DLL, Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
47.
My app sometimes crashes when the user clicks on a Tree Control. Why ?
This has happened to me if the user clicks on the tree control while my
code is programmatically updating it (typically removing an item). The giveaway
symptom is that the Dr Watson log contains lots of references to COMCTL32
ordinal 234. It doesn't happen often, because the timing has to be JUST right
to produce the problem.
This is caused by a good old-fashioned bug in the version of
COMCTL32.DLL shipped up to and including IE4: But I can't get Microsoft to
admit it, despite being able to repro it with a tiny little test program.
Installing IE5 fixes the problem, because this provides a newer fixed version
of the control DLL.
Fortunately, there is now a standalone update utility to update your
COMCTL32 without having to install IE5. Go here to get it :
http://www.microsoft.com/msdownload/ieplatform/ie/comctrlx86.asp
How do I hide the contents of the Desktop ? [Desktop, Program Manager, FindWindow(), Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
49.
How do I hide the contents of the Desktop ?
This is actually trivially easy, though in a non-obvious sort of way.
The secret is knowing that Program Manager is alive and well and lurking
around. If you get its handle and hide that window, all the icons on the
desktop will magically vanish:
void ShowDesktopIcons (BOOL bShow)
{
HWND hProgMan = ::FindWindow (NULL, "Program Manager") ;
if (hProgMan)
{
if (bShow)
::ShowWindow (hProgMan, SW_SHOW);
else
::ShowWindow (hProgMan, SW_HIDE);
}
}
Simple. So what's the downside ?
The user won't be able to right-click the desktop and get a context
menu.
The Policy system uses the same mechanism for denying access to the
desktop, so if you provide switching capability in your program and the user
has been denied access via policies, you'll be giving it back to them.
UPDATE:
I am indebted to Ryan Gruss for passing on this extra wrinkle. If you
drill down two levels as shown below, you can get direct to the List View which
hosts the icons. If you hide this, then you can clear up the desktop but still
retain the context menu and any active desktop add-ons...
HWND hPMWnd, hLVWnd, hIconWnd;
hPMWnd = FindWindow ("Progman", "Program Manager");
hLVWnd = FindWindowEx (hPMWnd, NULL, "SHELLDLL_DefView", NULL);
hIconWnd = FindWindowEx (hLVWnd, NULL, "SysListView32",NULL);
ShowWindow (hIconWnd, SW_HIDE/SW_SHOW);
Thanks, Ryan :-)
How do I programmatically dismiss a Menu ? [Menu, WM_CANCELMODE, Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
51.
How do I programmatically dismiss a Menu ?
This question most commonly arises when wanting to "time-out" a menu.
You can usurp the processing that Windows itself does : when Windows puts up a
dialog or disables a window, it sends a WM_CANCELMODE message to tell the
window to abandon all modal activities like menus. So you can achieve the same
effect by sending this message to yourself.
How do I find out which edge the Windows Taskbar is on ? [Taskbar, SHAppBarMessage(), ABM_GETTASKBARPOS, shellapi.h, APPBARDATA, Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
63
How do I find out which edge the Windows Taskbar is on ?
Simple. You use the SHAppBarMessage() api with the ABM_GETTASKBARPOS
flag, like this:
#include "shellapi.h"
APPBARDATA abd;
abd.cbSize = sizeof(abd);
SHAppBarMessage (ABM_GETTASKBARPOS, &abd);
switch (abd.uEdge)
{
case ABE_TOP:
AfxMessageBox ("Taskbar is at top");
break;
case ABE_BOTTOM:
AfxMessageBox ("Taskbar is at bottom");
break;
case ABE_LEFT:
AfxMessageBox ("Taskbar is at left");
break;
case ABE_RIGHT:
AfxMessageBox ("Taskbar is at right");
break;
}
Why don't all my controls appear in ClassWizard ? [Class Wizard, Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
6.
Why don't all my controls appear in ClassWizard ?
Easy one this. If you're using Visual C version 5 and the resource
language of your dialog does not match the resource language of the operating
system, ClassWizard breaks. Right-click the resource to get its properties, and
change the language setting.
How do I draw a Bitmap in the background of a Dialog ? [Bitmap, Dialog, OnEraseBkgnd(), WM_ERASEBKGND, Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
11.
How do I draw a Bitmap in the background of a Dialog ?
The trick is to override the OnEraseBkgnd() handler. Here's one way of
doing it:
CBitmap bitmapBkgnd;
bitmapBkgnd.Attach (LoadBitmap (AfxGetInstanceHandle(),
MAKEINTRESOURCE(m_iBitmapId)));
BOOL CTestbed2Dlg::OnEraseBkgnd(CDC* pDC)
{
CRect rect;
GetClientRect(&rect);
CDC dc;
dc.CreateCompatibleDC(pDC);
CBitmap* pOldBitmap = dc.SelectObject(&bitmapBkgnd);
int iBitmapWidth, iBitmapHeight ;
int ixOrg, iyOrg;
BITMAP bm;
bitmapBkgnd.GetObject(sizeof(BITMAP),&bm);
iBitmapWidth = bm.bmWidth;
iBitmapHeight = bm.bmHeight;
// If our bitmap is smaller than the background and tiling is
// supported, tile it. Otherwise watch the efficiency - don't
// spend time setting up loops you won't need.
if (iBitmapWidth >= rect.Width() &&
iBitmapHeight >= rect.Height() )
{
pDC->BitBlt (rect.left,
rect.top,
rect.Width(),
rect.Height(),
&dc,
0, 0, SRCCOPY);
}
else
{
for (iyOrg = 0; iyOrg BitBlt (ixOrg,
iyOrg,
rect.Width(),
rect.Height(),
&dc,
0, 0, SRCCOPY);
}
}
}
dc.SelectObject(pOldBitmap);
return TRUE;
}
If you have static text items and want them to have the bitmap as their
background, see Tip #37.
Note that the WM_ERASEBKGND message won't appear in ClassWizard by
default, because ClassWizard hides it from you. To create the handler, you'll
have to learn how to stop this hiding... which is a useful thing to know
anyway. If you go to the last right-hand tab (Class Info I think) on
ClassWizard, at the bottom of the tab you'll see a "filter" combo which is set
to "Dialog". Change this to "Window" and ... (cont.)
Why doesn't my Combo Box dropdown appear when I click the down arrow ? [Combobox, Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
32.
Why doesn't my Combo Box dropdown appear when I click the down arrow ?
Also sometimes voiced as "why can't I add items to a combo?". You've
been caught by one of the commonest newbie Windows programmer problems : you
have omitted to resize the combo box drop-down. For some unearthly reason best
known to Microsoft, the combo box drop-down defaults to a size of one pixel.
Just go into the resource editor, open the dialog and click the combo down
arrow. This produces a set of sizing handles so you can re-size the drop-down
box.
How do I create one of those neato expanding Dialogs ? [Dialog, OnInitDialog(), Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
35.
How do I create one of those neato expanding Dialogs ?
Here's one technique I've used successfully in the past:
Create a static frame, shrunk to a line, where you want the break
between the unexpanded and expanded versions of the dialog. I've found that
these kind of dialogs look nicer if there's a line between the normal and
"extra" bits, but you could always make the divider invisible if it bothers
you. Let's call our static IDC_DIVIDER.
Declare some variables in the dialog class to hold the sizes for your
dialog (the separate X sizes aren't actually required for this example, I only
include them for completeness, and to show that the code can be adapted for
dialogs which expand in X or Y).
long m_lDlgXSizeLarge;
long m_lDlgYSizeLarge;
long m_lDlgXSizeSmall;
long m_lDlgYSizeSmall;
BOOL m_bExtrasVisible
In the OnInitDialog() handler for your dialog, add the following code :
RECT rectLarge;
RECT rectDivider;
GetWindowRect (&rectLarge);
GetDlgItem (IDC_DIVIDER) -> GetWindowRect (&rectDivider);
m_lDlgXSizeLarge = (rectLarge.right - rectLarge.left) + 1;
m_lDlgYSizeLarge = (rectLarge.bottom - rectLarge.top) + 1;
m_lDlgXSizeSmall = m_lDlgXSizeLarge;
m_lDlgYSizeSmall = rectDivider.top - rectLarge.top;
HideExtraBits (TRUE); // sets initial state of extras to HIDDEN.
So you can see the code is effectively saving the expanded and
unexpanded sizes for the dialog, based upon the coordinates of the divider
static, without saving any absolute screen positions.
Add a button which when pressed, toggles the hide state as follows :
void CMyDlg::OnExtras()
{
HideExtraBits (m_bExtrasVisible);
}
And finally, here's the function which does the hiding and showing :
void CMyDlg::HideExtraBits (BOOL bHide)
{
if (bHide)
{
SetWindowPos (NULL,
0, 0,
m_lDlgXSizeSmall,
... (cont.)
How do I change the colour or background of a static text item on a Dialog ? [Dialog, WM_CTLCOLOR, MFC, SetBkColor(), Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
37.
How do I change the colour or background of a static text item on a
Dialog ?
By handling the WM_CTLCOLOR message. Here's a sample in MFC-style code
that illustrates the technique.
My Dialog closes when the user hits the Enter/Return or Esc key. Why ? [Dialog, Esc, CDialog Class, Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
41.
My Dialog closes when the user hits the Enter/Return or Esc key. Why ?
Simple. The default action when the user hits Enter/Return is to call
OnOk, and the default action on hitting the Escape key is to call OnCancel. For
a CDialog, the default implementation of either of these functions will close
the dialog.
If you don't want the dialog to close, override OnOk and OnCancel, and
DON'T call the base class function in your handler.
How do I change the background colour of an edit field on a dialog ? [WM_CTLCOLOR, OnCtlColor(), Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
45.
How do I change the background colour of an edit field on a dialog ?
The following code will change the colour of a single edit field, with
the ID value IDC_EDIT1 to a dark gray. We do this by returning an appropriately
coloured brush from the WM_CTLCOLOR handler, and at the same time setting the
background colour of any contained text to also be dark gray.
So, let's start by defining our colour. This is done as a constant
COLORREF value (note the double R in that type name) :
const COLORREF crefDarkGray = (RGB(128,128,128));
In the class header, we define some variables for creating and holding
our brush :
LOGBRUSH m_DGBrushStruct;
HBRUSH m_DGBrush;
In the InitDialog handler, we create the brush :
m_DGBrushStruct.lbStyle = BS_SOLID;
m_DGBrushStruct.lbColor = crefDarkGray;
m_DGBrushStruct.lbHatch = 0;
m_DGBrush = ::CreateBrushIndirect (&m_DGBrushStruct);
Finally, we create a handler for the WM_CTLCOLOR message, and put some
code in it to set our colours up as required :
HBRUSH CMyDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
switch (nCtlColor)
{
case CTLCOLOR_EDIT:
if (pWnd->GetDlgCtrlID () == IDC_EDIT1)
{
pDC->SetBkColor (crefDarkGray);
return m_DGBrush;
}
break;
default:
break;
}
return hbr;
}
There's a couple of interesting things about that code. Note the use of
GetDlgCtrlID ? We can't compare the pWnd returned against a pWnd for the edit
control, because OnCtlColor() returns a temporary pointer, and comparisons
against MFC temporary pointers won't work. Secondly, as I stated above, it only
changes the background colour for the one specific edit control. If you want to
change all edit controls, simply remove the IF statement.
Note that you delete brush handles using the DeleteObject API, not ... (cont.)
How Do I Create Controls on the Fly ? (using: Visual C++ 6.0) [Article, Control, CreateWindowEx(), Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
57.
How Do I Create Controls on the Fly ?
The basic creation code looks like this:
HWND CreateList (HWND hWndParent, RECT rcl)
{
HWND hL;
hL = CreateWindowEx (WS_EX_CLIENTEDGE,
"LISTBOX",
"",
WS_VISIBLE | WS_CHILD |
WS_BORDER | WS_TABSTOP,
rcl.left, rcl.top,
rcl.right - rcl.left, rcl.bottom - rcl.top,
hWndParent,
(HMENU) NULL,
g_hInstance,
NULL);
return (hL);
}
You can use the same code to create a tree, simply by substituting the
macro WC_TREEVIEW where it says "LISTBOX" above, and adding the appropriate
styles. The RECT is in client coordinates for the parent window. See the help
for CreateWindowEx for details of all the parameters.
Incidentally, if you're doing this for a dialog, here's a neat way of
doing it maintainably. You create an (invisible) frame in the dialog (called
IDC_LIST_FRAME here), convert the coords of that from screen to client, and
pass that as the rect into the above function. That way, if you need the
listbox resizing, you can do it at design time without any tedious faffing
about with coordinate trial and error :
void OnDrawTheDamnThing (HWND hDlg)
{
RECT rScreen ;
RECT rClient ;
HWND hFrame ;
POINT pTL;
POINT pBR;
hFrame = GetDlgItem (hDlg, IDC_LIST_FRAME);
if (hFrame)
{
GetWindowRect (hFrame, &rScreen);
pTL.x = rScreen.left;
pTL.y = rScreen.top;
pBR.x = rScreen.right;
pBR.y = rScreen.bottom;
ScreenToClient (hDlg, &pTL);
ScreenToClient (hDlg, &pBR);
rClient.left = pTL.x;
rClient.top = pTL.y;
rClient.right = pBR.x;
rClient.bottom = pBR.y;
CreateList (hDlg, rClient);
}
else
OutputDebugString ( ... (cont.)
My application sometimes hangs when I hit an Accelerator Key. Why ? [Accelerator Key, Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
59.
My application sometimes hangs when I hit an Accelerator Key. Why ?
This can happen if you have an accelerator defined for a radio button,
and then make that radio button invisible. Pressing the accelerator for the
invisible radio button hangs the app. The same problem does not afflict
checkboxes or normal buttons - it's just a peculiarity of radio buttons.
There's no "fix" as such (it's a bug in Windows itself). The solution
is to routinely disable any control which you make invisible, and we've been
doing this for *years* because Windows doesn't seem to have any philosophical
problem with gleefully handing the focus to invisible windows (d'oh).
How do put a clickable URL in a Dialog ? [URL, Dialog, MFC, SS_NOTIFY, WM_COMMAND, ShellExecute, Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
64.
How do put a clickable URL in a Dialog ?
It's getting quite common these days to place a URL to a web site in
about boxes. But how do you this in a typical MFC app? Well, first you need a
static which will respond to being clicked. Let's assume you have a static
named IDC_URL in your dialog, which has as its text the URL for your website.
You need to apply the SS_NOTIFY style to this static (i.e. check the Notify
checkbox in the static's properties dialog). Then you need to override the
WM_COMMAND handler for the dialog which hosts the static, and place code
something like that below in it:
BOOL CTestbed2Dlg::OnCommand(WPARAM wParam, LPARAM lParam)
{
CString csURL;
if (HIWORD(wParam) == STN_CLICKED)
{
if (LOWORD(wParam) == IDC_URL)
{
FromHandle ((HWND)lParam)->GetWindowText (csURL);
ShellExecute (GetSafeHwnd(),
"open",
csURL,
NULL,
NULL,
SW_SHOWNORMAL);
return TRUE;
}
}
return (CDialog::OnCommand(wParam,lParam));
}
If you want the URL to appear in a different colour, see tip 37 for
instructions on changing the colour of a static.
Or, if you want big gobs of functionality, including cursor changing,
auto-colour handling etc, then you could go to
www.codeproject.com/miscctrl/hyperlink.asp and download Chris Maunder's
excellent alternative.
How do I change the Font(s) in an MFC application Dialog ? [Font, MFC, Dialog, WM_SETFONT, CFont Class, Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
66.
How do I change the Font(s) in an MFC application Dialog ?
Pretty easy this, but not obvious. Sure, it looks like all you have to
do is send a WM_SETFONT message, and that's true, but you need the new font in
order to send the message. So we have a create a font object, and make sure it
stays alive for long enough so that the dialog can use it.
Add a font member object to your dialog class, like so:
private:
CFont m_fntBoldComic;
Using ClassWizard, create a control member variable for the item you
want to change. NOTE: If the item is static text, give it a new ID i.e. don't
use ID_STATIC.
Create your font object when the dialog initialises, after the base
class handler has been called, then call the CWnd member SetFont function
against the member variable you created in Step 2. I'm changing a radio button
label here.
BOOL CTestbed2Dlg::OnInitDialog()
{
LOGFONT lfNew;
CDialog::OnInitDialog();
ZeroMemory (&lfNew, sizeof(LOGFONT));
lfNew.lfHeight = 18;
lfNew.lfWeight = FW_BOLD;
strcpy (lfNew.lfFaceName, "Comic Sans MS");
m_fntBoldComic.CreateFontIndirect(&lfNew);
m_ctrlRadio1.SetFont (&m_fntBoldComic, TRUE);
// etc...
}
Don't forget to make the dialog control big enough to contain the text
after you've changed it :-)
And that's all there is to it. The font object lives for as long as the
dialog does, because it's a member.
I've added a Menu to my Dialog. Why don't the UPDATE_COMMAND_UI handlers get called ? [Menu, Dialog, UPDATE_COMMAND_UI, CFrameWnd Class, CWnd Class, CDialog Class, WM_INITMENUPOPUP, WM_KICKIDLE, Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
25.
I've added a Menu to my Dialog. Why don't the UPDATE_COMMAND_UI
handlers get called ?
The code which dispatches ON_UPDATE_COMMAND_UI messages for menu items
is implemented inside CFrameWnd, NOT CWnd. Since CDialog is derived from CWnd,
you don't inherit this code. Bummer.
What can you do ? Well you can roll your own solution using the
WM_INITMENUPOPUP message. For sample code, see this knowledgebase article:
http://support.microsoft.com/support/kb/articles/Q242/5/77.asp
You can also handle WM_KICKIDLE (which exists to support OnIdle-type
functionality for dialogs) to achieve this : see John Wismar's article on
CodeGuru, at the following URL :
http://www.codeguru.com/dialog/OnUpdate.shtml
How do I make an invisible Dialog-based application ? [Dialog, MFC, InitInstance(), WM_CLOSE, OnClose(), Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
26.
How do I make an invisible Dialog-based application ?
MFC dialog-based apps default to using a modal dialog, which causes
problems if your application requires to be invisible. This situation most
commonly occurs when developing applications which place icons in the system
tray, and therefore need their main dialog to be invisible until the user
interacts with the icon. You can make a modeless dialog version of your app as
follows :
Make your dialog resource invisible using the styles tab in the dialog
properties.
Remove all the DoModal gunk from your InitInstance(), so you end up
with something like this :
BOOL CMyApp::InitInstance()
{
#ifdef _AFXDLL
Enable3dControls(); // using MFC in a shared DLL
#else
Enable3dControlsStatic(); // linking to MFC statically
#endif
m_pMainWnd = new CMyModelessDlg;
if (m_pMainWnd)
return TRUE;
else
return FALSE;
}
I place the call to Create (...) in my dialog constructor and make it
public. Other people organise things differently but it works for me... curse
the OOP thought police:
CMyModelessDlg::CMyModelessDlg(CWnd* pParent /*=NULL*/)
: CDialog(CMyModelessDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CMyModelessDlg)
//}}AFX_DATA_INIT
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
Create (IDD, pParent); // Create modeless dialog.
}
You will need to handle PostNcDestroy and delete the dialog object
yourself (ClassWizard can set up the handler for you) :
void CMyModelessDlg::PostNcDestroy()
{
delete this;
}
You may find that if you call DestroyWindow from within your dialog in
order to shut down, you will have to call your own PostNcDestroy in order to
avoid a leak. Watch the debug output from your app running in debug mode - if
this is the case MFC will helpfully give you a warning there. Here's the normal
WM_CLOSE handler:
void CMyModelessDlg::OnClose()
{
if (m_bOkTo ... (cont.)
How do I change the displayed icon of my MFC app on the fly ? [icon, MFC, LoadImage(), Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
29.
How do I change the displayed icon of my MFC app on the fly ?
You need to use LoadImage() to explicitly load the small version of the
new icon, and then use SetIcon to display it:
HICON hAIcon = (HICON) LoadImage (AfxGetInstanceHandle(),
MAKEINTRESOURCE(IDI_ICON1),
IMAGE_ICON,
16, 16,
LR_DEFAULTCOLOR);
SetIcon (hAIcon, FALSE);
Remember that if you want both the 32x32 and 16x16 icons to change,
you'll need to load and set both versions.
I've disabled a Menu item on my MFC program using EnableMenuItem(), but it won't go gray. Why ? [Menu, MFC, EnableMenuItem(), UPDATE_COMMAND_UI, Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
50.
I've disabled a Menu item on my MFC program using EnableMenuItem(), but
it won't go gray. Why ?
You have fallen foul of the MFC automatic menu enable/disable
mechanisms. MFC will automatically enable any menu item which has a handler
when the menu item is popped up.
So your call to EnableMenuItem (FALSE) did work, but it was promptly
undone again when the menu was popped up.
You need to define an UPDATE_COMMAND_UI handler for the menu item via
ClassWizard.
What's the best way to send myself a Message in MFC ? [Message, MFC, WM_APP, Registered Message, RegisterWindowMessage(), Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
60.
What's the best way to send myself a Message in MFC ?
Those message maps in MFC do help tidy up a program, but they pose a
problem for an SDK developer coming new to MFC - how to send my own program a
message? This used to be easy in the old days - you just posted yourself a
message value in the range WM_USER + N, and handled the message in your WndProc
in the normal way. In this brave new world however, there are a few changes.
First of all, the value to be used. WM_USER messages have always caused
some subtle bugs, because Windows itself uses a few messages in this range for
dialog management (duh ?!?!). So, Microsoft added the new range beginning with
WM_APP, which was guaranteed to be outside the range used by Windows itself -
but not outside the range that might be used by another app - we'll come to
that in a minute.
Well, that's fine if you're writing an SDK app, but what about MFC
message maps ? Well, the special ON_MESSAGE macro was invented for this. Let's
say we want to send ourselves a message of WM_APP+1000.
We have to add the macro to the message map, being careful to put it
outside the markers for ClassWizard message handlers:
....
ON_WM_INITMENU()
ON_WM_INITMENUPOPUP()
//}}AFX_MSG_MAP
ON_MESSAGE (WM_APP+1000, OnMyMessage)
END_MESSAGE_MAP()
Then we add a prototype for the message to our class header:
afx_msg LRESULT OnMyMessage (WPARAM wParam, LPARAM lParam);
Then we can create a body for the handler, and invoke it by simply
posting ourselves the message with whatever parameters we want:
PostMessage (WM_APP+1000, 1, 27);
This is all fine and dandy. But there's a fly in this ointment - a fly
that's been around since the earliest days of Windows and messages. It is
perfectly possible for one app to broadcast a message to all Windows, and
therefore it is possible for another app to broadcast the same carefully-chosen
WM_APP value to you. Thereby invoking your lovely handler ... (cont.)
How do I Create >16 Colour Toolbars? [Toolbar, CBitmap Class, Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
62
How do I Create >16 Colour Toolbars?
I did this as an exercise in self-flagellation and to prove to myself
that it could be done. I tried it with 24 bit colour instead of 256 colours,
because 256 colour bitmaps are palletised and a bit of a pain to work with as a
result.
In the class header, lets define some members:
CToolBar * m_pDataBar;
CImageList m_DataHotImages;
CImageList m_CallHotImages;
I made two 24-bit colour bitmaps 32 pixels deep by as many as were
needed to get the number of buttons I needed (5 are used here), then loaded
them into imagelists. I made the bitmaps with fuschia as the background colour,
so the image list would automatically be masked without me having to specify
separate mask bitmaps. That saves some time. The buttons are quite large at 32
pixels, but that allowed me to rip off icons for the images, which provides an
almost limitless supply of artwork :-).
CBitmap cbmDataHot;
CBitmap cbmDataCold;
cbmDataHot.LoadBitmap (IDB_DATA_HOT_LARGE_24BIT) ;
cbmDataCold.LoadBitmap (IDB_DATA_COLD_LARGE_24BIT) ;
HIMAGELIST hHotImages = ImageList_Create (32, 32, ILC_COLOR24 | ILC_MASK, 0,
5);
HIMAGELIST hColdImages = ImageList_Create (32, 32, ILC_COLOR24 | ILC_MASK, 0,
5);
// Note that fuschia (255,0,255) is the bitmap background colour
if (hHotImages)
{
m_DataHotImages.Attach (hHotImages);
m_DataHotImages.Add (&cbmDataHot, RGB(255, 0, 255));
}
if (hColdImages)
{
m_DataColdImages.Attach (hColdImages);
m_DataColdImages.Add (&cbmDataCold, RGB(255, 0, 255));
}
I made the toolbar and assigned the commands like this:
const UINT auCmdIds [] = {ID_COMMAND1,
ID_COMMAND2,
ID_COMMAND3,
ID_COMMAND4,
ID_COMMAND5};
m_pDataBar = new CToolBar;
if (!m_pDataBar->Create (this,
WS_CHILD | WS_VISIBLE |
CBRS_TOP | C ... (cont.)
How do I put new entries in the Registry ? [Registry, HKEY_CURRENT_USER, Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
12.
How do I put new entries in the Registry ?
This code puts a new string entry in the registry, under
HKEY_CURRENT_USER. It is designed to make the registry look like an INI file,
with sections and entries.
static REGSAM PrimarySecAccMask = KEY_QUERY_VALUE |
KEY_SET_VALUE |
KEY_CREATE_SUB_KEY |
KEY_ENUMERATE_SUB_KEYS |
KEY_NOTIFY ;
LONG WINAPI MyRegSetString (const char * szSection,
const char * szEntry,
const char * szValue)
{
char szTreeBranch [120] ;
HKEY hMasterKey = 0 ;
DWORD dwDisposition = 0 ;
HKEY hTopKey = 0 ;
LONG lReturn = 0 ;
// Thou shalt not pass cack.
if (szSection == NULL ||
szEntry == NULL ||
szValue == NULL)
{
return ERROR_INVALID_PARAMETER ;
}
// Select the appropriate tree.
strcpy (szTreeBranch, "Software\\MyCompany\\MyProgram\\");
strcat (szTreeBranch, szSection) ;
hTopKey = HKEY_CURRENT_USER ;
lReturn = RegCreateKeyEx (hTopKey,
szTreeBranch,
0,
szPNC_CLASS,
REG_OPTION_NON_VOLATILE,
PrimarySecAccMask,
NULL,
&hMasterKey,
&dwDisposition);
if (lReturn == ERROR_SUCCESS)
{
// section exists : set the value.
lReturn = RegSetValueEx (hMasterKey,
szEntry,
0,
REG_SZ,
(CONST BYTE *) szValue,
strlen (szValue)+1);
}
else
{
}
if (hMasterKey)
RegCloseKey (hMasterKey);
return lReturn ;
}
How do I grab the users Password under Windows NT ? [Password, Windows NT, GINA, Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
15.
How do I grab the users Password under Windows NT ?
Microsoft actually document how to do this (it's a common requirement
for programs which need to log into a database using the users own security
credentials).
Look at the GINASTUB sample which comes with the Win32 Platform SDK.
Essentially, the technique consists of replacing the default GINA with your
own, then having your GINA LoadLibrary the default one and call its entry
points as required, grabbing the data as it flies past. I have reproduced the
important function here, with my own code added for saving the username and
password to a file in ANSI format.
int WINAPI WlxLoggedOutSAS (PVOID pWlxContext,
DWORD dwSasType,
PLUID pAuthenticationId,
PSID pLogonSid,
PDWORD pdwOptions,
PHANDLE phToken,
PWLX_MPR_NOTIFY_INFO pMprNotifyInfo,
PVOID *pProfile)
{
HANDLE hFile ;
DWORD dwBytesWrit ;
TCHAR szBuffer [130];
TCHAR szUserName [64];
TCHAR szPassword [64];
iRet = GWlxLoggedOutSAS (pWlxContext,
dwSasType,
pAuthenticationId,
pLogonSid,
pdwOptions,
phToken,
pMprNotifyInfo,
pProfile);
if (iRet == WLX_SAS_ACTION_LOGON)
{
WideCharToMultiByte (CP_ACP, 0,
pMprNotifyInfo->pszUserName,
-1,
szUserName,
sizeof (szUserName),
NULL, NULL);
WideCharToMultiByte (CP_ACP, 0,
pMprNotifyInfo->pszPassword,
-1,
szPassword,
... (cont.)
How do I determine if a given user is in a given group ? [NET_API_STATUS, NetApiBufferAllocate(), NetUserGetGroups(), Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
56.
How do I determine if a given user is in a given group ?
Let's assume you have Unicode arrays declared like this:
WCHAR wcUser [UNLEN];
WCHAR wcAdmGroup [64];
In one you put the name of the user (use GetUserName to fetch the
current user. If you're an ANSI app you'll need to use MultiByteToWideChar to
convert to Unicode). Similarly get the server name and convert that to Unicode,
then put it in wcServer. Now we could use code like that below to determine if
wcUser is a member of wcAdmGroup. I've removed the error handling code for
clarity.
#include "lm.h"
#define MAX_GROUPS 30
NET_API_STATUS nasReturn;
WCHAR * pwcBuffer ;
GROUP_USERS_INFO_0 UserInfo [MAX_GROUPS];
GROUP_USERS_INFO_0 * pUserInfo = UserInfo;
DWORD dwEntriesRead ;
DWORD dwTotalEntries ;
DWORD dwBufferSize = GNLEN*MAX_GROUPS*2;
DWORD dwCount ;
bResult = FALSE;
// Allocate memory for group list buffer.
nasReturn = NetApiBufferAllocate (dwBufferSize, (void**)&pwcBuffer);
// Set the structure pointers to point at our buffer.
for (dwCount=0; dwCount
bResult is now TRUE if the user is in the group. If you need to convert
to Unicode, here's a sample call to MultiByteToWideChar:
MultiByteToWideChar (CP_ACP,
MB_PRECOMPOSED,
szBuffer,
-1,
wcAdmGroup,
sizeof (wcAdmGroup));
That takes the contents of szBuffer and converts it into Unicode in the
WCHAR array wcAdmGroup.
I keep getting "undeclared identifier" compilation failures, even though I've included all necessary headers as far as I can see. Why ? [STDAFX.H, VC_EXTRALEAN, Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
16.
I keep getting "undeclared identifier" compilation failures, even
though I've included all necessary headers as far as I can see. Why ?
Reason #1
Look at your STDAFX.H file. You will see the line
#define VC_EXTRALEAN
there. This excludes whole sections of Win32 functionality, including
the serial comms stuff. Comment it out and rebuild.
Reason #2
Certain functions are only included if the target operating system is
WinNT, and even then only if it's NT4 (or later). Put the line
#define _WIN32_WINNT 0x0400
at the _top_ of your STDAFX.H to force the compiler to include the
excluded functions.
CreateWaitableTimer is a good example of the functions that behave like
this, and it commonly comes up in this context on the newsgroups. You can see
the exclusion if you look in WINBASE.H where it's declared.
Reason #3 (courtesy of Joseph Newcomer)
You have done the following:
#define _whatever
#include "stdafx.h"
in some module, where the symbol _whatever is one of the symbols that
causes certain names to be defined by including windows.h. But in spite of
this, the symbols you want are still undefined. Why? Because of precompiled
headers. The symbols available to your compilation are made available based on
the precompiled header which is in turn based on the compilation of stdafx.h.
If the symbols were not visible at that compilation, changing the #define
symbols in other modules will have no effect. Go back and add the #define to
your compilation of stdafx.h.
My app works in Debug build, but crashes in Release. What's the difference between the two ? [Debug, Release, Heap Allocator, ASSERT, Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
40.
My app works in Debug build, but crashes in Release. What's the
difference between the two ?
This is a very common question that arises on the newsgroups and a lot
of people don't fully understand the differences between debug and release
builds, so it's sometimes wrongly answered. The differences fall into several
camps, any one of which can kill you. So, presented in the order of most likely
problem cause -> least likely, these are the major differences:
Heap Allocator
The debug Heap Allocator puts guard bytes around the memory for objects
that you allocate on the heap (e.g. using "new"). If you write beyond the end
of an object - a common error in C/C++ when people forget that arrays are
indexed from zero and get their indexes off by one - then you will probably get
away with it in debug mode, but in release mode you'll definitely cause
corruption, and probably a crash sometime later.... just far enough later to
completely confuse you as to the cause.
Whilst we're on the subject of array overwrites, a dead giveaway for a
local (stack) variable overwrite, by the way, is the function that crashes when
it returns. This happens because someone wrote past the end of an
automatic-declared array and corrupted the stack frame. OK, end of
digression.....
ASSERT Behaviour
Many C programming books tell you to "ASSERT the world". You typically
put ASSERT statements in to sanity-check your code, such as checking that
parameters have sensible values, and that handles are not null. Unfortunately,
folks sometimes put code in an ASSERT that they shouldn't - code which is
FUNCTIONAL in nature, i.e. active code for their app. To take an example:
ASSERT (OpenMyWindow () != NULL);
instead of
hWND = OpenMyWindow();
ASSERT (hWND != NULL);
Code in an ASSERT is omitted in release builds, so if you wrote the
first example, your window would open in debug mode, but not in release mode.
This would be fairly obvious, but of cou ... (cont.)
Why won't the Compiler let me use a Class Member Function as a Callback ? [Compiler, Class Member Function, Callback, Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
52.
Why won't the Compiler let me use a Class Member Function as a Callback
?
You can't use normal non-static C++ class member functions as callbacks
because there's an invisible parameter (this) required on the stack when
calling such functions. Windows is fundamentally C based, and doesn't know
anything about objects and "this" pointers, so the callbacks don't use them. In
any case, how would the OS know what "this" to use, and what kind of "this" to
point at ?
You can of course use a static member function or a simple global
function as a callback, because they're not associated with a specific class
instance, so no "this" is used when calling them. But hang on, what do you then
do if you want to access class member variables or methods ? A static member
function can't access a specific instance's members. Well, you have a number of
options:
If you only ever have one object of this class, you can simply stick
"this" in a global and dereference through that global pointer in your callback
function to get to the class object.
But if you can have more than one instance, you need some way of
mapping back to the correct value of this in the callback function, so read
on...
Some API functions which use callbacks allow you to specify
user-defined data which is then supplied back to your callback, so you can put
a copy of "this" in that data and dereference it in your callback function. The
multimedia timer function timeSetEvent is one example of such an API.
If the API you're using doesn't support user defined data, you'll have
to invent your own mapping scheme using some other unique data (such as a
window handle) to get back to "this". Every program is different in this
respect, so I can't advise on the details.
Why doesn't my System Wide Hook capture all processes ? [System Wide Hook, Shared Section, Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
4.
Why doesn't my System Wide Hook capture all processes ?
The usual reason for system-wide hooks not operating systemically is
that an essential piece of data (usually, but not always retricted to the
HHOOK) is not stored in a shared section, so each loaded instance of the DLL
has a different value for the variable, and only one (in the address space of
the initial loader app) has the right value and behaves as expected.
So, to create a Shared Section :
1. Use a pragma in your DLL code to specify the shared variables :
#pragma data_seg(".SHARDAT")
HWND hWndMain = 0;
HHOOK hKeyHook = NULL ;
HHOOK hWndHook = NULL ;
HHOOK hMsgHook = NULL ;
BOOL bSomeFlagOrOther = FALSE;
#pragma data_seg()
Note that shared variables *MUST* be initialised.
2. Create a DEF file with the following in it :
SECTIONS
.SHARDAT READ WRITE SHARED
Where the section name matches that in your pragma above. If having a
DEF file offends you, you can specify the section in a linker command parameter
(see the docs for the linker).
How do I let the user Drag a window which has no Titlebar ? [Drag, Titlebar, WM_NCHITTEST, HTCAPTION, Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
8.
How do I let the user Drag a window which has no Titlebar ?
There are several ways. One quick-n-dirty method is handle the
WM_NCHITTEST message and return HTCAPTION for the places where you want the
user to be able to drag (i.e., pretend your window has a caption when it
doesn't).
For someone who wants to get nitty-gritty and cut the code themselves
(and doesn't care about the inefficiencies involved), the code below
demonstrates dragging using the right mouse button :
void CTestbed2Dlg::OnRButtonDown(UINT nFlags, CPoint point)
{
ClientToScreen (&point);
m_LastPoint = point;
m_bMoving = TRUE;
}
// ------------------------------------------------------------------------
void CTestbed2Dlg::OnMouseMove(UINT nFlags, CPoint point)
{
RECT cr;
ClientToScreen (&point);
if (m_bMoving)
{
if ((point.x != m_LastPoint.x) ||
(point.y != m_LastPoint.y) )
{
GetWindowRect (&cr);
int iX = cr.left - (m_LastPoint.x - point.x);
int iY = cr.top - (m_LastPoint.y - point.y);
int iWidth = cr.right - cr.left;
int iHeight = cr.bottom - cr.top;
MoveWindow (iX, iY, iWidth, iHeight);
}
m_LastPoint = point;
}
else
CDialog::OnMouseMove(nFlags, point);
}
// ------------------------------------------------------------------------
void CTestbed2Dlg::OnRButtonUp(UINT nFlags, CPoint point)
{
if (m_bMoving)
m_bMoving = FALSE;
else
CDialog::OnMButtonUp(nFlags, point);
Is there a way to redirect stdout to my application window ? [stdout, Pipe, CreatePipe(), Anonymous Pipe, Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
10.
Is there a way to redirect stdout to my application window ?
This tip comes courtesy of Claire Sylvestre :
You can redirect the child process' output to your application through
Pipes. You create a pipe, pass its output end to the CreateProcess function,
and you read the child's output from the pipe's input end into a buffer. See
doc on CreatePipe() and Anonymous Pipe Overview.
How do I make a window "Topmost" ? [SetWindowPos(), Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
14.
How do I make a window "Topmost" ?
Easy. One API call. This function wraps that API call for convenience,
allowing you to make the window topmost, or remove the topmost attribute with a
single call. Remember that topmost windows occupy their own z-order : so if you
make A topmost, then B, window B will appear on top of window A.
BOOL MakeWindowTopMost (HWND hWnd, BOOL bTopMost)
{
if (hWnd)
{
return (SetWindowPos (hWnd,
(HWND) (bTopMost?HWND_TOPMOST:HWND_NOTOPMOST),
0,0,0,0,
SWP_NOMOVE | SWP_NOSIZE)) ;
}
else
return FALSE ;
}
How do I find out which Version of NT (server/workstation) I'm running on? [Version, Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
17.
How do I find out which Version of NT (server/workstation) I'm running
on?
You can find out if your system is a server or a workstation by reading
the registry and checking this key:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ProductOptions
Look for the value "Product Type". There are three possible values :
"WinNT" workstation
"ServerNT" server
"LanmanNT" domain controller
How do I find the default Web Browser application name ? [Web Browser, Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
18.
How do I find the default Web Browser application name ?
Create a temporary .HTM file and use the API call FindExecutable to
find the program associated with it. This trick works for all associated file
types.
How do I find the current IP Address(es) of my machine ? [IP Address, GetComputerName(), gethostname(), gethostbyname(), WINSOCK2.H, Winsock, Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
19.
How do I find the current IP Address(es) of my machine ?
You can use GetComputerName() (or gethostname()) and gethostbyname()
(see WINSOCK2.H) for this. Remember that a computer can have more than one IP
address - it can have multiple adapters, or be supporting extra addresses for
RAS purposes.
Bear in mind that this code uses Winsock functionality, so a successful
call to WSAStartup is a pre-requisite.
HOSTENT* phe ;
char szCpuName [128] ;
DWORD dwSize = sizeof(szCpuName);
int iaddr, ifield;
UINT uField;
CString csIpAddr;
CString csAddrField;
if (GetComputerName (szCpuName, &dwSize) == 0)
{
wsprintf (szCpuName, "Can't get computer name, error %d",
GetLastError ());
AfxMessageBox (szCpuName);
}
else
{
phe = gethostbyname (szCpuName);
if (phe != NULL)
{
for (iaddr=0; phe->h_addr_list[iaddr] != NULL; iaddr++)
{
csIpAddr = "";
for (ifield=0; ifield h_length; ifield++)
{
if (ifield > 0)
csIpAddr += ".";
uField = ((BYTE*)phe->h_addr_list[iaddr])[ifield];
csAddrField.Format("%u", uField);
csIpAddr += csAddrField;
}
// Do what you want with the address here. I add it to a listbox.
m_ctrlListbox.AddString (csIpAddr);
}
}
}
I've created a 16x16 Icon for my app. Why does Windows insist on squishing up the 32x32 version ? [Icon, MFC, LoadIcon(), LoadImage(), Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
23.
I've created a 16x16 Icon for my app. Why does Windows insist on
squishing up the 32x32 version ?
You've created an MFC app. Taking a dialog-based app as an example,
look at the source for your main window(dialog) and check out the constructor.
You'll see this:
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
But LoadIcon() can only load icons which are SM_CXICON x SM_CYICON
pixels big, which is nearly always the 32x32 version. When it needs a 16x16
version, such as for your titlebar, it squishes that up. Yuck. Instead, replace
the code above with this :
m_hIcon = (HICON) LoadImage (AfxGetInstanceHandle(),
MAKEINTRESOURCE(IDR_MAINFRAME),
IMAGE_ICON,
16, 16,
LR_DEFAULTCOLOR);
and lo, there shall be rejoicing in the land...
How do I allow the user to cancel a time-consuming operation ? [MFC, OnIdle(), PeekMessage(), Worker Thread, Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
39.
How do I allow the user to cancel a time-consuming operation ?
Ooooh, this question comes up ALL the time...
It frequently happens that you wish to carry out a time-consuming
operation, but allow the user to abort that operation at any time. Also you may
wish to display the progress of the operation using a common-control progress
bar. The problem arises when you implement this, and carry out your operation
in a tight loop. While that loop is running, your machine is not processing
("pumping") any messages, so your window doesn't receive WM_PAINT, preventing
your progress bar from updating, and your user will be unable to push the
Cancel/Abort button because you're not processing any WM_COMMAND messages.
There are a number of options open to you :
Add a timer and do a chunk of processing on each timer tick. The upside
is it's simple to implement. The downsides are:
You may well waste a lot of time after the processing is done, waiting
for the next tick.
You have to organise it so if the next tick occurs before you've
finished the last block of processing, your algorithm doesn't screw up.
The application won't scale well to a faster processor.
Windows timers are notoriously inaccurate.
I think you'll agree that this approach basically sucks.
For MFC apps, perform a chunk of processing on each OnIdle() call. MFC
calls OnIdle when there aren't any more messages to fetch from the queue. Can
be tricky to get right, and again it requires you to break the processing into
small chunks, which may not suit your algorithm.
Add a PeekMessage loop within your processing loop, calling it after
each small chunk of processing. Here is a example of an MFC-friendly
implementation of this technique :
while ()
{
MFC_Yield ();
}
.....
}
void CMyClass::MFC_Yield ()
{
MSG msg ;
while (PeekMessage (&msg, 0, 0, 0, PM_NOREMOVE))
{
if (!(AfxGetApp()->PumpMessage() ... (cont.)
How do I stop the user resizing my window ? [WM_NCHITTEST, HT_NOWHERE, WM_GETMINMAXINFO, Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
44.
How do I stop the user resizing my window ?
Three options :
Give the window a non-sizing (e.g. dialog) border. This is the best
option as well as the simplest, because the appearance of the window reflects
what you can do with it.
Handle the WM_NCHITTEST message and return HT_NOWHERE whenever the user
is in a sizing portion of the border.
Handle WM_GETMINMAXINFO and adjust the ptMinTrackSize and
ptMaxTrackSize values of the MINMAXINFO structure to be the same as the windows
current size. You can use the same trick to allow resizing but enforce a
minimum resize value.
How do I programmatically dismiss a Menu ? [Menu, WM_CANCELMODE, Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
51.
How do I programmatically dismiss a Menu ?
This question most commonly arises when wanting to "time-out" a menu.
You can usurp the processing that Windows itself does : when Windows puts up a
dialog or disables a window, it sends a WM_CANCELMODE message to tell the
window to abandon all modal activities like menus. So you can achieve the same
effect by sending this message to yourself.
How do I constrain window resizing to always be square ? [WM_SIZING, Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
53.
How do I constrain window resizing to always be square ?
You need to handle the WM_SIZING message. Here's some sample code in
MFC style :
void CMyDlg::OnSizing(UINT fwSide, LPRECT pRect)
{
CDialog::OnSizing(fwSide, pRect);
int iWidth = (pRect->right)-(pRect->left);
int iHeight = (pRect->bottom)-(pRect->top);
if (iWidth > iHeight)
{
pRect->bottom = pRect->top + iWidth;
}
else
{
if (iHeight > iWidth)
{
pRect->right = pRect->left + iHeight;
}
}
}
How do I find out the Drive letters in use on a given system ? [Drive, GetLogicalDriveStrings(), Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
54.
How do I find out the Drive letters in use on a given system ?
This one's easy. You need to use the cunningly-named
GetLogicalDriveStrings() API.
int iStrsLen;
char smzDrives [(3+1)*26+1];
char szDrive [3+1];
int i;
iStrsLen = GetLogicalDriveStrings (sizeof(smzDrives), smzDrives);
if (iStrsLen == 0)
{
// Handle error
}
else
{
if (iStrsLen > sizeof(smzDrives))
{
// Buffer not big enough... eh? - I provided space for all 26 !?!
}
else
{
// Parse the returned multi-string array.
i = 0;
while (smzDrives[i])
{
strcpy (szDrive, &(smzDrives[i]));
// szDrive now contains the root folder of this drive. I
// put this in a listbox here:
m_ctrlListbox.AddString (szDrive);
while (smzDrives[i]) i++;
i++;
}
}
}
When I use a big (> 1MB) automatic-declared Array my app crashes. Why ? [Array, Linker, DEF, Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
55.
When I use a big (> 1MB) automatic-declared Array my app crashes. Why ?
You've fallen victim to a problem that's rather poorly documented, but
there IS a relevant knowledgebase article which I have reproduced in part below
(Q97786). The default stack size is 1MB for a Win32 (non-CE) application, and a
quick look at the the documentation would lead you believe that it can grow
beyond that in units of 1 page, i.e. 4K at a time for x86 machines. But that's
not always the case - see the paragraph I've highlighted below.
You can get around this by setting the stack reserve and/or commit
values. In Visual C++ 6.0 this is done via Project ~ Settings ~ Link Tab ~
Category: Output. Change the Reserve value to something more appropriate and
the problem should go away.
Q97786
The information in this article applies to:
Microsoft Win32 Application Programming Interface (API), included with:
Microsoft Windows NT, versions 3.1, 3.5, 3.51, 4.0
SUMMARY
By default, space is reserved for applications in the following manner:
1 megabyte (MB) reserved (total virtual address space for the stack)
1 page committed (total physical memory allocated when stack is created)
Note: The -stack linker option can be used to modify both of these
values.
The default stack size is taken from the process default reserve stack
size.
The operating system will grow the stack as needed by committing 1 page
blocks (4K on an x86 machine) out of the reserved stack memory. Once all of the
reserved memory has been committed, Windows NT will attempt to continue to grow
the stack into the memory adjacent to the memory reserved for the stack, as
shown in the following example on an x86 machine:
|||
--------------------------------------------------------
| | | |
| 4K | 1020K ... | ... |
| | | |
-- ... (cont.)
How do I determine that another machine is present on the Network? [Network, Network Neighborhood, NetServerEnum(), NetQueryDisplayInformation(), Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
61.
How do I determine that another machine is present on the Network?
If you know the machine's IP address, you can always ping it of course.
But let's assume you only know its name and the machine doesn't have TCP/IP
installed. At first glance the obvious answer to this is the api NetServerEnum.
But NetServerEnum suffers from a problem. If a machine has recently been
switched off, NetServerEnum will see it as still present. Why? Because you're
effectively querying the network browser, you have to wait until that realises
a machine has gone from the network. That will take three announcement
intervals, at not less than 12 minutes each by default. Oooer, that's a long
time.
To see this behaviour, open up Network Neighborhood and switch a
machine off. See how long it takes for the machine to disappear from the
display. Warning, you might want to bring sandwiches and a hot drink for this
experiment.....
OK, so how do we determine if a machine has really gone away? We
obviously need to interact with the machine in some way. But what if the
machine doesn't have a share, or we don't have administrator rights to access
the admin shares? Fortunately, there's a way of doing this that doesn't rely on
privileges, and it lies in the same part of the api as NetServerEnum(). It's
called NetQueryDisplayInformation(). We treat the returned data from
NetServerEnum as advisory only, then confirm it with
NetQueryDisplayInformation. Take a look at the (rather long) code sample below.
Note that this sample assumes it is being executed in an ANSI executable, and
therefore being passed an ANSI target server name.
#define SOME_REASONABLE_LIMIT 500
DWORD CMyDlg::FindServer (const CString& rcsTarget, BOOL& bFound)
{
NET_API_STATUS nas ;
NET_DISPLAY_MACHINE * pndm;
SERVER_INFO_101 * pSI_101 ;
DWORD dwEntriesRead;
DWORD dwTotalEntries;
DWORD dwRetVal = ERROR_SUCCESS;
DWORD dwNdmCount;
int iNumServers;
int iServe ... (cont.)
How do I make accurate Timings under Win32 ? [Timing, Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
65.
How do I make accurate Timings under Win32 ?
With difficulty :-) This is one of those unfortunate cases where the
answer is hedged around with all sorts of OS-specific limitations and caveats.
Let's assume you need to measure time down to around a few
milliseconds. The first point to make is that the approach you adopt depends
upon whether you want to just measure time, or get a timely notification . If
you just to want to know the elapsed time between two events in your code you
can use QueryPerformanceCounter. There are some mathematical complexities
around allowing for counter rollover, but essentially this will tell you the
elapsed time you need. Another option is to get a class based upon the Pentium
RDTSC instruction. You can download one from P.J.Naughter's page here
If you want a notification, things get more complex. There are the
standard Windows timers documented under WM_TIMER, but these suffer from some
problems:
Limit of accuracy is around 55ms under 95/98/ME, 10-15ms under NT/2000.
WM_TIMER messages can get "merged" because they're implemented as a
flag inside the GetMessage function.
You need to run a message pump.
Alternatives are
- multimedia timers (see the help beginning with timeSetEvent) which
will take you down to a theoretical resolution of 1ms.
- waitable timer objects (NT only - see the help for
CreateWaitableTimer and also tip 16).
But there's a fly in this ointment - even NT is not a real-time OS, and
kernel-mode software can tromp all over your best-laid plans. There are badly
written drivers around that will disable interrupts at the drop of a hat, and
all your carefully constructed code won't be worth a damn if the processor
can't see the outside world anymore. Typically the culprits are flaky video
drivers, but Microsoft's own ATAPI.SYS isn't above this kind of skullduggery.
Don't believe me? try writing a little program that sets up multimedia timers
and checks their accurac ... (cont.)
How can I get Debug information from my program in the field ? [Debug, OutputDebugString(), Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
5.
How can I get Debug information from my program in the field ?
A little history: I've been working in this industry since CP/M days,
and have noticed that it seems an inescapable fact that a certain small
percentage of bugs just don't show up in testing, they only ever show in the
field with real users hitting on the system. This is especially true of
real-time systems, which is the field I started in (embedded military stuff).
Once you accept this fact of life, you realize that for this class of
bugs all the ASSERTs in the world aren't gonna help you because you're working
with release builds, and you need something you can use in the field.
So, to take an example: I have a telephony system which is my current
large project. the system is around a million lines, of which maybe 1/4 are
mine. For the main call handling code I have bits embedded in the code which do
something like this :
if (g_bDebugEnabled)
{
wsprintf (m_szDebug, "Mainfrm_LC: max WS=%d max units=%d",
wMaxCallWS, byNoOfUnits);
DebugMessage (m_szDebug) ;
}
where g_bDebugEnabled is a global flag set up from the registry and
m_szDebug is a suitably large char array.
DebugMessage is the debug handler, which can be as simple or complex as
you like, but would typically look something like this:
BOOL CMainFrame::DebugMessage (const char * pszString)
{
static char szLocalDebug [MAX_DEBUG_LENGTH+12] ;
LRESULT litem ;
time_t TimeNow ;
struct tm * pTime ;
if (!m_bStoppedData)
{
memset (szLocalDebug, 0, sizeof(szLocalDebug)) ;
TimeNow = time (NULL) ;
pTime = localtime (&TimeNow) ;
strftime (szLocalDebug, 12, "%H:%M:%S >", pTime) ;
strcat (szLocalDebug, pszString) ;
SendDlgItemMessage (IDC_DEBUG_MSGLIST,
LB_ADDSTRING,
0,
(LPARAM) (LPSTR) szLocalDebug) ;
if (m_bCopyToDbwin)
... (cont.)
What is "Hungarian" notation ? [Hungarian Notation, Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
24.
What is "Hungarian" notation ?
Hungarian Notation was invented by Charles Simonyi (a Microsoft
employee of Hungarian extraction) and presented in his thesis on
meta-programming. Essentially it consists of a naming convention whereby the
items named have information about them encoded in their names - hence
"meta-programming". This allows you to do visual type checking, and eliminates
a lot of the up-down flick reading required in C code to get from variable
declaration to variable usage (free variable declaration in C++ eliminates much
of this, but there's all that legacy code to consider).
Where I part company from Simonyi and MS is the degree to which he/they
use the notation in a problem-domain way rather than a language-domain way. For
instance, take a look at some MS source code : you'll see counter always
referred to with the prefix 'n' (which simply means a counter in pure
Hungarian), irrespective of whether that counter is declared as an int, an
unsigned int, a BYTE, whatever. Similarly, f - meaning flag - may be used to
mean a simple BOOL or a UINT array of binary bits. This allows the underlying
type to be re-declared without changing the code (not something you do very
often) but throws away at a stroke the advantages of visual type-checking (I
read code every day).
This is the way I use Hungarian :
_
The scope prefix is omitted for local-scope variable. So for example :
iCounter Integer counter, local scope
aiSalesFigures An array of integers representing regional sales
figures, at local scope.
g_dwLbIndex DWORD listbox index, with app-global scope
mg_byOffset A BYTE offset with module-global scope
m_byMachineNo A class member variable which is a byte containing a
machine number
szCustomerName A zero-terminated string containing a customer name,
local scope.
I cannot understand why any professional programmer would refuse to use
Hungarian, but many do. This mystifies me. Take a look ... (cont.)
I want to be a superstar Win32 programmer, Bob. Which books should I read ? [Win32, Article, Visual C++] www.mooremvp.freeserve.co.uk 20-Sep-2001 by Bob Morre
27.
I want to be a superstar Win32 programmer, Bob. Which books should I
read ?
There are three books which must be on the bookshelf of any Win32
programmer :
Charles Petzold Programming Windows 95 Understand the underpinnings of
Windows, particularly the messaging system.
Jeffrey Richter Advanced Windows Understand processes and threads
properly.
Marshall Brain Win32 System Services Goes beyond Richter.
These are pretty obvious, and each is a classic in its field. But here
are some others you owe it to yourself to read. Trust me, I know whereof I
speak:
Steve McConnell Code Complete The best book written on software
development..... ever. Worth buying for the chapter on optimization alone.
Jon Bentley Programming Pearls Oldie but goldie. The examples given
seem jurassic, but stick with it. There are indeed pearls in here.
Donald A Norman The Psychology of Everyday Things The seminal work on
how humans interact with the world, this book will change the way you look at
the objects and systems you use.
Fred Brooks The Mythical Man Month Essential reading for anybody who
aspires to team leadership or management (of course if you DO ever end up in
management, having read this will do you no good because you have your brains
sucked out as a required part of the induction process).
Robert Sedgewick Algorithms More manageable than Knuths multi-volume
behemoth, and available in versions with examples in different computer
languages. Guess who bought the Pascal version by mistake?
If you're using MFC, you should take a look at Jeff Prosise' book - I
believe the title is "Programming Windows 95 with MFC". I haven't read it
myself, but others whose opinions I respect have recommended it regularly.
Exporting a Registry Key (using: Windows NT 4.0) [Registry, Tip, Windows NT] www.microsoft.com 19-Sep-2001
Exporting a Registry Key
To export a key from the registry in ANSI format, use the /a switch:
regedit /a ""
For example, the following command exports the HKEY_LOCAL_MACHINE\Software key
in ANSI format from the hklm.reg file:
regedit /a c:\hklm.reg "HKEY_LOCAL_MACHINE\Software"
Rich Text to plain text conversion with Formula (using: Lotus Notes 5) [Formula, Lotus Notes, Tip, @Abstract] www.searchdomino.com 12-Sep-2001 by Sudarshan Kulkarni
Rich Text to plain text conversion with Formula
Sudarshan Kulkarni
12 Sep 2001, Rating 2.67 (out of 5)
On Web applications, it is often required to get user input as big chunk of
text (Such as Comments of feedback form). A rich-text box can be used with
"Display using HTML." For displaying purpose, it might be necessary to convert
the so-called Rich Text back to plain text.
Steps :
1. Add Rich text field to form (Say "MyField")
2. Add another Plain text field to the form (Say "MyTextField"), set the Type
as "Text" and "Computed"
3. Select the property to hide the "MyTextField" from Notes client and Web
browsers.
4. In Programmers pane, set the value for "MyTextField" as
@Abstract([TextOnly];512;" ";"MyField");
Done! Use the "MyTextField" throughout the application. It will have plain text
equivalent of "MyField".
Locking documents to prevent save conflicts (using: Lotus Notes 5) [Lotus Notes, LotusScript, Save Conflict, Tip] www.searchdomino.com 04-Sep-2001 by Savithri Ravichandran
Locking documents to prevent save conflicts
Savithri Ravichandran
04 Sep 2001, Rating 3.20 (out of 5)
This piece of code assigns edit lock to the first user who opens the document.
When other users try to open the same document, they get a message saying
"Document is locked by X" and a read-only copy is opened for them. They will
not be able to edit the document until the lock is released by the first user.
A manually run agent to unlock the document can be provided for Domino Admin in
case of system crash.
Form should have a hidden field called "Lock" of type Text (Editable)
Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant,
Continue As Variant)
If (Source.IsNewDoc) Then
Exit Sub
End If 'New Doc, Lock not reqd
Dim varLock As Variant
Dim session As New NotesSession
Dim nnUserName As New NotesName(session.UserName)
Set docBackend=Source.document
varLock=docBackend.GetItemValue("Lock")
If (varLock(0) <> "") Then
Msgbox ("Document is currently locked by "+varLock(0)+". A
read-only copy will be opened for your use.")
Exit Sub
End If
docBackend.Lock=nnUserName.Common
Call docBackend.Save(True,True)
End Sub
'When user trys to edit, check if he/she has the lock
Sub Querymodechange(Source As Notesuidocument, Continue As Variant)
If Source.FieldGetText("Lock")<>"" Then
Dim session As New NotesSession
Dim nnUserName As New NotesName(session.UserName)
If (Strcomp(nnUserName.Common,Source.FieldGetText("Lock"),5)=0)
Then
continue=True
Else
Msgbox("Sorry, you are in read-only mode ! This
operation cannot be performed. This document is currently used by
"+Source.FieldGetText("Lock"))
continue=False
End If
End If
End Sub
'Release the lock when the user with the lock closes the document
Sub Queryclose(Source As Notesuidocument, Continue As Variant)
If strNewDoc="New" Then '(exit if it's a new doc.Set this variable to
New in postopen if it's a new doc)
Exit Sub
End If
Dim ses ... (cont.)
Creating a Canonical String with UrlCanonicalize (using: Visual Basic 6.0) [SHLWAPI.DLL, URL, Canonical String, Visual Basic, Tip] www.vbnet.com 27-Aug-2001 by Randy Birch
Creating a Canonical String with
UrlCanonicalize
Prerequisites
Shlwapi.dll version 5.00 or greater, Windows 2000, Windows NT4 with IE 5 or
later, Windows 98, or Windows 95 with IE 5 or later.
Another of the Shell Lightweight Utility APIs, UrlCanonicalize takes a URL
string and converts it into canonical form. The function will do such tasks as
replacing unsafe characters with their escape sequences and collapsing
sequences like "..\..." (as shown in the first three text boxes). The pszUrl
member takes either a URL string, which must include a valid scheme such as
"http://", or a remote or local file name. pszCanonicalized holds the returned
null-terminated string for the URL.
If a URL string contains '/../' or '/./', UrlCanonicalize will normally treat
the characters as indicating navigation in the URL hierarchy. The function will
simplify the URLs before combining them. For instance "/hello/cruel/../world"
will be simplified to "/hello/world". If the URL_DONT_SIMPLIFY flag is set in
dwFlags, the function will not simplify URLs. In this case,
"/hello/cruel/../world" will be left as is.
Specific flags are provided to customize the behaviour of UrlCanonicalize:
Flag
Description
URL_DONT_SIMPLIFY
Treat '/./' and '/../' in a URL string as literal characters, not as shorthand
for navigation. See Remarks for further discussion.
URL_ESCAPE_PERCENT
Convert any occurrence of '%' to its escape sequence..
URL_ESCAPE_SPACES_ONLY
Replace only spaces with escape sequences. This flag takes precedence over
URL_ESCAPE_UNSAFE, but does not apply to opaque URLs.
URL_ESCAPE_UNSAFE
Replace unsafe values with their escape sequences. This flag applies to all
URLs, including opaque URLs.
URL_PLUGGABLE_PROTOCOL
Combine URLs with client-defined pluggable protocols, according to the W3C
specification. This flag does not apply to standard protocols such as ftp,
http, gopher, and so on. If this flag is set, UrlCombine will not simplify
URLs, so there is ... (cont.)
Encoding and Decoding URL Escape Characters (using: Visual Basic 6.0) [SHLWAPI.DLL, URL, Visual Basic, Tip, Escape Character] www.vbnet.com 27-Aug-2001 by Randy Birch
Encoding and Decoding URL Escape Characters
Prerequisites
Shlwapi.dll version 5.00 or greater, Windows 2000, Windows NT4 with IE 5 or
later, Windows 98, or Windows 95 with IE 5 or later.
Part of the Windows shell provides a series or Shell Lightweight Utility APIs
to target specific shell functionality. UrlEscape and UrlUnescape are used to
encode (and decode) a URL containing escape sequences, converting unsafe
characters, such as spaces, into their corresponding escape sequences. Unsafe
characters are those characters that may be altered during transport across the
internet. UrlEscape converts unsafe characters into their equivalent "%xy"
escape sequences; UrlUnescape converts them back.
When a URL containing spaces or other escape characters is passed to UrlEscape,
the returned string has the escape characters inserted into the string. A URL
that might contain unsafe spaces, such as "\vbnet code library\" is converted
to the browser-kind "\vbnet%20code%20library\". Passing an encoded string to
UrlUnescape converts the escape characters back to user-friendly form.
Several flags are provided to customize the behaviour of UrlEscape and
UrlUnescape:
Flag
Description
Applies To
URL_ESCAPE_SPACES_ONLY
Only escape space characters. This flag cannot be combined with
URL_ESCAPE_PERCENT or URL_ESCAPE_SEGMENT_ONLY.
UrlEscape
URL_ESCAPE_PERCENT
Escape the % character. By default, this character is not escaped.
UrlEscape
URL_ESCAPE_SEGMENT_ONLY
Escape the sections following the server component, but not the extra
information sections following a # or ? character.
UrlEscape
URL_DONT_ESCAPE_EXTRA_INFO
Don't convert the # or ? character, or any characters following them in the
string.
UrlEscape, UrlUnescape
URL_UNESCAPE_INPLACE
Use pszURL to return the converted string instead of pszUnescaped.
UrlUnescape
The string passed to UrlEscape and UrlUnescape can be any URL or file string;
they do not require a http:// or file ... (cont.)
Retrieving the Constituent Parts of a URL (using: Visual Basic 6.0) [SHLWAPI.DLL, URL, Visual Basic, Tip] www.vbnet.com 27-Aug-2001 by Randy Birch
I keep getting "undeclared identifier" compilation failures, even though I've included all necessary headers as far as I can see. (using: Visual C++ 6.0) [Compiler, VC_EXTRALEAN, stdafx.h, Precompiled Header, Visual C++, Tip] www.vbnet.com 27-Aug-2001 by Randy Birch
I keep getting "undeclared identifier" compilation failures, even though
I've included all necessary headers as far as I can see. Why ?
Reason #1
Look at your STDAFX.H file. You will see the line
#define VC_EXTRALEAN
there. This excludes whole sections of Win32 functionality, including the
serial comms stuff. Comment it out and rebuild.
Reason #2
Certain functions are only included if the target operating system is WinNT,
and even then only if it's NT4 (or later). Put the line
#define _WIN32_WINNT 0x0400
at the _top_ of your STDAFX.H to force the compiler to include the excluded
functions.
CreateWaitableTimer is a good example of the functions that behave like this,
and it commonly comes up in this context on the newsgroups. You can see the
exclusion if you look in WINBASE.H where it's declared.
Reason #3 (courtesy of Joseph Newcomer)
You have done the following:
#define _whatever
#include "stdafx.h"
in some module, where the symbol _whatever is one of the symbols that causes
certain names to be defined by including windows.h. But in spite of this, the
symbols you want are still undefined. Why? Because of precompiled
headers. The symbols available to your compilation are made available based on
the precompiled header which is in turn based on the compilation of stdafx.h.
If the symbols were not visible at that compilation, changing the #define
symbols in other modules will have no effect. Go back and add the #define to
your compilation of stdafx.h.
Concatenating two arrays/strings with Trim and Unique option (using: Lotus Notes 5) [Array, Concatenate, Lotus Notes, LotusScript, String, Tip] www.searchdomino.com 27-Aug-2001 by Saravanan
Concatenating two arrays/strings with Trim and Unique option
Saravanan C
27 Aug 2001, Rating 4.08 (out of 5) Hall of fame tip of the month winner
This function is used to concatenate two arrays or strings and returns the
concatenated values based on the filter options specified. The filter options
are
1. Trim the null entries
2. Unique entry
The filter option specified can be any one them or both. If none of the above
action is specified, then the concatenated values will be returned as it is.
The 'ConcatArray' is the main function which in turn calls 2 other functions
'TrimArray' and 'Unique'.
A sample code to use this function:
Sub Click(Source As Button)
Const PARAM_NULL = ""
Const PARAM_TRIM = 1
Const PARAM_UNIQUE = 2
Dim Array1(3) As Variant
Dim Array2(1) As Variant
Dim array3 As Variant
Array1(0) = "List1"
Array1(1) = "List2"
Array1(2) = ""
Array1(3) = "List4"
Array2(0) = "List1"
Array2(1) = "List3"
Array3 = ConcatArray(Array1, Array2, PARAM_TRIM + PARAM_UNIQUE)
Forall item In Array3
Msgbox Item, 0 , "ConcatArray"
End Forall
Array3 = ConcatArray("Hello", Array2, PARAM_TRIM)
Forall item In Array3
Msgbox Item, 0 , "ConcatArray"
End Forall
Array3 = ConcatArray("Hello", "World", PARAM_TRIM)
Msgbox Array3, 0 , "ConcatArray"
End Sub
Code
Function ConcatArray ( vArray1 As Variant, vArray2 As Variant , Byval iOption
As Integer) As Variant
' Author: C.Saravanan
' Purpose : This function is used to concatenate two arrays/strings. It
has options to trim or unique the resultant value.
Const PARAM_NULL = ""
Const PARAM_TRIM = 1
Const PARAM_UNIQUE = 2
Dim vFinalList () As Variant
Dim iFListIdx As Integer
Dim strValues As String
ConcatArray = PARAM_NULL
strValues = ""
If Not Isarray(vArray1 ) And Not Isarray(vArray2 ) Then
ConcatArray = Cstr(vArray1) + Cstr(vArray2)
Else
If Not Isarray(vArray1) Then
Redim vFinalList(Ubound(vArray2)+1)
For iFListIdx = L ... (cont.)
How to syncronize your clock in Windows 2000 and how to add a custom time zone (using: Windows 2000) [Time, Time-zone, NTP, Windows 2000, Article] www.pinnaclepublishing.com 09-Aug-2001
If you use W2K, you can keep your system time always in
sync with Universal Time by issuing the following at the
command prompt:
"NET TIME /SETSNTP:"
You then need to ensure that the Windows time service is
set to automatically run on boot. See
http://msdn.microsoft.com/library/en-us/dnw2kmag01/html/TimeWin2K.asp
for more details.
(Note: I use ntp.demon.co.uk for my public ntp server.)
* There are those of us who, for reasons best known only
to ourselves, like to set the clocks around us 5 - 10
minutes faster than the time that everybody else seems to
use. My wife's bedside, kitchen, bathroom, watch, car,
development computer, laptop, and PocketPC clocks all
deliberately run at slightly different offsets to GMT --
and even to each other! Her rationale is presumably
logical, but it confuses the heck out of me. However, as
network administrator of the machines connected to our
development network, I can't have machines with times all
over the show, particularly when trying to resolve
network issues in several eventlogs The solution that I
found is to create new time zones for her, and so the
displayed time on her machines comes from the regional
settings applet, although the underlying clock is
perfectly synced against a public NTP server as above.
You can create new time zones using the time zone editor
tool that comes with the various OS resource kits.
Alternatively, you could look at
http://support.microsoft.com/support/kb/articles/Q289/5/02.ASP
and deduce all you need to know about how to create a new
time zone.
If you want/need to create a time zone that is 1-59
minutes faster than GMT, you will probably need to resort
to the Registry route even if you have the time zone
editor tool as the tool will not directly let you create
a zone faster than GMT by anything less than one hour
faster. (This is only a limitation of the editing tool).
WARNING: TAKE EXTREME CARE WHEN MODIFYING THE REGISTRY.
INVAL ... (cont.)
Change Time Zone Information Using Visual Basic (using: Visual Basic 6.0) [GetVersionEx(), OSVERSIONINFO, Registry, SYSTEMTIME, Time-zone, TIME_ZONE_INFORMATION, Visual Basic, Article] www.microsoft.com 09-Aug-2001
SUMMARY
It is sometimes necessary to programmatically change the time zone for the
system where the application is running. This article demonstrates this
technique.
MORE INFORMATION
The way to implement this effect is as follows:
1. Determine which time zone you would like to change to.
2. Find the key in the registry that contains the information needed to fill
the TIME_ZONE_INFORMATION structure.
3. Read in that information and load the values into a variable of type
TIME_ZONE_INFORMATION.
4. Call the SetTimeZoneInformation API, passing it the TIME_ZONE_INFORMATION
struct variable.
The location in the registry that contains time zone information differs
between Windows 9x and Windows NT/Windows 2000.
For Windows NT and Windows 2000, it is located at:
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones
For Windows 9x, it is located at:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Time Zones
The Time Zone key names differ between Windows NT, Windows 2000, and Windows 9x
as well because Windows NT and Windows 2000 append the string "Standard Time"
to the different keys whereas Windows 9x does not.
For example:
In Windows NT and Windows 2000, you would see this key:
Pacific Standard Time
while in Windows 9x, you would see this key:
Pacific
The registry location where the current Date/Time settings can be found is:
HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation
Step-by-Step Example
The code sample below requires a form with a listbox. The listbox is loaded
with the possible time zone values that the user can select with a double-click
to change the time zone. It will show a messagebox that, once dismissed, will
change the system settings back to their original values.
1. Create a new Standard EXE project. Form1 is created by default.
2. Add a Listbox control to Form1.
3. Add the following code to the General Declarations section of Form1:
Option Explicit
' Operating System version information declares ... (cont.)
How to Run Control Panel Tools by Typing a Command (using: Windows NT 4.0) [Control Panel Applet, RUNDLL32.EXE, Tip, Windows NT] www.microsoft.com 27-Jun-2001
To run a Control Panel tool in Windows, type the appropriate command in the
Open box or at a command prompt.
NOTE: If you want to run a command from a command prompt, you must do so from
the Windows folder. Also, note that your computer may not have all of the tools
listed in this article, as your Windows installation may not include all of
these components.
Control panel tool Command
-----------------------------------------------------------------
Accessibility Options control access.cpl
Add New Hardware control sysdm.cpl add new hardware
Add/Remove Programs control appwiz.cpl
Date/Time Properties control timedate.cpl
Display Properties control desk.cpl
FindFast control findfast.cpl
Fonts Folder control fonts
Internet Properties control inetcpl.cpl
Joystick Properties control joy.cpl
Keyboard Properties control main.cpl keyboard
Microsoft Exchange control mlcfg32.cpl
(or Windows Messaging)
Microsoft Mail Post Office control wgpocpl.cpl
Modem Properties control modem.cpl
Mouse Properties control main.cpl
Multimedia Properties control mmsys.cpl
Network Properties control netcpl.cpl
NOTE: In Windows NT 4.0, Network
properties is Ncpa.cpl, not Netcpl.cpl
Password Properties control password.cpl
PC Card control main.cpl pc card (PCMCIA)
Power Management (Windows 95) control main.cpl power
Power Management (Windows 98) control powercfg.cpl
Printers Folder control printers
Regional Settings control intl.cpl
Scanners and Cameras control sticpl.cpl
Sound Properties control mmsys.cpl sounds
System Properties control sys ... (cont.)
Process Selected Documents in the Order They Are Sorted in a View (using: Lotus Notes 5) [Agent, Lotus Notes, Pager, Tip, View] www.searchdomino.com 14-Jun-2001 by Alan Lepofsky
Process Selected Documents in the Order They Are Sorted in a View
Alan Lepofsky
14 Jun 2000, Rating --- (out of 5)
If you have several documents in a view, and you want to perform and action on
a select few of them, in the order they appear in the view, what is the best
way to go about it?
In the R4 world an agent would process a document collection in the order of
their UNID, not in the order they appeared in a view. In R5, the ViewEntry
class was added that would allow you to process documents in the order they
appeared in a view, but what if you do not want to process ALL the documents in
the view, how do you process just a collection of selected documents?
A technique I use a lot is to create a hidden folder named "temp", that is
designed with the first column sorted in the same order as the view you are
selecting documents from. (example: name or date) Then when the user selects
the document this wish to perform some action on, the documents are moved into
this folder, they are all placed in a collection, then the collection is acted
upon in sorted order. When the agent completes, the document are removed from
the hidden folder.
Code
Sub Initialize
' Create a document collection from selected docs
' Move doc collection to a folder
' Process items in the folder as a view entry
' Remove from folder
Dim ws As New NotesUIWorkspace
Dim session As New NotesSession
Set db = session.CurrentDatabase
If (db Is Nothing) Then Goto endofsub
Set dc = db.UnprocessedDocuments ' gets a handle on the documents you selected
Call dc.PutAllInFolder( "temp" ) ' moves those selected documents into a folder
Set view = db.GetView("temp")
Set vc = view.AllEntries ' gets a handle on all the documents in the folder
Set entry = vc.GetFirstEntry()
Set doc = entry.Document
....
....
' place the code for the action you want to take on each document here
...
...
Set entry = vc.GetNextEntry(entry)
If Not (entry Is Nothing) Then
Set doc = entry.Do ... (cont.)
Universal change field agent (using: Lotus Notes 5) [Agent, Field, Lotus Notes, Tip] www.searchdomino.com 11-Jun-2001 by Sieward Bosch
Universal change field agent
Sieward Bosch
11 Jun 2001, Rating 3.56 (out of 5)
This tip will perform the following functions:
-select one or more documents (same form)
- agent gets all the fields in the form and presents them alphabetically in an
inputbox
- choose a field
- enter the new value of that field
- agent changes the fieldvalue for all selected documents
Only a few errors are anticipated. In most cases when an error occurs the agent
stops. It is imperative that you know what you are doing, otherwise this agent
can do a lot of damage.
Sub main
Dim session As New NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Dim form As Notesform
Dim formvariant As Variant
Dim FieldCounter As Integer
Set db=session.CurrentDatabase
Set dc=db.UnprocessedDocuments 'select all selected documents
FieldCounter = 0
If dc.count=0 Then ' no documents selected
Msgbox "No documents selected" 'display error message
Exit Sub ' end script
Else 'at least 1 document has been selected
Set doc = dc.GetFirstDocument ' get first document from
NotesDocumentCollection
formvariant = doc.form(0) 'get the name of the form
Set form = db.GetForm(formvariant) ' set form
End If
Dim itemType As Integer ' 768=numeric , 1024=datetime ,
1280=text
Dim item As NotesItem
Dim Veldtype As String
Forall field In form.Fields 'get all fields in the form
FieldCounter = FieldCounter + 1
Redim Preserve FieldGroup(FieldCounter-1) 'keep the values
in the array
Set item = doc.GetFirstItem( Field )
itemType = item.Type ' 768=numeric , 1024=datetime ,
1280=text
Select Case itemType
Case 768 : Veldtype="Num"
Case 1024 : Veldtype="Dat"
Case 1280 : Veldtype="Txt"
Case Else : Veldtype="???"
End Select
FieldGroup(FieldCounter-1) = Field + " " + Veldtype '
example "FIELDNAME Txt"
End Forall
' sort the array alphabetically
Dim swapped As Integer
Dim LoopCounter As Integer
Dim tem ... (cont.)
Document tracking number based on date (using: Lotus Notes 5) [Document, Formula, Lotus Notes, Tip] www.searchdomino.com 04-May-2001 by Kamal AbdulHakim
Document tracking number based on date
Kamal AbdulHakim
04 May 2001, Rating 3.36 (out of 5)
This formula will generate a unique number according to the exact time the form
is created.
I take a few unique numbers and include a date/time set of numbers to make a
fully unique set of number/date/time numbers.
The extra unique numbers are included to distinguish documents that are created
at exactly the same time.
Example: KA4-54133723-CS7
KA4-(random set)
5(month)
4(day)
13(hour)
37(minutes)
23(seconds)
-CS7(another random set)
Add this code to a computed when composed field. Work on the web also.
Code
REM "ADD THIS CODE TO A COMPUTED WHEN COMPOSED FIELD"
un1 := @Text(@Left(@Unique;3));
un2 := @Text(@Right(@Unique;3));
m:=@Text(@Month(@Now));
d:=@Text(@Day(@Now));
h:=@Text(@Hour(@Now));
min:=@Text(@Minute(@Now));
s:=@Text(@Second(@Now));
un1+"-"+m+d+h+min+s+"-"+un2
Change field values from a view (using: Lotus Notes 5) [Document, Formula, Lotus Notes, Tip, View] www.searchdomino.com 13-Apr-2001 by Ken Pespisa
Change field values from a view
Ken Pespisa
13 Apr 2001, Rating 2.05 (out of 5)
Ever need to change a few values in a document that can't be changed via the
form because the fields are not there or are set to hidden or computed? Usually
this means we have to open designer and write an agent to change the values.
This tip explains how to setup a smart icon that lets you change any field's
value right from the view without creating an agent.
Put the code below into a smart icon's action formula. When you have a document
selected and click the smart icon, a dialog box will popup letting you choose
from a list of fields inside the document. Select a field and the next dialog
box shows you the current value, which you can then edit. As a bonus, if you
type in @Delete as the value, the field will be removed from the document.
Note this always changes the value to a text field, so be careful not to change
any number or time/date fields.
By the way, you can input multi-values by separating each value with a
semicolon.
REM "Change Field Values From A View";
tmpFields := @DocFields;
tmpLastFieldChosen := @Environment("SI_LastFieldChosen");
tmpChangeField := @Prompt([OKCANCELLIST]; "Change Field"; "Please choose the
field whose value you'd like to change"; tmpLastFieldChosen; tmpFields);
REM"Save State"; @SetEnvironment("SI_LastFieldChosen"; tmpChangeField);
tmpValue := @Prompt([OKCANCELEDIT]; "New Value"; "Please enter the new value
for the field or type @Delete to delete the field."; @Abstract([TextOnly]; 200;
""; tmpChangeField));
@If(tmpValue = "@Delete"; @SetField(tmpChangeField; @DeleteField);
@SetField(tmpChangeField; @Trim(@Explode(tmpValue; ";"))))
How to remove the ReadOnly attribute from all the files in a directory and all the files in all of that directory's subdirectories (using: Visual Basic 6.0) [DOS, File Attribute, Visual Basic, Tip] www.pinnaclepublishing.com 06-Apr-2001
Reader Rick Rothstein writes: "A question came up
recently on one of the newsgroups I volunteer answering
question on which asked how to remove the ReadOnly
attribute from all the files in a directory and all the
files in all of that directory's subdirectories. The
common answer from other volunteers offered either
direct code or advice on recursion routines to do the
necessary subdirectory visitations. I chose a different
path and offered to let DOS do all of the dirty work. The
DOS Attrib command already has that functionality built
in via the optional "/s" argument. Here's the code I
posted:
Sub RemoveReadOnly(TopLevelDirectory As String, _
Optional RecurseSubDirectories As Boolean)
Dim Recurse As String
If Right$(TopLevelDirectory, 1) <> "\" Then
TopLevelDirectory = TopLevelDirectory & "\"
End If
On Error GoTo Whoops
If (GetAttr(TopLevelDirectory) And _
vbDirectory) = vbDirectory Then
If RecurseSubDirectories Then
Recurse = "*.*"" /s"
Else
Recurse = "*.*"""
End If
Shell Environ("comspec") & " /c attrib -r """ & _
TopLevelDirectory & Recurse, vbHide
End If
Exit Sub
Whoops:
MsgBox "That directory does not exist.", _
vbCritical, "Invalid Directory Name"
End Sub
Obviously, you must tell the subroutine the main
directory you want to work in; hence, the first argument.
You can include the trailing backslash on the path string
you pass in to the Sub or not; the first If-Then block
adjusts for it as necessary. The second argument is
optional and addresses the recursing of this operation
into all of the subdirectories of the main directory. By
default, this argument is False, and the routine only
operates on files in the specified main directory.
However, if you pass True to this argument, the routine
will remove the ReadOnly property throughout the
directory tree rooted at the main directory. The On Error
call is provided in case the main directory you spec ... (cont.)
How To Indicate That There Are More Than 9 Entries in a Views Row (using: Lotus Notes 5) [Formula, Lotus Notes, Tip, View, @Elements, @Subset] www.searchdomino.com 02-Mar-2001 by Ulrich Krause
How To Indicate That There Are More Than 9 Entries in a Views Row
Ulrich Krause
02 Mar 2001, Rating 3.38 (out of 5)
As you know, you can show only 9 lines in a view. This small piece of code
indicates that there are more than 9 lines in a row.
Elements := @Elements(YourMultiValueField);
Display :=@If ( Elements <= 9 ; YourMultiValueField ;
@Subset(YourMultiValueField; 8) : "...");
Open Source IDEs for Linux/Unix [Open Source, IDE, Unix, Linux, Article] C++ Users Journal 01-Mar-2001, vol. 19, no. 3 by Petr Sorfa
Open Source IDEs for Linux/Unix
Petr Sorfa
You don’t have to give up a graphical environment to develop software
under Linux. There are as many IDEs freely available on the Internet as there
are definitions of the word 'free'.
Navigating Linux Source Code [Article, Linux] C++ Users Journal 01-Mar-2001, vol. 19, no. 3 by James Bonang
Navigating Linux Source Code
James Bonang
With legacy code or large projects, navigation is a serious concern.
Here are some tools that can help you find your way.
Documenting the Graphic Import Filter Interface [Graphic, Import Filter, C++, Visual C++, Article] C++ Users Journal 01-Mar-2001, vol. 19, no. 3 by Bret S Pehrson
Documenting the Graphic Import Filter Interface
Bret S Pehrson
There is a fairly ‘‘standard’’ interface for importing diverse graphics
formats into Windows applications. Only problem is, nobody bothered to document
it - until now.
Using Template Functions to Customize Library Behavior [Template Function, Library, C++, Visual C++, Article] C++ Users Journal 01-Mar-2001, vol. 19, no. 3 by Michael B Yoder
Using Template Functions to Customize Library Behavior
Michael B Yoder
If you’re writing code to be used by other programmers, you’ll want to
make it customizable, and you’ll want to do it well. This article presents an
approach that is both efficient and easy to manage.
Here Be Dragons (Learning Exception Safety) [Exception, C++, Visual C++, Article] C++ Users Journal 01-Mar-2001, vol. 19, no. 3 by Alan Griffiths
Here Be Dragons (Learning Exception Safety)
Alan Griffiths
If learning exception safety may be likened to a journey, then Alan
Griffiths is an excellent tour guide. He shows us several alternate routes, and
he always keeps the trip interesting.
To New, Perchance To Throw (Part 1 of 2) [Overloading, new, C++, Visual C++, Article] C++ Users Journal 01-Mar-2001, vol. 19, no. 3 by Herb Sutter
Herb Sutter
To New, Perchance To Throw (Part 1 of 2)
If you’re going to Overload operator new, make sure you get the right
one, and that the compiler picks the right ones as well.
Streambufs and Streambuf Iterators [Streambuf, Iterator, C++, Visual C++, Article] C++ Users Journal 01-Mar-2001, vol. 19, no. 3 by Matt Austern
Matt Austern
Streambufs and Streambuf Iterators
If you’ve ever used getc and putc, you need the C++ equivalents that
reside in streambufs.
Disconnect From the User's ISP With WinInet (using: Visual C++ 6.0) [Dial-Up Network, Internet, WinInet, Visual C++, Tip] www.pinnaclepublishing.com 23-Feb-2001
Disconnect From the User's ISP With WinInet
As I promised in the last issue of the eXTRA, I'm going
to discuss the InternetHangUp() function from WinInet,
which hangs up the phone when the user wants to
disconnect from the Internet. In order to use
InternetHangUp(), though, your application must have been
the one that called InternetDial() in the first place.
Here's an example of calling InternetHangUp():
int CInternetAutoDialApp::ExitInstance()
{
int nResult = CWinApp::ExitInstance();
if (!m_bConnected)
return nResult;
int nChoice = AfxMessageBox("Would you like to disconnect?",
MB_YESNO|MB_ICONEXCLAMATION);
if (nChoice == IDYES)
::InternetHangUp(m_dwConnection, 0);
return nResult;
}
where m_dwConnection is a DWORD used to store an [out]
parameter of InternetDial(). For more information, look
up InternetDial() and InternetHangUp() in the
documentation.
Length of a Media File (using: Visual Basic 6.0) [AVI File, MCI, Media Control Interface, MIDI, WAV, Visual Basic, Tip] www.pinnaclepublishing.com 23-Feb-2001
Length of a Media File
The easiest way to retrieve the length of WAV, AVI, MIDI,
or other media files is to use MCI functions. Start by
opening the file (supply your own FileName). Then
retrieve the file length in milliseconds and close the
file.
Declare Function mciSendString Lib "winmm" Alias _
"mciSendStringA" (ByVal lpstrCommand As String, ByVal _
lpstrReturnString As String, ByVal uReturnLength _
As Long, ByVal hwndCallback As Long) As Long
CommandString = "Open " & FileName" & " alias _
MediaFile" mciSendString CommandString, vbNullString, _
0,0&
Dim MediaLength as Long
Dim RetString As String * 256
Dim CommandString As String
CommandString = "Set MediaFile time format milliseconds"
mciSendString CommandString, vbNullString, 0, 0&
CommandString = "Status MediaFile length"
MciSendString CommandString, RetString, Len(RetString),0&
MediaLength = CLng(RetString)
CommandString = "Close MediaFile"
MciSendString CommandString, vbNullString, 0, 0&
This tip was adapted from a tip posted on VB2theMax.com.
Thanks, VB2theMax team!
Registry Detective .... Read-only Registry search facility that works in conjunction with RegEdit [Registry, Delphi, EXE] PC Magazine 20-Feb-2001, vol. 20, no. 4 by Neil J Rubenking
If you need to search the Windows registry, Registry Detective can make the job
a lot easier. Windows provides a Registry Editor (RegEdit) for locating and
changing data, but its search facility is slow and limited. Registry Detective,
a read-only registry search facility that works in conjunction with RegEdit,
provides an alternative. You can specify multiple search criteria, search only
specific portions of the registry, view all hits at once, examine detailed
information for each hit, and then launch RegEdit with the hit selected so you
can make changes. If you're using PC Magazine's Registry Editor Plus (a tool to
make editing the registry safer), Registry Detective will launch it along with
RegEdit. Registry Detective was written by Neil J. Rubenking, and first
appeared in PC Magazine February 20, 2001 (v20n04). Source code is included.
System Requirements
Windows 9x, NT, 2000, or Me
Connect to the User's ISP with WinInet (using: Visual C++ 6.0) [Internet Explorer, Tip, Visual C++, WinInet] www.pinnaclepublishing.com 08-Feb-2001
Connect to the User's ISP with WinInet
Connecting the user to their Internet Provider from your
software can be done, and you can also hang up the call
for the user too! The InternetDial() and InternetHangUp()
functions from WinInet do the trick.
Here's an example of how to call InternetDial() to pop up
the Dial-Up Connection window that users see when they
bring up Internet Explorer:
BOOL CInternetAutoDialApp::DoInternetConnect()
{
DWORD dwResult;
BOOL bResult;
// Dial the user's modem
dwResult = ::InternetDial(AfxGetMainWnd()->GetSafeHwnd(),
"", INTERNET_AUTODIAL_FORCE_ONLINE,
&m_dwConnection, 0);
// If the connection went through, dwResult is
// equal to ERROR_SUCCESS
bResult = (dwResult == ERROR_SUCCESS);
return bResult;
}
You can learn more about these functions by looking up
InternetDial() and InternetHangUp() in the documentation
that accompanies Visual C++.
Stay tuned for next issue, when I'll discuss the
InternetHangUp() function.......
As I promised in the last issue of the eXTRA, I'm going
to discuss the InternetHangUp() function from WinInet,
which hangs up the phone when the user wants to
disconnect from the Internet. In order to use
InternetHangUp(), though, your application must have been
the one that called InternetDial() in the first place.
Here's an example of calling InternetHangUp():
int CInternetAutoDialApp::ExitInstance()
{
int nResult = CWinApp::ExitInstance();
if (!m_bConnected)
return nResult;
int nChoice = AfxMessageBox("Would you like to disconnect?",
MB_YESNO|MB_ICONEXCLAMATION);
if (nChoice == IDYES)
::InternetHangUp(m_dwConnection, 0);
return nResult;
}
where m_dwConnection is a DWORD used to store an [out]
parameter of InternetDial(). For more information, look
up InternetDial() and InternetHangUp() in the
documentation.
What WinInet function tells you how the user connects to the Internet? (using: Visual C++ 6.0) [Internet, WinInet, Visual C++, Tip] www.pinnaclepublishing.com 08-Feb-2001
What WinInet function tells you how the user connects to
the Internet? That is, what function tells you whether or
not the user is currently connected to their provider, or
whether the user connects with a modem or over a network?
The function to use for determining information about the
user's Internet connection setup is the
InternetGetConnectedState() function. It provides you
with details such as whether the user is currently online
and whether the computer connects using a modem. On
computers that have both a network interface card (NIC)
and a modem, this function will give unpredictable return
values, however. Further information is available by
searching the Visual C++ documentation for
InternetGetConnectedState().
To use the InternetDial(), InternetGetConnectedState(),
and InternetHangUp() functions, add these lines to
STDAFX.H at the bottom:
#include
#pragma comment(lib, "wininet.lib")
The #include line tells the compiler, of course, to
include the declarations of the functions in your
project, and the #pragma directive links your code with
the WININET.LIB library statically.
ContextEdit .... Control which items appear on your context menu [Context Menu, Explorer, Visual C++, EXE] PC Magazine 06-Feb-2001, vol. 20, no. 3 by Gregory A Wolking
ContextEdit lets you control which items appear on your context menu--the menu
that appears when you right-click on an item in Windows Explorer. The context
menu often contains numerous rarely-used commands. These commands come from one
of two places: shell commands stored within the system Registry, and context
menu handlers. The source of the menu item is transparent to the end-user, but
still has an impact. Windows Explorer lets you add or remove simple shell
commands, but gives you no control over context menu handlers. ContextEdit lets
you control both types of context menu items. It also allows you to disable
context menu items without removing them entirely. Another unique feature is
the ability to add shell commands to all files regardless of type, or to all
files without an associated program. ContextEdit was written by Gregory A.
Wolking, and first appeared in PC Magazine February 6, 2001 (v20n03). Source
code is included.
System Requirements
Internet Explorer 4.0 or higher and Windows 9x, NT, 2000, or Me
Remove a stored form (using: Lotus Notes 5) [Formula, Lotus Notes, Tip, @DeleteField, Stored Form] www.searchdomino.com 06-Feb-2001 by Didrik Humblen
Remove a stored form
Didrik Humblen
06 Feb 2001, Rating 3.14 (out of 5)
This formula may be run as an agent, button or Action button.
FIELD Form := @If(!@IsAvailable(Form); @Trim($$ScriptName); Form);
FIELD $AUTOLAUNCH := @DeleteField;
FIELD $INFO := @DeleteField;
FIELD $$Script_O := @DeleteField;
FIELD $BODY := @DeleteField;
FIELD $Fonts := @DeleteField;
FIELD $Signature := @DeleteField;
FIELD $TITLE := @DeleteField;
FIELD $WINDOWTITLE := @DeleteField;
FIELD $$ScriptName := @DeleteField;
FIELD $SIG$Form := @DeleteField;
Exception Handling in Embedded C Programs [Exception Handling, Embedded C, Article, Visual C++] C++ Users Journal 01-Feb-2001, vol. 19, no. 2 by Yonatan Lehman
Exception Handling in Embedded C Programs
Yonatan Lehman
The most common way to emulate exceptions in C is through its
setjmp/longjmp facility. The approach presented here is less complicated, but
with some surprisingly useful features, including a simple form of stack
unwinding.
Debugging under GNU/Linux [Debugging, GNU, Linux, Article, Visual C++] C++ Users Journal 01-Feb-2001, vol. 19, no. 2 by Randy Zack
Debugging under GNU/Linux
Randy Zack
Programmers from fields as diverse as enterprise computing to embedded
systems are venturing into Linux. If you are one of them, here’s a tool that
should be at the top of your download list.
Encapsulating CORBA Components with the Adapter and Bridge Patterns [CORBA, Component, Pattern, Article, Visual C++] C++ Users Journal 01-Feb-2001, vol. 19, no. 2 by Patrick May
Encapsulating CORBA Components with the Adapter and Bridge Patterns
Patrick May
CORBA hides the details of invoking objects on remote machines. With a
little more refactoring, we can hide the details of CORBA as well.
Callbacks Made Easy with the Observer/Mediator Design Patterns [Callback, Pattern, Article, Visual C++] C++ Users Journal 01-Feb-2001, vol. 19, no. 2 by Vladimir Batov
Callbacks Made Easy with the Observer/Mediator Design Patterns
Vladimir Batov
Good software works; great software evolves. Here’s a variation on the
Observer pattern that lets you update your code base with ease.
Integers, Part 3 [Article, Visual C++] C++ Users Journal 01-Feb-2001, vol. 19, no. 2 by Randy Meyers
Randy Meyers
Integers, Part 3
At first glance, C99’s new integral types seem to threaten its
portability. But a few added headers and typedefs improve the outlook
dramatically.
Polymorphic Function Objects [Polymorphic, Function, Article, Visual C++] C++ Users Journal 01-Feb-2001, vol. 19, no. 2 by Steve Dewhurst
Steve Dewhurst
Polymorphic Function Objects
It takes lots of skill, and maybe a design pattern or two, to turn a
function pointer into a thing of beauty.
STL Containers [STL, Container, C++, Article, Visual C++] C++ Users Journal 01-Feb-2001, vol. 19, no. 2 by Thomas Becker
Thomas Becker
STL Containers
Why does the Standard C++ library provide so many kinds of containers?
To enable tradeoffs in efficiency in their infinite variety of uses.
C++ Made Easier: Programs That Work by Accident [C++, Article, Visual C++] C++ Users Journal 01-Feb-2001, vol. 19, no. 2 by Andrew Koenig, Barbara E Moo
Andrew Koenig
&
Barbara E Moo
C++ Made Easier: Programs That Work by Accident
Avoiding undefined behavior is critically important in C++ programming.
The authors show us some ways that don’t require memorizing the entire C++
Standard.
Visual Basic.NET: New Programming Model and Language Enhancements Boost Development Power [.NET, Visual Basic.NET, Article] MSDN Magazine 01-Feb-2001, vol. 16, no. 2 by Ted Pattison
Visual Basic.NET: New Programming Model and Language Enhancements Boost
Development Power
Ted Pattison
Windows Forms: A Modern-Day Programming Model for Writing GUI Applications [Windows Forms, GUI, .NET, Article] MSDN Magazine 01-Feb-2001, vol. 16, no. 2 by Jeff Prosise
Windows Forms: A Modern-Day Programming Model for Writing GUI
Applications
Jeff Prosise
.NET Framework: Building, Packaging, Deploying, and Administering Applications and Types [Framework, .NET, Article] MSDN Magazine 01-Feb-2001, vol. 16, no. 2 by Jeffrey Richter
.NET Framework: Building, Packaging, Deploying, and Administering
Applications and Types
Jeffrey Richter
Web Services: Building Reusable Web Components with SOAP and ASP.NET [Web Services, Web Component, SOAP, .NET, ASP.NET, Article] MSDN Magazine 01-Feb-2001, vol. 16, no. 2 by David S Platt
Web Services: Building Reusable Web Components with SOAP and ASP.NET
David S Platt
Security in .NET: Enforce Code Access Rights with the Common Language Runtime [Security, Code Access Rights, Common Language Runtime, .NET, Article] MSDN Magazine 01-Feb-2001, vol. 16, no. 2 by Keith Brown
Security in .NET: Enforce Code Access Rights with the Common Language
Runtime
Keith Brown
.NET P2P: Writing Peer-to-Peer Networked Apps with the Microsoft .NET Framework [Peer-to-Peer, Network, .NET, Article] MSDN Magazine 01-Feb-2001, vol. 16, no. 2 by Lance Olson
.NET P2P: Writing Peer-to-Peer Networked Apps with the Microsoft .NET
Framework
Lance Olson
Resources for Your Developer Toolbox [Resource, Visual C++, Article] MSDN Magazine 01-Feb-2001, vol. 16, no. 2 by Theresa W Carey
Resources for Your Developer Toolbox
Theresa W Carey
Scripting Interoperability [Article, Visual C++] MSDN Magazine 01-Feb-2001, vol. 16, no. 2 by Robert Hess
Scripting Interoperability
Robert Hess
Login Control on a Web Farm [Article, Visual C++] MSDN Magazine 01-Feb-2001, vol. 16, no. 2 by Robert Hess
Login Control on a Web Farm
Robert Hess
Custom Refreshes [Article, Visual C++] MSDN Magazine 01-Feb-2001, vol. 16, no. 2 by Robert Hess
Custom Refreshes
Robert Hess
App Servers [Article, Visual C++] MSDN Magazine 01-Feb-2001, vol. 16, no. 2 by Robert Hess
App Servers
Robert Hess
Driving Visio 2000 from Visual Basic [Article, Visual Basic, Visio] MSDN Magazine 01-Feb-2001, vol. 16, no. 2 by Ken Spencer
Driving Visio 2000 from Visual Basic
Ken Spencer
The Component Model in ASP.NET [Component Model, ASP.NET, Article] MSDN Magazine 01-Feb-2001, vol. 16, no. 2 by Dino Esposito
The Component Model in ASP.NET
Dino Esposito
Assertions and Tracing in .NET [Assertion, Tracing, .NET, Article] MSDN Magazine 01-Feb-2001, vol. 16, no. 2 by John Robbins
Assertions and Tracing in .NET
John Robbins
Special .NET Type Members [Article, .NET] MSDN Magazine 01-Feb-2001, vol. 16, no. 2 by Jeffrey Richter
Special .NET Type Members
Jeffrey Richter
Prevent Users from Performing Normal GUI Operations [GUI, Visual C++, Article] MSDN Magazine 01-Feb-2001, vol. 16, no. 2 by Paul DiLascia
Prevent Users from Performing Normal GUI Operations
Paul DiLascia
Using TRACERT to Troubleshoot TCP/IP Problems in Windows NT (using: Visual Basic 6.0) [TCP/IP, Windows NT, Tracert, Visual Basic, Tip] www.pinnaclepublishing.com 30-Jan-2001
As Q162326, "Using TRACERT to Troubleshoot TCP/IP
Problems in Windows NT"
(http://support.microsoft.com/support/kb/articles/Q162/3/26.asp)
explains, the TRACERT (Trace Route) command is a route-
tracing utility used to determine the path that an IP
packet has taken to reach a destination.
TRACERT determines the route taken to a destination by
sending Internet Control Message Protocol (ICMP) echo
packets with varying IP Time-To-Live (TTL) values to the
destination. "Each router along the path is required to
decrement the TTL on a packet by at least 1 before
forwarding it, so the TTL is effectively a hop count.
When the TTL on a packet reaches 0, the router should
send an ICMP Time Exceeded message back to the source
computer. TRACERT determines the route by sending the
first echo packet with a TTL of 1 and incrementing the
TTL by 1 on each subsequent transmission until the target
responds or the maximum TTL is reached. The route is
determined by examining the ICMP Time Exceeded messages
sent back by intermediate routers. Note that some routers
silently drop packets with expired TTLs and are invisible
to TRACERT."
TRACERT's output is an ordered list of the routers in the
path that returned the ICMP Time Exceeded message. If the
-d switch is used (telling TRACERT not to perform a DNS
lookup on each IP address), the IP address of the near-
side interface of the routers is reported. Here's the
syntax:
tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] target_name
where
-d specifies to not resolve addresses to host names.
-h maximum_hops specifies the maximum number of hops
to search for target.
-j host-list specifies loose source route along the
host-list.
-w timeout waits the number of milliseconds specified
by timeout for each reply.
target_name is the name or IP address of the target
host.
Related: "Performing a Visual Basic Tracert (Trace
Route)" by Randy Birch and Jim Huff at
http://www.mvps.or ... (cont.)
Using the CharacterCasing Property (using: Visual Basic 6.0) [VB.NET, Visual Basic, Tip] www.pinnaclepublishing.com 30-Jan-2001
The CharacterCasing Property
---------------------------------------------------------
VB MVP Mattias Sjögren (mailto:mattias@mvps.org --
see also http://www.msjogren.net/dotnet/) recently
posted this code in response to a
microsoft.public.dotnet/languages/vb newsgroup question
about allowing only capital letters in a ComboBox or a
TextBox, showing how to using VB.NET's CharacterCasing
property:
Public Class UpperLowerCombo : Inherits System.WinForms.ComboBox
Private m_CharacterCasing As CharacterCasing = _
CharacterCasing.Normal
Private Const CBS_UPPERCASE As Integer = &H2000
Private Const CBS_LOWERCASE As Integer = &H4000
Public Property CharacterCasing() As CharacterCasing
Get
Return m_CharacterCasing
End Get
Set
If m_CharacterCasing <> Value Then
m_CharacterCasing = Value
RecreateHandle()
End If
End Set
End Property
Protected Overrides ReadOnly Property CreateParams() _
As CreateParams
Get
Dim cp As CreateParams = MyBase.CreateParams
If m_CharacterCasing = CharacterCasing.Lower Then
cp.style = cp.style BitOr CBS_LOWERCASE
ElseIf m_CharacterCasing = CharacterCasing.Upper Then
cp.style = cp.style BitOr CBS_UPPERCASE
End If
Return cp
End Get
End Property
End Class
Thanks for the great sample, Matt. For other .NET and VB6
samples, check out
http://www.msjogren.net/dotnet/eng/samples/default.asp.
Dealing With CHARs and WCHARs (using: Visual C++ 6.0) [ATL, atlbase.h, BSTR, CHAR, LPCTSTR, WCHAR, Visual C++, Tip] www.pinnaclepublishing.com 25-Jan-2001
Dealing With CHARs and WCHARs
* Did you know that some classes provided by ATL make it
really easy to form BSTRs from normal strings, and, vice-
versa, MFC's CString class makes it easy to turn BSTRs
into normal strings (or CHAR or LPCTSTR) strings? Just
use the two classes' copy constructors!
For example, if I want to pass information in a member
variable of type LPCTSTR to a COM method, and it only
takes arguments of type BSTR, I can wrap a CComBSTR
constructor call around the member variable and then pass
it in the method parameter:
/*pDialer points to an IDialer interface*/
/*m_pszPassword is a member variable of type LPCTSTR*/
// Dial the host computer. Tell the host the user's
// password.
pDialer->Authenticate(CComBSTR(m_pszPassword));
The use of CComBSTR's constructor here creates a BSTR
whose string contents are those of the member variable.
To use the CComBSTR class, you need to add lines to
include ATL in STDAFX.H. CComBSTR is declared in
, and the #include directive for
must be added to the bottom of STDAFX.H. This will work
even in MFC programs!
Of course, CString's copy constructors or '=' or '+='
operators accept BSTRs as inputs. Just use them with BSTR
variables are you would anything else!
Pager Alerts (using: Lotus Notes 5) [Agent, Lotus Notes, Pager, Tip, View] www.searchdomino.com 22-Jan-2001 by Karen Romano
Pager Alerts
Karen Romano
22 Jan 2001, Rating 3.50 (out of 5)
This Agent allows the user to be notified via pager that they have an appt. It
lets them set up their appt through their Notes calendar. If you want to be
reminded 1/2 hour prior to meeting, now you can.
DECLARATIONS
Const SUBJECT = "Calendar Entry"
Const DESTINATION_ADDRESS = "4079747099.4009308"@Pagenet.net"
Const MAIL_SERVER = "OrlMail1/Orlando"
Const MAIL_FILE = "mailkromano.nsf"
INTIALIZE
Dim session As New NotesSession
Dim mailDB As NotesDatabase
Dim calendarView As NotesView
Dim todaysDate As New NotesDateTime (Today)
Dim docCol As NotesDocumentCollection
Dim notificationDoc As NotesDocument
Dim currentDoc As NotesDocument
Dim chair As NotesName
Dim itmDatetime As NotesItem
Dim startDateTime As NotesDateTime
Dim endDateTime As NotesDateTime
Dim location As String
Dim dtValue As NotesDateTime
Dim ws As New notesuiworkspace
Dim strHomeServer As String
Dim iHour As Integer
Print "Calendar --> SMS - Starting..."
Set mailDB = New NotesDatabase (MAIL_SERVER, MAIL_FILE)
Set calendarView = mailDB.GetView ("($Calendar)")
Set docCol = calendarView.GetAllDocumentsByKey (todaysDate, False)
Set notificationDoc = New NotesDocument (session.CurrentDatabase)
For i = 1 To docCol.Count
Set currentDoc = docCol.GetNthDocument(i)
notificationDoc.SendTo = DESTINATION_ADDRESS
notificationDoc.Subject = SUBJECT
Set chair = New NotesName (currentDoc.From (0))
Set itmDateTime = currentDoc.GetFirstItem ("StartDate")
Set startDateTime = itmDateTime.DateTimeValue
Set itmDateTime = currentDoc.GetFirstItem ("EndDate")
Set endDateTime = itmDateTime.DateTimeValue
If Instr ( currentDoc.Location (0), "/") > 0 Then
location = Trim (Left (currentDoc.Location (0), Instr
(currentDoc.Location (0), "/") - 1))
Else
location = currentDoc.Location (0)
End If
'Call TIMEGetFromitem("CalendarTimeSlotEnd", note, dtValue)
If Not(dtValue Is Nothing) T ... (cont.)
Given a short, "eight-characters" style filename, return the full version (using: Visual Basic 6.0) [File, Visual Basic, Solution] www.pinnaclepublishing.com 18-Jan-2001 by Karl Moore
Karl Moore (http://www.karlmoore.com), UK-based senior
editor at VB-World and host for a BBC Radio series on the
Internet, has posted a handy tip at
http://www.vbworld.com/files/tip511.html that, given a
short, "eight-characters" style filename, will return the
full version.
Public Function GetLongFileName(ByVal ShortFileName As String) As String
Dim intPos As Integer
Dim strLongFileName As String
Dim strDirName As String
'Format the filename for later processing
ShortFileName = ShortFileName & "\"
'Grab the position of the first real slash
intPos = InStr(4, ShortFileName, "\")
'Loop round all the directories and files
'in ShortFileName, grabbing the full names
'of everything within it.
While intPos
strDirName = Dir(Left(ShortFileName, intPos - 1), _
vbNormal + vbHidden + vbSystem + vbDirectory)
If strDirName = "" Then
GetLongFileName = ""
Exit Function
End If
strLongFileName = strLongFileName & "\" & strDirName
intPos = InStr(intPos + 1, ShortFileName, "\")
Wend
'Return the completed long file name
GetLongFileName = Left(ShortFileName, 2) & _
strLongFileName
End Function
Restricting text box input to numbers only and also allow the user to cut, copy, and paste
(using: Visual Basic 6.0) [KeyPress Event, Textbox Control, Visual Basic, Solution] www.pinnaclepublishing.com 18-Jan-2001 by Peter Chamberlin
Peter Chamberlin, a UK-based programmer who's written
some commercially available software in VB
(http://www.internet-timer.co.uk), writes with yet
another solution to the question about restricting text
box input to numbers only. "I recently constructed the
following code, which does just that and also allows the
user to cut, copy, and paste, all the time still
restricting input content to numbers only! Put the
following into a text box's KeyPress event..."
' Ensure that only Numbers + Backspace Occur
If Not (KeyAscii > 47 And KeyAscii < 58) And Not _
(KeyAscii = 3 Or KeyAscii = 8 Or KeyAscii = 22 _
Or KeyAscii = 24 Or KeyAscii = 32 Or KeyAscii = 44)
Then
' Nullify Non-Numeric Character
KeyAscii = 0
End If
' Remove non-digits from Ctrl-V
If KeyAscii = 22 Then
PreStrip = Clipboard.GetText
NewStrip = ""
For J = 1 To Len(PreStrip)
MidBit = Mid(PreStrip, J, 1)
If Not (MidBit < "0" Or MidBit > "9") Then
NewStrip = NewStrip & MidBit
End If
Next J
Clipboard.SetText NewStrip
End If
"... and only numeric input to a text box will be
allowed. Ctrl-X/C/V is possible, and the routine scans
and removes non-numeric digits from incoming clipboard
copy-n-pastes." Very nice, Peter! Thanks for sharing.
Smallest possible C# version of Hello, World (using: Visual C++ 6.0) [C#, Visual C++, Fact] www.pinnaclepublishing.com 18-Jan-2001
Dr. GUI.NET's #0 article proposes this as the smallest
possible C# version of Hello, World:
class MyApp {
public static void Main() {
System.Console.WriteLine("Hello, world! (1)");
}
}
BTW, Google reports "about 963,000 hits on "Hello World."
Guided tour of writing a Hello World program in VB.NET (using: Visual Basic) [VB.NET, Visual Basic, Solution] www.pinnaclepublishing.com 18-Jan-2001 by Gary Cornell, Gary Cornell
In the sixth issue of the .NET Developer eNewsletter,
editor Gary Cornell (mailto:gary@thecornells.com)
provided a really good guided tour of writing a Hello
World program in VB.NET. I've reproduced it here. (If you
don't already subscribe to Gary's free bi-weekly eXTRA,
you can remedy the situation at
http://www.FREEeNewsletters.com.)
Let's suppose (says Gary) that you've added a button to a
form, and a click on that button is supposed to yield the
string "Hello world" in a text box. Here's the code that
you'll get if you use the IDE and the toolbox to build
the form. You'd then add the one line of code to change
the contents of the text box. Note that while you have
the option of hiding some of this automatically generated
code, seeing it shows you how VB.NET works! Here are the
first three lines you'd see in the "show all" setting:
Imports System.ComponentModel
Imports System.Drawing
Imports System.WinForms
These lines tell VB that you're using three "Namespaces"
and are analogous to the Project|References section. Now
we come to how one new feature of VB.NET is used in GUI
applications: inheritance. Our form is a special case of
a "Winform," so we say that we "Inherit" from this class:
Public Class Form1
VB.NET explicitly makes a form a class.
Inherits System.WinForms.Form
Public Sub New()
MyBase.New
Form1 = Me
'This call is required by the Win Form Designer.
InitializeComponent
'TODO: Add any initialization after the
'InitializeComponent() call
End Sub
What's new is how you build a Constructor in VB.NET.
Constructors go way beyond the old Initialize event in
that they allow parameters (although none are used in
this case).
'Form overrides Dispose to clean up the component list.
Overrides Public Sub Dispose()
MyBase.Dispose
components.Dispose
End Sub
Dispose is a user-supplied method that's used to clean up
resources. Here you can see inheritance at work with the
Overrides keyword. In this cas ... (cont.)
NetPerSec .... Clock your internet connection speed [Internet, Visual C++, EXE] PC Magazine 16-Jan-2001, vol. 20, no. 2 by Gregory A Wolking
NetPerSec measures the real-time speed of your Internet connection. Different
types of connections promise different communication speeds, but what are you
actually getting? Due to network traffic, actual speeds are often slower than
what is promised. Cable modems are fast unless many of your neighbors are
sharing the line; such modems can slow down considerably with a heavy load. How
do you know when it's time to switch to DSL? NetPerSec lets you check your
connection speed in real time. It monitors all TCP/IP activity to and from the
Internet or other networks, and graphs the communication speed. Its dynamic
tray icon shows send and receive activity with a bar graph or a histogram. For
details, open the program's main window to view current and average send and
receive speeds in a configurable, graphical display. You can adjust the
sampling rate and the amount of data used to compute the average. NetPerSec was
written by Mark Sweeney, and first appeared in PC Magazine January 16, 2001
(v20n02). Source code
is included.
Requirements: Windows 9x, NT, 2000, or Me
C++ Objects for making UNIX & WinNT Talk [Unix, Windows NT, Book] Purchased 05-Jan-2001, $74.95
CCreditsCtrl - An advanced About Box [Dialog, Windows Programming, Article, Visual C++] www.codeproject.com 08-Jan-2001 by Marc Richarme
Dialog Windows Programming
CCreditsCtrl - An advanced About Box
Marc Richarme
Yet another fully stacked control for displaying scrolling credits...
'Copy To' & 'Move To' in Shell Context Menu [Shell Programming, Context Menu, Shell Extension, Article, Visual C++] www.codeproject.com 08-Jan-2001 by Mumtaz Zaheer
Shell Programming
'Copy To' & 'Move To' in Shell Context Menu
Mumtaz Zaheer
This article is all about how to create a Context Menu Shell Extension.
'Copy To' & 'Move To' will be added to the files/folder context menu.
A free Spell Checker with a dictionary editor program [C++, MFC, STL, Spell Checking, Article, Visual C++] www.codeproject.com 07-Jan-2001 by Peter Pearson
C++ MFC STL
A free Spell Checker with a dictionary editor program
Peter Pearson
An article on adding a spell checker to your application
A Spell Checking Engine [C++, MFC, STL, Spell Checking, Article, Visual C++] www.codeproject.com 07-Jan-2001 by Matt Gullett
C++ MFC STL
A Spell Checking Engine
Matt Gullett
A free spell checking engine for use in your C++ applications. Includes
the current US English dictionary
CODBCRecordset class [Database, CRecordset Class, MFC, Article, Visual C++] www.codeproject.com 07-Jan-2001 by Stefan Chekanov
Database
CODBCRecordset class
Stefan Chekanov
CODBCRecordset class is intended to be full replacement of all
ClassWizard generated CRecordset derived classes in MFC projects.
Adding a Recent File List to an MFC dialog based application [Dialog, Windows Programming, Recent File List, MFC, Article, Visual C++] www.codeproject.com 07-Jan-2001 by Pablo Presedo
Dialog Windows Programming
Adding a Recent File List to an MFC dialog based application
Pablo Presedo
This article demonstrates how to add a recent file list to a dialog
based application
Persistent Frames [Document/View, MFC, Article, Visual C++] www.codeproject.com 07-Jan-2001 by Stefan Chekanov
Document/View
Persistent Frames
Stefan Chekanov
A collection of classes that allows MFC SDI and MDI applications to
remember the positions and sizes of their main frame and child frame windows.
Customizing the Common Find/Replace Dialog in RichEdit View [Rich Edit Control, Find/Replace Dialog, Article, Visual C++] www.codeproject.com 07-Jan-2001 by Kalai Kandasamy
Rich Edit Control
Customizing the Common Find/Replace Dialog in RichEdit View
Kalai Kandasamy
This article explains how to customize the standard Find/Replace Dialog
in RichEdit view.
Taking Advantage of the Winlogon Notification Package [System, Article, Visual C++] www.codeproject.com 07-Jan-2001 by Tony Truong
System
Taking Advantage of the Winlogon Notification Package
Tony Truong
Taking advantage of the Winlogon Notification Package
A Case Study about InterProcess Synchronization [Thread, Process, Interprocess Communication, Synchronization, Article, Visual C++] www.codeproject.com 06-Jan-2001 by Gert Boddaert
Thread Process Inter Process Communication
A Case Study about InterProcess Synchronization
Gert Boddaert
An application demonstrating process Synchronization and interprocess
communication
CMenuEX - A bitmap menu class [Menu, Ownerdrawn, Article, Visual C++] www.codeproject.com 05-Jan-2001 by Norm Almond
Menu
CMenuEX - A bitmap menu class
Norm Almond
Implementing an Ownerdrawn menu
How to do run-time (or explicit) linking of C++ plug-in components and objects [DLL, Article, Visual C++] www.codeproject.com 03-Jan-2001 by Gert Boddaert
DLL
How to do run-time (or explicit) linking of C++ plug-in components and
objects
Gert Boddaert
Extending the functionality of your programs using explicit linking
XML in .NET: .NET Framework XML Classes and C# Offer Simple, Scalable Data Manipulation [XML, .NET, C#, Visual Basic, Article, Visual C++] MSDN Magazine 01-Jan-2001, vol. 16, no. 1 by Aaron Skonnard
XML in .NET: .NET Framework XML Classes and C# Offer Simple, Scalable
Data Manipulation
Aaron Skonnard
Digital Dashboards: Web Parts Integrate with Internet Explorer and Outlook to Build Personal Portals [Internet Explorer, Outlook, Article, Visual C++] MSDN Magazine 01-Jan-2001, vol. 16, no. 1 by Maarten Mullender
Digital Dashboards: Web Parts Integrate with Internet Explorer and
Outlook to Build Personal Portals
Maarten Mullender
Windows CE: eMbedded Visual Tools 3.0 Provide a Flexible and Robust Development Environment [Windows CE, eMbedded Visual Tools, Article, Visual C++] MSDN Magazine 01-Jan-2001, vol. 16, no. 1 by Paul Yao
Windows CE: eMbedded Visual Tools 3.0 Provide a Flexible and Robust
Development Environment
Paul Yao
Pocket PC: Migrating a GPS App from the Desktop to eMbedded Visual Basic 3.0 [eMbedded Visual Basic, Article, Visual C++] MSDN Magazine 01-Jan-2001, vol. 16, no. 1 by Joshua Trupin
Pocket PC: Migrating a GPS App from the Desktop to eMbedded Visual
Basic 3.0
Joshua Trupin
XML Wrapper Template: Transform XML Docs into Visual Basic Classes [XML, Visual Basic, Article, Visual C++] MSDN Magazine 01-Jan-2001, vol. 16, no. 1 by Dave Grundgeiger, Patrick Escarcega
XML Wrapper Template: Transform XML Docs into Visual Basic Classes
Dave Grundgeiger and Patrick Escarcega
Printing from a Web Page [Web, Article, Visual C++] MSDN Magazine 01-Jan-2001, vol. 16, no. 1 by Robert Hess
Printing from a Web Page
Robert Hess
Screen Scraping [Screen Scraping, Article, Visual C++] MSDN Magazine 01-Jan-2001, vol. 16, no. 1 by Robert Hess
Screen Scraping
Robert Hess
Origin of an HTTP Request [HTTP Request, Article, Visual C++] MSDN Magazine 01-Jan-2001, vol. 16, no. 1 by Robert Hess
Origin of an HTTP Request
Robert Hess
Stored Procedure Wizard in Visual Basic Boosts Productivity [Stored Procedure Wizard, Visual Basic, Article, Visual C++] MSDN Magazine 01-Jan-2001, vol. 16, no. 1 by Ken Spencer
Stored Procedure Wizard in Visual Basic Boosts Productivity
Ken Spencer
Binary Behaviors in Internet Explorer 5.5 [Internet Explorer, Article, Visual C++] MSDN Magazine 01-Jan-2001, vol. 16, no. 1 by Dino Esposito
Binary Behaviors in Internet Explorer 5.5
Dino Esposito
Reduce EXE and DLL Size with LIBCTINY.LIB [EXE, DLL, LIBCTINY.LIB, Article, Visual C++] MSDN Magazine 01-Jan-2001, vol. 16, no. 1 by Matt Pietrek
Reduce EXE and DLL Size with LIBCTINY.LIB
Matt Pietrek
Advanced ASP.NET Server-side Controls [ASP, .NET, Control, Article, Visual C++] MSDN Magazine 01-Jan-2001, vol. 16, no. 1 by George Shepherd
Advanced ASP.NET Server-side Controls
George Shepherd
Browser Detection in the Registry [Registry, Article, Visual C++] MSDN Magazine 01-Jan-2001, vol. 16, no. 1 by Paul DiLascia
Browser Detection in the Registry
Paul DiLascia
Changing Cursors in Windows [Cursor, Article, Visual C++] MSDN Magazine 01-Jan-2001, vol. 16, no. 1 by Paul DiLascia
Changing Cursors in Windows
Paul DiLascia
Avoiding Resource ID Collision [Resource, Article, Visual C++] MSDN Magazine 01-Jan-2001, vol. 16, no. 1 by Paul DiLascia
Avoiding Resource ID Collision
Paul DiLascia
JNI-C++ Integration Made Easy [JNI, C++, Integration, Article, Visual C++] C++ Users Journal 01-Jan-2001, vol. 19, no. 1 by Evgeniy Gabrilovich, Lev Finkelstein
JNI-C++ Integration Made Easy
Evgeniy Gabrilovich
and
Lev Finkelstein
Extremely versatile interfaces like the Java JNI also tend to be
extremely cumbersome, as a rule. The authors have found a way to break that
rule.
Working with SOAP, the Simple Object Access Protocol [SOAP, Simple Object Access Protocol, Distributed Computing, XML, Article, Visual C++] C++ Users Journal 01-Jan-2001, vol. 19, no. 1 by Chris Dix
Working with SOAP, the Simple Object Access Protocol
Chris Dix
SOAP makes Distributed Computing possible in a multiplicity of forms,
with XML as a communication medium. Little wonder it’s generating so much
excitement.
Exchanging Data between Java and C/C++ Windows Programs [Java, C++, Article, Visual C++] C++ Users Journal 01-Jan-2001, vol. 19, no. 1 by He Lingsong
Exchanging Data between Java and C/C++ Windows Programs
He Lingsong
The notorious ‘‘endian’’ problem shows up in all sorts of places — in
this case, between different programming languages.
A C/C++ Comment Macro [C++, Macro, Article, Visual C++] C++ Users Journal 01-Jan-2001, vol. 19, no. 1 by Mark Timperley
Mark Timperley
A C/C++ Comment Macro
For a non-intrusive debugging macro, this one-liner is hard to beat.
Using Library Algorithms [Algorithm, STL, Article, Visual C++] C++ Users Journal 01-Jan-2001, vol. 19, no. 1 by Andrew Koenig
Andrew Koenig
Using Library Algorithms
If you’re struggling with complicated loops and off-by-one errors, you
might be doing things the hard way. Andy shows us how easy it can be, with a
little help from the standard library.
The New C: Integers, Part 2 [Article, Visual C++] C++ Users Journal 01-Jan-2001, vol. 19, no. 1 by Randy Meyers
Randy Meyers
The New C: Integers, Part 2
The new C Standard has a novel idea: just accept that machine-word
sizes will grow. Randy explains C’s proactive strategy for accommodating the
inevitable.
Containers in Memory: How Big Is Big? [Container, Memory, Article, Visual C++] C++ Users Journal 01-Jan-2001, vol. 19, no. 1 by Herb Sutter
Herb Sutter
Containers in Memory: How Big Is Big?
If you are basing your selection of standard containers on memory
requirements, then Herb has some bad news and some good news.
Sorting through Quicksort, Part 1 [Sorting, Quicksort, Article, Visual C++] C++ Users Journal 01-Jan-2001, vol. 19, no. 1 by Pete Becker
Pete Becker
Sorting through Quicksort, Part 1
Pete uses the popular quicksort algorithm as a mini-laboratory for
exploring algorithm design and analyzing algorithm performance problems.
Defining Iterators and Const Iterators [Iterator, C++, Article, Visual C++] C++ Users Journal 01-Jan-2001, vol. 19, no. 1 by Matt Austern
Matt Austern
Defining Iterators and Const Iterators
Writing an iterator isn’t hard, and it’s a natural way to extend the
C++ Standard library. But if you want to do it right, there are a few wrinkles
you ought to know about.
Secure Your Applications With Active Directory [Active Directory, Security, Windows NT, Article, Visual Basic] Visual Basic Programmer's Journal 01-Jan-2001, vol. 11, no. 1 by Michiel de Bruijn
Secure Your Applications With Active Directory
Michiel de Bruijn
Windows 2000's Active Directory (AD) lets you add Security features to
your apps, making the process easier than ever before. Here’s how to use AD to
implement security and application extensibility.
Make Passwords Secure With the Crypto API [Password, Crypto API, Article, Visual Basic] Visual Basic Programmer's Journal 01-Jan-2001, vol. 11, no. 1 by Daniel Appleman
Make Passwords Secure With the Crypto API
Daniel Appleman
Add true secure functionality to your password-protected VB
applications and components by tapping Microsoft’s Crypto API.
Create an Enterprise Reporting System [Reporting, Excel, Article, Visual Basic] Visual Basic Programmer's Journal 01-Jan-2001, vol. 11, no. 1 by Tony Sidera, Brian Kosienski, Dan Golden
Create an Enterprise Reporting System
Tony Sidera
,
Brian Kosienski
, and
Dan Golden
Without an enterprise reporting system, your company will flail about
blindly, unable to deal intelligently with data. Discover how to implement a
reporting architecture in Excel that schedules reports of transactional data.
Get a Handle on Errors [Error, Article, Visual Basic] Visual Basic Programmer's Journal 01-Jan-2001, vol. 11, no. 1 by Stan Schultes
Get a Handle on Errors
Effective error handling in VB isn't just an art that only experienced
programmers can grasp. Learn how error handling works, and develop strategies
for handling your own error conditions.
Stan Schultes
Good Procedures Call Themselves [Procedure, Article, Visual Basic] Visual Basic Programmer's Journal 01-Jan-2001, vol. 11, no. 1 by Ron Schwarz
Good Procedures Call Themselves
When a task looks impossible, the best solution is sometimes to write
code that works like multiple brains. Learn the basics of writing procedures
that call themselves to accomplish a lot with less code than you thought.
Ron Schwarz
Handle Concurrent Web Data Access [Web, Data Access, Concurrency, Article, Visual Basic] Visual Basic Programmer's Journal 01-Jan-2001, vol. 11, no. 1 by Yasser Shohoud
Handle Concurrent Web Data Access
Managing concurrent data access in a Web application is different from
doing so with a client/server application. Learn how to implement optimistic
Concurrency in your Web applications.
Yasser Shohoud
Do OO in "Web Time" [Web, Article, Visual Basic] Visual Basic Programmer's Journal 01-Jan-2001, vol. 11, no. 1 by Deborah Kurata
Do OO in "Web Time"
Project timeframes are compressing more and more. These six techniques
will help you minimize your design and development time.
Deborah Kurata
Add a Window to the Taskbar [Taskbar, Article, Visual Basic] Visual Basic Programmer's Journal 01-Jan-2001, vol. 11, no. 1 by Karl E Peterson
Add a Window to the Taskbar
Learn how to force the addition of a window to the taskbar
Karl E Peterson
How to obtain the name of the domain controller [Article, Visual Basic] Visual Basic Programmer's Journal 01-Jan-2001, vol. 11, no. 1 by Karl E Peterson
How to obtain the name of the domain controller
.
Karl E Peterson
Simplify Data Transformations [Data Transformation, SQL Server, Article, Visual Basic] Visual Basic Programmer's Journal 01-Jan-2001, vol. 11, no. 1 by Mary V Hooke
Simplify Data Transformations
Explore the new features of SQL Server 2000's Data Transformation
Services. Master the power and flexibility to make your life a lot easier.
Learn how to handle errors, data pumps, package logs, and more.
Mary V Hooke
Manage Class Attributes [Class Attribute, Add-in, Article, Visual Basic] Visual Basic Programmer's Journal 01-Jan-2001, vol. 11, no. 1 by Francesco Balena
Manage Class Attributes
Displaying class attributes that are usually hidden can make your
programming tasks easier. Discover how to create an Add-in that helps you work
with these attributes.
Francesco Balena
Execute Stored Procedures in ADO [Stored Procedure, ADO, ActiveX Data Objects, Database, Article, Visual Basic] Visual Basic Programmer's Journal 01-Jan-2001, vol. 11, no. 1 by William R Vaughn
Execute Stored Procedures in ADO
Using ActiveX Data Objects (ADO) to execute stored procedures can make
your Database apps faster, more scalable, and more reusable. Take a look at the
top techniques.
William R Vaughn
Add C++ to Your VB Apps [C++, DLL, Encryption, String, Visual C++, Article, Visual Basic] Visual Basic Programmer's Journal 01-Jan-2001, vol. 11, no. 1 by Jonathan Morrison
Add C++ to Your VB Apps
When you take time to learn the basics of C++, you can write more
efficient functions that bring huge performance gains to your VB apps. Here you
can learn how to create a C++ DLL that performs Encryption on a character
String.
Jonathan Morrison
Improve Database Look-Up Time [Article, Lotus Notes] Notes Advisor 01-Jan-2001 by Mark Eich
Notes Development - Lotus Notes & Domino Advisor - January 2001
Improve Database Look-Up Time
Mark Eich
Apply iNotes' Enhanced Features in Microsoft Internet Explorer [Internet Explorer, Article, Lotus Notes] Notes Advisor 01-Jan-2001 by Terrance A Crow
Web Development - Lotus Notes & Domino Advisor - January 2001
Apply iNotes' Enhanced Features in Microsoft Internet Explorer
Terrance A Crow
Integrate Domino 5.0.5 and WebSphere 3.5 [Domino, WebSphere, Article, Lotus Notes] Notes Advisor 01-Jan-2001 by Dennis Rot
Web Development - Lotus Notes & Domino Advisor - January 2001
Integrate Domino 5.0.5 and WebSphere 3.5
Dennis Rot
Let Windows NT Services Access Domino Objects [NT Service, Domino Object, Article, Lotus Notes] Notes Advisor 01-Jan-2001 by Michael Thomas Mohen
Technology Integration - Lotus Notes & Domino Advisor - January 2001
Let Windows NT Services Access Domino Objects
Michael Thomas Mohen
Add Notes Ease of Use to a Web Project Management Application [Article, Lotus Notes] Notes Advisor 01-Jan-2001 by Scot Fithen
Web Development - Lotus Notes & Domino Advisor - January 2001
Add Notes Ease of Use to a Web Project Management Application
Scot Fithen
Building a Five-Layer Portal [Article, Lotus Notes] Notes Advisor 01-Jan-2001 by Paul N McMahon, and Robert Albritton
Knowledge Management - Lotus Notes & Domino Advisor - January 2001
Building a Five-Layer Portal
Paul N McMahon and and Robert Albritton
Development Techniques [Article, Lotus Notes] Notes Advisor 01-Jan-2001 by Ken Schweda
Advisor Tips - Lotus Notes & Domino Advisor - January 2001
Development Techniques
Ken Schweda
MFC Grid control 2.22 [Control, MFC, Grid Control, Article, Visual C++] www.codeproject.com 01-Jan-2001 by Chris Maunder
Control
MFC Grid control 2.22
Chris Maunder
A fully featured MFC Grid Control for displaying tabular data. The grid
is a custom control derived from CWnd
Component Best Practices: Creating a Property Editor [Component, Property, Article, Delphi] Delphi Developer 01-Jan-2001, vol. 7, no. 1 by Peter Morris
Component Best Practices: Creating a Property Editor
Peter Morris
In Part 3 of his component series (see the December 2000 issue of
Delphi Developer), Peter Morris presented a thorough investigation of component
editors. In this installment, he extends that discussion to property editors.
click here for full article (free)
Optimizing Object Pascal: Short Strings vs. Long Strings [Optimizing, Object Pascal, Short String, Long String, String, Article, Delphi] Delphi Developer 01-Jan-2001, vol. 7, no. 1 by Charles Appel
Optimizing Object Pascal: Short Strings vs. Long Strings
Charles Appel
In the July 2000 issue of Delphi Developer (see "Optimizing Object
Pascal"), Charles Appel demonstrated some techniques for optimizing your Object
Pascal code by using a simple poker library as an example. One of those
optimizations involved replacing long strings with the older Pascal-type short
strings, a trick Charles discovered while making the library compatible with
16-bit Delphi. In this article, he shows why this worked by comparing the
speeds of long and short strings in simpler code. He also demonstrates some of
the problems with benchmarking under Windows. (online subscribers only)
subscribe now
QuickSort: Classic Algorithms and Data Structures, Part 2 [QuickSort, Algorithm, Data Structure, Article, Delphi] Delphi Developer 01-Jan-2001, vol. 7, no. 1 by Fernando Vicaria
QuickSort: Classic Algorithms and Data Structures, Part 2
Fernando Vicaria
In this second part of Fernando Vicaria's series (see the November 2000
issue of Delphi Developer for Part 1, "Classic Algorithms and Data Structures:
Sorting Algorithms"), he describes one more very important sort algorithm. In
Part 1, he demonstrated the Insertion sort—an intuitive if somewhat slow
sorting algorithm. Now you'll find out what speed is all about with a little
algorithm called QuickSort. (online subscribers only) subscribe now
DBGrid Images, etc. [DBGrid, Image, Taskbar, Environment Variable, Justifying, Article, Delphi] Delphi Informant 01-Jan-2001, vol. 7, no. 1 by Bruno Sonnino
Features
DBGrid Images, etc.
-
Bruno Sonnino
Bruno Sonnino provides us with Delphi tips, including: displaying
images in a DBGrid, Windows Taskbar tips, accessing Environment Variables, and
Justifying text.
Easy Pivot Tables [Pivot Table, Microsoft Office Web Components, Article, Delphi] Delphi Informant 01-Jan-2001, vol. 7, no. 1 by Alex Fedorov, Natalia Elmanova
Easy Pivot Tables
-
Alex Fedorov
and
Natalia Elmanova
Alex Fedorov and Natalia Elmanova demonstrate the power and flexibility
of PivotTable, one of the Microsoft Office Web Components, when used from
Delphi.
Pretty Good Privacy [Privacy, PGP, Article, Delphi] Delphi Informant 01-Jan-2001, vol. 7, no. 1 by Mike Riley
Pretty Good Privacy
-
Mike Riley
Mike Riley provides an introduction to PGP for the Delphi developer,
from its installation and requirements, to a demonstration program, to
suggestions for its use.
Surfing from Delphi: Part I [Automation, IWebBrowser2 Interface, Internet Explorer, Article, Delphi] Delphi Informant 01-Jan-2001, vol. 7, no. 1 by Bill Todd
Surfing from Delphi: Part I
-
Bill Todd
Bill Todd shows us how to use IE as an Automation server, and - just to
make it really easy - provides a wrapper for many of the methods in the
IWebBrowser2 Interface.
The Life and Death of TButton [TButton, Kylix, Article, Delphi] Delphi Informant 01-Jan-2001, vol. 7, no. 1 by Robert Kozak
The Life and Death of TButton
-
Robert Kozak
Borland's Robert Kozak begins his regular Kylix column. Focusing on CLX
(pronounced "clicks"), the cross-platform component library, he begins with the
humble TButton.
The Life and Death of TButton
-
Robert Kozak
Borland's Robert Kozak begins his regular Kylix column. Focusing on CLX
(pronounced "clicks"), the cross-platform component library, he begins with the
humble TButton.
Windows Millenium [Operating System, Product, Owned By BDP, Daily Task, System Support, CD-ROM] Purchased 26-Dec-2000, $69.99
The Life and Death of TButton
-
Robert Kozak
Borland's Robert Kozak begins his regular Kylix column. Focusing on CLX
(pronounced "clicks"), the cross-platform component library, he begins with the
humble TButton.
Windows 2000 Programming for Dummies [MFC, SDK Programming, Visual C++, Windows Development, Book] Purchased 15-Dec-2000, $37.99
Windows Programming Programmer's Notebook [C++, MFC, SDK Programming, Visual C++, Windows Development, Book] Purchased 23-Dec-2000, $59.95
UNIX for Dummies [Unix, Book] Purchased 23-Dec-2000, $21.99
Intro to the Delphi Programming Glossary [Article, Delphi] delphi.about.com 26-Dec-2000
26-Dec-2000
26-Dec-2000
Intro to the Delphi Programming Glossary
An introduction to the Delphi Programming Glossary, a cross-referenced
collection of Object Pascal Programming definitions.
Using DDX and DDV with WTL [ATL, COM, ActiveX, DDX, DDV, WTL, MFC, Article, Visual C++] www.codeguru.com 20-Dec-2000 by Less P Wright II
ATL COM ActiveX
Using DDX and DDV with WTL
Less P Wright II
Illustrates how to incorporate the MFC feature of DDX/DDV into your WTL
applications!
Generalizing Custom-Draw [Programming, MFC, Article, Visual C++] www.codeguru.com 20-Dec-2000 by Roger Onslow
Programming
Generalizing Custom-Draw
Roger Onslow
[Updated: Added demo project] Combines the lessons learned in the
previous articles to create a generic custom-draw mechanism for all MFC custom
control classes.
Searching for Delphi [Article, Delphi] delphi.about.com 19-Dec-2000
19-Dec-2000
19-Dec-2000
Searching for Delphi
Where and how to search for Delphi and Object Pascal programming
related materials on the Net.
Custom Items For the Folder Options Dialog Box [Shell, Dialog, Explorer, Folder, Shell Extension, Article, Visual C++] www.codeguru.com 19-Dec-2000 by Dino Esposito
Shell
Custom Items For the Folder Options Dialog Box
Dino Esposito
Shows an undocumented way to modify the Explorer Folder Options dialog
to make your Shell Extension settings persistent.
Streams and .NET [.NET, Article, Visual C++] www.codeguru.com 19-Dec-2000 by Richard Grimes
.NET
Streams and .NET
Richard Grimes
In his first article for CodeGuru, Richard explores the ins and outs of
streaming in .NET
Containment and Aggregation [Template, Containment, Aggregation, ATL, Article, Visual C++] www.codeguru.com 19-Dec-2000 by Andrew Whitechapel
Template
Containment and Aggregation
Andrew Whitechapel
Illustrates the underlying mechanics of aggregation vs containment in
ATL and why you'd want to choose one technique over the other.
Optimize Your Meetings [Programming, Article, Visual C++] www.codeguru.com 19-Dec-2000 by Christopher Duncan
Programming
Optimize Your Meetings
Christopher Duncan
Tips on getting maximum productivity out of your meetings in a minimum
amount of time.
Paint Shop Pro 7.0 Professional [Image, Product, Owned By BDP, Daily Task, Development, Entertainment, CD-ROM] Purchased 16-Nov-2000, $59
Programming
Optimize Your Meetings
Christopher Duncan
Tips on getting maximum productivity out of your meetings in a minimum
amount of time.
MFC DLLs : Extension DLLs
This tutorial covers how to create an extension dll and use it from a
C++ client application.
Mahesh Chand
13-Dec-2000
13-Dec-2000
12-Dec-2000
12-Dec-2000
Decompiling Delphi
Whispering about reverse engineering Delphi applications: 'I have a
Delphi program's .exe, can I decompile it and get the source?'
Document Synopsis (using: Lotus Notes 5) [Agent, Document, Lotus Notes, Tip] www.searchdomino.com 12-Dec-2000 by Mike Cunningham
Document Synopsis
Mike Cunningham
12 Dec 2000, Rating 3.62 (out of 5)
This agent creates a new document based off the document whose items you wish
to examine. All item names and text values are compiled in a report.
It is coded as an agent to work with your mail d.b. and triggered off selected
documents in a view. The report document is then placed in your inbox. You can
tweek a few lines and use the code in any d.b. you wish.
Code: Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Dim testdoc As NotesDocument
Dim Body As NotesRichTextItem
Dim tempRTitem As NotesRichTextItem
Dim getItem As NotesItem
Dim theSub As String
Dim itemname As String
Dim itemType As Integer
Dim rtitemText As String
Dim richStyle As NotesRichTextStyle
Dim richStyle2 As NotesRichTextStyle
Set db = session.CurrentDatabase
Set dc = db.UnprocessedDocuments
Set richStyle = session.CreateRichTextStyle
richStyle.NotesFont = FONT_COURIER
richStyle.FontSize = 10
richStyle.Bold = True
Set richStyle2 = session.CreateRichTextStyle
richStyle2.NotesFont = FONT_COURIER
richStyle2.FontSize = 8
richStyle2.Bold = False
NumSel = dc.Count
For j = 1 To NumSel
Set doc = dc.GetNthDocument(j)
theSub = doc.GetItemValue("Subject")(0)
Set testdoc = New NotesDocument(db)
testdoc.Form = "Memo"
Set Body = New NotesRichTextItem(testdoc,"Body")
testdoc.Subject = ("Document Synopsis for: " & theSub)
Forall i In doc.items
itemType = i.Type
' itemValues(Ucase(i.Name)) = i.Text
... (cont.)
MFC DLLs : Basics
Are you a beginner in VC++ programming and wondering what are dlls and
how to create them? This article covers some basics.
Mahesh Chand
11-Dec-2000
11-Dec-2000
Call CoInitialize() Only Once (using: Visual C++ 6.0) [CoInitialize(), COM, CoInitializeEx(), Visual C++, Tip] www.pinnaclepublishing.com 08-Dec-2000
Call CoInitialize() Only Once
---------------------------------------------------------
The Microsoft documentation can sometimes be unclear, and
in this case it is. Microsoft says that CoInitialize()
should be called for once per thread in a process, but
this can be misleading if you're writing a single-
threaded program.
The thing to remember with CoInitialize (and, of course,
CoInitializeEx()) is to make sure that either of them is
only called once in your entire program. A good place to
call CoInitialize(), then, is when your program begins,
in either InitInstance() or, better yet,
CWinApp::InitApplication(). And just when you thought
there was no need to override that function!
High-performance (or time-efficient) way to make sure the vector has enough space? (using: Visual C++ 6.0) [STL, vector, Visual C++, Tip] www.pinnaclepublishing.com 08-Dec-2000
Let's say that I have a vector of ints in STL code, and I
know in advance that I want to add 100 integers to the
vector. What's the most high-performance (or time-
efficient) way to make sure the vector has enough space?
It must just be me, but I seem to be fixated on STL.
Anyway, let me demonstrate the answer to the Pop Quiz
with a code snippet:
#include
#include
#include
using namespace std;
int main()
{
// Allocate a vector of integers
vector vec;
// We need space for 100 integers.
// Call vector::reserve() to do just that.
vec.reserve(100);
// The call above preallocates any memory we need
// to make sure there's space for 100 entries.
for (int i=0;i < 100;i++)
{
// Add the integers 1, 2, ..., 100 to the
// vector
vec.push_back(i + 1);
}
}
Now, reserve() does *not* change the size of the vector,
as the size is simply analogous to the count of how many
elements are in the vector. If I have a count of 5
elements in a vector, then its size is 5. However, if I
call vec.reserve(10); it guarantees that I can add 10
more elements onto the end of the vector, vec. Be aware
that any calls to vector< >::reserve() may allocate
memory, and if that should happen, any iterators may
be invalidated. It's best to re-obtain iterators to
vector elements after vector< >::reserve() has been
called, since there's never any guarantee that
vector< >::reserve() didn't allocate more memory.
Repair an access database using DAO [Article, Visual C++] www.mindcracker.com 08-Dec-2000 by Mahech Chand
Repair an access database using DAO
See how you can repair a corrupted access database by using
CDaoWorkspace's RepairDatabase method.
Mahech Chand
.
08-Dec-2000
08-Dec-2000
Compacting a Database [Article, Visual C++] www.mindcracker.com 08-Dec-2000 by Mahech Chand
Compacting a Database
Compacting is a regular activity for a Jet database. This article
explains how to use DAO class CDaoWorkspace and ADO to compact a Jet database.
Mahech Chand
.
08-Dec-2000
08-Dec-2000
ODBC Data Source Administration [Article, Visual C++] www.mindcracker.com 07-Dec-2000 by Mahesh Chand
ODBC Data Source Administration
An overview of ODBC Admin.
Mahesh Chand
07-Dec-2000
07-Dec-2000
Report Control - An Outlook 2000-Style SuperGrid Control [Article, Visual C++] www.earthweb.com 07-Dec-2000 by Maarten Hoeben
Report Control - An Outlook 2000-Style SuperGrid Control
Maarten Hoeben
7-Dec-2000
7-Dec-2000
This ReportCtrl control is an Outlook 98/2000 style SuperGrid control
Report Control - An Outlook 2000-Style SuperGrid Control [Listview, Update, Outlook, Article, Visual C++] www.codeguru.com 07-Dec-2000 by Maarten Hoeben
List View Update
Report Control - An Outlook 2000-Style SuperGrid Control
Maarten Hoeben
Maarten's at it again with about 30 fixes and mods to the best
Outlook-like grid on the net!
Changing Contents of a Property Page with a ComboBox [Dialog, Property Page, Article, Visual C++] www.codeguru.com 07-Dec-2000 by Peter Spooner
Dialog
Changing Contents of a Property Page with a ComboBox
Peter Spooner
Technique for creating VS-style property pages where controls
appear/disappear based on selected combo box options
Add ODBC Support to an Existing Application [Article, Visual C++] www.mindcracker.com 06-Dec-2000 by Mahesh Chand
Add ODBC Support to an Existing Application
Do you have an application and want to use ODBC MFC classes to access a
database. This tutorial guides to step by step to do so.
Mahesh Chand
.
06-Dec-2000
06-Dec-2000
Dynamic Data Exchange (DDX) [Programming, Article, Visual C++] www.codeguru.com 06-Dec-2000 by Roger Onslow
Programming
Dynamic Data Exchange (DDX)
Roger Onslow
What is it, how does it work, and how can we improve it
Dispinterface vs. Events and Runtime Sinks [Template, DISPID, ATL, Article, Visual C++] www.codeguru.com 06-Dec-2000 by Andrew Whitechapel
Template
Dispinterface vs. Events and Runtime Sinks
Andrew Whitechapel
If your object wants to expose multiple interfaces to such clients, one
solution is DISPID Encoding. This article shows how to do it with the ATL.
[Update] Custom Draw ListView Controls - Part II [Programming, ListView Control, MFC, Article, Visual C++] www.codeguru.com 06-Dec-2000 by Roger Onslow
Programming
[Update] Custom Draw ListView Controls - Part II
Roger Onslow
Combines the lessons learned in the previous articles to create a
generic custom-draw mechanism for all MFC custom control classes.
Finding Display Size of Dialog From Resource [Dialog, Resource, Article, Visual C++] www.codeguru.com 06-Dec-2000 by Shridhar Guravannavar
Dialog
Finding Display Size of Dialog From Resource
Shridhar Guravannavar
Very useful information if you need to arrange position and size of
other windows based upon the dialog size before the dialog gets displayed.
Launching NT Applications From Your Code [System, Article, Visual C++] www.codeguru.com 06-Dec-2000 by Michel Yossef David
System
Launching NT Applications From Your Code
Michel Yossef David
Two utilities for launching NT application synchronously or
asynchronously
Add ODBC CRecordView support to your SDI Application [Article, Visual C++] www.mindcracker.com 05-Dec-2000 by Mahesh Chand
Add ODBC CRecordView support to your SDI Application
Are you creating a new SDI application? Do you want to provide ODBC MFC
support to this application? See a step by step tutorial.
Mahesh Chand
.
05-Dec-2000
05-Dec-2000
Holiday Gift Ideas for Delphi Coders [Article, Delphi] delphi.about.com 05-Dec-2000
05-Dec-2000
05-Dec-2000
Holiday Gift Ideas for Delphi Coders
Everything you need to know about what every Delphi programmer desires,
needs, wants ...
Persisting Data - A Guide to the Windows Registry - Part 1 [Article, Visual Basic] visualbasic.about.com 04-Dec-2000
04-Dec-2000
04-Dec-2000
Persisting Data - A Guide to the Windows Registry - Part 1
Almost all modern apps now need to store settings or information
between program sessions. In this article, your Visual Basic Guide introduces
you to a couple of built in Visual Basic functions that make it easy to store
and retrieve information from the Windows Registry.
How to change color of static button or other controls of a dialog? [Article, Visual C++] www.mindcracker.com 04-Dec-2000 by Mahesh Chand
How to change color of static button or other controls of a dialog?
Sample project attached.
Mahesh Chand
04-Dec-2000
04-Dec-2000
Add DAO support to an existing application [Article, Visual C++] www.mindcracker.com 03-Dec-2000 by Mahesh Chand
Add DAO support to an existing application
See how you can add DAO MFC support to an existing application.
Mahesh Chand
.
03-Dec-2000
03-Dec-2000
Seting output directory of your project files [Article, Visual C++] www.mindcracker.com 03-Dec-2000 by Jeniffer P Walker
Seting output directory of your project files
See how you can set output directory for your project files.
Jeniffer P Walker
03-Dec-2000
03-Dec-2000
Removing Image Noise with Adaptive Filters [Image Noise, Adaptive Filter, Article, Visual C++] C++ Users Journal 01-Dec-2000, vol. 18, no. 12 by Dwayne Phillips
Removing Image Noise with Adaptive Filters
Dwayne Phillips
There is no such thing as a universal filter, but we can get close by
building one that adapts to the local noise. Dwayne Phillips walks us through
the math to make a filter look a little bit smart.
Effective Contour Creation with OpenGL Texture Mapping [OpenGL, Graphic, Article, Visual C++] C++ Users Journal 01-Dec-2000, vol. 18, no. 12 by Wenfei Wu
Effective Contour Creation with OpenGL Texture Mapping
Wenfei Wu
In Graphics applications, ‘‘let the hardware do it’’ is generally good
advice. Today’s graphics hardware keeps getting better and better, and OpenGL
knows how to exploit its capabilities. Even producing contour plots can be a
fairly painless operation.
A Class Template for N-Dimensional Generic Resizable Arrays [Class Template, N-Dimensional, Array, Dynamic Array, Article, Visual C++] C++ Users Journal 01-Dec-2000, vol. 18, no. 12 by Giovanni Bavestrelli
A Class Template for N-Dimensional Generic Resizable Arrays
Giovanni Bavestrelli
Need Dynamic Arrays that are efficient and intuitive? Try a little
template recursion and specialization.
Self Destructing Threads [Thread, Article, Visual C++] C++ Users Journal 01-Dec-2000, vol. 18, no. 12 by Mark Peterson
Self Destructing Threads
Mark Peterson
A way to make threads easier to manage.
Fungible Control Structures [Control Structure, Article, Visual C++] C++ Users Journal 01-Dec-2000, vol. 18, no. 12 by Steve Dewhurst
Steve Dewhurst
Fungible Control Structures
Steve presents some effective but unorthodox methods for controlling
flow of execution - including one that looks downright weird.
STL & Generic Programming: Introduction to the STL [STL, C++, Article, Visual C++] C++ Users Journal 01-Dec-2000, vol. 18, no. 12 by Thomas Becker
Thomas Becker
STL & Generic Programming: Introduction to the STL
Here’s a very brief history of the C++ Standard library, and a call to
abandon the naive view that the STL is ‘‘just a bunch of containers.’’
Writing IDE Add-Ins in VB [IDE, Add-In, Visual Basic, Docking Window, Article, Visual C++] Windows Developer's Journal 01-Dec-2000, vol. 11, no. 12 by Jason Fisher
Writing IDE Add-Ins in VB
Jason Fisher
The Visual Basic IDE is extendible in a number of ways, but why not
write your extensions in Visual Basic? This article walks you through the
process, and provides an add-in that displays the current project's
dependencies in a Dockable Window.
Rebasing Win32 DLLs [Rebasing, Win32, DLL, Article, Visual C++] Windows Developer's Journal 01-Dec-2000, vol. 11, no. 12 by Thiadmer Riemersma
Rebasing Win32 DLLs
Thiadmer Riemersma
The "D" in DLL stands for "Dynamic", and that refers in part to the
fact that the operating system may have to load your DLL at a different base
address than it was linked for. This article explains why that's an event worth
avoiding, and provides a utility that tries to automatically base your DLL at
an address that won't require dynamic relocation every time the DLL is loaded.
Understanding NT [Windows NT Embedded, Peformance Counter, Article, Visual C++] Windows Developer's Journal 01-Dec-2000, vol. 11, no. 12 by Paula Tomlinson
Understanding NT
Paula Tomlinson
Lester Memmott asks about missing column code. Christoffer Schmiterlöw
inquires whether Windows NT Embedded treats ATA flash memory as a hard drive.
Finally, Art Cherubini writes about the travails of locating perfmon in various
versions of Windows, and Paula supplies the world's simplest Peformance Counter
DLL - a useful starting point that helps you ensure you can get your
performance counters installed correctly.
User Interface Programming: Autocompletion and Autosuggestion [Autocompletion, Auto Suggest, Explorer, Article, Visual C++] Windows Developer's Journal 01-Dec-2000, vol. 11, no. 12 by Petter Hesselberg
User Interface Programming: Autocompletion and Autosuggestion
Petter Hesselberg
Last month's column examined the new autocompletion and autosuggestion
features for lists. This month's column explores the detailed features for
filename autocompletion, and supplies an example of what you have to do to make
an edit field a drop target for files dragged from Explorer.
COM Custom Categories Registration with ATL 3.0 [COM, Registration, ATL, Custom Category, Article, Visual C++] Windows Developer's Journal 01-Dec-2000, vol. 11, no. 12 by Antonello Salvatucci
COM Custom Categories Registration with ATL 3.0
Antonello Salvatucci
A little code to automate the process of getting custom categories
registered.
Selecting A Value for InitAtomTable() [Article, Visual C++] Windows Developer's Journal 01-Dec-2000, vol. 11, no. 12 by Ron Burk
Selecting A Value for InitAtomTable()
Ron Burk
InitAtomTable() claims to work better when passed a prime; here's a
small table that makes it easy to select the "right" prime number at runtime.
Identifying the Calling Function [Function, Article, Visual C++] Windows Developer's Journal 01-Dec-2000, vol. 11, no. 12 by Francois Leblanc
Identifying the Calling Function
Francois Leblanc
For most programs, a small amount of inline assembly can get you the
address of the function that called you.
A LoadImage() Bug [LoadImage(), Bug, Button, Bitmap, Transparent Color, Article, Visual C++] Windows Developer's Journal 01-Dec-2000, vol. 11, no. 12 by Chris Branch
A LoadImage() Bug
Chris Branch
If you want a Button with a Bitmap face that contains a Transparent
Color, you may run into this bug.
Fancy Menus, etc. [Menu, Article, Delphi] Delphi Informant 01-Dec-2000, vol. 6, no. 12 by Bruno Sonnino
Fancy Menus, etc.
Bruno Sonnino
Bruno Sonnino begins his new tips column by showing us how to rotate
text, create special lines, and customize menus with various fonts, bitmaps,
shapes, and colors.
Implementing COM+ Events
Binh Ly
Binh Ly introduces the COM+ loosely-coupled event (LCE) system, and
demonstrates its three core concepts: the event class, the Event Publisher, and
the Event Subscriber.
New List Objects [Contnrs Unit, TObjectList, TComponentList, Article, Delphi] Delphi Informant 01-Dec-2000, vol. 6, no. 12 by Jeremy Merrill
New List Objects
Jeremy Merrill
Jeremy Merrill demonstrates classes from the new Contnrs Unit, such as
TObjectList and TComponentList, which can manipulate objects and components
without additional code.
Two Office Web Components [Office, Web, Office Web Component, OWC, Excel, Article, Delphi] Delphi Informant 01-Dec-2000, vol. 6, no. 12 by Alex Fedorov
Two Office Web Components
Alex Fedorov
Alex Fedorov puts two of the Office Web Components (OWC) through their
paces, to easily add - for example - a bit of Microsoft Excel functionality to
your Delphi applications.
Make Web Browsing Easier [Web, Web Server, Article, Visual C++] Visual C++ Developers Journal 01-Dec-2000, vol. 3, no. 11 by Dan Wahlin
Make Web Browsing Easier
Dan Wahlin
Tired of an overloaded Web Server? Learn to create a hierarchical menu
system that streamlines how users access your site.
Build a Shopping Cart Page With C# [Shopping Cart, Web, ASP+, C#, .NET, Article, Visual C++] Visual C++ Developers Journal 01-Dec-2000, vol. 3, no. 11 by Bob Lair, Jason Lefebvre
Build a Shopping Cart Page With C#
Bob Lair and Jason Lefebvre
Build sophisticated Web forms for your commerce app, including a
shopping cart ASP+ page you’ll write in C#. Check out the second of this
three-part series on building a commerce app from the ground up using C# and
.NET.
Unleash RosettaNet on Muddled Communications [Article, Visual C++] Visual C++ Developers Journal 01-Dec-2000, vol. 3, no. 11 by Cal Caldwell
Unleash RosettaNet on Muddled Communications
Cal Caldwell
Use RosettaNet PIPs to raze the Tower of Babel that prevents
business-to-business communication.
7 Tips for Mastering the Debugger [Debugger, Article, Visual C++] Visual C++ Developers Journal 01-Dec-2000, vol. 3, no. 11 by Bill Wagner
7 Tips for Mastering the Debugger
Bill Wagner
Learn techniques instrumental in harnessing the elusive debugger -
helpful even for the most accomplished programmer.
Build a Web Service With SOAP [Web Services, SOAP, ATL, COM, Article, Visual C++] Visual C++ Developers Journal 01-Dec-2000, vol. 3, no. 11 by Alan Gordon
Build a Web Service With SOAP
Alan Gordon
SOAP can be tough to use from Visual C++. Here's how to create a Web
service with an ATL-based COM object and make calls from a VC++ application.
To Precompile Or Not to precompile? [COM, IDL, Header File, Article, Visual C++] Visual C++ Developers Journal 01-Dec-2000, vol. 3, no. 11 by Andy Harding
To Precompile Or Not to precompile?
Andy Harding
Discover why COM uses IDL - rather than C++ Header Files - to describe
its interfaces, and explore the benefits (and dangers) of precompiling.
Is ATL Dead? [ATL, .NET, COM, Article, Visual C++] Visual C++ Developers Journal 01-Dec-2000, vol. 3, no. 11 by Richard Grimes
Is ATL Dead?
Richard Grimes
.NET promises much for future versions of Windows, but will it be the
grim reaper of COM and ATL?
Use Property Bags to Grasp COM Persistence [Property Bag, COM, Persistence, Article, Visual C++] Visual C++ Developers Journal 01-Dec-2000, vol. 3, no. 11 by George Shepherd
Use Property Bags to Grasp COM Persistence
George Shepherd
Save and retrieve named values one at a time using COM property bags -
a flexible, version-independent random-access means of reading and writing
individual named values.
Design Fast and Scalable Apps [Scalability, Performance, MTS, COM+, XML, Article, Visual Basic] Visual Basic Programmer's Journal 01-Dec-2000, vol. 10, no. 14 by Ash Rofail
Design Fast and Scalable Apps
Ash Rofail
Scalability and Performance are competing priorities when you develop
enterprise applications, but you don’t need to sacrifice one to achieve the
other. Learn how to satisfy both goals with techniques involving MTS/COM+ and
XML.
Web Services Come of Age [Web Services, Article, Visual Basic] Visual Basic Programmer's Journal 01-Dec-2000, vol. 10, no. 14 by Don Dugdale
Web Services Come of Age
Don Dugdale
Application service providers are now offering Web-hosted services for
developers - a harbinger of things to come.
10 Ways to Prepare for VB.NET [VB.NET, .NET, Article, Visual Basic] Visual Basic Programmer's Journal 01-Dec-2000, vol. 10, no. 14 by Billy Hollis
10 Ways to Prepare for VB.NET
Billy Hollis
The way you code in VB.NET will differ from how you code in VB now.
Start using these 10 coding practices today to ease your migration to VB.NET.
Take Control of Your Build Cycle [Article, Visual Basic] Visual Basic Programmer's Journal 01-Dec-2000, vol. 10, no. 14 by LJ Johnson
Take Control of Your Build Cycle
LJ Johnson
Take the pain out of your build process by creating components to
automate the cycle. Here’s how to design your own compile-cycle code.
Build Your Own ActiveX Control [ActiveX Control, Article, Visual Basic] Visual Basic Programmer's Journal 01-Dec-2000, vol. 10, no. 14 by Stan Schultes
Build Your Own ActiveX Control
Stan Schultes
Hyperlink is a labeled URL control you can reuse in your own projects
and use as a model for building your own ActiveX controls. Learn the basics of
ActiveX control creation with a sample Hyperlink control.
Handle File I/O [File, Article, Visual Basic] Visual Basic Programmer's Journal 01-Dec-2000, vol. 10, no. 14 by Ron Schwarz
Handle File I/O
Ron Schwarz
Learn the ins and outs of file I/O to write fast, compact, and
efficient VB code.
Manage Application Settings With XML [XML, INI File, ActiveX, Article, Visual Basic] Visual Basic Programmer's Journal 01-Dec-2000, vol. 10, no. 14 by A Russell Jones
Manage Application Settings With XML
A Russell Jones
Say goodbye to the drawbacks of INI files by using an XML format
instead. Learn how to translate INI files to XML and use ActiveX to update the
files.
Avoid Writing Tedious, Boring Code
Marc D'Aoust
Learn how to create class templates based on object-oriented patterns,
while replacing the wizard-generated Collection Class with a flexible template
based on the Iterator pattern.
Manipulate Your Message Boxes [Article, Visual Basic] Visual Basic Programmer's Journal 01-Dec-2000, vol. 10, no. 14 by Karl E Peterson
Manipulate Your Message Boxes
Karl E Peterson
Learn to control the position of a message box or uncover an obscured
message box. Also, discover how to create an object clone.
Get Your Sort in Order [Sort, SQL Server, Article, Visual Basic] Visual Basic Programmer's Journal 01-Dec-2000, vol. 10, no. 14 by Michael Kaplan
Get Your Sort in Order
Michael Kaplan
How you order your data can be crucial to your customers, no matter
what their preferred language. The author shows how you can use the new SQL
Server 2000 COLLATE keyword to help support multilingual sorting.
Cache ASP Recordsets the "Exstream" Way [ASP, Recordset, Article, Visual Basic] Visual Basic Programmer's Journal 01-Dec-2000, vol. 10, no. 14 by Jonathan Goodyear
Cache ASP Recordsets the "Exstream" Way
Jonathan Goodyear
Caching recordsets using the new ADO stream object helps keep your Web
apps scalable and more flexible.
Apply Data Mining to Your DBs [SQL Server, OLAP, Article, Visual Basic] Visual Basic Programmer's Journal 01-Dec-2000, vol. 10, no. 14 by Andrew J Brust
Apply Data Mining to Your DBs
Andrew J Brust
Use SQL Server 2000’s data mining instead of, or in addition to, OLAP
to analyze and determine data patterns.
Juice Up Controls With Windows API [SendMessage(), Article, Visual Basic] Visual Basic Programmer's Journal 01-Dec-2000, vol. 10, no. 14 by Andrew J Marshall
Juice Up Controls With Windows API
Andrew J Marshall
Understand the SendMessage() API function and you’ll open the door to a
wealth of control enhancement opportunities.
COM+ and Windows 2000: Ten Tips and Tricks for Maximizing COM+ Performance [COM+, Windows 2000, Performance, Article, Visual C++] MSDN Magazine 01-Dec-2000, vol. 15, no. 12 by David S Platt
COM+ and Windows 2000: Ten Tips and Tricks for Maximizing COM+
Performance
David S Platt
Garbage Collection - Part 2: Automatic Memory Management in the Microsoft .NET Framework [Garbage Collection, Automatic Memory Management, .NET, Article, Visual C++] MSDN Magazine 01-Dec-2000, vol. 15, no. 12 by Jeffrey Richter
Garbage Collection - Part 2: Automatic Memory Management in the
Microsoft .NET Framework
Jeffrey Richter
Custom Debugging - Active Scripting APIs: Add Powerful Custom Debugging to Your Script-Hosting App [Debugging, Active Scripting, Article, Visual C++] MSDN Magazine 01-Dec-2000, vol. 15, no. 12 by Mike Pellegrino
Custom Debugging - Active Scripting APIs: Add Powerful Custom Debugging
to Your Script-Hosting App
Mike Pellegrino
Visual Basic: Inspect COM Components Using the TypeLib Information Object Library [COM, Component, TypeLib Information Object Library, Visual Basic, Article, Visual C++] MSDN Magazine 01-Dec-2000, vol. 15, no. 12 by Jason Fisher
Visual Basic: Inspect COM Components Using the TypeLib Information
Object Library
Jason Fisher
ActiveX and Visual Basic: Enhance the Display of Long Text Strings in a Combobox or Listbox [ActiveX, Combobox, Listbox, Visual Basic, Article, Visual C++] MSDN Magazine 01-Dec-2000, vol. 15, no. 12 by John Calvert
ActiveX and Visual Basic: Enhance the Display of Long Text Strings in a
Combobox or Listbox
John Calvert
MMC: Designing TView, a System Information Viewer MMC Snap-in [MMC, Snap-in, Article, Visual C++] MSDN Magazine 01-Dec-2000, vol. 15, no. 12 by Tom Boldt
MMC: Designing TView, a System Information Viewer MMC Snap-in
Tom Boldt
Client-side Cookies [Cookie, Article, Visual C++] MSDN Magazine 01-Dec-2000, vol. 15, no. 12 by Robert Hess
Client-side Cookies
Robert Hess
Unchecking Checkboxes [Checkbox, Article, Visual C++] MSDN Magazine 01-Dec-2000, vol. 15, no. 12 by Robert Hess
Unchecking Checkboxes
Robert Hess
Microsoft.com Toolbar [Toolbar, Article, Visual C++] MSDN Magazine 01-Dec-2000, vol. 15, no. 12 by Robert Hess
Microsoft.com Toolbar
Robert Hess
WebBrowser Control [WebBrowser Control, Article, Visual C++] MSDN Magazine 01-Dec-2000, vol. 15, no. 12 by Robert Hess
WebBrowser Control
Robert Hess
Element Behaviors in Internet Explorer 5.5 [Internet Explorer, Article, Visual C++] MSDN Magazine 01-Dec-2000, vol. 15, no. 12 by Dino Esposito
Element Behaviors in Internet Explorer 5.5
Dino Esposito
Is COM Dead? [COM, Article, Visual C++] MSDN Magazine 01-Dec-2000, vol. 15, no. 12 by Don Box
Is COM Dead?
Don Box
.NET - Type Fundamentals [.NET, Type, Article, Visual C++] MSDN Magazine 01-Dec-2000, vol. 15, no. 12 by Jeffrey Richter
.NET - Type Fundamentals
Jeffrey Richter
Improving Runtime Performance with the Smooth Working Set Tool - Part 2 [Performance, Working Set Tuner, Article, Visual C++] MSDN Magazine 01-Dec-2000, vol. 15, no. 12 by John Robbins
Improving Runtime Performance with the Smooth Working Set Tool - Part 2
John Robbins
Sending Messages in Windows, Adding Hot Keys to your Application [Message, Hot Key, Article, Visual C++] MSDN Magazine 01-Dec-2000, vol. 15, no. 12 by Paul DiLascia
Sending Messages in Windows, Adding Hot Keys to your Application
Paul DiLascia
Add DAO support to your SDI Application [Article, Visual C++] www.mindcracker.com 01-Dec-2000 by Mahesh Chand
Add DAO support to your SDI Application
This tutorial explains step by step how to add DAO support to your SDI
application.
Mahesh Chand
.
01-Dec-2000
01-Dec-2000
A Directory Picker Class [Article, Visual C++] www.mindcracker.com 01-Dec-2000 by Mahesh Chand
A Directory Picker Class
A class which let you pick a directory. similar to CFileDialog.
Mahesh Chand
.
01-Dec-2000
01-Dec-2000
Using Delphi 5's ActiveX Data Objects [ActiveX Data Objects, ADO, Article, Delphi] Delphi Developer 01-Dec-2000, vol. 6, no. 12 by Bob Swart
Using Delphi 5's ActiveX Data Objects
Bob Swart
One of the great new features of Delphi 5 is support for Microsoft's
ActiveX Data Objects (ADO). In this article, Bob Swart takes a closer look at
this support and shows how it's similar to—and different from—the good old
Borland Database Engine (BDE) you've worked with in the past.
Component Best Practices: Creating a Component Editor [Component, Article, Delphi] Delphi Developer 01-Dec-2000, vol. 6, no. 12 by Peter Morris
Component Best Practices: Creating a Component Editor
Peter Morris
This article is the third part of a series on components. Part 1
covered component basics and some best practices advice, and Part 2 covered how
to write advanced properties and how to write custom streaming for those
properties and sub-properties. In this installment, Peter Morris explains
component editors.
Jazz Up Your User Interface with Flashy Borders [Border, Article, Delphi] Delphi Developer 01-Dec-2000, vol. 6, no. 12 by Keith Wood
Jazz Up Your User Interface with Flashy Borders
Keith Wood
Want to add a bit of spice to your user interface? How about some
attention-grabbing borders around certain areas? In this article, Keith Wood
shows you not only how to do it, but also how to make a component out of it so
it's easy to use!
Creating a TMemo That Saves its Text with Unique Filenames [TMemo, Filename, Article, Delphi] Delphi Developer 01-Dec-2000, vol. 6, no. 12 by Mark Meyer
Creating a TMemo That Saves its Text with Unique Filenames
Mark Meyer
Mark Meyer presents a nice little tool that allows your users to write
all of the text of a TMemo, or just the selected text, to a file. It also gives
users the ability to derive a series of unique filenames by setting an initial
sequence number to the specified base Filename property, and more.
Why Choose Lotus Notes Domino Over Microsoft Exchange 2000? [Domino, Exchange, Article, Lotus Notes] Notes Advisor 01-Dec-2000 by Terrance A Crow
EDITOR'S VIEW - Lotus Notes & Domino Advisor - December 2000
Why Choose Lotus Notes Domino Over Microsoft Exchange 2000?
Terrance A Crow
Import E-Mail into any Notes Application [E-Mail, Article, Lotus Notes] Notes Advisor 01-Dec-2000 by Michael Sobczak
Notes Development - Lotus Notes & Domino Advisor - December 2000
Import E-Mail into any Notes Application
Michael Sobczak
Open Your Applications [Article, Lotus Notes] Notes Advisor 01-Dec-2000 by Shahir A Daya
Notes Development - Lotus Notes & Domino Advisor - December 2000
Open Your Applications
Shahir A Daya
Use Lists in Your LotusScript [List, LotusScript, Article, Lotus Notes] Notes Advisor 01-Dec-2000 by Martin Leon
Notes Development - Lotus Notes & Domino Advisor - December 2000
Use Lists in Your LotusScript
Martin Leon
Take Advantage of the C++ API [C++, API, Article, Lotus Notes] Notes Advisor 01-Dec-2000 by Colin Judge, Brad Balassaitis
Notes Development - Lotus Notes & Domino Advisor - December 2000
Take Advantage of the C++ API
Colin Judge and Brad Balassaitis
Use Frames to Control Content and Navigation [Article, Lotus Notes] Notes Advisor 01-Dec-2000 by Graham Kerswell
Notes Development - Lotus Notes & Domino Advisor - December 2000
Use Frames to Control Content and Navigation
Graham Kerswell
Use Notes URLs as a Navigation Solution [URL, Article, Lotus Notes] Notes Advisor 01-Dec-2000 by Hans van der Burg
Notes Development - Lotus Notes & Domino Advisor - December 2000
Use Notes URLs as a Navigation Solution
Hans van der Burg
How To Get IP Address Of A Machine [C#, IP Address, DNS, Article, Visual C++] www.codeproject.com 01-Dec-2000 by Naveen K Kohli
C#
How To Get IP Address Of A Machine
Naveen K Kohli
Tip on how to use DNS class and get IP address of a machine
Resizing Controls at run time [Control, Article, Visual C++] www.codeproject.com 01-Dec-2000 by Amit Nabarro
Control
Resizing Controls at run time
Amit Nabarro
A method to allow the user to visually resize and position any control
at run time
Time to Complete Progress Control [Control, Progress Control, Article, Visual C++] www.codeproject.com 01-Dec-2000 by Craig Henderson
Control
Time to Complete Progress Control
Craig Henderson
A progress control that tells the user how long an operation has left
to complete
Redmond Again - Part 4 [Article, Article, Visual C++] www.codeproject.com 01-Dec-2000 by Chris Maunder
Article
Redmond Again - Part 4
Chris Maunder
CodeProject, again, Does Redmond.
Smart Translator [Tool, Article, Visual C++] www.codeproject.com 01-Dec-2000 by Mike Walter
Tool
Smart Translator
Mike Walter
Application to aid in the language translation of another application's
resources.
Custom Drawn Controls using WTL [Windows Template Library, WTL, Article, Visual C++] www.codeproject.com 01-Dec-2000 by Billy Leverington
Windows Template Library
Custom Drawn Controls using WTL
Billy Leverington
How to use WTL to create custom controls
CINI Class [Article, Visual C++] www.mindcracker.com 30-Nov-2000 by Mike Shoemaker
CINI Class
A class for reading/writing data from/to an ini file.
Mike Shoemaker
.
30-Nov-2000
30-Nov-2000
Java
Embed OpenGL inside Java AWT Canvas
Davanum Srinivas
This article shows how to use OpenGL calls inside Java AWT Canvas using
JDK1.3's JAWT interface
Redmond Again - Part 3 [Article, Article, Visual C++] www.codeproject.com 30-Nov-2000 by Chris Maunder
Article
Redmond Again - Part 3
Chris Maunder
CodeProject, again, Does Redmond.
Transparency without Source Code [Windows 2000, Transparency, Article, Visual C++] www.codeproject.com 30-Nov-2000 by Bernhard Hammer
Windows 2000
Transparency without Source Code
Bernhard Hammer
Adding transparency to any window, even if you don't have its source
Debugging Windows Programs [Debugging, Tool, Visual C++, Windows Development, Book] Purchased 28-Nov-2000, $68
Transferring data using MFC DAO classes [Article, Visual C++] www.mindcracker.com 29-Nov-2000 by Mahesh Chand
Transferring data using MFC DAO classes
...
This article explains how to transfer data from one database to another
by using MFC ADO classes.
Mahesh Chand
29-Nov-2000
29-Nov-2000
Quick and Dirty Collection Class Notes [C++, MFC, STL, Collection Class, MFC, Article, Visual C++] www.codeproject.com 29-Nov-2000 by Joe Harleman
C++ MFC STL
Quick and Dirty Collection Class Notes
Joe Harleman
An article describing MFC Collection Classes
Writing Customizable AboutBox Component [C#, Article, Visual C++] www.codeproject.com 29-Nov-2000 by Naveen K Kohli
C#
Writing Customizable AboutBox Component
Naveen K Kohli
Shows how to write a component using C#.
Redmond Again - Part 2 [Article, Article, Visual C++] www.codeproject.com 29-Nov-2000 by Chris Maunder
Article
Redmond Again - Part 2
Chris Maunder
CodeProject, again, Does Redmond.
Your first MP3 Delphi player [Article, Delphi] delphi.about.com 28-Nov-2000
28-Nov-2000
28-Nov-2000
Your first MP3 Delphi player
See how to build a full-blown mp3 player with Delphi in just a few
seconds. Even more: get the ID3 tag information from a mp3 file and change it!
Asynchronous Windows Socket Class [Network, Socket, Article, Visual C++] www.codeguru.com 28-Nov-2000 by Roman Ukhov
Network
Asynchronous Windows Socket Class
Roman Ukhov
Great class that is much more flexible than CAsyncSocket since it uses
overlapped I/O instead of a message queue
Internet Explorer-Style Options Panel [Dialog, Internet Explorer, Property Page, Article, Visual C++] www.codeguru.com 28-Nov-2000 by Andy Brown
Dialog
Internet Explorer-Style Options Panel
Andy Brown
This class implements a control that is designed to have the look and
feel of the Internet Explorer 'Advanced Options' Property Page.
Button Control
CButtonST v2.6 (MFC Flat buttons)
Davide Calabro
A fully featured owner-draw button class - it's got the lot!
CSS For Beginners [HTML, CSS, Article, Visual C++] www.codeproject.com 28-Nov-2000 by Nongjian Zhou
HTML CSS
CSS For Beginners
Nongjian Zhou
Add CSS to your HTML files.
Customising your website's Icon in IE5 [HTML, CSS, Article, Visual C++] www.codeproject.com 28-Nov-2000 by Chris Maunder
HTML CSS
Customising your website's Icon in IE5
Chris Maunder
Replace the boring IE logo in your readers browser with an icon
customised for your site.
HTML For Beginners [HTML, CSS, Article, Visual C++] www.codeproject.com 28-Nov-2000 by Nongjian Zhou
HTML CSS
HTML For Beginners
Nongjian Zhou
A tutorial for those who want to learn HTML in a quick and easy way.
Set a fixed text size in your HTML [HTML, CSS, Article, Visual C++] www.codeproject.com 28-Nov-2000 by Nongjian Zhou
HTML CSS
Set a fixed text size in your HTML
Nongjian Zhou
A very useful tip. How to keep your fonts a fixed size so your readers
cannot can change it in their browser, ensuring your page always has the same
look.
Create Dynamic Banners By Using JavaScript [JavaScript, Article, Visual C++] www.codeproject.com 28-Nov-2000 by Nongjian Zhou
JavaScript
Create Dynamic Banners By Using JavaScript
Nongjian Zhou
This article show how to use JavaScript to dynamically display banners,
very usful!
Create Templates using JavaScript [Javascript, Article, Visual C++] www.codeproject.com 28-Nov-2000 by Nongjian Zhou
Javascript
Create Templates using JavaScript
Nongjian Zhou
There are many ways to create a web page templete. Using JavaScript is
one of easiest ways
Redmond Again - Part 1 [Article, Article, Visual C++] www.codeproject.com 28-Nov-2000 by Chris Maunder
Article
Redmond Again - Part 1
Chris Maunder
CodeProject, again, Does Redmond.
WTL bugs [Windows Template Library, WTL, ATL, Article, Visual C++] www.codeproject.com 28-Nov-2000 by Paul Bludov
Windows Template Library
WTL bugs
Paul Bludov
Known WTL & ATL bugs
Context Menu Shell Extension AppWizard [ATL, Context Menu, Shell Extension, Article, Visual C++] www.codeproject.com 27-Nov-2000 by Maxime Labelle
Context Menu Shell Extension AppWizard
Maxime Labelle
A wizard to ease implementing a context menu shell extension
The Complete Idiot's Guide to Writing Shell Extensions [Shell Programming, Shell Extension, Article, Visual C++] www.codeproject.com 27-Nov-2000 by Michael Dunn
The Complete Idiot's Guide to Writing Shell Extensions
Michael Dunn
An index of all the articles in the Idiot's Guide
The Complete Idiot's Guide to Writing Shell Extensions, Part IX [Shell Programming, Shell Extension, Icon, File, Article, Visual C++] www.codeproject.com 27-Nov-2000 by Michael Dunn
The Complete Idiot's Guide to Writing Shell Extensions, Part IX
Michael Dunn
A tutorial on writing an extension to customize the Icons displayed for
a File type.
Getting Started Reverse Engineering (using: Visual C++ 6.0) [Debugging, Article, Visual C++] www.codeguru.com 27-Nov-2000 by John Robbins
Getting Started Reverse Engineering
John Robbins,
John discusses how to get started thinking about reverse engineering so
you can figure out how things work.
Generalizing Custom-Draw to other MFC Custom Control Classes [Windows Programming, Article, Visual C++] www.codeguru.com 27-Nov-2000 by Roger Onslow
Generalizing Custom-Draw to other MFC Custom Control Classes
Roger Onslow
Combines the lessons learned in the previous articles to create a
generic custom-draw mechanism for all MFC custom control classes.
Pocket Scribble, Part II [CE Programming, Article, Visual C++] www.codeguru.com 27-Nov-2000 by Christian Skovdal Andersen
Pocket Scribble, Part II
Christian Skovdal Andersen
Second part of great tutorial on porting MFC Scribble sample to Windows
CE
Writing Windows Form Application For .NET Framework Using C# [C#, .NET, Article, Visual C++] www.codeproject.com 25-Nov-2000 by Naveen K Kohli
Writing Windows Form Application For .NET Framework Using C#
Naveen K Kohli
A tutorial on writing Windows Forms application using C#
How to Implement Drag and Drop Between Your Program and Explorer [Shell Programming, Drag and Drop, File, Explorer, Article, Visual C++] www.codeproject.com 25-Nov-2000 by Michael Dunn
How to Implement Drag and Drop Between Your Program and Explorer
Michael Dunn
A step-by-step description of how to drag and drop Files between your
application and Explorer windows.
AutoText Class Module [Class Module, Validation, Textbox Control, Event, Article, Visual Basic] www.vb2themax.com 25-Nov-2000 by Jaroslaw Zwierz
AutoText Class Module
25-Nov-2000
25-Nov-2000
Jaroslaw Zwierz
This class can help in simplifying most of the Validation chores in
your UI-intensive apps. The class "wraps" around a Textbox Control and traps
most of its Events, to automatically handle the most common cases: numeric
fields, all uppercase fields, fields that should be highlighted on entry, or
formatted on exit. A little, nice addition to your programming toolbox.
MFC Client for ATL Server: explains how to use an ATL server from your MRC client [MFC, ATL Server, ATL, Article, Visual C++] www.mindcracker.com 25-Nov-2000 by Pat Watten
MFC Client for ATL Server: explains how to use an ATL server from your
MRC client
Pat Watten
25-Nov-2000
25-Nov-2000
This article explains how to use ATL Server in MFC client.
MyServer is an ATL COM server object DLL called MyServr. It implements
a custom interface, IMyServer, which exposes a method called MyMethod.
There are four steps to use an ATL server from an MFC client.
1. Initializing the COM Libraries
Calling AfxOleInit function, which initializes the COM libraries is in
the InitInstance function of the application class is the best way to
initialize COM.
//Init OLE libraries and support
if (!AfxOleInit())
{
AfxMessageBox("COM initialization failed");
return FALSE;
}
OR you call
InitializeCOM(NULL);
2. Obtaining the CLSID of a COM Object
If you know the Program ID of the object, CLSIDFromProgID function can
be used to convert ProgID to CLSID.
CLSID clsID;
HRESULT hr;
hr= CLSIDFromProgID(OLESTR("MyServr.Object1"), &clsID);
if(FAILED(hr))
{
AfxMessageBox("CLSID Conversion From ProgID failed");
return FALSE;
}
MyServr.Object1 is the program ID of the server.
3. Creating the COM Object
Using import directive is the simplest method to create an object.
#import"D:\VS\MyProjects\MySvr\MyServr.tlb" no_namespace
Now call CreateInstance to create an instance of the object.
CLSID clsID;
HRESULT hr;
//declare smart pointer
IMyServerPtr m_pMyObj;
hr= CLSIDFromProgID(OLESTR("MyServr.Object1"), &clsID);
if(FAILED(hr))
{
AfxMessageBox("CLSID Conversion From ProgID failed");
return FALSE;
}
m_pMyObj.CreateInstance(clsID); //does the work of CoCreateInstance
4. Using the COM Object
Now call interface's method MyMethod.
m_pMyObj->MyMethod();
5. Uninitializing the COM Libraries
In the case of the smart pointer implementation, the cleanup is handled
automatically.
OR
Call UnInitialize(); if you have call ... (cont.)
Searching for a string in a multi line edit box [Article, Visual C++] www.mindcracker.com 25-Nov-2000 by Mahesh Chand
Searching for a string in a multi line edit box
Attached sample code explains how to search for a string in a multi
line edit box and more
Mahesh Chand
25-Nov-2000
25-Nov-2000
Limit of a text box [Article, Visual C++] www.mindcracker.com 25-Nov-2000 by Jeniffer P Walker
Limit of a text box
An article which tells you about limit of number of characters for an
edit box
Jeniffer P Walker
25-Nov-2000
25-Nov-2000
COM+ Tutorial From Scratch: Part 1 [Article, Visual C++] www.mindcracker.com 25-Nov-2000 by Mahesh Chand
COM+ Tutorial From Scratch: Part 1
Part 1 of COM+ tutorial tells you about COM+ and its components and how
these components fit in real world applications.
Mahesh Chand
25-Nov-2000
25-Nov-2000
Default Printing Support for MDI/SDI using AppWizard [Article, Visual C++] www.mindcracker.com 25-Nov-2000 by Mahesh Chand
Default Printing Support for MDI/SDI using AppWizard
MFC AppWizard provides default printing supports to an MDI/SDI MFC
application.
Mahesh Chand
25-Nov-2000
25-Nov-2000
Sex At Noon Taxes [Sample, Article, Visual C++] www.codeproject.com 24-Nov-2000 by Colin Davies
Sex At Noon Taxes
Colin Davies
Very basic implementation of Microphone to record sound using mmsystem
FTP Client for Pocket PC [CE Programming, Article, Visual C++] www.codeguru.com 24-Nov-2000 by Waseem Anis
FTP Client for Pocket PC
Waseem Anis
Single-threaded, CSocket-based class that illustrates the functionality
offered by the PocketPC device for socket data transfer
File Searcher Edit Control with Browse Button [File, Folder, Update, Article, Visual C++] www.codeguru.com 24-Nov-2000 by Pete Arends
File Searcher Edit Control with Browse Button
Pete Arends
Single control that contains both an edit control to type in a file
name and an "ellipses" button to browse
CDR.EXE, Open/Close CD Drive(s) Programmatically [System, Article, Visual C++] www.codeguru.com 24-Nov-2000 by Chris Morse Sebrell
CDR.EXE, Open/Close CD Drive(s) Programmatically
Chris Morse Sebrell
Tool (and source code) that uses MCI commands to control the opening
and closing of the CD-ROM drive door
Completely Customizable Properties Window [Listview, Update, Article, Visual C++] www.codeguru.com 24-Nov-2000 by Brett R Mitchell
Completely Customizable Properties Window
Brett R Mitchell
Properties window with combo boxes that communicates with owner when
properties are changed
A Gradient Title Bar for modal and modeless dialog [Dialog, Windows Programming, Title Bar, Article, Visual C++] www.codeproject.com 23-Nov-2000 by Amit Dey
A Gradient Title Bar for modal and modeless dialog
Amit Dey
This article shows you how to give your Win95/NT4 modeless dialogs a
Win98/W2K like gradient title bar.
CResizableDialog [Dialog, Windows Programming, CDialog Class, MFC, Article, Visual C++] www.codeproject.com 23-Nov-2000 by Paolo Messina
CResizableDialog
Paolo Messina
A CDialog derived class to implement resizable dialogs with MFC
Active Comments 1.2 [Macro, Add-in, Article, Visual C++] www.codeproject.com 23-Nov-2000 by Andrei Levin
Active Comments 1.2
Andrei Levin
This addin allows your source code to have references to external
files, MSDN articles, voice comments etc.
Adding a custom search feature to CHtmlViews [Control, HTML, CHTMLView Class, Article, Visual C++] www.codeproject.com 23-Nov-2000 by Marc Richarme
Adding a custom search feature to CHtmlViews
Marc Richarme
Could be used to create a Visual C++ like search combo for
CHtmlViews...Update: Now you can highlight all matching words!
Report control - an Outlook 2000 style [Control, Outlook, Article, Visual C++] www.codeproject.com 23-Nov-2000 by Maarten Hoeben
Report control - an Outlook 2000 style
Maarten Hoeben
An Outlook 98/2000 Style SuperGrid Report Control
Smart Translator [Tool, Article, Visual C++] www.codeproject.com 22-Nov-2000 by Mike Walter
Smart Translator
Mike Walter
Application to aid in the language translation of another application's
resources.
Pocket Scribble [CE Programming, Article, Visual C++] www.codeguru.com 22-Nov-2000 by Christian Skovdal Andersen
Pocket Scribble
Christian Skovdal Andersen
Complete tutorial porting the famous MFC Scribble example to Windows CE
Compression and decompression using the Crypto++ library [C++, MFC, STL, Compression, Article, Visual C++] www.codeproject.com 21-Nov-2000 by Shaun Wilde
Compression and decompression using the Crypto++ library
Shaun Wilde
Using the Crypto++ library to compress and decompress data
Hex Encoder and Decoder using Crypto++ [C++, MFC, STL, Article, Visual C++] www.codeproject.com 21-Nov-2000 by Shaun Wilde
Hex Encoder and Decoder using Crypto++
Shaun Wilde
Encode binary data to and from hexadecimal format using the Crypto++
library
Your first C# Control [C#, Control, .NET, Article, Visual C++] www.codeproject.com 21-Nov-2000 by Troy Marchand
Your first C# Control
Troy Marchand
A very simple introduction to writing your first .NET control
Completely Customizable Properties Window [Listview, Article, Visual C++] www.codeguru.com 21-Nov-2000 by Brett R Mitchell
Completely Customizable Properties Window
Brett R Mitchell
Properties window with combo boxes that communicates with owner when
properties are changed
Ping Utility for Windows CE [CE Programming, Article, Visual C++] www.codeguru.com 21-Nov-2000 by Arkady Frankel
Ping Utility for Windows CE
Arkady Frankel
Uses the HPC PRO SDK in order to prove basic "ping" abilities on
HPC/PPC devices
21-Nov-2000
21-Nov-2000
Mysterious Delphi
Uncovering hidden Delphi features. See how to set up some secret
registry settings that change the standard behavior of the Delphi IDE.
Delegates And Events - The Uncensored Story, Part 1 [C#, Delegate, Event, Article, Visual C++] www.codeproject.com 20-Nov-2000 by A Abdul Azeez
Delegates And Events - The Uncensored Story, Part 1
A Abdul Azeez
This is a part of a series of articles that aims at fully understanding
delegates and events
Auto html help generator [WinHelp, HTML Help, Help, Article, Visual C++] www.codeproject.com 20-Nov-2000 by Jack zhang
Auto html help generator
Jack zhang
Create your flex html help by a few clicks within a few minutes!
Variables in C++ [Article, Visual C++] cplus.about.com 20-Nov-2000
20-Nov-2000
20-Nov-2000
Variables in C++
A tutorial on variables in C++
Cascading Menus
Dino Esposito
Dino demonstrates a context menu shell extension which mimics the
SendTo menu in order to illustrate how to create cascading child menus with
images
Browse IIS Directory Structures [ISAPI, Article, Visual C++] www.codeguru.com 20-Nov-2000 by Christian Haindl
Browse IIS Directory Structures
Christian Haindl
ISAPI Extension that displays (in an HTML Web page) the directory
structure of an IIS Web Server
HexConvertor [COM, Article, Visual C++] www.mindcracker.com 20-Nov-2000 by Mukesh Gupta
HexConvertor
COM object that converts binary/text data to hex format.
Mukesh Gupta
20-Nov-2000
20-Nov-2000
ADONowCombo Control [Control, Combobox, Database, Article, Visual Basic] www.vb2themax.com 18-Nov-2000 by Maurizio Baldi
ADONowCombo Control
18-Nov-2000
18-Nov-2000
Maurizio Baldi
The NowCombo control is a multi-columns Combobox that expands on the
DBCombo control. You can use it to select and copy an item from another table
in the Database. For example, it allows to select an employee choosing it from
an Employees table and to memorize his name in the Products Sales table. The
ComboBox allows searches among the available names. The demo program comes with
a sample MDB database.
Accessing database at runtime using DAO MFC Classes [Article, Visual C++] www.mindcracker.com 18-Nov-2000 by Mahesh Chand
Accessing database at runtime using DAO MFC Classes
This article explains how to get data from an access database at
runtime using MFC DAO classes. Useful for beginners.
Mahesh Chand
18-Nov-2000
18-Nov-2000
Circular Linked List Simulation [Article, Visual C++] www.mindcracker.com 18-Nov-2000 by Bulent Ozkir
Circular Linked List Simulation
Available code shows Circular Linked List Simulation with CList class.
Bulent Ozkir
18-Nov-2000
18-Nov-2000
Accessing database at runtime using ODBC MFC Classes [Article, Visual C++] www.mindcracker.com 18-Nov-2000 by Mahesh Chand
Accessing database at runtime using ODBC MFC Classes
This article explains how to get data from an access database at
runtime using MFC ODBC classes. Useful for beginners.
Mahesh Chand
18-Nov-2000
18-Nov-2000
Application Launcher [Article, Visual C++] www.mindcracker.com 18-Nov-2000 by Mahesh Chand
Application Launcher
An article explains how to launch an application using CreateProcess.
Sample code attached.
Mahesh Chand
18-Nov-2000
18-Nov-2000
Using the CComboBox control [Combobox, List Control, CComboBox Class, Article, Visual C++] www.codeproject.com 17-Nov-2000 by Wolfram Steinke
Using the CComboBox control
Wolfram Steinke
An entry level tutorial on using the CComboBox control
Using the CListBox control [Combobox, List Control, CListBox Class, Article, Visual C++] www.codeproject.com 17-Nov-2000 by Wolfram Steinke
Using the CListBox control
Wolfram Steinke
An entry level tutorial on using the CListBox control
Using the CEdit control [Edit Control, CEdit Class, Article, Visual C++] www.codeproject.com 17-Nov-2000 by Wolfram Steinke
Using the CEdit control
Wolfram Steinke
An entry level tutorial on using the CEdit control
Adding controls to a Dialog [Control, Dialog, Common Control, Article, Visual C++] www.codeproject.com 17-Nov-2000 by Wolfram Steinke
Adding controls to a Dialog
Wolfram Steinke
An entry level tutorial on using one of the Windows Common Controls in
a dialog
Feature Creature [Windows Programming, Article, Visual C++] www.codeguru.com 17-Nov-2000 by Christopher Duncan
Feature Creature
Christopher Duncan
Christopher illustrates some tips and techniques to help you avoid your
application becoming yet another victim of the Feature Creature.
Using WinInet functions Asynchronously [Internet, Network, WinInet, Article, Visual C++] www.codeproject.com 16-Nov-2000 by Benjamin Mayrargue
Using WinInet functions Asynchronously
Benjamin Mayrargue
Using WinInet functions Asynchronously is a nightmare since no Sample
exists. Here's one !
Tutorial 3
Amin Patel
This tutorial has been made to give an introduction to new c++
programmers. Unfortunately their are many great minds out there but they don't
have access to free and quality c++ tutorials. So this is the third lesson
Tutorial 1
Amin Patel
This tutorial has been made to give an introduction to new c++
programmers. Unfortunately their are many great minds out there but they don't
have access to free and quality c++ tutorials. So this is the first lesson.
Tutorial 2
Amin Patel
This tutorial has been made to give an introduction to new c++
programmers. Unfortunately their are many great minds out there but they don't
have access to free and quality c++ tutorials. So this is the second lesson
Grid Control Showing Association [Control, Grid Control, Article, Visual C++] www.codeproject.com 15-Nov-2000 by Daniel Larocque
Grid Control Showing Association
Daniel Larocque
Grid control with vertical column headers.
ATL DISPID Encoding [ATL, Template, Article, Visual C++] www.codeguru.com 15-Nov-2000 by Andrew Whitechapel
ATL DISPID Encoding
Andrew Whitechapel
A simple technique to allow scripting clients to transparently access
multiple interfaces on an object
Hex Converter
Mukesh Gupta
Converts a lump of binary/text data to hex format.
A Thread-safe timed message box [Dialog, Windows Programming, Thread Safe, Article, Visual C++] www.codeproject.com 14-Nov-2000 by Markus Loibl
A Thread-safe timed message box
Markus Loibl
The system Message Box that is closed atuomatically after some time
Set A Fixed Text Size [Tip, Article, Visual C++] www.codeproject.com 14-Nov-2000 by Nongjian Zhou
Set A Fixed Text Size
Nongjian Zhou
A very useful tip. How to keep your fonts a fixed size , so none one
can change it in his browser. No more to worry how to always keep your page the
same look.
Circular File [C++, MFC, Article, Visual C++] www.codeguru.com 14-Nov-2000 by Ibrar Ahmad
Circular File
Ibrar Ahmad
Generic C++ circular file implementation
Deleting Locked Files
Zoltan Csizmadia
Command line utility (with source code) for closing and deleting locked
files
CWaitableTimer [System, Article, Visual C++] www.codeguru.com 14-Nov-2000 by Jay Wheeler
CWaitableTimer
Jay Wheeler
64-bit waitable timer class with 100 nSec resolution
Examine Information on Windows NT System Level Primitives [System, Update, Article, Visual C++] www.codeguru.com 14-Nov-2000 by Zoltan Csizmadia
Examine Information on Windows NT System Level Primitives
Zoltan Csizmadia
Two low level utilities to examine Windows NT information such as
processes, threads, windows, modules and objects.
Help RTF files from Resource RC Files [Help, Article, Visual C++] www.codeguru.com 14-Nov-2000 by William Heitler
Help RTF files from Resource RC Files
William Heitler
Topic generator that read RC files and generates skeleton RTF files for
the menus and dialogs
MyZoomIn (MFC ZoomIn w/Additional Features)
Corey Cason
Great new extensions (absolute x/y coordinates displayed, RGB of pixel
under mouse, etc.) added to ZoomIn application
Association Grid Control [Control, Article, Visual C++] www.codeguru.com 14-Nov-2000 by Daniel Larocque
Association Grid Control
Daniel Larocque
Very cool grid control with vertical labels! Great for representing any
two-dimensional data.
Size and Speed: Top Tricks [Article, Delphi] delphi.about.com 14-Nov-2000
14-Nov-2000
14-Nov-2000
Size and Speed: Top Tricks
Useful tips to make your Delphi programs run faster.
Using Templates for initialization [Tip, Template, Article, Visual C++] www.codeproject.com 13-Nov-2000 by Paul Westcott
Using Templates for initialization
Paul Westcott
Use templates to initialize structures or simple member variables
13-Nov-2000
13-Nov-2000
WinHelp Uncovered
Even if your amazing application is designed to be incredibly
intuitive, there will be times when your users will require a helping hand. In
this article, your Visual Basic Guide explains how to integrate help files with
your VB application.
NowCombo Control [Control, Combobox, Article, Visual Basic] www.vb2themax.com 11-Nov-2000 by Maurizio Baldi
NowCombo Control
11-Nov-2000
11-Nov-2000
Maurizio Baldi
The NowCombo control is a multi-columns Combobox that expands on the
DBCombo control. You can use it to select and copy an item from another table
in the database. For example, it allows to select an employee choosing it from
an Employees table and to memorize his name in the Products Sales table. The
ComboBox allows searches among the available names. The demo program comes with
a sample MDB database.
A generic IDropTarget COM class for dropped text [Clipboard, IDropTarget, COM, Article, Visual C++] www.codeproject.com 10-Nov-2000 by Thomas Blenkers
A generic IDropTarget COM class for dropped text
Thomas Blenkers
Simple step by step article explaining how to implement a drop target
using OLE.
Implementing a Drag Source [Clipboard, Drag Source, Article, Visual C++] www.codeproject.com 10-Nov-2000 by Thomas Blenkers
Implementing a Drag Source
Thomas Blenkers
Simple step by step article explaining how to implement a drag source.
Implementing a Drop Target [Clipboard, Drop Target, Article, Visual C++] www.codeproject.com 10-Nov-2000 by Thomas Blenkers
Implementing a Drop Target
Thomas Blenkers
Simple step by step article explaining how to implement a drop target.
The Drag and Drop interface Sample [Clipboard, Drag and Drop, Article, Visual C++] www.codeproject.com 10-Nov-2000 by Thomas Blenkers
The Drag and Drop interface Sample
Thomas Blenkers
A series of articles that resulted from experimenting with adding Drag
and Drop features to my existing application.
Create a Modeless Dialog box as child window [Dialog, Windows Programming, Modeless Dialog, Article, Visual C++] www.codeproject.com 10-Nov-2000 by Thomas Blenkers
Create a Modeless Dialog box as child window
Thomas Blenkers
Simple step by step article explaining how to create a modeless dialog
box as child window.
Create a Modeless Dialog box as sibling of the app's main window [Dialog, Windows Programming, Modeless Dialog, Article, Visual C++] www.codeproject.com 10-Nov-2000 by Thomas Blenkers
Create a Modeless Dialog box as sibling of the app's main window
Thomas Blenkers
Simple step by step article explaining how to create a modeless dialog
box as sibling of the app's main window.
Office 2000 style File Dialogs for Win 95/98/NT/Me [Dialog, Windows Programming, File Dialog, Office, File, Article, Visual C++] www.codeproject.com 10-Nov-2000 by David Wulff
Office 2000 style File Dialogs for Win 95/98/NT/Me
David Wulff
Ever wanted to use the new Office 2000 file dialogs on Win 95/98/NT/Me,
including the File previewing? Well now you can.
VC6 flat toolbar support [Toolbar, Docking Window, MFC, Article, Visual C++] www.codeproject.com 10-Nov-2000 by Thomas Blenkers
VC6 flat toolbar support
Thomas Blenkers
When you are porting your MFC application to MSVC 6.0 you'd probably
like to use the build-in support for the flat toolbar and kick that third-party
solution out of you project to reduce size.
GraphFX: A graph framework [Document/View, Article, Visual C++] www.codeproject.com 10-Nov-2000 by Norm Almond
GraphFX: A graph framework
Norm Almond
A Doc/View framework for displaying graphical data
Serializing Data to / from an ASCII-File [Document/View, Serializing, File, Drag and Drop, Article, Visual C++] www.codeproject.com 10-Nov-2000 by Thomas Blenkers
Serializing Data to / from an ASCII-File
Thomas Blenkers
A series of articles that resulted from experimenting with adding Drag
and Drop features to my existing application.
Colorz: RGB Assistant: Aids developers with color intensities (using: Visual C++ 6.0) [Font, GDI, GUI, Color, RGB, Article, Visual C++] www.codeproject.com 10-Nov-2000 by Jeremy Falcon
Colorz
The RGB Assistant: Aids developers with color intensities
Jeremy Falcon
Create, Position, Show and Hide Controls at Runtime using the RollOut Window [Dialog, Windows Programming, Control, Article, Visual C++] www.codeproject.com 09-Nov-2000 by Masoud Samimi
Create, Position, Show and Hide Controls at Runtime using the RollOut
Window
Masoud Samimi
A neat way to show/hide groups of related controls
Adding Behavior, Resizing Dialogs and Property Pages [Windows Programming, Article, Visual C++] www.codeguru.com 09-Nov-2000 by Roger Onslow
Adding Behavior, Resizing Dialogs and Property Pages
Roger Onslow
Roger adds resizing to dialogs and property pages, using the techniques
discussed in his previous article. Not only is this an example of these
techniques but it is a useful class as well.
List Control with OLE Drag and Drop [Listview, Article, Visual C++] www.codeguru.com 09-Nov-2000 by Jean Claude Dauphin
List Control with OLE Drag and Drop
Jean Claude Dauphin
This extended list control allow OLE drag and drop between multiple
list controls
Determines the number of words in a text string (using: Visual Basic 6.0) [Replace Function, Solution, Split Function, String, Visual Basic] www.pinnaclepublishing.com 08-Nov-2000 by Rick Rothstein
The routine determines the number of words in a text
string (the text string could of course be loaded in from
a text file, so think of it as the core code for a text
file word counter). Is it perfect? No, I'll make no such
claim. As a matter of fact, I haven't even tested it
extensively (read that as "not at all"). Rather, the
person whose question I answered wrote back to tell me it
matched the word count that Microsoft Word gave for six
of his own text files... exactly. But I repeat, it hasn't
been tested, so consider it a core piece of code that you
can improve upon as needed.
Function WordCount(ByVal TextString As String) As Long
'Collapse multiple newlines down into single newlines
Do While TextString Like "*" & vbNewLine & vbNewLine _
& "*"
TextString = Replace$(TextString, vbNewLine & _
vbNewLine, vbNewLine)
Loop
'Assume a hyphen at end of line is signals a hyphenated
'word and combine the two parts back into a whole word
TextString = Trim$(Replace$(TextString, "-" & _
vbNewLine, ""))
'Replace newline sequences with a single blank space
TextString = Trim$(Replace$(TextString, vbNewLine, _
" "))
'Collapse multiple spaces down into single spaces
Do While TextString Like "* *"
TextString = Replace$(TextString, " ", " ")
Loop
'Split the string at the blank spaces and count them
WordCount = 1 + UBound(Split(TextString, " "))
End Function
Make Form Views Fit Their Forms (using: Visual C++ 6.0) [CFormView Class, MFC, OnInitialUpdate(), Visual C++, Tip] www.pinnaclepublishing.com 08-Nov-2000
Make Form Views Fit Their Forms!
I have a CFormView, and I display it in a window,
either in my SDI or MDI program, people ask. How do I
resize the window that the form is in so that the size of
the window matches (or at least resembles) the size of
the dialog template?
The answer lies in executing some code in the
OnInitialUpdate() override. Follow these steps to
override your form view's OnInitialUpdate() function, if
there isn't one there already:
1. Open ClassWizard and select the class for your form
view.
2. Select OnInitialUpdate in the Messages List, and
double-click it. Then, click the function when it's added
to the Member Functions list, and then click Edit Code.
3. You're ready to rumba! Once you've added an
OnInitialUpdate() override to your code and jumped to
where the function is located, add the code marked with
an '>' on the left below:
void CMyView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
> GetParentFrame()->RecalcLayout();
> ResizeParentToFit(FALSE);
}
And voila! Mission accomplished. This should work for
views in both SDI and MDI programs.
How do you change a window's styles at runtime? (using: Visual C++ 6.0) [CWindow::ModifyStyleEx(), CWindow::ModifyStyle(), MFC, ModifyStyleEx(), ModifyStyle(), SetWindowPos(), Style, Tip, Visual C++] www.pinnaclepublishing.com 08-Nov-2000
How do you change a window's styles at runtime?
The ModifyStyle() and ModifyStyleEx() functions are great
for hot-swapping window styles on the fly, should you
need to.
The first argument is the style(s) you want to remove
from the window, and the second is the style(s) you want
to add to the window. If an argument doesn't apply, pass
0. The third argument is a code to be passed to
SetWindowPos(). I usually pass SWP_DRAWFRAME in this
argument, which refreshes the window's appearance.
ModifyStyle() changes normal styles, and ModifyStyleEx()
changes extended styles. They're available either as CWnd
member functions or as API functions---the Windows API
versions take an HWND as the first argument, and the
other arguments are the same as their CWnd cousins.
The Ultimate (DLL) Header File [DLL, File, Article, Visual C++] www.codeproject.com 08-Nov-2000 by Joseph M Newcomer
The Ultimate (DLL) Header File
Joseph M Newcomer
Here is the ultimate header file that makes multiple declaration
compiler errors a thing of the past.
FavOrg .... Helps clean Up Your Favorites [EXE, Favorites Menu, Internet Explorer, Visual C++] PC Magazine 07-Nov-2000, vol. 19, no. 19 by Patrick Philippot
FavOrg scans the Web sites in your Favorites list for favicons--custom icons
provided by the Web site. The icons are displayed on the Favorites bar, the
Favorites menu, and the Address bar. Custom icons make the Favorites list
easier to scan, letting you locate a given shortcut faster. Microsoft added the
custom icon feature to IE5; FavOrg brings this functionality to IE4 as well.
Favicons are usually lost when you delete your Temporary Internet Files, but
FavOrg preserves them. The program also lets you associate any icon you choose
with a given shortcut, even if no favicon is provided. Since FavOrg must check
the validity of an Internet shortcut before attempting to download the favicon,
it automatically flags dead links as it goes through your Favorites list. If
you like, it can update redirected links or reset dead links to the site’s
root. FavOrg was written by Patrick Phillipot, and first appeared in PC
Magazine November 7, 2000 (v19n19). Source code is included.
Automatic Wallpaper Changer
Over the last few weeks I've been examining a few handy API functions designed
to retrieve technical information about the underlying operating system and
hardware. This week, let's take a break from all the boring techy stuff to
create a mini application designed to change the desktop wallpaper
automatically every time Windows is started.
Firstly, let's examine the API call that allows you to change the wallpaper
with one line of code!
SystemParametersInfo
To change the desktop wallpaper, we're going to be harnessing the
SystemParametersInfo function that's buried within the User32 DLL. Add the
following code to your form's declarations section:
Private Declare Function SystemParametersInfo _
Lib "user32" Alias "SystemParametersInfoA" (ByVal _
uAction As Long, ByVal uParam As Long, ByRef lpvParam _
As Any, ByVal fuWinIni As Long) As Long
Now, add the following code to the Click event of a command button:
Call SystemParametersInfo(ByVal 20, vbNull, ByVal _
"c:\windows\clouds.bmp", &H1)
Run the program, and click the button. Your desktop wallpaper should change to
the standard "clouds.bmp" image that's included in the Windows distribution.
Next, let's take a look at the code required to select a random image from the
Windows directory to assign to the desktop every time the program is launched.
FileList
In order for the application to select an image from the Windows directory for
display on the desktop, add a FileListBox control to your form. Change the name
of this control to "filWallpaper", and add the following code to the Form_Load
event:
Dim intRand As Integer
filWallpaper.Path = "c:\windows\"
filWallpaper.Pattern = "*.bmp"
intRand = Int(filWallpaper.ListCount * Rnd) - 1
Call SystemParametersInfo(ByVal 20, vbNull, ByVal _
"c:\windows\" & filWallpaper.List(intRand), &H1)
Let's take a quick look at this code... the first couple of filWallpaper lines
sets the FileListBox control up to contain all bmp ... (cont.)
System Tray Icons: Minimize Your Application To Tray [System, System Tray, Icon, Taskbar, Article, Visual C++] www.codeproject.com 07-Nov-2000 by Daniel Zilcsak
System Tray Icons: Minimize Your Application To Tray
Daniel Zilcsak
Minimize your application to system tray instead of normal Taskbar
Zip and Unzip, the MFC Way [C++, MFC, Article, Visual C++] www.codeguru.com 07-Nov-2000 by Tadeusz Dracz
Zip and Unzip, the MFC Way
Tadeusz Dracz
MFC-based library that enables the creation, modification and
extraction of PKZIP and WinZip archives
Locking the Keyboard and Mouse at Scheduled Times [System, Article, Visual C++] www.codeguru.com 07-Nov-2000 by Arthur Boynagryan
Locking the Keyboard and Mouse at Scheduled Times
Arthur Boynagryan
Code that enables you to schedule down-time for both keyboard and mouse
input
File Searcher Edit Control with Browse Button [File, Folder, Article, Visual C++] www.codeguru.com 07-Nov-2000 by Pete Arends
File Searcher Edit Control with Browse Button
Pete Arends
Single control that contains both an edit control to type in a file
name and an "ellipses" button to browse
CommandUI Message Handling with Popup Menus [Menu, Article, Visual C++] www.codeguru.com 07-Nov-2000 by Santhosh Cheeran
CommandUI Message Handling with Popup Menus
Santhosh Cheeran
Illustrates how to overcome message handling Issues with popup menus
that are owned by a non-CFrameWnd derived classes
Wrapper for AVICap Window [Multimedia, Update, Article, Visual C++] www.codeguru.com 07-Nov-2000 by Vadim Gorbatenko
Wrapper for AVICap Window
Vadim Gorbatenko
Wrapper and extension for AVICap windows which enables it to work with
real-time videoprocessing applications
Class Wrapper for Video Compression Manager (VCM) [Multimedia, Article, Visual C++] www.codeguru.com 07-Nov-2000 by Vadim Gorbatenko
Class Wrapper for Video Compression Manager (VCM)
Vadim Gorbatenko
Wraps the library (VCM) that provides access to the interface used by
installable compressors to handle real-time data
Listening to the Clipboard [Article, Delphi] delphi.about.com 07-Nov-2000
07-Nov-2000
07-Nov-2000
Listening to the Clipboard
Extending the clipboard's flexibility and functionality from Delphi.
Taking control over the Clipboard with custom formats. Coding Delphi to receive
clipboard change notifications.
Perl Script for uploading modified Files to a FTP-Server [Perl, File, FTP, Access, Database, Article, Visual C++] www.codeproject.com 06-Nov-2000 by Uwe Keim
Perl Script for uploading modified Files to a FTP-Server
Uwe Keim
Simple Perl Script that uses a local MS-Access Database to store
modification dates of files and uploads modified files to a FTP-Server
06-Nov-2000
06-Nov-2000
Tech Workshop - Automatic Wallpaper Changer
This week your Visual Basic Guide takes a break from all things boring
and techy to create a fun utility that will change your desktop wallpaper
automatically every time Windows is started.
Overview of the BCL Collection Types [.NET, Article, Visual C++] www.codeguru.com 06-Nov-2000 by Jeffrey Richter
Overview of the BCL Collection Types
Jeffrey Richter
Jeffrey illustrates how the .NET Framework builds on the concepts
presented last month to offer a consistent programming paradigm for working
with collections, lists, and dictionaries.
Using MS Office in an MFC Application [COM, DCOM, Office, MFC, Office, ActiveX Document, Article, Visual C++] www.codeproject.com 05-Nov-2000 by Igor Tkachev
Using MS Office in an MFC Application
Igor Tkachev
Integrating MS Office in your MFC Application using ActiveX Document
mode.
EZOptionsDlg: Netscape Preferences like dialog (using: Visual C++ 6.0) [Dialog, Windows Programming, Article, Visual C++] www.codeproject.com 05-Nov-2000
EZOptionsDlg
Netscape Preferences like dialog
A Modified Property Sheet with the Tree Control replacing the Tabs (using: Visual C++ 6.0) [Dialog, Windows Programming, Property Sheet, Control, Article, Visual C++] www.codeproject.com 05-Nov-2000 by V Lakshmi Narasimhan
V.Lakshmi Narasimhan
A Modified Property Sheet with the Tree Control replacing the Tabs
Class to check Strings for invalid characters [String, MFC, Article, Visual C++] www.codeproject.com 05-Nov-2000 by Thomas Hauth
Class to check Strings for invalid characters
Thomas Hauth
An MFC Class which offers you the abbility to check Strings for invalid
characters
A Validating Edit Control [Edit Control, Validation, Article, Visual C++] www.codeproject.com 04-Nov-2000 by Joseph M Newcomer
A Validating Edit Control
Joseph M Newcomer
A very informative, user-oriented Validation edit control
Using the CStatic control [Static Control, CStatic Class, Article, Visual C++] www.codeproject.com 04-Nov-2000 by Wolfram Steinke
Using the CStatic control
Wolfram Steinke
An entry level tutorial on using the CStatic control
LogNTEvent Class [Class, NT Event Log, Article, Visual Basic] www.vb2themax.com 04-Nov-2000 by Edward Mason
LogNTEvent Class
4-Nov-2000
4-Nov-2000
Edward Mason
LogNTEvent is a class that lets a VB app write directly to the NT Event
Log. The zip file includes a demo project and a sample DLL that contains the
messages to be logged.
basRichTextFunctions .... Routine to calculate the word that the mouse is hovering over in a rich text box control [RichTextBox Control, Visual Basic, VB Code Module] www.codeoftheweek.com 04-Nov-2000, no. 132
Requirements
Visual Basic 4.0 32-bit or higher.
Microsoft Rich Text Box Control.
This issue introduces a routine to calculate the word that the
mouse is hovering over in a rich text box control.
If you have any questions about using this module, let us know at
questions@codeoftheweek.com
basRichTextFunctions
This module is useful for a variety of reasons. One great use is
to allow a right-click to perform some particular action on that
particular word (such as a spell check or deletion). It can also
be used to change the formatting of the highlighted word.
There is also a bonus routine in this issue which determines if a
character is AlphaNumeric. Our definition of alphanumeric is any
letter from A to Z, any number from 0 to 9 or an underscore.
Functions
Public Function IsAlphaNumeric(sChar As String) As Boolean
Returns True if sChar is alpha numeric. Our definition is A-Z,
0-9 and _ (underscore).
Public Function MouseOverWord(oRichTextBox As RichTextBox, X As Single, Y As
Single) As String
This routine does all the work. oRichTextBox is the rich text
box control that is on the form. X and Y are the current mouse
positions (such as what is returned in the MouseMove event of the
RichTextBox. The MouseOverWord routine will return the
alphanumeric word that the mouse is currently located over.
If there is no word the mouse is over it will return a blank
string.
Sample Usage
This sample shows how to use the MouseOverWord routine. It
assumes you have a form with a RichTextBox control on it.
Private Sub RTControl_MouseMove(Button As Integer, Shift As Integer, X As
Single, Y As Single)
Dim sWord As String
sWord = MouseOverWord(RTControl, X, Y)
' sWord will contain the "highlighted" word.
End Sub
Dynamic toolbar has fixed size when docked [Toolbar, Docking Window, Article, Visual C++] www.codeproject.com 03-Nov-2000 by Darren S Gonzales
Dynamic toolbar has fixed size when docked
Darren S Gonzales
How to ensure that your docking toolbars are of a particular size when
docked
Project Line Counter Add-In [Macro, Add-in, Article, Visual C++] www.codeproject.com 03-Nov-2000 by Oz Solomonovich
Project Line Counter Add-In
Oz Solomonovich
Get statistics about your source code with a click of a button
Issues with popup menu owned by a non CFrameWnd derived class [Menu, CFrameWnd Class, UpdateCommandUI, Article, Visual C++] www.codeproject.com 03-Nov-2000 by Santhosh Cheeran
Issues with popup menu owned by a non CFrameWnd derived class
Santhosh Cheeran
How to handle UpdateCommandUI messages for menus not owned by CFrameWnd
windows
SoftwarePROTECTOR protects your VC++ Apps from Piracy [Tool, License, Control, Article, Visual C++] www.codeproject.com 03-Nov-2000 by Rolando E Cruz-Marshall
SoftwarePROTECTOR protects your VC++ Apps from Piracy
Rolando E Cruz-Marshall
Implement software License Control within your VC++ apps
Farther, Faster, Higher [Windows Programming, Article, Visual C++] www.codeguru.com 03-Nov-2000 by Christopher Duncan
Farther, Faster, Higher
Christopher Duncan
Great story that for all of you reaching for the brass ring and trying
to push technology to its limits in the face of petty politics and shortsighted
people.
Programmatically Retrieves the Members of a DLL Class (using: Visual Basic 6.0) [TLBINF32.DLL, Type Library, Visual Basic, Solution] www.pinnaclepublishing.com 02-Nov-2000
Programmatically Retrieves the Members of a DLL Class
SUMMARY
This article shows you how to programmatically retrieve the class names and
members of a dll or ActiveX file that contains a type library. You can get this
information by using the Object Browser in Visual Basic or you can
programmatically retrieve this information. The sample program uses an
unsupported file Tlbinf32.dll to retrieve some of the type library information,
but is not a complete substitute for the Object Browser.
NOTE: The file Tlbinf32.dll is not supported by Microsoft Technical Support
either electronically or via telephone. This file is subject to change without
notice.
A Visual Basic project that demonstrates how to use this file to get the class
names and members from a dll or ActiveX controls is available for download from
the Microsoft Download Center: The following file is available for download
from the Microsoft Download Center. Click the file name below to download the
file:
Clsnmmbr.exe
For additional information about how to download Microsoft Support files, click
the article number below to view the article in the Microsoft Knowledge Base:
Q119591 How to Obtain Microsoft Support Files from Online Services
Microsoft used the most current virus detection software available on the date
of posting to scan this file for viruses. Once posted, the file is housed on
secure servers that prevent any unauthorized changes to the file.
MORE INFORMATION
The Object Browser in Visual Basic shows you the collections and member names
of a dll class. You may want to develop an add-in for use in other development
environments that has the same functionality as the object browser and to add
some automation capabilities. This sample shows you how to retrieve this
information programmatically by using the file tlbinf32.dll. This file is
stored in the OS\System directory of your installation disk and is copied to
your computer's system folder during the Visual Basic installatio ... (cont.)
Class to Auto-Position Controls on Window Resize [Dialog, Article, Visual C++] www.codeguru.com 02-Nov-2000 by Paul Wendt
Class to Auto-Position Controls on Window Resize
Paul Wendt
Add auto-sizing to your dialogs (and views) in four steps
std::ostream Implementation for Text Output with CWnd-derived Controls [C++, MFC, Article, Visual C++] www.codeguru.com 02-Nov-2000 by G Makulik
std::ostream Implementation for Text Output with CWnd-derived Controls
G Makulik
Enables you to do text output to MFC CWnd controls in a portable
fashion!
Extracting Data from X-Y Plots [X-Y Plot, Article, Visual C++] C++ Users Journal 01-Nov-2000, vol. 18, no. 11 by Rainer Thierauf
Extracting Data from X-Y Plots
Rainer Thierauf
Scanners now input text with reasonable accuracy - why not graphical
data as well?
Creating Truly Maintainable Class Factories [Class Factory, Article, Visual C++] C++ Users Journal 01-Nov-2000, vol. 18, no. 11 by Early Ehlinger
Creating Truly Maintainable Class Factories
Early Ehlinger
It is usually best to recycle code already written, particularly if
it’s easy to get wrong.
A Portable ‘typeof’ Operator [typeof, Template, Article, Visual C++] C++ Users Journal 01-Nov-2000, vol. 18, no. 11 by Bill Gibbons
A Portable ‘typeof’ Operator
Bill Gibbons
Here’s a not-so-stupid Template trick that mostly meets the need for a
typeof operator.
Secure Web-Based Licensing [Web, Licensing, Article, Visual C++] C++ Users Journal 01-Nov-2000, vol. 18, no. 11 by Mike Scanlon
Secure Web-Based Licensing
Mike Scanlon
If you want to protect your software from misuse, you have to outsmart
potential thieves and still not annoy your legitimate customers. This is not as
easy as you might at first think.
Creating an Index Table in STL, Take 2 [Index Table, STL, Article, Visual C++] C++ Users Journal 01-Nov-2000, vol. 18, no. 11 by Sol Foster
Creating an Index Table in STL, Take 2
Sol Foster
Pointers seldom sort the way you intend, but STL offers a handy way to
say what you really mean.
IOStreams and Stdio [IOStream, Stdio, C++, I/O, Article, Visual C++] C++ Users Journal 01-Nov-2000, vol. 18, no. 11 by Matt Austern
Matt Austern
IOStreams and Stdio
You can mix C and C++ I/O operations, but you have to be careful if you
don’t want garbled streams.
Basic Stream I/O [Stream I/O, Java, Article, Visual C++] C++ Users Journal 01-Nov-2000, vol. 18, no. 11 by Chuck Allison
Chuck Allison
Basic Stream I/O
Java supports input/output of streams with a gazillion combinations of
options.
Constructor Failures (or, The Objects That Never Were) [Constructor, Object, Exception, Article, Visual C++] C++ Users Journal 01-Nov-2000, vol. 18, no. 11 by Herb Sutter
Herb Sutter
Constructor Failures (or, The Objects That Never Were)
Exceptions thrown during object construction must be handled with
extreme care.
Multiple domains on a single IP [Active Server Pages, ASP, Article, Visual C++] www.codeproject.com 01-Nov-2000 by Alex Marbus
Multiple domains on a single IP
Alex Marbus
How to set multiple domains one a single IP-address with ASP.
Component Best Practices: Advanced Properties and Custom Streaming [Component, Article, Delphi] Delphi Developer 01-Nov-2000, vol. 6, no. 11 by Peter Morris
Component Best Practices: Advanced Properties and Custom Streaming
Peter Morris
Quite often it's necessary to write components that perform more
advanced functions. These components often need to either reference other
components, have custom property data formats, or have a property that owns a
list of values rather than a single value. In this article, Peter Morris will
guide you through various examples that demonstrate these techniques.
Enhancing the To-Do Item List [Wizard, Article, Delphi] Delphi Developer 01-Nov-2000, vol. 6, no. 11 by Bob Swart
Enhancing the To-Do Item List
Bob Swart
In this article, Bob Swart examines To-Do items and notices a minor
problem with them. Of course, he solves the problem by implementing his own
version of the Add To-Do Item Wizard.
Classic Algorithms and Data Structures: Sorting Algorithms [Algorithm, Data Structure, Sorting, Article, Delphi] Delphi Developer 01-Nov-2000, vol. 6, no. 11 by Fernando Vicaria
Classic Algorithms and Data Structures: Sorting Algorithms
Fernando Vicaria
Fernando Vicaria introduces a new series on practical uses of
algorithms and data structures by discussing sorting algorithms.
Use a Simple Component to Make Database Connections Easier [Component, Database, Connection, Article, Delphi] Delphi Developer 01-Nov-2000, vol. 6, no. 11 by Mark Meyer
Use a Simple Component to Make Database Connections Easier
Mark Meyer
One of the great things about Delphi is that it allows you to quickly
create utility components that save time and cut down on errors. Mark Meyer
presents a component that allows you to connect any number of tables and
queries on a form with just one Connect method.
Persistent Field Name Troubles [Persistent, Article, Delphi] Delphi Developer 01-Nov-2000, vol. 6, no. 11 by Goran Milenkovic
Persistent Field Name Troubles
Goran Milenkovic
Using the Pocket Outlook Object Model [Pocket Outlook Object Model, Windows CE, Outlook, POOM, Article, Visual C++] Windows Developer's Journal 01-Nov-2000, vol. 11, no. 11 by Tapani J Otala
Using the Pocket Outlook Object Model
Tapani J Otala
If you want to alter or integrate with Microsoft’s Windows CE version
of Outlook, you need to dig in to the Pocket Outlook Object Model (POOM) SDK.
This article demonstrates just such an expedition, by constructing a tiny
utility that lets you conveniently move appointments from the current city to
another city in the Pocket Outlook Calendar.
Easier Popup Menus in VB [Pop-up Menu, Visual Basic, Article, Visual C++] Windows Developer's Journal 01-Nov-2000, vol. 11, no. 11 by William R Epp
Easier Popup Menus in VB
William R Epp
The visual method of creating and handling popup menus in VB is a lot
of work if you just have a menu with a few simple selections on it. Here’s a
component that lets you just type a few lines of code to define, invoke, and
handle a popup menu.
A Multi-Page, Single-Document UI for MFC [MFC, Article, Visual C++] Windows Developer's Journal 01-Nov-2000, vol. 11, no. 11 by Zuoliu Ding
A Multi-Page, Single-Document UI for MFC
Zuoliu Ding
Excel is part of Microsoft’s move back to SDI (Single Document
Interface). However, Excel still lets you open more than one file in more than
one child window, so it’s really sort of an amalgam. This article provides a
framework you can use to build Excel-style, multiple-page, single document user
interfaces in MFC.
User Interface Programming: Autosuggest and Autocomplete [Auto Suggest, Autocompletion, SHELL32.DLL, Article, Visual C++] Windows Developer's Journal 01-Nov-2000, vol. 11, no. 11 by Petter Hesselberg
User Interface Programming: Autosuggest and Autocomplete
Petter Hesselberg
The latest SHELL32.DLL gives you some new features for saving users
some typing: autosuggest and autocomplete features. This column demonstrates
both features, pointing up some warts in the documentation and implementation
along the way.
Launching Explorer from Visual C++ [Explorer, IDE, Article, Visual C++] Windows Developer's Journal 01-Nov-2000, vol. 11, no. 11 by Bret Pehrson
Launching Explorer from Visual C++
Bret Pehrson
When you spawn Explorer from the IDE, why not have it know what
directory and file you’re currently using?
IDC_STATIC Problems in Dialog Resources [Dialog Resource, GetDlgItemID(), Article, Visual C++] Windows Developer's Journal 01-Nov-2000, vol. 11, no. 11 by Brad Litterell
IDC_STATIC Problems in Dialog Resources
Brad Litterell
-1 may equal 65535 if you’re calling GetDlgItemID().
VB Object Initialization Error Handling
Darin Higgins
Microsoft’s recommendation for trapping errors during class
initialization doesn’t quite cut it.
Optimizing DLLs with DisableThreadLibraryCalls() [Optimizing, DLL, DisableThreadLibraryCalls(), DllMain(), Article, Visual C++] Windows Developer's Journal 01-Nov-2000, vol. 11, no. 11 by Paula Tomlinson
Optimizing DLLs with DisableThreadLibraryCalls()
Paula Tomlinson
A cheap potential speedup for DLLs is to turn off some DllMain()
notifications.
Validating C++ Objects [C++, Object, Article, Visual C++] Windows Developer's Journal 01-Nov-2000, vol. 11, no. 11 by Steve Hanov
Validating C++ Objects
Steve Hanov
A little C++ wrapper can help catch references to deleted objects.
Understanding NT: Connect to a Share [Share, Windows NT, Article, Visual C++] Windows Developer's Journal 01-Nov-2000, vol. 11, no. 11 by Paula Tomlinson
Understanding NT: Connect to a Share
Paula Tomlinson
This month’s column revisits the topic of figuring out that a path is
inaccessible because the user isn’t connected to the right share, and then
giving the user a chance to connect to that share. The additional case that
needs handling is caused by the subst command.
A Practical Guide to ADO Extensions: Part II [ADO, OLAP, Data Warehousing, Multidimensional Data Storage, Article, Delphi] Delphi Informant 01-Nov-2000, vol. 6, no. 11 by Alex Fedorov, Natalia Elmanova
A Practical Guide to ADO Extensions: Part II
Alex Fedorov and Natalia Elmanova
Mr Fedorov and Ms Elmanova discuss OLAP, Data Warehousing, and
Multidimensional Data Storage, then demonstrate ADO Multidimensional
programming with Delphi.
Children of Threadmare [Thread, Multi-Threaded, Article, Delphi] Delphi Informant 01-Nov-2000, vol. 6, no. 11 by Nikolai Sklobovsky
Children of Threadmare
Nikolai Sklobovsky
Having demystified Multi-Threading at the abstract level, Mr Sklobovsky
shares a multi-purpose Progress dialog box component, and some other concrete
tools and techniques.
Moving Data via COM [COM, Article, Delphi] Delphi Informant 01-Nov-2000, vol. 6, no. 11 by Bill Todd
Moving Data via COM
Bill Todd
What do you do when you need to move data between a COM server and a
COM client? Mr Todd demonstrates how to simply stuff it in a variant, and pass
it as a parameter.
Polymorphic Programming [Polymorphic, VCL, Article, Delphi] Delphi Informant 01-Nov-2000, vol. 6, no. 11 by Jeremy Merrill
Polymorphic Programming
Jeremy Merrill
Unfortunately, we often run into barriers that prevent us from using
common forms of polymorphism. Mr Merrill shows us three ways to break the VCL's
"protected barrier."
XSL Transformations [XSL, XSLT, HTML, Article, Delphi] Delphi Informant 01-Nov-2000, vol. 6, no. 11 by Keith Wood
XSL Transformations
Keith Wood
Mr Wood introduces the XSLT language, its syntax, and semantics, then
shares an example program that combines an XML document and XSL stylesheet to
produce HTML.
Advanced COM: Understanding COM Persistence [COM, Persistence, Article, Visual C++] Visual C++ Developers Journal 01-Nov-2000, vol. 3, no. 10 by George Shepherd
Advanced COM: Understanding COM Persistence
George Shepherd
Like any other pieces of software, COM objects need to persist their
states to a persistent medium from time to time. Here, you'll look closely at
how COM handles object persistence and how to make COM objects save their state
out to client-provided media.
Use AutoCompletion In MFC Apps [AutoCompletion, MFC, Article, Visual C++] Visual C++ Developers Journal 01-Nov-2000, vol. 3, no. 10 by Cassio Goldschmidt
Use AutoCompletion In MFC Apps
Cassio Goldschmidt
Wondering how to make controls in your apps guess what the user is
trying to type? Use CAutoComplete to enable AutoCompletion in your applications
with as little as three lines of code.
Debugging With ATL 7.0 [Debugging, ATL, Article, Visual C++] Visual C++ Developers Journal 01-Nov-2000, vol. 3, no. 10 by Richard Grimes
Debugging With ATL 7.0
Richard Grimes
ATL 7.0 is a big improvement over ATL 3.0, especially in its debugging
facilities. Learn the ins and outs of handling tracing and asserts.
Build Web Commerce Apps With C# [Web, C#, .NET, Article, Visual C++] Visual C++ Developers Journal 01-Nov-2000, vol. 3, no. 10 by Bob Lair, Jason Lefebvre
Build Web Commerce Apps With C#
Bob Lair and Jason Lefebvre
Use C# and other .NET technologies to develop a commerce Web app from
the ground up. In part one of this three-part series, you learn to plan the
application design and database, create the business logic and data access
component, and create Web forms.
Develop a Client/Server Application on Windows and Linux [Client/Server, Linux, TCP/IP, Article, Visual C++] Visual C++ Developers Journal 01-Nov-2000, vol. 3, no. 10 by Jeff Looman
Develop a Client/Server Application on Windows and Linux
Jeff Looman
Construct a single-port, TCP/IP client/server app, and uncover and
avoid several pitfalls that lurk between your application and the wire used to
transfer your data.
Utilize ATL's Flexibility [ATL, COM, WTL, MFC, Article, Visual C++] Visual C++ Developers Journal 01-Nov-2000, vol. 3, no. 10 by Bill Wagner
Utilize ATL's Flexibility
Bill Wagner
Learn how to create a COM component with ATL and a Windows application
using WTL. This will help you look at your projects and decide what will best
suit your needs: ATL and WTL, or just plain ol' MFC.
Generation 1.X: A New Era for COM+ [COM+, COM, Article, Visual C++] Visual C++ Developers Journal 01-Nov-2000, vol. 3, no. 10 by Alan Gordon
Generation 1.X: A New Era for COM+
Alan Gordon
Individually, each new feature is insignificant, but taken together,
they will go a long way toward making COM+ 1.X a better - and easier-to-use -
platform to build enterprise-class distributed applications. Learn what this
new version of COM will mean to your programming efforts.
Middle Tier: Get Into a Log Rhythm [Log, COM+, Method Call, Event, Error, Article, Visual C++] Visual C++ Developers Journal 01-Nov-2000, vol. 3, no. 10 by Juval Lowy
Middle Tier: Get Into a Log Rhythm
Juval Lowy
The COM+ logbook is a simple - but powerful - utility that enables you
to log Method Calls, Events, Errors, and various COM+ information. It's your
product flight recorder, and in a distributed COM+ environment, it's worth its
weight in gold.
Get Your Designs in Gear for VB.NET [VB.NET, .NET, Article, Visual Basic] Visual Basic Programmer's Journal 01-Nov-2000, vol. 10, no. 13 by Paul R Reed Jr
Get Your Designs in Gear for VB.NET
Paul R Reed Jr
Microsoft will deliver full-featured, object-oriented capabilities with
the release of VB.NET - finally! Producing sound design strategies will be
crucial to you when taking advantage of all of VB.NET's features, including
inheritance.
Create a Scheduling Component [Scheduling, Component, Article, Visual Basic] Visual Basic Programmer's Journal 01-Nov-2000, vol. 10, no. 13 by Jonny Anderson
Create a Scheduling Component
Jonny Anderson
Keeping to project schedules just got easier. Apply your own critical
path analysis algorithm to schedules that you can optimize to fit your needs.
Manipulate CAB Files Programmatically [CAB, Article, Visual Basic] Visual Basic Programmer's Journal 01-Nov-2000, vol. 10, no. 13 by Ken Getz
Manipulate CAB Files Programmatically
Ken Getz
Use the Windows API to create and work with CAB files from inside your
VB applications.
Create Web Reports With VB [Web, Report, HTML, Article, Visual Basic] Visual Basic Programmer's Journal 01-Nov-2000, vol. 10, no. 13 by Stan Schultes
Create Web Reports With VB
Stan Schultes
VB makes a great vehicle for creating and publishing formatted HTML
reports. Learn how to build data query and HTML formatting classes you can
reuse in your own reporting applications.
Find Data Faster [Article, Visual Basic] Visual Basic Programmer's Journal 01-Nov-2000, vol. 10, no. 13 by Ron Schwarz
Find Data Faster
Ron Schwarz
Perform binary searches with greater speed when your data is already
sorted.
Prototype Components in ASP [Component, ASP, Article, Visual Basic] Visual Basic Programmer's Journal 01-Nov-2000, vol. 10, no. 13 by Jonathan Goodyear
Prototype Components in ASP
Jonathan Goodyear
ASP component prototyping allows you to get a Web application up and
running quickly using pure ASP, while not sacrificing your app's future
scalability.
Build Components for the Web [Component, Web, Article, Visual Basic] Visual Basic Programmer's Journal 01-Nov-2000, vol. 10, no. 13 by Deborah Kurata
Build Components for the Web
Deborah Kurata
Learn to improve performance and leverage reusability by building
components with VB that your Web applications can use.
Toggle the Titlebar (and Other Form Tricks) [Titlebar, Article, Visual Basic] Visual Basic Programmer's Journal 01-Nov-2000, vol. 10, no. 13 by Karl E Peterson
Toggle the Titlebar (and Other Form Tricks)
Karl E Peterson
Learn how to give users the choice of captionless and normal forms, and
related form options.
Use New SQL Server Datatypes [SQL Server, Datatype, Article, Visual Basic] Visual Basic Programmer's Journal 01-Nov-2000, vol. 10, no. 13 by Dianne Siebold
Use New SQL Server Datatypes
Dianne Siebold
Try out SQL Server 2000's new bigint, sql_variant, and table datatypes
to transcend some of SQL Server's limitations.
Make Your Apps Scriptable [Microsoft Script Control, Article, Visual Basic] Visual Basic Programmer's Journal 01-Nov-2000, vol. 10, no. 13 by Francesco Balena
Make Your Apps Scriptable
Francesco Balena
Making your application scriptable lets you release different versions
of the same program. Here's how to use the Microsoft Script Control to extend
your applications.
Scale Your IIS App Using Oracle or SQL Server [IIS, Oracle, SQL Server, Article, Visual Basic] Visual Basic Programmer's Journal 01-Nov-2000, vol. 10, no. 13 by Kirk Allen Evans
Scale Your IIS App Using Oracle or SQL Server
Kirk Allen Evans
Using a Session object can kill your Web site's chances of a long life
once traffic grows. Here's a solution.
Customize Your User Interface With VBScript [Interface, VBScript, Article, Visual Basic] Visual Basic Programmer's Journal 01-Nov-2000, vol. 10, no. 13 by Francesco Balena
Customize Your User Interface With VBScript
Francesco Balena
Use VBScript to modify your forms' appearance, react to events raised
by your controls, and even create new controls on the fly.
Windows CE 3.0: Enhanced Real-Time Features Provide Sophisticated Thread Handling [Windows CE, Thread, Article, Visual C++] MSDN Magazine 01-Nov-2000, vol. 15, no. 11 by Paul Yao
Windows CE 3.0: Enhanced Real-Time Features Provide Sophisticated
Thread Handling
Paul Yao
Introducing ADO+: Data Access Services for the Microsoft .NET Framework [ADO+, .NET, Article, Visual C++] MSDN Magazine 01-Nov-2000, vol. 15, no. 11 by Omri Gazitt
Introducing ADO+: Data Access Services for the Microsoft .NET Framework
Omri Gazitt
Garbage Collection: Automatic Memory Management in the Microsoft .NET Framework [Garbage Collection, Automatic Memory Management, .NET, Article, Visual C++] MSDN Magazine 01-Nov-2000, vol. 15, no. 11 by Jeffrey Richter
Garbage Collection: Automatic Memory Management in the Microsoft .NET
Framework
Jeffrey Richter
Windows 2000 Registry: Latest Features and API's Provide the Power to Customize and Extend Your Apps [Windows 2000, Registry, Article, Visual C++] MSDN Magazine 01-Nov-2000, vol. 15, no. 11 by Dino Esposito
Windows 2000 Registry: Latest Features and API's Provide the Power to
Customize and Extend Your Apps
Dino Esposito
RPC and C++: Build a Template Library for Distributed Objects Containing Multiple Interfaces [RPC, C++, Template Library, Distributed Object, Interface, Article, Visual C++] MSDN Magazine 01-Nov-2000, vol. 15, no. 11 by Ajai Shankar
RPC and C++: Build a Template Library for Distributed Objects
Containing Multiple Interfaces
Ajai Shankar
Beyond ASP: XML and XSL-based Solutions Simplify Your Data Presentation Layer [ASP, XML, XSL, Article, Visual C++] MSDN Magazine 01-Nov-2000, vol. 15, no. 11 by Scott Howlett, Jeff Dunmall
Beyond ASP: XML and XSL-based Solutions Simplify Your Data Presentation
Layer
Scott Howlett and Jeff Dunmall
Onstop [Article, Visual C++] MSDN Magazine 01-Nov-2000, vol. 15, no. 11 by Robert Hess
Onstop
Robert Hess
Connecting to SQL with ASP [SQL, ASP, Article, Visual C++] MSDN Magazine 01-Nov-2000, vol. 15, no. 11 by Robert Hess
Connecting to SQL with ASP
Robert Hess
Hiding Images [Image, Article, Visual C++] MSDN Magazine 01-Nov-2000, vol. 15, no. 11 by Robert Hess
Hiding Images
Robert Hess
Passing Values from a Control [Control, Article, Visual C++] MSDN Magazine 01-Nov-2000, vol. 15, no. 11 by Robert Hess
Passing Values from a Control
Robert Hess
Extend the WSH Object Model with Custom Objects [WSH, Article, Visual C++] MSDN Magazine 01-Nov-2000, vol. 15, no. 11 by Dino Esposito
Extend the WSH Object Model with Custom Objects
Dino Esposito
SAX, the Simple API for XML [XML, Article, Visual C++] MSDN Magazine 01-Nov-2000, vol. 15, no. 11 by Aaron Skonnard
SAX, the Simple API for XML
Aaron Skonnard
Programming for 64-Bit Windows [64-bit Windows, Article, Visual C++] MSDN Magazine 01-Nov-2000, vol. 15, no. 11 by Matt Pietrek
Programming for 64-Bit Windows
Matt Pietrek
To Cache or not to Cache [Cache, Article, Visual C++] MSDN Magazine 01-Nov-2000, vol. 15, no. 11 by Ted Pattison
To Cache or not to Cache
Ted Pattison
Eight Lessons from the COM School of Hard Knocks [COM, Article, Visual C++] MSDN Magazine 01-Nov-2000, vol. 15, no. 11 by Jeff Prosise
Eight Lessons from the COM School of Hard Knocks
Jeff Prosise
FileType Icon Detector App [Icon, Article, Visual C++] MSDN Magazine 01-Nov-2000, vol. 15, no. 11 by Paul DiLascia
FileType Icon Detector App
Paul DiLascia
Custom Context Menus [Context Menu, Article, Visual C++] MSDN Magazine 01-Nov-2000, vol. 15, no. 11 by Paul DiLascia
Custom Context Menus
Paul DiLascia
Unreferenced Variables [Article, Visual C++] MSDN Magazine 01-Nov-2000, vol. 15, no. 11 by Paul DiLascia
Unreferenced Variables
Paul DiLascia
String Conversions [String, Article, Visual C++] MSDN Magazine 01-Nov-2000, vol. 15, no. 11 by Paul DiLascia
String Conversions
Paul DiLascia
Reading Hard Drive Manufacturing Information [System, Article, Visual C++] www.codeguru.com 01-Nov-2000 by Lynn McGuire
Reading Hard Drive Manufacturing Information
Lynn McGuire
Console utility for retrieving information about attached IDE drives
Allowing the TAB key in Edit Controls [Edit Control, Article, Visual C++] www.codeguru.com 01-Nov-2000 by Hilmi Jauffer
Allowing the TAB key in Edit Controls
Hilmi Jauffer
Overrides PreTranslateMessage to replace default Edit Control behavior
with more expected behavior of an editor
Visual Component Framework: Libraries and Projects [UI, Article, Visual C++] www.codeguru.com 01-Nov-2000 by Jim Crafton
Visual Component Framework: Libraries and Projects
Jim Crafton
Full-featured visual framework (based on NextStep and Borland IDE UIs)
for creating C++ applications
Simplify Development and Maintenance of Navigators [Navigator, Article, Lotus Notes] Notes Advisor 01-Nov-2000 by David Kochan
Data Management - Lotus Notes & Domino Advisor - November 2000
Simplify Development and Maintenance of Navigators
David Kochan
Add Microsoft Office Spreadsheets, Charts, and Data to Domino and Notes Applications [Office, Spreadsheet, Chart, Domino, Article, Lotus Notes] Notes Advisor 01-Nov-2000 by Hans van der Burg
Web Development - Lotus Notes & Domino Advisor - November 2000
Add Microsoft Office Spreadsheets, Charts, and Data to Domino and Notes
Applications
Hans van der Burg
Make the R5 Welcome Page Work For You [Article, Lotus Notes] Notes Advisor 01-Nov-2000 by Matt Holthe
Design Application - Lotus Notes & Domino Advisor - November 2000
Make the R5 Welcome Page Work For You
Matt Holthe
Launch Notes Applications from a Web Browser [Web, Browser, Article, Lotus Notes] Notes Advisor 01-Nov-2000 by Christopher Pepin
Notes Development - Lotus Notes & Domino Advisor - November 2000
Launch Notes Applications from a Web Browser
Christopher Pepin
Beyond the Cutting Edge: Flash and Domino [Domino, Article, Lotus Notes] Notes Advisor 01-Nov-2000 by Daron Lawing
Web Development - Lotus Notes & Domino Advisor - November 2000
Beyond the Cutting Edge: Flash and Domino
Daron Lawing
Track Invalid Web-based Login Attempts [Web, Article, Lotus Notes] Notes Advisor 01-Nov-2000 by Terrance A Crow
Web Development - Lotus Notes & Domino Advisor - November 2000
Track Invalid Web-based Login Attempts
Terrance A Crow
Use Domino as an E-Business Platform [Domino, E-Business, Article, Lotus Notes] Notes Advisor 01-Nov-2000 by Brad Cunningham
E-Business - Lotus Notes & Domino Advisor - November 2000
Use Domino as an E-Business Platform
Brad Cunningham
Message Table (.mc) Dump Utility
Sardaukar
More description(s) about Event log messages.
Undocumented AFX function : AfxGetClassIDFromString [ATL, COM, Article, Visual C++] www.codeguru.com 31-Oct-2000 by G De Leeuw
Undocumented AFX function : AfxGetClassIDFromString
G De Leeuw
Function that enables you to compare a classid to a progid for things
such as determining if a given component has been installed.
Code to Dynamically Redock a Toolbar at Runtime [Toolbar, Article, Visual C++] www.codeguru.com 31-Oct-2000 by Hiral Oza
Code to Dynamically Redock a Toolbar at Runtime
Hiral Oza
Snippet that allows you to do such things as giving the end-user a
"Reset all Toolbars" function
Win32 C Function for High-Quality Bitmap Shrinking [Bitmap, Article, Visual C++] www.codeguru.com 31-Oct-2000 by Petr Spácil
Win32 C Function for High-Quality Bitmap Shrinking
Petr Spácil
Replacement function for StretchBlt that enables you to produce Adobe
Photoshop-quality images when shrinking bitmaps
General Flicker Free Resizable Control [Dialog, Article, Visual C++] www.codeguru.com 31-Oct-2000 by Torben B Haagh
General Flicker Free Resizable Control
Torben B Haagh
Fantastic generic solution that can be used for any type of window
(dialogs, form views, property sheets, etc.)
A Safer STL Container Class [C++, MFC, Article, Visual C++] www.codeguru.com 31-Oct-2000 by Alex Kravchenko
A Safer STL Container Class
Alex Kravchenko
Technique to allow STL containers to verify object's state to ensure
object has not been deleted
SQL Server 2000 Licensing Changes--What You Need to Know [SQL Server, Licensing, Article, Visual Basic] www.earthweb.com 31-Oct-2000 by Brian Moran
SQL Server 2000 Licensing Changes--What You Need to Know
Brian Moran
31-Oct-2000
31-Oct-2000
SQL Server 2000 Licensing Changes--What You Need to Know
My IP with Delphi [Article, Delphi] delphi.about.com 31-Oct-2000
31-Oct-2000
31-Oct-2000
My IP with Delphi
How to obtain a computer's IP address by using the Socket API and
Delphi's Pascal.
Operating System Integration - Part 2
In part one of this series (see -> ) in retrieving information about the
underlying software and hardware platform that your Visual Basic application is
running on, we discovered a few handy API calls designed to make it easy to
retrieve info about the Windows operating system - including the version
(95/98/NT) and running mode (normal/safe). This week, we're going to be
investigating a few API call to get info about that computer hardware setup.
Memory Management
First off, let's take a look at some handy code designed to retrieve the number
of total and free bytes of memory.
Copy this code into the declarations section of your form:
Private Type MEMORYSTATUS
dwLength As Long
dwMemoryLoad As Long
dwTotalPhys As Long
dwAvailPhys As Long
dwTotalPageFile As Long
dwAvailPageFile As Long
dwTotalVirtual As Long
dwAvailVirtual As Long
End Type
Private Declare Sub GlobalMemoryStatus Lib "kernel32" _
Alias "GlobalMemoryStatus" (lpBuffer As MEMORYSTATUS)
Code
Now, add the following code to the click event of a buttons added to your form:
Dim memoryInfo As MEMORYSTATUS
GlobalMemoryStatus memoryInfo
MsgBox "Total memory (in bytes): " & _
memoryInfo.dwTotalPhys
MsgBox "Available memory (in bytes): " & _
memoryInfo.dwAvailPhys
Run the program and click the button. Two message boxes will appear, one after
another. The first will detail the amount of memory (RAM) installed in the
computer, and the second will detail the amount of physical memory that is
currently unused.
An extension of this code is to use the "dwMemoryLoad" variable from the
MEMORYSTATUS structure to determine as approximate percentage of the system's
load, where "0" would be no memory in use, and "100" would be all memory used.
Counting CPUs
Let's now take a look at another handy API call - GetSystemInfo. This function
allows VB developers to retrieve information about the ... (cont.)
Copying Files With Explorer (using: Visual Basic 6.0) [Article, SHFileOperation(), SHFILEOPSTRUCT, Visual Basic] visualbasic.about.com 30-Oct-2000
Copying Files With Explorer
Today I'm going to explain how to integrate Explorer's funky Copy dialog boxes
into your own application, with help from a useful API call buried deep within
the Shell32.dll API dll. We last took a look at this handy function in the
article 'Using The Recycle Bin' where I explained how to use the API to move
files from the hard disk into the Windows Recycle Bin, a much better way of
removing files from the system compared with using the 'Kill' command. Right,
without further chit chat, let's take a look at the code!
Declarations
Copy this code into the declarations section of your form:
Private Type SHFILEOPSTRUCT
hwnd As Long
wFunc As Long
pFrom As String
pTo As String
fFlags As Integer
fAnyOperationsAborted As Long
hNameMappings As Long
lpszProgressTitle As Long
End Type
Private Declare Function SHFileOperation Lib _
"shell32.dll" Alias "SHFileOperationA" _
(lpFileOp As SHFILEOPSTRUCT) As Long
Private Const FO_MOVE = &H1
Private Const FO_COPY = &H2
Private Const FOF_SILENT = &H4
Private Const FOF_RENAMEONCOLLISION = &H8
Code
Now, if you would like to copy the file "autoexec.bat" from your C:\ drive into
the "A:\" floppy drive, you would use this code:
Dim ShellCall As SHFILEOPSTRUCT
ShellCall.hwnd = hwnd
ShellCall.wFunc = FO_COPY
ShellCall.pFrom = "c:\autoexec.bat"
ShellCall.pTo = "a:\autoexec.bat"
ShellCall.hNameMappings = 0
Call SHFileOperation(ShellCall)
It's as easy as that! Run the code, and you should see a box pop up that is
similar this this:
The Next Step...
We've now learned how to use the Shell API to copy a file from one directory to
another with only a few lines of code. Time to take a look at a few of the
changes we can make to this code to improve it.
Rename On Collision
If the A: drive already contains a file named "autoexec.bat", the following
dialog box will appear:
Now, if the use clicks "yes" the ex ... (cont.)
Fast Regular Expressions [C++, MFC, STL, Regular Expression, Article, Visual C++] www.codeproject.com 30-Oct-2000 by Martin Holzherr
Fast Regular Expressions
Martin Holzherr
Compiles a regular expression into a fast automaton
XML Parser Demo [SOAP, XML, Parser, Article, Visual C++] www.codeproject.com 30-Oct-2000 by Ray Hayes
XML Parser Demo
Ray Hayes
Using the Microsoft XML (MSXML) parser.
Operating System Integration - Part 2 [Article, Visual Basic] visualbasic.about.com 30-Oct-2000
30-Oct-2000
30-Oct-2000
Operating System Integration - Part 2
In this week's epic operating system integration article, your Visual
Basic Guide uncovers a few API calls to retrieve information about the
underlying hardware architecture - from memory available to the number of CPUs
installed.
CUSTOMWZ: A Custom AppWizard
CUSTOMWZ is an example of a custom AppWizard, which contains features that the
standard AppWizard does not provide.
When creating a new application, you can use AppWizard to quickly generate the
starter files you need for the most common application types. But for special
applications that are unique to your work, you can create custom AppWizards.
Custom AppWizards are useful for creating generic application project types
that can repetitively generate common functionality — application types that
can be used multiple times. Custom AppWizards are not useful for creating
one-off project types.
Like AppWizard, a custom AppWizard presents the user with choices, tracks their
decisions, and uses those decisions to generate the code, resources, and
project files that the Visual C++ build tools require to build a skeletal,
working application.
For example, if you work for a company whose employees commonly need special
views of database information, you can create a custom AppWizard to generate
generic dialog-based front ends to a database. You can even ensure that the
dialog box is always embellished with a company logo.
Possibilities for custom AppWizards include:
Creating a custom AppWizard that is based on the code and resources in an
existing project
Modifying code in existing AppWizard templates
Adding one or more steps to the existing AppWizard’s steps
Creating a custom set of steps
For more information on creating a custom AppWizard, see Overview of Creating a
Custom AppWizard.
This sample demonstrates the following keywords:
AfxFormatString1; AfxMessageBox; AfxThrowUserException; CBitmap::LoadBitmap;
CDC::BitBlt; CDC::CreateCompatibleDC; CDC::DPtoLP; CDC::FillRect;
CDC::SelectObject; CDialog::MapDialogRect; CFileDialog::DoModal;
CFileDialog::GetPathName; CGdiObject::GetObject; CListBox::AddString;
CListBox::GetItemData; CListBox::GetSelCount; CListBox::GetSelItems;
CListBox::SelItemRange; CListBox::SetItemDat ... (cont.)
MB ColorPicker Control [Control, Color, Article, Visual Basic] www.vb2themax.com 28-Oct-2000 by Marco Bellinaso
MB ColorPicker Control
28-Oct-2000
28-Oct-2000
Marco Bellinaso
This control reproduces and extends the Color picker provided by Office
2000. It has a drop down palette that shows any color combination you want and
(optionally) a custom button to open the Windows Common Dialog Control for
color selection. In addition each color box can have a different tooltip. Every
aspect of the control is customizable. It can look like a combo box, a simple
button, a checkbox button, a dropdown button, etc. You can choose the color and
width of the 3D border that highlight the color box under the mouse cursor, the
height and width of the color boxes, the custom button's text, the number of
colors per row, and much more. The control's events let you to customize its
behaviour even more. There is also a property page that allows you to easily
add the colors you want to display and add some standard palettes that cover
the red/green/blue/gray scale, 16, 48 or system colors.
Enabling "No Step Into" in the Visual C++ Debugger (using: Visual C++ 6.0) [Breakpoint, Debugging, Developer Studio, Visual C++, Visual Studio, Tip] www.wintellect.com 27-Oct-2000
Nothing is more distracting when you’re trying to narrow down a problem in the
debugger than to accidentally step into some common library code when you meant
to step over it. Fortunately, the Visual C++ debugger offers an undocumented
means of telling the debugger to never step into certain code. The feature is
referred to "No Step Into." If you have a debugging function called
"CheckMyMem," here's how you would ensure the debugger will never step into
that function.
1. Open AUTOEXP.DAT which in in the \MSDev98\Bin directory.
2. At the bottom of the file, add the following line: "[Execution Control]". As
you can tell from looking at AUTOEXP.DAT, it's just a standard INI file.
3. The format of the entries is "functionname=NoStepInto" so to add CheckMyMem,
the entry is "CheckMyMem=NoStepInto."
4. The whole section would look like the following:
[Execution Control]
CheckMyMem=NoStepInto
Adding individual class members is just the same. If you don't want to step
into MFC CString constructors, just add the line "CString::CString=NoStepInto."
However, what is even more interesting is that you can have whole classes
marked as No Step Into! For example, if you don't want to step into any of the
methods in the _bstr_t class, the entry is "_bstr_t::*=NoStepInto."
If you are having trouble getting the No Step Into to work with your classes,
ensure that you are using the correct type name. Run your program under the
debugger and put an instance of the class in the Watch window. Right click on
the item in the Watch window and select Properties from the context menu. The
type listed is the type that the VC debugger is using for you class.
Here's a complete section so you can cut and paste it into your own AUTOEXP.DAT:
[Execution Control]
CString::CString=NoStepInto
_bstr_t::*=NoStepInto
_variant_t::*=NoStepInto
Unfortunately, No Step Into doesn't work with template classes, which is why
the feature is probably undocumented. A work around is ... (cont.)
Century Date Tables [Database, Date, Table, SQL, Validation, Article, Visual C++] www.codeproject.com 27-Oct-2000 by John Bevilaqua
Century Date Tables
John Bevilaqua
SQL DDLs for creating table structures and inserting the data for a set
of tables suitable for producing pick lists for Validation of the Month Names,
Month Numbers, Days in each Month and Years in the 20th Century
Database info tool [Database, Table, Article, Visual C++] www.codeproject.com 27-Oct-2000 by Massimo Colurcio
Database info tool
Massimo Colurcio
Explore the structure of Tables (and views)
Toolbars with Spinners & Sliders [Toolbar, Docking Window, Article, Visual C++] www.codeproject.com 27-Oct-2000 by Masoud Samimi
Toolbars with Spinners & Sliders
Masoud Samimi
How to create toolbars with spinners and/or sliders
JavaScript For Beginners [JavaScript, Article, Visual C++] www.codeproject.com 27-Oct-2000 by Nongjian Zhou
JavaScript For Beginners
Nongjian Zhou
A very easy tutorial for JavaScript beginners
CResizableSheet and CResizablePage [Property Sheet, CPropertySheet Class, CPropertyPage Class, Dialog, MFC, Article, Visual C++] www.codeproject.com 27-Oct-2000 by Paolo Messina
CResizableSheet and CResizablePage
Paolo Messina
Two CPropertySheet/CPropertyPage derived classes to implement resizable
property sheets or wizard Dialogs with MFC
Active Perl Developer's Guide [Perl, Scripting, Book] Purchased 26-Oct-2000, $75.96
After 20% discount
InspectExe 2.6 [DLL, EXE, Explorer, Export, Import, Resource, Module, Product, Owned By BDP, Development, System Support] No purchase required 26-Oct-2000
After 20% discount
GAWP 1.18 [C++, Developer Studio, MFC, Visual C++, Visual Studio, Product, Owned By BDP, Development, Educational] No purchase required 26-Oct-2000
After 20% discount
Bring up the Windows Help System (using: Visual Basic 6.0) [Help, keybd_event(), Visual Basic, Product] www.devx.com 26-Oct-2000
BRING UP THE WINDOWS HELP SYSTEM
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As
Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Const VK_LWIN = &H5B
Private Const KEYEVENTF_KEYUP = &H2
' Open the Windows Help
'
' You can use the same technique to programmatically "press" any other
' key, including Shift, Ctrl, Alt and keys combinations that can't be
' simulated through SendKeys
Sub OpenWindowsHelp()
' programmatically press the Windows key
keybd_event VK_LWIN, 0, 0, 0
' then press and then release the F1 key
keybd_event vbKeyF1, 0, 0, 0
keybd_event vbKeyF1, 0, KEYEVENTF_KEYUP, 0
' and finally release the Windows Key
keybd_event VK_LWIN, 0, KEYEVENTF_KEYUP, 0
End Sub
AutoBld .... Builds One or More Workspaces at Specified Times and Dates [Building Projects, Developer Studio, Visual C++, Visual Studio, VC++ Add-in, Visual Studio Add-in] www.microsoft.com 26-Oct-2000
AutoBld: Builds One or More Workspaces at Specified Times and Dates
This sample builds a Visual C++ project at a specified time. When the build is
done, AutoBld emails the user with the name of the configuration and the number
of build warnings and errors. The code demonstrates working with various parts
of the Developer Studio object model, placing multiple commands into an add-in,
and invoking commands from a command line.
For the Send Email function to work, you either need a non-password email
account, or you need to be logged into the email account at the time AutoBld
runs.
To build the sample
Click the link at the beginning of this topic to download the sample files.
In Visual C++, open the project file AutoBld.dsp.
Choose an appropriate configuration (Win32 Release is best if you plan to use
this add-in).
Click Rebuild All from the Build menu.
Place AutoBld.dll in \Microsoft Visual Studio\Common\MSDev98\AddIns so it can
be located by Visual C++ when it launches.
To run the sample on Windows NT
From the Tools menu, click Customize.
Click the Add-ins and Macro Files tab.
Select the AutoBld.dll file or browse for it. See Tips for Using Add-ins.
Once the AutoBld add-in has been loaded, clicking the button on the add-in
toolbar opens a dialog box that lets you specify where build time information
is to be logged. The file is persistent; any changes to it will be used next
time.
Click the Configure button on the newly created toolbar, and set your
preferences in the AutoBuild Configuration dialog box.
Exit Visual C++ to save this configuration.
From Control Panel, open the Services dialog box. Find Scheduling Agent in the
list box, and make sure its Status column indicates Started and its Startup
column indicates Automatic. If the Scheduling Agent's Status is not set to
Started, highlight the Scheduling Agent and click the Start button. If its
Startup is not set to Automatic, click the Startup button and select Automatic
in the Startup Type field ... (cont.)
BldRec .... Uses Automation to Record Time and Length of a Build [Building Projects, Developer Studio, Visual C++, Visual Studio, VC++ Add-in, Visual Studio Add-in] www.microsoft.com 26-Oct-2000
BldRec: Uses Automation to Record Time and Length of a Build
BldRec records the following build information in a text file:
Length of time
Number of errors
Number of warnings
The sample also shows using the registry to persist a setting. BldRec was
created with the ATL COM AppWizard. Support MFC was checked in the wizard, and
then an Add-in object was added to the project with the ATL Object Wizard.
To build the sample
Click the link at the beginning of this topic to download the sample files.
In Visual C++, open the project file BldRec.dsp.
Choose an appropriate configuration (Win32 Release is best if you plan to use
this add-in).
Click Rebuild All from the Build menu.
To run the add-in
From the Tools menu, click Customize.
Click the Add-ins and Macro Files tab.
Select the BldRec.dll file or browse for it. See Tips for Using Add-ins.
Once the BldRec add-in has been loaded, clicking the button on its toolbar
displays a dialog box that lets you specify a location to log build time
information. The file is persistent; any changes to it will be used next time.
Output of BldRec is similar to:
09:48:11 PM 02/19/98 : Build Started -- bldrec - Win32 Debug
09:48:25 PM 02/19/98 : 00:00:14 Build Finished! Errors=0, Warnings=0 --
bldrec - Win32 Debug
This sample demonstrates the following keywords:
CTimeSpan; CTime::GetCurrentTime; CTime::Format; CRegKey::QueryValue;
CRegKey::Create; CRegKey::SetValue; addin; customize; IApplication;
IConfiguration; IApplicationEvents
BrkPntMgr .... Uses Automation to List and Control Breakpoints [Breakpoint, Building Projects, Developer Studio, Visual C++, Visual Studio, VC++ Add-in, Visual Studio Add-in] www.microsoft.com 26-Oct-2000
BrkPntMgr: Uses Automation to List and Control Breakpoints
BrkPntMgr is a breakpoint manager. It will save and load breakpoints from
files. You can add comments to make your breakpoints more understandable. This
is useful in working on many bugs at one time, or over time.
BrkPntMgr was created with the ATL COM AppWizard. Support MFC was checked in
the wizard and then an Add-in object was added to the project with the ATL
Object Wizard. The code that was added is mostly in BrkPnts.cpp. There is code
for loading, saving, and closing, and a function that will get a pointer to an
IGenericDocument interface for a given file.
To build the sample
In Visual C++, open the project file BrkPntMgr.dsp.
Choose an appropriate configuration (Win32 Release is best if you plan to use
this add-in).
Click Rebuild All from the Build menu.
To run the add-in
From the Tools menu, click Customize.
Click the Add-ins and Macro Files tab.
Select the BrkPntMgr.dll file or browse for it. See Tips for Using Add-ins.
Visual C++ will load the add-in. When you close the Customize dialog box,
BrkPntMgr’s toolbar will appear.
Run the BrkPntMgr add-in by clicking the toolbar button. BrkPntMgr puts up a
single button in a toolbar. Clicking this button opens a dialog box. This
dialog box has a check box for Save Only Enabled, an edit box File:, a Browse
button, another edit box labeled Comment, and four more buttons labeled Clear,
Save, Load, and To Output Wnd. The text at the top of the dialog box reports
how many breakpoints are set and enabled.
If you put a file name in the File: edit box (or browse for one), you can
either load or save breakpoints. If the Save Only Enabled check box is enabled,
you will not save any disabled breakpoints. When you save, you can add a
comment, such as "This set of breakpoints are for finding a memory leak in the
bipartite graph program."
When you load a file, all files with breakpoints set will be opened and then
all the breakpoints will be set. ... (cont.)
CmdWnd .... Issues IDE Commands from a Command Window [Building Projects, Developer Studio, Visual C++, Visual Studio, VC++ Add-in, Visual Studio Add-in] www.microsoft.com 26-Oct-2000
CmdWnd: Issue IDE Command in a Command Window
The CmdWnd add-in sample creates a command window into which you can enter
three types of commands:
1. CmdWnd commands
You can display a list of the CmdWnd commands by typing a question mark (?) in
the command window. Note that several CmdWnd commands start the debugger.
2. IDE commands
Any command issued in the command window that is not a CmdWnd command will next
be evaluated as an IDE command. Any command that you see in the Commands list
in the Keyboard tab of the Customize dialog box, which is accessed from the
Tools menu, can be issued in the command window to access the functionality of
the menu option. An example of such a command is NewText. Another useful one is
DebugBreak. Note that case is sensitive here.
3. MS-DOS commands
Any command issued in the command window that is neither a CmdWnd command nor
an IDE command will next be evaluated as a command issued from an MS-DOS prompt.
The CmdWnd add-in sample shows how to create a modeless dialog box add-in.
Add-ins are normally required to be modal dialog boxes. One problem encountered
in making a modeless add-in is that some keystrokes get translated and sent to
msdev.exe and the add-in’s dialog box does not receive them. This is
particularly dangerous since keys like DEL are in this list. This sample shows
how to create an add-in in two basic pieces: a stub add-in, and an exe that
opens a dialog box. This results in a modeless dialog box for msdev.exe.
To build the sample
Click the link at the beginning of this topic to download the sample files.
In Visual C++, open the project file cmdwnd.dsw.
Choose an appropriate configuration (Win32 Release is best if you plan to use
this add-in).
Make the All project the active project.
Click Rebuild All from the Build menu.
This project builds a proxy stub, called devcmd.dll, and is built in the
msdevcmdstubs subproject. There is one other subproject called the _interface
project; this project fa ... (cont.)
API2Help .... Creates an HTML or RTF File to Include in a Help System [Building Projects, Developer Studio, Help, HTML, RTF, Visual C++, Visual Studio, VC++ Add-in, Visual Studio Add-in] www.microsoft.com 26-Oct-2000
API2Help: Creates an HTML or RTF File to Include in a Help System
This add-in creates documentation for a function prototype. Simply open a
source code file in Visual C++ and highlight a function prototype. Then click
the add-in. You will be prompted to create either a .rtf file or a .htm file.
You can use the resulting file to create help for the function.
To build the sample
Click the link at the beginning of this topic to download the sample files.
In Visual C++, open the project file API2Help.dsp.
Choose an appropriate configuration (Win32 Release is best if you plan to use
this add-in).
Click Rebuild All from the Build menu.
To run the add-in
From the Tools menu, click Customize.
Click the Add-ins and Macro Files tab.
Select the API2Help.dll file or browse for it. See Tips for Using Add-ins.
API2Help creates a small toolbar that is visible when you close the Customize
dialog box.
Highlight a function prototype in a source file.
Click the API2Help button on the newly created toolbar, follow the prompts, and
fill in the appropriate information in the File Generation Options dialog box.
Modify your help system to include the newly generated files.
This sample demonstrates the following keywords:
CComModule.Init; CWinApp::ExitInstance; CComModule.GetClassObject;
CComModule.RegisterServer; CRegKey.Open; CString.LoadString;
CRegKey.SetKeyValue; CComModule.UnregisterServer; CFile.Write;
CString.LoadString; WriteString; CString.TrimLeft; CString.TrimRight;
CString.Find; CString.SetAt; Iapplication; CCommandsObj::CreateInstance;
EnableWindow; SetWindowText; CString::GetLength; DoModal
Pipe .... Uses Automation to Filter or Pipe Output from the Text Editor [Developer Studio, Visual C++, Visual Studio, VC++ Add-in, Visual Studio Add-in] www.microsoft.com 26-Oct-2000
Pipe: Uses Automation to Filter or Pipe Output from the Text Editor
Pipe (or Filter as it is called in the Customize dialog box) lets you process
text by selecting it in the Visual C++ Text editor, pressing a button, choosing
or setting a command, and applying the command to your selection. It is useful
in sorting.
Pipe was created with the ATL COM AppWizard. Support MFC was checked in the
wizard, and then an Add-in object was added to the project with the ATL Object
Wizard. Most of the code added is in MarkIt.cpp.
If you modify the sample, precede each function that could be called from an
external interface with the following code:
AFX_MANAGE_STATE(AfxGetStaticModuleState());
This allows you to access your resources and is necessary because of the MFC
support.
The CMRUStrings class is used to do the persistence for a drop-down combo box.
You can use this class and other classes from the add-ins in other projects.
See Reusing Code Topics and Adding Classes to the Gallery for information on
how to reuse code.
To build the sample
Click the link at the beginning of this topic to download the sample files.
In Visual C++, open the project file Pipe.dsp.
Choose an appropriate configuration (Win32 Release is best if you plan to use
this add-in).
Click Rebuild All from the Build menu.
To run the add-in
From the Tools menu, click Customize.
Click the Add-ins and Macro Files tab.
Select the Pipe.dll file or browse for it. See Tips for Using Add-ins. Visual
C++ will load the add-in. When you close the Customize dialog box, Pipe’s
toolbar will appear.
Run the Pipe add-in by clicking the toolbar button, which will display a dialog
box where you can set the command line. For example, you can sort the selection
by setting the command to c:\winnt\system32\sort.exe. Or you could issue a dir
command with the output inserted into your current file.
Pipe will work on a selection size of 0, on a column selection (SHIFT+ALT and
select), whole lines, or ... (cont.)
ReplAll .... Uses Automation to Implement Replace Across Open Text Files [Developer Studio, Visual C++, Visual Studio, VC++ Add-in, Visual Studio Add-in] www.microsoft.com 26-Oct-2000
ReplAll: Uses Automation to Implement Replace Across Open Text Files
ReplAll resembles the Find and Replace dialog box but will find and replace
text in all open text files.
To build the sample
Click the link at the beginning of this topic to download the sample files.
In Visual C++, open the project file ReplAll.dsp.
Choose an appropriate configuration (Win32 Release is best if you plan to use
this add-in).
Click Rebuild All from the Build menu.
To run the add-in
From the Tools menu, click Customize.
Click the Add-ins and Macro Files tab.
Select the ReplAll.dll file or browse for it. See Tips for Using Add-ins.
Visual C++ will load the add-in. When you close the Customize dialog box,
ReplAll’s toolbar will appear.
Run the ReplAll add-in by clicking the toolbar button. Clicking this button
opens a dialog box that resembles the Find and Replace dialog box in Visual C++:
It has check boxes for Match whole word only, Match case, and Regular
Expression as well as buttons for Replace All and Cancel.
It has two edit boxes: Find what and Replace with.
ReplAll deals with the various emulation modes, such as the Brief and Epsilon
editors.
This sample demonstrates the following keywords:
IApplication, CComPtr, CComQIPtr; CComBSTR; CComVariant;
IDocuments::get__NewEnum; IEnumVARIANT::Next; CComVariant;
IDocuments::get_Count; Item; ITextDocument::ReplaceText;
ITextEditor::get_Emulation ; IApplication::get_ActiveDocument ; addin;
customize; ItextDocument; ITextSelection
Wins .... Uses Automation to List and Control Windows [Developer Studio, Help, HTML, RTF, Visual C++, Visual Studio, VC++ Add-in, Visual Studio Add-in] www.microsoft.com 26-Oct-2000
Wins: Uses Automation to List and Control Windows
Wins is a window manager that you can use to find, minimize, make visible,
activate, and close windows, and also close any windows opened in a debug
session. It will create files that, when loaded, will open selected windows.
Wins was built using the ATL COM AppWizard with the Support MFC option. The
code that does the work with Automation objects is in WindowsList.cpp. It has
some functions you may be able to reuse. For example, FindDoc, given a path to
a document, returns a pointer to an IGenericDocument interface, opening it if
requested.
Wins also demonstrates how to add sorting to a list control and handling
various messages from the list control that are mirrored. MyListCtrl.cpp has
some useful functions for using list controls.
To build the sample
Click the link at the beginning of this topic to download the sample files.
In Visual C++, open the project file Wins.dsp.
Choose an appropriate configuration (Win32 Release is best if you plan to use
this add-in).
Click Rebuild All from the Build menu.
To run the add-in
From the Tools menu, click Customize.
Click the Add-ins and Macro Files tab.
Select the Wins.dll file or browse for it. See Tips for Using Add-ins. Visual
C++ will load the add-in. When you close the Customize dialog box, the Wins
toolbar will appear.
Run the Wins add-in by clicking the toolbar button. Clicking this button opens
a dialog box. Wins is a window manager with controls that represent various
window management functions:
The Windows Manager button opens a dialog box that lets you look at all your
windows, sort them according to file name, file extension, directory, time
activated, rectangle coordinates (top, left, bottom, right), and rectangle
coordinates in debug mode. It will let you do selections on this, invert
selections, and select all. It will save selected files out to a .nfl (named
file list) file, and let you reload .nfl files, opening windows as it does ... (cont.)
Embed OpenGL inside Java AWT Canvas
Davanum Srinivas
This article shows how to use OpenGL calls inside Java AWT Canvas using
JDK1.3's JAWT interface
Visual Component Framework [Project, Component, Article, Visual C++] www.codeproject.com 26-Oct-2000 by Jim Crafton
Visual Component Framework
Jim Crafton
An Article describing working with the Visual Component Framework
A Visit to Redmond, Part 6 [Interview, Article, Visual C++] www.codeproject.com 25-Oct-2000 by Chris Maunder
A Visit to Redmond, Part 6
Chris Maunder
For those who are curious as to what a hastily scheduled trip to
Redmond is like.
To WTL or Not to WTL. That Is the Question [ATL, WTL, Article, Visual C++] www.codeguru.com 25-Oct-2000 by Andrew Whitechapel
To WTL or Not to WTL. That Is the Question
Andrew Whitechapel
In his latest contribution, Andrew ponders the question posed by many
of you brave enough to dive into the undocumented waters of WTL.
cFileNotify .... Class to monitor any file changes made in a particular folder [File, FindCloseChangeNotification(), FindFirstChangeNotification(), FindNextChangeNotification(), Folder, WaitForSingleObject(), Visual Basic, VB Class Module] www.codeoftheweek.com 25-Oct-2000, no. 131
Requirements
Visual Basic 4.0 32-bit or higher.
This issue introduces a class to monitor any file changes made in
a particular folder.
cFileNotify
This class is very useful when any monitoring of folders is
necessary. It will automatically notify the calling program when
a file changes in a folder. It is most useful for applications
which require folders to be updated when external changes are made
to them. It is also very useful for batch file processing where
an application needs to process a file once it appears in a
particular folder.
This class can not tell what kind of change has occurred, but
only that some change occurred in the folder specified by the
FolderToWatch property. Additional code would have to be written
to determine this information. It does not seem to be available
from the Windows API.
Properties
Public Enum FileNotifyFlags
This enumerator specifies which events can be monitored. Most of
the constants are pretty obvious. For full details on each one of
these properties see
http://msdn.microsoft.com/library/psdk/winbase/filesio_9hgu.htm at
Microsoft's web site. Each constant can be OR'd together to watch
several events.
Public FolderToWatch As String
This is the folder name to watch, such as e:\temp or
c:\windows\system
Public Event FolderChanged(sFolder As String, eFlags As FileNotifyFlags)
This event will be raised everytime a change in detected in the
FolderToWatch. Which changes are monitored is determined by the
eFlags option on the Monitor method.
Methods
Public Sub Monitor(Optional eFlags As FileNotifyFlags = FileNotifyDefault)
Starts the monitoring process. The Monitor routine will not
return until the Abort method is called or some error occurs.
Typically this call will be put behind a button on a form or a
timer on a form to keep the main application from hanging up. A
future version of this class will have an asynchronous version of
this routine.
Public Sub Abort()
Cancels the monitoring proces ... (cont.)
basPhoneNumbers .... Format a phone number [Phone Number, Visual Basic, VB Class Module] www.codeoftheweek.com 15-Oct-2000, no. 130
Requirements
Visual Basic 4.0 or higher. Will probably work in VB3 too.
This issue presents one method to format a United States phone
number. It will also work in locations where the phone numbers
are 7 digits or 10 digits long. It can easily be modified to fit
your local phone number requirements.
basPhoneNumbers
This module shows a good model for formatting phone numbers (or
other numeric values). It will format a 7 digit or 10 digit phone
number in the format 999-9999 or (999)999-9999.
Functions
Public Function FormatUSPhoneNumber(ByVal sPhone As String) As String
Call this routine with a phone number as the specified parameter.
It will raise an error if the phone number is not 7 or 10 digits
after all non-numerics are removed. It will return a string in
the format of 999-9999 or (999)999-9999. If you want to modify
the formatted output update the Format$ line in the routine.
Sample Usage
This sample shows how to use the FormatUSPhoneNumber function.
Debug.Print FormatUSPhoneNumber("2125047945")
' the output will be: (212)504-7945
Debug.Print FormatUSPhoneNumber("212-504-7945")
' the output will be: (212)504-7945
Requirements
Visual Basic 4.0 or higher. Will probably work in VB3 too.
This issue presents one method to format a United States phone
number. It will also work in locations where the phone numbers
are 7 digits or 10 digits long. It can easily be modified to fit
your local phone number requirements.
basPhoneNumbers
This module shows a good model for formatting phone numbers (or
other numeric values). It will format a 7 digit or 10 digit phone
number in the format 999-9999 or (999)999-9999.
Functions
Public Function FormatUSPhoneNumber(ByVal sPhone As String) As String
Call this routine with a phone number as the specified parameter.
It will raise an error if the phone number is not 7 or 10 digits
after all non-numerics are removed. It will return a string in
the format of 999-9999 or (999)999-9999. If you want to modify
the formatted output update the Format$ line in the routine.
Sample Usage
This sample shows how to use the FormatUSPhoneNumber function.
Debug.Print FormatUSPhoneNumber("2125047945")
' the output will be: (212)504-7945
Debug.Print FormatUSPhoneNumber("212-504-7945")
' the output will be: (212)504-7945
Requirements
Visual Basic 4.0 or higher. Will probably work in VB3 too.
This issue presents one method to format a United States phone
number. It will also work in locations where the phone numbers
are 7 digits or 10 digits long. It can easily be modified to fit
your local phone number requirements.
basPhoneNumbers
This module shows a good model for formatting phone numbers (or
other numeric values). It will format a 7 digit or 10 digit phone
number in the format 999-9999 or (999)999-9999.
Functions
Public Function FormatUSPhoneNumber(ByVal sPhone As String) As String
Call this routine with a phone number as the specified parameter.
It will raise an error if the phone number is not 7 or 10 digits
after all non-numerics are removed. It will return a string in
the format of 999-9999 or (999)999-9999. If you want to modify
the formatted output update the Format$ line in the routine.
Sample Usage
This sample shows how to use the FormatUSPhoneNumber function.
Debug.Print FormatUSPhoneNumber("2125047945")
' the output will be: (212)504-7945
Debug.Print FormatUSPhoneNumber("212-504-7945")
' the output will be: (212)504-7945
Requirements
Visual Basic 4.0 or higher. Will probably work in VB3 too.
This issue presents one method to format a United States phone
number. It will also work in locations where the phone numbers
are 7 digits or 10 digits long. It can easily be modified to fit
your local phone number requirements.
basPhoneNumbers
This module shows a good model for formatting phone numbers (or
other numeric values). It will format a 7 digit or 10 digit phone
number in the format 999-9999 or (999)999-9999.
Functions
Public Function FormatUSPhoneNumber(ByVal sPhone As String) As String
Call this routine with a phone number as the specified parameter.
It will raise an error if the phone number is not 7 or 10 digits
after all non-numerics are removed. It will return a string in
the format of 999-9999 or (999)999-9999. If you want to modify
the formatted output update the Format$ line in the routine.
Sample Usage
This sample shows how to use the FormatUSPhoneNumber function.
Debug.Print FormatUSPhoneNumber("2125047945")
' the output will be: (212)504-7945
Debug.Print FormatUSPhoneNumber("212-504-7945")
' the output will be: (212)504-7945
Requirements
Visual Basic 4.0 or higher. Will probably work in VB3 too.
This issue presents one method to format a United States phone
number. It will also work in locations where the phone numbers
are 7 digits or 10 digits long. It can easily be modified to fit
your local phone number requirements.
basPhoneNumbers
This module shows a good model for formatting phone numbers (or
other numeric values). It will format a 7 digit or 10 digit phone
number in the format 999-9999 or (999)999-9999.
Functions
Public Function FormatUSPhoneNumber(ByVal sPhone As String) As String
Call this routine with a phone number as the specified parameter.
It will raise an error if the phone number is not 7 or 10 digits
after all non-numerics are removed. It will return a string in
the format of 999-9999 or (999)999-9999. If you want to modify
the formatted output update the Format$ line in the routine.
Sample Usage
This sample shows how to use the FormatUSPhoneNumber function.
Debug.Print FormatUSPhoneNumber("2125047945")
' the output will be: (212)504-7945
Debug.Print FormatUSPhoneNumber("212-504-7945")
' the output will be: (212)504-7945
A Visit to Redmond, Part 5 [Interview, Article, Visual C++] www.codeproject.com 24-Oct-2000 by Chris Maunder
A Visit to Redmond, Part 5
Chris Maunder
For those who are curious as to what a hastily scheduled trip to
Redmond is like.
User-Level Spin Locks [Thread, Process, Inteprocess Communication, Synchronization, Article, Visual C++] www.codeproject.com 24-Oct-2000 by Gert Boddaert
User-Level Spin Locks
Gert Boddaert
An introduction to using spin locks for Synchronisation
Coding for the World [Article, Delphi] delphi.about.com 24-Oct-2000
24-Oct-2000
24-Oct-2000
Coding for the World
Have you considered writing Delphi applications for the whole World?
The Integrated Translation Environment is what you need to quickly
internationalize or localize your applications for new languages and cultures.
AutoContents.dsm .... Inserts a list of all functions found in a file [Article, DSM, IDE, Macro, Visual C++, Visual Studio, VC++ Add-in, Visual Studio Macro] www.codeguru.com 23-Oct-2000
Navigate your TRACE outputs [Debugging, TRACE, Article, Visual C++] www.codeproject.com 23-Oct-2000 by Wolfgang Busch
Navigate your TRACE outputs
Wolfgang Busch
Extended TRACE macros with easy source navigation
Copying Files With Explorer [Article, Visual Basic] visualbasic.about.com 23-Oct-2000
23-Oct-2000
23-Oct-2000
Copying Files With Explorer
Do you need to copy files from one location to another direct from
Visual Basic? If so, take advantage of the built in Windows move/copy dialog
boxes! Your VB Guide shows you how.
Understanding COM Apartments, Part II [COM, Article, Visual C++] www.codeguru.com 23-Oct-2000 by Jeff Prosise
Understanding COM Apartments, Part II
Jeff Prosise
Jeff illustrates why a complete understanding of COM apartments is so
important to developing better and more efficient COM applications.
C# XML Directory Lister [C#, XML, Article, Visual C++] www.codeproject.com 22-Oct-2000 by Greg Hack
C# XML Directory Lister
Greg Hack
Generates a directory list as XML
SQLLog Wizard [Wizard, SQL Script, XML, Database, Article, Visual Basic] www.vb2themax.com 21-Oct-2000 by Ron Puckett
SQLLog Wizard
21-Oct-2000
21-Oct-2000
Ron Puckett
The SQLLog Wizard is used to specify which tables are to be audited.
The output of the wizard is a SQL Script that that can be run in the Query
Analyzer. This script will generate the triggers required to implement the
audit log (stored in XML format in the Database). The SQLLogViewer is used to
display the audit log. Log records can be filtered based on a number of
criteria including transaction dates, table name, transaction type,
application, machine that made the changes, or by the user who made the change.
Goto http://www.rlpsoftware.com for more information and to register for
receiving info on future updates.
Create a modeless dialog as topmost window [Article, Visual C++] www.mindcracker.com 21-Oct-2000 by Bulent Ozkir
Create a modeless dialog as topmost window
Bulent Ozkir
21-Oct-2000
21-Oct-2000
A Visit to Redmond, Part 4 [Interview, Article, Visual C++] www.codeproject.com 20-Oct-2000 by Chris Maunder
A Visit to Redmond, Part 4
Chris Maunder
For those who are curious as to what a hastily scheduled trip to
Redmond is like.
Create Dynamic Banners By Using JavaScript [JavaScript, Article, Visual C++] www.codeproject.com 20-Oct-2000 by Nongjian Zhou
Create Dynamic Banners By Using JavaScript
Nongjian Zhou
This article show how to use JavaScript to dynamically display banners,
very usful!
The Art of Estimating, Part II [Windows Programming, Article, Visual C++] www.codeguru.com 20-Oct-2000 by Christopher Duncan
The Art of Estimating, Part II
Christopher Duncan
Christopher completes his two part series on the art of estimating by
getting into the details of exactly what it takes to deliver detailed, timely
and accurate estimates.
How to change font's type and size of a control [Article, Visual C++] www.mindcracker.com 20-Oct-2000 by Mahesh Chand
How to change font's type and size of a control
Mahesh Chand
20-Oct-2000
20-Oct-2000
How to print contents of an edit box [Article, Visual C++] www.mindcracker.com 20-Oct-2000 by Mahesh Chand
How to print contents of an edit box
Mahesh Chand
20-Oct-2000
20-Oct-2000
Color Picker Combo Box [Combobox, List Control, Color, Article, Visual C++] www.codeproject.com 19-Oct-2000 by James R Twine, Mark Jackson
Color Picker Combo Box
James R Twine and Mark Jackson
A combobox derived class that provides a simple color picker
Implementing an autocompleting Combobox [Combobox, List Control, Article, Visual C++] www.codeproject.com 19-Oct-2000 by Chris Maunder
Implementing an autocompleting Combobox
Chris Maunder
A combobox that autocompletes as you type
Callback based, Quicksort enabled CArray Template class [C++, MFC, STL, Callback, CArray Class, Template, Article, Visual C++] www.codeproject.com 19-Oct-2000 by Attila Hajdrik
Callback based, Quicksort enabled CArray Template class
Attila Hajdrik
This article presents a callback based, QuickSort enabled CArray
template class
A Visit to Redmond, Part 3 [Interview, Article, Visual C++] www.codeproject.com 19-Oct-2000 by Chris Maunder
A Visit to Redmond, Part 3
Chris Maunder
For those who are curious as to what a hastily scheduled trip to
Redmond is like.
Minimizing windows to the System Tray [Shell Programming, System Tray, Article, Visual C++] www.codeproject.com 19-Oct-2000 by Matthew Ellis
Minimizing windows to the System Tray
Matthew Ellis
A set of routines that show how easy it is to minimise your windows to
the system tray
Create Templets by Using JavaScript [Tip, Article, Visual C++] www.codeproject.com 19-Oct-2000 by Nongjian Zhou
Create Templets by Using JavaScript
Nongjian Zhou
There are many ways to create a web page templete. Using JavaScript is
one of easiest ways
A better front end to WinDiff [Tool, WinDiff, Article, Visual C++] www.codeproject.com 19-Oct-2000 by Chris Maunder
A better front end to WinDiff
Chris Maunder
A GUI front end to a handy utility
A class on exception handling [Article, Visual C++] www.mindcracker.com 19-Oct-2000 by Bulent Ozkir
A class on exception handling
Bulent Ozkir
19-Oct-2000
19-Oct-2000
CFileDialog Tutorial [Article, Visual C++] www.mindcracker.com 19-Oct-2000 by Mahesh Chand
CFileDialog Tutorial
: Step by step
A tutorial which tells you how to use CFileDialog step by step.
Mahesh Chand
19-Oct-2000
19-Oct-2000
ASP Guestbook Application [Active Server Pages, ASP, Access, Database, Article, Visual C++] www.codeproject.com 18-Oct-2000 by Uwe Keim
ASP Guestbook Application
Uwe Keim
A simple guestbook application using ASP and an Access Database
Creating a Control with the .NET SDK using C# [C#, Control, .NET, Article, Visual C++] www.codeproject.com 18-Oct-2000 by Norm Almond
Creating a Control with the .NET SDK using C#
Norm Almond
A quickstart guide to creating your first control in C#
QuickWin: Turn a console application into a Windows program [Dialog, Windows Programming, stdin, stdout, stderr, Article, Visual C++] www.codeproject.com 18-Oct-2000 by Lanz Jean-Claude
QuickWin: Turn a console application into a Windows program
Lanz Jean-Claude
Redirect stdin, stdout and stderr into a window
A Visit to Redmond, Part 2 [Interview, Article, Visual C++] www.codeproject.com 18-Oct-2000 by Chris Maunder
A Visit to Redmond, Part 2
Chris Maunder
For those who are curious as to what a hastily scheduled trip to
Redmond is like.
ProcessStudio: Monitor Tasks visually
Norm Almond
An application to monitor tasks visually
HTML For Beginners [WinHelp, HTML Help, Help, Article, Visual C++] www.codeproject.com 18-Oct-2000 by Nongjian Zhou
HTML For Beginners
Nongjian Zhou
A tutorial for those who want to learn HTML in an easy way.
Adding behaviour to classes [Windows Programming, Article, Visual C++] www.codeguru.com 18-Oct-2000 by Roger Onslow
Adding behaviour to classes
Roger Onslow
This issue, Roger looks at adding behaviour to classes and examines
vbarious techniques. Along the way he encounters a strange compiler bug and has
to work around it. Funny things certainly happen on the way to a deadline!
Drawing Image RGB Color Distribution Using OpenGL [OpenGL, Article, Visual C++] www.codeguru.com 18-Oct-2000 by Pierre Alliez, Magali Mazière
Drawing Image RGB Color Distribution Using OpenGL
Pierre Alliez and Magali Mazière
Incredible set of methods for such tasks as antialiasing, mouse support
for rotating images, storing and loading images from resources
How to create a dialog (using: Visual C++ 6.0) [Class Wizard, Dialog, Resource Editor, Visual C++, Tip] www.pinnaclepublishing.com 17-Oct-2000
To create dialogs, just follow the steps below, and
voila! You'll have a new dialog in your program, all set
and ready to go:
1. Design your dialog box using the Resource Editor.
2. While holding down the Ctrl key, double-click on a
blank area of the dialog box. ClassWizard will pop up,
asking if you want to make a new class for the dialog
box. Click OK.
3. Fill out the next dialog box from ClassWizard, and
then click OK twice---once to create your class, and then
again to save and close ClassWizard.
4. Next, in your message-handler, write:
void CMyApp::OnMyCommand()
{
CMyDialog dlg;
if (dlg.DoModal() == IDOK)
{
// The user pressed OK. Gather dialog
// settings.
}
// If we're here, then the user clicked Cancel.
}
QuickWin .... Spawn a Win32 console application redirecting his stdin, stdout and stderr handles to a window [Console, Visual C++, EXE] www.codeguru.com 17-Oct-2000 by Jean-Claude Lanz
QuickWin is a window application that spawn a Win32 console application
redirecting his stdin, stdout and stderr handles to a window. The console
application is hidden and all I/O operations are made through QuickWin
A Visit to Redmond, Part 1 [Interview, Article, Visual C++] www.codeproject.com 17-Oct-2000 by Chris Maunder
A Visit to Redmond, Part 1
Chris Maunder
For those who are curious as to what a hastily scheduled trip to
Redmond is like.
CSS For Beginners [Control, CSS, HTML, File, Article, Visual C++] www.codeproject.com 17-Oct-2000 by Nongjian Zhou
CSS For Beginners
Nongjian Zhou
Add CSS to your HTML Files.
Use Regular Expression in your C++ program [String, Regular Expression, Article, Visual C++] www.codeproject.com 17-Oct-2000 by Sherwood Hu
Use Regular Expression in your C++ program
Sherwood Hu
how to use the Microsoft regular expression object in your C++ program
CNetworkTreeCtrl [Tree Control, CWaitingTreeCtrl Class, Network, Article, Visual C++] www.codeproject.com 17-Oct-2000 by Paolo Messina
CNetworkTreeCtrl
Paolo Messina
A CWaitingTreeCtrl-derived class to display Network resources
CProgressFX and CHourglassFX [Tree Control, CWaitingTreeCtrl Class, Article, Visual C++] www.codeproject.com 17-Oct-2000 by Paolo Messina
CProgressFX and CHourglassFX
Paolo Messina
Two animation provider classes to add animation effects to any
CWaitingTreeCtrl-derived class
CShellTreeCtrl [Tree Control, CWaitingTreeCtrl Class, Shell, Article, Visual C++] www.codeproject.com 17-Oct-2000 by Paolo Messina
CShellTreeCtrl
Paolo Messina
A CWaitingTreeCtrl-derived class to display Shell's resources
CWaitingTreeCtrl [Tree Control, CWaitingTreeCtrl Class, CTreeCtrl Class, Article, Visual C++] www.codeproject.com 17-Oct-2000 by Paolo Messina
CWaitingTreeCtrl
Paolo Messina
A CTreeCtrl derived class that populates the branches of a tree only
when necessary, with optional visual effects.
WTL bugs [Windows Template Library, WTL, ATL, Article, Visual C++] www.codeproject.com 17-Oct-2000 by Paul Bludov
WTL bugs
Paul Bludov
Known WTL & ATL bugs
QuickWin: Console Application Into a Window [Console, Article, Visual C++] www.codeguru.com 17-Oct-2000 by Jean-Claude Lanz
QuickWin: Console Application Into a Window
Jean-Claude Lanz
Extremely useful tool that enables you to redirect the output of
applications to a window. Also includes CRedirect class for inclusion in your
own applications.
RAS Detection Routine
Jeroen-Bart Engelen
Updated to recognize RAS installed on Windows ME
Examine Information on Windows NT System Level Primitives [System, Article, Visual C++] www.codeguru.com 17-Oct-2000 by Zoltan Csizmadia
Examine Information on Windows NT System Level Primitives
Zoltan Csizmadia
Two low level utilities to examine Windows NT information such as
processes, threads, windows, modules and objects.
17-Oct-2000
17-Oct-2000
Graphical Combos
Creating owner drawn Combo Boxes in Delphi. See how to code a graphical
drop-down list - a combo box of colors; and a true true-type font picker.
Owner Drawing - an excellent way to improve the look and feel of your Delphi application by changing the control's standard appearance (using: Delphi 5.0) [Owner-drawn, Delphi, Tip] delphi.about.com 16-Oct-2000
Owner Drawing - an excellent way to improve the look and feel of your Delphi
application by changing the control's standard appearance. Creating a graphical
(popup) menu.
Dateline: 10/03/2000
I guess we all like the idea of graphics displayed in the "Start" menu of
Windows XX. Have you ever wondered is it possible to do custom control drawing
with Delphi?
Owner Drawing
Often it would be nice to modify the behavior or appearance of Delphi's many
controls (visual components). When we want to draw a decorative piece of art on
a screen (component), Delphi allows us to "create" Owner Drawn controls which
let us customize intrinsic controls to look however we want.
In Windows, the system is usually responsible for painting menu items, list
boxes, edit boxes, buttons and similar elements of your application GUI.
For some controls the system allows an application to create an owner-drawn
control, let's say a PopUp Menu, to take responsibility for painting menu
items.
When we set a control's OwnerDraw property to True, Windows no longer draws the
control on the screen. This feature permits an application to alter the
appearance of a control. Windows generates events for each visible item in the
control, and your application handles the events to draw the items. The parent
window (a form) of an owner-drawn control receives WM_DRAWITEM messages when a
portion of the control needs to be painted. When the message is received it is
up to the parent to draw the control however it wants.
OwnerDraw PopUp Menu
Delphi makes the development of graphical menus (items) quite simple by
providing a way to use an ImageList component to add glyphs to menu items.
However, if we want even more control of the graphical representation of menu
items we'll have to deal with owner drawing techniques.
Let's see how to create an Owner-Drawn PopuUp Menu, that behaves like normal
menu but has customized appearance by modifying how it is drawn on screen.
Typically ... (cont.)
Determine if your hard disk is fast enough (using: Windows NT 4.0) [Disk, Performance Monitoring, Windows NT, Tip] www.microsoft.com 16-Oct-2000
DETERMINING IF YOUR HARD DISK IS FAST ENOUGH
Windows NT's Performance Monitor Counter lets you know if your hard drive is
too slow. Before you can run the disk counter, you must activate the physical
and logical disk counters. To do this, you must be logged on as a member of the
Administrators group.
At the command prompt, type diskperf to view a Help document about how to turn
diskperf on and off. (Type diskperf -y to set the system to start disk
performance counters.) This will also show you whether the disk performance
counters have already been activated. Restart the computer to activate the disk
performance counters.
1. Open Performance Monitor (Start | Programs | Administrative Tools |
Performance Monitor).
2. Choose Physical Disk from the Object drop-down menu.
3. Choose Avg Disk Bytes/Transfer from the Counter.
Let this counter run for several days. A value greater than 20 KB indicates
that the disk drive is generally performing well; low values result if an
application is accessing a disk inefficiently, and you should consider
replacing it with a faster drive.
Created elliptical or rounded forms (using: Visual Basic 6.0) [CreateEllipticRgn(), CreatePolygonRgn(), CreateRoundRectRgn(), Form, GetWindowRect(), SetWindowRgn(), Visual Basic, Tip] www.vb2themax.com 16-Oct-2000
CREATE ELLIPTICAL OR ROUNDED FORMS
Private Type POINTAPI
X As Long
Y As Long
End Type
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
' Region API functions
Private Declare Function CreateEllipticRgn Lib "gdi32" (ByVal X1 As Long, ByVal
Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Private Declare Function CreatePolygonRgn Lib "gdi32" (lpPoint As POINTAPI,
ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long
Private Declare Function CreateRoundRectRgn Lib "gdi32" (ByVal X1 As Long,
ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal
Y3 As Long) As Long
Private Declare Function GetWindowRect Lib "user32" (ByVal hWnd As Long, lpRect
As RECT) As Long
Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal
hRgn As Long, ByVal bRedraw As Long) As Long
Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As
Long
' modify the shape of a window
'
' This routine supports three values for SHAPE
' 0 = circle/ellipse, 1=rounded rect, 2=rhomb
'
' Example:
' Private Sub Form_Load()
' SetWindowShape Me.hWnd, 1
' End Sub
'
' NOTES: You get best effects using borderless forms
' Remember to provide alternative commands for
' closing and moving the form
Sub SetWindowShape(ByVal hWnd As Long, ByVal Shape As Long)
Dim lpRect As RECT
Dim wi As Long, he As Long
Dim hRgn As Long
' get the bounding rectangle's size
GetWindowRect hWnd, lpRect
wi = lpRect.Right - lpRect.Left
he = lpRect.Bottom - lpRect.Top
' create a region
Select Case Shape
Case 0 ' circle/ellipse
hRgn = CreateEllipticRgn(0, 0, wi, he)
Case 1 ' rounded rectangle
hRgn = CreateRoundRectRgn(0, 0, wi, he, 20, 20)
Case 2 ' rhomb
Dim lpPoints(3) As POINTAPI
lpPoints(0).X = wi \ 2
... (cont.)
C++ Interview Questions [Article, Visual C++] cplus.about.com 16-Oct-2000
16-Oct-2000
16-Oct-2000
C++ Interview Questions
Be prepared and land that job!
Custom Folders with Active Desktop Templates [Shell Programming, Article, Visual C++] www.codeguru.com 16-Oct-2000 by Dino Esposito
Custom Folders with Active Desktop Templates
Dino Esposito
Illustrates how to modify the way in which Explorer displays the
content of a folder.
Using the Document/View Architecture with a DLL [Document/View, Update, Article, Visual C++] www.codeguru.com 16-Oct-2000 by Roger Allen
Using the Document/View Architecture with a DLL
Roger Allen
Illustrates with demo code how to use Documents and Views that have
been exported from a DLL
Pie Progress Control [Custom Control, Article, Visual C++] www.codeguru.com 16-Oct-2000 by Mukesh Gupta
Pie Progress Control
Mukesh Gupta
ActiveX control to show the progress control in the format of a pie
CmcCombo Class [Article, Visual C++] www.mindcracker.com 16-Oct-2000 by Mahesh Chand
CmcCombo Class
A class provides functionality of edit and list boxes with adding,
deleting items and more ...
Mahesh Chand
16-Oct-2000
16-Oct-2000
Subclass List and Edit boxes in a Combo Box [Article, Visual C++] www.mindcracker.com 16-Oct-2000 by Mahesh Chand
Subclass List and Edit boxes in a Combo Box
This article explains how to subclass edit and list boxes in a combo
box. Ref: MSDN.
Mahesh Chand
16-Oct-2000
16-Oct-2000
How to change mouse cursor? [Article, Visual C++] www.mindcracker.com 16-Oct-2000 by Mahesh Chand
How to change mouse cursor?
Mahesh Chand
16-Oct-2000
16-Oct-2000
How to restrict your application to one instance only? [Article, Visual C++] www.mindcracker.com 16-Oct-2000 by Mahesh Chand
How to restrict your application to one instance only?
Mahesh Chand
16-Oct-2000
16-Oct-2000
How to add tooltips to a dialog box? Sample code attached [Article, Visual C++] www.mindcracker.com 16-Oct-2000 by Mahesh Chand
How to add tooltips to a dialog box? Sample code attached
.
Mahesh Chand
16-Oct-2000
16-Oct-2000
How to create a list box with check boxes? [Article, Visual C++] www.mindcracker.com 16-Oct-2000 by Mahesh Chand
How to create a list box with check boxes?
Mahesh Chand
16-Oct-2000
16-Oct-2000
Donut, a WTL sample: Hosting WebBrowser Control [Windows Template Library, WTL, Control, Article, Visual C++] www.codeproject.com 15-Oct-2000
Donut, a WTL sample: Hosting WebBrowser Control
-N/A
MDI and Tab WebBrowser
CGBitArray : A Packed Array of Flags [C++, MFC, Article, Visual C++] www.codeguru.com 15-Oct-2000 by Gary Whitehead
CGBitArray : A Packed Array of Flags
Gary Whitehead
Class that stores huge arrays of flags in as efficient a manner as
possible (packed into array of BYTEs)
Improved Seed/srand [C++, MFC, Article, Visual C++] www.codeguru.com 15-Oct-2000 by John Gryme
Improved Seed/srand
John Gryme
Better performing version of seeding for srand function
Find and Change Properties Add-in [Add-in, Article, Visual Basic] www.vb2themax.com 14-Oct-2000 by Dean J Giovanelli
Find and Change Properties Add-in
14-Oct-2000
14-Oct-2000
Dean J Giovanelli
This Add-in lets developers quickly find & replace properties in their
active VB6 project without exiting the VBIDE or editing any source code and
with minimal usage of the vb properties window. The results are displayed in a
grid that can be sorted multiple ways by column and can also be exported to a
text file or HTML. Options include Find Whole Word Only, Match Case & more.
Instructions/Help and a setup.exe program are provided. This Add-in is the
answer to that tedious task of having to look through all the files and
associated controls just to find a certain value or to make sure all similar
controls have identical values where needed. You can double-click a row to
select that control in the VB Properties window and can easily change multiple
properties with a single button press.
Updated: 11/14/00
Updated Version: The new version includes a bunch of features that
users have requested, such as: (1) the ability to export data into Access 97
tables & Excel 97 spreadsheets, (2) the VB common Font, Color, and Open File
dialog boxes used for changing these Properties, (3) The Pattern-Matching
option, (4) the ability to edit and change properties that are longer than 255
characters in a better way than the VB Properties window does, (5) an improved
UI, and more.
CHoverButton: A simple hoverbutton with one Bitmap and a tooltip [Button Control, Bitmap, _TrackMouseEvent, Article, Visual C++] www.codeproject.com 13-Oct-2000 by Niek Albers
CList Iterator
Craig Henderson
A simple iteration class for MFC's CList linked list
Generic Lookaside List Class [C++, MFC, STL, COM, Article, Visual C++] www.codeproject.com 13-Oct-2000 by Jim Johnson
Generic Lookaside List Class
Jim Johnson
A simple way to keep items such as COM instances 'warm' and available
for reuse
An Advanced Preview within Document/View architecture [Document/View, Print Preview, MFC, Article, Visual C++] www.codeproject.com 13-Oct-2000 by Yasuhiko Yoshimura
An Advanced Preview within Document/View architecture
Yasuhiko Yoshimura
A simple class that helps provide faster Print Preview within MFC
Document/View applications
Persistent Frames [Document/View, MFC, SDI, MDI, Article, Visual C++] www.codeproject.com 13-Oct-2000 by Stefan Chekanov
Persistent Frames
Stefan Chekanov
A collection of classes that allows MFC SDI and MDI applications to
remember the positions and sizes of their main frame and child frame windows.
Agent Ransack: File searching utility that supports Regular Expressions [Tool, File, Regular Expression, GREP, Article, Visual C++] www.codeproject.com 13-Oct-2000 by Dave Vest
Agent Ransack: File searching utility that supports Regular Expressions
Dave Vest
File, searching, regular expression, GREP, tool, utility
ATL Windows, Part I [ATL, WTL, Article, Visual C++] www.codeguru.com 12-Oct-2000 by Andrew Whitechapel
ATL Windows, Part I
Andrew Whitechapel
Think ATL is only for components? In Andrew's first installment of his
new ATL/WTL column, he presents a full tutorial (including two demos) on using
the ATL windowing classes to write full-fledged Windows applications.
Project Line Counter Add-In v1.11 [Macro, Update, Article, Visual C++] www.codeguru.com 12-Oct-2000 by Oz Solomonovich
Project Line Counter Add-In v1.11
Oz Solomonovich
Latest version of very useful add-in that enables you to quickly
ascertain source code statistics for your entire project
Dynamically Adding and Removing Menu Items [Menu, Article, Visual C++] www.codeguru.com 12-Oct-2000 by Prasad Daflapurkar
Dynamically Adding and Removing Menu Items
Prasad Daflapurkar
Function and example code illustrating how to dynamically add or remove
menu items
How to add Context-Help button (?) to title bar of a Dialog [Article, Visual C++] www.mindcracker.com 12-Oct-2000 by Mahesh Chand
How to add Context-Help button (?) to title bar of a Dialog
Mahesh Chand
12-Oct-2000
12-Oct-2000
Project Line Counter Add-In [Article, Visual C++] www.earthweb.com 12-Oct-2000 by Oz Solomonovich
Project Line Counter Add-In
Oz Solomonovich
12-Oct-2000
12-Oct-2000
The Project Line Counter add-in reports statistics about files in your
Visual C++ projects. Line Counter was created in order to demonstrate various
programming tools and techniques.
Dialog Resource to C# Form Converter [Macro, Article, Visual C++] www.codeguru.com 11-Oct-2000 by Nev Delap
Dialog Resource to C# Form Converter
Nev Delap
Visual Studio Add-In that converts dialog template resources to C#
Radial Control [Control, Article, Visual C++] www.codeguru.com 11-Oct-2000 by David M Flores
Radial Control
David M Flores
Very cool control that can be used to simulate hardware dial controls
(e.g., volume controls, channel selectors, etc.)
Zip and Unzip the MFC Way [C++, MFC, Windows Programming, Update, Article, Visual C++] www.codeguru.com 11-Oct-2000 by Tadeusz Dracz
Zip and Unzip the MFC Way
Tadeusz Dracz
MFC-based library that enables the creation, modification and
extraction of PKZIP and WinZip archives
Zip and Unzip the MFC Way [Article, Visual C++] www.earthweb.com 11-Oct-2000 by Tadeusz Dracz
Zip and Unzip the MFC Way
Tadeusz Dracz
11-Oct-2000
11-Oct-2000
Very nice set of C++ MFC classes that allows for zipping/unzipping of
files
Track the row and column position of the cursor (actually, caret) within a TextBox control (using: Visual Basic 6.0) [SendMessage(), Textbox Control, Visual Basic, Tip] www.pinnaclepublishing.com 10-Oct-2000
Have you ever needed to track the row and column position
of the cursor (actually, caret) within a TextBox control?
The following, originally written for a normal TextBox,
will also work with a RichTextBox if the references are
changed appropriately. Paste this code into your Form's
code window:
Private Declare Function SendMessageLong Lib _
"user32" Alias "SendMessageA" _
(ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long) As Long
Function CursorLine(TextBoxIn As TextBox) As Long
CursorLine = SendMessageLong(TextBoxIn.hwnd, _
&HC9, -1&, 0&) + 1
End Function
Function CursorColumn(TextBoxIn As TextBox) As Integer
CursorColumn = TextBoxIn.SelStart - _
SendMessageLong(TextBoxIn.hwnd, &HBB, -1, 0)
End Function
To see it work, put a Label on your form, put a large
TextBox (with MultiLine set to True and ScrollBars set to
2-Vertical) on the form, load it up with a fair amount of
text, and put the following in the Click event for the
TextBox:
Label1 = "Row: " & CStr(CursorLine(Text1)) & vbNewLine _
& "Column: " & CStr(CursorColumn(Text1))
Run the project and Click away---inside the TextBox, of
course.
Encrypt a string with a password (using: Visual Basic 6.0) [Encryption, Visual Basic, Tip] www.vb2themax.com 10-Oct-2000
ENCRYPT A STRING WITH A PASSWORD
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (dest As
Any, source As Any, ByVal bytes As Long)
' encrypt a string using a password
'
' you must reapply the same function (and same password) on
' the encrypted string to obtain the original, non-encrypted string
'
' you get better, more secure results if you use a long password
' (e.g. 16 chars or longer). This routine works well only with ANSI strings.
Function EncryptString(ByVal Text As String, ByVal Password As String) As String
Dim passLen As Long
Dim i As Long
Dim passChr As Integer
Dim passNdx As Long
passLen = Len(Password)
' null passwords are invalid
If passLen = 0 Then Err.Raise 5
' move password chars into an array of Integers to speed up code
ReDim passChars(0 To passLen - 1) As Integer
CopyMemory passChars(0), ByVal StrPtr(Password), passLen * 2
' this simple algorithm XORs each character of the string
' with a character of the password, but also modifies the
' password while it goes, to hide obvious patterns in the
' result string
For i = 1 To Len(Text)
' get the next char in the password
passChr = passChars(passNdx)
' encrypt one character in the string
Mid$(Text, i, 1) = Chr$(Asc(Mid$(Text, i, 1)) Xor passChr)
' modify the character in the password (avoid overflow)
passChars(passNdx) = (passChr + 17) And 255
' prepare to use next char in the password
passNdx = (passNdx + 1) Mod passLen
Next
EncryptString = Text
End Sub
On The Fly Table Creator [Control, Table, Article, Visual C++] www.codeproject.com 10-Oct-2000 by Rajiv Ramachandran
On The Fly Table Creator
Rajiv Ramachandran
An MS-Word like drop down window for creating tables
Getting Started with SoftICE [Debugging, Article, Visual C++] www.codeguru.com 10-Oct-2000 by John Robbins
Getting Started with SoftICE
John Robbins
Let John Robbins show you how he uses his award-winning low-level
system debugging tool, SoftICE
Active Comments Add-In [Macro, Article, Visual C++] www.codeguru.com 10-Oct-2000 by Andrei Levin
Active Comments Add-In
Andrei Levin
Enables you to point your code to URLs, MSDN links and even audio
clips!!
FileObjectInfo, Digging into the Windows NT Internals [File, Folder, Article, Visual C++] www.codeguru.com 10-Oct-2000 by Holger Erne
FileObjectInfo, Digging into the Windows NT Internals
Holger Erne
Tool (NT native API source code!!) that lets you take a look at Windows
NT's file objects
On the Fly Table Creater [Article, Visual C++] www.mindcracker.com 10-Oct-2000 by Rajiv Ramachandran
On the Fly Table Creater
A class which provides MS-Word like drop down window for creating
tables.
Rajiv Ramachandran
10-Oct-2000
10-Oct-2000
Touch Me - I'm Untouchable [Article, Delphi] delphi.about.com 10-Oct-2000
10-Oct-2000
10-Oct-2000
Touch Me - I'm Untouchable
Intercepting keyboard input for controls that cannot receive the input
focus. Working with keyboard hooks from Delphi.
Operating System Integration - Part 1 (What version of Windows is running?,
What mode is Windows running in?, Retrieving environment variables) (using: Visual Basic 6.0) [GetSystemMetrics(), GetVersionEx(), OSVERSIONINFO, GetEnvironmentVariable(), Visual Basic, Article] visualbasic.about.com 09-Oct-2000
Operating System Integration - Part 1
At some time in your programming career you will need to find out some
technical information about the underlying operating system and platform - be
it the speed of the processor, amount of memory installed or the version of
Microsoft Windows running. In this article, I'll be uncovering the API calls
that you can use to find out everything you ever wanted to know about the
operating system software.
Software Functions
In the first article, let's take a look at some code snippets that will allow
you to retrieve information about the underlying operating system software.
What version of Windows is running?
This handy code accesses the kernel32 API function "GetVersionEx" to retrieve
the flavour of Windows, as well as the version of the operating system
installed.
Declarations
Add the following code into the declarations section of a form:
Private Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128
End Type
Private Declare Function GetVersionEx Lib "kernel32" Alias _
"GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As Long
Private Const VER_PLATFORM_WIN32_NT = 2
Private Const VER_PLATFORM_WIN32_WINDOWS = 1
Private Const VER_PLATFORM_WIN32s = 0
Function
Public Function GetWindowsVersion()
Dim infoStruct As OSVERSIONINFO
infoStruct.dwOSVersionInfoSize = Len(infoStruct)
GetVersionEx infoStruct
If infoStruct.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS Then
GetWindowsVersion = "Windows 95/98"
Else
GetWindowsVersion = "Windows NT"
End If
End Function
Usage
MsgBox "This system has " & GetWindowsVersion & " installed."
What mode is Windows running in?
Windows can run in three different modes: Normal, Safe and Safe with Network.
If the system is performing properly, Windows should be running in Normal mode.
However, if your software relies on the system worki ... (cont.)
Easy to use file finding Dialog [File, Folder, Dialog, Thread, Explorer, Article, Visual C++] www.codeproject.com 09-Oct-2000 by Smaller Animals Software Inc
Easy to use file finding Dialog
Smaller Animals Software Inc
An easy to use multi-Threaded dialog class that will search disks for
files. Similar to Explorer's "Find Files of Folders" tool.
Exporting a tree control to an Excel file [Tree Control, Article, Visual C++] www.codeproject.com 09-Oct-2000 by Sardaukar
Exporting a tree control to an Excel file
Sardaukar
This article is a light sample showing how to iterate and export a tree
control content to an Excel file.
C++ Operators [Article, Visual C++] cplus.about.com 09-Oct-2000
09-Oct-2000
09-Oct-2000
C++ Operators
A tutorial on C++ operators
09-Oct-2000
09-Oct-2000
Tech Workshop - Realtime News
Your Visual Basic Guide takes you step-by-step through creating a
real-time news ticker that can display headlines on your desktop... with help
from the handy Microsoft Internet Transfer Control!
Operating System Integration - Part 1 [Article, Visual Basic] visualbasic.about.com 09-Oct-2000
09-Oct-2000
09-Oct-2000
Operating System Integration - Part 1
Your Visual Basic Guide will be uncovering the API calls that you can
use to find out everything you ever wanted to know about the operating system
software - from Windows version to environment variables!
Variant Streaming Code
Kenneth Kasajian
Several functions to read and write variants to streams and blobs
CHoverButton, Nice Hover Button with One Bitmap and Tooltip. [Button Control, Article, Visual C++] www.codeguru.com 09-Oct-2000 by Niek Albers
CHoverButton, Nice Hover Button with One Bitmap and Tooltip.
Niek Albers
Extremely easy to use hovebutton class
Comment Function Macro for C/C++ [Macro, Article, Visual C++] www.codeguru.com 09-Oct-2000 by Yevgeniy Marchenko
Comment Function Macro for C/C++
Yevgeniy Marchenko
One of the best, this macro solves several issues with other comment
macros
MB ShellSpy Control [Control, PIDL, File, Folder, Article, Visual Basic] www.vb2themax.com 07-Oct-2000 by Marco Bellinaso
MB ShellSpy Control
7-Oct-2000
7-Oct-2000
Marco Bellinaso
This control lets you know when the user performs any file system
operation, such as file or folder creation, deletion, renaming, and so on. In
additionm you can know when a network drive is added or removed, when a media
support (e.g. a CD) is inserted or removed, when the user adds or removes a
printer or an Internet connection, and when a file association is created or
edited. You can decide to spy the entire system or only a specific drive or
folder. For each event you know the new and the old path and PIDL of the
File/Folder. A typical use of this control could be inside a file system log
application.
cout for MFC/Windows/Non Console applications [Debugging, MFC, TRACE, Article, Visual C++] www.codeproject.com 06-Oct-2000 by Dhananjay Gune
cout for MFC/Windows/Non Console applications
Dhananjay Gune
A TRACE macro which traces on a new console of the Windows' application.
Custom Draw Listview Controls, Part II [Windows Programming, Article, Visual C++] www.codeguru.com 06-Oct-2000 by Roger Onslow
Custom Draw Listview Controls, Part II
Roger Onslow
Roger walks you through the creation of a class that eases the burden
on the working class programmer when it comes to custom draw controls.
Function to Capture OpenGL Images to JPG (uses free IJL Library) [OpenGL, Article, Visual C++] www.codeguru.com 06-Oct-2000 by Jonathan de Halleux
Function to Capture OpenGL Images to JPG (uses free IJL Library)
Jonathan de Halleux
Takes the name of an output file and the desired image quality (1-100)
and spits out a .JPG image of your OpenGL screen
Creating controls such as edit box, button on your MDI application's main view window [Article, Visual C++] www.mindcracker.com 06-Oct-2000 by Mahesh Chand
Creating controls such as edit box, button on your MDI application's
main view window
Mahesh Chand
06-Oct-2000
06-Oct-2000
NT File Compression (using: Visual Basic 6.0) [Compression, File, NTFS, Windows NT, Tip, Visual Basic] www.devx.com 05-Oct-2000 by L J Johnson
NT File Compression
By L.J. Johnson
Ever wish you could compress or decompress files and directories on NT's NTFS
volumes from code? Well, this month's 10-minute solution shows you how to do
just that. As is often the case, the full code is included in this ZIP file.
This project started because of a personal need. It looked like it would be
fairly simple—just call CreateFile() to open (and get a handle to) a file or
directory, and then use DeviceIoControl() to do the compression or
decompression. However, one of the "constants" (FSCTL_SET_COMPRESSION) turned
out not to be a constant at all, but a macro.
Private Function GetCtlCode(ByVal xi_lngDeviceType As Long, _
ByVal xi_lngFunction As Long, _
ByVal xi_lngMethod As Long, _
ByVal xi_lngAccess As Long) As Long
GetCtlCode = _
(CLng(xi_lngDeviceType) * (2 ^ 16)) Or _
(CLng(xi_lngAccess) * (2 ^ 14)) Or _
(CLng(xi_lngFunction) * (2 ^ 2)) Or _
xi_lngMethod
End Function
Private Sub Class_Initialize()
FSCTL_GET_COMPRESSION = GetCtlCode(xi_lngDeviceType:=FILE_DEVICE_FILE_SYSTEM,
_
xi_lngFunction:=15, _
xi_lngMethod:=METHOD_BUFFERED, _
xi_lngAccess:=FILE_ANY_ACCESS)
FSCTL_SET_COMPRESSION = GetCtlCode(xi_lngDeviceType:=FILE_DEVICE_FILE_SYSTEM, _
xi_lngFunction:=16, _
xi_lngMethod:=METHOD_BUFFERED, _
xi_lngAccess:=FILE_READ_DATA Or _
FILE_WRITE_DATA)
End Sub
In case you are wondering where the "15" and "16" above come from, they are
straight from the macro definition in the Platform SDK.
Once I got past that hurdle, the rest was straightforward. First you open the
file
p_lngFileHwnd = CreateFile(lpFileName:=xi_strFileName, _
dwDesiredAccess:=GENERIC_ALL, _
dwShareMode:=FILE_SHARE_WRITE And FILE_SHARE_READ, _
lpSecurityAttributes:=0&, _
dwCreationDisposition:=OPEN_EXISTING, _
dwFlagsAndAttributes:=FILE_FLAG_BACKUP_SEMANTICS, _
hTemplateFile:=0&)
If you are doing only files, not directories, the dwFlagsAndAttributes can be ... (cont.)
Trapping SQL-DMO Error Messages
If you need to trap SQL Server's (6.5 or above) SQL-DMO
errors in VB using VB's On Error Goto statement, you may
want to try this procedure as a starting point:
Sub ConnectToServer
On Error Goto MyErrorHandler
Dim ServerObject as New SQLOLE.SQLServer
ServerObject.Connect "ServerName". "sa", "password"
Exit Sub
MyErrorHandler:
MsgBox "The connection failed w/error number " +
str(Err.Number)
End Sub
Restriction of textbox input to numbers only (using: Visual Basic 6.0) [KeyPress Event, Textbox Control, Visual Basic, Tip] www.pinnaclepublishing.com 05-Oct-2000 by Peter Chamberlin
Peter Chamberlin
(mailto:peter@chamberlin1.freeserve.co.uk), a UK-based
programmer, writes, "Continuing the restriction of
textbox input to numbers only, I recently constructed the
following code, which does just that and also allows the
user to cut, copy, and paste, all the time still
restricting input content to numbers only! Put the
following into a textbox's KeyPress event...
' Ensure that only Numbers + Backspace Occur
If Not (KeyAscii > 47 And KeyAscii < 58) And Not
(KeyAscii = 3 Or KeyAscii =
8 Or KeyAscii = 22 Or KeyAscii = 24 Or KeyAscii = 32 Or
KeyAscii = 44) Then
' Nullify Non-Numeric Character
KeyAscii = 0
End If
' Remove non-digits from Ctrl-V
If KeyAscii = 22 Then
PreStrip = Clipboard.GetText
NewStrip = ""
For J = 1 To Len(PreStrip)
MidBit = Mid(PreStrip, J, 1)
If Not (MidBit < "0" Or MidBit > "9") Then
NewStrip = NewStrip & MidBit
End If
Next J
Clipboard.SetText NewStrip
End If
"... and only numeric input to a text box will be
allowed. Ctrl-X/C/V is possible, and the routine scans
and removes non-numeric digits from incoming clipboard
copy-n-pastes." Well done, Peter! It's all too easy to
forget the humble KeyAscii.
A comprehensive CE class library to replace ATL and MFC [CE Programming, ATL, MFC, FTP, Database, Article, Visual C++] www.codeproject.com 05-Oct-2000 by Kenny Goers
A comprehensive CE class library to replace ATL and MFC
Kenny Goers
A collection of classes for CE that do not use ATL or MFC, plus an FTP
client, Database viewer, and sample application that solves beam deflection
equations.
Catching Memory leaks
Audrius Vasiliauskas
How catch memory leaks with very little effort
Simple Trace format tips [Debugging, Trace, TRACE, Article, Visual C++] www.codeproject.com 05-Oct-2000 by Audrius Vasiliauskas
Simple Trace format tips
Audrius Vasiliauskas
A simple way to format your TRACE statements so double clicking takes
you directly to the source code.
Dll Tips [DLL, Article, Visual C++] www.codeproject.com 05-Oct-2000 by xicoloko
Dll Tips
xicoloko
Tips for writting Dynamic Link Libraries
Property Sheet View [Document/View, Property Sheet, MFC, Article, Visual C++] www.codeproject.com 05-Oct-2000 by Leo Moll
Property Sheet View
Leo Moll
A "Property Sheet"-like view class for MFC
Number, Currency, Percentage Edit Control [Edit Control, Article, Visual C++] www.codeproject.com 05-Oct-2000 by Ian J Hart
Number, Currency, Percentage Edit Control
Ian J Hart
Edit Control that provide masking, formatting and validating for
number, currency, percentage values.
WizGen Add-in for Visual Studio 6.0 [Macro, Add-in, Visual Studio, Class Wizard, MFC, Article, Visual C++] www.codeproject.com 05-Oct-2000 by Philip Oldaker
WizGen Add-in for Visual Studio 6.0
Philip Oldaker
This Add-in is similar to Class Wizard but can be used for MFC
extension libraries
The Art of Estimating, Part I [Windows Programming, Article, Visual C++] www.codeguru.com 05-Oct-2000 by Christopher Duncan
The Art of Estimating, Part I
Christopher Duncan
Delivering an accurate estimate is the hardest part of the job. In the
first of two parts, Christopher covers the early stages of the development
process that must be handled properly in order to have a firm foundation for a
realistic estimate.
Function to Capture OpenGL Images to JPG (uses free IJL Library) [OpenGL, Article, Visual C++] www.codeguru.com 05-Oct-2000 by Jonathan de Halleux
Function to Capture OpenGL Images to JPG (uses free IJL Library)
Jonathan de Halleux
Takes the name of an output file and the desired image quality (1-100)
and spits out a .JPG image of your OpenGL screen
Read Only ComboBox [Combobox, List Control, Article, Visual C++] www.codeproject.com 04-Oct-2000 by Tim McColl
Read Only ComboBox
Tim McColl
Show a disabled dropdown style combobox like a read only edit box.
Zip and Unzip in the MFC way [C++, MFC, STL, Zip, Article, Visual C++] www.codeproject.com 04-Oct-2000 by Tadeusz Dracz
Zip and Unzip in the MFC way
Tadeusz Dracz
The library to create, modify and extract zip archives
A Better CenterWindow() Function [Dialog, Windows Programming, CWnd::CenterWindow(), Article, Visual C++] www.codeproject.com 04-Oct-2000 by Brian Hart
A Better CenterWindow() Function
Brian Hart
This is a good replacement for CWnd::CenterWindow() that works.
Auto-Completion Edit Control [Edit Control, Auto Completion, Article, Visual C++] www.codeproject.com 04-Oct-2000 by James R Twine
Auto-Completion Edit Control
James R Twine
An edit control that provides auto-completion functionality for small
data sets.
Dim Edit Control [Edit Control, Article, Visual C++] www.codeproject.com 04-Oct-2000 by James R Twine
Dim Edit Control
James R Twine
An edit control that can provide visual cues in it's text area
Enhanced Focus Edit Control with Input Filtering [Edit Control, Article, Visual C++] www.codeproject.com 04-Oct-2000 by James R Twine
Enhanced Focus Edit Control with Input Filtering
James R Twine
An edit control that provides strong visual feedback when it has the
input focus, and allows filtering of input and/or displayed characters.
A sample class to get the favorites of Internet Explorer [Shell Programming, Internet Explorer, Article, Visual C++] www.codeproject.com 04-Oct-2000 by Ray Yang
A sample class to get the favorites of Internet Explorer
Ray Yang
This is a class to get the folders and urls of the IE.
SeaShell: More Explorer Controls [Shell Programming, Explorer, Control, Article, Visual C++] www.codeproject.com 04-Oct-2000 by Philip Oldaker
SeaShell: More Explorer Controls
Philip Oldaker
A set of shell controls and other useful classes
Enumerating Objects with .NET [.NET, Article, Visual C++] www.codeguru.com 04-Oct-2000 by Jeffrey Richter
Enumerating Objects with .NET
Jeffrey Richter
Illustrates how to use the .NET Base Class Library collection classes
to enumerate over a set of objects.
Hot Redundancy Agent for Dynamic Switching of Servers [Network, Article, Visual C++] www.codeguru.com 04-Oct-2000 by Arkady Frankel
Hot Redundancy Agent for Dynamic Switching of Servers
Arkady Frankel
Uses IPHLPAPI to enable you to "hot switch" from one server to another
when one goes down or is unavailable
Microsoft Development Environment-Like Options Dialog Class [Dialog, Article, Visual C++] www.codeguru.com 04-Oct-2000 by Waqas Ahmed Saeed
Microsoft Development Environment-Like Options Dialog Class
Waqas Ahmed Saeed
Great little class that supports new Visual Studio.NET style option
dialogs
Better Method of Creating/Deleting Linked Lists Nodes [C++, MFC, Article, Visual C++] www.codeguru.com 04-Oct-2000 by Ralph Varjabedian
Better Method of Creating/Deleting Linked Lists Nodes
Ralph Varjabedian
Presents alternative to traditional methods of adding and removing
nodes from linked lists
Cautions about ATL String Conversion macro and _alloca() [ATL, String Conversion, _alloca(), Article, Visual C++] www.mindcracker.com 04-Oct-2000 by Bulent Ozkir
Cautions about ATL String Conversion macro and _alloca()
Bulent Ozkir
04-Oct-2000
04-Oct-2000
Don't use the macros in a tight loop. For example, you do NOT want to
write the following kind of code:
void BadIterateCode(LPCTSTR lpsz)
{
USES_CONVERSION;
for (int ii = 0; ii SomeMethod(ii, T2COLE(lpsz));
}
The code above could result in allocating megabytes of memory on the
stack depending on what the contents of the string lpsz is! It also takes time
to convert the string for each iteration of the loop. Instead move such
constant conversions out of the loop:
void MuchBetterIterateCode(LPCTSTR lpsz)
{
USES_CONVERSION;
LPCOLESTR lpszT = T2COLE(lpsz);
for (int ii = 0; ii SomeMethod(ii, lpszT);
}
If the string is not constant, then encapsulate the method call into a
function. This will allow the conversion buffer to be freed each time. For
example:
void CallSomeMethod(int ii, LPCTSTR lpsz)
{
USES_CONVERSION;
pI->SomeMethod(ii, T2COLE(lpsz));
}
void MuchBetterIterateCode2(LPCTSTR* lpszArray)
{
for (int ii = 0; ii
Never return the result of one of the macros, unless the return value
implies making a copy of the data before the return. For example, this code is
bad:
LPTSTR BadConvert(ISomeInterface* pI)
{
USES_CONVERSION;
LPOLESTR lpsz = NULL;
pI->GetFileName(&lpsz);
LPTSTR lpszT = OLE2T(lpsz);
CoMemFree(lpsz);
return lpszT; // bad! returning alloca memory
}
The code above could be fixed by changing the return value to something
which copies the value:
CString BetterConvert(ISomeInterface* pI)
{
USES_CONVERSION;
LPOLESTR lpsz = NULL;
pI->GetFileName(&lpsz);
LPTSTR lpszT = OLE2T(lpsz);
CoMemFree(lpsz);
return lpszT; // CString makes copy
}
The macros are easy to use and easy to insert into your code, but as
you can tell from the caveats above, you need to be careful when using them.
The implementation of each macro uses the _alloca() function to
allo ... (cont.)
Renaming LAN group names utility [Article, Visual C++] www.mindcracker.com 04-Oct-2000 by Bulent Ozkir
Renaming LAN group names utility
A utility which let you rename your local or global group name on your
network.
Bulent Ozkir
04-Oct-2000
04-Oct-2000
Use MSWORD to check a word's spelling and provide suggestions (using: Visual Basic 6.0) [Spell Checking, Word, Visual Basic, Tip] www.vb2themax.com 03-Oct-2000
Use MSWORD to check a word's spelling and provide suggestions
' this should be a module-level or global variable, so that
' Word is instantiated only once
Dim MSWord As New Word.Application
' check the spelling of a word
'
' returns True if the word is correct
' returns False if the word is not correct, and in this case it optionally
' returns a collection that contains all the suggested alternate words
'
' NOTE: requires a reference to the Microsoft Word Object Library
' USAGE:
' Dim suggestions As Collection, w As Variant
' List1.Clear
' If Not CheckSpelling(Text1.Text, suggestions) Then
' For Each w In suggestions
' List1.AddItem w
' Next
' End If
Function CheckSpelling(ByVal Word As String, Optional suggestions As
Collection) As Boolean
Dim splSuggestion As Word.SpellingSuggestion
Dim splSuggestions As Word.SpellingSuggestions
' Add a document, if there aren't any
' this is needed to get suggestions
If MSWord.Documents.Count = 0 Then MSWord.Documents.Add
' ensure there are no extra spaces
Word = Trim$(Word)
' initialize the returned collection
Set suggestions = New Collection
If MSWord.CheckSpelling(Word) Then
' the word is correct
CheckSpelling = True
Else
' the word is incorrect
' get the list of suggested words
Set splSuggestions = MSWord.GetSpellingSuggestions(Word)
For Each splSuggestion In splSuggestions
suggestions.Add splSuggestion.Name, splSuggestion.Name
Next
End If
End Function
Launch a PC's default browser with ShellExecute API (using: Visual Basic 6.0) [Browser, SHELL32.DLL, ShellExecute(), Visual Basic, Tip] www.elementktips.com 03-Oct-2000
Launch a PC's default browser with ShellExecute API
Often, you may want a user to access a specific URI on the Web by
launching his default browser and navigating to the Web site of your
choice. Fortunately, a simple Windows API function ShellExecute() lets
you do just that. When you pass this function a filename, it uses the
Windows file associations to start the appropriate application. As a
result, all you need do is pass this function a URI, and it automatically
launches the default browser and navigates to the requested location.
The ShellExecute() function conforms to the following syntax:
Private Declare Function ShellExecute Lib _
"shell32.dll" Alias "ShellExecuteA" _
(ByVal hWnd As Long, ByVal lpOperation _
As String, ByVal lpFile As String, ByVal _
lpParameters As String, ByVal lpDirectory _
As String, ByVal nShowCmd As Long) As Long
As you can see, it takes quite a few parameters, but don't worry, for our
purposes only two concern us: lpFile and nShowCmd. The lpFile parameter
holds the name of the file or application you want to launch, while the
nShowCmd parameter contains directions indicating how you want the
application to appear when it opens. Typically, you'll use the SW_SHOWNORMAL
constant (1).
So for instance, to use this function to navigate to a Web page with the
URI www.google.com, you'd write code along the lines of:
ShellExecute 0&, vbNullString, "www.google.com", vbNullString, _
vbNullString, SW_SHOWNORMAL
If for any reason the ShellExecute() doesn't execute the application
properly, the function returns a value less than or equal to 32. Otherwise,
it returns a value that points to the launched application.
Visual Studio Syntax Highlighting for C# Files [Tip, Article, Visual C++] www.codeguru.com 03-Oct-2000 by Tom Archer
Visual Studio Syntax Highlighting for C# Files
Tom Archer
Illustrates what you need to do in order to get syntax highlighting for
C# keywords within Visual Studio
RSA MD5 Message Digest [Algorithm, Article, Visual C++] www.codeguru.com 03-Oct-2000 by Nick Stone
RSA MD5 Message Digest
Nick Stone
C++ implementation of the RSA MD5 message digest algorithm.
ActiveX using MFC: Inside Out [ActiveX, MFC, Article, Visual C++] www.mindcracker.com 03-Oct-2000 by Mahesh Chand
ActiveX using MFC: Inside Out
A tutorial that explains how to create an activeX using ControlWizard
and how control wizard works under the hood.
Mahesh Chand
03-Oct-2000
03-Oct-2000
RSA MD5 Message Digest [Article, Visual C++] www.earthweb.com 03-Oct-2000 by Nick Stone of Langfine Ltd
RSA MD5 Message Digest
Nick Stone of Langfine Ltd
3-Oct-2000
3-Oct-2000
C++ implementation of the RSA MD5 message digest algorithm
Microsoft Development Environment-Like Options Dialog Class [Article, Visual C++] www.earthweb.com 03-Oct-2000 by Waqas Ahmed Saeed
Microsoft Development Environment-Like Options Dialog Class
Waqas Ahmed Saeed
3-Oct-2000
3-Oct-2000
Great little class that supports new Visual Studio.NET style option
dialogs
Better Method of Creating/Deleting Linked Lists Nodes [Article, Visual C++] www.earthweb.com 03-Oct-2000 by Ralph Varjabedian
Better Method of Creating/Deleting Linked Lists Nodes
Ralph Varjabedian
3-Oct-2000
3-Oct-2000
Presents an alternative to traditional methods of adding and removing
nodes from linked lists
Hot Redundancy Agent for Dynamic Switching of Servers [Article, Visual C++] www.earthweb.com 03-Oct-2000 by Arkady Frankel
Hot Redundancy Agent for Dynamic Switching of Servers
Arkady Frankel
3-Oct-2000
3-Oct-2000
Uses IPHLPAPI to enable you to "hot switch" from one server to another
when one goes down or is unavailable
Get Crazy - Draw Yourself [Article, Delphi] delphi.about.com 03-Oct-2000
03-Oct-2000
03-Oct-2000
Get Crazy - Draw Yourself
Owner Drawing - an excellent way to improve the look and feel of your
Delphi application by changing the control's standard appearance. Creating a
graphical (popup) menu.
An RGB chooser Dialog [Control, Dialog, Color, RGB, Article, Visual C++] www.codeproject.com 02-Oct-2000 by Masoud Samimi
An RGB chooser Dialog
Masoud Samimi
A simple Color chooser dialog that uses slifer controls to allow the
user to combine different RGB values
Enhanced Progress Bar Control [Control, Progress Bar, Progress Control, Article, Visual C++] www.codeproject.com 02-Oct-2000 by Yury Goltsman
Enhanced Progress Bar Control
Yury Goltsman
An enhanced Progress Control that supports gradient shading, formatted
text, 'snake' and reverse modes, and vertical modes
Drawing Spline Types, Tension and Control Point using OpenGL and MFC [OpenGL, MFC, Article, Visual C++] www.codeproject.com 02-Oct-2000 by Masoud Samimi
Drawing Spline Types, Tension and Control Point using OpenGL and MFC
Masoud Samimi
This sample teaches you how to create an OpenGL based Spline Drawing
application
The GLU functions and hit testing using OpenGL and MFC [OpenGL, MFC, Article, Visual C++] www.codeproject.com 02-Oct-2000 by Masoud Samimi
The GLU functions and hit testing using OpenGL and MFC
Masoud Samimi
This sample teaches you how to create an OpenGL based 3D Drawing
application and demonstrates the GLU functions and hit testing using OpenGL and
MFC
Data Types in C++ [Article, Visual C++] cplus.about.com 02-Oct-2000
02-Oct-2000
02-Oct-2000
Data Types in C++
A tutorial on C++ data types
Top Mouse Tips [Article, Visual Basic] visualbasic.about.com 02-Oct-2000
02-Oct-2000
02-Oct-2000
Top Mouse Tips
Check out a selection of the best code snippets to help you manipulate
the mouse, from your Visual Basic Guide.
Metadata in .NET [Metadata, .NET, DLL, Visual Studio, Article] MSDN Magazine 01-Oct-2000, vol. 15, no. 10 by Matt Pietrek
Metadata in .NET
Avoiding DLL Hell: Introducing Application Metadata in the Microsoft
.NET Framework
Matt Pietrek
.NET Framework, Part 2 [.NET, Web, Visual Studio, Article] MSDN Magazine 01-Oct-2000, vol. 15, no. 10 by Jeffrey Richter
.NET Framework, Part 2
Microsoft .NET Framework Delivers the Platform for an Integrated,
Service-Oriented Web
Jeffrey Richter
ATL Server and Visual Studio .NET [ATL Server, .NET, Web, Visual Studio, Article] MSDN Magazine 01-Oct-2000, vol. 15, no. 10 by Shaun McAravey, Ben Hickman
ATL Server and Visual Studio .NET
Developing High-Performance Web Applications Gets Easier
Shaun McAravey
and
Ben Hickman
VTrace Tool: Building a System Tracer for Windows NT and Windows 2000 [Tracer, Visual C++, Windows NT, Windows NT, Article] MSDN Magazine 01-Oct-2000, vol. 15, no. 10 by Jacob R Lorch, Alan Jay Smith
VTrace Tool: Building a System Tracer for Windows NT and Windows 2000
Jacob R Lorch
and
Alan Jay Smith
Propagate Error Info: Use ATL and C++ to Implement Error-Handling COM Objects [Error, ATL, C++, COM, Visual C++, Article] MSDN Magazine 01-Oct-2000, vol. 15, no. 10 by Panos Kougiouris
Propagate Error Info: Use ATL and C++ to Implement Error-Handling COM
Objects
Panos Kougiouris
Windows Sockets 2.0: Write Scalable Winsock Apps Using Completion Ports [Socket, Winsock, Completion Port, Visual C++, Windows Socket, Article] MSDN Magazine 01-Oct-2000, vol. 15, no. 10 by Anthony Jones, Amol Deshpande
Windows Sockets 2.0: Write Scalable Winsock Apps Using Completion Ports
Anthony Jones
and
Amol Deshpande
Taming the Stateless Beast: Session State and Web Farms [Session State, Web, Visual C++, Article] MSDN Magazine 01-Oct-2000, vol. 15, no. 10 by Johnny Papa
Taming the Stateless Beast: Session State and Web Farms
Johnny Papa
Web-safe Palate [Web, Palette, Internet Explorer, Article] MSDN Magazine 01-Oct-2000, vol. 15, no. 10 by Robert Hess
Web-safe Palate
Robert Hess
MSDN Tree Control [Article, Internet Explorer] MSDN Magazine 01-Oct-2000, vol. 15, no. 10 by Robert Hess
MSDN Tree Control
Robert Hess
Using WinInet for File Transfer [WinInet, File, Visual C++, Article] MSDN Magazine 01-Oct-2000, vol. 15, no. 10 by Robert Hess
Using WinInet for File Transfer
Robert Hess
Client-side Environment for ASP Pages, Part 2 [ASP, Internet Explorer, Article] MSDN Magazine 01-Oct-2000, vol. 15, no. 10 by Dino Esposito
Client-side Environment for ASP Pages, Part 2
Dino Esposito
Server-side Controls in Active Server Pages+ [Active Server Pages+, ASP+, Visual C++, Article] MSDN Magazine 01-Oct-2000, vol. 15, no. 10 by George Shepherd
Server-side Controls in Active Server Pages+
George Shepherd
Improving Runtime Performance with the Smooth Working Set Tool [Performance, Working Set Tuner, WST, Visual C++, Article] MSDN Magazine 01-Oct-2000, vol. 15, no. 10 by John Robbins
Improving Runtime Performance with the Smooth Working Set Tool
John Robbins
.NET:Programming for the New Platform [.NET, Visual Studio, Article] MSDN Magazine 01-Oct-2000, vol. 15, no. 10 by Jeffrey Richter
.NET:Programming for the New Platform
Jeffrey Richter
Sizing Windows for Text Strings [Article, Visual C++] MSDN Magazine 01-Oct-2000, vol. 15, no. 10 by Paul DiLascia
Sizing Windows for Text Strings
Paul DiLascia
Creating Nonrectangular Windows [Article, Visual C++] MSDN Magazine 01-Oct-2000, vol. 15, no. 10 by Paul DiLascia
Creating Nonrectangular Windows
Paul DiLascia
Activating an Open Document [Article, Visual C++] MSDN Magazine 01-Oct-2000, vol. 15, no. 10 by Paul DiLascia
Activating an Open Document
Paul DiLascia
An Improved Variant Type Based on Member Templates [Variant, Template, Article, Visual C++] C++ Users Journal 01-Oct-2000, vol. 18, no. 10 by Fernando Cacciola
An Improved Variant Type Based on Member Templates
Fernando Cacciola
C has generic pointers and varying length argument lists for
flexibility. C++ has templates for even more flexibility, and better type
safety in the bargain.
Classes for Reading and Writing Parameter Blocks [Class, Article, Visual C++] C++ Users Journal 01-Oct-2000, vol. 18, no. 10 by Andrew Queisser
Classes for Reading and Writing Parameter Blocks
Andrew Queisser
Fortran IV let you read and write variables by name since the 1960s. It
still makes sense to do so in C++.
Introduction to Function Try Blocks [Function Try Block, Exception, try, Article, Visual C++] C++ Users Journal 01-Oct-2000, vol. 18, no. 10 by Alan Nash
Introduction to Function Try Blocks
Alan Nash
Exceptions can occur in the darndest places. Fortunately, try blocks
can also be written in most of those places.
Optimizing Substring Operations in String Classes [Substring, String, Class, Article, Visual C++] C++ Users Journal 01-Oct-2000, vol. 18, no. 10 by Todd Niec
Optimizing Substring Operations in String Classes
Todd Niec
If reference counting is good for operations on whole strings, it
should be good for operations on substrings too.
When Bad Things Happen to Good Numbers [Number, Floating Point, Article, Visual C++] C++ Users Journal 01-Oct-2000, vol. 18, no. 10 by Pete Becker
Pete Becker
When Bad Things Happen to Good Numbers
It takes a lot of preparation to write really robust Floating-point
code.
Template Compilation Model [Template, Compiler, Linker, Article, Visual C++] C++ Users Journal 01-Oct-2000, vol. 18, no. 10 by Thomas Becker
Thomas Becker
Template Compilation Model
Templates change the way Compilers and Linkers interact, often in ways
that are hard to fathom.
A programming model to use a thread pool [Thread, Process, Inteprocess Communication, Article, Visual C++] www.codeproject.com 01-Oct-2000 by Sherwood Hu
A programming model to use a thread pool
Sherwood Hu
A class to manage the thread pool
Component Best Practices, Part 1 [Component, Article, Delphi] Delphi Developer 01-Oct-2000, vol. 6, no. 10 by Peter Morris
Component Best Practices, Part 1
Peter Morris
Delphi .NET? [.NET, Article, Delphi] Delphi Developer 01-Oct-2000, vol. 6, no. 10 by Bill Hatfield
Delphi .NET?
Bill Hatfield
A Crash Course in TClientDataSet [TClientDataSet, Article, Delphi] Delphi Developer 01-Oct-2000, vol. 6, no. 10 by Jani Jarvinen
A Crash Course in TClientDataSet
Jani Jarvinen
Capturing a Signature from a Palm Pilot [Palm Pilot, Article, Delphi] Delphi Developer 01-Oct-2000, vol. 6, no. 10 by Isi Robayna
Capturing a Signature from a Palm Pilot
Isi Robayna
Packet Filtering with IPHLPAPI.DLL [Packet Filtering, IPHLPAPI.DLL, Windows 2000, TCP/IP, IP Address, TCP Port, Article, Visual C++] Windows Developer's Journal 01-Oct-2000, vol. 11, no. 10 by Ton Plooy
Packet Filtering with IPHLPAPI.DLL
Ton Plooy
Windows 2000 offers a finer degree of programmatic control over TCP/IP,
including the ability to perform packet filtering. Unfortunately, the
documentation for this new API doesn't make it easy to figure out. This article
demonstrates how you can programmatically install filters to block packets
going to or from specific IP Addresses, on some or all TCP Ports.
An Event Publishing Class for MFC [Event Publishing, Class, MFC, Publishing, Subscribing, Article, Visual C++] Windows Developer's Journal 01-Oct-2000, vol. 11, no. 10 by Eric Grimm
An Event Publishing Class for MFC
Eric Grimm
The concept of Publishing and Subscribing to events is useful in a wide
variety of situations, and can make code more flexible and decoupled. This
article goes beyond the event publishing facilities supplied with MFC to create
a more general framework than the default document/view classes offer.
HTML Help for MFC Applications [HTML Help, MFC, Help, WinHelp, Article, Visual C++] Windows Developer's Journal 01-Oct-2000, vol. 11, no. 10 by Oz Solomonovich
HTML Help for MFC Applications
Oz Solomonovich
HTML Help is Microsoft's replacement for WinHelp, but it's not highly
integrated with MFC. This article provides a library that makes it much easier
for MFC programmers to integrate HTML Help into their projects.
User Interface Programming: Resizable Dialogs [Dialog, Article, Visual C++] Windows Developer's Journal 01-Oct-2000, vol. 11, no. 10 by Petter Hesselberg
User Interface Programming: Resizable Dialogs
Petter Hesselberg
Resizable dialogs let the user change the default size to see more
data, in a listbox or edit control, for example. A feature-rich layout manager
requires a lot of code to do right, but here's a modest implementation that can
easily handle automatic dialog resizing for most situations.
A Simple Thumbnail Image Viewer [Thumbnail, Internet Explorer, Windows Scripting Host, Article, Visual C++] Windows Developer's Journal 01-Oct-2000, vol. 11, no. 10 by Srdjan Mijanovic
A Simple Thumbnail Image Viewer
Srdjan Mijanovic
The trick is to combine Internet Explorer and the Windows Scripting
Host, using a .hta file.
Starting a Console Application with Redirected Output [Console, Redirected Output, Article, Visual C++] Windows Developer's Journal 01-Oct-2000, vol. 11, no. 10 by Mario Contestabile
Starting a Console Application with Redirected Output
Mario Contestabile
Of the many options for redirecting DOS output, which ones work?
A Simple RTF Generator [RTF, Article, Visual C++] Windows Developer's Journal 01-Oct-2000, vol. 11, no. 10 by Chris Yourch
A Simple RTF Generator
Chris Yourch
This reusable class makes it easier to generate RTF that works in rich
edit controls.
The Hot Edit Control [Edit Control, Article, Visual C++] Windows Developer's Journal 01-Oct-2000, vol. 11, no. 10 by Alan Kelly
The Hot Edit Control
Alan Kelly
Those flat controls that 'pop up' when the mouse moves over them look
fancy, but it's not that hard to roll your own, as this example demonstrates.
Checkbox Positioning within CCheckListBox [Checkbox, CCheckListBox Class, Article, Visual C++] Windows Developer's Journal 01-Oct-2000, vol. 11, no. 10 by Agha Khan
Checkbox Positioning within CCheckListBox
Agha Khan
Microsoft left out the ability to control checkbox position, but you
can add it yourself.
Loading a CBitmap Object from a BMP File [CBitmap Class, BMP File, Article, Visual C++] Windows Developer's Journal 01-Oct-2000, vol. 11, no. 10 by Ananth Viswanathan
Loading a CBitmap Object from a BMP File
Ananth Viswanathan
Loading a CBitmap from a resource is easy; loading it directly from a
.bmp file requires an extra step.
A Practical Guide to ADO Extensions: Part I [ADO, ADO Extension, DDL, Security, Jet, Replication Objects Library, Article, Delphi] Delphi Informant 01-Oct-2000, vol. 6, no. 10 by Alex Fedorov, Natalia Elmanova
A Practical Guide to ADO Extensions: Part I
Alex Fedorov and Natalia Elmanova
Mr Fedorov and Ms Elmanova demonstrate the use of two ADO extensions
from Delphi: ADO Extensions for DDL and Security, and the Jet and Replication
Objects Library.
A Quick Way to Shortcuts [Shortcut, Folder, Article, Delphi] Delphi Informant 01-Oct-2000, vol. 6, no. 10 by Bill Todd
A Quick Way to Shortcuts
Bill Todd
Mr Todd examines Windows shortcuts in detail, then shows us how to
build a custom component you can use to create and modify shortcuts in any
Folder.
Automating Word: Part II [Word, Article, Delphi] Delphi Informant 01-Oct-2000, vol. 6, no. 10 by Ron Gray
Automating Word: Part II
Ron Gray
Mr Gray completes his two-part series. In this installment the focus
turns to the Word components available in Delphi 5, and how to link and embed
documents using OLE.
Database Persistent Objects: Part II [Database, Persistent, Article, Delphi] Delphi Informant 01-Oct-2000, vol. 6, no. 10 by Keith Wood
Database Persistent Objects: Part II
Keith Wood
In Part I, he showed us classes that can automatically store their
published properties in a relational database. In this installment, Mr Wood
shares a form wizard for creating them easily.
Internet Messaging Made Easy [Internet, Messaging, Exchange, Outlook, CDO, Article, Delphi] Delphi Informant 01-Oct-2000, vol. 6, no. 10 by Kristen Riley
Internet Messaging Made Easy
Kristen Riley
Need to interact with Microsoft Exchange/Outlook? Ms Riley introduces
the main CDO library with example applications that gather address lists,
retrieve and send e-mail, and more.
Simulate SOAP and Web Services [SOAP, Web Services, XML, MSXML, XmlHttpRequest, Article, Visual C++] Visual C++ Developers Journal 01-Oct-2000, vol. 3, no. 9 by Dino Esposito
Simulate SOAP and Web Services
Dino Esposito
The future of XML-based communications is now: Use the MSXML
XmlHttpRequest component to simulate next-generation Web Services SOAP
functionality today.
Implement SOAP Channel Using Libwww [SOAP, Article, Visual C++] Visual C++ Developers Journal 01-Oct-2000, vol. 3, no. 9 by Cal Caldwell
Implement SOAP Channel Using Libwww
Cal Caldwell
Get a hands-on understanding of the architecture - and the purpose of
each "layer" - in a SOAP implementation, then implement a SOAP client and
server tailored to your specific domain.
Build Desktop Applications Using Browser Technology [Browser, Internet, Win32, Article, Visual C++] Visual C++ Developers Journal 01-Oct-2000, vol. 3, no. 9 by Nelleke van der Voort, Eric Bergman-Terrell
Build Desktop Applications Using Browser Technology
Nelleke van der Voort and Eric Bergman-Terrell
Use a combination of standard Windows solutions and a few Internet
technologies to build a customizable Win32 desktop app that includes functions
such as e-mail, customizable displays, and the ability to write add-in scripts.
Create Console Applications [Console, MFC, C++, NT Service, COM, Article, Visual C++] Visual C++ Developers Journal 01-Oct-2000, vol. 3, no. 9 by Bill Wagner
Create Console Applications
Bill Wagner
VC++ is more than just MFC applications. Here, learn to leverage the
C++ standard library to create a variety of non-GUI apps, including NT
Services, COM EXE servers, and console apps.
6 Tips for Debugging COM+ Components [Debugging, COM+, Component, Article, Visual C++] Visual C++ Developers Journal 01-Oct-2000, vol. 3, no. 9 by Alan Gordon
6 Tips for Debugging COM+ Components
Alan Gordon
Debugging configured COM+ components is easy if you master these simple
- but often overlooked - tips.
Develop Apps for a Custom Platform [Windows CE, Article, Visual C++] Visual C++ Developers Journal 01-Oct-2000, vol. 3, no. 9 by Andy Harding
Develop Apps for a Custom Platform
Andy Harding
Get the lowdown on Windows CE 3.0, and banish rogue memory allocations.
Add Traces and Asserts to Your ATL 3.0 Programs [Trace, Assert, ATL, Debugging, Article, Visual C++] Visual C++ Developers Journal 01-Oct-2000, vol. 3, no. 9 by Richard Grimes
Add Traces and Asserts to Your ATL 3.0 Programs
Richard Grimes
Use asserts in debug builds to highlight cases when required conditions
aren't met. Traces let you dump information you can check later.
Writing Custom Surrogates [Surrogate, Out-of-Process Server, COM, Article, Visual C++] Visual C++ Developers Journal 01-Oct-2000, vol. 3, no. 9 by George Shepherd
Writing Custom Surrogates
George Shepherd
Windows' default surrogate is a good way to manage the implementation
details of Out-of-proc activations - custom surrogates are even better. Learn
how to write and use surrogates in your COM-based software development.
Handler Marshaling in Windows 2000 [Marshaling, Windows 2000, Handler Marshaling, COM, Article, Visual C++] Visual C++ Developers Journal 01-Oct-2000, vol. 3, no. 9 by Josh Lane
Handler Marshaling in Windows 2000
Josh Lane
Handler Marshaling marries the best of the standard and custom
marshaling architectures for transmitting remote data in COM.
Create Firewall-Friendly Distributed Apps
Yasser Shohoud
The SOAP Toolkit lets you develop distributed VB apps with SOAP today.
Write HTTP With WinSock [HTTP, WinSock, Article, Visual Basic] Visual Basic Programmer's Journal 01-Oct-2000, vol. 10, no. 12 by Sean Michael Murphy
Write HTTP With WinSock
Sean Michael Murphy
Use the WinSock control to present a user interface through browsers
and to exchange information using HTTP.
A Picture is Worth a Thousand Words [MSChart Control, Article, Visual Basic] Visual Basic Programmer's Journal 01-Oct-2000, vol. 10, no. 12 by Stan Schultes
A Picture is Worth a Thousand Words
Stan Schultes
Take a plunge into the creative aspect of VB programming. Learn how to
use VB's MSChart Control to display your data easily in graphical form.
Use Numbers to Sort Themselves [Sort, Article, Visual Basic] Visual Basic Programmer's Journal 01-Oct-2000, vol. 10, no. 12 by Dave Doknjas
Use Numbers to Sort Themselves
Dave Doknjas
Sometimes the best way to sort data is to let it sort itself.
Noncomparison sorting methods offer improved speed for certain types of data.
MSXML 3 Gains Power [MSXML, Article, Visual Basic] Visual Basic Programmer's Journal 01-Oct-2000, vol. 10, no. 12 by A Russell Jones
MSXML 3 Gains Power
A Russell Jones
MSXML 3's new programming features include some significant
enhancements. This column covers the most important new MSXML features.
Measure Trends Effectively [ADO, Article, Visual Basic] Visual Basic Programmer's Journal 01-Oct-2000, vol. 10, no. 12 by Andy Clark
Measure Trends Effectively
Andy Clark
Learn how to use classes and collections to provide the basis for
potent data-analysis capabilities. Also, learn creative ways to use collection
properties and ADO disconnected recordsets.
Produce Translucent Effects [Translucent, Article, Visual Basic] Visual Basic Programmer's Journal 01-Oct-2000, vol. 10, no. 12 by Karl E Peterson
Produce Translucent Effects
Karl E Peterson
Learn to produce translucent effects with layered windows, and figure
out how to handle fractional math.
Pivot Your Data [Pivot Table, Web, SQL Server, Article, Visual Basic] Visual Basic Programmer's Journal 01-Oct-2000, vol. 10, no. 12 by Ben Taylor
Pivot Your Data
Ben Taylor
Pivot Tables help you present organized data on a Web page quickly. Use
SQL Server to create these powerful pivot tables.
Extend the PropertyBag Object [PropertyBag Object, Persistence, Article, Visual Basic] Visual Basic Programmer's Journal 01-Oct-2000, vol. 10, no. 12 by Francesco Balena
Extend the PropertyBag Object
Francesco Balena
You can use the PropertyBag object to create your own custom
Persistence technique. Here's how.
Use Views to Streamline Database Design [Database, Article, Visual Basic] Visual Basic Programmer's Journal 01-Oct-2000, vol. 10, no. 12 by Barry Fridley
Use Views to Streamline Database Design
Barry Fridley
Views make it easier to use complex data; learn how to implement them
effectively in your database applications.
Do More With Language Support [MLang, Article, Visual Basic] Visual Basic Programmer's Journal 01-Oct-2000, vol. 10, no. 12 by Michael Kaplan
Do More With Language Support
Michael Kaplan
Do language guessing, font linking, and code-page conversion using
MLang, the multilanguage support DLL.
Leverage Domino's KM Features [Domino, Article, Lotus Notes] Notes Advisor 01-Oct-2000 by Chris Horne
Knowledge Management - Lotus Notes & Domino Advisor - October 2000
Leverage Domino's KM Features
Chris Horne
Bread Crumbs Template [Template, Article, Lotus Notes] Notes Advisor 01-Oct-2000 by Keith Reichley
Web Development - Lotus Notes & Domino Advisor - October 2000
Bread Crumbs Template
Keith Reichley
You Are Here [Article, Lotus Notes] Notes Advisor 01-Oct-2000 by Steven D Campbell
User Interface Design - Lotus Notes & Domino Advisor - October 2000
You Are Here
Steven D Campbell
Process Credit Card Transactions with Domino [Credit Card, Transaction, Article, Lotus Notes] Notes Advisor 01-Oct-2000 by Ray Pader
E-Commerce - Lotus Notes & Domino Advisor - October 2000
Process Credit Card Transactions with Domino
Ray Pader
Create User-Defined Drop-Down Menus Using DHTML [Menu, DHTML, Article, Lotus Notes] Notes Advisor 01-Oct-2000 by Shakeel Kassam
Web Development - Lotus Notes & Domino Advisor - October 2000
Create User-Defined Drop-Down Menus Using DHTML
Shakeel Kassam
Bring Calendars to Web Users [Calendar, Web, Article, Lotus Notes] Notes Advisor 01-Oct-2000 by Matt Holthe
Web Development - Lotus Notes & Domino Advisor - October 2000
Bring Calendars to Web Users
Matt Holthe
A Visual Framework (Views, Tabs and Splitters) [Dialog, Windows Programming, SDI, MDI, Article, Visual C++] www.codeproject.com 30-Sep-2000 by Zoran M Todorovic
A Visual Framework (Views, Tabs and Splitters)
Zoran M Todorovic
Creating SDI/MDI applications with splitter and tab windows
EZSkin: A Primitive Framework for building skinnable apps [Dialog, Windows Programming, Bitmap, Article, Visual C++] www.codeproject.com 30-Sep-2000 by VLakshmi Narasimhan
EZSkin: A Primitive Framework for building skinnable apps
VLakshmi Narasimhan
A mini library to build Bitmap based skinnable apps.
MB BrowseForFolder Control [Control, Folder, Article, Visual Basic] www.vb2themax.com 30-Sep-2000 by Marco Bellinaso
MB BrowseForFolder Control
30-Sep-2000
30-Sep-2000
Marco Bellinaso
If you want to show the "Browse for Folder" dialog in your own
application, this is the tool for you. It enables you to change any dialog's
property, such as its caption, foreground color, font, TreeView styles
(HotTracking, SingleClickExpand, LinesAtRoot and so on), a textbox to manually
type the folder name, and a label control to display the currently selected
folder. You can also decide to display folders only, folders and file, printers
or the Internet neighborhood. The control exposes a set of events that let you
know when the dialog is about to be displayed (so that you can select an
initial folder) and when a user selects a folder, and you can cancel the
standard dialog action. You can also learn everything about the item that is
currently selected: its path and display name, its small and large icons, its
description, the type of exe (if it is an executable file), all its attributes.
If the user selected a folder, you can determine whether it is shared or has
any subfolders. The package contains both the control and a class module, so
that you can use all the functionality even if you don't have a form to place
the control on. There is also a FolderTree control, a special TreeView control
that automatically shows the file system structure and all its item. You can
use it to create an even more customized "Browse for folder" dialog or to add a
file/folder browser into your own application.
Finding Enumeration names (using: Visual Basic 6.0) [Enumerate, TLBINF32.DLL, Type Library, Visual Basic, Tip] www.pinnaclepublishing.com 29-Sep-2000 by Jason Bock
FINDING ENUMERATION NAMES
-by Jason Bock
Recently I came across a problem that I thought was going to be somewhat tricky
to solve, until I researched my own brain and remembered a nice component that
comes with VB's installation. By using this component, I was able to retrieve
the enumeration names for any enumeration value.
What's The Problem? When you make an enumeration in VB, you can easily find out
what the name for a specific value is just by looking at the code. For example,
if you had the following enumeration:
Private Enum MyEnum
FirstValue = 1
SecondValue
End Enum
You can do a simple search for Private Enum MyEnum and find out what the name
is for the value equal to 1, which is FirstValue. The problem becomes trickier
with enumerations compiled into type libraries. Granted, VB's Object Library
will display the names at design-time, but let's say that you were given the
enumeration value at run-time.
Just to show you that this does happen in the real world, here's the problem I
ran into that motivates the whole discussion. I was recently playing around
with the CDO Library to find out user information in Exchange. I knew that
Exchange can store information like addresses, phone numbers, etc., but the way
this is exposed is with a value called a property tag, which is stored in the
ID property of each Field object that comes from the Fields collection of the
AddressEntry object. Without getting into a long-winded discussion of CDO, the
bottom line comes down to this: I'm given a property tag value that is a
CdoPropTags enumeration value, and I'd like to be able to map that value to a
descriptive string value. However, the CdoPropTags enumeration has 803 values.
After futzing with OLEView and other tools, I couldn't find a easy way to get
the name/value pairs to put them in a table format. Even if I could, that's a
waste of time, because the type library has that information!
; why should I have to store it again?
However, there' ... (cont.)
Test if IE is installed and get its path (using: Visual Basic 6.0) [Internet Explorer, Registry, Path, Visual Basic, Tip] www.pinnaclepublishing.com 29-Sep-2000 by Jason Bock
TEST WHETHER IE IS INSTALLED AND RETRIEVE ITS PATH
' get the IE installation path, or a null string if it isn't installed
'
' NOTE: requires the GetRegistryValue routine
' that you can download from the site's Code Bank
Function InternetExplorerPath() As String
Const HKEY_LOCAL_MACHINE = &H80000002
' get the path from the registry, or return a null string
InternetExplorerPath = GetRegistryValue(HKEY_LOCAL_MACHINE,
"Software\Microsoft\Windows\CurrentVersion\App Paths\IEXPLORE.EXE", "Path")
' get rid of the trailing semi-colon, if there
If Right$(InternetExplorerPath, 1) = ";" Then
InternetExplorerPath = Left$(InternetExplorerPath,
Len(InternetExplorerPath) - 1)
End If
End Function
Writing scalable server applications using IOCP [Internet, Network, I/O Completion Port, Winsock, Article, Visual C++] www.codeproject.com 29-Sep-2000 by Oz Ben Eliezer
Writing scalable server applications using IOCP
Oz Ben Eliezer
An article about using I/O Completion Ports and Winsock to write robust
and scalable Windows server applications.
W2K BUG: timeout of serial driver uses absolute time [Windows 2000, Date, Time, Article, Visual C++] www.codeproject.com 29-Sep-2000 by Ben Kokx
W2K BUG: timeout of serial driver uses absolute time
Ben Kokx
The serial driver uses an absolute Date/Time instead of a relative time
for its timeout, causing problems in situations like daylight savings.
Removing HTML from the text in ASP [Active Server Pages, HTML, ASP, Article, Visual C++] www.codeproject.com 28-Sep-2000 by Konstantin Vasserman
Removing HTML from the text in ASP
Konstantin Vasserman
Exploring the options of removing HTML tags from the text in ASP.
Text Preview in ASP [Active Server Pages, ASP, Article, Visual C++] www.codeproject.com 28-Sep-2000 by Konstantin Vasserman
Text Preview in ASP
Konstantin Vasserman
How to generate short preview of the text in ASP.
CArray pitfall
Warren Stevens
This article describes how the CArray class can access deleted Memory
in certain situations
ADO Data Bound Class Wizard [Database, ADO, Class Wizard, Article, Visual C++] www.codeproject.com 28-Sep-2000 by Ly Nguyen
ADO Data Bound Class Wizard
Ly Nguyen
ADO Data Bound Class Wizard
Rendering GIF, JPEG, Icon, or Bitmap Files with OleLoadPicture [Bitmap, Palette, Rendering, GIF, JPEG, Icon, OleLoadPicture(), Article, Visual C++] www.codeproject.com 27-Sep-2000 by Wes Rogers
Rendering GIF, JPEG, Icon, or Bitmap Files with OleLoadPicture
Wes Rogers
Easy way to do basic rendering of image files into a view window
Simple text rotation [Font, GDI, GUI, Article, Visual C++] www.codeproject.com 27-Sep-2000 by Stefan Schwedt
Simple text rotation
Stefan Schwedt
A simple function to rotate text around its center point within a
rectangle
Understanding COM Apartments, Part 1 [COM, Article, Visual C++] www.codeguru.com 27-Sep-2000 by Jeff Prosise
Understanding COM Apartments, Part 1
Jeff Prosise
In his inaugural article for CodeGuru, the first part of a two-part
series on COM apartments, Jeff Prosise describes what apartments are, why they
exist, and how to avoid the problems that they introduce.
Custom Draw Listview Controls, Part 1 [Windows Programming, Article, Visual C++] www.codeguru.com 27-Sep-2000 by Roger Onslow
Custom Draw Listview Controls, Part 1
Roger Onslow
In this first part of a two-part series programming owner-drawn
controls, Roger Onslow introduces the concepts and techniques behind writing
your own controls.
Number To English Translation [C++, MFC, Article, Visual C++] www.codeguru.com 27-Sep-2000 by Jason E Neumeier
Number To English Translation
Jason E Neumeier
Useful class that enables you to display the textual representation of
a number (for things such as check writing applications)
Full-Featured 24-bit Color Toolbar [Toolbar, Article, Visual C++] www.codeguru.com 27-Sep-2000 by Peter Lee
Full-Featured 24-bit Color Toolbar
Peter Lee
Enable you to attach 24-bit images to the standard MFC Toolbar that
handles both disabled and hot buttons as well as transparent button backgrounds.
MRU Dialog
Ricardo Belfor
Dialog, that when your app is started without parameters, presents the
user with a list of most recently opened file
Raw TCP/IP library for Windows 2000 [Network, Update, Article, Visual C++] www.codeguru.com 27-Sep-2000 by Barak Weichselbaum
Raw TCP/IP library for Windows 2000
Barak Weichselbaum
Version 2 of this very impressive TCP/IP library released!!
CSplitterWnd Extension that Allows Switching Views in Any Pane [Splitter, Article, Visual C++] www.codeguru.com 27-Sep-2000 by Caroline Englebienne
CSplitterWnd Extension that Allows Switching Views in Any Pane
Caroline Englebienne
Code to switch between multiple views in a splitter window pane
*without* deleting and re-creating views
Set your wallpaper as background of a dialog box [Article, Visual C++] www.mindcracker.com 27-Sep-2000 by Mahesh Chand
Set your wallpaper as background of a dialog box
Mahesh Chand
27-Sep-2000
27-Sep-2000
How to trap buttons of a dialog box without writing handler? [Article, Visual C++] www.mindcracker.com 27-Sep-2000 by Mahesh Chand
How to trap buttons of a dialog box without writing handler?
Mahesh Chand
27-Sep-2000
27-Sep-2000
How to set default button of a dialog box from your program? [Article, Visual C++] www.mindcracker.com 27-Sep-2000 by Mahesh Chand
How to set default button of a dialog box from your program?
Mahesh Chand
27-Sep-2000
27-Sep-2000
How to move focus from one control to other from your program? [Article, Visual C++] www.mindcracker.com 27-Sep-2000 by Mahesh Chand
How to move focus from one control to other from your program?
Mahesh Chand
27-Sep-2000
27-Sep-2000
How to close a modal dialog box from from your program? [Article, Visual C++] www.mindcracker.com 27-Sep-2000 by Mahesh Chand
How to close a modal dialog box from from your program?
Mahesh Chand
27-Sep-2000
27-Sep-2000
How to change text's color of a dialog box? [Article, Visual C++] www.mindcracker.com 27-Sep-2000 by Mahesh Chand
How to change text's color of a dialog box?
Mahesh Chand
27-Sep-2000
27-Sep-2000
How to change background color of controls of a dialog box? [Article, Visual C++] www.mindcracker.com 27-Sep-2000 by Mahesh Chand
How to change background color of controls of a dialog box?
Mahesh Chand
27-Sep-2000
27-Sep-2000
CSplitterWnd Extension that Allows Switching Views in Any Pane [Article, Visual C++] www.earthweb.com 27-Sep-2000 by Caroline Englebienne
CSplitterWnd Extension that Allows Switching Views in Any Pane
Caroline Englebienne
27-Sep-2000
27-Sep-2000
Code to switch between multiple views in a splitter window pane
*without* deleting and re-creating views.
Full-Featured 24-bit Color Toolbar [Article, Visual C++] www.earthweb.com 27-Sep-2000 by Peter Lee
Full-Featured 24-bit Color Toolbar
Peter Lee
27-Sep-2000
27-Sep-2000
Enable you to attach 24-bit images to the standard MFC toolbar that
handles both disabled and hot buttons as well as transparent button backgrounds.
27-Sep-2000
27-Sep-2000
Picture Motion - Double Buffering
Delphi Programming concepts of Double Buffering, technique that is used
to prevent flicker when drawing onto the screen.
MRU Dialog [Article, Visual C++] www.earthweb.com 26-Sep-2000 by Ricardo Belfor
MRU Dialog
Ricardo Belfor
26-Sep-2000
26-Sep-2000
Dialog that, when your app is started without parameters, presents the
user with a list of most recently opened file.
Disabling Ctrl-Alt-Delete and Ctrl-Esc
It is often useful in Visual Basic programs to be able to disable the
Ctrl-Alt-Delete key sequence. It is easily achieved by persuading Windows that
a screen saver is running. This code also disables Ctrl-Esc, that is used to
activate the Start Menu.
Declarations
Copy this code into the declarations section of a module.
Private Declare Function SystemParametersInfo Lib _
"user32" Alias "SystemParametersInfoA" (ByVal uAction _
As Long, ByVal uParam As Long, ByVal lpvParam As Any, _
ByVal fuWinIni As Long) As Long
Code
Sub DisableCtrlAltDelete(bDisabled As Boolean)
Dim X As Long
X = SystemParametersInfo(97, bDisabled, CStr(1), 0)
End Sub
Use
To disable Ctrl-Alt-Delete:
Call DisableCtrlAltDelete(True)
To enable Ctrl-Alt-Delete:
Call DisableCtrlAltDelete(False)
Using the Browse Folder Dialog Box (using: Visual Basic 6.0) [Dialog, SHBrowseForFolder(), SHELL32.DLL, SHGetPathFromIDList(), Visual Basic, Tip] visualbasic.about.com 25-Sep-2000
Using the Browse Folder Dialog Box
If your program requires the user to type in a directory path, why not harness
to the power of the API to display a delightful dialog box to let your users
select a directory from the drive without typing?
You can implement this dialog bow into your applications very easily by using
the following API calls.
SHBrowseForFolder()
SHGetPathFromIDList()
lstrcat()
Demo Project
Start a new Visual Basic standard-EXE project and add a command button.
Declarations
Copy this code into the declarations section of a module.
Private Const BIF_RETURNONLYFSDIRS = 1
Private Const BIF_DONTGOBELOWDOMAIN = 2
Private Const MAX_PATH = 260
Private Declare Function SHBrowseForFolder Lib _
"shell32" (lpbi As BrowseInfo) As Long
Private Declare Function SHGetPathFromIDList Lib _
"shell32" (ByVal pidList As Long, ByVal lpBuffer _
As String) As Long
Private Declare Function lstrcat Lib "kernel32" _
Alias "lstrcatA" (ByVal lpString1 As String, ByVal _
lpString2 As String) As Long
Private Type BrowseInfo
hWndOwner As Long
pIDLRoot As Long
pszDisplayName As Long
lpszTitle As Long
ulFlags As Long
lpfnCallback As Long
lParam As Long
iImage As Long
End Type
Command Button Code
Add this code into the click event of you command button:
'Opens a Browse Folders Dialog Box that displays the
'directories in your computer
Dim lpIDList As Long ' Declare Varibles
Dim sBuffer As String
Dim szTitle As String
Dim tBrowseInfo As BrowseInfo
szTitle = "Hello World. Click on a directory and " & _
"it's path will be displayed in a message box"
' Text to appear in the the gray area under the
' title bar telling you what to do
With tBrowseInfo
.hWndOwner = Me.hWnd ' Owner Form
.lpszTitle = lstrcat(szTitle, "")
.ulFlags = BIF_RETURNONLYFSDIRS + _
BIF_DONTGOBELOWDOMAIN
End With
lpIDList = SHBrowseForFolder(tBrowseInfo)
If (lpIDList) Then
sBuffer = Space(MAX_PATH)
SHGetPathFromIDList lpIDList, sBuf ... (cont.)
Showing the Properties dialog box
This tip demonstrates how to use the Win32 API to bring up the Explorer
properties dialog box for a specified file. This API function has the same
effect as right clicking on a file in Windows 95 and selecting properties.
Declarations
Copy this code into the declarations section of a module.
Type SHELLEXECUTEINFO
cbSize As Long
fMask As Long
hwnd As Long
lpVerb As String
lpFile As String
lpParameters As String
lpDirectory As String
nShow As Long
hInstApp As Long
lpIDList As Long
lpClass As String
hkeyClass As Long
dwHotKey As Long
hIcon As Long
hProcess As Long
End Type
Public Const SEE_MASK_INVOKEIDLIST = &HC
Public Const SEE_MASK_NOCLOSEPROCESS = &H40
Public Const SEE_MASK_FLAG_NO_UI = &H400
Declare Function ShellExecuteEX Lib "shell32.dll" Alias _
"ShellExecuteEx" (SEI As SHELLEXECUTEINFO) As Long
Code
Public Sub ShowProps(FileName As String, OwnerhWnd _
As Long)
Dim SEI As SHELLEXECUTEINFO
Dim r As Long
With SEI
.cbSize = Len(SEI)
.fMask = SEE_MASK_NOCLOSEPROCESS Or _
SEE_MASK_INVOKEIDLIST Or SEE_MASK_FLAG_NO_UI
.hwnd = OwnerhWnd
.lpVerb = "properties"
.lpFile = FileName
.lpParameters = vbNullChar
.lpDirectory = vbNullChar
.nShow = 0
.hInstApp = 0
.lpIDList = 0
End With
r = ShellExecuteEX(SEI)
End Sub
Use
To show the properties dialog box of "c:\autoexec.bat", use the following code:
Call ShowProps("c:\autoexec.bat", Me.hwnd)
Creating a HotKey for your application (using: Visual Basic 6.0) [Hot Key, SendMessage(), Visual Basic, Tip] visualbasic.about.com 25-Sep-2000
Creating a HotKey for your application
Here's an example of how to create a hotkey for an app!
Declarations
Copy this code into the declarations section of a module.
Declare Function SendMessage Lib "user32" _
Alias "SendMessageA" (ByVal hwnd As Long, _
ByVal wMsg As Long, ByVal wParam As Long, _
lParam As Long) As Long
Declare Function DefWindowProc Lib "user32" _
Alias "DefWindowProcA" (ByVal hwnd As Long, _
ByVal wMsg As Long, ByVal wParam As Long, _
ByVal lParam As Long) As Long
Public Const WM_SETHOTKEY = &H32
Public Const WM_SHOWWINDOW = &H18
Public Const HK_SHIFTA = &H141 'Shift + A
Public Const HK_SHIFTB = &H142 'Shift * B
Public Const HK_CONTROLA = &H241 'Control + A
Public Const HK_ALTZ = &H45A
'The value of the key-combination has to
'declared in lowbyte/highbyte-format
'That means as a hex-number: the last two
'characters specify the lowbyte (e.g.: 41 = a),
'the first the highbyte (e.g.: 01 = 1 = Shift)
Form Code
Add the following code into the Form Load event
Me.WindowState = vbMinimized
'Let windows know what hotkey you want for
'your app, setting of lParam has no effect
erg& = SendMessage(Me.hwnd, WM_SETHOTKEY, _
HK_ALTZ, 0)
'Check if succesfull
If erg& <> 1 Then
MsgBox "You need another hotkey", vbOKOnly, _
"Error"
End If
'Tell windows what it should do, when the hotkey
'is pressed -> show the window!
'The setting of wParam and lParam has no effect
erg& = DefWindowProc(Me.hwnd, WM_SHOWWINDOW, _
0, 0)
When the user presses ALT+Z Form1 is shown.
Shutting down Windows (using: Visual Basic 6.0) [ExitWindowsEx(), Visual Basic, Tip] visualbasic.about.com 25-Sep-2000
Shutting down Windows
With one call the the API, you can persuade Windows to shutdown or restart.
This code is perfect for installation routines that change system files, and so
require a complete reboot to be correctly changed.
Declarations
Copy this code into the declarations section of a module.
Public Const EWX_LOGOFF = 0
Public Const EWX_SHUTDOWN = 1
Public Const EWX_REBOOT = 2
Public Const EWX_FORCE = 4
Declare Function ExitWindowsEx Lib "user32" Alias _
"ExitWindowsEx" (ByVal uFlags As Long, ByVal dwReserved _
As Long) As Long
If you want to reboot the computer use the following code:
t& = ExitWindowsEx(EWX_REBOOT, 0)
Database Workshop Part 2 - DB Coding [Article, Visual Basic] visualbasic.about.com 25-Sep-2000
25-Sep-2000
25-Sep-2000
Database Workshop Part 2 - DB Coding
In this week's instalment of the Database Workshop, your Guide explains
how to access your information without the built in Data Control.
cOutlookCalendar .... Class allows you to access the Outlook appointments which appear in the default calendar [Calendar, Outlook, VB Class Module, Visual Basic] www.codeoftheweek.com 25-Sep-2000, no. 129
Requirements
Visual Basic 5.0 or higher.
You will need to create a Reference to Microsoft Outlook 98
Object Model. To create this reference for Visual Basic 4 goto
Tools / References. To create this reference for Visual Basic 5
or 6 goto Project / References. Then select Microsoft Outlook 98
Model. Outlook 2000 should work the same way.
Outlook 98 or higher installed on your machine.
In this Issue
In this issue we discuss how access the Outlook calendar
appointments using the Outlook Object Model.
cOutlookCalendar
This class allows you to access the Outlook appointments which
appear in the default calendar. The full object model for the
AppointmentItem object is available at
http://msdn.microsoft.com/library/psdk/cdo/_olemsg_appointmentitem_object.htm
The basic usage of this class is to set the StartDate and EndDate
properties to control which appointments are returned and then
call the GetAppointments method. This method will retrieve a
collection with the appointments that start between StartDate and
EndDate.
Properties
Public Property Let StartDate(dStart As Date)
Public Property Get StartDate() As Date
The beginning of the date range used to determine with
appointments will be returned by the GetAppointments method.
Public Property Let EndDate(dEnd As Date)
Public Property Get EndDate() As Date
The end of the date range used to determine with appointments
will be returned by the GetAppointments method.
Methods
Public Sub GetAppointments(colAppt As Collection)
This is the method that does most of the work. A collection
object needs to be passed to hold all the appointments between the
date range StartDate and EndDate. The objects which will be
stored in the collection colAppt are AppointmentItem objects. You
can refer to the Outlook Object Model documentation for complete
details at
http://msdn.microsoft.com/library/psdk/cdo/_olemsg_appointmentitem_object.htm
The Count property of the collection can be used to determine how
... (cont.)
Method of Handling Factorials of Any Size [Algorithm, Article, Visual C++] www.codeguru.com 24-Sep-2000 by Hai Yi
Method of Handling Factorials of Any Size
Hai Yi
Method uses linked list to capture each digit of factorial result
thereby not limiting you to C/C++ types
Print Preview Enhancements [Printing, Article, Visual C++] www.codeguru.com 24-Sep-2000 by Roger Allen
Print Preview Enhancements
Roger Allen
Very nice enhancements to Robin Leatherbarrow's print preview extension
Method of Handling Factorials of Any Size [Article, Visual C++] www.earthweb.com 24-Sep-2000 by Hai Yi
Method of Handling Factorials of Any Size
Hai Yi
24-Sep-2000
24-Sep-2000
Method uses linked list to capture each digit of factorial result
thereby not limiting you to C/C++ types.
Print Preview Enhancements [Article, Visual C++] www.earthweb.com 24-Sep-2000 by Roger Allen
Print Preview Enhancements
Roger Allen
24-Sep-2000
24-Sep-2000
Very nice enhancements to Robin Leatherbarrow's print preview extension.
MB Scroller Control [Control, Article, Visual Basic] www.vb2themax.com 23-Sep-2000 by Marco Bellinaso
MB Scroller Control
23-Sep-2000
23-Sep-2000
Marco Bellinaso
Have you ever spent your time trying to arrange too many controls on a
form that was too small for all of them? Now you can relax, at last. Just drop
the MB Scroller Control on a form and all your other control on the Scroller.
if the form resizes and not all the controls are not visible, the Scroller
control shows a vertical/horizontal scrollbar, thus making your form a
scrollable form. The scrollbars hide and show automatically, and if you have
the ActiveDesktop installed you can also change their style into 3D, Flat or
Track3D, the same styles of the VB FlatScrollbar) and their background color.
The control exposes all the standard scrollbar's events, as well as two methods
to programmatically scroll the form's contents.
Create Child Windows using Win32 API [Article, Visual C++] www.mindcracker.com 23-Sep-2000 by Mahesh Chand
Create Child Windows using Win32 API
This sample code creates child windows such as a button, listbox and
edit box. Sample code attached.
Mahesh Chand
23-Sep-2000
23-Sep-2000
Extended Use of .NET RichControl Class [C#, .NET, Article, Visual C++] www.codeproject.com 21-Sep-2000 by Norm Almond
Extended Use of .NET RichControl Class
Norm Almond
A fully stocked owner drawn RichControl class
Adding Icons to the System Tray [Shell Programming, Icon, System Tray, Icon, Article, Visual C++] www.codeproject.com 21-Sep-2000 by Chris Maunder
Adding Icons to the System Tray
Chris Maunder
A class for adding Icons to the system tray
Finding the position and dimensions of the Windows System Tray [Shell Programming, System Tray, Article, Visual C++] www.codeproject.com 21-Sep-2000 by Chris Maunder
Finding the position and dimensions of the Windows System Tray
Chris Maunder
A simple method to get the coordinates of the system tray
How to Avoid an MFC Active Document Container from Hanging [ATL, COM, Article, Visual C++] www.codeguru.com 21-Sep-2000 by Carsten Breum
How to Avoid an MFC Active Document Container from Hanging
Carsten Breum
Fixes problem with Visual Studio wizard-generated Active Document
Containers hanging upon execution
Injecting a DLL into Another Process's Address Space [DLL, Article, Visual C++] www.codeguru.com 21-Sep-2000 by Zoltan Csizmadia
Injecting a DLL into Another Process's Address Space
Zoltan Csizmadia
Code to perform one standard method (DLL Injection) of API Hooking, or
Interception
How to change color of Status bar? [Article, Visual C++] www.mindcracker.com 21-Sep-2000 by Ksheeraj Kumud
How to change color of Status bar?
Sample code available.
Ksheeraj Kumud
21-Sep-2000
21-Sep-2000
How to get version of a dll or an exe file using Win API? [Article, Visual C++] www.mindcracker.com 21-Sep-2000 by KSheeraj Kumud
How to get version of a dll or an exe file using Win API?
Sample code available.
KSheeraj Kumud
21-Sep-2000
21-Sep-2000
Make the My Computer icon show current user name and machine name (using: Windows NT 4.0) [Icon, Registry, Windows NT, Tip] www.microsoft.com 20-Sep-2000
Make the My Computer icon show current user name and machine name
Each Windows desktop has a My Computer icon. Clicking the icon opens the My
Computer folder, displaying available resources such as hard disks, printers,
DUN, scheduled tasks and mobile device connections.
Did you know that you can change the folder name to display the locally
logged-in user's name? To do so, open regedt32.exe and navigate to
HKEY_CLASSES_ROOT\CLSID\ subtree, locate the key named
20D04FE0-3AEA-1069-A2D8-08002B30309D, and follow one of the two instruction
sets below, depending on whether you have Windows 2000 or Windows NT 4.0.
For Windows 2000 systems, select and edit LocalizedString. Copy its text
contents to a safe location such as Notepad. The contents should be similar to
"@D:\WINNT\system32\shell32.dll,-9216@1033, My Computer," without the quotes.
Next, delete the LocalizedString value. Create a new value with the same name
(LocalizedString) whose type is REG_EXPAND_SZ. Paste the saved text into the
text field of the newly created value, but edit the prefix before saving it.
Replace the text "My Computer" in the string with "%username% on
%computername%," without the quotes. For example, a modified string might read
@D:\WINNT\system32\shell32.dll,-9216@1033,%username% on %computername%.
For Windows NT 4.0 systems, select the item in the right pane and
delete it. On the Edit menu, click Add Value and leave the Value Name blank.
Select a Data Type of REG_EXPAND_SZ, and in the string box enter "%userName% on
%computername%," without the quotes. Now close Regedt32 and refresh the desktop
to see the new display caption.
Restrict TextBox entries to Digits
On Visual Basic Developer columnist Rod Stephens' site: a
new advanced HowTo, "Use a new WindowProc to make a
TextBox accept only digits." The trick? Use SetWindowLong
to add the ES_NUMBER style to the TextBox's Window style.
To prevent the user from pasting text into the TextBox or
invoking its context menu, subclass and ignore the
WM_PASTE and WM_CONTEXTMENU messages.
Download it from
http://www.vb-helper.com/HowTo/numonly2.zip.
Restricting Textbox to Digits
I have another solution for restricting a textbox to
digits only.
Create the following function in a module:
'------------------------------------------------------
'echo only 0-9 and backspace
'------------------------------------------------------
Public Function EchoDigits(keyin As Integer) As Integer
Select Case keyin
Case 8, 48 To 57
EchoDigits = keyin
Case Else
EchoDigits = 0
Beep
End Select
End Function
Then, in the KeyPress event of any textbox you want to
control, call the above function like this:
Private Sub txtPort_KeyPress(KeyAscii As Integer)
KeyAscii = EchoDigits(KeyAscii)
End Sub
How do you handle the initialization of a dialog box? (using: Visual C++ 6.0) [CDialog::OnInitDialog(), Class Wizard, Dialog, MFC, OnInitDialog(), WM_INITDIALOG, Visual C++, Tip] www.pinnaclepublishing.com 20-Sep-2000
So how do you handle the initialization of a dialog box?
Simply override and implement OnInitDialog(). You can do
this by opening ClassWizard, selecting your dialog
class's name from the Class Name drop-down, scrolling
down in the Messages list box until you see
WM_INITDIALOG, double-clicking on WM_INITDIALOG, and then
clicking Edit Code.
Add code to the function to perform your initialization.
Since a call to the base class is made, any DDX_Control
data members are ready to use in your override; any of
their member functions will act on the controls to which
they correspond.
How can I detect if there is an active internet connection? (using: Visual Basic 6.0) [Connection, Internet, Registry, Visual Basic, Tip] visualbasic.about.com 20-Sep-2000
How can I detect if there is an active internet connection?
For programs that rely on connecting to the internet, it is very useful to know
whether or not the computer has an active connection. Whenever Windows logs on
to a dial-up connection, it changes a value in the registry. The following code
demonstrates how to read this values to determine whether the computer is
connected or not.
Declarations
You must put the following code into the declarations section of your project.
Public Const ERROR_SUCCESS = 0&
Public Const APINULL = 0&
Public Const HKEY_LOCAL_MACHINE = &H80000002
Public ReturnCode As Long
Declare Function RegCloseKey Lib "advapi32.dll" (ByVal _
hKey As Long) As Long
Declare Function RegOpenKey Lib "advapi32.dll" Alias _
"RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As _
String, phkResult As Long) As Long
Declare Function RegQueryValueEx Lib "advapi32.dll" Alias _
"RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName _
As String, ByVal lpReserved As Long, lpType As Long, _
lpData As Any, lpcbData As Long) As Long
Code
Public Function ActiveConnection() As Boolean
Dim hKey As Long
Dim lpSubKey As String
Dim phkResult As Long
Dim lpValueName As String
Dim lpReserved As Long
Dim lpType As Long
Dim lpData As Long
Dim lpcbData As Long
ActiveConnection = False
lpSubKey = "System\CurrentControlSet\Services\RemoteAccess"
ReturnCode = RegOpenKey(HKEY_LOCAL_MACHINE, lpSubKey, _
phkResult)
If ReturnCode = ERROR_SUCCESS Then
hKey = phkResult
lpValueName = "Remote Connection"
lpReserved = APINULL
lpType = APINULL
lpData = APINULL
lpcbData = APINULL
ReturnCode = RegQueryValueEx(hKey, lpValueName, _
lpReserved, lpType, ByVal lpData, lpcbData)
lpcbData = Len(lpData)
ReturnCode = RegQueryValueEx(hKey, lpValueName, _
lpReserved, lpType, lpData, lpcbData)
If ReturnCode = ERROR_SUCCESS Then
If lpData = 0 Then
ActiveConnection = False
Else
Activ ... (cont.)
How can I disconnect from the internet using VB? (using: Visual Basic 6.0) [Connection, Internet, RAS, Tip, Visual Basic] visualbasic.about.com 20-Sep-2000
How can I disconnect from the internet using VB?
If you want to terminate all connections to the internet using Visual Basic,
you can use the Remote Access Services Hangup function. You first need to
declare the following code in the declaration section of a form or module.
Declarations
Public Const RAS_MAXENTRYNAME As Integer = 256
Public Const RAS_MAXDEVICETYPE As Integer = 16
Public Const RAS_MAXDEVICENAME As Integer = 128
Public Const RAS_RASCONNSIZE As Integer = 412
Public Const ERROR_SUCCESS = 0&
Public Type RasEntryName
dwSize As Long
szEntryName(RAS_MAXENTRYNAME) As Byte
End Type
Public Type RasConn
dwSize As Long
hRasConn As Long
szEntryName(RAS_MAXENTRYNAME) As Byte
szDeviceType(RAS_MAXDEVICETYPE) As Byte
szDeviceName(RAS_MAXDEVICENAME) As Byte
End Type
Public Declare Function RasEnumConnections Lib _
"rasapi32.dll" Alias "RasEnumConnectionsA" (lpRasConn As _
Any, lpcb As Long, lpcConnections As Long) As Long
Public Declare Function RasHangUp Lib "rasapi32.dll" Alias _
"RasHangUpA" (ByVal hRasConn As Long) As LongPublic _
gstrISPName As String
Public ReturnCode As Long
Procedure
Public Sub HangUp()
Dim i As Long
Dim lpRasConn(255) As RasConn
Dim lpcb As Long
Dim lpcConnections As Long
Dim hRasConn As Long
lpRasConn(0).dwSize = RAS_RASCONNSIZE
lpcb = RAS_MAXENTRYNAME * lpRasConn(0).dwSize
lpcConnections = 0
ReturnCode = RasEnumConnections(lpRasConn(0), lpcb, _
lpcConnections)
If ReturnCode = ERROR_SUCCESS Then
For i = 0 To lpcConnections - 1
If Trim(ByteToString(lpRasConn(i).szEntryName)) _
= Trim(gstrISPName) Then
hRasConn = lpRasConn(i).hRasConn
ReturnCode = RasHangUp(ByVal hRasConn)
End If
Next i
End If
End Sub
Public Function ByteToString(bytString() As Byte) As String
Dim i As Integer
ByteToString = ""
i = 0
While bytString(i) = 0&
ByteToString = ByteToString & Chr(bytString(i))
i = i + 1
Wend
End Function
Using the HangUp Pr ... (cont.)
Downloading Web Pages with the Winsock Control (using: Visual Basic 6.0) [Internet, Tip, Visual Basic, Web, WinSock Control] visualbasic.about.com 20-Sep-2000
Downloading Web Pages with the Winsock Control
The Professional and Enterprise Editions of Visual Basic are shipped with the
Winsock control. This control allows you to use the low level Windows Sockets
to connect to remote servers and execute commands or download Web pages. This
tip shows how to connect to a server and download a Web page.
Code
You must have a Winsock control loaded into the project. This code assumes the
control is called Winsock1. There also must be a text box on the form which is
called txtWebPage.
First, connect to the remote computer using the following code:
Winsock1.RemoteHost = "visualbasic.about.com"
Winsock1.RemotePort = 80
Winsock1.Connect
In the Winsock1.Connect event, place the following code to download the web
page.
Dim strCommand as String
Dim strWebPage as String
strWebPage = _
"http://visualbasic.about.com/compute/visualbasic/index.htm"
strCommand = "GET " + strWebPage + " HTTP/1.0" + vbCrLf
strCommand = strCommand + "Accept: */*" + vbCrLf
strCommand = strCommand + "Accept: text/html" + vbCrLf
strCommand = strCommand + vbCrLf
Winsock1.SendData strCommand
The Winsock control will attempt to download the page. When is receives some
data from the server, it will trigger the DataArrival event.
Dim webData As String
Winsock1.GetData webData, vbString
TxtWebPage.Text = TxtWebPage.Text + webData
MessageBox Creator .... Inserts code into your project [AfxMessageBox(), Developer Studio, Message Box, Visual C++, Visual Studio, MessageBox(), VC++ Add-in, Visual Studio Add-in] www.codeguru.com 20-Sep-2000
How many times have you had to go through the same gyrations to create a
message box? Is it the first argument or the second that's the title as opposed
to the text. What are the exact constants again for an OK button and a Cancel
button? What are the valid return values? Well no more! This very useful add-in
saves you from having to remember that from now on! Using this add-in, you can
visually set any of the following:
Icon type
Buttons
Caption (notice the built-in values provided for you!)
Text message
Modality
Default button
You can even specify the conditional expression!
When you're finished selecting your settings, simply click the "Copy to
Clipboard and Close" button. You'll be returned to your previous source window.
Just paste the code from the clipboard and you're done!
Example
Using the settings shown in the figure above, the add-in produced the
following!
if(MessageBox(_T("This is an Error Message !!!\nReturn ?"),
_T("Error"),
MB_ICONHAND|MB_YESNO|MB_DEFBUTTON1)
== IDNO)
{
}
Installing the Add-In
To install the add-in, follow these steps:
Download the DLL (remember to unzip the file) or download the source and build
the DLL
Copy the DLL to the Visual Studio AddIn folder (the default location is the
c:\program files\microsoft visual studio\Common\MSDev98\AddIns' folder).
Click the Tools->Customize menu option
Click the Add-ins and Macro Files tab
Check the "MsgBox Developer Studio Add-In" add-in
Now you can assign it to a key or place it on a toolbar as you like
A DIBSection wrapper for Win32 and WinCE [Bitmap, Palette, CBitmap Class, Article, Visual C++] www.codeproject.com 20-Sep-2000 by Chris Maunder
A DIBSection wrapper for Win32 and WinCE
Chris Maunder
A class that makes using DIBSections as simple as using a CBitmap
Floating Point utilites [C++, MFC, STL, Floating Point, Article, Visual C++] www.codeproject.com 20-Sep-2000 by Simon Hughes
Floating Point utilites
Simon Hughes
A set of floating point utilities
Extended Use of CStatic Class: CLabel 1.5 [Static Control, CStatic Class, Article, Visual C++] www.codeproject.com 20-Sep-2000 by Norm Almond
Extended Use of CStatic Class: CLabel 1.5
Norm Almond
A fully stocked owner drawn CStatic class
ADO Data Bound Class Wizard [Database, Article, Visual C++] www.codeguru.com 20-Sep-2000 by Ly Nguyen
ADO Data Bound Class Wizard
Ly Nguyen
ADO-based class that binds member variables to database columns
MessageBox Visual Studio Add-In [Macro, Article, Visual C++] www.codeguru.com 20-Sep-2000 by Thomas Aust
MessageBox Visual Studio Add-In
Thomas Aust
Very cool (you need to see this!) add-in for adding Message Box code to
your application. Doesn't sound like much, but give it a try. Extremely useful!
How to Avoid an MFC Active Document Container from Hanging [Article, Visual C++] www.earthweb.com 20-Sep-2000 by Carsten Breum
How to Avoid an MFC Active Document Container from Hanging
Carsten Breum
20-Sep-2000
20-Sep-2000
The Active Document Container container technology implementation used
by MFC has a serious bug that in some cases prevents an Active Document
Container from shutting down. The bug can easily be reproduced with an Active
Document Server that contains a RichEdit Control.
Associate a file extension to an executable program (using: Visual Basic 6.0) [File Extension, Registry, SHChangeNotify(), SHELL32.DLL, Visual Basic, Tip] www.vb2themax.com 19-Sep-2000
Associate a file extension to an executable program
_____________________________________________________
Private Declare Sub SHChangeNotify Lib "shell32.dll" (ByVal wEventId As Long,
ByVal uFlags As Long, ByVal dwItem1 As Long, ByVal dwItem2 As Long)
Const SHCNE_ASSOCCHANGED = &H8000000
Const SHCNF_IDLIST = 0
' Create the new file association
'
' Extension is the extension to be registered (eg ".cad"
' ClassName is the name of the associated class (eg "caddoc")
' Description is the textual description (eg "CAD Document"
' ExeProgram is the app that manages that extension (eg "c:\Cad\MyCad.exe")
'
' NOTE: requires CreateRegistryKey -> and SetRegistryValue -> functions
' (these routines can be downloaded from vb2themax's Code Bank
Sub CreateFileAssociation(ByVal Extension As String, ByVal ClassName As String,
ByVal Description As String, ByVal ExeProgram As String)
Const HKEY_CLASSES_ROOT = &H80000000
' ensure that there is a leading dot
If Left(Extension, 1) <> "." Then
Extension = "." & Extension
End If
' create a new registry key under HKEY_CLASSES_ROOT
CreateRegistryKey HKEY_CLASSES_ROOT, Extension
' create a value for this key that contains the classname
SetRegistryValue HKEY_CLASSES_ROOT, Extension, "", ClassName
' create a new key for the Class name
CreateRegistryKey HKEY_CLASSES_ROOT, ClassName & "\Shell\Open\Command"
' set its value to the command line
SetRegistryValue HKEY_CLASSES_ROOT, _
ClassName & "\Shell\Open\Command", "", ExeProgram & " ""%1"""
' notify Windows that file associations have changed
SHChangeNotify SHCNE_ASSOCCHANGED, SHCNF_IDLIST, 0, 0
End Sub
CreateRegistryKey - Create a key in the Registry (using: Visual Basic 6.0) [Registry, Visual Basic, Tip] www.vb2themax.com 19-Sep-2000
CreateRegistryKey - Create a key in the Registry
Date: 4/8/2000
Versions: VB4/32 VB5 VB6 Level: Intermediate
Author: The VB2TheMax Team
Private Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias _
"RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, _
ByVal Reserved As Long, ByVal lpClass As Long, ByVal dwOptions As Long, _
ByVal samDesired As Long, ByVal lpSecurityAttributes As Long, _
phkResult As Long, lpdwDisposition As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As
_
Long
Const KEY_READ = &H20019 ' ((READ_CONTROL Or KEY_QUERY_VALUE Or
' KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY) And (Not
' SYNCHRONIZE))
Const REG_OPENED_EXISTING_KEY = &H2
' Create a registry key, then close it
' Returns True if the key already existed, False if it was created
Function CreateRegistryKey(ByVal hKey As Long, ByVal KeyName As String) As _
Boolean
Dim handle As Long, disposition As Long
If RegCreateKeyEx(hKey, KeyName, 0, 0, 0, 0, 0, handle, disposition) Then
Err.Raise 1001, , "Unable to create the registry key"
Else
' Return True if the key already existed.
CreateRegistryKey = (disposition = REG_OPENED_EXISTING_KEY)
' Close the key.
RegCloseKey handle
End If
End Function
SetRegistryValue - Write a value in the Registry (using: Visual Basic 6.0) [Registry, Visual Basic, Tip] www.vb2themax.com 19-Sep-2000
SetRegistryValue - Write a value in the Registry
Date: 4/8/2000
Versions: VB4/32 VB5 VB6 Level: Intermediate
Author: The VB2TheMax Team
Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" _
(ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, _
ByVal samDesired As Long, phkResult As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As
_
Long
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias _
"RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, _
ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, _
ByVal cbData As Long) As Long
Const KEY_WRITE = &H20006 '((STANDARD_RIGHTS_WRITE Or KEY_SET_VALUE Or
' KEY_CREATE_SUB_KEY) And (Not SYNCHRONIZE))
Const REG_SZ = 1
Const REG_BINARY = 3
Const REG_DWORD = 4
' Write or Create a Registry value
' returns True if successful
'
' Use KeyName = "" for the default value
'
' Value can be an integer value (REG_DWORD), a string (REG_SZ)
' or an array of binary (REG_BINARY). Raises an error otherwise.
Function SetRegistryValue(ByVal hKey As Long, ByVal KeyName As String, _
ByVal ValueName As String, value As Variant) As Boolean
Dim handle As Long
Dim lngValue As Long
Dim strValue As String
Dim binValue() As Byte
Dim length As Long
Dim retVal As Long
' Open the key, exit if not found
If RegOpenKeyEx(hKey, KeyName, 0, KEY_WRITE, handle) Then
Exit Function
End If
' three cases, according to the data type in Value
Select Case VarType(value)
Case vbInteger, vbLong
lngValue = value
retVal = RegSetValueEx(handle, ValueName, 0, REG_DWORD, lngValue, 4)
Case vbString
strValue = value
retVal = RegSetValueEx(handle, ValueName, 0, REG_SZ, ByVal
strValue, _
Len(strValue))
Case vbArray + vbByte
binVa ... (cont.)
Dynamic DC [Font, GDI, GUI, Device Context, Article, Visual C++] www.codeproject.com 19-Sep-2000 by Craig Henderson
Dynamic DC
Craig Henderson
A Device Context class to draw on a window outside of a WM_PAINT
handler.
Logging the Shell Activity [Shell, Article, Visual C++] www.codeguru.com 19-Sep-2000 by Dino Esposito
Logging the Shell Activity
Dino Esposito
In Dino's first article for us, he illustrates why and how you can hook
the Windows shell in order to log user activity.
Making a Difference [Project, Article, Visual C++] www.codeguru.com 19-Sep-2000 by Christopher Duncan
Making a Difference
Christopher Duncan
Christopher extolls on why it's so important (and gives some tips on
how) to do everything you can to avoid being sucked into one of those "headed
for disaster" projects.
18-Sep-2000
18-Sep-2000
Database Workshop Part 1 - Contact Management
In the first in a three part series, your Visual Basic guide explains
how to use the Data Control to create a handy contact management program!
APIHijack: A Library for easy DLL function hooking. [DLL, Article, Visual C++] www.codeproject.com 16-Sep-2000 by Wade Brainerd
APIHijack: A Library for easy DLL function hooking.
Wade Brainerd
This library allows you to replace functions in other DLL with
functions from your own DLL.
MB ActiveLink Control [Control, URL, E-Mail, Article, Visual Basic] www.vb2themax.com 16-Sep-2000 by Marco Bellinaso
MB ActiveLink Control
16-Sep-2000
16-Sep-2000
Marco Bellinaso
The MB ActiveLink Control is a label-type control that the end user can
click to jump to the specified web URL, Email address or document, or open the
associated application. When sending an E-Mail you can specify the Subject, CC
and BCC fields. But the ActiveLink control can do much more, and you can assign
two different values for the caption, font, foreground and backgRound color,
and picture properties, depending on whether the mouse is over the control or
not. There is also the MouseEnter and MouseLeave event, to let you decide
exactly what happens when the mouse hovers on the control. With this control
you can create nice Web style buttons and active pictures.
Protecting pages with include files [Active Server Pages, Article, Visual C++] www.codeproject.com 15-Sep-2000 by Xicoloko
Protecting pages with include files
Xicoloko
An article on how to easily password protect a site using include files
Multithreading using MFC in Plain English: Part I [Article, Visual C++] www.mindcracker.com 15-Sep-2000 by Mahesh Chand
Multithreading using MFC in Plain English: Part I
An tutorial explains basic concepts of multithreading with basic simple
example. A good article for beginners.
Mahesh Chand
15-Sep-2000
15-Sep-2000
Bubbles for Pocket PC [CE Programming, Article, Visual C++] www.codeproject.com 14-Sep-2000 by Ramon de Klein
Bubbles for Pocket PC
Ramon de Klein
An addictive game for PocketPCs with full source code included.
Thread-safe logger with automatic removing log messages from release version. [Debugging, Thread Safe, Thread, Article, Visual C++] www.codeproject.com 14-Sep-2000 by Vlad Kirienko
Thread-safe logger with automatic removing log messages from release
version.
Vlad Kirienko
A log file class for multi-Threaded applications.
Save/Restore main window size with a single function call [Dialog, Windows Programming, MDI, SDI, Article, Visual C++] www.codeproject.com 14-Sep-2000 by Martin Holzherr
Save/Restore main window size with a single function call
Martin Holzherr
Save/restore the main window size at application exit/startup with a
single function call in MDI, SDI and dialog based applications.
Calling a VB ActiveX DLL from a MFC Client [DLL, ActiveX DLL, MFC, Article, Visual C++] www.codeproject.com 14-Sep-2000 by Amit Dey
Calling a VB ActiveX DLL from a MFC Client
Amit Dey
A simple way to call a VB ActiveX DLL from a VC/MFC Client
The Complete Idiot's Guide to Writing Shell Extensions, Part VII [Shell Programming, Shell Extension, Owner-drawn, Menu, Context Menu, Article, Visual C++] www.codeproject.com 14-Sep-2000 by Michael Dunn
The Complete Idiot's Guide to Writing Shell Extensions, Part VII
Michael Dunn
A tutorial on using Owner-drawn Menus in a Context Menu shell
extensions, and on making a context menu extension that responds to a
right-click in a directory background.
The Complete Idiot's Guide to Writing Shell Extensions, Part VIII [Shell Programming, Shell Extension, Explorer, Article, Visual C++] www.codeproject.com 14-Sep-2000 by Michael Dunn
The Complete Idiot's Guide to Writing Shell Extensions, Part VIII
Michael Dunn
A tutorial on adding columns to Explorer's details view via a column
handler shell extension.
Speeding up the tree control [Tree Control, Article, Visual C++] www.codeproject.com 13-Sep-2000 by Tibor Blazko
Speeding up the tree control
Tibor Blazko
Some notes on speed issues with the MS Tree control
Change or remove the desktop wallpaper (using: Visual Basic 6.0) [SystemParametersInfo(), Wallpaper, Visual Basic, Tip] www.devx.com 12-Sep-2000
Change or remove the desktop wallpaper
Private Declare Function SystemParametersInfo Lib "user32" Alias
"SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByRef
lpvParam As Any, ByVal fuWinIni As Long) As Long
Const SPI_SETDESKWALLPAPER = 20
Const SPIF_SENDWININICHANGE = &H2
Const SPIF_UPDATEINIFILE = &H1
' change the desktop wallpaper
' returns True if successful
'
' omit the argument or pass a null string to
' remove the current wallpaper
Function SetWallpaper(Optional ByVal FileName As String) As Boolean
If SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, ByVal FileName, _
SPIF_SENDWININICHANGE Or SPIF_UPDATEINIFILE)Then
SetWallpaper = True
End If
End Function
Maximize Your Main Window (using: Visual C++ 6.0) [CWinApp::InitInstance(), MFC, Visual C++, Tip] www.pinnaclepublishing.com 12-Sep-2000
Maximize Your Main Window
A common question on the message boards and mailing lists
is how to make an application's main window appear
maximized on startup. It's actually quite simple.
In its override of CWinApp::InitInstance(), AppWizard
adds some lines of code near the bottom, which show the
main window of the application to the user:
BOOL CMyApp::InitInstance()
{
//...
pMainFrame->ShowWindow(m_nCmdShow);
pMainFrame->UpdateWindow();
}
The m_nCmdShow variable is a UINT that holds a "show
command;" that is, a code beginning with SW_ that
specifies to ShowWindow how it is to display the main
window. Here are some of the common values -- their
descriptions are quoted from the documentation for
::ShowWindow(), which CWnd::ShowWindow() calls:
SW_SHOW: Activates the window and displays it in its
current size and position.
SW_HIDE: Hides the window and activates another window.
SW_SHOWNORMAL: Activates and displays a window. If the
window is minimized or maximized, the system restores it
to its original size and position. An application should
specify this flag when displaying the window for the
first time.
SW_SHOWMINIMIZED: Activates the window and displays it as
a minimized window.
SW_SHOWMAXIMIZED: Activates the window and displays it as
a maximized window.
You'll want to replace the m_nCmdShow text with
SW_SHOWMAXMIZED so that the main window is maximized
every time, as in the following example:
BOOL CMyApp::InitInstance()
{
//...
pMainFrame->ShowWindow(
/*m_nCmdShow*/ SW_SHOWMAXIMIZED);
pMainFrame->UpdateWindow();
return TRUE;
}
I put the reference to the m_nCmdShow variable in a C-
style comment because when I replace text, sometimes I
like to leave the old text there in a comment to remind
myself of what I replaced.
AfxGetMainWnd() [MFC]
Maximize Your Main Window
A common question on the message boards and mailing lists
is how to make an application's main window appear
maximized on startup. It's actually quite simple.
In its override of CWinApp::InitInstance(), AppWizard
adds some lines of code near the bottom, which show the
main window of the application to the user:
BOOL CMyApp::InitInstance()
{
//...
pMainFrame->ShowWindow(m_nCmdShow);
pMainFrame->UpdateWindow();
}
The m_nCmdShow variable is a UINT that holds a "show
command;" that is, a code beginning with SW_ that
specifies to ShowWindow how it is to display the main
window. Here are some of the common values -- their
descriptions are quoted from the documentation for
::ShowWindow(), which CWnd::ShowWindow() calls:
SW_SHOW: Activates the window and displays it in its
current size and position.
SW_HIDE: Hides the window and activates another window.
SW_SHOWNORMAL: Activates and displays a window. If the
window is minimized or maximized, the system restores it
to its original size and position. An application should
specify this flag when displaying the window for the
first time.
SW_SHOWMINIMIZED: Activates the window and displays it as
a minimized window.
SW_SHOWMAXIMIZED: Activates the window and displays it as
a maximized window.
You'll want to replace the m_nCmdShow text with
SW_SHOWMAXMIZED so that the main window is maximized
every time, as in the following example:
BOOL CMyApp::InitInstance()
{
//...
pMainFrame->ShowWindow(
/*m_nCmdShow*/ SW_SHOWMAXIMIZED);
pMainFrame->UpdateWindow();
return TRUE;
}
I put the reference to the m_nCmdShow variable in a C-
style comment because when I replace text, sometimes I
like to leave the old text there in a comment to remind
myself of what I replaced.
What message should you send to the main window of an MFC
application to exit the program as if the user chose Exit
from the File menu? (using: Visual C++ 6.0) [AfxGetMainWnd(), MFC, SendMessage(), WM_CLOSE, Visual C++, Tip] www.pinnaclepublishing.com 12-Sep-2000
What message should you send to the main window of an MFC
application to exit the program as if the user chose Exit
from the File menu?
Here's the code of CWinApp::OnAppExit, the function that
handles the Exit command from the File menu of your MFC
program:
void CWinApp::OnAppExit()
{
// same as double-clicking on main window close box
ASSERT(m_pMainWnd != NULL);
m_pMainWnd->SendMessage(WM_CLOSE);
}
Did you know that you can use AfxGetMainWnd() to get a
pointer to the main window from anywhere in your MFC
program? All you do is use the pointer, send the message,
and your program will exit, like this:
if (AfxGetMainWnd() != NULL)
AfxGetMainWnd()->SendMessage(WM_CLOSE);
List all the file extensions that are registered in the system (using: Visual Basic 6.0) [File Extension, Registry, Visual Basic, Tip] www.devx.com 12-Sep-2000
List all the file extensions that are registered in the
system
' this is a VB6-only routine
'
' return a bi-dimension string array, where
' arr(0, i) is the file extension
' arr(1, i) is the coresponding ProgID
' arr(2, i) is the associated description
' arr(3, i) is the location of the executable file
'
' Example:
' ' fill a listbox with descriptions associated to each registered file
extension
' Dim a() As String, i As Long
' a() = ListFileExtensions()
' For i = 1 To UBound(a, 2)
' List1.AddItem a(0, i) & vbTab & a(2, i)
' Next
'
' NOTE: requires the EnumRegistryKeys and GetRegistryValue -> functions
' available on VB-2-The-Max's Code Bank
Function ListFileExtensions() As String()
Dim regKeys As Collection
Dim regKey As Variant
Dim extsNdx As Long
Dim progID As String
Dim clsid As String
Const HKEY_CLASSES_ROOT = &H80000000
' retrieve all the subkeys under HKEY_CLASSES_ROOT
Set regKeys = EnumRegistryKeys(HKEY_CLASSES_ROOT, "")
' prepare the array of results
ReDim exts(3, regKeys.Count) As String
' ignore errors
On Error Resume Next
For Each regKey In regKeys
' check whether this is a File extension
If Left$(regKey, 1) = "." Then
' store the extension in the result array
extsNdx = extsNdx + 1
exts(0, extsNdx) = regKey
' the default value for this key is the ProgID
' or another string that can be searched in the Registry
progID = GetRegistryValue(HKEY_CLASSES_ROOT, regKey, "")
exts(1, extsNdx) = progID
' the default value of the key HKEY_CLASSES_ROOT\ProgID is
' the textual description of this entry
exts(2, extsNdx) = GetRegistryValue(HKEY_CLASSES_ROOT, progID, "")
If exts(2, extsNdx) = "" Then
' if this key doesn't exist, delete this entry
extsNdx = extsNdx - 1
Else
... (cont.)
Don't use VB Registry functions in Webclasses and ASP Components (using: Visual Basic 6.0) [ASP, COM, Registry, WebClass, Visual Basic, Tip] www.devx.com 12-Sep-2000
Don't use VB Registry functions in Webclasses and ASP Components
Here's a scenario that might be familiar to you:
- You create a WebClass or a regular COM component that will be invoked from
within an ASP application.
- The application uses VB's built-in Registry functions, such as DeleteSetting,
SaveSetting, GetSetting, or GetAllSettings.
- Everything works when you debug the application inside the IDE.
- However, the application raises a runtime error when you compile it and use in
the production system.
Because the compiled application doesn't run in the interactive Windows desktop,
you must go to the system Event Viewer to see the error message, which is
Run-time error '5': Invalid procedure call or argument.
This isn't a bug but, rather, a consequence of how those Registry functions use
the Registry. Visual Basic 6.0 WebClasses and ASP components run under the
Internet Information Server service. SaveSetting, GetSetting, DeleteSetting, and
GetAllSettings use Registry keys in the HKEY_CURRENT_USER Registry subtree, but
the IIS service can't access the HKEY_CURRENT_USER Registry subtree--and any
attempt to do so will raise an error.
You can work around this problem by reading and writing to another area of the
Registry, such as HKEY_LOCAL_MACHINE or HKEY_USERS. You can use other functions
in the Code Bank to do so.
Silent Install with VB6 Deployment and Packaging Wizard (using: Visual Basic 6.0) [Deployment and Packaging Wizard, Setup, Visual Basic, Tip] www.devx.com 12-Sep-2000 by Bruce Kellerman
Silent Install with VB6 Deployment and Packaging Wizard by Bruce Kellerman
VB6 Deployment and Packaging Wizard's resulting setup.exe has a command line
switch that allows for a silent install. This feature is virtually undocumented
except in the source code for Setup1.exe. The default path for the project file
of Setup1 is:
C:\Program Files\Microsoft Visual Studio\VB98\Wizards\PDWizard\Setup1\Setup1.vbp
To do a silent install, the following syntax is required:
setup.exe /s c:\anylogfilename.log
The filename that follows the /s parameter must include the full path name.
The silent install is only interrupted (that I could see) when the install
encounters the "Setup is attempting to copy a file that is older than the one
currently..." dialog. This interruption doesn't occur if the setup contains the
latest versions of the files being installed.
Get Local Cookies for a Given URL (using: Visual Basic 6.0) [Cookie, URL, WinInet, InternetGetCookie(), Visual Basic, Tip] www.devx.com 12-Sep-2000
Get Local Cookies for a Given URL
Private Declare Function InternetGetCookie Lib "wininet.dll" Alias
"InternetGetCookieA" (ByVal lpszUrlName As String, ByVal lpszCookieName As
String, ByVal lpszCookieData As String, lpdwSize As Long) As Boolean
' Get locally-stored cookies for a specified URL
'
' If CookieName is omitted, returns all the cookies as
' as semicolon-delimited list of NAME=VALUE pairs
Function GetCookies(ByVal URL As String, Optional CookieName As String) As
String
Dim buffer As String
Dim length As Long
' prepare the receiving buffer
length = 10240
buffer = Space$(length)
' query WinInet for cookies from this URL
' a zero value means failure
If InternetGetCookie(URL, vbNullString, buffer, length) = 0 Then Exit
Function
' LENGHT has received the size of returned data
buffer = Left$(buffer, length)
If Len(CookieName) = 0 Then
' the entire cookie string was requested
GetCookies = buffer
Else
' extract one single cookie
Dim cookies() As String
Dim i As Long, tmp As String
' get the individual cookies
cookies = Split(buffer, ";")
' search for the right one
For i = 0 To UBound(cookies)
' trim the leading space, if any
tmp = LTrim$(cookies(i))
If InStr(1, tmp, CookieName & "=", vbTextCompare) = 1 Then
' we've got it
GetCookies = Mid$(tmp, Len(CookieName) + 2)
Exit For
End If
Next
End If
End Function
Create Temporary or Regular Table with SELECT INTO (using: Visual Basic 6.0) [Database, SELECT Statement, Table, Visual Basic, Tip] www.devx.com 12-Sep-2000
Create Temporary or Regular Table with SELECT INTO
________________________________________________________
The SELECT INTO statement is a combination of the SELECT and INSERT T-SQL
commands, that lets you create a new table from a subset of the rows and/or the
columns of another table. The target table of this command is often a temporary
table:
SELECT au_fname, au_lname INTO #authors_CA FROM authors WHERE State='CA'
You can also use SELECT INTO to create a new, non-temporary table, but in this
case you must explicitly enable it, using the sp_dboption stored procedure:
EXEC sp_dboptions pubs, 'select into/bulkcopy', True
SELECT au_fname, au_lname INTO Authors_CA FROM authors WHERE State='CA'
The SELECT INTO statement is very fast, for one reason--the command isn't logged
for backup purposes. More precisely, the command can be inside a transaction and
any rollback command will correctly undo its effects. However, the new values
aren't permanently stored in the log file, therefore after this command you can
only perform a complete database backup (incremental backup raise errors). This
explains why you have to explicitly enable this functionality for non-temporary
tables (temporary tables are never included in backup, so you don't need to use
the sp_dboption command before using SELECT INTO with a temporary table).
COM object can find out who called it, even if the method call came from another machine (using: Visual C++ 6.0) [COM, IServerSecurity, CoGetCallContext(), Visual C++, Tip] www.wintellect.com 12-Sep-2000
Did you know that a COM object can find out who called it, even if the method
call came from another machine? Say Bob logs into machine A using a domain
account (user name = Bob), and then launches an app that makes a call to a COM
object on machine B. If the object executes the following code upon receiving
the method call, pwszName will point to a Unicode character string of the form
domain_name\Bob:
IServerSecurity* pss;
HRESULT hr = CoGetCallContext (IID_IServerSecurity,
(void**) &pss);
if (SUCCEEDED (hr)) {
LPOLESTR pwszName;
hr = pss->QueryBlanket (NULL, NULL, NULL, NULL, NULL,
(void**) &pwszName, NULL);
if (SUCCEEDED (hr)) {
// pwszName identifies the caller.
.
.
.
CoTaskMemFree (pwszName); // Prevent memory leaks!
}
pss->Release ();
}
This is great to know if you want to build a logging feature into your objects.
Now you can not only log the date and time that a method call was received, but
who it was received from, too. Note: You can prevent an object from identifying
a remote caller by disabling authentication. To disable authentication, set the
authentication level to None in both the client and server processes.
Resource leak when painting a bitmap (using: Visual C++ 6.0) [CreateCompatibleDC(), CreateDIBitmap(), SelectObject(), DeleteObject(), Visual C++, Tip] www.wintellect.com 12-Sep-2000
The following code, which paints a bitmap on the screen each time the window is
asked to repaint, suffers a debilitating resource leak - so debilitating that
the system slows to a crawl after less than 100 repaints. Can you spot the bug?
HDC hMemDC = CreateCompatibleDC (hDC);
HBITMAP hBitmap = CreateDIBitmap (hDC, &bitmapinfoheader,
CBM_INIT, &image, &bitmapinfo, DIB_RGB_COLORS);
SelectObject (hMemDC,hBitmap);
BitBlt (hDC, x, y, cx, cy, hMemDC, 0, 0, SRCCOPY);
DeleteObject (hBitmap);
DeleteDC (hMemoryDC);
The problematic code attempts to delete the bitmap by calling DeleteObject.
However, DeleteObject fails because the bitmap hasn't been selected out of the
memory device context. Here's the corrected code, with changes shown in red:
HDC hMemDC = CreateCompatibleDC (hDC);
HBITMAP hBitmap = CreateDIBitmap (hDC, &bitmapinfoheader,
CBM_INIT, &image, &bitmapinfo, DIB_RGB_COLORS);
HGDIOBJ hOldBitmap = SelectObject (hMemDC, hBitmap);
BitBlt (hDC, x, y, cx, cy, hMemDC, 0, 0, SRCCOPY);
SelectObject (hMemDC, hOldBitmap);
DeleteObject (hBitmap);
DeleteDC (hMemoryDC);
Read a file using the FileSystemObject object (using: Visual Basic 6.0) [File, FileSystemObject Object, Visual Basic, Tip] www.topica.com 12-Sep-2000
Read a file using the FileSystemObject object
Previous tips have mentioned the use of the FileSystemObject
component. However, we haven't discussed a simple version of opening a
file and putting it into a control. Here's how you do it:
Dim objFSO As New Scripting.FileSystemObject
Dim objStream As Scripting.TextStream
Set objStream = objFSO.OpenTextFile("C:\TextFile.txt", _
ForReading, False)
txtData.Text = objStream.ReadAll
objStream.Close
This opens the text file named C:\TextFile.txt and puts it into a box
called txtData. It's that simple...
Displaying the File Properties Dialog
This code shows how to display the file properties dialog through VB5/6 Code.
Paste the following code into a module in your project :
option Explicit
'
private Const SW_SHOW = 5
private Const SEE_MASK_INVOKEIDLIST = &HC
private Type SHELLEXECUTEINFO
cbSize as Long
fMask as Long
hwnd as Long
lpVerb as string
lpFile as string
lpParameters as string
lpDirectory as string
nShow as Long
hInstApp as Long
' optional fields
lpIDList as Long
lpClass as string
hkeyClass as Long
dwHotKey as Long
hIcon as Long
hProcess as Long
End Type
private Declare Function ShellExecuteEx Lib "shell32.dll" (byref s as
SHELLEXECUTEINFO) as Long
public Sub DisplayFileProperties(byval sFullFileAndPathName as string)
Dim shInfo as SHELLEXECUTEINFO
With shInfo
.cbSize = LenB(shInfo)
.lpFile = sFullFileAndPathName
.nShow = SW_SHOW
.fMask = SEE_MASK_INVOKEIDLIST
.lpVerb = "properties"
End With
ShellExecuteEx shInfo
End Sub
Now simply call the DisplayFileProperties routine with the full
file and path name of the required file to display the properties.
Four different methods of displaying the 'Find Files' dialog (using: Visual Basic 6.0) [DDE, File, SHELL32.DLL, ShellExecute(), SHFindFiles(), SHSimpleIDListFromPath(), keybd_event(), Visual Basic, Tip] www.codeguru.com 12-Sep-2000
Four different methods of displaying the 'Find Files' dialog from within a
Visual Basic Program.
If you want to use 'Find Files' standard dialog, in your programs you
can choose between the following four methods.
Using DDE: it's needed an label control, even invisible.
Private Sub Command1_Click()
With Label1
.LinkTopic = "Folders|AppProperties"
.LinkMode = vbLinkManual
.LinkExecute "[OpenFindFile(,)]"
End With
End Sub
Private Sub Form_Load()
Label1.Visible = False
Command1.Caption = "Find File (1)..."
Me.Caption = "Find File (1)"
End Sub
Using keybd_event API function to simulate Win + 'F':
Private Declare Sub keybd_event Lib "user32" _
(ByVal bVk As Byte, _
ByVal bScan As Byte, _
ByVal dwFlags As Long, _
ByVal dwExtraInfo As Long)
'
Private Const VK_LWIN = &H5B
Private Const KEYEVENTF_KEYUP = &H2
Private Const VK_APPS = &H5D
'
Private Sub Command1_Click()
Call keybd_event(VK_LWIN, 0, 0, 0)
Call keybd_event(&H46, 0, 0, 0) 'F
Call keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0)
End Sub
'
Private Sub Form_Load()
Command1.Caption = "Find File (2)..."
Me.Caption = "Find File (2)"
End Sub
Using ShellExecute: MS Q183903
(http://support.microsoft.com/support/kb/articles/q183/9/03.asp)
Private Declare Function ShellExecute Lib "shell32.dll" _
Alias "ShellExecuteA" _
(ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long
Private Const SW_SHOWNORMAL = 1
Private Const SW_SHOWMINIMIZED = 2
Private Const SW_SHOWMAXIMIZED = 3
Private Const SW_SHOW = 5
Private Const SW_MINIMIZE = 6
Private Const SW_SHOWMINNOACTIVE = 7
Private Const SW_SHOWNA = 8
Private Const SW_RESTORE = 9
Private Const SW_SHOWDEFAULT = 10
Private Sub Command1_Click()
Call ShellExecute(Me.hwnd, _
"find", _
Dir1.Path, _
vbNullString, _
... (cont.)
Associate a File Extension with Your Application (using: Visual Basic 6.0) [File Extension, RegCreateKeyEx(), Registry, RegSetValueEx(), Visual Basic, Tip] www.microsoft.com 12-Sep-2000
Associate a File Extension with Your Application (Win32)
SUMMARY
If your application makes use of data files and processes command-line
arguments, you may want to associate the extension of your application's data
file with your executable program name by modifying the Registry.
MORE INFORMATION
You can make modifications to the Reg.dat file by calling the RegCreateKey& and
RegSetValue& application programming interface (API) functions.
Step-by-Step Example
Start Visual Basic for Windows. If Visual Basic is already running, from the
File menu (ALT+F, N) choose New Project and create a Standard EXE project.
Form1 is created by default.
Add the following code to the General Declarations section of Form1:
Option Explicit
Private Declare Function RegCreateKey Lib "advapi32.dll" Alias _
"RegCreateKeyA" (ByVal hKey As Long, _
ByVal lpSubKey As String, _
phkResult As Long) As Long
Private Declare Function RegSetValue Lib "advapi32.dll" Alias _
"RegSetValueA" (ByVal hKey As Long, _
ByVal lpSubKey As String, _
ByVal dwType As Long, _
ByVal lpData As String, _
ByVal cbData As Long) As Long
' Return codes from Registration functions.
Const ERROR_SUCCESS = 0&
Const ERROR_BADDB = 1&
Const ERROR_BADKEY = 2&
Const ERROR_CANTOPEN = 3&
Const ERROR_CANTREAD = 4&
Const ERROR_CANTWRITE = 5&
Const ERROR_OUTOFMEMORY = 6&
Const ERROR_INVALID_PARAMETER = 7&
Const ERROR_ACCESS_DENIED = 8&
Private Const HKEY_CLASSES_ROOT = &H80000000
Private Const MAX_PATH = 260&
Private Const REG_SZ = 1
Private Sub Form_Click()
Dim sKeyName As String 'Holds Key Name in registry.
Dim sKeyValue As String 'Holds Key Value in registry.
Dim ret& 'Holds error status if any from API calls.
Dim lphKey& ... (cont.)
Copy, Move, Delete Files and Folders Using SHFileOperation (using: Visual Basic 6.0) [SHELL32.DLL, SHFileOperation(), SHFILEOPSTRUCT, Visual Basic, Tip] www.thescarms.com 12-Sep-2000
Copy, Move, Delete Files and Folders Using SHFileOperation
Still using Kill, Name, ... to delete, rename, ... files and folders? Why? Do
it like Windows does. Its simple to copy, move, rename, delete or send to the
Recycle Bin both files and folders. Your applications can display the same
dialog boxes, status and confirmation messages and progress indicators (flying
files avi) as Windows. You can even use the standard wildcard characters.
Description
The SHFileOperation API lets you perform all of the above mentioned
operations. All you need to do is populate a SHFILEOPSTRUCT structure, which
is shown in the table below, and call SHFileOperation.
The wFunc element of SHFILEOPSTRUCT gets set to the operation you want to
perform. Typical values are FO_COPY (Copy), FO_DELETE (Delete), FO_MOVE
(Move) and FO_RENAME (Rename). pFrom is a vbNull delimited string of files or
folders to perform the operation on. When copying, moving or renaming, pTo is
a vbNull delimited string of destination files or folders. Both pFrom and pTo
must end with a double null.
The fFlags element serves to customize the operation being performed. Common
values are:
FOF_SILENT (Show progress indicator)
FOF_ALLOWUNDO (Lets you undo the operation)
FOF_NOCONFIRMATION (Answer Yes to all questions such as "replace existing
file?")
FOF_RENAMEONCOLLISION (Renames files to Copy x of x if the file exists)
FOF_NOCONFIRMMKDIR (Don't confirm creating a new folder if the operation
requires one)
FOF_FILESONLY (Perform the operation only on files is wildcards are used)
By combining FO_DELETE and FOF_ALLOWUNDO you can send a file or folder to the
Recycle Bin instead of deleting it.
Public Type SHFILEOPSTRUCT
hwnd As Long Handle of dialog box to display status info.
wFunc As Long Operation to perform.
pFrom As String A string specifying one or more source file names.
Multiple names must be null-separated. The list of names must be double
null ... (cont.)
GetRegistryValue - Read the value of a Registry key (using: Visual Basic 6.0) [Registry, Visual Basic, Tip] www.vb2themax.com 12-Sep-2000
GetRegistryValue - Read the value of a Registry key
Date: 4/8/2000
Versions: VB4/32 VB5 VB6 Level: Intermediate
Author: The VB2TheMax Team
Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" _
(ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, _
ByVal samDesired As Long, phkResult As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As
_
Long
Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias _
"RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, _
ByVal lpReserved As Long, lpType As Long, lpData As Any, _
lpcbData As Long) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (dest As _
Any, source As Any, ByVal numBytes As Long)
Const KEY_READ = &H20019 ' ((READ_CONTROL Or KEY_QUERY_VALUE Or
' KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY) And (Not
' SYNCHRONIZE))
Const REG_SZ = 1
Const REG_EXPAND_SZ = 2
Const REG_BINARY = 3
Const REG_DWORD = 4
Const REG_MULTI_SZ = 7
Const ERROR_MORE_DATA = 234
' Read a Registry value
'
' Use KeyName = "" for the default value
' If the value isn't there, it returns the DefaultValue
' argument, or Empty if the argument has been omitted
'
' Supports DWORD, REG_SZ, REG_EXPAND_SZ, REG_BINARY and REG_MULTI_SZ
' REG_MULTI_SZ values are returned as a null-delimited stream of strings
' (VB6 users can use SPlit to convert to an array of string)
Function GetRegistryValue(ByVal hKey As Long, ByVal KeyName As String, _
ByVal ValueName As String, Optional DefaultValue As Variant) As Variant
Dim handle As Long
Dim resLong As Long
Dim resString As String
Dim resBinary() As Byte
Dim length As Long
Dim retVal As Long
Dim valueType As Long
' Prepare the default result
GetRegistryValue = IIf(IsMissing(DefaultValue), Empty, DefaultValue)
' Open the key, exit if not found.
... (cont.)
EnumRegistryKeys - Retrieve all the subkeys of a Registry key (using: Visual Basic 6.0) [Registry, Visual Basic, Tip] www.vb2themax.com 12-Sep-2000
EnumRegistryKeys - Retrieve all the subkeys of a Registry key
Date: 4/8/2000
Versions: VB4/32 VB5 VB6 Level: Intermediate
Author: The VB2TheMax Team
Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" _
(ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, _
ByVal samDesired As Long, phkResult As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As
_
Long
Private Declare Function RegEnumKey Lib "advapi32.dll" Alias "RegEnumKeyA" _
(ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpName As String, _
ByVal cbName As Long) As Long
Const KEY_READ = &H20019 ' ((READ_CONTROL Or KEY_QUERY_VALUE Or
' KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY) And (Not
' SYNCHRONIZE))
' Enumerate registry keys under a given key
'
' returns a collection of strings
Function EnumRegistryKeys(ByVal hKey As Long, ByVal KeyName As String) As _
Collection
Dim handle As Long
Dim length As Long
Dim index As Long
Dim subkeyName As String
' initialize the result collection
Set EnumRegistryKeys = New Collection
' Open the key, exit if not found
If Len(KeyName) Then
If RegOpenKeyEx(hKey, KeyName, 0, KEY_READ, handle) Then Exit Function
' in all case the subsequent functions use hKey
hKey = handle
End If
Do
' this is the max length for a key name
length = 260
subkeyName = Space$(length)
' get the N-th key, exit the loop if not found
If RegEnumKey(hKey, index, subkeyName, length) Then Exit Do
' add to the result collection
subkeyName = Left$(subkeyName, InStr(subkeyName, vbNullChar) - 1)
EnumRegistryKeys.Add subkeyName, subkeyName
' prepare to query for next key
index = index + 1
Loop
' Close the key, if it was actually opened
If handle Then RegCloseKey h ... (cont.)
Interview with Matt Pietrek [Interview, Article, Visual C++] www.codeproject.com 12-Sep-2000 by Chris Maunder
Interview with Matt Pietrek
Chris Maunder
Matt Pietrek gives us his view on the world.
WTL: Button Menu 2 [Windows Template Library, WTL, Menu, Article, Visual C++] www.codeproject.com 12-Sep-2000 by Paul Bludov
WTL: Button Menu 2
Paul Bludov
Use of a Push button with a drop down menu
How I Use BoundsChecker [Debugging, Article, Visual C++] www.codeguru.com 12-Sep-2000 by John Robbins
How I Use BoundsChecker
John Robbins
John Robbins, the famous "BugSlayer", shows us how he personally uses
the award-winning bug-finding product, BoundsChecker, that he helped to make
famous while at NuMega.
How to create a worker thread? [Article, Visual C++] www.mindcracker.com 12-Sep-2000 by Mahesh Chand
How to create a worker thread?
Mahesh Chand
12-Sep-2000
12-Sep-2000
Display a progress bar using secondary thread [Article, Visual C++] www.mindcracker.com 12-Sep-2000 by Mahesh Chand
Display a progress bar using secondary thread
Mahesh Chand
12-Sep-2000
12-Sep-2000
Books to Learn From [Article, Delphi] delphi.about.com 12-Sep-2000
12-Sep-2000
12-Sep-2000
Books to Learn From
What should we look for when picking a Delphi book to learn from -
recommended selection of the top books on Delphi Programming.
cADOtoHTML .... How generate HTML for any database table or query [ADO, Database, HTML, VB Class Module, Visual Basic] www.codeoftheweek.com 11-Sep-2000, no. 128
Requirements
Visual Basic 5.0 or higher.
You will need to create a Reference to Microsoft ActiveX Data
Objects Library. To create this reference for Visual Basic 4 goto
Tools / References. To create this reference for Visual Basic 5
or 6 goto Project / References. Then select Microsoft ActiveX Data
Objects Library. This issue should work with any version of the
library.
cADOtoHTML
In this issue we discuss how generate HTML for any database table
or query.
This class module is the start of a full-featured class to
convert any ADO recordset into an HTML table which can be viewed
in any browser. One of the best uses of this is to generate an
ActiveX component with this class so you can call it from your
Active Server Page scripts. Using this kind of technique allows
you to provide your web site users with dynamic content. We are
planning on using this to build a better search tool for all our
back issues on the web.
To use this class you need to at least set the Recordset property
and then call the HTML method to return the HTML..
Properties
Public TableBorderWidth As Integer
This allows you to specify the width of the table border as it
appears in the browser. This value defaults to 1.
Public BackgroundGraphic As String
Allows you to specify a background graphic to enhance the looks
of your page.
Public Property Set Recordset(RS As ADODB.Recordset)
Specifies the recordset to use to generate the HTML page.
Public Property Let PageTitle(sTitle As String)
Public Property Get PageTitle() As String
Title that will appear in the browser.
Public Property Get HTML() As String
Returns all the HTML text that is required to display the
recordset specified by the Recordset property. If you call this
from an ASP page you would typical just use the Reponse.Write
command to send the text to the browser. You can also store it
into a file for later use (as the sample shows).
Sample Usage
This sample shows one way to use the cADOto ... (cont.)
Creating your first MFC Document/View application [Dialog, Windows Programming, MFC, Document/View, SDI, MDI, Article, Visual C++] www.codeproject.com 11-Sep-2000 by Chris Maunder
Creating your first MFC Document/View application
Chris Maunder
A brief step-by-step tutorial that demonstrates creating an SDI and MDI
based applications using the MFC Doc/View architecture.
Enumerating Internet Explorer's Favorites [Shell Programming, Explorer, Explorer, Article, Visual C++] www.codeproject.com 10-Sep-2000 by Naveen K Kohli
Enumerating Internet Explorer's Favorites
Naveen K Kohli
An article on enumerating a users favorites list from Internet Explorer
Using the Memory Heap in C++ [Article, Visual C++] cplus.about.com 10-Sep-2000
10-Sep-2000
10-Sep-2000
Using the Memory Heap in C++
Allocating and deallocating memory on the heap
CRegistry : Serialize Data In/Out of the Registry [Registry, Update, Article, Visual C++] www.codeguru.com 10-Sep-2000 by Amir Israeli
CRegistry : Serialize Data In/Out of the Registry
Amir Israeli
Very sophisticated class for serializing your date to the Registry
Text Output Screen [C++, MFC, Windows Programming, Article, Visual C++] www.codeguru.com 10-Sep-2000 by Roger Lindström
Text Output Screen
Roger Lindström
Functions to output text to a console window
Connecting to Running Instances of Internet Explorer [Internet Explorer, Article, Visual C++] www.codeguru.com 10-Sep-2000 by Venu Vemula, Robert Walker
Connecting to Running Instances of Internet Explorer
Venu Vemula and Robert Walker
Uses shell interface to connect to and listen to events of running
instances of IE
MFC Printing: Nut and Bolts [Article, Visual C++] www.mindcracker.com 10-Sep-2000 by Mahesh Chand
MFC Printing: Nut and Bolts
An article on how MFC framework under the hood to provide Print and
Print Preview support to your SDI or MDI application.
Mahesh Chand
10-Sep-2000
10-Sep-2000
CDPlayer Pre [Article, Visual C++] www.mindcracker.com 10-Sep-2000 by KSheeraj Kumud
CDPlayer Pre
A simple program plays your CD. Its a pre version.
KSheeraj Kumud
10-Sep-2000
10-Sep-2000
How to get CPU speed? [Article, Visual C++] www.mindcracker.com 10-Sep-2000 by Mahesh Chand
How to get CPU speed?
Mahesh Chand
10-Sep-2000
10-Sep-2000
Connecting to Running Instances of Internet Explorer [Article, Visual C++] www.earthweb.com 10-Sep-2000 by Venu Vemula, Robert Walker
Connecting to Running Instances of Internet Explorer
Venu Vemula, Robert Walker
10-Sep-2000
10-Sep-2000
A simpler (and bug free) way of connecting to running instances of
Internet Explorer.
Non-MFC Date Routines in ATL [ATL, Date, MFC, Component, Article, Visual C++] www.codeproject.com 09-Sep-2000 by Paul E Bible
Non-MFC Date Routines in ATL
Paul E Bible
Non-MFC Date Routines in an ATL Component.
Ping for Windows [Internet, Network, Article, Visual C++] www.codeproject.com 09-Sep-2000 by Norm Almond
Ping for Windows
Norm Almond
A simple Windows based ping program
Advanced Find/Replace Add-In [Add-In, Dialog, Article, Visual Basic] www.vb2themax.com 09-Sep-2000 by Brian Barnett
Advanced Find/Replace Add-In
9-Sep-2000
9-Sep-2000
Brian Barnett
This great add-in improves the standard Find and Replace Dialog with
all the functionality we've been looking for in all these years. First, when
you perform a search you see all the matches in a grid, where you can see the
name of the procedure and the actual line of text where the match is. You can
then goto that line by double-clicking the grid entry, and you can select that
match for the replace operation (yes, you don't have to Replace All if you
don't want to). Of course, all the usual options are supported (Whole Word,
Match Case, Use Regular Expressions) and you can also exclude components from
search. On top of that, this add-in comes with source code!
Strip'em Add-in for Visual Studio 6.0 [Macro, Add-in, Visual Studio, Article, Visual C++] www.codeproject.com 07-Sep-2000 by Itay Szekely
Strip'em Add-in for Visual Studio 6.0
Itay Szekely
This Add-in converts the text format (DOS or UNIX) of a file when it is
saved in Visual Studio.
Start Your Windows Programs From An NT Service [System, NT Service, MFC, Article, Visual C++] www.codeproject.com 07-Sep-2000 by Xiangyang Liu
Start Your Windows Programs From An NT Service
Xiangyang Liu
Make your MFC, VB, and other Windows programs behave like NT services.
A Perl script to update your WTL installation [Windows Template Library, WTL, Article, Visual C++] www.codeproject.com 07-Sep-2000 by Milan Gardian
A Perl script to update your WTL installation
Milan Gardian
Notes on updating your WTL installation
How to get IP Address of your machine? [Article, Visual C++] www.mindcracker.com 07-Sep-2000 by Mahesh Chand
How to get IP Address of your machine?
A dialog based application. Sample project attached.
Mahesh Chand
07-Sep-2000
07-Sep-2000
File downloading with COM and ASP [Active Server Pages, File, COM, ASP, Article, Visual C++] www.codeproject.com 06-Sep-2000 by Xicoloko, Curt Robinson
File downloading with COM and ASP
Xicoloko and Curt Robinson
A COM object you can use to transfer files in ASP
Directory and Network browsing using a tree control [Tree Control, Network, Article, Visual C++] www.codeproject.com 06-Sep-2000 by John McTainsh
Directory and Network browsing using a tree control
John McTainsh
An article on Browsing my computer and the network using a TreeCtrl
ClockRack .... Virtual array of clocks that is displayed on your computer's desktop [Clock, Visual C++, EXE] PC Magazine 05-Sep-2000, vol. 19, no. 15 by Charles Petzold
If you communicate with people in other parts of the world, you often need to
know what time it is where they are. You can calculate the time difference in
your head, but this is tedious -- especially if the people you deal with are in
many different places. The traditional solution to this problem is an array of
clocks on the wall, as you'd see in a War Room, each showing the time in a
different location. ClockRack is a virtual array of clocks that is displayed on
your computer's desktop. It can be configured as an auto-hide appbar, so it's
there when you need it, and not taking up space otherwise. You can display
dozens of clocks and select between analog and digital representations. The
program includes a large database of world locations to which you can add. A
time-setting function lets you set your system clock using Internet servers that
support the NIST Time Service. ClockRack was written by Charles Petzold and
first appeared in PC Magazine September 5, 2000 (v19n15). Source code is
included.
Connection Points And Asynchronous calls, Part II [COM, DCOM, Article, Visual C++] www.codeproject.com 05-Sep-2000 by Ashish Dhar
Connection Points And Asynchronous calls, Part II
Ashish Dhar
A tutorial on connections points and Aynchronous calls
A Color picker button [Control, Color, Office, Article, Visual C++] www.codeproject.com 05-Sep-2000 by James White
A Color picker button
James White
A simple modification to Chris Maunder's "Office 97 style Colour
Picker" control
05-Sep-2000
05-Sep-2000
Keyboard Symphony
Delphi For Beginners: Get familiar with the OnKeyDown, OnKeyUp, and
onKeyPress event procedures to respond to various key actions or handle and
process ASCII characters along with other special purpose keys.
A Ticker control [Static Control, MFC, Article, Visual C++] www.codeproject.com 04-Sep-2000 by Ranjeet Chakraborty
A Ticker control
Ranjeet Chakraborty
A class that provides a news/stock ticker for your MFC applications
How to do pointers in Visual Basic [Visual Basic, VBScript, VBA, Visual Basic, Article, Visual C++] www.codeproject.com 04-Sep-2000 by Stefan Savev
How to do pointers in Visual Basic
Stefan Savev
Show how to use pointers in a C like manner
Introduction (The Microsoft.NET Initiative) [.NET, Article, Visual C++] www.codeguru.com 04-Sep-2000 by Jeff Richter
Introduction (The Microsoft.NET Initiative)
Jeff Richter
APIHijack: A Library for Easy DLL Function Hooking. [DLL, Article, Visual C++] www.codeguru.com 04-Sep-2000 by Wade Brainerd
APIHijack: A Library for Easy DLL Function Hooking.
Wade Brainerd
APIHijack - A Library for Easy DLL Function Hooking [Article, Visual C++] www.earthweb.com 04-Sep-2000 by Wade Brainerd
APIHijack - A Library for Easy DLL Function Hooking
Wade Brainerd
4-Sep-2000
4-Sep-2000
Based on DelayLoadProfileDLL.CPP, by Matt Pietrek for MSJ February 2000.
Direct Input 7 Mouse Class [DirectX, Article, Visual C++] www.codeguru.com 03-Sep-2000 by Jason Brooks
Direct Input 7 Mouse Class
Jason Brooks
DirectInput is essential for responsive games, therefore to help ease
the transition of DOS games programmers, you can use this class to read mouse
input directly
CBitmapCtrl: Control for Displaying Bitmaps [Bitmap, Article, Visual C++] www.codeguru.com 03-Sep-2000 by John Melas
CBitmapCtrl: Control for Displaying Bitmaps
John Melas
A class representing a dialog control that loads bitmaps from files
mcFirst: Your first VC++ application [Article, Visual C++] www.mindcracker.com 03-Sep-2000 by Mahesh Chand
mcFirst: Your first VC++ application
SDI application which draws circles on right mouse click.
Mahesh Chand
03-Sep-2000
03-Sep-2000
CBitmapCtrl: Control for Displaying Bitmaps [Article, Visual C++] www.earthweb.com 03-Sep-2000 by John Melas
CBitmapCtrl: Control for Displaying Bitmaps
John Melas
3-Sep-2000
3-Sep-2000
A class representing a dialog control that loads bitmaps from files.
Direct Input 7 Mouse Class [Article, Visual C++] www.earthweb.com 03-Sep-2000 by Jason Brooks
Direct Input 7 Mouse Class
Jason Brooks
3-Sep-2000
3-Sep-2000
DirectInput is essential for responsive games, therefore to help ease
the transition of DOS games programmers, you can use this class to read mouse
input directly
MB Interprocess CommunicationControl [Interprocess Communication, Control, Article, Visual Basic] www.vb2themax.com 02-Sep-2000 by Marco Bellinaso
MB Interprocess CommunicationControl
2-Sep-2000
2-Sep-2000
Marco Bellinaso
This control lets you have two applications that communicate with each
other. Just select the target application by its handle or partial/whole
caption, set the string or the Long data to send, and then call the Send
method. The target application - that must host an instance of the InterProcess
control - receives a DataReceived event and can therefore retrieve the data
sent and the sender's handle and caption, and even reply to the message.
Extending the W2K Shell with COM [Shell, COM, Shell Extension, Folder, Windows NT, Article, Visual C++] Windows Developer's Journal 01-Sep-2000, vol. 11, no. 9 by Tapani J Otala
Extending the W2K Shell with COM
Tapani J Otala
If you want to add capabilities to the Win32 shell, you'll almost
certainly have to use COM. This example demonstrates a Shell Extension that
lets you turn any Folder (or even set of folders) into an "image preview"
folder, a handy tool if you deal with lots of image files.
A Build Incrementing Utility [Build, IDE, Visual Studio, Article, Visual C++] Windows Developer's Journal 01-Sep-2000, vol. 11, no. 9 by Jim Gentilin
A Build Incrementing Utility
Jim Gentilin
Automatic build incrementing for all build situations (IDE, batch file,
master makefile, etc.) requires a standalone utility that can operate on source
code. This article shows how using memory-mapped files can simplify the job.
Global Subclassing to fix Combobox problems [Global Subclassing, Combobox, Subclassing, Article, Visual C++] Windows Developer's Journal 01-Sep-2000, vol. 11, no. 9 by Petter Hesselberg
Global Subclassing to fix Combobox problems
Petter Hesselberg
A combobox is supposed to let you either select from a listbox, or
enter a new item in an edit control. Unfortunately, under some circumstances,
text that you type into the edit control disappears when you hit Enter. Here's
a neat fix that uses global subclassing to remedy the problem without requiring
any changes to your existing dialog procedures.
Understanding NT: How to add custom Performance Counters to your own applications [Performance Counter, Monitoring, Windows NT, Article, Visual C++] Windows Developer's Journal 01-Sep-2000, vol. 11, no. 9 by Paula Tomlinson
Understanding NT: How to add custom Performance Counters to your own
applications
Paula Tomlinson
Performance counters let users use standard NT Monitoring applications
to examine and track statistical information from executing programs. This
three-part series on performance counters wraps up this month by explaining how
to add custom performance counters to your own applications. A complete example
is supplied, including the files required to get a performance counter DLL
properly installed.
HTML Document Templates for CGI Applications [HTML, CGI, C++, Article, Visual C++] C++ Users Journal 01-Sep-2000, vol. 18, no. 9 by Carlos Moreno
HTML Document Templates for CGI Applications
Carlos Moreno
Get the power of C/C++ programming with the flexibility of HTML by
keeping the two at arms length.
Network Programming with Linux [Network, Linux, TCP, Protocol, Data Packet, Article, Visual C++] C++ Users Journal 01-Sep-2000, vol. 18, no. 9 by Erik Nelson
Network Programming with Linux
Erik Nelson
TCP isn’t the only Protocol for swapping Data Packets, nor is it always
the most effective.
A TCP/IP Socket Location Server [TCP/IP, Socket, Article, Visual C++] C++ Users Journal 01-Sep-2000, vol. 18, no. 9 by Richard Smereka
A TCP/IP Socket Location Server
Richard Smereka
You can write remarkably portable network-aware code, if you are
careful how you isolate the dependencies.
The Simplest Automated Unit Test Framework That Could Possibly Work [Unit Test, Testing, Article, Visual C++] C++ Users Journal 01-Sep-2000, vol. 18, no. 9 by Chuck Allison
The Simplest Automated Unit Test Framework That Could Possibly Work
Chuck Allison
Testing is a necessary evil to many programmers, but it doesn’t have to
be all that evil.
Tracing an Application in Release Configuration [Tracing, Debugging, Article, Visual C++] C++ Users Journal 01-Sep-2000, vol. 18, no. 9 by Boris Bromberg
Tracing an Application in Release Configuration
Boris Bromberg
A lightweight trace facility is less likely to distort performance in
the final stress of Debugging.
Generic Constants for Generic Programming [Article, Visual C++] C++ Users Journal 01-Sep-2000, vol. 18, no. 9 by Fernando Cacciola
Generic Constants for Generic Programming
Fernando Cacciola
If you’re going to write generic code, make sure it’s completely
generic.
Collections and Algorithms [Collection, Algorithm, Java, Article, Visual C++] C++ Users Journal 01-Sep-2000, vol. 18, no. 9 by Chuck Allison
Chuck Allison
Collections and Algorithms
Java lacks both a standard and templates, but it nevertheless offers
something resembling the C++ Standard Template Library.
Using Microsoft Agents in Delphi [Agent, Article, Delphi] Delphi Developer 01-Sep-2000, vol. 6, no. 9 by Clay Shannon
Using Microsoft Agents in Delphi
Clay Shannon
Microsoft's Agent technology is one of the most entertaining
technologies to come out of Redmond in a long time. Agents allow you to give
your software some personality and provide a new way of interacting with your
users. Clay Shannon gives your computer some personality.
Making Password Validation a Snap [Password, Validation, Article, Delphi] Delphi Developer 01-Sep-2000, vol. 6, no. 9 by Mark Meyer
Making Password Validation a Snap
Mark Meyer
Mark Meyer offers guidelines on how to make your own password
component, complete with error checking and user feedback.
Using Item Lists [List, Article, Delphi] Delphi Developer 01-Sep-2000, vol. 6, no. 9 by Anthony Walter
Using Item Lists
Anthony Walter
Anthony Walter explores item lists - from what they are to how they
work and why you would want to use them.
Will the Real Timer Please Execute? [Timer, TTimer, Thread Safe, Article, Delphi] Delphi Developer 01-Sep-2000, vol. 6, no. 9 by Steve Zimmelman
Will the Real Timer Please Execute?
Steve Zimmelman
Ever added a TTimer to your application only to find that its event
isn't being executed because the main VCL thread is busy? While the TTimer
component executes in a "Thread Safe" manner, there are times when you need a
timer event to execute, even when the main thread is busy. Steve Zimmelman
offers a new timer component that uses its own thread!
Word Control: Part I [Word, Automation, Article, Delphi] Delphi Informant 01-Sep-2000, vol. 6, no. 9 by Ron Gray
Word Control: Part I
Ron Gray
Mr Gray presents the Microsoft Word object model, demonstrates how to
control it using run-time and compile-time Automation, and provides sample
source code for Delphi 4/5 and Word 97/2000.
Database Persistent Objects: Part I [Database, Persistent, RTTI, Article, Delphi] Delphi Informant 01-Sep-2000, vol. 6, no. 9 by Keith Wood
Database Persistent Objects: Part I
Keith Wood
Mr Wood shows how classes can be set up to automatically store
themselves to, and retrieve themselves from, a standard relational database,
with minimal effort using RTTI.
InterBase 6 [InterBase, Article, Delphi] Delphi Informant 01-Sep-2000, vol. 6, no. 9 by Bill Todd
InterBase 6
Bill Todd
Famous for being open source, Mr Todd explains there's much more that's
new with IB6, including large exact numerics, new administrative tools,
replication, and much more.
Raw API Programming [VCL, Article, Delphi] Delphi Informant 01-Sep-2000, vol. 6, no. 9 by Andrew J Wozniewicz
Raw API Programming
Andrew J Wozniewicz
Mr Wozniewicz demonstrates how to code without the VCL, when an
executable's size and speed are critical considerations, e.g. real-time data
acquisition, restricted memory/CPU, etc.
The Gold Standard, MIDAS & COM: Part II [MIDAS, COM, Automation, Callback, Article, Delphi] Delphi Informant 01-Sep-2000, vol. 6, no. 9 by Bill Todd
The Gold Standard, MIDAS & COM: Part II
Bill Todd
Completing his two-part series, Mr Todd presents two additional ways
for a COM server to call a COM client's methods: via Automation, and through a
Callback interface.
Advanced COM: Hide Activation Policies [COM, Activation, Moniker, Display Name, Article, Visual C++] Visual C++ Developers Journal 01-Sep-2000, vol. 3, no. 8 by George Shepherd
Advanced COM: Hide Activation Policies
George Shepherd
It makes sense to abstract away differences behind a uniform mechanism.
In COM, that means using Monikers and Display Names.
The Incredible Shrinking Executable [Executable, DLL, Article, Visual C++] Visual C++ Developers Journal 01-Sep-2000, vol. 3, no. 8 by Andy Harding
The Incredible Shrinking Executable
Andy Harding
Learn how to shrink apps and uncover missing DLLs.
ATL Advantage [ATL, IDispatch Interface, Article, Visual C++] Visual C++ Developers Journal 01-Sep-2000, vol. 3, no. 8 by Richard Grimes
ATL Advantage
Richard Grimes
If you want to give ATL a good workout, you've got to know how to use
IDispatch. Learn the basics of using ATL to implement this interface.
Speed Up Interprocess Communication [Interprocess Communication, Memory Mapped File, Article, Visual C++] Visual C++ Developers Journal 01-Sep-2000, vol. 3, no. 8 by Tom Creighton
Speed Up Interprocess Communication
Tom Creighton
Need a fast mechanism for posting data? Check out Memory Mapped Files -
the fastest, most efficient way in Win32 to share information between processes.
Build Web Apps With C# [Web, C#, Article, Visual C++] Visual C++ Developers Journal 01-Sep-2000, vol. 3, no. 8 by Bob Lair, Jason Lefebvre
Build Web Apps With C#
Bob Lair and Jason Lefebvre
Wondering what it's like to work in C#? The primary developers of
ibuyspy.com show how they developed this demo site with C# - and how you can
use it as a starting point to develop your own applications.
Create and Destroy Objects Properly [Object, C++, Object Oriented Programming, Article, Visual C++] Visual C++ Developers Journal 01-Sep-2000, vol. 3, no. 8 by David Steinhoff
Create and Destroy Objects Properly
David Steinhoff
Poor execution of your classes means your code might not work, or
(gasp!) can't be reused. Use C++ special class functions to make your Object
Oriented Programming a success.
Develop Web Applications With ATL Server [Web, ATL Server, ATL, Article, Visual C++] Visual C++ Developers Journal 01-Sep-2000, vol. 3, no. 8 by Richard Grimes
Develop Web Applications With ATL Server
Richard Grimes
The new ATL Server technology means a bright future for Visual C++
development. Learn how to use ATL Server classes, and find out how to build a
high-performance Internet Server API extension without writing much code.
Navigate Skillfully Through MFC [MFC, Article, Visual C++] Visual C++ Developers Journal 01-Sep-2000, vol. 3, no. 8 by Bill Wagner
Navigate Skillfully Through MFC
Bill Wagner
Get to know how MFC is organized and learn to find the classes you need
to solve your programming problems.
Form Dynamic Queries on the Fly [CDynamicAccessor, Dynamic Query, Article, Visual C++] Visual C++ Developers Journal 01-Sep-2000, vol. 3, no. 8 by Ghanshyam Naik
Form Dynamic Queries on the Fly
Ghanshyam Naik
Discover how you can easily reuse queries built with CDynamicAccessor
in other applications, and get functionality and flexibility you can't get from
using static accessors.
Is That App Hung? Find Out [Article, Visual Basic] Visual Basic Programmer's Journal 01-Sep-2000, vol. 10, no. 10 by Karl E Peterson
Is That App Hung? Find Out
Karl E Peterson
Determine when tasks are hung
Hijack System Dialogs [System Dialog, Article, Visual Basic] Visual Basic Programmer's Journal 01-Sep-2000, vol. 10, no. 10 by Karl E Peterson
Hijack System Dialogs
Karl E Peterson
Hijack System Dialogs
Intrinsic 16-Bit Limitations [16-Bit, Limitation, Article, Visual Basic] Visual Basic Programmer's Journal 01-Sep-2000, vol. 10, no. 10 by Karl E Peterson
Intrinsic 16-Bit Limitations
Karl E Peterson
Defy intrinsic 16-bit limitations.
Speed Up ActiveX Control References [ActiveX Control, Extender Object, Article, Visual Basic] Visual Basic Programmer's Journal 01-Sep-2000, vol. 10, no. 10 by Francesco Balena
Speed Up ActiveX Control References
Francesco Balena
Get rid of the performance hit you incur when you employ the Extender
Object that's wrapped around real ActiveX controls.
Customize Your Controls [Control, VB Extensibility Model, Article, Visual Basic] Visual Basic Programmer's Journal 01-Sep-2000, vol. 10, no. 10 by Dan Fergus
Customize Your Controls
Dan Fergus
Use events inside the VB Extensibility Model to build a control resizer
add-in. This way, you can set defaults for controls dropped onto forms.
Use the Application Object [Application Object, Article, Visual Basic] Visual Basic Programmer's Journal 01-Sep-2000, vol. 10, no. 10 by Ron Schwarz
Use the Application Object
Ron Schwarz
When you have to handle application/OS communication, the Application
object provides some useful functions.
Manage Database Transactions [Database Transaction, Data Component, Transaction, Connection Pooling, Article, Visual Basic] Visual Basic Programmer's Journal 01-Sep-2000, vol. 10, no. 10 by Eric Litwin
Manage Database Transactions
Eric Litwin
Create Data Components that handle Transactions and enable Connection
Pooling whether the components are deployed remotely or locally.
Make Application Settings Easy [Registry, INI File, Article, Visual Basic] Visual Basic Programmer's Journal 01-Sep-2000, vol. 10, no. 10 by Stan Schultes
Make Application Settings Easy
Stan Schultes
Learn how to store and load program settings with the CSettings class
by using either the Windows Registry or an INI file.
Improve MTS and COM+ Performance [MTS, COM+, Performance, Microsoft Transaction Server, Article, Visual Basic] Visual Basic Programmer's Journal 01-Sep-2000, vol. 10, no. 10 by Yasser Shohoud
Improve MTS and COM+ Performance
Yasser Shohoud
Discover how to avoid performance problems with Microsoft Transaction
Server (MTS), and learn five tips on building high-performance apps with COM+
and MTS.
Connect Objects
Stephen Hopkins
The Observer Pattern lets your objects broadcast any changes happening
to them. You can easily connect objects that pass information between them by
combining the Observer pattern with the Mediater Pattern.
Replace API Calls Using WMI [WMI, Windows Management Interface, System Information, Article, Visual Basic] Visual Basic Programmer's Journal 01-Sep-2000, vol. 10, no. 10 by Ken Getz
Replace API Calls Using WMI
Ken Getz
Avoid those complex API calls by using the Windows Management Interface
(WMI) to access computer information. Learn how to investigate the WMI classes
and objects and use WMI to get useful System Information.
Extend SQL Server [SQL Server, OLE Automation, Stored Procedure, DLL, Article, Visual Basic] Visual Basic Programmer's Journal 01-Sep-2000, vol. 10, no. 10 by Dianne Siebold
Extend SQL Server
Dianne Siebold
Find out how to extend the functionality of SQL Server by creating and
calling extended stored procedures. Or use SQL Server's OLE Automation Stored
Procedures to call functions in existing DLLs.
Synchronize Your Apps [Synchronize, Article, Visual Basic] Visual Basic Programmer's Journal 01-Sep-2000, vol. 10, no. 10 by Francesco Balena
Synchronize Your Apps
Francesco Balena
There's a way to provide communication and synchronization among
multiple executables when you break up large and complex Windows apps. Turn to
Windows messages for the solution.
Web Developer [Web, Active Server Pages, Article, Visual Basic] Visual Basic Programmer's Journal 01-Sep-2000, vol. 10, no. 10 by Francesco Balena
Web Developer
Francesco Balena
Use these 10 techniques to create robust and efficient Active Server
Pages apps.
Microsoft .NET Framework Delivers the Platform for an Integrated, Service-Oriented Web [.NET, Article, Visual C++] MSDN Magazine 01-Sep-2000, vol. 15, no. 9 by Jeffrey Richter
Microsoft .NET Framework Delivers the Platform for an Integrated,
Service-Oriented Web
Jeffrey Richter
The Programmable Web: Web Services Provides Building Blocks for the Microsoft .NET Framework [Web Services, .NET, Article, Visual C++] MSDN Magazine 01-Sep-2000, vol. 15, no. 9 by Mary Kirtland
The Programmable Web: Web Services Provides Building Blocks for the
Microsoft .NET Framework
Mary Kirtland
Visual Studio .NET: Build Web Apps Faster and Easier Using Web Services and XML [Visual Studio, .NET, Web, Web Services, XML, Article, Visual C++] MSDN Magazine 01-Sep-2000, vol. 15, no. 9 by Dave Mendlen
Visual Studio .NET: Build Web Apps Faster and Easier Using Web Services
and XML
Dave Mendlen
Sharp New Language: C# Offers the Power of C++ and Simplicity of Visual Basic [C#, C++, Visual Basic, Article, Visual C++] MSDN Magazine 01-Sep-2000, vol. 15, no. 9 by Joshua Trupin
Sharp New Language: C# Offers the Power of C++ and Simplicity of Visual
Basic
Joshua Trupin
Active Server Pages+: ASP+ Improves Web App Deployment, Scalability, Security, and Reliability [Active Server Pages+, ASP+, Web, Scalability, Security, Article, Visual C++] MSDN Magazine 01-Sep-2000, vol. 15, no. 9 by Dave Sussman
Active Server Pages+: ASP+ Improves Web App Deployment, Scalability,
Security, and Reliability
Dave Sussman
Marshaling Your Data: Efficient Data Transfer Techniques Using COM and Windows 2000 [Marshaling, Data Transfer, COM, Windows 2000, Article, Visual C++] MSDN Magazine 01-Sep-2000, vol. 15, no. 9 by Richard Grimes
Marshaling Your Data: Efficient Data Transfer Techniques Using COM and
Windows 2000
Richard Grimes
Targeting Frames [Frame, Article, Visual C++] MSDN Magazine 01-Sep-2000, vol. 15, no. 9 by Robert Hess
Targeting Frames
Robert Hess
Hidden Fields [Article, Visual C++] MSDN Magazine 01-Sep-2000, vol. 15, no. 9 by Robert Hess
Hidden Fields
Robert Hess
Dropdown Menu Positioning [Menu, Article, Visual C++] MSDN Magazine 01-Sep-2000, vol. 15, no. 9 by Robert Hess
Dropdown Menu Positioning
Robert Hess
Distilling Other Web Sites [Web, Article, Visual C++] MSDN Magazine 01-Sep-2000, vol. 15, no. 9 by Robert Hess
Distilling Other Web Sites
Robert Hess
Client-side Environment for ASP Pages [ASP, Article, Visual C++] MSDN Magazine 01-Sep-2000, vol. 15, no. 9 by Dino Esposito
Client-side Environment for ASP Pages
Dino Esposito
A Tale of Real-world Debugging [Debugging, Article, Visual C++] MSDN Magazine 01-Sep-2000, vol. 15, no. 9 by Matt Pietrek
A Tale of Real-world Debugging
Matt Pietrek
CPopupText for Home-grown Tooltips [Tooltip, Article, Visual C++] MSDN Magazine 01-Sep-2000, vol. 15, no. 9 by Paul DiLascia
CPopupText for Home-grown Tooltips
Paul DiLascia
Controlling Application Instantiation [Instantiation, Article, Visual C++] MSDN Magazine 01-Sep-2000, vol. 15, no. 9 by Paul DiLascia
Controlling Application Instantiation
Paul DiLascia
Effective Project Mangement [Project Mangement, Article, Lotus Notes] Notes Advisor 01-Sep-2000 by Larry Palm
Project Management - Lotus Notes & Domino Advisor - September 2000
Effective Project Mangement
Larry Palm
Inside the R5 Outline [Outline, Article, Lotus Notes] Notes Advisor 01-Sep-2000 by Hans van der Burg
Web Development - Lotus Notes & Domino Advisor - September 2000
Inside the R5 Outline
Hans van der Burg
Code for Better Performance [Performance, Article, Lotus Notes] Notes Advisor 01-Sep-2000 by Matt Holthe
Notes Development - Lotus Notes & Domino Advisor - September 2000
Code for Better Performance
Matt Holthe
Notes to Access Data Integration without ODBC [ODBC, Article, Lotus Notes] Notes Advisor 01-Sep-2000 by David Kochan
Data Integration - Lotus Notes & Domino Advisor - September 2000
Notes to Access Data Integration without ODBC
David Kochan
FTP from LotusScript [FTP, LotusScript, Article, Lotus Notes] Notes Advisor 01-Sep-2000 by Scot Haberman
Notes Development - Lotus Notes & Domino Advisor - September 2000
FTP from LotusScript
Scot Haberman
Take Domino Applications to the Palm Pilot [Domino, Palm Pilot, Article, Lotus Notes] Notes Advisor 01-Sep-2000 by Bonnie Jo Schneider
Handheld Computing - Lotus Notes & Domino Advisor - September 2000
Take Domino Applications to the Palm Pilot
Bonnie Jo Schneider
Using the XML DOM with Visual C++ and COM [Article, Visual C++] www.earthweb.com 01-Sep-2000 by Tom Archer
Using the XML DOM with Visual C++ and COM
Tom Archer
1-Sep-2000
1-Sep-2000
Learn how to use the XML Document Object Model (DOM) to load an XML
document and iterate through its nodes using Visual C++ and COM.
Connection Points And Asynchronous calls, Part I [COM, DCOM, Article, Visual C++] www.codeproject.com 31-Aug-2000 by Ashish Dhar
Connection Points And Asynchronous calls, Part I
Ashish Dhar
A tutorial on connections points and Aynchronous calls
A simple XML Parser [C++, MFC, STL, XML, Parser, Article, Visual C++] www.codeproject.com 31-Aug-2000 by Michael A Barnhart
A simple XML Parser
Michael A Barnhart
A class to read and write non validated XML files
3D Text FX [Article, Visual Basic] visualbasic.about.com 31-Aug-2000
31-Aug-2000
31-Aug-2000
3D Text FX
In the second part of our 'spice up your apps' series, I'll be taking a
look at some quick'n'dirty code that makes it easy to print 3D text on your
form without resorting to any third-party controls.
Direct Input 7 Joystick Class [DirectX, Article, Visual C++] www.codeguru.com 31-Aug-2000 by Jason Brooks
Direct Input 7 Joystick Class
Jason Brooks
Class that utilizes DirectX7 to control multiple Joystick Controls.
Direct Input 7 Keyboard Class [DirectX, Article, Visual C++] www.codeguru.com 31-Aug-2000 by Jason Brooks
Direct Input 7 Keyboard Class
Jason Brooks
DirectInput is essential for responsive games. This article presents a
class to read the keyboard.
Code to Calculate Time Left on Timer [C++, MFC, Windows Programming, Article, Visual C++] www.codeguru.com 31-Aug-2000 by Dustin Fast
Code to Calculate Time Left on Timer
Dustin Fast
Enables you to display to the end-user how much time is left on a timer
Limiting Applications to a Single Instance [C++, MFC, Windows Programming, Article, Visual C++] www.codeguru.com 31-Aug-2000 by Jean-Claude Garreau
Limiting Applications to a Single Instance
Jean-Claude Garreau
Standard concept with a twist ; in this version if the app is running
it is brought to the foreground and passed any command-line arguments
Non-Modal File Dialog Class [Dialog, Article, Visual C++] www.codeguru.com 31-Aug-2000 by John McManus
Non-Modal File Dialog Class
John McManus
Nicely done class that allows for non-modal display of the common file
dialog
Printing in OpenGL [OpenGL, Article, Visual C++] www.codeguru.com 31-Aug-2000 by Jongwhan Lee
Printing in OpenGL
Jongwhan Lee
Illustrates how to render images using OpenGL
Non-Modal File Dialog Class [Article, Visual C++] www.earthweb.com 31-Aug-2000 by John McManus
Non-Modal File Dialog Class
John McManus
31-Aug-2000
31-Aug-2000
Nicely done class that allows for non-modal display of the common file
dialog
Direct Input 7 Keyboard Class [Article, Visual C++] www.earthweb.com 31-Aug-2000 by Jason Brooks
Direct Input 7 Keyboard Class
Jason Brooks
31-Aug-2000
31-Aug-2000
DirectInput is essential for responsive games. This article will help
ease the transition of DOS games programmers.
Direct Input 7 Joystick Class [Article, Visual C++] www.earthweb.com 31-Aug-2000 by Jason Brooks
Direct Input 7 Joystick Class
Jason Brooks
31-Aug-2000
31-Aug-2000
DirectX isn't the most friendly of API's available, so here's a simple
class that you can use to utilise DirectX7 for multiple Joystick Control.
A Network Chat Program using Windows Sockets [Internet, Network, Article, Visual C++] www.codeproject.com 30-Aug-2000 by Shanker Chandrabose
A Network Chat Program using Windows Sockets
Shanker Chandrabose
A program that allows users across a homogeneous network to communicate
with each other using the TCP/IP protocol
Level Add-in [Macro, Add-in, Article, Visual C++] www.codeproject.com 30-Aug-2000 by Red Pilgrim
Level Add-in
Red Pilgrim
An add-in that helps you hide 'inactive' pieces of your code in include
files
MFC Grid Control 2.21 [Control, MFC, Grid Control, Article, Visual C++] www.codeproject.com 30-Aug-2000 by Chris Maunder
MFC Grid Control 2.21
Chris Maunder
A fully featured MFC grid control for displaying tabular data. The grid
is a custom control derived from CWnd
Using the Grid Control in a Document/View framework [Control, Grid Control, Document/View, Article, Visual C++] www.codeproject.com 30-Aug-2000 by Chris Maunder
Using the Grid Control in a Document/View framework
Chris Maunder
A simple tutorial that demonstrates how to use the grid control in a
doc/view application.
30-Aug-2000
30-Aug-2000
Shell Secrets
In this article, your Visual Basic Guide let's you into a little secret
buried within Internet Explorer. As well as giving VB developers the chance to
embed a complete browser in their own applications, IE also allows coders to
interface with the Windows shell to a degree only previously possible by
delving into subclassing and callbacks.
ProTracker 1.0 [Article, Visual C++] www.mindcracker.com 30-Aug-2000 by KSheeraj Kumud
ProTracker 1.0
A dialog based simple application which displays all running processes
of your machine. It's a sub module of SysUtil Advanced.
KSheeraj Kumud
30-Aug-2000
30-Aug-2000
Simple ODBC classes without MFC [Database, ODBC, MFC, Article, Visual C++] www.codeproject.com 29-Aug-2000 by Justin Kirby
Simple ODBC classes without MFC
Justin Kirby
A collection of simple classes to connect to ODBC capable DBMS and
share those connections
Getting Your First Visual Basic Job [Article, Visual Basic] visualbasic.about.com 29-Aug-2000
29-Aug-2000
29-Aug-2000
Getting Your First Visual Basic Job
Do you want to convert your Visual Basic coding knowledge into wads of
cash? If so, check out this insightful article from Vickie McCullough, who
offers tips to help you find a high paid tech job in minutes!
29-Aug-2000
29-Aug-2000
Hey Windows, Call me!
Let Windows work for you: implementing function callbacks with Delphi.
ATL Collection Wizard [ATL, ATL Collection Wizard, ATL Object Wizard, COM, Article, Visual C++] www.codeproject.com 28-Aug-2000 by David Peterson
ATL Collection Wizard
David Peterson
ATL Object Wizard that creates a collection of other COM objects
CWebImageDC [Font, GDI, GUI, Memory, Article, Visual C++] www.codeproject.com 28-Aug-2000 by Randy More
CWebImageDC
Randy More
Provides a Memory based DC into which an image may be drawn using
standard GDI calls
Download a URL using UrlDownloadToFile [Article, Visual C++] www.mindcracker.com 28-Aug-2000 by Jeniffer P Walker
Download a URL using UrlDownloadToFile
Download a file as bits and save as a local file.
Jeniffer P Walker
28-Aug-2000
28-Aug-2000
SysUtil 1.0 [Article, Visual C++] www.mindcracker.com 28-Aug-2000 by Mahesh Chand
SysUtil 1.0
A dialog based simple application which gives you information about
your system such as user, memory, OS etc. Update is coming soon.
Mahesh Chand
28-Aug-2000
28-Aug-2000
New version of Antechinus C# Programmers' Editor [C#, Article, Visual C++] www.codeproject.com 27-Aug-2000 by Alex Davidovic
New version of Antechinus C# Programmers' Editor
Alex Davidovic
C Point has announced the version 2.2 of Antechinus C# Editor, the
first professional developers' editor for the exciting new Microsoft's C# (C
Sharp) programming language.
Launching an Application on Windows Startup [C++, MFC, Windows Programming, Article, Visual C++] www.codeguru.com 27-Aug-2000 by Partha Sarathi Dhar
Launching an Application on Windows Startup
Partha Sarathi Dhar
Great little application (with source) that illustrates how to specify
an application to launch upon Windows startup
Office 2000-like Dockable Menu Bar and Intelligent Menus [Menu, Article, Visual C++] www.codeguru.com 27-Aug-2000 by Piero Viano
Office 2000-like Dockable Menu Bar and Intelligent Menus
Piero Viano
Create your own "intelligent menus" like Windows 2000 and Office 2000 !!
Office 2000-like Dockable Menu Bar and Intelligent Menus [Article, Visual C++] www.earthweb.com 27-Aug-2000 by Piero Viano
Office 2000-like Dockable Menu Bar and Intelligent Menus
Piero Viano
27-Aug-2000
27-Aug-2000
Create your own "intelligent menus" like Windows 2000 and Office 2000!!
MB MouseHelper Control [Mouse, Control, Article, Visual Basic] www.vb2themax.com 26-Aug-2000 by Marco Bellinaso
MB MouseHelper Control
26-Aug-2000
26-Aug-2000
Marco Bellinaso
This ActiveX gives you the complete control over the mouse. The
MouseEnter and MouseLeave events tell you when the mouse cursor enters or
leaves any control on the form, which lets you create cool hot-tracking
effects. The MouseWheel event fires when the mouse wheel is rotated, so you can
use this event to let the end user scroll a horizontal scroll or zoom in/out,
as in Internet Explorer. There are also several methods that let you move, snap
or clip the cursor where you want, to load an animated cursor, to simulate the
Click, DblClick, MouseDown, MouseUp events, as well as to retrieve all the
information related to the mouse, such as the cursor position, the button
state, the swapped buttons state, and the window or the control under the
cursor.
Using the Visual Studio 6.0 Driver Build Environment [System, Article, Visual C++] www.codeguru.com 26-Aug-2000 by Christiaan Ghijselinck
Using the Visual Studio 6.0 Driver Build Environment
Christiaan Ghijselinck
Explores how to use the standard Visual Studio environment while
developing device drivers
SmartHelp 2.0
Goran Mitrovic
Update to version 2.0
SmartHelp 1.01 [Article, Visual C++] www.earthweb.com 26-Aug-2000 by Gorin Mitrovic
SmartHelp 1.01
Gorin Mitrovic
26-Aug-2000
26-Aug-2000
You probably discovered how complex MSDN Library is - there are
thousands of articles nicely sorted in its Contents Tree. However, have you
noticed how hard is it to find articles you used, every time you resume work on
your project? If you had, I believe you'll find SmartHelp (very) useful
Drawing Transparent Bitmap with ease with on the fly masks in MFC [Bitmap, Palette, MFC, Article, Visual C++] www.codeproject.com 25-Aug-2000 by Raja Segar
Drawing Transparent Bitmap with ease with on the fly masks in MFC
Raja Segar
A few routines that makes implementing the ideas in Chris Becke's GDI
tutorial a snap
Select Folder dialog with a difference [Dialog, Windows Programming, Folder, Article, Visual C++] www.codeproject.com 25-Aug-2000 by Sridhar Rao
Select Folder dialog with a difference
Sridhar Rao
The windows 'Select Folder' dialog with some extra functionality
CreateRegionFromFile
Yuriy Zaporozhets
Very primitive function that creates region from *.bmp files
KanjiFont [Font, GDI, GUI, Article, Visual C++] www.codeproject.com 25-Aug-2000 by Eric Crahen
KanjiFont
Eric Crahen
Display Chinese & Japanse characters on unicode & non-unicode systems
Replace in Files AddIn [Macro, Add-in, Article, Visual C++] www.codeproject.com 25-Aug-2000 by Daniel Zilcsak
Replace in Files AddIn
Daniel Zilcsak
Search and Replace in multiple files Add-in for Visual C++ 6.0
Colored/Blinking Controls and Dialogs with any Font [Control, Color, Dialog, Font, Article, Visual C++] www.codeproject.com 25-Aug-2000 by Yury Goltsman
Colored/Blinking Controls and Dialogs with any Font
Yury Goltsman
The simplest way to change color, font or set blinking mode for any
standard control
Fancy Forms [Article, Visual Basic] visualbasic.about.com 25-Aug-2000
25-Aug-2000
25-Aug-2000
Fancy Forms
Are you tired of the dull default grey forms in Visual Basic? Do you
want to spice up your application interface with only a few lines of VB code?
In this article, your VB Guide uncovers a handy code tip to beautify your
dreary apps.
SCSI Information DLL [Tool, Update, Article, Visual C++] www.codeguru.com 25-Aug-2000 by Michael Becker
SCSI Information DLL
Michael Becker
Exported GetDriveNumber function, returning 0-based driver number for
specified SCSI parameter
Color Listbox [Listbox, Article, Visual C++] www.codeguru.com 25-Aug-2000 by Rick Jones
Color Listbox
Rick Jones
Listbox where you can use a color strip in a colomn as a kind of legend
for the text's meaning
Color Listbox [Article, Visual C++] www.earthweb.com 25-Aug-2000 by Rick Jones
Color Listbox
Rick Jones
25-Aug-2000
25-Aug-2000
Listbox where you can use a color strip in a column as a kind of legend
for the text's meaning
Tool Group Manager [Toolbar, Docking Window, Template, Article, Visual C++] www.codeproject.com 24-Aug-2000 by Craig Henderson
Tool Group Manager
Craig Henderson
A reusable Template class for managing multiple toolbars, only one of
which is displayed at a time.
A WTL-based Font preview combo box [Windows Template Library, WTL, Font, Article, Visual C++] www.codeproject.com 24-Aug-2000 by Ramon Smits
A WTL-based Font preview combo box
Ramon Smits
A font combo box that previews the fonts in the dropdown view
A Java Class Browser written in C++ using WTL [JCB, Article, Visual C++] www.codeproject.com 24-Aug-2000 by Franky Braem
A Java Class Browser written in C++ using WTL
Franky Braem
A Java Class Browser written in C++ using WTL
Antechinus C# Editor [Tool, Article, Visual C++] www.codeguru.com 24-Aug-2000 by Alex Davidovic
Antechinus C# Editor
Alex Davidovic
The very first professional C# editor, supporting projects, color-coded
syntax and compilation/execution from a fully integrated IDE.
Implementing Band Objects using ATL HTML Contol [Article, Visual C++] www.mindcracker.com 24-Aug-2000 by Neeraj Srivastava
Implementing Band Objects using ATL HTML Contol
Sample code attached.
Neeraj Srivastava
24-Aug-2000
24-Aug-2000
Using button controls in an application [Button Control, Article, Visual C++] www.codeproject.com 23-Aug-2000 by Chris Smith
Using button controls in an application
Chris Smith
How to get a button control wired-in and working
Using the CFindReplaceDialog class [Dialog, Windows Programming, CFindReplaceDialog, Article, Visual C++] www.codeproject.com 23-Aug-2000 by Tibor Blazko
Using the CFindReplaceDialog class
Tibor Blazko
How to use the CFindReplaceDialog dialog for text searching
Changing toolbars dynamically at runtime [Toolbar, Docking Window, Article, Visual C++] www.codeproject.com 23-Aug-2000 by Masoud Samimi
Changing toolbars dynamically at runtime
Masoud Samimi
A simple tutorial that shows how to dynamically replace toolbars at
runtime
Lon Fisher on .NET 23 August 2000 [Interview, .NET, Article, Visual C++] www.codeproject.com 23-Aug-2000 by Chris Maunder
Lon Fisher on .NET 23 August 2000
Chris Maunder
Lon Fisher answers your questions on .NET
Command Routing for Popup Menu [Menu, Pop-up Menu, Article, Visual C++] www.codeproject.com 23-Aug-2000 by Noel Dillabough
Command Routing for Popup Menu
Noel Dillabough
Handle grayed/disabled/checked menu items using the familiar OnUpdate
interface
Pie Progress Control [Control, Progress Control, Article, Visual C++] www.codeproject.com 23-Aug-2000 by Norm Almond
Pie Progress Control
Norm Almond
A progress control with a difference
Enhanced ProgressBar Control v1.1 [Control, Article, Visual C++] www.codeguru.com 22-Aug-2000 by Yury Goltsman
Enhanced ProgressBar Control v1.1
Yury Goltsman
Incredible progress control class with full-featured testing
application!
Color Chooser [Article, Visual C++] www.mindcracker.com 22-Aug-2000 by Rajiv Ramachandran
Color Chooser
Corel PhotoHouse-like Color Chooser
Rajiv Ramachandran
22-Aug-2000
22-Aug-2000
File Preview dialog class [Article, Visual C++] www.mindcracker.com 22-Aug-2000 by Rajiv Ramachandran
File Preview dialog class
Rajiv Ramachandran
22-Aug-2000
22-Aug-2000
Using ADSI to Mirror Exchange Users [ADSI, Exchange, Article, Visual Basic] www.earthweb.com 22-Aug-2000 by Doyle Vann
Using ADSI to Mirror Exchange Users
Doyle Vann
22-Aug-2000
22-Aug-2000
Coordinating data between applications can be tricky, even with
facilities like Microsoft's Active Directory Services Interface. Here's a way
around some of the pitfalls using a SQL Server table that's periodically
updated with a background process.
Who Wants to be a Delphi Guru - The trivia game. [Article, Delphi] delphi.about.com 22-Aug-2000
22-Aug-2000
22-Aug-2000
Who Wants to be a Delphi Guru - The trivia game.
Ever wonder what 'Who Wants to be a Millionaire' might look like if
there were only Delphi programming questions? Take my quiz and find out how you
would do...
Comparing C and C++ [Article, Visual C++] cplus.about.com 21-Aug-2000
21-Aug-2000
21-Aug-2000
Comparing C and C++
A look at the similarities and differences in C and C++
CSelf XResource [DLL, Article, Visual C++] www.codeguru.com 21-Aug-2000 by Michael Becker
CSelf XResource
Michael Becker
Class for self extracting binary resources
PocketWine [CE Programming, Article, Visual C++] www.codeguru.com 21-Aug-2000 by Christian Skovdal Andersen
PocketWine
Christian Skovdal Andersen
A wine database application sample for Pocket Windows
A C++ wrapper for TWAIN [Article, Visual C++] www.mindcracker.com 21-Aug-2000 by Rajiv Ramachandran
A C++ wrapper for TWAIN
Add scanner support to your VC++ application
Rajiv Ramachandran
21-Aug-2000
21-Aug-2000
PocketWine [Article, Visual C++] www.earthweb.com 21-Aug-2000 by Christian Skovdal
PocketWine
Christian Skovdal
21-Aug-2000
21-Aug-2000
A wine database application sample for Pocket Windows.
CSelf XResource [Article, Visual C++] www.earthweb.com 21-Aug-2000 by Michael Becker
CSelf XResource
Michael Becker
21-Aug-2000
21-Aug-2000
A look at CSelf XResource
Transparency without Source Code [Windows 2000, Article, Visual C++] www.codeproject.com 20-Aug-2000 by Bernhard Hammer
Transparency without Source Code
Bernhard Hammer
Adding transparency to any window, even if you don't have its source
SmartHelp 2.0
Goran Mitrovic
Fantastic Add-In that interfaces with MSDN Library
CGraph: Graph Class for Plotting Groups of Data [Control, Update, Article, Visual C++] www.codeguru.com 20-Aug-2000 by Brian Convery
CGraph: Graph Class for Plotting Groups of Data
Brian Convery
Extremely useful graph and chart class for plotting groups of data
CGraph - Graph Class for Plotting Groups of Data [Article, Visual C++] www.earthweb.com 20-Aug-2000 by Brian Convery
CGraph - Graph Class for Plotting Groups of Data
Brian Convery
20-Aug-2000
20-Aug-2000
Have you ever tried to find a usable graph and chart class for plotting
groups of data? I have. And when trying to find some cheap or free classes for
plotting graph data, I found very few.
URLLabel Control [Control, URL, Article, Visual Basic] www.vb2themax.com 19-Aug-2000 by Francesco Duranti
URLLabel Control
19-Aug-2000
19-Aug-2000
Francesco Duranti
This control is a label/picture with hyperlink functionality. All
you've to do is to place URLLabel on a form, choose the style (Underline,
NoUnderline, GotFocus, Graphic), the color or picture for non-visited, visited,
mouseover status and the URL/Caption. You can also link the URL/caption text or
display the URL as the ToolTipText of the control, and use the Execute method
to manually launch the URL. The BeforeExecute event let you change the URL on
the fly as well as cancel the operation. The AfterExecute event will be
launched upon completion of the Execute event, if you didn't cancel it.
Dialog Resize Helper [Dialog, Article, Visual C++] www.codeguru.com 19-Aug-2000 by Stephan Keil
Dialog Resize Helper
Stephan Keil
Easiest way yet to have a "resizable dialog" where controls more and
resize according to your specs
Code to View/Hide Status Bar in SDI and MDI Applications [Status Bar, Article, Visual C++] www.codeguru.com 19-Aug-2000 by Volker Bartheld
Code to View/Hide Status Bar in SDI and MDI Applications
Volker Bartheld
OnViewStatusBar message handler that overrides the standard View/Hide
functionality so that the application window changes it's height accordingly
and preserves the size of the visible client area.
Code to View/Hide Status Bar in SDI and MDI Applications [Article, Visual C++] www.earthweb.com 19-Aug-2000 by Volker Bartheld
Code to View/Hide Status Bar in SDI and MDI Applications
Volker Bartheld
19-Aug-2000
19-Aug-2000
Here's a little handler for the OnViewStatusBar message handler to
change the "View/Hide Status Bar" menu option so that the application (main)
window changes its height according to the size of the visible client area.
Dialog Resize Helper [Article, Visual C++] www.earthweb.com 19-Aug-2000 by Stephan Keil
Dialog Resize Helper
Stephan Keil
19-Aug-2000
19-Aug-2000
Easiest way yet to have a "resizable dialog" that controls resize
according to your specs
PocketWine [CE Programming, Database, Article, Visual C++] www.codeproject.com 18-Aug-2000 by Christian Skovdal Andersen
PocketWine
Christian Skovdal Andersen
A wine Database for Pocket Windows
Timed Update Edit Control [Edit Control, Article, Visual C++] www.codeproject.com 18-Aug-2000 by Craig Henderson
Timed Update Edit Control
Craig Henderson
An edit control to periodically validate and reformat it's contents
Report Control: An Outlook 2000-Style SuperGrid Control [Listview, Update, Article, Visual C++] www.codeguru.com 18-Aug-2000 by Maarten Hoeben
Report Control: An Outlook 2000-Style SuperGrid Control
Maarten Hoeben
Incredible array of updates and fixes (see version history in article)
Tips for using Dynamic Link Libraries (DLLs) with MFC [DLL, Article, Visual C++] www.codeguru.com 18-Aug-2000 by xicoloko
Tips for using Dynamic Link Libraries (DLLs) with MFC
xicoloko
Tips on using DLLs from MFC applications
Tips for using Dynamic Link Libraries (DLLs) with MFC [Article, Visual C++] www.earthweb.com 18-Aug-2000
Tips for using Dynamic Link Libraries (DLLs) with MFC
-N/A
18-Aug-2000
18-Aug-2000
This documents intends to give a beginner some knowledge that can be
helpfull when designing a project to the Windows plataform.
Requirements
Visual Basic 5.0 or higher.
In this Issue
In this issue we discuss how enhance the calendar control we
created last week.
ucCalendar
See issue number 126 for the basic description of this control.
This week we have enhanced this control to have built-in methods
for moving forward and backward within the calendar. It now
supports move forward and backward one month and one year. It
also supports a quick month change feature. If you click on the
month of the calendar you will get a drop down list of all
available months. This allows a very fast way to switch months.
The mechanism used to implement these features is very
extensible. The source code is commented heavily in order to
explain some of the processes as you view the source code.
The place to start is to look at the CalendarCommand enumerator.
This is where all the commands are added in order to implement new
features. Let's say you want to add a feature to highlight a
column when you click on the day of the week. You can add a
command called ccHighlightColumn to the CalendarCommand enum. In
the RedrawCalendar routine you would need to add a call to
AddRangeCheck with the dimensions of the day of the week cell and
the command ccHighlightColumn. This would add the range to the
range array (maClickRanges) which is used in CheckMouseClick. In
CheckMouseClick you would add your command to the select case
statement with the logic that highlights the column. Take a look
at the source code. It really is fairly simple. The hardest part
is figuring out the dimensions of the range you want to define for
a command.
There are many additional ways this control can be enhanced. If
an enhanced version of this control would be useful to you, please
email us at calendar@codeoftheweek.com
Properties
All of these properties were discussed last week. We have left
them out in order to save space since the source code in this
issue is pretty long. The issue can be read at
http://www.codeoft ... (cont.)
Jeff Prosise on .NET [Interview, .NET, Article, Visual C++] www.codeproject.com 17-Aug-2000 by Chris Maunder
Jeff Prosise on .NET
Chris Maunder
Jeff Prosise answers your questions on .NET
Converting the CONNECT Sample to a Local Server [ATL, COM, Article, Visual C++] www.codeguru.com 17-Aug-2000 by Paul Shaffer
Converting the CONNECT Sample to a Local Server
Paul Shaffer
Major update of article and demo code to fix bugs when running NT or
Win2K
Window Handle Picker Sample [Sample, Article, Visual C++] www.codeguru.com 17-Aug-2000 by Mike Marquet
Window Handle Picker Sample
Mike Marquet
"Spy"-like tool that displays a window's styles when you drag the mouse
over any window
Converting the CONNECT Sample to a Local Server [Article, Visual C++] www.earthweb.com 17-Aug-2000 by Paul Shaffer
Converting the CONNECT Sample to a Local Server
Paul Shaffer
17-Aug-2000
17-Aug-2000
Learn how to use connection points between different processes with ATL.
CSizingControlBar: a resizable Control bar [Toolbar, Docking Window, Control, Article, Visual C++] www.codeproject.com 16-Aug-2000 by Cristi Posea
CSizingControlBar: a resizable Control bar
Cristi Posea
DevStudio-like docking window
Network Development Kit [Internet, Network, Article, Visual C++] www.codeproject.com 16-Aug-2000 by S?bastien Lachance, Yannick L?tourneau
Network Development Kit
S?bastien Lachance and Yannick L?tourneau
Network Development Kit is a set of simple classes for a client-server
architecture.
Macro For Stepping Into #import Wrapped COM Methods [Macro, Article, Visual C++] www.codeguru.com 16-Aug-2000 by Graham Jest
Macro For Stepping Into #import Wrapped COM Methods
Graham Jest
Very useful macro that by passes the wrapper class' implementation and
directly into the method you want to view
WTL: Button Menu [ATL, COM, Update, Article, Visual C++] www.codeguru.com 16-Aug-2000 by David Peterson
WTL: Button Menu
David Peterson
Fixed a bug that resulted in two different CButtonMenu controls on the
same dialog always painting the same caption
Macro For Stepping Into #import Wrapped COM Methods [Article, Visual C++] www.earthweb.com 16-Aug-2000 by Graham Jest
Macro For Stepping Into #import Wrapped COM Methods
Graham Jest
16-Aug-2000
16-Aug-2000
Very useful macro that bypasses the wrapper class' implementation and
directly into the method you want to view
CWindowImpl ATL Object Wizard [ATL, ATL Object Wizard, Article, Visual C++] www.codeproject.com 15-Aug-2000 by Erik Thompson
CWindowImpl ATL Object Wizard
Erik Thompson
This is an ATL Object Wizard that eases window development using
CWindowImpl. It removes the redundant copy-n-paste of code between class
implementations
Windows like Menus on web pages [JavaScript, Menu, HTML, Article, Visual C++] www.codeproject.com 15-Aug-2000 by Shoaib Ali
Windows like Menus on web pages
Shoaib Ali
How to create menus using Javascript and HTML.
Download a URL contents ( using HTTP WinInet API) [Article, Visual C++] www.mindcracker.com 15-Aug-2000 by Mahesh Chand
Download a URL contents ( using HTTP WinInet API)
Sample code available.
Mahesh Chand
15-Aug-2000
15-Aug-2000
WinInet for Beginners [Article, Visual C++] www.mindcracker.com 15-Aug-2000 by Mahesh Chand
WinInet for Beginners
A simple tutorial for beginners with introduction to WinInet and sample
code
Mahesh Chand
15-Aug-2000
15-Aug-2000
Learn to Earn [Article, Delphi] delphi.about.com 15-Aug-2000
15-Aug-2000
15-Aug-2000
Learn to Earn
Skills pay. If you have the right ones, you will get the career you
want - superior job, more money, and mastery of what you do. See how to become
a certified Delphi developer.
Debugging & Testing Tips for Win9x [Debugging, Article, Visual C++] www.codeproject.com 14-Aug-2000 by Keith Rule
Debugging & Testing Tips for Win9x
Keith Rule
Debugging & Testing Tips from the Trenches
File Stream Encryption (using a Context Menu) [File, Folder, Context Menu, Explorer, Article, Visual C++] www.codeproject.com 14-Aug-2000 by Daniel Madden
File Stream Encryption (using a Context Menu)
Daniel Madden
An article on file stream encryption (using Crypt++ v3.2) from an
Explorer Context Menu
WTL: Button Menu [Windows Template Library, WTL, Menu, Article, Visual C++] www.codeproject.com 14-Aug-2000 by David Peterson
WTL: Button Menu
David Peterson
Use WTL to create simple button that implements drop-down menu
Defining and Declaring Functions in C++ [Article, Visual C++] cplus.about.com 14-Aug-2000
14-Aug-2000
14-Aug-2000
Defining and Declaring Functions in C++
How to create and use functions in C++
Converting the CONNECT Sample to a Local Server [ATL, COM, Event, Thread, Article, Visual C++] www.codeproject.com 13-Aug-2000 by Paul Shaffer
Converting the CONNECT Sample to a Local Server
Paul Shaffer
An article on ATL COM Event connection point Threading issues
Using Worker Threads [Thread, Process, Inteprocess Communication, Article, Visual C++] www.codeproject.com 13-Aug-2000 by Joseph M Newcomer
Using Worker Threads
Joseph M Newcomer
Learn how to create and use worker threads in your applications.
Optimization: Your Worst Enemy [Tip, Article, Visual C++] www.codeproject.com 13-Aug-2000 by Joseph M Newcomer
Optimization: Your Worst Enemy
Joseph M Newcomer
Learn about the potential pitfalls of code optimization.
DCOM D-Mystified: A DCOM Tutorial, Step 1 [COM, DCOM, Article, Visual C++] www.codeproject.com 12-Aug-2000 by Brian Hart
DCOM D-Mystified: A DCOM Tutorial, Step 1
Brian Hart
This tutorial shows you how to write DCOM software, with all the latest
features, in a simple, straightforward manner.
DCOM D-Mystified: A DCOM Tutorial, Step 2 [COM, DCOM, ATL, Article, Visual C++] www.codeproject.com 12-Aug-2000 by Brian Hart
DCOM D-Mystified: A DCOM Tutorial, Step 2
Brian Hart
We modify starter files, provided by the ATL COM AppWizard, to improve
the user-friendliness of our server.
DCOM D-Mystified: A DCOM Tutorial, Step 3 [COM, DCOM, ATL, Article, Visual C++] www.codeproject.com 12-Aug-2000 by Brian Hart
DCOM D-Mystified: A DCOM Tutorial, Step 3
Brian Hart
In this step we add a simple COM object to our server using the New ATL
Object Wizard.
DCOM D-Mystified: A DCOM Tutorial, Step 4 [COM, DCOM, Article, Visual C++] www.codeproject.com 12-Aug-2000 by Brian Hart
DCOM D-Mystified: A DCOM Tutorial, Step 4
Brian Hart
Here we add a method to our DCOM-remoted object, and start on
implementing its functionality.
DCOM D-Mystified: A DCOM Tutorial, Step 5 [COM, DCOM, Article, Visual C++] www.codeproject.com 12-Aug-2000 by Brian Hart
DCOM D-Mystified: A DCOM Tutorial, Step 5
Brian Hart
We look at connection points and set up the server's end of one. We'll
also finish implementing our SayHello() method.
DCOM D-Mystified: A DCOM Tutorial, Step 6 [COM, DCOM, Article, Visual C++] www.codeproject.com 12-Aug-2000 by Brian Hart
DCOM D-Mystified: A DCOM Tutorial, Step 6
Brian Hart
We build our new server and install it on the server machine.
DCOM D-Mystified: A DCOM Tutorial, Step 7 [COM, DCOM, MFC, Article, Visual C++] www.codeproject.com 12-Aug-2000 by Brian Hart
DCOM D-Mystified: A DCOM Tutorial, Step 7
Brian Hart
At last! We finish our tutorial by writing a client with MFC,
AppWizard, and ClassWizard, like back in the good ol' days (sighhh...)
DCOM D-Mystified: Questions and Answers [COM, DCOM, Article, Visual C++] www.codeproject.com 12-Aug-2000 by Brian Hart
DCOM D-Mystified: Questions and Answers
Brian Hart
Brian's detailed answers to your most frequently asked questions about
his DCOM tutorial.
Generic Serializer: Serializing arbitrary data structures [C++, MFC, STL, Serializing, Template, Article, Visual C++] www.codeproject.com 12-Aug-2000 by Martin Holzherr
Generic Serializer: Serializing arbitrary data structures
Martin Holzherr
Template functions for serializing arbitrary linked nodes.
CODBCRecordset class [Database, MFC, Article, Visual C++] www.codeproject.com 12-Aug-2000 by Stefan Chekanov
CODBCRecordset class
Stefan Chekanov
CODBCRecordset class is intended to be full replacement of all
ClassWizard generated CRecordset derived classes in MFC projects.
A Beginners Guide to Dialog Based Applications, Part One [Dialog, Windows Programming, MFC, Article, Visual C++] www.codeproject.com 12-Aug-2000 by Dr Asad Altimeemy
A Beginners Guide to Dialog Based Applications, Part One
Dr Asad Altimeemy
A step by step tutorial showing how to create your first windows
program using MFC
CString Management [String, Article, Visual C++] www.codeproject.com 12-Aug-2000 by Joseph M Newcomer
CString Management
Joseph M Newcomer
Learn how to effectively use CStrings.
Non-MFC String Class for ATL [String, MFC, ATL, Component, Article, Visual C++] www.codeproject.com 12-Aug-2000 by Paul E Bible
Non-MFC String Class for ATL
Paul E Bible
A Non-MFC String Class for use in ATL Components
AVEPopup ActiveX Control [ActiveX Control, Combobox, Article, Visual Basic] www.vb2themax.com 12-Aug-2000 by Jaroslaw Zwierz
AVEPopup ActiveX Control
12-Aug-2000
12-Aug-2000
Jaroslaw Zwierz
This Combobox-like ActiveX control lets you host nearly every
coincevable control inside it, so that you can save precious screen estate. For
example, you can host a TreeView or a ListView control inside the drop-down
area of the AVEPopup control, and you can do the same with any control that
exposes the hWnd property. The demo program shows how you can use it in an MDI
environment, in modeless and modal forms. The best news is that the AVEPopup
control is provided with its source code!
Visit the author's web site at www.ave.com.pl
Combo box and SetItemDataPtr [Article, Visual C++] www.mindcracker.com 12-Aug-2000 by Rail Jon Rogut
Combo box and SetItemDataPtr
.
Add data to combobox using SetItemDataPtr
Rail Jon Rogut
12-Aug-2000
12-Aug-2000
How to transfer data from one dialog to another [Article, Visual C++] www.mindcracker.com 12-Aug-2000 by Rail Jon Rogut
How to transfer data from one dialog to another
Rail Jon Rogut
12-Aug-2000
12-Aug-2000
How to use CBitmap in your application [Article, Visual C++] www.mindcracker.com 12-Aug-2000 by Rail Jon Rogut
How to use CBitmap in your application
Rail Jon Rogut
12-Aug-2000
12-Aug-2000
Open/Read a text file with Print/Print preview [Article, Visual C++] www.mindcracker.com 12-Aug-2000 by Rail Jon Rogut
Open/Read a text file with Print/Print preview
Rail Jon Rogut
12-Aug-2000
12-Aug-2000
Search for files [Article, Visual C++] www.mindcracker.com 12-Aug-2000 by Rail Jon Rogut
Search for files
This example upon launching searches all drives for any MP3 files and
lists them .....
Rail Jon Rogut
12-Aug-2000
12-Aug-2000
Find in CWebBrowser Control [Control, Article, Visual C++] www.codeproject.com 11-Aug-2000 by Jeremy Davis
Find in CWebBrowser Control
Jeremy Davis
How to display the "Find" window in a CWebBrowser control.
Using ATL to Automate an MFC Application [ATL, COM, Article, Visual C++] www.codeguru.com 11-Aug-2000 by Bart De Lathouwer
Using ATL to Automate an MFC Application
Bart De Lathouwer
Article that illustrates MS Office-like automation with remotely
creatable documents.
SCSI Information DLL [Tool, Article, Visual C++] www.codeguru.com 11-Aug-2000 by Michael Becker
SCSI Information DLL
Michael Becker
DLL that identifies and retrieves parameters from local SCSI devices
How to save list box contents between sessions [Article, Visual C++] www.mindcracker.com 11-Aug-2000 by Rail Jon Rogut
How to save list box contents between sessions
Rail Jon Rogut
11-Aug-2000
11-Aug-2000
How to save list box contents between sessions [Article, Visual C++] www.mindcracker.com 11-Aug-2000 by Rail Jon Rogut
How to save list box contents between sessions
Rail Jon Rogut
11-Aug-2000
11-Aug-2000
How to insert, delete, grayed out, enable/disable menus on runtime? [Article, Visual C++] www.mindcracker.com 11-Aug-2000 by Mahesh Chand
How to insert, delete, grayed out, enable/disable menus on runtime?
Mahesh Chand
11-Aug-2000
11-Aug-2000
Add your own controls to CFileDialog Rail [Article, Visual C++] www.mindcracker.com 11-Aug-2000 by Jon Rogut
Add your own controls to CFileDialog Rail
Jon Rogut
11-Aug-2000
11-Aug-2000
MRU Folders Rail [Article, Visual C++] www.mindcracker.com 11-Aug-2000 by Jon Rogut
MRU Folders Rail
Jon Rogut
11-Aug-2000
11-Aug-2000
Directory Chooser [Article, Visual C++] www.mindcracker.com 11-Aug-2000 by Rail Jon Rogut
Directory Chooser
Rail Jon Rogut
11-Aug-2000
11-Aug-2000
Using ATL to Automate an MFC application [Article, Visual C++] www.earthweb.com 11-Aug-2000 by Bart De Lathouwer
Using ATL to Automate an MFC application
Bart De Lathouwer
11-Aug-2000
11-Aug-2000
MS Office-like automation with remotely creatable documents.
Visual C++/MFC Tutorial: Lesson 7: Data Viewer [C++, MFC, Article, Visual C++] www.codeguru.com 10-Aug-2000 by Brian Martin
Visual C++/MFC Tutorial: Lesson 7: Data Viewer
Brian Martin
In the final installment of Brian's tutorial, you put to use what
you've learned the past week by coding a sample data viewer application
Extended Time Format Functions (with Milliseconds) [Date, Time, Article, Visual C++] www.codeguru.com 10-Aug-2000 by Roland J Graf
Extended Time Format Functions (with Milliseconds)
Roland J Graf
Very useful set of time formatting routines that can easily be inserted
into your C++ code
Interactive SQL Tool (using ADO) [SQL, Tool, OLE DB, SQL Script, Article, Visual C++] www.mindcracker.com 10-Aug-2000 by George Poulose
Interactive SQL Tool (using ADO)
A tool that allows you to query OLE DB sources, author SQL Scripts,
return query results to a grid and more ...
George Poulose
10-Aug-2000
10-Aug-2000
In-process Servers and DCOMCNFG Utility [In-process Server, DCOMCNFG, Article, Visual C++] www.mindcracker.com 10-Aug-2000 by George Poulose
In-process Servers and DCOMCNFG Utility
George Poulose
10-Aug-2000
10-Aug-2000
How to subclass a CEdit control [Article, Visual C++] www.mindcracker.com 10-Aug-2000 by Rail Jon Rogut
How to subclass a CEdit control
.
This shows how to subclass the CEdit control when user left clicks.
Sample project attached.
Rail Jon Rogut
10-Aug-2000
10-Aug-2000
Interactive SQL Tool (using ODBC) [Article, Visual C++] www.mindcracker.com 10-Aug-2000 by George Poulose
Interactive SQL Tool (using ODBC)
A tool that allows you to query ODBC sources
George Poulose
10-Aug-2000
10-Aug-2000
Interactive SQL Tool (using ADO) [Article, Visual C++] www.mindcracker.com 10-Aug-2000 by George Poulose
Interactive SQL Tool (using ADO)
A tool that allows you to query OLE DB sources, author SQL scripts,
return query results to a grid and more ...
George Poulose
10-Aug-2000
10-Aug-2000
How to subclass a CEdit control [Article, Visual C++] www.mindcracker.com 10-Aug-2000 by Rail Jon Rogut
How to subclass a CEdit control
.
This shows how to subclass the CEdit control when user left clicks.
Sample project attached.
Rail Jon Rogut
10-Aug-2000
10-Aug-2000
Visual C++/MFC Tutorial - Lesson 7: Data Viewer [Article, Visual C++] www.earthweb.com 10-Aug-2000 by Brian Martin
Visual C++/MFC Tutorial - Lesson 7: Data Viewer
Brian Martin
10-Aug-2000
10-Aug-2000
In the final installment of Brian's tutorial, you put to use what
you've learned the past week by coding a sample data viewer application
ComboTree [Combobox, List Control, Article, Visual C++] www.codeproject.com 09-Aug-2000 by Dennis Howard
ComboTree
Dennis Howard
ComboBox with a tree control drop down
The Next Generation Internet: Visual Studio.NET screen shots [.NET, Visual Studio, Article, Visual C++] www.codeproject.com 09-Aug-2000 by Chris Maunder
The Next Generation Internet: Visual Studio.NET screen shots
Chris Maunder
Some Visual Studio.NET screen shots to tease
Load a CString from DLL within that DLL [Win32, SDK Programming, DLL, Article, Visual C++] www.codeproject.com 09-Aug-2000 by Jim Koornneef
Load a CString from DLL within that DLL
Jim Koornneef
CString::LoadString(), resource will not load under certain conditions.
Visual C++/MFC Tutorial: Lesson 6: SDI and MDI Applications [C++, MFC, Article, Visual C++] www.codeguru.com 09-Aug-2000 by Brian Martin
Visual C++/MFC Tutorial: Lesson 6: SDI and MDI Applications
Brian Martin
In this penultimate part of the series, Brian teaches you the basic of
creating Document/View applications
Making a Window "Always On Top" [Dialog, Article, Visual C++] www.codeguru.com 09-Aug-2000 by Christopher Tan
Making a Window "Always On Top"
Christopher Tan
Shows how to set a windows properties such that it is always shown on
top of other windows
Stored Procedure Class Wizard (SPCW) [Stored Procedure, Class Wizard, Article, Visual C++] www.mindcracker.com 09-Aug-2000 by George Poulose
Stored Procedure Class Wizard (SPCW)
A tool to generate class files to implement stored procedures
George Poulose
09-Aug-2000
09-Aug-2000
Stored Procedure Class Wizard (SPCW) [Article, Visual C++] www.mindcracker.com 09-Aug-2000 by George Poulose
Stored Procedure Class Wizard (SPCW)
A tool to generate class files to implement stored procedures
George Poulose
09-Aug-2000
09-Aug-2000
Solving Complex SQL Problems with Full-Text Indexing [Article, Visual C++] www.earthweb.com 09-Aug-2000 by Tom Archer
Solving Complex SQL Problems with Full-Text Indexing
Tom Archer
9-Aug-2000
9-Aug-2000
Real-world problems can turn an ordinary SQL statement into a Cartesian
product-producing, index-ignoring, performance nightmare. In such cases, SQL
Server's Full-Text Index may offer the perfect mix of flexibility and
performance.
Visual C++/MFC Tutorial - Lesson 6: SDI and MDI Applications [Article, Visual C++] www.earthweb.com 09-Aug-2000 by Brian Martin
Visual C++/MFC Tutorial - Lesson 6: SDI and MDI Applications
Brian Martin
9-Aug-2000
9-Aug-2000
In this penultimate part of the series, Brian teaches you the basic of
creating doc/view applications
Making a Window "Always On Top" [Article, Visual C++] www.earthweb.com 09-Aug-2000 by Christopher Tan
Making a Window "Always On Top"
Christopher Tan
9-Aug-2000
9-Aug-2000
Shows how to set a windows properties such that it is always shown on
top of other windows
Universal Table Editor [Active Server Pages, Table, Database, Article, Visual C++] www.codeproject.com 08-Aug-2000 by Tom Wellige
Universal Table Editor
Tom Wellige
Viewer and Editor for any table in any Database you can reach from your
IIS/PWS.
Visual C++/MFC Tutorial: Lesson 5: Dialog-Based Applications [C++, MFC, Article, Visual C++] www.codeguru.com 08-Aug-2000 by Brian Martin
Visual C++/MFC Tutorial: Lesson 5: Dialog-Based Applications
Brian Martin
In this installment of the series, Brian covers the basics of dialogs
and dialog-based applications
"Toggle Header" Add-In for Visual Studio [Macro, Article, Visual C++] www.codeguru.com 08-Aug-2000
"Toggle Header" Add-In for Visual Studio
-N/A
Add-In that solves problem of macros crashing when they can't open the
current file's associated header file
Visual C++/MFC Tutorial - Lesson 5: Dialog-Based Applications [Article, Visual C++] www.earthweb.com 08-Aug-2000 by Brian Martin
Visual C++/MFC Tutorial - Lesson 5: Dialog-Based Applications
Brian Martin
8-Aug-2000
8-Aug-2000
In this installment of the series, Brian covers the basics of dialogs
and dialog-based applications
"Toggle Header" Add-In for Visual Studio [Article, Visual C++] www.earthweb.com 08-Aug-2000 by Power Station
"Toggle Header" Add-In for Visual Studio
Power Station
8-Aug-2000
8-Aug-2000
Add-In that solves problem of macros crashing when they can't open the
current file's associated header file
Files With NO Structure [Article, Delphi] delphi.about.com 08-Aug-2000
08-Aug-2000
08-Aug-2000
Files With NO Structure
Using Delphi's Pascal to manage operations on untyped files - direct
access to disk files regardless of type and structuring.
File uploading with COM and ASP [Active Server Pages, File, COM, ASP, Component, Article, Visual C++] www.codeproject.com 07-Aug-2000 by Xicoloko
File uploading with COM and ASP
Xicoloko
A simple COM Component with source that provides file upload
capabilities for your ASP pages.
Address Book [Sample, Article, Visual C++] www.codeproject.com 07-Aug-2000 by Xavier John
Address Book
Xavier John
Visual C++/MFC Tutorial: Lesson 4: MFC Basics [C++, MFC, Article, Visual C++] www.codeguru.com 07-Aug-2000 by Brian Martin
Visual C++/MFC Tutorial: Lesson 4: MFC Basics
Brian Martin
Start dipping your toes in the MFC waters in preperation for the really
cool stuff
Tool for Globally Changing Class Names [Tool, Article, Visual C++] www.codeguru.com 07-Aug-2000 by Manuel Lucas Viñas Livschitz
Tool for Globally Changing Class Names
Manuel Lucas Viñas Livschitz
Very useful application for handling mass class changes across large
projects
Visual C++/MFC Tutorial - Lesson 4: MFC Basics [Article, Visual C++] www.earthweb.com 07-Aug-2000 by Brian Martin
Visual C++/MFC Tutorial - Lesson 4: MFC Basics
Brian Martin
7-Aug-2000
7-Aug-2000
Start dipping your toes in the MFC waters in preperation for the really
cool stuff
Setting Properties with OLE Automation [ATL, Article, Visual C++] www.codeproject.com 06-Aug-2000 by Konstantin Boukreev
Setting Properties with OLE Automation
Konstantin Boukreev
Describes an ActiveX Control to use OLE Automation to set an object's
properties.
kPad: A lightweight WTL based text editor [Windows Template Library, WTL, Article, Visual C++] www.codeproject.com 06-Aug-2000 by Konstantin Boukreev
kPad: A lightweight WTL based text editor
Konstantin Boukreev
An example of using the WTL library and RichEdit control
WBEM Class Wrapper for Local and Remote Process Creation [System, Article, Visual C++] www.codeguru.com 06-Aug-2000 by Brandon Clark
WBEM Class Wrapper for Local and Remote Process Creation
Brandon Clark
Wraps the Microsoft Windows 2000 implementation of the industry
standard WBEM
kPad: Lightweight Text Editor [ATL, COM, Article, Visual C++] www.codeguru.com 06-Aug-2000 by Konstantin Boukreev
kPad: Lightweight Text Editor
Konstantin Boukreev
Great example of the types of things you can do with WTL !!
Visual C++/MFC Tutorial:Lesson 3: Visual C++ IDE and Workspaces [C++, MFC, Article, Visual C++] www.codeguru.com 06-Aug-2000 by Brian Martin
Visual C++/MFC Tutorial:Lesson 3: Visual C++ IDE and Workspaces
Brian Martin
Third installment of the seven-part Visual C++ tutorial series
Visual C++/MFC Tutorial - Lesson 3: Visual C++ IDE and Workspaces [Article, Visual C++] www.earthweb.com 06-Aug-2000 by Brian Martin
Visual C++/MFC Tutorial - Lesson 3: Visual C++ IDE and Workspaces
Brian Martin
6-Aug-2000
6-Aug-2000
Third installment of the seven-part Visual C++ tutorial series
WBEM Class Wrapper for Local and Remote Process Creation [Article, Visual C++] www.earthweb.com 06-Aug-2000 by Brandon Clark
WBEM Class Wrapper for Local and Remote Process Creation
Brandon Clark
6-Aug-2000
6-Aug-2000
This class will allow the creation of any specified process on a remote
or local Windows machine.
Layout Manager for Dialogs, Formviews, DialogBars and PropertyPages [Dialog, Windows Programming, Article, Visual C++] www.codeproject.com 05-Aug-2000 by Erwin Tratar
Layout Manager for Dialogs, Formviews, DialogBars and PropertyPages
Erwin Tratar
A framework to provide automatic layout control for dialogs and forms
CopyProc Add-in
5-Aug-2000
5-Aug-2000
Roshan Dawrani
This add-in breaks up the selected VB component's code and prepares a
list of all the procedures(Subroutines, Functions, Property Procedures and the
Declaration section). You can select the methods and the add-in gets the
definition of the selected methods for you. No need to browse through all the
code to see the definition of various functions. You can also print the code
using the add-in. It is especially useful if you want to copy code in all the
events of a particular object like a command button, a listbox, etc.
How To Get Certified in C++ [Article, Visual C++] cplus.about.com 05-Aug-2000
05-Aug-2000
05-Aug-2000
How To Get Certified in C++
Understand the types of certification and how to get certified.
Visual C++/MFC Tutorial:Lesson 2: C++ Essentials [C++, MFC, Article, Visual C++] www.codeguru.com 05-Aug-2000 by Brian Martin
Visual C++/MFC Tutorial:Lesson 2: C++ Essentials
Brian Martin
Before jumping into MFC specifics, Brian now leads you through a quick
C++ class to get you prepared for the next step
SetColor: A Console-Window Color-Changing Tool [Tool, Article, Visual C++] www.codeguru.com 05-Aug-2000 by Simon Cooke
SetColor: A Console-Window Color-Changing Tool
Simon Cooke
Win32 console-mode application (written in C) that allows the user to
set the color of following output text
Visual C++/MFC Tutorial - Lesson 2: C++ Essentials [Article, Visual C++] www.earthweb.com 05-Aug-2000 by Brian Martin
Visual C++/MFC Tutorial - Lesson 2: C++ Essentials
Brian Martin
5-Aug-2000
5-Aug-2000
Before jumping into MFC specifics, Brian now leads you through a quick
C++ class to get you prepared for the next step
How to start the screen saver in code (using: Visual Basic 6.0) [GetDesktopWindow(), Screen Saver, SendMessage(), Visual Basic, Tip] visualbasic.about.com 04-Aug-2000
How to start the screen saver in code
Start up Visual Basic and add a form to the project.
Copy this code into the declarations section of the form:
Private Declare Function GetDesktopWindow Lib "user32" () As Long
Private Declare Function SendMessage Lib "user32" _
Alias "SendMessageA" (ByVal hWnd As Long, ByVal _
wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const WM_SYSCOMMAND As Long = &H112&
Private Const SC_SCREENSAVE As Long = &HF140&
Create a new procedure to the form, called "StartScreenSaver".
Add the following code to this procedure:
Dim hWnd&
On Error Resume Next
hWnd& = GetDesktopWindow()
Call SendMessage(hWnd&, WM_SYSCOMMAND, SC_SCREENSAVE, 0&)
To activate the screen saver, simply add this code to call the procedure:
Call StartScreenSaver
A very simple COM server without ATL or MFC [COM, DCOM, ATL, MFC, Article, Visual C++] www.codeproject.com 04-Aug-2000 by Shoaib Ali
A very simple COM server without ATL or MFC
Shoaib Ali
A step by step guide to writing a COM server using C++ without MFC or
ATL
Visual C++/MFC Tutorial: Lesson 1: Behind the Scenes with Handles and Messages [C++, MFC, Article, Visual C++] www.codeguru.com 04-Aug-2000 by Brian Martin
Visual C++/MFC Tutorial: Lesson 1: Behind the Scenes with Handles and
Messages
Brian Martin
This is the first in an installment of great Visual C++ / MFC tutorials
from Brian Martin
How to use deque container to add and delete items? [Article, Visual C++] www.mindcracker.com 04-Aug-2000 by Mahesh Chand
How to use deque container to add and delete items?
Mahesh Chand
04-Aug-2000
04-Aug-2000
Merging contents of two vectrors [Article, Visual C++] www.mindcracker.com 04-Aug-2000 by Mahesh Chand
Merging contents of two vectrors
Mahesh Chand
04-Aug-2000
04-Aug-2000
How to use map container? [Article, Visual C++] www.mindcracker.com 04-Aug-2000 by Mahesh Chand
How to use map container?
Mahesh Chand
04-Aug-2000
04-Aug-2000
A beginner's tutorial on STL [Article, Visual C++] www.mindcracker.com 04-Aug-2000 by Mahesh Chand
A beginner's tutorial on STL
A tutorial teaches you how to use STL in your program with various
sample examples.
Mahesh Chand
04-Aug-2000
04-Aug-2000
Visual C++/MFC Tutorial - Lesson 1: Behind the Scenes with Handles and Messages [Article, Visual C++] www.earthweb.com 04-Aug-2000 by Brian Martin
Visual C++/MFC Tutorial - Lesson 1: Behind the Scenes with Handles and
Messages
Brian Martin
4-Aug-2000
4-Aug-2000
This is the first in an installment of great Visual C++/MFC tutorials
from Brian Martin
SkDCOMbridge : COM/DCOM Handler Object
Shai Korianski
4-Aug-2000
4-Aug-2000
Use Windows API for handling COM/DCOM objects and create a wrapper for
a given interface.
Changing the Color of Edit and Combobox Controls in ATL [ATL, COM, Article, Visual C++] www.codeguru.com 03-Aug-2000 by Anita Rodriquez
Changing the Color of Edit and Combobox Controls in ATL
Anita Rodriquez
Simple step-by-step instructions on changing control colors when using
ATL
Empty Directory Utility Under NT [File, Folder, Article, Visual C++] www.codeguru.com 03-Aug-2000 by Michel Yossef David
Empty Directory Utility Under NT
Michel Yossef David
Useful Win32 API-based function that deletes all folders and files
within a specified folder
Sorting contents of a list using sort algorithm [Article, Visual C++] www.mindcracker.com 03-Aug-2000 by Mahesh Chand
Sorting contents of a list using sort algorithm
Mahesh Chand
03-Aug-2000
03-Aug-2000
Empty Directory Utility Under NT [Article, Visual C++] www.earthweb.com 03-Aug-2000 by Michel Yossef David
Empty Directory Utility Under NT
Michel Yossef David
3-Aug-2000
3-Aug-2000
Description and explanation of Empty Directory Utility
Changing the Color of Edit and Combobox Controls in ATL [Article, Visual C++] www.earthweb.com 03-Aug-2000 by Anita Rodriquez
Changing the Color of Edit and Combobox Controls in ATL
Anita Rodriquez
3-Aug-2000
3-Aug-2000
Simple step-by-step instructions on changing control colors when using
ATL.
BookNote .... Uses Automation to Make Persistent Bookmarks and Add Notes About Code [Developer Studio, Visual C++, Visual Studio, VC++ Add-in, Visual Studio Add-in] www.microsoft.com 02-Aug-2000
BookNote: Uses Automation to Make Persistent Bookmarks and Add Notes About Code
BookNote lets you record notes (like permanent bookmarks), associating them
with code. The sample also shows using the registry to persist a number of
items in an MRU list. BookNote was created with the ATL COM AppWizard. Support
MFC was checked in the wizard, and then an Add-in object was added to the
project with the ATL Object Wizard. Most of the code added is in MarkIt.cpp.
If you modify the sample, precede each function that could be called from an
external interface with the following code:
AFX_MANAGE_STATE(AfxGetStaticModuleState());
This allows you to access your resources and is necessary because of the MFC
support.
The CMRUStrings class is used to do the persistence for a drop-down combo box.
You can use this class and other classes from the add-ins in other projects.
See Reusing Code Topics and Adding Classes to the Gallery for information on
how to reuse code.
To build the sample
Click the link at the beginning of this topic to download the sample files.
In Visual C++, open the project file BookNote.dsp.
Choose an appropriate configuration (Win32 Release is best if you plan to use
this add-in).
Click Rebuild All from the Build menu.
To run the add-in
From the Tools menu, click Customize.
Select the BookNote.dll file or browse for it. See Tips for Using Add-ins.
Visual C++ will load the add-in. When you close the Customize dialog box,
BookNote’s toolbar will appear.
Run the BookNote add-in by clicking the toolbar button. Once the add-in has
been loaded, it will open a dialog box. It will record the current selection
(file, line, end of selection if applicable). You can type a note into the main
edit box. When you click OK, the current selection will be copied into a file,
which you can specify in this dialog box via a combo box that holds up to 10
file names. You can also immediately dump the current note to the output
window. You can then use this wit ... (cont.)
Specifying multiple actions from a single Form [JavaScript, Article, Visual C++] www.codeproject.com 02-Aug-2000 by Chris Maunder
Specifying multiple actions from a single Form
Chris Maunder
A simple way to send the data from a single form to different pages,
depending on which 'submit' button the user chooses
RichEdit Overlay (non-MFC) [Rich Edit, Article, Visual C++] www.codeguru.com 02-Aug-2000 by Matt Slot
RichEdit Overlay (non-MFC)
Matt Slot
Code that enables you to make a RichEdit transparent so that the text
draws over top of the contents of the parent window (or even a memory DC)!
Placing Logo on the Top DockBar of the Frame Window [Toolbar, Article, Visual C++] www.codeguru.com 02-Aug-2000 by Andrey Abelyashev
Placing Logo on the Top DockBar of the Frame Window
Andrey Abelyashev
Great class that enables you to place your logo on the main dockbar of
your SDI/MDI applications!
Placing Logo on the Top DockBar of the Frame Window [Article, Visual C++] www.earthweb.com 02-Aug-2000 by Andrey Abelyashev
Placing Logo on the Top DockBar of the Frame Window
Andrey Abelyashev
2-Aug-2000
2-Aug-2000
Great class that enables you to place your logo on the main dockbar of
your SDI/MDI applications!
RichEdit Overlay (non-MFC) [Article, Visual C++] www.earthweb.com 02-Aug-2000 by Matt Slot
RichEdit Overlay (non-MFC)
Matt Slot
2-Aug-2000
2-Aug-2000
This snippet demonstrates how to make a RichEdit control transparent,
so that the text draws over top of the contents of the parent window (or even a
memory DC).
Use Transactions Efficiently [Transaction, SQL Server, Data Integrity, Database, Article, Visual Basic] Visual Basic Programmer's Journal 01-Aug-2000, vol. 10, no. 9 by Barry Fridley
Use Transactions Efficiently
Barry Fridley
Take advantage of SQL Server transactions to create dependable apps and
preserve Data Integrity in your SQL Server Database.
Build Scalable WebClass Applications [WebClass, Article, Visual Basic] Visual Basic Programmer's Journal 01-Aug-2000, vol. 10, no. 9 by Keith Franklin
Build Scalable WebClass Applications
Keith Franklin
Use VB WebClasses to build highly scalable and flexible Web-based
applications.
Use UML for Object Modeling [UML, Object Modeling, Visual Modeler, Article, Visual Basic] Visual Basic Programmer's Journal 01-Aug-2000, vol. 10, no. 9 by Rockford Lhotka
Use UML for Object Modeling
Rockford Lhotka
Using UML with Visual Modeler, you can create diagrams that help you
map out your object model.
Create an Expense Report [VBA, Excel, PalmPilot, Article, Visual Basic] Visual Basic Programmer's Journal 01-Aug-2000, vol. 10, no. 9 by Chris Barlow
Create an Expense Report
Using VBA hosted by Excel 2000, you can develop a simple application
creating a corporate expense report. Find out how the report pulls data files
from your PalmPilot.
Chris Barlow
Use Linked Lists to Structure Data [Linked List, Article, Visual Basic] Visual Basic Programmer's Journal 01-Aug-2000, vol. 10, no. 9 by Nick Snowdon
Use Linked Lists to Structure Data
Use linked lists to store data when you want a more flexible structure
than stacks or queues.
Nick Snowdon
Implement Advanced COM+ Transactions
Designing COM+ transactions for complex ASP applications poses a few
challenges. The author takes you through the intricacies of Database Locking
and transactional COM+ components.
Yasser Shohoud
Create a Clipboard Object [Clipboard, Explorer, Article, Visual Basic] Visual Basic Programmer's Journal 01-Aug-2000, vol. 10, no. 9 by Martin America
Create a Clipboard Object
Learn how to use Windows Explorer to store filenames during copy and
paste. Also discover how to access the filenames from your applications.
Martin America
Listen to Objects With Interface [Object, Interface, Notification Interface, Article, Visual Basic] Visual Basic Programmer's Journal 01-Aug-2000, vol. 10, no. 9 by Karl E Peterson
Listen to Objects With Interface
A Notification Interface opens your clients to notifications from many
objects when you can't use arrays.
Karl E Peterson
First Look at Visual Studio 7.0 [Visual Studio, C#, Common Language Runtime, IDE, Article, Visual C++] Visual C++ Developers Journal 01-Aug-2000, vol. 3, no. 7 by Brian Noyes
First Look at Visual Studio 7.0
Brian Noyes
VS7 has something for everyone. Get the skinny on the new C# language
and the Common Language Runtime, Web services and other enterprise development
technologies, and IDE enhancements that increase your productivity.
Shared Settings Basics [Registry, Article, Visual C++] Visual C++ Developers Journal 01-Aug-2000, vol. 3, no. 7 by Tom Creighton
Online Only!
Shared Settings Basics
Tom Creighton
Intrigued by this month's Black Belt column, but feel a little out of
your depth? Read this online companion piece to "Share Settings Across
Programs" for a quick overview of the Registry and a simple demonstration of
the tool's functionality.
Make the Most of the IDE [IDE, AppWizard, Article, Visual C++] Visual C++ Developers Journal 01-Aug-2000, vol. 3, no. 7 by Bill Wagner
Make the Most of the IDE
Bill Wagner
You know how to start applications using the AppWizard. Now learn to
work with Visual C++’s productivity tools to program more effectively.
Integrate Message Queuing
Yasser Shohoud
Queued Components aren't magic - they simply provide a nice wrapper
around MSMQ and integrate tightly with the COM+ programming model. Use them to
integrate message queuing into your COM+ applications.
Port Combobox Data From MFC [Combobox, MFC, Resource, Article, Visual C++] Visual C++ Developers Journal 01-Aug-2000, vol. 3, no. 7 by Andy Harding
Port Combobox Data From MFC
Andy Harding
Get your MFC app's combo box data to show up in your ported Win32 app,
String Conversion Macros [String Conversion, Macro, Article, Visual C++] Visual C++ Developers Journal 01-Aug-2000, vol. 3, no. 7 by Andy Harding
String Conversion Macros
Andy Harding
Experience the joys of string conversion macros.
Use Type Libraries With ATL [ATL, COM, COM+, ATL Server, Type Library, Article, Visual C++] Visual C++ Developers Journal 01-Aug-2000, vol. 3, no. 7 by Richard Grimes
Use Type Libraries With ATL
Richard Grimes
ATL recognizes type libraries' importance to COM and COM+ by ensuring
every ATL Server has a bound type library. Learn how to use this fact to your
advantage, and when to break the rules safely and effectively.
Speed Up Your EXE Server [EXE, Server, ATL, Thread Pool, MTA, STA, Article, Visual C++] Visual C++ Developers Journal 01-Aug-2000, vol. 3, no. 7 by George Shepherd
Speed Up Your EXE Server
George Shepherd
ATL's Thread Pooling abilities give you the same throughput advantage
as MTA, even when interacting with STA objects. This means a fast EXE server.
Share Settings Across Programs [Article, Visual C++] Visual C++ Developers Journal 01-Aug-2000, vol. 3, no. 7 by Tom Creighton
Share Settings Across Programs
Tom Creighton
Do you need a facility for sharing program settings across multiple,
concurrent and distributed programs? Use a simple database whose schema you can
implement on a variety of DBMS platforms.
Detecting Vertical Retrace
Thiadmer Riemersma
For Animation with no annoying "tearing", you really need to avoid
drawing to the graphics adaptor when the CRT is also reading from the graphics
adaptor. You can’t just read VGA registers directly to sync up with the
vertical retrace, though - you need a Device Driver, as this article shows.
A Generic Property Window for MFC [Property Window, MFC, Article, Visual C++] Windows Developer's Journal 01-Aug-2000, vol. 11, no. 8 by Chris Dix
A Generic Property Window for MFC
Chris Dix
The VB paradigm of presenting a list of properties and their editable
values can be useful for ordinary applications as well. Here’s an MFC class to
automate much of the work.
A Simple HTML Display Class [HTML, Rich Edit Control, Article, Visual C++] Windows Developer's Journal 01-Aug-2000, vol. 11, no. 8 by Jonathan Potter
A Simple HTML Display Class
Jonathan Potter
The rich edit control is your main tool for displaying editable,
formatted text - but RTF is painful to use. The C++ class presented here lets
you use standard HTML constructs to get styles (boldface, italic, etc.), color,
and even hypertext links in a standard Rich Edit Control.
Understanding NT: Performance Counters [Performance Counter, System Tray, Windows NT, Article, Visual C++] Windows Developer's Journal 01-Aug-2000, vol. 11, no. 8 by Paula Tomlinson
Understanding NT: Performance Counters
Paula Tomlinson
Performance counters allow running programs to provide arbitrary
statistics that monitor programs (such as PerfMon) can display. The discussion
of performance counters continues this month with a small System Tray utility
that monitors a couple of operating system parameters.
A VxD for Emulating the Windows Key [VxD, Windows, Article, Visual C++] Windows Developer's Journal 01-Aug-2000, vol. 11, no. 8 by Manfred Keul
A VxD for Emulating the Windows Key
Manfred Keul
The most efficient way to do some keyboard remapping under Win9x is
with a VxD, as this example demonstrates.
Obtaining the Code Page of Keyboard Input [Code Page, Keyboard, Article, Visual C++] Windows Developer's Journal 01-Aug-2000, vol. 11, no. 8 by Steve Hanov
Obtaining the Code Page of Keyboard Input
Steve Hanov
Some users can switch input locales on the fly, and that means the most
obvious way of obtaining the current code page won’t work.
Custom Folder Icons
Petter Hesselberg
The right settings in a hidden DESKTOP.INI file can give any folder a
special icon when viewed from Explorer.
Invoking the Default E-mail Program [E-mail, Article, Visual C++] Windows Developer's Journal 01-Aug-2000, vol. 11, no. 8 by Simon Liu
Invoking the Default E-mail Program
Simon Liu
HTML pages can use their "mailto:" feature to let you automatically pop
up your email client with the correct target address; here’s how your Windows
application can do the same.
The Gold Standard, MIDAS & COM: Part I [MIDAS, COM, Database, Article, Delphi] Delphi Informant 01-Aug-2000, vol. 6, no. 8 by Bill Todd
The Gold Standard, MIDAS & COM: Part I
Bill Todd
Mr Todd demonstrates that a combination of MIDAS and COM servers is the
ideal system architecture for easily sharing a single Database connection among
multiple EXEs and DLLs.
Hierarchy of Forms [Form, Form Inheritance, Article, Delphi] Delphi Informant 01-Aug-2000, vol. 6, no. 8 by Ron Nibbelink
Hierarchy of Forms
Ron Nibbelink
It's been around since version 2, but many Delphi developers still
aren't reaping the benefits of Form Inheritance. Mr Nibbelink shares his
time-honored techniques for building a reusable form hierarchy.
Open Dialog [Dialog, Windows NT, Article, Delphi] Delphi Informant 01-Aug-2000, vol. 6, no. 8 by Deepak Shenoy
Open Dialog
Deepak Shenoy
With its new Places Bar and other changes, the Windows 2000 Open dialog
box definitely has a new look. Using a bit of inheritance, Mr Shenoy
demonstrates how to share that look with your users.
Cross-platform Controls [Kylix, Linux, Article, Delphi] Delphi Informant 01-Aug-2000, vol. 6, no. 8 by Robert Kozak
Cross-platform Controls
Robert Kozak
So many "firsts"! Robert Kozak gives us our first look at some Kylix
source code. And guess what? It looks awfully familiar - which is, of course,
the point. It's also the very first custom control written in Kylix.
Dependency Tracking [Dependency Tracking, Article, Delphi] Delphi Informant 01-Aug-2000, vol. 6, no. 8 by Michael L Perry
Dependency Tracking
Michael L Perry
Mr Perry explains dependency tracking, a powerful mechanism for keeping
a system up-to-date, contrasts it with other approaches (e.g. the Observer
Pattern), then provides a Delphi implementation.
Is Linux Ready for Delphi? [Linux, Article, Delphi] Delphi Informant 01-Aug-2000, vol. 6, no. 8 by Danny Thorpe
Is Linux Ready for Delphi?
Danny Thorpe
Our favorite IDE is about to be launched on an entirely different
platform, so it's only natural there are many questions and concerns. Borland
R&D Engineer Danny Thorpe allays fears, cuts through the religious and
political haze, and puts Kylix - and its place on Linux - into perspective.
Recursion Excursion [Recursion, Component, Parsing, Article, Delphi] Delphi Informant 01-Aug-2000, vol. 6, no. 8 by Alexander Gofen
Recursion Excursion
Alexander Gofen
Mr Gofen offers a new Component: an advanced calculator that allows
users to deal with sets of formulas and series that uses elegant recursion
techniques for Parsing arithmetic expressions.
WAP Apps [WAP, Internet, Wireless Markup Language, WML, Article, Delphi] Delphi Informant 01-Aug-2000, vol. 6, no. 8 by Mike Riley
WAP Apps
Mike Riley
With wireless connections to portable, hand-held displays, Internet
connectivity has evolved to the next level. Mr Riley takes us to that next
level as well, with Delphi and Wireless Markup Language (WML).
Converting VCL Components to Windows Resources [VCL, Resource, C++ Builder, Article, Visual C++] C++ Users Journal 01-Aug-2000, vol. 18, no. 8 by Luigi Bianchi
Converting VCL Components to Windows Resources
Luigi Bianchi
Borland C++Builder has its own version of resource files, but they can
be translated to more conventional .RC files.
A Lightweight Window Wrapper [Wrapper, Encapsulation, Article, Visual C++] C++ Users Journal 01-Aug-2000, vol. 18, no. 8 by Steve Hanov
A Lightweight Window Wrapper
Steve Hanov
Even the simplest aspects of window management can benefit from a bit
of Encapsulation.
A Reusable Nonlinear System Solver, Part 2 [Equation Solver, Article, Visual C++] C++ Users Journal 01-Aug-2000, vol. 18, no. 8 by Michael L Perry
A Reusable Nonlinear System Solver, Part 2
Michael L Perry
It’s not enough to have a general Equation Solver - you have to know
how to talk to it.
A Simple Persistence Framework [Persistence, Object Broker, Article, Visual C++] C++ Users Journal 01-Aug-2000, vol. 18, no. 8 by Gary Hsiao
A Simple Persistence Framework
Gary Hsiao
Think of a persistent Object Broker as a poor man’s database. Then
think of all the ways you might use it.
A Simple Linear Regression Class [Regression, Class, Encapsulation, Article, Visual C++] C++ Users Journal 01-Aug-2000, vol. 18, no. 8 by David C Swaim
A Simple Linear Regression Class
David C Swaim
Even an operation as simple as linear least squares can benefit from
Encapsulation in a class.
Creating an Index Table in STL [Index Table, STL, Article, Visual C++] C++ Users Journal 01-Aug-2000, vol. 18, no. 8 by Craig Hicks
Creating an Index Table in STL
Craig Hicks
STL doesn’t do everything, but often a missing bit of functionality can
be assembled from available parts.
Unraveling Multithreading [Multithreading, Article, Visual C++] C++ Users Journal 01-Aug-2000, vol. 18, no. 8 by Pete Becker
Pete Becker
Unraveling Multithreading
Sometimes you have to spend a lot of time on just a little bit of code,
to avoid spending much more time not knowing where to begin debugging.
Flinging C++ Objects Across the Network [COM, DCOM, Network, Article, Visual C++] www.codeproject.com 01-Aug-2000 by Brian Hart
Flinging C++ Objects Across the Network
Brian Hart
A different approach than byte-stuffing BSTRs.
A Beginner's Guide to the Linked List [C++, MFC, STL, CList Class, Article, Visual C++] www.codeproject.com 01-Aug-2000 by Andrew Peace
A Beginner's Guide to the Linked List
Andrew Peace
An article showing the basics of the linked list, and how the CList
class operates
Getting to Know MIDAS [MIDAS, Article, Delphi] Delphi Developer 01-Aug-2000, vol. 6, no. 8 by Jani Jarvinen
Getting to Know MIDAS
Jani Jarvinen
Delphi 5 Frames [Frame, Article, Delphi] Delphi Developer 01-Aug-2000, vol. 6, no. 8 by Bob Swart
Delphi 5 Frames
Bob Swart
Writing a Delphi Application Without the VCL [VCL, Article, Delphi] Delphi Developer 01-Aug-2000, vol. 6, no. 8 by Fernando Vicaria, Robert Ehteshamzadeh
Writing a Delphi Application Without the VCL
Fernando Vicaria and Robert Ehteshamzadeh
SQL Server 2000: New Features Provide Unmatched Ease of Use and Scalability to Admins and Users [SQL Server, SQL Server, Article, Visual C++] MSDN Magazine 01-Aug-2000, vol. 15, no. 8 by Carl Nolan
SQL Server 2000: New Features Provide Unmatched Ease of Use and
Scalability to Admins and Users
Carl Nolan
SOAP Toolkit: Develop a Web Service: Up and Running with the SOAP Toolkit for Visual Studio [SOAP, Web Services, Visual Studio, Article, Visual C++] MSDN Magazine 01-Aug-2000, vol. 15, no. 8 by Rob Caron
SOAP Toolkit: Develop a Web Service: Up and Running with the SOAP
Toolkit for Visual Studio
Rob Caron
Intro to XSLT: XSL Transformations Alleviate XML Schema Incompatibility Headaches [XSLT, XSL Transformation, XML Schema, Article, Visual C++] MSDN Magazine 01-Aug-2000, vol. 15, no. 8 by Don Box, Aaron Skonnard, John Lam
Intro to XSLT: XSL Transformations Alleviate XML Schema Incompatibility
Headaches
Don Box
,
Aaron Skonnard
,
John Lam
Migrating Your ASP Apps from Windows NT 4.0 to Windows 2000 [ASP, Windows NT, Windows NT, Article, Visual C++] MSDN Magazine 01-Aug-2000, vol. 15, no. 8 by Shelley Powers
Migrating Your ASP Apps from Windows NT 4.0 to Windows 2000
Shelley Powers
Sending E-mail from Forms, Database Solutions, Web Site Planning [E-mail, Form, Database, Web, Article, Visual C++] MSDN Magazine 01-Aug-2000, vol. 15, no. 8 by Robert Hess
Sending E-mail from Forms, Database Solutions, Web Site Planning
Robert Hess
SQL Server 7.0 and OLE DB Heterogeneous Queries [OLE DB, Heterogeneous Query, SQL Server, Article, Visual C++] MSDN Magazine 01-Aug-2000, vol. 15, no. 8 by Dino Esposito
SQL Server 7.0 and OLE DB Heterogeneous Queries
Dino Esposito
XML Data Manipulation with ADO 2.5 [XML, ADO, Article, Visual C++] MSDN Magazine 01-Aug-2000, vol. 15, no. 8 by Ken Spencer
XML Data Manipulation with ADO 2.5
Ken Spencer
Writing ActiveX Controls in Visual Basic versus Visual C++ [ActiveX Control, Visual Basic, Article, Visual C++] MSDN Magazine 01-Aug-2000, vol. 15, no. 8 by George Shepherd
Writing ActiveX Controls in Visual Basic versus Visual C++
George Shepherd
A COM Symbol Engine Aids Debugging [COM, Symbol Engine, Debugging, Article, Visual C++] MSDN Magazine 01-Aug-2000, vol. 15, no. 8 by John Robbins
A COM Symbol Engine Aids Debugging
John Robbins
Explore the Security Support Provider Interface Using the SSPI Workbench Utility [Security Support Provider Interface, SSPI, Article, Visual C++] MSDN Magazine 01-Aug-2000, vol. 15, no. 8 by Keith Brown
Explore the Security Support Provider Interface Using the SSPI
Workbench Utility
Keith Brown
Implementing Handler Marshaling Under Windows 2000: DeviceClient Sample App [Handler Marshaling, Windows NT, Article, Visual C++] MSDN Magazine 01-Aug-2000, vol. 15, no. 8 by Jeff Prosise
Implementing Handler Marshaling Under Windows 2000: DeviceClient Sample
App
Jeff Prosise
Windows 2000 File Dialog Revisited; Autocompletion and the ACTest Demo App [File Dialog, Autocompletion, Windows NT, Article, Visual C++] MSDN Magazine 01-Aug-2000, vol. 15, no. 8 by Paul DiLascia
Windows 2000 File Dialog Revisited; Autocompletion and the ACTest Demo
App
Paul DiLascia
Custom Comment-Out Macro
Ilic Ferretti
Aside from Visual Basic and C++ comments, this macro also supports
Python script, scripts inside HTML pages, VBScript and Javascript
CRegistry : Serialize Data In/Out of the Registry [System, Article, Visual C++] www.codeguru.com 01-Aug-2000 by Amir Israeli
CRegistry : Serialize Data In/Out of the Registry
Amir Israeli
Very sophisticated class for serializing your date to the Registry
How to use STL's reverse algorithm to reverse an array? [Article, Visual C++] www.mindcracker.com 01-Aug-2000 by Mahesh Chand
How to use STL's reverse algorithm to reverse an array?
Mahesh Chand
01-Aug-2000
01-Aug-2000
Offline -- But Not Disconnected From Your Data [Offline, Article, Lotus Notes] Notes Advisor 01-Aug-2000 by Rocky Oliver
Web Development - Lotus Notes & Domino Advisor - August 2000
Offline -- But Not Disconnected From Your Data
Rocky Oliver
DOLS 101 for Administrators [DOLS, Article, Lotus Notes] Notes Advisor 01-Aug-2000 by Henry Newberry
DOMINO OFF-LINE SERVICES - Lotus Notes & Domino Advisor - August 2000
DOLS 101 for Administrators
Henry Newberry
Take Your Web Applications Offline [Web, Offline, Article, Lotus Notes] Notes Advisor 01-Aug-2000 by Henry Newberry
DOMINO OFFLINE SERVICES - Lotus Notes & Domino Advisor - August 2000
Take Your Web Applications Offline
Henry Newberry
Reuse Code for Mixed-Client Development [Reuse, Article, Lotus Notes] Notes Advisor 01-Aug-2000 by Jennifer Bisk
Mixed-Client Development - Lotus Notes & Domino Advisor - August 2000
Reuse Code for Mixed-Client Development
Jennifer Bisk
Let Developers Be Developers [Article, Lotus Notes] Notes Advisor 01-Aug-2000 by David Leedy
Web Development - Lotus Notes & Domino Advisor - August 2000
Let Developers Be Developers
David Leedy
Mimic Pages and Resources in 4.6x [Article, Lotus Notes] Notes Advisor 01-Aug-2000 by James Ray
Web Development - Lotus Notes & Domino Advisor - August 2000
Mimic Pages and Resources in 4.6x
James Ray
Send Notes Links Outside of Domino [Link, Domino, Article, Lotus Notes] Notes Advisor 01-Aug-2000 by W Colin Judge
Workflow - Lotus Notes & Domino Advisor - August 2000
Send Notes Links Outside of Domino
W Colin Judge
CRegistry : Serialize Data In/Out of the Registry [Article, Visual C++] www.earthweb.com 01-Aug-2000 by Amir Israeli
CRegistry : Serialize Data In/Out of the Registry
Amir Israeli
1-Aug-2000
1-Aug-2000
This is a very sophisticated class for serializing your date to the
Registry.
Custom Comment-Out Macro
Ilic Ferretti
1-Aug-2000
1-Aug-2000
Aside from Visual Basic and C++ comments, this macro also supports
Python script, scripts inside HTML pages, VBScript and Javascript
My Own Database [Article, Delphi] delphi.about.com 01-Aug-2000
01-Aug-2000
01-Aug-2000
My Own Database
Working with binary files from Delphi. Use Object Pascal to manage
writing, reading and updating your own types of files.
Applying an update UI notification interface to user-defined controls [Control, Article, Visual C++] www.codeproject.com 31-Jul-2000 by Bernd Giesen
Applying an update UI notification interface to user-defined controls
Bernd Giesen
A C++/MFC sample how to implement UI notifications for user-defined
controls
Mining The Web [Article, Visual Basic] visualbasic.about.com 31-Jul-2000
31-Jul-2000
31-Jul-2000
Mining The Web
With the introduction of the Microsoft Internet Transfer control it has
never been easier to build a simple utility to gather information from remote
servers or web sites. In this article, we'll be coding an application that can
retrieve stock quotes from an online financial service.
The Next Generation Internet: Postcards from PDC [.NET, Article, Visual C++] www.codeproject.com 30-Jul-2000 by Chris Maunder
The Next Generation Internet: Postcards from PDC
Chris Maunder
Some pics from PDC 2000.
Align your code [Macro, Add-in, Article, Visual C++] www.codeproject.com 30-Jul-2000 by Scott Kirkwood
Align your code
Scott Kirkwood
Align multiple lines of assignments after the equal sign, for example
Tree control and Buttons for MFC Grid Control [Control, MFC, Grid Control, Article, Visual C++] www.codeproject.com 30-Jul-2000 by Ken Bertelson
Tree control and Buttons for MFC Grid Control
Ken Bertelson
A set of classes derived from CGridCtrl that embed a tree control,
button controls, and virtual cells within the grid
Using comboboxes in the MFC Grid Control [Control, MFC, Grid Control, Article, Visual C++] www.codeproject.com 30-Jul-2000 by Chris Maunder
Using comboboxes in the MFC Grid Control
Chris Maunder
Explains how to use comboboxes to edit cells in the MFC Grid Control
Performance Monitor: Get System Counter Values (CPU, Memory, etc.) [System, Article, Visual C++] www.codeguru.com 30-Jul-2000 by Mike Ryan
Performance Monitor: Get System Counter Values (CPU, Memory, etc.)
Mike Ryan
Great Windows 2000 resource meter application
Getting the Module (exe) Filename from an HWND [System, Update, Article, Visual C++] www.codeguru.com 30-Jul-2000 by Mike Ryan
Getting the Module (exe) Filename from an HWND
Mike Ryan
Windows 9x and the NTVDM 16-bit processes
Alpha Blending (Transparent) Windows [UI, Article, Visual C++] www.codeguru.com 30-Jul-2000 by Mike Ryan
Alpha Blending (Transparent) Windows
Mike Ryan
Article that illustrates how to enable the new Alpha Blending features
of Microsoft Windows 2000
ComboBox with Tree Dropdown [Combobox, Update, Article, Visual C++] www.codeguru.com 30-Jul-2000 by Dennis Howard
ComboBox with Tree Dropdown
Dennis Howard
Corrects a slight painting bug as well as issues related to emulating
the droplist style ComboBox
Getting the Module (exe) Filename from an HWND [Article, Visual C++] www.earthweb.com 30-Jul-2000 by Mike Ryan
Getting the Module (exe) Filename from an HWND
Mike Ryan
30-Jul-2000
30-Jul-2000
Very useful class that also includes the ability to filter out specific
module names and types
Performance Monitor - Get System Counter Values (CPU, Memory, etc.) [Article, Visual C++] www.earthweb.com 30-Jul-2000 by Mike Ryan
Performance Monitor - Get System Counter Values (CPU, Memory, etc.)
Mike Ryan
30-Jul-2000
30-Jul-2000
Great Windows 2000 resource meter application
Alpha Blending (Transparent) Windows [Article, Visual C++] www.earthweb.com 30-Jul-2000 by Mike Ryan
Alpha Blending (Transparent) Windows
Mike Ryan
30-Jul-2000
30-Jul-2000
Learn how to enable the new Alpha Blending features of Microsoft
Windows 2000.
BTree .... A class for managing binary trees [Class, Binary Tree, Visual Basic, VB Class Module] www.vb2themax.com 29-Jul-2000 by John Holfelder
BTree - A class for managing binary trees
Date: 7/29/2000
Versions: VB5 VB6 Level: Intermediate
Author: John Holfelder
ucCalendar .... how to create your own calendar control [Calendar, UserControl, Visual Basic, VB UserControl] www.codeoftheweek.com 29-Jul-2000, no. 126
Requirements
Visual Basic 5.0 or higher.
In this issue we discuss how to create your own calendar control.
ucCalendar
There are many calendar controls on the market these days. Most
of those controls do not include source code to modify if the
control does not quite perform the function you want it to. This
calendar control is also pretty lightweight. Most of the work
occurs in a single routine called RedrawCalendar. It does not
depend on anything other than the Visual Basic run time libraries
(ie no third party controls).
This control contains the basic logic to create a language
independent calendar with the ability to view a month at a time.
It can easily be used in a control array to view multiple months
at a time.
One limitation we took was with the Font properties. Instead of
using the full font object we just allowed setting the FontSize
and FontName. Of course you can enhance this to include
additional properties.
There are many ways this control can be enhanced. If an enhanced
version of this control would be useful to you, please email us at
calendar@codeoftheweek.com
Properties
----------
Public Property Let BackColor(lBackColor As Long)
Allows the setting of the background color for the calendar. The
standard colors such as vbWhite, vbRed, etc can be used. Thr RGB
function can also be used here.
Public Property Get FontName() As String
Public Property Let FontName(sFontName As String)
The name of the font to use when drawing the numbers and text in
the calendar.
Public Property Let FontSize(lFontSize As Long)
Public Property Get FontSize() As Long
The size of the font to use when drawing the numbers and the text
in the calendar.
Public Property Let Month(lMonth As Long)
Public Property Get Month() As Long
The number of the month to show. It should be in the range of 1
for January and 12 for December.
Public Property Let Year(lYear As Long)
Public Property Get Year() As Long
The number of the year to sho ... (cont.)
GetArrayInfo - Retreive number of dimensions and the SAFEARRAY memory structure (using: Visual Basic 6.0) [SafeArray, SAFEARRAY, SAFEARRAYBOUND, Visual Basic, Solution] www.vb2themax.com 29-Jul-2000
GetArrayInfo - Retreive number of dimensions and the SAFEARRAY memory structure
Date: 7/29/2000
Versions: VB5 VB6 Level: Advanced
Author: Monte Hansen
Type SAFEARRAYBOUND
cElements As Long ' # of elements in the array dimension
lLbound As Long ' lower bounds of the array dimension
End Type
Type SAFEARRAY
cDims As Integer ' Count of dimensions in this array.
fFeatures As Integer ' Flags used by the SAFEARRAY routines documented
' below.
cbElements As Long ' Size of an element of the array.
cLocks As Long ' Number of times the array has been
' locked without corresponding unlock.
pvData As Long ' Pointer to the data.
rgsabound(1 To 60) As SAFEARRAYBOUND ' One bound for each dimension.
' An array can have max 60 dimensions, only the first cDims items will be
' used
' note that rgsabound elements are in reverse order,
' e.g. for a 2-dimensional
' array, rgsabound(1) holds info about columns, and rgsabound(2) about rows
End Type
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (dest As _
Any, source As Any, ByVal bytes As Long)
Private Const VT_BYREF = &H4000&
' Fills a SAFEARRAY structure for the supplied array.
'
' The information contained in the SAFEARRAY structure allows
' the caller to identify the number of dimensions and the
' number of elements for each dimension (among other things).
' Element information for each dimension is stored in a
' one-based sub-array of SAFEARRAYBOUND structures (rgsabound).
'
' TheArray The array to get information on.
' ArrayInfo The output SAFEARRAY structure.
'
' RETURNS The number of dimensions of the array
' or zero if the array isn't dimensioned
Function GetArrayInfo(TheArray As Variant, ArrayInfo As SAFEARRAY) As Boolean
Dim lp As Long ' work pointer variable
Dim VType As I ... (cont.)
Creating help string for Enum constants (using: Visual Basic 6.0) [Enumerate, Help, IDL, MIDL, Visual Basic, Solution] www.vb2themax.com 29-Jul-2000
Creating help string for Enum constants
Date: 7/29/2000
Versions: VB5 VB6 Level: Advanced
Author: Carl-Johan Lindgren
I've been trying to find a way to assign helpstrings for Enums in Visual Basic.
The Class builder utility does that only for methods, events, and properties,
but not for Enums.
The IDL source code that corresponds to an Enum in a type library looks
something like follws, and you can run the MIDL compiler on this IDL to make a
typelib that include help strings for Enums and thus has a more professional
look.
typedef [uuid(742F2A4D-8B13-4DF0-905E-91D03769A49C), version(1.0),
helpstring("Enums for ASPMtnSms")]
enum {
[helpstring("Auto login")] <<<--- INSERT this helpstring
amsAutoLogin = 0
} AspMtnSMSEnum;
Run the following command to generate aspmtnsms.tlb
MIDL aspmtnsms.dll /mktyplib203
Unfortunately, there is no way - or at least I can't devise it - to incorporate
this into a VB component (dll) instead of a stand-alone type library.
Non-obvious uses for the Like operator (using: Visual Basic 6.0) [Like Operator, Visual Basic, Tip] www.vb2themax.com 29-Jul-2000
Non-obvious uses for the Like operator
________________________________________________________
LIKE is probably the most underutilized VB operator when compared to its
potential. The most immediate use for this operator is to check that a string
begins or ends with a given pattern. For example, it is simple to check that a
Product ID is made up of an alphabetic character followed by three digits:
If ProductID Like "[A-Za-z][0-9][0-9][0-9]" Then Print "OK"
' this is equivalent, because "#" stands for a digit
If ProductID Like "[A-Za-z]###" Then Print "OK"
But there are other cases when LIKE can be very useful. For example, you can
check that a string contains only uppercase alphabetical characters by
transforming the condition into "check that the string doesn't contain any
non-alphabetical character", as follows:
If Not ProductID Like "*[!A-Z]*" Then Print "OK"
Similarly, you can check that a string contains only digits with:
If Not ProductID Like "*[!0-9]*" Then Print "OK"
The following statement checks that a string doesn't contain any symbol (which
means it contains only alpha-numeric characters):
If Not ProductID Like "*[!A-Za-z0-9]*" Then Print "OK"
The following statement checks that a string follows the rules for a valid VB
variable name, that is, it's an alphabetic character followed by zero or more
alphanumeric characters:
' VarName contains the string to test
If VarName like "[A-Za-z]*" And Not Mid$(VarName, 2) Like "*[!A-Z_a-z0-9]*" Then
Print "OK"
The following statement checks that a string contains exactly two spaces
(consecutive or not):
If TestString Like "* * *" Then Print "OK"
while the following test ensures that the two spaces are not consecutive:
If TestString Like "* ?* *" Then Print "OK"
Checking a signed integer is more complicated, because you must account for the
leading sign and must provide the correct number of "#" symbols:
' NumValue contains the string to test
If NumValue Like "#" Or (Len(NumValue) > 1 And NumValue Like ... (cont.)
How to Kill an Orphaned Process (using: Windows NT 4.0) [Process, Task Manager, Windows NT, Tip] www.microsoft.com 29-Jul-2000
How to Kill an Orphaned Process
The information in this article applies to:
Microsoft Windows NT Server version 4.0
Microsoft Windows NT Workstation version 4.0
Microsoft Windows NT Server version 4.0, Terminal Server Edition
Microsoft Windows 2000 Professional
Microsoft Windows 2000 Server
Microsoft Windows 2000 Advanced Server
SUMMARY
When a service terminates abnormally, it sometimes leaves "orphaned" child
processes behind. This article describes several ways to remove such a process.
MORE INFORMATION
The easiest method to use is the KILL command from the Windows NT Server 4.0
Resource Kit:
KILL
-or-
KILL -F
The list of processes and process IDs can be obtained from the Task Manager or
with the TLIST utility from the Windows NT Server 4.0 Resource Kit.
If neither of these commands work, and the Schedule service is running on that
computer in the Local System context, you might be able to successfully
terminate the process by scheduling one of the above commands with the AT
utility:
AT
Cool Push Menu Button [Button Control, Menu, Office, Article, Visual C++] www.codeproject.com 29-Jul-2000 by Norm Almond
Cool Push Menu Button
Norm Almond
This article shows the use of a Push button with a drop down menu,
similar to the one found in the Office 2000 suite.
Exposing tabular data from your COM object, Part 1 [Database, COM, ADO, ATL, Template, Article, Visual C++] www.codeproject.com 29-Jul-2000 by Len Holgate
Exposing tabular data from your COM object, Part 1
Len Holgate
ADO seems to be the ideal way to expose tabular data from your own COM
objects and the ATL OLE DB Provider Templates can help!
Exposing tabular data from your COM object, Part 2 [Database, COM, ATL, Template, Article, Visual C++] www.codeproject.com 29-Jul-2000 by Len Holgate
Exposing tabular data from your COM object, Part 2
Len Holgate
The ATL OLE DB Provider Templates appear to rely on the fact that your
data is kept in a simple array, but that's not really the case at all!
Exposing tabular data from your COM object, Part 3 [Database, COM, ADO, Article, Visual C++] www.codeproject.com 29-Jul-2000 by Len Holgate
Exposing tabular data from your COM object, Part 3
Len Holgate
Adding bookmark functionality is relatively easy and it enables our ADO
recordset to be used with a greater number of data bound controls.
Using JavaScript to handle drop-down list selections [JavaScript, Article, Visual C++] www.codeproject.com 29-Jul-2000 by Chris Maunder
Using JavaScript to handle drop-down list selections
Chris Maunder
A simple method of making dropdown lists automatically navigate to a
new page when a new selection is made.
Raw TCP/IP library for Windows 2000 [Network, Article, Visual C++] www.codeguru.com 29-Jul-2000 by Barak Weichselbaum
Raw TCP/IP library for Windows 2000
Barak Weichselbaum
CNewLabel : Advanced CStatic-Derived Class [Static Control, Article, Visual C++] www.codeguru.com 29-Jul-2000 by Mike Marquet
CNewLabel : Advanced CStatic-Derived Class
Mike Marquet
Includes very cool features such as multi-line support, text flashing,
bevelled lines and complete color control
Raw TCP/IP Library for Win2000 [Article, Visual C++] www.earthweb.com 29-Jul-2000 by Barak Weichselbaum
Raw TCP/IP Library for Win2000
Barak Weichselbaum
29-Jul-2000
29-Jul-2000
This library enumarates the TCP/IP protocol, and allows the user to
create custom TCP/IP headers; this allows IP spoofing and other kinds of
attacks.
CNewLabel : Advanced CStatic-Derived Class [Article, Visual C++] www.earthweb.com 29-Jul-2000 by Mike Marquet
CNewLabel : Advanced CStatic-Derived Class
Mike Marquet
29-Jul-2000
29-Jul-2000
This class (CNewLabel) is derived from CStatic and performs a lot of
things that the CStatic class can not do.
Self-Aware Data Wrapper Objects (using: Visual Basic 6.0) [CallByName Function, Document Object Model, DOM, TLBINF32.DLL, Type Library Information Component, XML, Visual Basic, Solution] www.vb2themax.com 28-Jul-2000 by Syd Egan
Self-Aware Data Wrapper Objects with VB
by Syd Egan
If you’re one of the thousands of programmers out there writing server-side
business components, then
you’ve probably used data wrappers: light-weight objects designed to access
streamed data. The
following article builds on the traditional wrapper concept to create
self-aware objects, which offer the
added benefits of simplicity and re-use.
As any good component programmer will tell you, it is always important to
minimize the number of calls
between objects; and one of the ways we achieve this is to pack all of our data
up into "streams" to
pass it from one object to another. Instead of passing, say CustomerID, Name,
and Email as separate
properties, we wrap them up into a single string; perhaps an XML stream, like
so:
1234John Doejohn@doe.com
Often the easiest way to manage these strings in our code, is by writing a
data-wrapper – a custom
class, which gives access to all the pieces of data through COM properties:
objCustomer.CustomerID,
objCustomer.Email, and so on.
However, we also know that data wrappers can be a pain to write – stream and
un-stream methods are
fiddly (do this property, so that property, do the other property….), and you
have to re-write them from
scratch every time, often by cutting and hacking code from similar objects
elsewhere in the system.
What a drag. Wouldn’t it be nice if we could write a data wrapper once, and
then re-use it in a variety of
scenarios, with only minimal "two-minute" modifications? This article shows you
how.
The solution is to write an object that discovers its own properties. That way,
your stream and un-stream
methods only have to be written once, and then you just add or remove
properties to create exactly the
wrapper you need. The solution uses a little-documented Win32 object - the Type
Library Information
component: TLBINF32.dll.
The Type Librar ... (cont.)
Introduction to COM: What It Is and How to Use It. [COM, DCOM, Component, Component, Shell, Article, Visual C++] www.codeproject.com 28-Jul-2000 by Michael Dunn
Introduction to COM: What It Is and How to Use It.
Michael Dunn
A tutorial for programmers new to COM that explains how to reuse
existing COM Components, for example, Components in the Windows Shell.
A picture based skin system and MPEG decoder [Dialog, Windows Programming, MFC, Article, Visual C++] www.codeproject.com 28-Jul-2000 by Cuneyt Elibol
A picture based skin system and MPEG decoder
Cuneyt Elibol
A picture based skin system for MFC that allows the user to customise
their dialogs. The system is demonstrated by presenting a fully functioning
MPEG decoder application.
CXWndAnimate: an alternative to CAnimateCtrl [Control, CAnimateCtrl Class, Bitmap, Article, Visual C++] www.codeproject.com 28-Jul-2000 by Xicoloko
CXWndAnimate: an alternative to CAnimateCtrl
Xicoloko
An animation control that uses a Bitmap imagelist instead of an AVI file
An Image (GIF, JPEG, BMP, ICO, WMF and EMF) Viewer [Multimedia, Update, Article, Visual C++] www.codeguru.com 28-Jul-2000 by Chensu
An Image (GIF, JPEG, BMP, ICO, WMF and EMF) Viewer
Chensu
MFC application that can load, display and print almost any standard
graphics image
ComboBox with Tree Dropdown [Combobox, Article, Visual C++] www.codeguru.com 28-Jul-2000 by Dennis Howard
ComboBox with Tree Dropdown
Dennis Howard
This is a hybrid ComboBox with a Tree View replacing the drop down
Listbox
How to detect memory leaks in your program? [Article, Visual C++] www.mindcracker.com 28-Jul-2000 by Mahesh Chand
How to detect memory leaks in your program?
Mahesh Chand
28-Jul-2000
28-Jul-2000
ComboBox with Tree Dropdown [Article, Visual C++] www.earthweb.com 28-Jul-2000 by Dennis Howard
ComboBox with Tree Dropdown
Dennis Howard
28-Jul-2000
28-Jul-2000
This is a hybrid ComboBox with a tree control replacing the drop down
ListBox.
An Image Viewer [Article, Visual C++] www.earthweb.com 28-Jul-2000
An Image Viewer
-N/A
28-Jul-2000
28-Jul-2000
This is an MFC application using the document/view architecture that
can load, display and print graphics files.
Generate Help Macro File Tool [Tool, Article, Visual C++] www.codeproject.com 27-Jul-2000 by Blake V Miller
Generate Help Macro File Tool
Blake V Miller
A tool to generate help macro files for your VC++ project.
WTL Tool Bar Drop-Down Extension [Windows Template Library, WTL, Article, Visual C++] www.codeproject.com 27-Jul-2000 by Ben Burnett
WTL Tool Bar Drop-Down Extension
Ben Burnett
An article on extending the tool bar control using the Window Template
Library
WTL: Button Menu [ATL, COM, Article, Visual C++] www.codeguru.com 27-Jul-2000 by David Peterson
WTL: Button Menu
David Peterson
Very cool button with arrow image that when pressed drops down a menu
Passing an Array of Values to the Visual C++ MSChart OCX [Control, Article, Visual C++] www.codeguru.com 27-Jul-2000 by JL Colson
Passing an Array of Values to the Visual C++ MSChart OCX
JL Colson
Great step-by-step instructions to passing data to the VC++ MSChart
component
Passing an Array of Values to the Visual C++ MSChart OCX [Article, Visual C++] www.earthweb.com 27-Jul-2000 by J L Colson
Passing an Array of Values to the Visual C++ MSChart OCX
J L Colson
27-Jul-2000
27-Jul-2000
Great step-by-step instructions to passing data to the VC++ MSChart
component
Speech Enable Your App [Article, Visual Basic] visualbasic.about.com 26-Jul-2000
26-Jul-2000
26-Jul-2000
Speech Enable Your App
Have you ever wanted to operate your applications hands free? Imagine
simply speaking to your PC to launch a web browser, check your email or edit a
document in your favourite word processor. Your Guide shows you how to speech
enable your VB application!
Simple Real-time Class for Advanced Charts and Plotting [Control, Article, Visual C++] www.codeguru.com 26-Jul-2000 by Yuantu Huang
Simple Real-time Class for Advanced Charts and Plotting
Yuantu Huang
Great for real-time applications plotting charts using dynamic
engineering data
Creating Skins with SkinSys Ver 1.0 [UI, Article, Visual C++] www.codeguru.com 26-Jul-2000 by Cuneyt Elibol
Creating Skins with SkinSys Ver 1.0
Cuneyt Elibol
MFC-based application for creating and editing skins for your
applications
Download a URL contents (using InternetOpenUrl) [Article, Visual C++] www.mindcracker.com 26-Jul-2000 by Mahesh Chand
Extending CPictureHolder for loading BMP, JPG, etc. [Article, Visual C++] www.earthweb.com 26-Jul-2000 by Roger Onslow
Extending CPictureHolder for loading BMP, JPG, etc.
Roger Onslow
26-Jul-2000
26-Jul-2000
This class extends the MFC CPictureHolder class to include better
support for enhanced metafiles, access to picture handles, loading from files,
and other capabilities.
Creating Skins with SkinSys Ver 1.0 [Article, Visual C++] www.earthweb.com 26-Jul-2000 by Cuneyt Elibol
Creating Skins with SkinSys Ver 1.0
Cuneyt Elibol
26-Jul-2000
26-Jul-2000
Learn to create skins with a picture-based skin system written in
Visual C++/MFC.
Extending CPictureHolder for loading BMP, JPG, etc. [Multimedia, Article, Visual C++] www.codeguru.com 25-Jul-2000 by Roger Onslow
Extending CPictureHolder for loading BMP, JPG, etc.
Roger Onslow
Adds several ehancements to the standard MFC CPictureHolder class
Simple String Class [String, Article, Visual C++] www.codeguru.com 25-Jul-2000 by Yuantu Huang
Simple String Class
Yuantu Huang
Includes methods for formatting, searching (using wild cards) and
numeric conversion to different data types
Simple Real-time Class for Advanced Charts and Plotting [Article, Visual C++] www.earthweb.com 25-Jul-2000 by Yuantu Huang
Simple Real-time Class for Advanced Charts and Plotting
Yuantu Huang
25-Jul-2000
25-Jul-2000
Great for real-time applications plotting charts using dynamic
engineering data
About XML and Delphi [Article, Delphi] delphi.about.com 25-Jul-2000
25-Jul-2000
25-Jul-2000
About XML and Delphi
Everything you need to know about Delphi and the Extensible Markup
Language. Find out about creating and parsing XML documents, look for parser
components and more.
2D Chart and 3D Waterfall Chart Control [Control, Article, Visual C++] www.codeguru.com 24-Jul-2000 by Kris Jearakul
2D Chart and 3D Waterfall Chart Control
Kris Jearakul
CWnd-derived class that provides the functionality of Windows plotting
chart control
IPC Using Connection Points and EventSinks. [ATL, Article, Visual C++] www.codeguru.com 24-Jul-2000 by Yaniv Karta
IPC Using Connection Points and EventSinks.
Yaniv Karta
Step-by-step instructions on building an IPC mechanism using ATL
Connection Points and EventSinks
2D Chart and 3D Waterfall Chart Control [Article, Visual C++] www.earthweb.com 24-Jul-2000 by Kris Jearakul
2D Chart and 3D Waterfall Chart Control
Kris Jearakul
24-Jul-2000
24-Jul-2000
CWnd-derived class that provides the functionality of Windows plotting
chart control
IPC Using Connection Points and EventSinks [Article, Visual C++] www.earthweb.com 24-Jul-2000 by Yaniv Karta
IPC Using Connection Points and EventSinks
Yaniv Karta
24-Jul-2000
24-Jul-2000
Step-by-step instructions on building an IPC mechanism using ATL
Connection Points and EventSinks.
Simple to Use, Yet Powerful Graphics Classes [Control, Article, Visual C++] www.codeguru.com 23-Jul-2000 by Yuantu Huang
Simple to Use, Yet Powerful Graphics Classes
Yuantu Huang
Create some very cool charts very easily with these simple to use
graphics classes
Detecting the Display Font Size [GDI, Article, Visual C++] www.codeguru.com 23-Jul-2000 by Chensu
Detecting the Display Font Size
Chensu
Simple function to enable you to programmatically detect the
user-selected font at runtime
The WNDCTRL Reusable Class [UI, Article, Visual C++] www.codeguru.com 23-Jul-2000 by Noman Nadeem
The WNDCTRL Reusable Class
Noman Nadeem
Easy to use class that enables the showing and hiding of groups of
controls on a dialog or view
Simple to Use, Yet Powerful Graphics Classes [Article, Visual C++] www.earthweb.com 23-Jul-2000 by Yuantu Huang
Simple to Use, Yet Powerful Graphics Classes
Yuantu Huang
23-Jul-2000
23-Jul-2000
Create some very cool charts very easily with these simple to use
graphics classes
The WNDCTRL Reusable Class [Article, Visual C++] www.earthweb.com 23-Jul-2000 by Noman Nadeem
The WNDCTRL Reusable Class
Noman Nadeem
23-Jul-2000
23-Jul-2000
This re-usable class basically accomodates the existance of some hidden
controls/windows.
Detecting the Display Font Size [Article, Visual C++] www.earthweb.com 23-Jul-2000
Detecting the Display Font Size
-N/A
23-Jul-2000
23-Jul-2000
This handly little function will assist you in programmatically
determining the selected font size.
MSExcel - A class for writing Excel spreadsheets (using: Visual Basic 6.0) [Class Module, Excel, Spreadsheet, Visual Basic, Solution] www.vb2themax.com 22-Jul-2000 by Steve Miller
MSExcel - A class for writing Excel spreadsheets
Date: 7/22/2000
Versions: VB5 VB6 Level: Intermediate
Author: Stevel Miller
'***********************************************************
'* Module Name: MSExcel
'* Author: Steve Miller
'* Date: 11/22/98
'* Description: Encapsulates and eases the chore of writing to an Excel
' spreadsheet.
'*
'* IMPORTANT: requires that you have a reference to Excel type library
'*
'* Example: Here is an example of how to use this class:
'* Dim objXL As New ttExcel.Application 'Instantiate the
' object
'* Call objXL.OpenExcelFile(FileName:="c:\SMTest.xls",
' '* WorkSheetName:="MyWorksheet", '* AppendDayofWk:=True)
' 'Open the Excel file
'* Call objXL.StoreExcelRow(A:="Hello", B:="World") 'Write a row to the
' Excel file
'* Call objXL.StoreExcelBlankRows(NbrRows:=10) 'Skip blank rows in
' the Excel file
'* Call objXL.StoreExcelRow(A:="Skipped 10 rows")
'* Call objXL.SetExcelCellWidthAutoFit 'Auto size the
' column widths
'* Call objXL.SetExcelCellWidth(Cell:="A", Width:=25) 'Manually set a
' column width
'* Call objXL.CloseExcelFile 'Close the Excel
' file
'* Set objXL = Nothing 'Cleanup (release
' memory)
'***********************************************************
Option Compare Text
Option Base 1 'Start arrays at element 1 instead of 0
'Constants
Private Const m_constPgm As String = "MSExcel."
Private Const m_lngExcelLabelNotFound = 1004
'Objects
Private m_objWorkbook As Workbook
Private m_objWorksheet As Worksheet
Private m_objXL As Excel.Application
Private m_objPageSetup As Excel.PageSetup
Private m_lxPageOrientation As XlPageOrientation
'Strings
Private m_strExcelFileName As String
'Longs
Private m_lngExcelRow As ... (cont.)
Beginning or end of previous week (using: Visual Basic 6.0) [Date, Visual Basic, Solution] www.vb2themax.com 22-Jul-2000 by Stevel Miller, Steve Miller
The beginning or end of previous week
Date: 7/22/2000
Versions: VB5 VB6 Level: Intermediate
Author: Steve Miller
For reporting, many times you need to figure out what date last week began and
ended. Use the code below to figure that out:
Dim vntBegin As variant
Dim vntEnd As variant
Const constSunday As Integer = 1
GetPriorWorkWeek BeginDayOfWeek:=constSunday, WeekBegin:=vntBegin, _
WeekEnd:=vntEnd
Print "Begin of Week: " & vtnBegin & ", End of Week: " & vtnEnd
This is the complete code of the GetPriorWorkWeek routine. You can easily
modify it to work with any date passed as an argument, not just the current
system date:
' Determine the date of the beginning and end of a week based on today
' and the day the week begins on
'
' Input : BeginDayOfWeek: 1 = Sunday thru 7 = Saturday
' Input/Output : WeekBegin: It sets this to the first day of prior work week
' WeekEnd: It sets this to the last day of the prior work week
Sub GetPriorWorkWeek(ByVal BeginDayOfWeek As Integer, Optional ByVal WeekBegin _
As Variant, Optional ByVal WeekEnd As Variant)
Dim dteDate As Date
Dim blnFound As Boolean
If BeginDayOfWeek < 1 Or BeginDayOfWeek > 7 Then
Err.Raise Number:=1000, Source:="GetLastDayOfMonth", _
Description:="Invalid BeginDayOfWeek, must be between 1 and 7"
End If
'Subtract 7 days ago to arrive at beginning date
dteDate = DateAdd("d", -7, Now)
Do Until blnFound
'If on the beginning of the week, stop;
'otherwise go back until the first day of the week is found
If Weekday(dteDate) = BeginDayOfWeek Then
WeekBegin = dteDate
blnFound = True
Else
dteDate = DateAdd("d", -1, dteDate)
End If
Loop
WeekEnd = DateAdd("d", 6, WeekBegin)
End Sub
Sending Email Using CDO and MAPI (using: Visual Basic 6.0) [CDO, Mail, MAPI, Visual Basic, Solution] www.vb2themax.com 22-Jul-2000 by Steve Miller
Sending Email Using CDO and MAPI
Date: 7/22/2000
Versions: VB5 VB6 Level: Intermediate
Author: Steve Miller
Sending emails via code used to be cool, but now it is a necessity. Below is
code to send email via CDO. If the CDO call fails, it will send using MAPI.
NOTE: You must have CDO for NT referenced in your project for this to work.
' Sends an email to the appropriate person(s)
'
' SendTo = List of email addresses separated by a semicolon. Example:
' sm@xyz.com; steve@work.com; jane@home.com
' Subject = Text that summarizes what the email is about
' EmailText = Body of text that is the email
' AttachmentPath = Directory in which the attachment resides
' Attachment = File to send with the email
Sub SendEmail(From As String, SendTo As String, Subject As String, _
EmailText As String, Optional AttachmentPath As String, _
Optional Attachment As String, Optional CC As String)
Const constRoutine As String = "SendEmail"
Dim strSendTo As String
Dim objSendMail As CDONTS.NewMail
Dim i As Integer
On Error GoTo TryMAPI
'Do not cause the user a major error, just log the error and keep going
If SendTo = "" Then Exit Sub
Set objSendMail = New CDONTS.NewMail
With objSendMail
On Error Resume Next
.From = From
If CC <> "" Then
.CC = CC
End If
On Error GoTo ErrorHandler
.To = SendTo
.Subject = Subject
.Body = EmailText
AttachmentPath = Trim$(AttachmentPath)
If AttachmentPath <> "" Then
If Right$(AttachmentPath, 1) <> "\" Then
AttachmentPath = AttachmentPath & "\"
End If
.AttachFile (AttachmentPath & Attachment)
End If
.Send
End With
GoTo ExitMe
TryMAPI:
On Error GoTo ErrorHandler
'If CDO fails, try MAPI
If CC <> "" Then
strSendTo = SendTo & "; " & CC
Else
strSendTo = SendT ... (cont.)
Send HTML Email via CDO (using: Visual Basic 6.0) [CDO, HTML, Mail, Visual Basic, Solution] www.vb2themax.com 22-Jul-2000 by Steve Miller
Send HTML Email via CDO
Date: 7/22/2000
Versions: VB5 VB6 Level: Intermediate
Author: Steve Miller
Ever wonder how to send email that looks like a web page? Here is how you do
it. Note: You must have CDO for NT referenced for this to work.
'Sends an email to the appropriate person(s).
'
'From = Email address being sent from
'SendTo = List of email addresses separated by a semicolon. Example:
' sm@xyz.com; steve@work.com; jane@home.com
'Subject = Text that summarizes what the email is about
'HTMLText = Body of text that is the email
'AttachmentPath = Directory in which the attachment resides
'Attachment = File to send with the email
Sub SendEmailHTML(From As String, SendTo As String, Subject As String, _
HTMLText As String, Optional AttachmentPath As String, _
Optional Attachment As String, Optional CC As String)
Const constRoutine As String = "SendEmailHTML"
Dim strSendTo As String
Dim objSendMail As CDONTS.NewMail
Dim i As Integer
On Error GoTo ErrorHandler
'Do not cause the user a major error, just log the error and keep going
If SendTo = "" Then Exit Sub
Set objSendMail = New CDONTS.NewMail
With objSendMail
On Error Resume Next
.From = From
If CC <> "" Then
.CC = CC
End If
On Error GoTo ErrorHandler
.To = SendTo
.Subject = Subject
.Body = HTMLText
.MailFormat = CdoMailFormats.CdoMailFormatMime
.BodyFormat = CdoBodyFormats.CdoBodyFormatHTML
AttachmentPath = Trim$(AttachmentPath)
If AttachmentPath <> "" Then
If Right$(AttachmentPath, 1) <> "\" Then
AttachmentPath = AttachmentPath & "\"
End If
.AttachFile (AttachmentPath & Attachment)
End If
.Send
End With
ExitMe:
Set objSendMail = Nothing
Exit Sub
ErrorHandler:
'Send error back
Err.Raise Err.Number, Err.Source, Err.Description
E ... (cont.)
IsValidSSN - Check a Social Security Number value (using: Visual Basic 6.0) [Validation, Visual Basic, Solution] www.vb2themax.com 22-Jul-2000 by Steve Miller
IsValidSSN - Check a Social Security Number value
Date: 7/22/2000
Versions: VB4 VB5 VB6 VBS Level: Beginner
Author: Steve Miller
' Validates attributes of the SSN
' Returns True if valid, False if invalid
'
'Example:
' If IsValidSSN(Value:="333-44-3333", IsRequired:=True) then ...
Function IsValidSSN(ByRef Value As String, Optional ByVal IsRequired As Boolean
_
= True) As Boolean
On Error GoTo ErrorHandler
Dim strTemp As String
Dim i As Integer
Dim intMax As Integer
IsValidSSN = True
Value = Trim$(Value)
If Value = "" Then
If IsRequired Then
IsValidSSN = False
Else
Exit Function
End If
End If
intMax = Len(Value)
For i = 1 To intMax
Select Case Mid$(Value, i, 1)
Case "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"
strTemp = strTemp & Mid$(Value, i, 1)
End Select
Next i
Value = strTemp
If Len(Value) <> 9 Then
IsValidSSN = False
Else
Value = Left$(strTemp, 3) & "-" & Mid$(strTemp, 4, _
2) & "-" & Mid$(strTemp, 6, 4)
End If
ExitMe:
Exit Function
ErrorHandler:
Err.Raise Err.Number, "IsValidSSN", Err.Description
End Function
'###########################################################
'#
'# This rountime has been brought to you by
'# Pragmatic Software Co. Inc, the creators of Defect Tracker,
'# the tool of choice for tracking functional specifications,
'# test cases and software bugs.
'# Learn more at http://www.DefectTracker.com.
'# Affiliate program also available at
'# http://www.PragmaticSW.com/AffiliateSignup.
'#
'###########################################################
IsValidEmail - Validate an email address (using: Visual Basic 6.0) [E-mail, Validation, Visual Basic, Solution] www.vb2themax.com 22-Jul-2000 by Steve Miller
IsValidEmail - Validate an email address
Date: 7/22/2000
Versions: VB4 VB5 VB6 VBS Level: Beginner
Author: Steve Miller
' Validates an email address
' Returns True if valid, False if invalid
'
' Example:
' If IsValidEmail(Value:="x@y.com", MaxLength:=255, IsRequired:=True) then ...
Function IsValidEmail(ByRef Value As String, Optional ByVal MaxLength As Long =
_
255, Optional ByVal IsRequired As Boolean = True) As Boolean
On Error GoTo ErrorHandler
IsValidEmail = True
Value = Trim$(Value)
If IsRequired And Len(Value) = 0 Then
IsValidEmail = False
End If
If Len(Value) > MaxLength Then
IsValidEmail = False
End If
If Len(Value) > 0 Then
If InStr(1, Value, "@") = 0 Then
IsValidEmail = False
End If
End If
ExitMe:
Exit Function
ErrorHandler:
Err.Raise Err.Number, "IsValidEmail", Err.Description
End Function
'###########################################################
'#
'# This rountime has been brought to you by
'# Pragmatic Software Co. Inc, the creators of Defect Tracker,
'# the tool of choice for tracking functional specifications,
'# test cases and software bugs.
'# Learn more at http://www.DefectTracker.com.
'# Affiliate program also available at
'# http://www.PragmaticSW.com/AffiliateSignup.
'#
'###########################################################
IsValidCreditCardNumber - Check whether a credit card number is valid (using: Visual Basic 6.0) [Credit Card Number, Validation, Visual Basic, Solution] www.vb2themax.com 22-Jul-2000 by Steve Miller
IsValidCreditCardNumber - Check whether a credit card number is valid
Date: 7/22/2000
Versions: VB4 VB5 VB6 VBS Level: Intermediate
Author: Steve Miller
' Validate a credit card numbers
' Returns True if valid, False if invalid
'
' Example:
' If IsValidCreditCardNumber(Value:="1234-123456-12345", IsRequired:=True)
Function IsValidCreditCardNumber(Value As Variant, Optional ByVal IsRequired As
_
Boolean = True) As Boolean
Dim strTemp As String
Dim intCheckSum As Integer
Dim blnDoubleFlag As Boolean
Dim intDigit As Integer
Dim i As Integer
On Error GoTo ErrorHandler
IsValidCreditCardNumber = True
Value = Trim$(Value)
If IsRequired And Len(Value) = 0 Then
IsValidCreditCardNumber = False
End If
' If after stripping out non-numerics, there is nothing left,
' they entered junk
For i = 1 To Len(Value)
If IsNumeric(Mid$(Value, i, 1)) Then strTemp = strTemp & Mid$(Value, i,
_
1)
Next
If IsRequired And Len(strTemp) = 0 Then
IsValidCreditCardNumber = False
End If
'Handle different lengths for different credit card types
Select Case Mid$(strTemp, 1, 1)
Case "3" 'Amex
If Len(strTemp) <> 15 Then
IsValidCreditCardNumber = False
Else
Value = Mid$(strTemp, 1, 4) & "-" & Mid$(strTemp, 5, _
6) & "-" & Mid$(strTemp, 11, 5)
End If
Case "4" 'Visa
If Len(strTemp) <> 16 Then
IsValidCreditCardNumber = False
Else
Value = Mid$(strTemp, 1, 4) & "-" & Mid$(strTemp, 5, _
4) & "-" & Mid$(strTemp, 9, 4) & "-" & Mid$(strTemp, 13, 4)
End If
Case "5" 'Mastercard
If Len(strTemp) <> 16 Then
IsValidCreditCardNumber = False
Else
Value = Mid$(strTemp, 1, 4) & "-" & Mid$(strTemp, 5, _
4) & " ... (cont.)
IsValidPhoneField - Check whether a phone number is valid (using: Visual Basic 6.0) [Validation, Phone Number, Visual Basic, Solution] www.vb2themax.com 22-Jul-2000 by Steve Miller
IsValidPhoneField - Check whether a phone number is valid
Date: 7/22/2000
Versions: VB4 VB5 VB6 VBS Level: Intermediate
Author: Steve Miller
' Validate attributes of Phone data
' Returns True if valid, False if invalid
'
' Also returns the phone in formatted fashion (USA format).
' Will convert alphabetics to numeric
'
'Example:
' If IsValidPhoneField(Value:="3034414444", ReformattedPhone:=strNewPhone,
' ' IsRequired:=True, IsUSAPhone:=True) then ...
Function IsValidPhoneField(ByVal Caption As String, Value As Variant, _
ReformattedPhone As String, Optional ByVal IsRequired As Boolean = True, _
Optional ByVal IsUSAPhone As Boolean = True) As Boolean
Dim intNbrDigits As Integer
Dim strTemp As String
Dim blnHasExtension As Boolean
Dim strExtension As String
Dim i As Integer
On Error GoTo ErrorHandler
IsValidPhoneField = True
Value = Trim$(Value)
If Value = "" Then
If IsRequired Then
IsValidPhoneField = False
Else
Exit Function
End If
End If
If Len(Value) > 25 Then
IsValidPhoneField = False
End If
If IsUSAPhone Then
intNbrDigits = 0
strTemp = ""
blnHasExtension = False
'Extract the extension if there is one.
If Len(Value) <= 7 Then
For i = 1 To Len(Value)
If UCase$(Mid(Value, i, 1)) <> "X" Then
strTemp = Trim(strTemp) + Mid(Value, i, 1)
End If
Next
If Len(strTemp) = 7 Then
strTemp = ""
Else
blnHasExtension = True
strExtension = Trim(strTemp)
strTemp = ""
Value = ""
End If
End If
For i = Len(Value) To 1 Step -1
If UCase$(Mid(Value, i, 2)) = " X" Then
blnHasExtension = True
strExtension = Mid(Value, i + 2, Len(Value) - (i + 1))
... (cont.)
IsValidDateField - Check whether a date is valid (using: Visual Basic 6.0) [Date, Validation, Visual Basic, Solution] www.vb2themax.com 22-Jul-2000 by Steve Miller
IsValidDateField - Check whether a date is valid
Date: 7/22/2000
Versions: VB4 VB5 VB6 VBS Level: Intermediate
Author: Steve Miller
Enum psDateTypes
AnyValidDate 'Allows any valid date to be entered
PastDate 'Only allows past dates (before today) to be entered
FutureDate 'Only allows future dates (after today) to be entered
TodayOrFuture 'Only allows today or future date to be entered
TodayOrPast 'Only allows today or a previous day to be entered
End Enum
' Validate attributes of date data
' Returns True if valid, False if invalid
'
' Example:
' If IsValidDateField(Value:="01/30/2001",
' ' DateType:=psDateTypes.FutureDate, IsRequired:=True)
Function IsValidDateField(Value As Variant, Optional ByVal DateType As _
psDateTypes = AnyValidDate, Optional ByVal IsRequired As Boolean = True) As
_
Boolean
On Error GoTo ErrorHandler
Dim lngDate As Long
Dim lngToday As Long
IsValidDateField = True
If IsRequired = True Then
If IsNull(Value) Or Value = vbNullString Then
IsValidDateField = False
End If
ElseIf IsNull(Value) Or Value = "" Then
Value = Null
Exit Function
End If
If IsDate(Value) Then
lngDate = Format$(Value, "yyyymmdd")
Select Case DateType
Case psDateTypes.FutureDate
If lngDate <= lngToday Then
IsValidDateField = False
End If
Case psDateTypes.PastDate
If lngDate >= lngToday Then
IsValidDateField = False
End If
Case psDateTypes.TodayOrFuture
If lngDate < lngToday Then
IsValidDateField = False
End If
Case psDateTypes.TodayOrPast
If lngDate > lngToday Then
IsValidDateField = False
End If
End Select
Else
IsValidDateField = Fal ... (cont.)
CLSIDToProgID - Convert a CLSID into a ProgID (using: Visual Basic 6.0) [CLSID, CLSIDFromString(), OLE32.DLL, ProgID, ProgIDFromCLSID(), Visual Basic, Solution] www.vb2themax.com 22-Jul-2000 by Steve Miller
CLSIDToProgID - Convert a CLSID into a ProgID
Date: 5/5/1999
Versions: VB4/32 VB5 VB6 Level: Advanced
Author: The VB2TheMax Team
Private Declare Function ProgIDFromCLSID Lib "ole32.dll" (pCLSID As Any, _
lpszProgID As Long) As Long
Private Declare Function CLSIDFromString Lib "ole32.dll" (ByVal lpszProgID As _
Long, pCLSID As Any) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (dest As _
Any, source As Any, ByVal bytes As Long)
' Convert a string representation of a CLSID, including the
' surrounding brace brackets, into the corresponding ProgID.
Function CLSIDToProgID(ByVal CLSID As String) As String
Dim pResult As Long, pChar As Long
Dim char As Integer, length As Long
' No need to use a special UDT
Dim guid(15) As Byte
' convert from string to a binary CLSID
CLSIDFromString StrPtr(CLSID), guid(0)
' convert to a string, get pointer to result
ProgIDFromCLSID guid(0), pResult
' find the terminating null char
pChar = pResult - 2
Do
pChar = pChar + 2
CopyMemory char, ByVal pChar, 2
Loop While char
' now get the entire string in one operation
length = pChar - pResult
' no need for a temporary string
CLSIDToProgID = Space$(length \ 2)
CopyMemory ByVal StrPtr(CLSIDToProgID), ByVal pResult, length
End Function
ProgIDToCLSID - Convert a ProgID into a CLSID (using: Visual Basic 6.0) [CLSID, CLSIDFromProgID(), OLE32.DLL, StringFromCLSID(), Visual Basic, Solution] www.vb2themax.com 22-Jul-2000 by Steve Miller
ProgIDToCLSID - Convert a ProgID into a CLSID
Date: 5/5/1999 Updated: 7/31/99
Versions: VB4/32 VB5 VB6 Level: Advanced
Author: The VB2TheMax Team
Private Declare Function CLSIDFromProgID Lib "ole32.dll" (ByVal lpszProgID As _
Long, pCLSID As Any) As Long
Private Declare Function StringFromCLSID Lib "ole32.dll" (pCLSID As Any, _
lpszProgID As Long) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (dest As _
Any, source As Any, ByVal bytes As Long)
Private Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal pv As Long)
' Convert a ProgID (such as "Word.Application") into the
' string representation of its CLSID
Function ProgIdToCLSID(ByVal ProgID As String) As String
Dim pResult As Long, pChar As Long
Dim char As Integer, length As Long
' No need to use a special UDT
Dim guid(15) As Byte
' get the CLSID in binary form
CLSIDFromProgID StrPtr(ProgID), guid(0)
' convert to a string, get pointer to result
StringFromCLSID guid(0), pResult
' find the terminating null char
pChar = pResult - 2
Do
pChar = pChar + 2
CopyMemory char, ByVal pChar, 2
Loop While char
' now get the entire string in one operation
length = pChar - pResult
' no need for a temporary string
ProgIdToCLSID = Space$(length \ 2)
CopyMemory ByVal StrPtr(ProgIdToCLSID), ByVal pResult, length
' release the memory allocated to the string
CoTaskMemFree pResult
End Function
An Image (GIF, JPEG, BMP, ICO, WMF and EMF) Viewer [Multimedia, Article, Visual C++] www.codeguru.com 22-Jul-2000 by Chensu
An Image (GIF, JPEG, BMP, ICO, WMF and EMF) Viewer
Chensu
MFC application that can load, display and print almost any standard
graphics image
ColorSpace ATL Control [Dialog, Article, Visual C++] www.codeguru.com 22-Jul-2000 by Andrew Whitechapel
ColorSpace ATL Control
Andrew Whitechapel
ATL version of the popular Corel PhotoHouse-like Color Chooser
ColorSpace ATL Control [Article, Visual C++] www.earthweb.com 22-Jul-2000 by Andrew Whitechapel
ColorSpace ATL Control
Andrew Whitechapel
22-Jul-2000
22-Jul-2000
ATL version of the popular Corel PhotoHouse-like Color Chooser
Fake Frames [Active Server Pages, Article, Visual C++] www.codeproject.com 21-Jul-2000 by xicoloko
Fake Frames
xicoloko
An article about faking frames to have pages with the same layout by
using server side includes
Structured Storage Class for ATL & MFC [ATL, Structured Storage, MFC, Wrapper Class, Article, Visual C++] www.codeproject.com 21-Jul-2000 by Ales Krajnc
Structured Storage Class for ATL & MFC
Ales Krajnc
A Wrapper Class for most common IStorage methods and API calls.
Full-Screen Dialog
Andrey Abelyashev
Enables you to have a dialog application occupy the entire screen
(including taskbar area)
An Automatic Build Incrementer for VC6 [Macro, Article, Visual C++] www.codeguru.com 21-Jul-2000 by Curt Blackmon
An Automatic Build Incrementer for VC6
Curt Blackmon
Macros that enables Visual C++ developers to automatically increment
their application revision numbers on each build
An Automatic Build Incrementer for VC6 [Article, Visual C++] www.earthweb.com 21-Jul-2000 by Curt Blackmon
An Automatic Build Incrementer for VC6
Curt Blackmon
21-Jul-2000
21-Jul-2000
Macros that enables Visual C++ developers to automatically increment
their application revision numbers on each build
QuickSplit Version 1.0 [Tool, Update, Article, Visual C++] www.codeguru.com 20-Jul-2000 by Dmitriy Okunev
QuickSplit Version 1.0
Dmitriy Okunev
Complete documented source code for popular utility that enables you to
split large files for easier transfer is now multithreaded!
CBattery Non-MFC Class [C++, MFC, Windows Programming, Article, Visual C++] www.codeguru.com 20-Jul-2000 by Daniel Chirca
CBattery Non-MFC Class
Daniel Chirca
C++ class wrapper for the battery related Windows Power Management API
functions
Full-Screen Dialog [Article, Visual C++] www.earthweb.com 20-Jul-2000 by Andrey Abelyashev
Full-Screen Dialog
Andrey Abelyashev
20-Jul-2000
20-Jul-2000
Enables you to have a dialog application occupy the entire screen
(including taskbar area)
Sunrise/Sunset Calculations [Date, Time, Article, Visual C++] www.codeproject.com 19-Jul-2000 by Brian Heilman
Sunrise/Sunset Calculations
Brian Heilman
Code to help calculate sunrise and sunset times
Function to Set Default Printer [Printing, Article, Visual C++] www.codeguru.com 19-Jul-2000 by Ivan Cerrato
Function to Set Default Printer
Ivan Cerrato
COM component with method to allow for easy programmatic setting of
default printer
Beginner-Level COM Tutorial [ATL, COM, Article, Visual C++] www.codeguru.com 19-Jul-2000 by Naveed Ahmed
Beginner-Level COM Tutorial
Naveed Ahmed
Very quick and easy tutorial for someone looking to "get their feet
wet" with COM
Beginner-Level COM Tutorial [Article, Visual C++] www.earthweb.com 19-Jul-2000 by Naveed Ahmed
Beginner-Level COM Tutorial
Naveed Ahmed
19-Jul-2000
19-Jul-2000
A very quick and easy tutorial for someone looking to "get their feet
wet" with COM.
Simple OpenGL Classes
Yuantu Huang
Class for 3D graphics functions which can make visualization using
engineering data
Memory Allocation for High-Dimensional Data Structures [System, Article, Visual C++] www.codeguru.com 18-Jul-2000 by Yuantu Huang
Memory Allocation for High-Dimensional Data Structures
Yuantu Huang
String Types in Delphi [Article, Delphi] delphi.about.com 18-Jul-2000
18-Jul-2000
18-Jul-2000
String Types in Delphi
Delphi For Beginners: Understanding and managing string data types in
Delphi's Object Pascal. Learn about differences between Short, Long, Wide and
null-terminated strings.
Resize ListView's Columns to Account for their Contents (using: Visual Basic 6.0) [Column, ListView Control, SendMessage(), Visual Basic, Tip] www.vb2themax.com 17-Jul-2000
Resize ListView's Columns to Account for their Contents
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal
hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Const LVM_SETCOLUMNWIDTH = &H1000 + 30
Const LVSCW_AUTOSIZE = 65535
Const LVSCW_AUTOSIZE_USEHEADER = 65534
' adjust the width of a ListView control so that each item is fully visible
' if second argument is True, column headers' width is also taken into account
Sub ListViewAdjustColumnWidth(LV As ListView, Optional AccountForHeaders As
Boolean)
Dim col As Integer, lParam As Long
If AccountForHeaders Then
lParam = LVSCW_AUTOSIZE_USEHEADER
Else
lParam = LVSCW_AUTOSIZE
End If
For col = 1 To LV.ColumnHeaders.Count
SendMessage LV.hwnd, LVM_SETCOLUMNWIDTH, col, lParam
Next
End Sub
basService .... How to make your application run as a service [RunServices, RunServicesOnce, GetCurrentProcessId(), RegisterServiceProcess(), VB Code Module, Visual Basic] www.codeoftheweek.com 17-Jul-2000, no. 125
Requirements
Visual Basic 4.0 32-bit or higher.
In this issue we discuss how to run your application as a Windows
Service (not an NT service).
basService
----------
This module shows how to make your application run as a service.
The main portion of these routines use the RegisterServiceProcess
function to tell Windows that your application should stay active
across Windows logins. It will also keep your application from
showing up in the Ctrl-Alt-Del task listing. To use this module
just call ServiceInstall at the start up of your application and
ServiceUninstall at the end.
Microsoft describes this function as follows:
The RegisterServiceProcess Function
Applications started by the system using the RunServices and
RunServicesOnce keys will close when the user selects Close all
programs and log on as a different user from the Shutdown dialog
box. By calling the RegisterServiceProcess function, a Win32-based
application can prevent itself or any other Win32-based
application from being closed when the user logs off. Win32-based
applications registered in this manner close only when the system
is shut down.
The application should provide for different users logging on at
different times during its execution. The application can
distinguish between a user logging off and the system shutting
down by examining the lParam parameter of the WM_QUERYENDSESSION
and WM_ENDSESSION messages. If the user shuts down the system,
lParam is NULL. If the user logs off, lParam is set to
ENDSESSION_LOGOFF.
Methods
Public Sub ServiceInstall()
Install the running application as a service. An error will be
raised if this is unsuccessful.
Public Sub ServiceUninstall()
Uninstall the running application as a service. An error will be
raised if this is unsuccessful.
Sample Usage
This sample shows how to use the ServiceInstall and
ServiceUninstall routine.
Public Sub Main()
ServiceInstall
frm.Show
End Sub
Public frm_Unload(Cancel as Integer)
... (cont.)
Encrypting Log Files [File, Folder, Article, Visual C++] www.codeproject.com 17-Jul-2000 by Daniel Madden
Encrypting Log Files
Daniel Madden
Demonstrates using encryption to protect sensitive application log file
data.
Custom Captions (including multi-line captions) [Font, GDI, GUI, Article, Visual C++] www.codeproject.com 16-Jul-2000 by Dave Lorde
Custom Captions (including multi-line captions)
Dave Lorde
Simple customised Window captions, including multi-line captions
Processing HTML Forms From a CHtmlView [Control, HTML, CHTMLView Class, Article, Visual C++] www.codeproject.com 16-Jul-2000 by Ted Crow
Processing HTML Forms From a CHtmlView
Ted Crow
A simple method to processing HTML forms From a CHtmlView
The WTL Documentation Project [Windows Template Library, WTL, Article, Visual C++] www.codeproject.com 16-Jul-2000 by Ben Burnett, Tim Deveaux
The WTL Documentation Project
Ben Burnett and Tim Deveaux
A framework in which to build a complete set of documentation for WTL.
This is not complete, and will probably always be a work in progress.
Framework for Creating Custom Window Captions [UI, Update, Article, Visual C++] www.codeguru.com 16-Jul-2000 by Dave Lorde
Framework for Creating Custom Window Captions
Dave Lorde
Fantastic set of classes to develop window content-sensitive captions
(including colors and fonts)
ATL: Firing Events from Worker Threads [ATL, COM, Article, Visual C++] www.codeguru.com 16-Jul-2000 by Michael Lindig
ATL: Firing Events from Worker Threads
Michael Lindig
Very cool solution to common problem of firing events from the worker
thread of an ATL component
Framework for Creating Custom Window Caption [Article, Visual C++] www.earthweb.com 16-Jul-2000 by Dave Lorde
Framework for Creating Custom Window Caption
Dave Lorde
16-Jul-2000
16-Jul-2000
This article presents some classes that make customising window
captions really quick and easy.
ATL: Firing Events from Worker Threads [Article, Visual C++] www.earthweb.com 16-Jul-2000 by Michael Lindig
ATL: Firing Events from Worker Threads
Michael Lindig
16-Jul-2000
16-Jul-2000
A very cool solution to common problem of firing events from the worker
thread of an ATL component.
MinimizeAllWindows - Minimize and restore all windows (using: Visual Basic 6.0) [FindWindow(), SendMessage(), Shell, Taskbar, Visual Basic, Tip] www.vb2themax.com 15-Jul-2000
MinimizeAllWindows - Minimize and restore all windows
Date: 7/15/2000
Versions: VB4/32 VB5 VB6 Level: Intermediate
Author: The VB2TheMax Team
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal _
lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal _
hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _
lParam As Any) As Long
Const WM_COMMAND = &H111
Const MIN_ALL = 419
Const MIN_ALL_UNDO = 416
' Minimize all the windows on the desktop (and optionally restore them)
' This has the same effect as pressing the Windows+M key combination
Sub MinimizeAllWindows(Optional Restore As Boolean)
Dim hWnd As Long
' get the handle of the taskbar
hWnd = FindWindow("Shell_TrayWnd", vbNullString)
' Minimize or restore all windows
If Restore Then
SendMessage hWnd, WM_COMMAND, MIN_ALL_UNDO, ByVal 0&
Else
SendMessage hWnd, WM_COMMAND, MIN_ALL, ByVal 0&
End If
End Sub
ArrayAny - Return an initialized array of any type (using: Visual Basic 6.0) [Array, ParamArray Keyword, Visual Basic, Tip] www.vb2themax.com 15-Jul-2000
ArrayAny - Return an initialized array of any type
Date: 7/15/2000
Versions: VB6 Level: Intermediate
Author: The VB2TheMax Team
' Returns an array and initializes it with passed data.
'
' It is similar to the Array function, but it works with
' array of any type. The type of the returned array is
' assumed to be the type of the first element in the
' parameter list, so you might need to force a given
' data type using one of the VB's data conversion functions
'
' Example: return the array of the first 8 prime numbers, as Longs
' primes() = ArrayAny(2&, 3, 5, 7, 11, 13, 17, 19)
' or
' primes() = ArrayAny(CLng(2), 3, 5, 7, 11, 13, 17, 19)
Function ArrayAny(ParamArray values() As Variant) As Variant
Dim i As Long
Dim maxEl As Long
Dim res As Variant
maxEl = UBound(values)
' we can't use the vbObject constant for objects
' because the VarType() function might return
' the type of the object's default property
If IsObject(values(0)) Then
ReDim arrObj(0 To maxEl) As Object
' we need a separate loop, too
For i = 0 To maxEl
Set arrObj(i) = values(i)
Next
ArrayAny = arrObj()
Exit Function
End If
' create different arrays, depending on the
' type of the first argument
Select Case VarType(values(0))
Case vbInteger
ReDim arrInt(0 To maxEl) As Integer
res = arrInt()
Case vbLong
ReDim arrLng(0 To maxEl) As Long
res = arrLng()
Case vbSingle
ReDim arrSng(0 To maxEl) As Single
res = arrSng()
Case vbDouble
ReDim arrDbl(0 To maxEl) As Double
res = arrDbl()
Case vbCurrency
ReDim arrCur(0 To maxEl) As Currency
res = arrCur()
Case vbString
ReDim arrStr(0 To maxEl) As String
res = arrStr()
Case vbDate
ReDim arrDat(0 To maxEl) As Date
... (cont.)
MaxSystemColors - The number of screen colors (using: Visual Basic 6.0) [Color, GetDesktopWindow(), GetDeviceCaps(), GetDC(), ReleaseDC(), System Color, Visual Basic, Tip] www.vb2themax.com 15-Jul-2000
MaxSystemColors - The number of screen colors
Date: 7/15/2000
Versions: VB4/32 VB5 VB6 Level: Intermediate
Author: The VB2TheMax Team
Private Declare Function GetDesktopWindow Lib "user32" () As Long
Private Declare Function GetDC Lib "user32" (ByVal hWnd As Long) As Long
Private Declare Function ReleaseDC Lib "user32" (ByVal hWnd As Long, _
ByVal hDC As Long) As Long
Private Declare Function GetDeviceCaps Lib "gdi32" (ByVal hDC As Long, _
ByVal nIndex As Long) As Long
Private Const BITSPIXEL = 12
Private Const PLANES = 14
' returns the max number of colors supported by the video card
Function MaxSystemColors() As Long
Dim hWnd As Long
Dim hDC As Long
Dim bitsPerPixel As Long
Dim colorPlanes As Long
Dim bits As Integer
' get the device context of the desktop window
hWnd = GetDesktopWindow()
hDC = GetDC(hWnd)
' the number of bits per pixels
bitsPerPixel = GetDeviceCaps(hDC, BITSPIXEL)
' the number of color planes
colorPlanes = GetDeviceCaps(hDC, PLANES)
' number of bits for each pixel
bits = bitsPerPixel * colorPlanes
' no video card has more than 1.6 million colors
If bits > 24 Then bits = 24
' evaluate the result
MaxSystemColors = 2 ^ bits
' release the device context
ReleaseDC hWnd, hDC
End Function
Beware of hidden circular references between a form and an object (using: Visual Basic 6.0) [Circular Reference, Form, Object, Visual Basic, Tip] www.vb2themax.com 15-Jul-2000
Beware of hidden circular references between a form and an object
Date: 7/15/2000
Versions: VB5 VB6 Level: Intermediate
Author: The VB2TheMax Team
Many VB developers use a class module to augment the capabilities of a control
on a form. For example, consider this simple example, that formats a currency
value in a TextBox control when the focus leaves the control:
' ------ the FORM1 module
Dim Formatter As New CFormatter
Private Sub Form_Load()
' bind the object to a textbox
Set Formatter.TextBox = Text1
End Sub
' -------- the CFORMATTER class module
Public WithEvents TextBox As TextBox
Private Sub TextBox_LostFocus()
' format the value when the focus leaves the control
TextBox.Text = Format(TextBox.Text, "###,##0.00")
End Sub
The above code contains an hidden circular reference between the form and the
instance of the CFormatter class. The circular reference isn't apparent at
first, because the CFormatter object references the Text1 control, not the form
itself. However, because the Text1 control - or any other control for that
matter - can exist without its parent form, this creates the circular reference.
This hidden circular reference can cause a memory leak in your application. In
fact, when the VB attempts to unloadsì the form, the reference to Text1 in the
Formatter object prevents the form from completely unloading. On the other
hand, the Formatter object will never go out of scope, and therefore will never
set its TextBox reference to Nothing. This will keep both the form and the
class alive forever, keeping memory until your app terminates.
The simplest way to resolve this circular reference is to explicitly set the
Formatter variable to Nothing in the Unload event:
Private Sub Form_Unload(Cancel As Integer)
' this breaks the circular reference
Set Formatter = Nothing
End Sub
Let the user copy floppy disks (using: Visual Basic 6.0) [Disk, DiskCopyRunDll, RUNDLL32.EXE, Shell, Visual Basic, Tip] www.vb2themax.com 15-Jul-2000
Let the user copy floppy disks
Date: 7/15/2000
Versions: VB4/32 VB5 VB6 Level: Intermediate
Author: The VB2TheMax Team
The simplest way to help user copy a floppy disk is display the Copy Disk
system dialog. You can do this with a one-line statement:
Shell "rundll32.exe diskcopy.dll,DiskCopyRunDll 0,0"
Retrieve the length of a media file (WAV, AVI, MIDI) (using: Visual Basic 6.0) [AVI File, File, Media Control Interface, MIDI, WAV, Visual Basic, Tip] www.vb2themax.com 15-Jul-2000
Retrieve the length of a media file (WAV, AVI, MIDI)
Date: 7/15/2000
Versions: VB4/32 VB5 VB6 Level: Intermediate
Author: The VB2TheMax Team
You can retrieve the length of a standard windows media file (WAV, AVI or MIDI)
using simple MCI functions. First, you must open the file with:
Declare Function mciSendString Lib "winmm" Alias "mciSendStringA" (ByVal _
lpstrCommand As String, ByVal lpstrReturnString As String, _
ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
CommandString = "Open " & FileName" & " alias MediaFile"
mciSendString CommandString, vbNullString, 0, 0&
where MediaFile is an arbitrary name (an alias) that you then use in subsequent
command strings. FileName is the full path of the media file and must be in the
short format 8+3 characters. Now you can get file length in milliseconds:
Dim MediaLength as Long
Dim RetString As String * 256
Dim CommandString As String
CommandString = "Set MediaFile time format milliseconds"
mciSendString CommandString, vbNullString, 0, 0&
CommandString = "Status MediaFile length"
MciSendString CommandString, RetString, Len(RetString), 0&
MediaLength = CLng(RetString)
Now, the MediaLength variable containes the length of the media file. You only
have to close the MCI device, with
CommandString = "Close MediaFile"
MciSendString CommandString, vbNullString, 0, 0&
VC++ MFC Extensions by Example [MFC, Visual C++, Windows Development, Book] Purchased 17-Jul-2000, $77.5
An Automatic Build Incrementer for VC6 [Macro, Add-in, Article, Visual C++] www.codeproject.com 12-Jul-2000 by Curt Blackmon
An Automatic Build Incrementer for VC6
Curt Blackmon
An article on how to add an automatic build incrementer to VC6
Maximizing or minimizing a view window from your program [Article, Visual C++] www.mindcracker.com 12-Jul-2000 by Mahesh Chand
Maximizing or minimizing a view window from your program
Mahesh Chand
12-Jul-2000
12-Jul-2000
Stop your application to open an empty document at start-up [Article, Visual C++] www.mindcracker.com 12-Jul-2000 by Mahesh Chand
Stop your application to open an empty document at start-up
Mahesh Chand
12-Jul-2000
12-Jul-2000
Create a new document from your program or open an existing program without using MFC New or Open menu options [Article, Visual C++] www.mindcracker.com 12-Jul-2000 by Mahesh Chand
Create a new document from your program or open an existing program
without using MFC New or Open menu options
Mahesh Chand
12-Jul-2000
12-Jul-2000
Doc-View Architecture - Part 1 [Article, Visual C++] www.mindcracker.com 12-Jul-2000 by Mahesh Chand
Doc-View Architecture - Part 1
Mahesh Chand
12-Jul-2000
12-Jul-2000
How to display running text in a list box? [Article, Visual C++] www.mindcracker.com 12-Jul-2000 by Mahesh Chand
How to display running text in a list box?
A dialog base application which displays running text in a list control
Mahesh Chand
12-Jul-2000
12-Jul-2000
How to get sub menu on runtime? [Article, Visual C++] www.mindcracker.com 12-Jul-2000 by Mahesh Chand
How to get sub menu on runtime?
Mahesh Chand
12-Jul-2000
12-Jul-2000
Developer's Workshop to COM and ATL 3.0 [ATL, COM, Book] Purchased 07-Jul-2000, $74.95
Download A Page From The Internet Without Any Controls (using: Visual Basic 6.0) [ftp, HTML, InternetCloseHandle(), InternetOpenUrl(), InternetOpen(), InternetReadFile(), Web, WinInet, Visual Basic, Tip] www.vb2themax.com 11-Jul-2000
Download A Page From The Internet Without Any Controls
You can easily download an HTML page using the Internet Transfer Control that
comes with VB. However, achieving the same result with plain VB code and some
API functions is so easy that you might want to give it a try. The following
function takes the URL of a page in its first argument, and saves the content
of that page in the local file specified as its second argument.
Const INTERNET_OPEN_TYPE_PRECONFIG = 0
Const INTERNET_FLAG_EXISTING_CONNECT = &H20000000
Private Declare Function InternetOpen Lib "wininet.dll" _
Alias "InternetOpenA" (ByVal lpszAgent As String, _
ByVal dwAccessType As Long, ByVal lpszProxyName As String, _
ByVal lpszProxyBypass As String, ByVal dwFlags As Long) As Long
Private Declare Function InternetOpenUrl Lib "wininet.dll" Alias
"InternetOpenUrlA" _
(ByVal hInternetSession As Long, ByVal lpszUrl As String, _
ByVal lpszHeaders As String, ByVal dwHeadersLength As Long, _
ByVal dwFlags As Long, ByVal dwContext As Long) As Long
Private Declare Function InternetCloseHandle Lib "wininet.dll" _
(ByVal hInet As Long) As Integer
Private Declare Function InternetReadFile Lib "wininet.dll" _
(ByVal hFile As Long, ByVal lpBuffer As String, _
ByVal dwNumberOfBytesToRead As Long, lNumberOfBytesRead As Long) As
Integer
' Download a file from the Internet and save it to a local file
'
' it works with HTTP and FTP, but you must explicitly include
' the protocol name in the URL, as in
' CopyURLToFile "http://mailer.devx.com/cgi-bin3/flo?y=eC4z01V8M0lQ0dH6w",
"C:\vb2themax.htm"
Sub CopyURLToFile(ByVal URL As String, ByVal FileName As String)
Dim hInternetSession As Long
Dim hUrl As Long
Dim FileNum As Integer
Dim ok As Boolean
Dim NumberOfBytesRead As Long
Dim Buffer As String
Dim fileIsOpen As Boolean
On Error GoTo ErrorHandler
' check obvious syntax errors
If Len(URL) = 0 Or Len ... (cont.)
CEditLog: fast logging into an edit control with cout [Edit Control, Article, Visual C++] www.codeproject.com 11-Jul-2000 by Daniel Lohmann
CEditLog: fast logging into an edit control with cout
Daniel Lohmann
Use an edit control for logging messages and redirect cout
How to format drives from Visual Basic [Article, Visual Basic] visualbasic.about.com 11-Jul-2000
11-Jul-2000
11-Jul-2000
How to format drives from Visual Basic
Your About VB guide uncovers an undocumented API function that makes it
easy to format drives from within Visual Basic. Check it out!
11-Jul-2000
11-Jul-2000
Traveling Label
Spice up your user interface with a marquee style text. Use marquee
style text to display scrolling text that you want to catch your Delphi program
users' attention.
Simple Row Insert for CListCtrl [List Control, Article, Visual C++] www.codeproject.com 10-Jul-2000 by Daniel Zuppinger
Simple Row Insert for CListCtrl
Daniel Zuppinger
This simple CListCtrl extension allows easy row insertion when in
Report mode.
Band Objects: A beginners tutorial from scratch [Article, Visual C++] www.mindcracker.com 10-Jul-2000 by Mahesh Chand
Band Objects: A beginners tutorial from scratch
A simple tutorial with examples and sample code attached.
Mahesh Chand
10-Jul-2000
10-Jul-2000
How to get total and free space of a drive? [Article, Visual C++] www.mindcracker.com 10-Jul-2000 by Mahesh Chand
How to get total and free space of a drive?
Mahesh Chand
10-Jul-2000
10-Jul-2000
How to get all available drive on a system? [Article, Visual C++] www.mindcracker.com 10-Jul-2000 by Mahesh Chand
How to get all available drive on a system?
Mahesh Chand
10-Jul-2000
10-Jul-2000
How to delete a directory and its contents? [Article, Visual C++] www.mindcracker.com 10-Jul-2000 by Mahesh Chand
How to delete a directory and its contents?
Mahesh Chand
10-Jul-2000
10-Jul-2000
How to get full path of an application? [Article, Visual C++] www.mindcracker.com 10-Jul-2000 by Mahesh Chand
How to get full path of an application?
Mahesh Chand
10-Jul-2000
10-Jul-2000
How to place an integer value in MessageBox() API function? [Article, Visual C++] www.mindcracker.com 10-Jul-2000 by Mahesh Chand
How to place an integer value in MessageBox() API function?
Mahesh Chand
10-Jul-2000
10-Jul-2000
Using MS Office in an MFC Application [Article, Visual C++] www.earthweb.com 10-Jul-2000 by Igor Tkachev
Using MS Office in an MFC Application
Igor Tkachev
10-Jul-2000
10-Jul-2000
Illustrated how to intergrate MFC applications with MS Office
Outlook Express (OE) Reader Class [Article, Visual C++] www.earthweb.com 10-Jul-2000 by Mladen Bonev
Outlook Express (OE) Reader Class
Mladen Bonev
10-Jul-2000
10-Jul-2000
This article presents a Outlook Express (IE4) class reader that can
read through your OE files and retrieve such things as folder names, message
subjects and message bodies
Creating a window using ATL Windowing [ATL Windowing, Article, Visual C++] www.mindcracker.com 09-Jul-2000 by Mahesh Chand
Creating a window using ATL Windowing
Mahesh Chand
09-Jul-2000
09-Jul-2000
Step 1: Start new Win32 Application project.
Step 2: Include these lines in your stdafx.h file.
#include
extern CComModule _Module;
#include
The atlbase.h class is basic ATL support. ATL Windowing classes are
defined in atlwin.h. CComModule is a global class similar to CWinApp in MFC.
The _comModule is a global variable represents the application.
Step 3: Now write this code into your WinMain function. You WinMain
should look like this:
int APIENTRY WinMain( HINSTANCE hInstance, HINSTANCE, LPSTR, int )
{
_Module.Init( NULL, hInstance );
// Create an instance of CMcbWindow
CMcbWindow atlWnd;
atlWnd.Create( NULL, CWindow::rcDefault, _T("Mahesh's ATL Window"),
WS_OVERLAPPEDWINDOW|WS_VISIBLE );
MSG msg;
while( GetMessage( &msg, NULL, 0, 0 ) )
{
TranslateMessage( &msg );
DispatchMessage( &msg );
}
_Module.Term();
return msg.wParam;
}
Step 4: Derive CMcbWindow class from CWindowImpl and write OnPaint and
OnDestroy functions.
// NOTE: See the template parameter. Its CMcbWindow
class CMcbWindow : public CWindowImpl
{
// START MESSAGE_MAP
BEGIN_MSG_MAP( CMcbWindow )
MESSAGE_HANDLER( WM_PAINT, OnPaint )
MESSAGE_HANDLER( WM_DESTROY, OnDestroy )
END_MSG_MAP()
// END MESSAGE_MAP
// This function will paint a Hello mindcracker string
LRESULT OnPaint( UINT, WPARAM, LPARAM, BOOL& )
{
PAINTSTRUCT ps;
HDC hDC = GetDC();
BeginPaint( &ps );
TextOut( hDC, 0, 0, _T("Hello mindcracker"), 17 );
EndPaint( &ps );
return 0;
}
LRESULT OnDestroy( UINT, WPARAM, LPARAM, BOOL& ){
PostQuitMessage( 0 );
return 0;
}
};
Step 5: Define CComModule _Module extern variable.
// ATLWnd.cpp : Defines the entry point for the application.
#include "stdafx.h"
CComModule _Module;
Step 6: Compile and Run your program.
Making dialup connection using WinInet [Article, Visual C++] www.mindcracker.com 09-Jul-2000 by Mahesh Chand
Making dialup connection using WinInet
A tool to generate class files to implement stored procedures
Mahesh Chand
09-Jul-2000
09-Jul-2000
Dynamic Dialog Class [Article, Visual C++] www.earthweb.com 09-Jul-2000 by Marcel Scherpenisse
Dynamic Dialog Class
Marcel Scherpenisse
9-Jul-2000
9-Jul-2000
These classes are being used for displaying a modal dialog, on which
the controls are dynamically added, without the need of having a dialog
template as resource.
Print Bitmaps Without Document/View Framework [Printing, Bitmap, Document/View, Article, Visual C++] www.codeproject.com 07-Jul-2000 by Weimin Chen
Print Bitmaps Without Document/View Framework
Weimin Chen
Software Developer
Deleting a file or folder with its contents [Article, Visual C++] www.mindcracker.com 06-Jul-2000 by Mahesh Chand
Deleting a file or folder with its contents
Mahesh Chand
06-Jul-2000
06-Jul-2000
Moving a file or a folder from one place to other [Article, Visual C++] www.mindcracker.com 06-Jul-2000 by Mahesh Chand
Moving a file or a folder from one place to other
.
Mahesh Chand
06-Jul-2000
06-Jul-2000
Search for a file on your system [Article, Visual C++] www.mindcracker.com 06-Jul-2000 by Mahesh Chand
Search for a file on your system
.
Mahesh Chand
06-Jul-2000
06-Jul-2000
Get size of a file in number of bytes? [Article, Visual C++] www.mindcracker.com 06-Jul-2000 by Mahesh Chand
Get size of a file in number of bytes?
Mahesh Chand
06-Jul-2000
06-Jul-2000
Copy a directory and its sub directories to other directory [Article, Visual C++] www.mindcracker.com 06-Jul-2000 by Mahesh Chand
Copy a directory and its sub directories to other directory
Mahesh Chand
06-Jul-2000
06-Jul-2000
Create a file and write data to this new file [Article, Visual C++] www.mindcracker.com 06-Jul-2000 by Mahesh Chand
Create a file and write data to this new file
Mahesh Chand
06-Jul-2000
06-Jul-2000
The Code Project Discussion boards [Active Server Pages, ASP, Article, Visual C++] www.codeproject.com 05-Jul-2000 by Uwe Keim, Chris Maunder
The Code Project Discussion boards
Uwe Keim and Chris Maunder
The Discussion board ASP scripts as used in The Code Project. This is
an open source project for the Code Project community.
An introduction to TCP/IP [Article, Visual C++] www.mindcracker.com 05-Jul-2000 by Mahesh Chand
An introduction to TCP/IP
Mahesh Chand
05-Jul-2000
05-Jul-2000
Customizing your web browser - Part 1 [Article, Visual C++] www.mindcracker.com 05-Jul-2000 by Mahesh Chand
Customizing your web browser - Part 1
Mahesh Chand
05-Jul-2000
05-Jul-2000
History, definition, and owner of the Internet [Article, Visual C++] www.mindcracker.com 05-Jul-2000 by Mahesh Chand
History, definition, and owner of the Internet
Mahesh Chand
05-Jul-2000
05-Jul-2000
Web definition and working theory [Article, Visual C++] www.mindcracker.com 05-Jul-2000 by Mahesh Chand
Web definition and working theory
Mahesh Chand
05-Jul-2000
05-Jul-2000
User-settings class for ATL/WTL projects [ATL, MFC, Article, Visual C++] www.codeproject.com 04-Jul-2000 by Peter Kenyon
User-settings class for ATL/WTL projects
Peter Kenyon
A helper class for storing user settings in the Registry, similar to
MFC's CWinApp
Browse for Computers, Folders, Files and Printers [Article, Delphi] delphi.about.com 04-Jul-2000
04-Jul-2000
04-Jul-2000
Browse for Computers, Folders, Files and Printers
Use Delphi (and API) to display the directory structure of a computer
and allow a user to select a folder without using the Common Dialog control.
Plus: select a printer or network computer.
Add Mouse Wheel support to Swing Widgets [Java Programming, Article, Visual C++] www.codeproject.com 03-Jul-2000 by Davanum Srinivas
Add Mouse Wheel support to Swing Widgets
Davanum Srinivas
This article shows how to add support for Mouse Wheel for Java Swing
Widgets
How to change fonts of static button or other controls? [Article, Visual C++] www.mindcracker.com 03-Jul-2000 by Mahesh Chand
How to change fonts of static button or other controls?
Sample project attached.
Mahesh Chand
03-Jul-2000
03-Jul-2000
How to disable a control such as an Edit button? [Article, Visual C++] www.mindcracker.com 03-Jul-2000 by Mahesh Chand
How to disable a control such as an Edit button?
Mahesh Chand
03-Jul-2000
03-Jul-2000
How to create a simple MTS component using ATL Object Wizard [Article, Visual C++] www.mindcracker.com 03-Jul-2000 by Mahesh Chand
How to create a simple MTS component using ATL Object Wizard
.
Mahesh Chand
03-Jul-2000
03-Jul-2000
AVI Viewer [Article, Visual C++] www.mindcracker.com 03-Jul-2000 by Mahesh Chand
AVI Viewer
A dialog base MFC application which let you browse and view AVI files.
Mahesh Chand
03-Jul-2000
03-Jul-2000
CResizeCtrl: A resize control to implement resizable dialogs with MFC [Dialog, Windows Programming, MFC, Article, Visual C++] www.codeproject.com 02-Jul-2000 by Herbert Menke
CResizeCtrl: A resize control to implement resizable dialogs with MFC
Herbert Menke
Center CMDIChildWnds and Other Tips [Document/View, Article, Visual C++] www.codeproject.com 02-Jul-2000 by Brian Hart
Center CMDIChildWnds and Other Tips
Brian Hart
Center CMDIChildWnds in the client area of the main frame window
Drag and Drop between JList and Windows Explorer [Java Programming, Drag and Drop, Explorer, Explorer, Article, Visual C++] www.codeproject.com 02-Jul-2000 by Davanum Srinivas
Drag and Drop between JList and Windows Explorer
Davanum Srinivas
Pure Java Sample for Drag and Drop between Swing based JList and
Windows Explorer
Creating a Dialog box using ATL Object Wizard [Dialog, ATL Object Wizard, Article, Visual C++] www.mindcracker.com 02-Jul-2000 by Mahesh Chand
Creating a Dialog box using ATL Object Wizard
Mahesh Chand
02-Jul-2000
02-Jul-2000
There are two ways to add a dialog box. If you are developing an
ATL/COM dll then you can use ATL Object Wizard to add a dialog. Here are the
steps:
Step 1: Go to Insert ATL Object, Select Category - Miscellaneous and
double click on Dialog.
Step 2: Insert MyDlg as Short Name. And click Ok.
This wizard adds a class CMyDlg into your project. This class is
derived from CAxDialogImpl.
class CMyDlg : public CAxDialogImpl
This class has OnInitDialog and handlers for Ok and Cancel buttons. You
can modify this dialog according to your needs.
Now you can create this dialog box modal or modeless. For modal dialog
box :
#include "mydlg.h"
CMyDlg dlg;
Dlg.DoModal();
for Modeless, call Create member function.
#include "mydlg.h"
CMyDlg dlg;
Dlg.Create( ::GetDestopWindow());
dlg.ShowWindow( SW_SHOWNORMAL);
For more details on ATL Windowing, see ATL Tutorial by example.
Loading a Control specified at runtime [Control, CAxWindow, Article, Visual C++] www.mindcracker.com 02-Jul-2000 by Mahesh Chand
Loading a Control specified at runtime
Mahesh Chand
02-Jul-2000
02-Jul-2000
Call AtlAxWinInit();
Create a CAxWindow object CAxWindow wnd ;
Create a host window
RECT rect = { 0, 0, 100, 100 };
wnd.Create(m_hWnd, rect, _T("MSCAL.Calendar"), WS_CHILD | WS_VISIBLE|IBLE |
WS_CLIPSIBLINGS | WS_CLIPCHILDREN, WS_EX_CLIENTEDGE);
For more details on ATL Windowing, see ATL Tutorial by example.
Add a Scripting Engine to Your Application (using: Visual Basic 6.0) [Microsoft Script Control, Scripting, Scripting Engine, Visual Basic, Tip] www.devx.com 01-Jul-2000 by Dan Newsome
Add a Scripting Engine to Your Application
It's easy to add scripting functionality to your VB project, especially if
you have been developing through classes all along. The more classes you
program, the more objects you can expose to your script language. You can use
both VBScript and JScript as the basis for your scripting engine.
First, download the Microsoft Script Control from MSDN. Install the control
according to the instructions provided. You might need to register the control
manually (run regsvr32 on it). The footprint on this control is low; the whole
download including help is only 243K. Next, create a script file with a text
editor such as Notepad:
Sub Main()
MsgBox "Hello, world"
End Sub
Save it as c:\temp.txt and add this code to your application:
Private Sub Command1_Click()
Dim iFileNum As Long
Dim sFileBuffer As String
Dim sTemp As String
iFileNum = FreeFile()
Open "c:\temp.txt" For Input As #iFileNum
Do While Not EOF(iFileNum)
Line Input #iFileNum, sTemp
sFileBuffer = sFileBuffer & sTemp & _
vbCrLf
Loop
Close #iFileNum
ScriptControl1.Reset
ScriptControl1.AddCode (sFileBuffer)
ScriptControl1.Run "Main"
End sub
You have now successfully implemented a scripting engine. You can expose
objects in your application like this:
Private Sub Command1_Click()
Dim objMyClass As New MyClassNameHere
With dlgCommon
.ShowOpen
sFileName = .FileName
End With
iFileNum = FreeFile()
Open sFileName For Input As #iFileNum
While Not EOF(iFileNum)
Line Input #iFileNum, sTemp
sFileBuffer = sFileBuffer & sTemp & vbCrLf
Wend
Close #iFileNum
ScriptControl1.Reset
ScriptControl1.AddObject "Database", objMyClass
ScriptControl1.AddCode (sFileBuffer)
ScriptControl1.Run "Main"
End sub
You can even try code such as this to give ad hoc capabilities to an
application:
ScriptControl1.ExecuteStatement "x = 100"
MsgBox ScriptControl1.Eval("x = 100") ' True
MsgBox ScriptControl1.Eval("x = 100/2") ' Fal ... (cont.)
Specify the timeout interval after which the application automatically terminates itself (using: Visual Basic 6.0) [Timer Control, Visual Basic, Tip] www.developer.com 01-Jul-2000 by Rod Stephens
Can you please tell me how we can specify the timeout interval after which the
application will automatically terminate itself. The idea is to terminate the
application when there is no activity in the application for a certain
predefined time interval.
Developer.com Expert Rod Stephen's Answer:
Create a variable to keep track of the timeout time like this:
Private m_TimeoutTime As Date
Write a routine that resets this time to some time in the future.
' Set the timeout for 15 seconds from now.
Private Sub SetTimeout()
m_TimeoutTime = DateAdd("s", 15, Date + Time)
lblTimeout.Caption = m_TimeoutTime
End Sub
Invoke this routine whenever the user does something that should keep the
program active.
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
SetTimeout
End Sub
Finally, use a timer to see if it's time to quit the application.
' See if it's time to quit.
Private Sub tmrTimeout_Timer()
If Date + Time > m_TimeoutTime Then Unload Me
End Sub
For an example program, go to www.vb-helper.com/ and click the "Make a program
close itself if it has been inactive for too long" link.
Get the handle of the edit portion of a ComboBox ... and, as an example, force all characters to uppercase (using: Visual Basic 6.0) [ComboBox Control, FindWindowEx(), GetWindowLong(), Handle, SetWindowLong(), Tip, Visual Basic] www.vb2themax.com 01-Jul-2000
Get the handle of the edit portion of a ComboBox
Date: 7/1/2000
Versions: VB4/32 VB5 VB6 Level: Intermediate
Author: The VB2TheMax Team
The ComboBox control contains an invisible Edit window, which is used for the
edit area. In most cases you don't need to access this inner control directly,
but occasionally a direct control of that window can be useful. The first thing
to do is get the handle of such inner Edit control, which you do with the
following code:
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal
_
hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, _
ByVal lpsz2 As String) As Long
Dim editHWnd As Long
editHWnd = FindWindowEx(Combo1.hWnd, 0&, vbNullString, vbNullString)
Once you have the handle of the control, you can exploit all the usual
low-level techniques, using API functions such as SendMessage, SetWindowLong,
or subclassing. For example, you can force uppercase characters as follows:
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal
_
hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, _
ByVal lpsz2 As String) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
(ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
(ByVal hwnd As Long, ByVal nIndex As Long) As Long
Const GWL_STYLE = (-16)
Const ES_UPPERCASE = &H8&
Dim editHWnd As Long, style As Long
' get the handle of the inner Edit control
editHWnd = FindWindowEx(Combo1.hwnd, 0&, vbNullString, vbNullString)
' get its current Style
style = GetWindowLong(editHWnd, GWL_STYLE)
' set the ES_UPPERCASE bit
SetWindowLong editHWnd, GWL_STYLE, style Or ES_UPPERCASE
Create arrowed buttons without icons
Date: 7/1/2000
Versions: VB4 VB5 VB6 Level: Beginner
Author: The VB2TheMax Team
You don't need to use icons or bitmap to create buttons with arrows on them. In
fact, you just have to select the "Windings" font, set a suitable font size
(e.g. 12 or 14 points), and then enter one of these characters:
Line arrows
Chr$(223) Left Arrow
Chr$(224) Right Arrow
Chr$(225) Up Arrow
Chr$(226) Down Arrow
Chr$(227) Up-Left Arrow
Chr$(228) Up-Right Arrow
Chr$(229) Down-Left Arrow
Chr$(230) Down-Right Arrow
Solid arrows
Chr$(231) Left Arrow
Chr$(232) Right Arrow
Chr$(233) Up Arrow
Chr$(234) Down Arrow
Chr$(235) Up-Left Arrow
Chr$(236) Up-Right Arrow
Chr$(237) Down-Left Arrow
Chr$(238) Down-Right Arrow
Outlined arrows
Chr$(239) Left Arrow
Chr$(240) Right Arrow
Chr$(241) Up Arrow
Chr$(242) Down Arrow
Chr$(245) Up-Left Arrow [note the gap here]
Chr$(246) Up-Right Arrow
Chr$(247) Down-Left Arrow
Chr$(248) Down-Right Arrow
This font include many other useful symbols, such as hands, airplanes,
mailboxes, astrological signs, smileys, circled digits, checkmarks, and more.
Prevent dragging elements in a ListView control (using: Visual Basic 6.0) [Drag and Drop, ListView Control, Subclassing, Visual Basic, Tip] www.vb2themax.com 01-Jul-2000
Prevent dragging elements in a ListView control
Date: 7/1/2000
Versions: VB5 VB6 Level: Advanced
Author: The VB2TheMax Team
The ListView control doesn't expose any property that lets you disable the
dragging of its elements. To do so, you must trap the WM_NOTIFY message that
the ListView control sends its parent form when the drag operation begins, and
"eat" it. Using the MSGHOOK.DLL subclassing library it's easy to accomplish it:
' REQUIRES THE MSGHOOK.DLL LIBRARY
Const WM_NOTIFY = &H4E
Const LVN_FIRST = -100&
Const LVN_BEGINDRAG = (LVN_FIRST - 9)
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (dest As _
Any, source As Any, ByVal bytes As Long)
Private Type NMHDR
hwndFrom As Long
idFrom As Long
code As Long
End Type
Dim WithEvents FormHook As MsgHook
Private Sub Form_Load()
' start subclassing the current form
Set FormHook = New MsgHook
FormHook.StartSubclass Me
' fill the ListView1 control with data
' ... (omitted) ...
End Sub
' this event fires when the form is sent a message
Private Sub FormHook_BeforeMessage(uMsg As Long, wParam As Long, lParam As
Long, _
retValue As Long, Cancel As Boolean)
' the ListView might be notifying something to its parent form
If uMsg = WM_NOTIFY Then
' copy the MNHDR structure pointed
' to by lParam to a local UDT
Dim nmh As NMHDR
CopyMemory nmh, ByVal lParam, Len(nmh)
' check whether the notification is from the ListView1 control
' and whether it's the beginning of a drag operation
If nmh.hwndFrom = ListView1.hWnd And nmh.code = LVN_BEGINDRAG Then
' yes, cancel this operation
retValue = 1
Cancel = True
End If
End If
End Sub
Load items faster in the TreeView and ListView controls (using: Visual Basic 6.0) [DispID Binding, ListView Control, TreeView Control, Visual Basic, Tip] www.vb2themax.com 01-Jul-2000
Load items faster in the TreeView and ListView controls
Date: 7/1/2000
Versions: VB4/32 VB5 VB6 Level: Intermediate
Author: The VB2TheMax Team
There is an easy, but under-utilized, technique for loading many nodes in a
TreeView control (or ListItems in a ListView control) that is faster than the
standard technique. Consider this loop:
For i = 1 To 5000
TreeView1.Nodes.Add , , , "Node " & i
Next
Instead of repeatedly query the TreeView1 object for its Nodes collection, you
can store it in a temporary object variable:
Dim nods As MSComctlLib.Nodes
Set nods = TreeView1.Nodes
For i = 1 To 5000
nods.Add , , , "Node " & i
Next
You don't even need the temporary variable, if you use a With block:
With TreeView1.Nodes
For i = 1 To 5000
.Add , , , "Node " & i
Next
End With
On my system, these optimized loops run about 40% faster than the standard code
showed above. This faster speed can be explained as follows: by storing the
Nodes collection in a temporary variable (or using the hidden temporary
variable that VB builds behind the With block), you avoid to bind the Nodes
object to its parent TreeView1 object inside the loop. Because this latter
binding is based on the inefficient dispid-binding, this step trims a lot of
unnecessary overhead inside the loop.
The same reasoning applies to other ActiveX controls:
- the ListItems, ListSubItems, and ColumnHeaders collections of the ListView
control
- the Buttons and ButtonMenus collection of the Toolbar control
- the ListImages collection of the ImageList control
- the Panels collection of the StatusBar control
- the Tabs collection of the TabStrip control
- the ComboItems collection of the ImageCombo control the Columns collection of
the DataGrid control and more in general, whenever you have an ActiveX control
that exposes a collection that you use inside a loop.
Limit the length of an item in a ListView control (using: Visual Basic 6.0) [GetWindowLong(), ListView Control, SendMessage(), SetWindowLong(), Visual Basic, Tip] www.vb2themax.com 01-Jul-2000
Limit the length of an item in a ListView control
Date: 7/1/2000
Versions: VB5 VB6 Level: Intermediate
Author: The VB2TheMax Team
The ListView control doesn't expose any property that lets you limit the amount
of text users can type when editing an item's label. However, you can do the
trick with a couple of SendMessage API calls from within the BeforeLabelEdit
event: with the LVM_GETEDITCONTROL message you retrieve the handle of the
hidden Edit control that the ListView creates for let the user edit the node.
If you then send the EM_LIMITTEXT message to this Edit control you can put a
limit to the text that can be typed in this control:
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal _
hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _
lParam As Any) As Long
Const LVM_FIRST = &H1000
Const LVM_GETEDITCONTROL = (LVM_FIRST + 24)
Const EM_LIMITTEXT = &HC5
' limit the text that can be typed in ListView's item to 10 characters
Private Sub ListView1_BeforeLabelEdit(Cancel As Integer)
Dim editHWnd As Long
' get the handle of the ListView's Edit control
editHWnd = SendMessage(ListView1.hWnd, LVM_GETEDITCONTROL, 0, ByVal 0&)
' send it a EM_LIMITTEXT message to limit its length
SendMessage editHWnd, EM_LIMITTEXT, 10, 0
End Sub
Once you now the method you can perform some other tricks with the Edit
control. For example, you can automatically convert all text to uppercase:
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal _
hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _
lParam As Any) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
(ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
(ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Const GWL_STYLE = (-16)
Const LVM_FIRST = &H1000
Const LVM_GETEDITCONT ... (cont.)
Get full control on the text typed in a ListView's item (using: Visual Basic 6.0) [AfterLabelEdit Event, ListView Control, SendMessage(), Subclassing, Visual Basic, Tip] www.vb2themax.com 01-Jul-2000
Get full control on the text typed in a ListView's item
Date: 7/1/2000
Versions: VB5 VB6 Level: Intermediate
Author: The VB2TheMax Team
The ListView control exposes the AfterLabelEdit event to let the programmer
validate the text entered in a ListItem, but there is no way to trap keys as
they are typed by the user. This prevents you from discarding unwanted
characters while the user types them.
You can work around this problem by subclassing the Edit control that the
ListView control creates when entering the node edit mode. The following code
uses the MSGHOOK.DLL library, that you can download from the FileBank on this
site, to discard digits and convert all text to uppercase:
' REQUIRES THE MSGHOOK.DLL LIBRARY
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal _
hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _
lParam As Any) As Long
Const LVM_FIRST = &H1000
Const LVM_GETEDITCONTROL = (LVM_FIRST + 24)
Dim WithEvents TVHook As MsgHook
' start subclassing of the Edit control used when in edit mode
Private Sub ListView1_BeforeLabelEdit(Cancel As Integer)
Dim editHWnd As Long
' get the handle of the TreeView's Edit control
editHWnd = SendMessage(ListView1.hWnd, LVM_GETEDITCONTROL, 0, ByVal 0&)
' subclass it
LVHook.StartSubclass editHWnd
End Sub
' stop subclassing when exiting edit mode
Private Sub ListView1_AfterLabelEdit(Cancel As Integer, NewString As String)
LVHook.StopSubclass
End Sub
Private Sub Form_Load()
Set LVHook = New MsgHook
End Sub
' discard digits as they are entered by the user
' and convert all text to uppercase
Private Sub LVHook_BeforeMessage(uMsg As Long, wParam As Long, lParam As Long, _
retValue As Long, Cancel As Boolean)
If uMsg = WM_CHAR Then
' wParam contains the character code
If wParam >= 48 And wParam <= 57 Then
' discard digits
Cancel = True
ElseIf wParam >= Asc("a") And wParam < ... (cont.)
Determine the number of visible items in a ListView control (using: Visual Basic 6.0) [ListView Control, SendMessage(), Visual Basic, Tip] www.vb2themax.com 01-Jul-2000
Determine the number of visible items in a ListView control
Date: 7/1/2000
Versions: VB5 VB6 Level: Intermediate
Author: The VB2TheMax Team
Microsoft "forgot" to provide the ListView control with the GetVisibleCount
property, as it did, for example, with the TreeView control. However, getting
this information is as easy as sending a message to the control:
Private Const LVM_FIRST = &H1000
Private Const LVM_GETCOUNTPERPAGE = (LVM_FIRST + 40)
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal _
hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _
lParam As Any) As Long
' Return the number of visible items in a ListView control
Private Function ListViewGetVisibleCount(LV As ListView) As Long
ListViewGetVisibleCount = SendMessage(LV.hwnd, LVM_GETCOUNTPERPAGE, 0&, _
ByVal 0&)
End Function
How to add a dockable window to your VB Project. (using: Visual Basic 6.0) [Docking Window, Visual Basic, Solution] www.vbweb.co.uk 01-Jul-2000
Palettes and 256 Colors [Palette, Color, Graphic, Visual C++, Article] Windows Developer's Journal 01-Jul-2000, vol. 11, no. 7 by Moishe Halibard
Palettes and 256 Colors
Moishe Halibard
Despite the advantages of 32-bit color, palettized displays are still
with us. For most machines, Graphics is simply faster in good old 256-color
mode. But that means sharing a single color palette among multiple
applications. Here are some tips and explanations to make the job easier.
NT Handle-to-Path Convertor [Handle, Path, File Handle, Filename, Visual C++, Article] Windows Developer's Journal 01-Jul-2000, vol. 11, no. 7 by Jim Conyngham
NT Handle-to-Path Convertor
Jim Conyngham
Sometimes your code has to use a File Handle that it did not open
itself. What if you want the associated Filename to display in an error
message? Usually, you’re out of luck, but it turns out that under NT you can,
in most cases, obtain the pathname associated with an open file handle.
Understanding NT: How to use Performance Counters [Performance Counter, Windows NT, Visual C++, Article] Windows Developer's Journal 01-Jul-2000, vol. 11, no. 7 by Paula Tomlinson
Understanding NT: How to use Performance Counters
Paula Tomlinson
Performance counters are a way for NT applications to publish or access
internal process information. For example, your NT program can read a
performance counter to find out how many TCP/IP connections are open, or how
much memory is currently committed. This is the first of a three-part series
that explains in detail how to use performance counters.
Two AttachThreadInput() Tricks [AttachThreadInput(), Thread, Visual C++, Article] Windows Developer's Journal 01-Jul-2000, vol. 11, no. 7 by Joe Fitzpatrick
Two AttachThreadInput() Tricks
Joe Fitzpatrick
Fun things you can do to other processes with AttachThreadInput().
Creating ADO Connection Strings at Run Time [ADO, ActiveX Data Objects, Visual C++, Article] Windows Developer's Journal 01-Jul-2000, vol. 11, no. 7 by Arnaud Aubert
Creating ADO Connection Strings at Run Time
Arnaud Aubert
A function to construct the necessary string for connecting to a
database via an ActiveX Data Object.
Passing VARIANT_BOOL* via IDispatch [VARIANT_BOOL, IDispatch Interface, ATL, Visual C++, Article] Windows Developer's Journal 01-Jul-2000, vol. 11, no. 7 by Shahar Prish
Passing VARIANT_BOOL* via IDispatch
Shahar Prish
The ATL wizard can generate bad code for this case, so watch out.
Using a Background Thread [Thread, Visual C++, Article] Windows Developer's Journal 01-Jul-2000, vol. 11, no. 7 by Petter Hesselberg
Using a Background Thread
Petter Hesselberg
Although no longer an absolute requirement, the Windows window
messaging model still has a strong single-threaded orientation. This column
looks at some of the issues you should think about when you decide to involve
more than one thread in your user interface, and includes a dialog that uses a
background thread to update information from the Internet.
Extend Office With ATL Add-ins [Office, ATL, Add-in, COM, Article, Visual C++] Visual C++ Developers Journal 01-Jul-2000, vol. 3, no. 6 by Brian Noyes
Extend Office With ATL Add-ins
Brian Noyes
Need additional or specialized capabilities in Office 2000? Use ATL to
build a COM add-in component that extends the functionality of Office apps.
Build Versatile 3-D Apps [3-D, Graphic, Article, Visual C++] Visual C++ Developers Journal 01-Jul-2000, vol. 3, no. 6 by Max Fomitchev
Build Versatile 3-D Apps
Max Fomitchev
Create a versatile 3-D framework that handles common operations and
ensures your application executes correctly on different configurations.
Integrate COM Components [COM, Article, Visual C++] Visual C++ Developers Journal 01-Jul-2000, vol. 3, no. 6 by Brian Noyes
Integrate COM Components
Brian Noyes
Most COM programming documentation focuses on developing components,
not using them. Learn how to integrate COM components into your app quickly and
easily.
Get Started With the VC++ AppWizard [AppWizard, Article, Visual C++] Visual C++ Developers Journal 01-Jul-2000, vol. 3, no. 6 by Bill Wagner
Get Started With the VC++ AppWizard
Bill Wagner
Learn to modify AppWizard auto-generated files in this first part of a
series designed to help you use Visual C++ effectively.
Incorporate XML-Based Services [XML, Article, Visual C++] Visual C++ Developers Journal 01-Jul-2000, vol. 3, no. 6 by Brian K Holman
Incorporate XML-Based Services
Brian K Holman
XML is here to stay, so start using it! Get up to speed on this new
standard, then find out how to traverse and manipulate XML document structures.
Register COM+ Event Classes [COM+, Event Class, ATL, Article, Visual C++] Visual C++ Developers Journal 01-Jul-2000, vol. 3, no. 6 by Richard Grimes
Register COM+ Event Classes
Richard Grimes
Using ATL to register and install COM+ event classes, you can eliminate
their implementation, reducing the size and increasing the load speed of your
COM+ DLLs.
Understanding the Free-Threaded Marshaler [Free-threaded Marshaler, COM, Article, Visual C++] Visual C++ Developers Journal 01-Jul-2000, vol. 3, no. 6 by George Shepherd
Understanding the Free-Threaded Marshaler
George Shepherd
COM’s free-threaded marshaler lets you write in-process COM objects
spanning all the execution contexts within a process.
Reformat Extracted ODBC Data [ODBC, Database, Article, Visual C++] Visual C++ Developers Journal 01-Jul-2000, vol. 3, no. 6 by Tom Creighton
Reformat Extracted ODBC Data
Tom Creighton
Create a set of object classes that lets you retrieve data from ODBC
Databases and reformat it to suit your needs.
Detect Library Startup and Shutdown [ActiveX DLL, Article, Visual Basic] Visual Basic Programmer's Journal 01-Jul-2000, vol. 10, no. 8 by Karl E Peterson
Detect Library Startup and Shutdown
Karl E Peterson
ActiveX DLLs don't offer a standard way to detect library termination,
but our pro tells you how it's done.
Audit Data Efficiently [Audit, Trigger, Stored Procedure, Article, Visual Basic] Visual Basic Programmer's Journal 01-Jul-2000, vol. 10, no. 8 by R Mark Tucker
Audit Data Efficiently
R Mark Tucker
Add auditing to your apps by choosing from 12 methods that use Triggers
or Stored Procedures.
Modify a Variable’s Pointer [Pointer, Memory Mapped File, Article, Visual Basic] Visual Basic Programmer's Journal 01-Jul-2000, vol. 10, no. 8 by Bill McCarthy
Modify a Variable’s Pointer
Bill McCarthy
Modify a variable's pointer to share data between your applications, to
point to a Memory Mapped File, or to manipulate data using pointers.
Code Faster With a String Parser [String, Parser, Article, Visual Basic] Visual Basic Programmer's Journal 01-Jul-2000, vol. 10, no. 8 by Francesco Balena
Code Faster With a String Parser
Francesco Balena
Your coding process gets easier and faster if you think of your source
code as data. The author shows you how to create a utility that automates your
code editing process.
Create 3-D Graphics With DX7 [3-D, Graphic, DirectX, Article, Visual Basic] Visual Basic Programmer's Journal 01-Jul-2000, vol. 10, no. 8 by Jonny Anderson
Create 3-D Graphics With DX7
Jonny Anderson
VB developers have long pined for the ability to implement DirectX 7
(DX7) directly from VB. This article walks you through the process of
installing DX7 and creating a simple 3-D application.
Organize Data With Stacks and Queues [Stack, Queue, Data Structure, Article, Visual Basic] Visual Basic Programmer's Journal 01-Jul-2000, vol. 10, no. 8 by Nick Snowdon
Organize Data With Stacks and Queues
Nick Snowdon
Queues and stacks serve a similar purpose, but operate on quite
different principles. Learn how to use these basic Data Structures to organize
your data.
Write Complex Queries With MDX [MDX, MultiDimensional eXpression, Query, Article, Visual Basic] Visual Basic Programmer's Journal 01-Jul-2000, vol. 10, no. 8 by Andrew J Brust
Write Complex Queries With MDX
Andrew J Brust
If you think the MultiDimensional eXpression (MDX) Query language is
hard to learn, you're not alone. However, MDX comes to the rescue with advanced
functionality and properties to help you write useful and more powerful queries.
Design for COM+ [COM+, Article, Visual Basic] Visual Basic Programmer's Journal 01-Jul-2000, vol. 10, no. 8 by Dan Fox
Design for COM+
Dan Fox
Learn to design simple and robust distributed applications with COM+.
You can make your life easier by taking advantage of COM+ design features to
create powerful, more flexible systems that will save you time and prevent
programming headaches.
Use SQL With ADO [SQL, ADO, ActiveX Data Objects, ADO, Article, Visual Basic] Visual Basic Programmer's Journal 01-Jul-2000, vol. 10, no. 8 by Stan Schultes
Use SQL With ADO
Stan Schultes
Using ActiveX Data Objects (ADO) in your VB code to build and execute
SQL statements is easier than you might think. Check out the advantages of
using ADO.
Manage Resources With WMI [Resource, WMI, Windows Management Instrumentation, Article, Visual Basic] Visual Basic Programmer's Journal 01-Jul-2000, vol. 10, no. 8 by L J Johnson
Manage Resources With WMI
L J Johnson
Tired of using the API and Registry entries if you manage the resources
on one or more computers? Create a network computer management program with
Windows Management Instrumentation (WMI) and VB.
Go Beyond OO With CBD [CBD, Component-based Development, Object Oriented, Article, Visual Basic] Visual Basic Programmer's Journal 01-Jul-2000, vol. 10, no. 8 by Deborah Kurata
Go Beyond OO With CBD
Deborah Kurata
Component-based Development is the way to go for today’’s desktop and
Web development. Take advantage of the benefits it has to offer.
Write Intelligent Transact-SQL [Transact-SQL, Stored Procedure, Article, Visual Basic] Visual Basic Programmer's Journal 01-Jul-2000, vol. 10, no. 8 by Mary V Hooke
Write Intelligent Transact-SQL
Mary V Hooke
Take advantage of Transact-SQL functionality to streamline data and
process logic in your Stored Procedures.
Improve Web Development With ASP 3 [Web, ASP, Article, Visual Basic] Visual Basic Programmer's Journal 01-Jul-2000, vol. 10, no. 8 by A Russell Jones
Improve Web Development With ASP 3
A Russell Jones
ASP 3 offers several new features that can make your Web development
process easier. Here’s how to use these features to improve scalability and
responsiveness.
Exchange 2000: Web Storage System, Workflow Tools, and CDO Turbocharge Collaboration Apps [Web Storage System, Workflow, CDO, Collaboration, Exchange, Article] MSDN Magazine 01-Jul-2000, vol. 15, no. 7 by Sean McCormick
Exchange 2000: Web Storage System, Workflow Tools, and CDO Turbocharge
Collaboration Apps
Sean McCormick
Create Dynamic Digital Dashboards Using Microsoft Office 2000, OLAP, and DHTML [OLAP, DHTML, Office, Article] MSDN Magazine 01-Jul-2000, vol. 15, no. 7 by Todd Abel
Create Dynamic Digital Dashboards Using Microsoft Office 2000, OLAP,
and DHTML
Todd Abel
Introducing the Web Application Manager, Client Authentication Options, and Process Isolation [Web Application Manager, Client Authentication Option, Process Isolation, Internet Explorer, Article] MSDN Magazine 01-Jul-2000, vol. 15, no. 7 by Keith Brown
Introducing the Web Application Manager, Client Authentication Options,
and Process Isolation
Keith Brown
Automating the Creation of COM+ Components for a Database Schema [COM+, Component, Database Schema, Visual C++, Article] MSDN Magazine 01-Jul-2000, vol. 15, no. 7 by Aleksandr Mikunov
Automating the Creation of COM+ Components for a Database Schema
Aleksandr Mikunov
Monitor Your Web Site's Activity with COM and Active Scripting [Monitor, Web, COM, Active Scripting, Internet Explorer, Article] MSDN Magazine 01-Jul-2000, vol. 15, no. 7 by Panos Kougiouris
Monitor Your Web Site's Activity with COM and Active Scripting
Panos Kougiouris
Performing Ad Hoc Web Reporting with a VBScript 5.0 Class Object [Web, VBScript, Article] MSDN Magazine 01-Jul-2000, vol. 15, no. 7 by Randall Kindig
Performing Ad Hoc Web Reporting with a VBScript 5.0 Class Object
Randall Kindig
ASP-based Web Site Design to Support Globalization [ASP, Web, Globalization, Visual Basic, Article] MSDN Magazine 01-Jul-2000, vol. 15, no. 7 by Michael Kaplan
ASP-based Web Site Design to Support Globalization
Michael Kaplan
Using a DTC to submit a Form [DTC, Form, Internet Explorer, Article] MSDN Magazine 01-Jul-2000, vol. 15, no. 7 by Robert Hess
Using a DTC to submit a Form
Robert Hess
Sending E-mail from Forms [E-mail, Form, Internet Explorer, Article] MSDN Magazine 01-Jul-2000, vol. 15, no. 7 by Robert Hess
Sending E-mail from Forms
Robert Hess
Writing custom OLE DB Providers using ATL [OLE DB Provider, ATL, Visual C++, Article] MSDN Magazine 01-Jul-2000, vol. 15, no. 7 by Dino Esposito
Writing custom OLE DB Providers using ATL
Dino Esposito
Addressing Infosets with XPath [XPath, XML, Internet Explorer, Article] MSDN Magazine 01-Jul-2000, vol. 15, no. 7 by Aaron Skonnard
Addressing Infosets with XPath
Aaron Skonnard
Migrating from MTS to COM+ [MTS, COM+, Visual Basic, Article] MSDN Magazine 01-Jul-2000, vol. 15, no. 7 by Ken Spencer
Intercepting Ctrl+Esc, Alt+Tab and Alt+Esc [Interception, Callback, Visual C++, Article] MSDN Magazine 01-Jul-2000, vol. 15, no. 7 by Jeffrey Richter
Intercepting Ctrl+Esc, Alt+Tab and Alt+Esc
Jeffrey Richter
Happy 10th anniversary, Windows: Looking back at 10 years of Windows Development [Windows, Development, Visual C++, Article] MSDN Magazine 01-Jul-2000, vol. 15, no. 7 by Matt Pietrek
Happy 10th anniversary, Windows: Looking back at 10 years of Windows
Development
Matt Pietrek
Using ADO to create XML-based Recordsets [ADO, XML, Recordset, Visual Basic, Article] MSDN Magazine 01-Jul-2000, vol. 15, no. 7 by Don Box
Using ADO to create XML-based Recordsets
Don Box
Enable and Disable Menus in MFC [Menu, MFC, ON_UPDATE_COMMAND_UI, Visual C++, Article] MSDN Magazine 01-Jul-2000, vol. 15, no. 7 by Paul DiLascia
Enable and Disable Menus in MFC
Paul DiLascia
Changing the behavior of Enter for a Dailog [Dialog, Visual C++, Article] MSDN Magazine 01-Jul-2000, vol. 15, no. 7 by Paul DiLascia
Changing the behavior of Enter for a Dailog
Paul DiLascia
Modeles Dialog and Message Loops [Modeless Dialog, Message Loop, Dialog, Visual C++, Article] MSDN Magazine 01-Jul-2000, vol. 15, no. 7 by Paul DiLascia
Modeles Dialog and Message Loops
Paul DiLascia
Real-world Web Apps [Web, WebBroker, ISAPI, Article, Delphi] Delphi Informant 01-Jul-2000, vol. 6, no. 7 by Mark Brittingham
Real-world Web Apps
Mark Brittingham
You know the basics; Dr Brittingham tells us what it takes to build a
Web application to withstand the rigors of daily use, from WebBroker
components, to ISAPI DLLs, to tracking state, and more.
Delphi and ASP [ASP, Active Server Pages, Article, Delphi] Delphi Informant 01-Jul-2000, vol. 6, no. 7 by Cary Jensen
Delphi and ASP
Cary Jensen
Microsoft Active Server Pages are extremely popular. Dr Jensen shows
you how to get in on the action by explaining the basics of ASP, and
demonstrating how to create and use ASP objects with Delphi.
Exploiting SQL Server 7 DMO: Part II [Distributed Management Objects, Database Information and Reconciliation Tool, Security, SQL Server, Article, Delphi] Delphi Informant 01-Jul-2000, vol. 6, no. 7 by Jason Perry
Exploiting SQL Server 7 DMO: Part II
Jason Perry
Mr Perry ends his two-part series on Microsoft SQL Server 7 Distributed
Management Objects by sharing an invaluable Database Information and
Reconciliation Tool, as well as a simple Security object.
Palm Conduits: Part II [Palm Conduit, Conduit, Paradox, Article, Delphi] Delphi Informant 01-Jul-2000, vol. 6, no. 7 by Ron Loewy
Palm Conduits: Part II
Ron Loewy
Completing his two-part series, Mr Loewy builds a Conduit that moves
information from the Palm device to a Paradox database, and a conduit that
synchronizes the Paradox database and Palm device.
Simple Unit Tests in C++ [Unit Test, C++, Testing, Article, Visual C++] C++ Users Journal 01-Jul-2000 by Marc Briand
Simple Unit Tests in C++
Marc Briand
Unit Testing is a tedious, but often necessary, adjunct to writing
code. A few template classes can eliminate much of the tedium and improve
encapsulation in the bargain.
Data-Based Axis Determination [Graph, Article, Visual C++] C++ Users Journal 01-Jul-2000 by Michael Bramley
Data-Based Axis Determination
Michael Bramley
Labeling the axes of a Graph is not as easy as you might think.
Copying Files from the Clipboard to a Command Prompt [File, Clipboard, Command Prompt, DOS, Article, Visual C++] C++ Users Journal 01-Jul-2000 by Joey Rogers
Copying Files from the Clipboard to a Command Prompt
Joey Rogers
You can make DOS more of a first-class Windows citizen with this handy
little clipboard utility.
Browser-Based Directory Access through LDAP and COM [Browser, Directory, LDAP, COM, Article, Visual C++] C++ Users Journal 01-Jul-2000 by Marco Morana
Browser-Based Directory Access through LDAP and COM
Marco Morana
You can do a lot with LDAP - once you get all the glue right.
Implementation of Observer Pattern [Observer Pattern, Article, Visual C++] C++ Users Journal 01-Jul-2000 by Paul Barnes
Implementation of Observer Pattern
Paul Barnes
Many applications involve observers waiting for notification. Getting
the logic right for both publishers and subscribers is something you don’t want
to have to do repeatedly.
Tree Traversal in C without Recursion [Tree Traversal, Recursion, Article, Visual C++] C++ Users Journal 01-Jul-2000 by Valery Creux
Tree Traversal in C without Recursion
Valery Creux
If you can spare one bit of storage in each node, you can traverse a
tree without recursive function calls.
Formatted Text and Locales [Java, Article, Visual C++] C++ Users Journal 01-Jul-2000 by Chuck Allison
Chuck Allison
Formatted Text and Locales
Java offers more formatting power than C, but not necessarily in a more
convenient package.
Error in Floating Point Calculations [Error, Floating Point, Article, Visual C++] C++ Users Journal 01-Jul-2000 by Pete Becker
Pete Becker
Error in Floating Point Calculations
And you thought error, accuracy, precision, and significance were
pretty synonymous.
An IP Telephone in 74 Lines of Perl [Telephone, Article, Perl] The Perl Journal 01-Jul-2000, vol. 5, no. 3 by Lincoln D Stein
An IP Telephone in 74 Lines of Perl
Lincoln D Stein
Microperl [Microperl, Article, Perl] The Perl Journal 01-Jul-2000, vol. 5, no. 3 by Simon Cozens
Microperl
Simon Cozens
Spreadsheet::WriteExcel [Spreadsheet::WriteExcel, Excel, Article, Perl] The Perl Journal 01-Jul-2000, vol. 5, no. 3 by John McNamara
Spreadsheet::WriteExcel
John McNamara
Extending Perl with Inline.pm [Article, Perl] The Perl Journal 01-Jul-2000, vol. 5, no. 3 by Brian Ingerson
Extending Perl with Inline.pm
Brian Ingerson
Finance::Quote [Finance::Quote, Article, Perl] The Perl Journal 01-Jul-2000, vol. 5, no. 3 by Paul Fenwick
Finance::Quote
Paul Fenwick
Finance::QuoteHist and HTML::TableExtract [Finance::QuoteHist, HTML::TableExtract, Article, Perl] The Perl Journal 01-Jul-2000, vol. 5, no. 3 by Matthew Sisk
Finance::QuoteHist and HTML::TableExtract
Matthew Sisk
Scanning HTML [HTML, Article, Perl] The Perl Journal 01-Jul-2000, vol. 5, no. 3 by Sean M Burke
Scanning HTML
Sean M Burke
Smart Matching for Human Names [Matching, Article, Perl] The Perl Journal 01-Jul-2000, vol. 5, no. 3 by Brian Lalonde
Smart Matching for Human Names
Brian Lalonde
Parsing Natural Language with Lingua::LinkParser [Parsing, Lingua::LinkParser, Article, Perl] The Perl Journal 01-Jul-2000, vol. 5, no. 3 by Dan Brian
Parsing Natural Language with Lingua::LinkParser
Dan Brian
Integrating Perl into Microsoft Office Innards [Office, Article, Perl] The Perl Journal 01-Jul-2000, vol. 5, no. 3 by Tim Meadowcroft
Integrating Perl into Microsoft Office Innards
Tim Meadowcroft
Converting C to English with Perl [Article, Perl] The Perl Journal 01-Jul-2000, vol. 5, no. 3 by Omri Schwartz
Converting C to English with Perl
Omri Schwartz
Optimizing Object Pascal [Optimizing, Object Pascal, Article, Delphi] Delphi Developer 01-Jul-2000, vol. 6, no. 7 by Charles Appel
Optimizing Object Pascal
Charles Appel
In this piece, Charles Appel explores optimizing Delphi code based on
standard techniques, fully understanding the subject matter of the program, and
a case of sheer dumb luck. A poker library is used to illustrate these points.
(Tip: Want to know what the single greatest optimization I made was? It'll
surprise you! And it's one you can implement in your code today; see
Optimization 5.)
What is XML? [XML, Article, Delphi] Delphi Developer 01-Jul-2000, vol. 6, no. 7 by Peter Vogel
What is XML?
Peter Vogel
Peter Vogel, editor of XML Developer
(http://www.xmldevelopernewsletter.com), Pinnacle Publishing's newest
publication, offers an introduction to the capabilities of XML. He defines XML
and introduces the fundamentals of the language including defining and using
tags as well as creating and processing documents.
Creating Custom TScrollBox Navigation [TScrollBox, Scrollbar, Article, Delphi] Delphi Developer 01-Jul-2000, vol. 6, no. 7 by Keith Wood
Creating Custom TScrollBox Navigation
Keith Wood
TScrollBox provides a small viewport into a big area. Using the
Scrollbars, you can position yourself over any portion of the display. But
navigating around in such a scroll box isn't always easy or intuitive. To fix
this problem, Keith Wood has built a custom navigation panel for scroll boxes
that gives you the big picture.
Creating a Crystal Reports User Function Library in Delphi [Crystal Reports, Report, Article, Delphi] Delphi Developer 01-Jul-2000, vol. 6, no. 7 by Elias Ongpoy
Creating a Crystal Reports User Function Library in Delphi
Elias Ongpoy
You don't have to go through numerous steps to massage your data and
report it. You can accomplish the same thing in fewer steps by creating your
own Crystal Reports UFL functions. In this article, Elias Ongpoy shows you how
to write a UFL in Delphi that will work just like one of the built-in functions
in Crystal Reports.
Error Handler Add-in [Error Handler, Add-in, Article, Visual Basic] www.vb2themax.com 01-Jul-2000 by Steven A Phillips
Error Handler Add-in
1-Jul-2000
1-Jul-2000
Steven A Phillips
This addin greatly simplifies adding error handling to VB programs.
Simply register the DLL using REGSVR32 and the addin will be added into the
Visual Basic tools menu. Keep the two template files in the same directory as
the DLL. Move the cursor within 10 lines after the procedure name line and
activate the add-in by pressing Alt-T-E or by clicking on the menu: all the
error handling code will be added automatically. The templates can be modified
based on preference, as explained in the Readme.txt file.
Updated: 7/22/00
ATL Windowing - A simpel tutorial by examples [ATL Windowing, Article, Visual C++] www.mindcracker.com 01-Jul-2000 by Mahesh Chand
ATL Windowing - A simpel tutorial by examples
Mahesh Chand
01-Jul-2000
01-Jul-2000
Connection Point and Asynchronous Calls, Part I [Connection Point, Asynchronous Call, Article, Visual C++] www.mindcracker.com 01-Jul-2000 by Ashish Dhar
Connection Point and Asynchronous Calls, Part I
Ashish Dhar
01-Jul-2000
01-Jul-2000
Connection Points are a way of letting Server to notify you when
something has happened in the server which you wanted to know of. I started
using connection points when I was just learning how to code in COM.I came
across a lot of issues including the performance .Eventually I learned the how
and whys (not 100% :)) of connection points. This article is a kind of a
tutorial for those who donot know what connection points are or those who know
what they are but haven't ever tried to code them.This article tells you why do
you need connection points and what are the alternatives.The article takes you
slowly from the need of getting the events back from client to why you need
Connection Points at all.Connection Points are implemented using IDispatch
interface .This tutorial simulates connection point using Custom
Interfaces(IUnknown).
Given the length of the article I have divided this into two parts
.Part I, which is this, discusses Aynchronous calls and why are they useful.
This part also tells you about the callbacks .Here we will implement a Server
(called Server03) which will demonstrate the need of asynchronous calls .This
server will simulate connection points with the IUnknown callback interface. We
will also implement one MFC client for the server..
Part II of this article will demonstrate the connection points in ATL
and we will implement a client in ATL.and will see what are the different
things one need to take into consideration while implementing a sink in ATL.
Why do we need notifications from server?
All COM calls are synchronous meaning when you make a call to a method
on an interface ,the thread blocks until the method returns. Well being
synchronous is not bad always but sometimes it is painful.Lets say we have an
CoMath object exposes the following method
Add([in]short nFirst t,[in] short nSecond,[out,retval] short* pR ... (cont.)
Profiles in Personalization [Article, Lotus Notes] Notes Advisor 01-Jul-2000 by Keith Reichly
Web Development - Lotus Notes & Domino Advisor - July 2000
Profiles in Personalization
Keith Reichly
JSPs: Another Great Tool for the Box [JSP, Article, Lotus Notes] Notes Advisor 01-Jul-2000 by Rose M Kelleher
Webs Development - Lotus Notes & Domino Advisor - July 2000
JSPs: Another Great Tool for the Box
Rose M Kelleher
Browse IIS Directory Structures
Schellnast Bernd
1-Jul-2000
1-Jul-2000
This article contains the complete project for an ISAPI Extension for
exploring Web Servers with Microsoft Internet Information Server running.
Beginners Guide to Dialog Based Applications, Part Two [Dialog, Windows Programming, MFC, Article, Visual C++] www.codeproject.com 30-Jun-2000 by Dr Asad Altimeemy
Beginners Guide to Dialog Based Applications, Part Two
Dr Asad Altimeemy
A step by step tutorial showing how to create your first windows
program using MFC
CCtrlView [MFC, Visual C++]
The base class for views that encapsulate Windows controls. So it can also be
used to convert Windows control to MFC views (example, a listview that occupies
the entire client region).
Some MFC classes based on CCtrlView:
CEditView - multiline edit view
CRichEditView - rich edit view
CListView - listview control
CTreeView - treeview control
To build on CCtrlView:
Base new class on CCtrlView.
Write a constructor that call CCtrlView's constructor with a Window Control
WNDCLASS name.
Write an accessor fcuntion to get a reference to the underliying Window control.
Add member function to add functionality to the new class.
See CTabView -> for an example of a class derived from CCtrlView.
ItemDataCombo (using: Visual C++ 6.0) [Combobox, List Control, CComboBox Class, Article, Visual C++] www.codeproject.com 29-Jun-2000
ItemDataCombo
Smaller Animals Software Inc
An extremely simple but useful CComboBox entension
A Beginner's Guide to Pointers [C++, MFC, STL, Article, Visual C++] www.codeproject.com 29-Jun-2000 by Andrew Peace
A Beginner's Guide to Pointers
Andrew Peace
An article showing the use of pointers in C and C++
FaderWnd: a Window Fader for Windows 2000 [Dialog, Windows Programming, MFC, Article, Visual C++] www.codeproject.com 29-Jun-2000 by Phil J Pearson
FaderWnd: a Window Fader for Windows 2000
Phil J Pearson
An MFC class to fade any window with only one line of code.
An example of Using MSHTML with a webbrowser control [Control, HTML, Article, Visual C++] www.codeproject.com 29-Jun-2000 by Colin Davies
An example of Using MSHTML with a webbrowser control
Colin Davies
A quick and simple example of using MSHTML to modify the DOM
Whats my CPU Speed? [System, Article, Visual C++] www.codeproject.com 29-Jun-2000 by Colin Davies
Whats my CPU Speed?
Colin Davies
Some simple functions for system stats
CRichEditView/CRichEditDoc Bug Work-Around [Article, Visual C++] www.earthweb.com 29-Jun-2000 by John Czopowik
CRichEditView/CRichEditDoc Bug Work-Around
John Czopowik
29-Jun-2000
29-Jun-2000
This article details a bug found with using a CRichEditDoc and a
workaround to it.
VBMake Script
Kinook Software
Script for automating and speeding Visual Basic builds
COM object returning Recordset [COM, Recordset, ASP, Article, Visual C++] www.mindcracker.com 28-Jun-2000 by Bulent Ozkir
COM object returning Recordset
Article explains how to create a COM object which returns recordsets
and explains how to call its method from ASP.
Bulent Ozkir
28-Jun-2000
28-Jun-2000
CXTabCtrl: an easier tab control for Dialogs and forms [Tab Control, Dialog, Article, Visual C++] www.codeproject.com 27-Jun-2000 by xicoloko
CXTabCtrl: an easier tab control for Dialogs and forms
xicoloko
An easier tab control
How to disable a Cancel button on a property page? [Article, Visual C++] www.mindcracker.com 27-Jun-2000 by Mahesh Chand
How to disable a Cancel button on a property page?
Mahesh Chand
27-Jun-2000
27-Jun-2000
How to change Next button of a property page to Finish? [Article, Visual C++] www.mindcracker.com 27-Jun-2000 by Mahesh Chand
How to change Next button of a property page to Finish?
Mahesh Chand
27-Jun-2000
27-Jun-2000
How to change caption of a button on a property page? [Article, Visual C++] www.mindcracker.com 27-Jun-2000 by Mahesh Chand
How to change caption of a button on a property page?
Mahesh Chand
27-Jun-2000
27-Jun-2000
How to delete a property page from a Property Sheet Wizard? [Article, Visual C++] www.mindcracker.com 27-Jun-2000 by Mahesh Chand
How to delete a property page from a Property Sheet Wizard?
Mahesh Chand
27-Jun-2000
27-Jun-2000
Records in Object Pascal [Article, Delphi] delphi.about.com 27-Jun-2000
27-Jun-2000
27-Jun-2000
Records in Object Pascal
Delphi For Beginners: Learn about records, Delphi's Pascal data
structure that can mix any of Delphi's built in types including any types you
have created.
Self-Extracting File Framework
Rui Godinho Lopes
An article about creating Self-Extracting files with integrated
Compression
zSmtp: Win32 SMTP Class [Internet, Network, Article, Visual C++] www.codeproject.com 26-Jun-2000 by Christopher W Backen
zSmtp: Win32 SMTP Class
Christopher W Backen
Simple Win32 SMTP Class
ADO Overview and advantages over other Database access methods [ADO, Database, Article, Visual C++] www.mindcracker.com 26-Jun-2000 by Mahesh Chand
ADO Overview and advantages over other Database access methods
Mahesh Chand
26-Jun-2000
26-Jun-2000
How to use ADO in VC++? [ADO, Article, Visual C++] www.mindcracker.com 26-Jun-2000 by Mahesh Chand
How to use ADO in VC++?
This article tells about different ways of using ADO in your VC++
applications. Mahesh Chand 06/26/2000 How to get data from a database using ADO
recordset?
Mahesh Chand
26-Jun-2000
26-Jun-2000
How to add, update, delete data from a Database using ADO Recordset [Database, ADO Recordset, Article, Visual C++] www.mindcracker.com 26-Jun-2000 by Mahesh Chand
How to add, update, delete data from a Database using ADO Recordset
Mahesh Chand
26-Jun-2000
26-Jun-2000
How to execute an SQL query in ADO model? [SQL, ADO, Article, Visual C++] www.mindcracker.com 26-Jun-2000 by Mahesh Chand
How to execute an SQL query in ADO model?
Mahesh Chand
26-Jun-2000
26-Jun-2000
How to call Stored Procedures in ADO model? [Stored Procedure, ADO, Article, Visual C++] www.mindcracker.com 26-Jun-2000 by Mahesh Chand
How to call Stored Procedures in ADO model?
Mahesh Chand
26-Jun-2000
26-Jun-2000
How to change background color of a View window? [Article, Visual C++] www.mindcracker.com 26-Jun-2000 by Mahesh Chand
How to change background color of a View window?
Sample project attached.
Mahesh Chand
26-Jun-2000
26-Jun-2000
How to change background color of a dialog? [Article, Visual C++] www.mindcracker.com 26-Jun-2000 by Mahesh Chand
How to change background color of a dialog?
Sample project attached.
Mahesh Chand
26-Jun-2000
26-Jun-2000
How to change background color of an edit control? [Article, Visual C++] www.mindcracker.com 26-Jun-2000 by Mahesh Chand
How to change background color of an edit control?
Sample project attached.
Mahesh Chand
26-Jun-2000
26-Jun-2000
How to create an access database? [Article, Visual C++] www.mindcracker.com 26-Jun-2000 by Mahesh Chand
How to create an access database?
Mahesh Chand
26-Jun-2000
26-Jun-2000
How to connect to an existing access database? [Article, Visual C++] www.mindcracker.com 26-Jun-2000 by Mahesh Chand
How to connect to an existing access database?
Mahesh Chand
26-Jun-2000
26-Jun-2000
Microsoft data access component (MDAC) [Article, Visual C++] www.mindcracker.com 26-Jun-2000 by Mahesh Chand
Microsoft data access component (MDAC)
Microsoft database access methods and which one to use and when.
Mahesh Chand
26-Jun-2000
26-Jun-2000
Database technologies for Windows platform [Article, Visual C++] www.mindcracker.com 26-Jun-2000 by Mahesh Chand
Database technologies for Windows platform
A general overview of various database technologies from Microsoft such
as ODBC, ADO, and DAO.
Mahesh Chand
26-Jun-2000
26-Jun-2000
Error types and debug vz release build in Visual Studio? [Article, Visual C++] www.mindcracker.com 26-Jun-2000 by Mahesh Chand
Error types and debug vz release build in Visual Studio?
Mahesh Chand
26-Jun-2000
26-Jun-2000
Debugging MFC: Prevent and detect bugs using ASSERT, VALID and other macros [Article, Visual C++] www.mindcracker.com 26-Jun-2000 by Mahesh Chand
Debugging MFC: Prevent and detect bugs using ASSERT, VALID and other
macros
Mahesh Chand
26-Jun-2000
26-Jun-2000
Memory Management: How to detect memory leaks in your program? [Article, Visual C++] www.mindcracker.com 26-Jun-2000 by Mahesh Chand
Memory Management: How to detect memory leaks in your program?
Mahesh Chand
26-Jun-2000
26-Jun-2000
VC++ debugging tools - a must for VC++ developers [Article, Visual C++] www.mindcracker.com 26-Jun-2000 by Mahesh Chand
VC++ debugging tools - a must for VC++ developers
Mahesh Chand
26-Jun-2000
26-Jun-2000
How to get availabe data sources from your machine? [Article, Visual C++] www.mindcracker.com 26-Jun-2000 by Mahesh Chand
How to get availabe data sources from your machine?
Mahesh Chand
26-Jun-2000
26-Jun-2000
How to create a new ODBC data source? [Article, Visual C++] www.mindcracker.com 26-Jun-2000 by Mahesh Chand
How to create a new ODBC data source?
Mahesh Chand
26-Jun-2000
26-Jun-2000
How to get number of columns and column attributes of a table? [Article, Visual C++] www.mindcracker.com 26-Jun-2000 by Mahesh Chand
How to get number of columns and column attributes of a table?
Mahesh Chand
26-Jun-2000
26-Jun-2000
How to add, update, delete data from a database using ODBC API? [Article, Visual C++] www.mindcracker.com 26-Jun-2000 by Mahesh Chand
How to add, update, delete data from a database using ODBC API?
Mahesh Chand
26-Jun-2000
26-Jun-2000
How to get data from a database using ODBC API? [Article, Visual C++] www.mindcracker.com 26-Jun-2000 by Mahesh Chand
How to get data from a database using ODBC API?
Mahesh Chand
26-Jun-2000
26-Jun-2000
Read, write, delete to/from Windows Registry [Article, Visual C++] www.mindcracker.com 26-Jun-2000 by Mahesh Chand
Read, write, delete to/from Windows Registry
Mahesh Chand
26-Jun-2000
26-Jun-2000
References in C++ [Article, Visual C++] cplus.about.com 25-Jun-2000
25-Jun-2000
25-Jun-2000
References in C++
What is a reference and how to use it
MB MsgBoxEx Control [Control, MsgBox Function, Article, Visual Basic] www.vb2themax.com 24-Jun-2000 by Marco Bellinaso
MB MsgBoxEx Control
24-Jun-2000
24-Jun-2000
Marco Bellinaso
This control is an extended and object-oriented version of the VB's
MsgBox Function. You can center the message box on your form or place it
everywhere you want, display any icon, and change the caption of every button.
You can finally create a standard dialog with the Yes, Yes to All, No, No to
All buttons, or any other combination you want.
Browsing for ODBC Data Source Names (DSN) (using: Visual C++ 6.0) [Article, Database, Visual C++] www.codeguru.com 24-Jun-2000 by Emil Gustafsson
Emil Gustafsson
C++ class that enumerates the system's ODBC DSNs
Voice Communication via Network/Internet [Internet, Article, Visual C++] www.codeguru.com 24-Jun-2000 by Zhaohui Xing
Voice Communication via Network/Internet
Zhaohui Xing
Prototype to demonstrate how to realize basic voice communications via
Internet/Network on PC platforms
Browsing for ODBC Data Source Names (DSN) [Article, Visual C++] www.earthweb.com 24-Jun-2000 by Emil Gustafsson
Browsing for ODBC Data Source Names (DSN)
Emil Gustafsson
24-Jun-2000
24-Jun-2000
C++ class that enumerates the system's ODBC DSNs
Voice Communication via Network/Internet [Article, Visual C++] www.earthweb.com 24-Jun-2000 by Zhaohui Xing
Voice Communication via Network/Internet
Zhaohui Xing
24-Jun-2000
24-Jun-2000
Prototype to demonstrate how to realize basic voice communications via
Internet/Network on PC platforms
Associate File Extension with Shell OPEN command and Application [Shell Programming, File, MFC, Article, Visual C++] www.codeproject.com 23-Jun-2000 by Blake V Miller
Associate File Extension with Shell OPEN command and Application
Blake V Miller
Registry entries and MFC class that associates a file extension with a
program.
An Adaptable Property List Control [Listview, Update, Article, Visual C++] www.codeguru.com 23-Jun-2000 by Stefan Belopotocan
An Adaptable Property List Control
Stefan Belopotocan
Very nice list control for displaying VB-like properties dialog
CHotButton: a "HotSpot" Button [Button Control, Article, Visual C++] www.codeguru.com 23-Jun-2000 by Rick Shide
CHotButton: a "HotSpot" Button
Rick Shide
Button control that enables you to place images on a button and handle
clicks on that part of the button (the hotspot)
CHotButton - a "HotSpot" Button [Article, Visual C++] www.earthweb.com 23-Jun-2000 by Rick Shide
CHotButton - a "HotSpot" Button
Rick Shide
23-Jun-2000
23-Jun-2000
A Button control that enables you to place images on a button and
handle clicks on that part of the button (the hotspot).
When There Has Been a Sharing Violation (using: Windows NT 2000) [File, Sharing Violation, Windows NT, Tip] www.devx.com 22-Jun-2000 by L J Johnson
When There Has Been a Sharing Violation
By L.J. Johnson
Several questions have come in lately concerning the error message you
sometimes get when trying to delete or move a file or a directory. The message
is something like "Error renaming file: Cannot rename file myfile.dat. There
has been a sharing violation. The source or destination files may be in use."
This can be an annoying and frustrating message, because it sometimes comes
when you are sure that the file isn't currently in use. The good news is that
this message is usually correct and, in fact, can prevent file corruption that
can happen on Win9x. The bad news is that tracking down the exact reason that
the file is still in use can take a little investigation, and I'll admit that
on a couple of occasions I've rebooted (or logged off, then on again) to solve
the problem. NT is quite stringent in this area—it keeps track of pointers to
all the open files and directories, and will not allow you to delete or move a
file or directory if even a single pointer exists to it, for any reason.
One of the possible reasons you can't delete a file (or directory) is that you
don't have the rights to do so. It is possible to have Create and Modify rights
without having Delete rights. Another possibility is that the file itself (or,
more probably, the extended attributes of the file—its metadata) is corrupt. I
once had a hard drive that did this on a regular basis. In fact, it was a bug
with NT 3.51 with a really huge number of files. The only way to cure that
particular problem was to run chkdsk /f on the drive and then reboot the
computer.
A real possibility with deleting a directory is that you have another program
accessing that directory (or one of its subdirectories). Check for other copies
of Windows Explorer (or My Computer or My Network Places or even the command
prompt) running and check to see where their current directories are pointing.
Also look at any application programs that are running and where ... (cont.)
ADO Recordset Paging in ASP [Active Server Pages, ADO, ASP, Article, Visual C++] www.codeproject.com 22-Jun-2000 by Konstantin Vasserman
ADO Recordset Paging in ASP
Konstantin Vasserman
How to display multiple pages of records in ASP
Top Tips: Internet Interfacing [Article, Visual Basic] visualbasic.about.com 22-Jun-2000
22-Jun-2000
22-Jun-2000
Top Tips: Internet Interfacing
Have you ever wanted to create an application that takes advantage of
the power of the internet? Your Visual Basic Guide introduces you to three top
tips that will make it easy to web enable your program.
CInstanceChecker .... Detects and switches to previous instance of an application [Memory-Mapped File, Previous Instance, Visual C++, MFC Class] www.naughter.com 21-Jun-2000 by P J Naughter
This class internally uses a memory mapped file (MMF) into which the handle of
the main window of your application is stuffed. When a second instance of your
app is run, it detects that the memory mapped file exists, gets the window
handle of the first instance from the MMF and reactivates it.
basRegistration .... How to register any ActiveX DLL or OCX using only API calls and code. [ActiveX Control, ActiveX DLL, CreateThread(), ExitThread(), FreeLibrary(), GetExitCodeThread(), GetProcAddress(), LoadLibrary(), Registry, WaitForSingleObject(), Visual Basic, VB Code Module] www.codeoftheweek.com 21-Jun-2000, no. 124 by Glenn Swonk
Requirements
Visual Basic 4.0 32-bit or higher.
In this Issue
In this issue we discuss how to register any ActiveX DLL or OCX
using only API calls and code.
basRegistration
This module makes it easy to register any 32-bit ActiveX
component on-the-fly from your Visual Basic program. This is
useful for writing setup utilities and more reliable applications
that do not crash if a single file is not registered correctly.
See the sample for a good use of these routines. All the fun work
is done with several API calls.
Properties
Public Enum eRegStatus
This is one of four possible values: statSuccess,
statCouldNotLoadInMemorySpace, statInvalidActiveXComponent,
statRegistrationFailed. If the RegisterComponent or
UnregisterComponent returns statSuccess then everything worked
fine. statCouldNotLoadInMemorySpace usually means the ActiveX
file you are trying to register can not be found.
Functions
Public Function RegisterComponent(sFilename As String) As eRegStatus
Call this with sFilename pointing to the fully-qualified path and
filename of an ActiveX control to register. The return value will
be one of the values discussed in eRegStatus.
Public Function UnregisterComponent(sFilename As String) As eRegStatus
Call this with sFilename pointing to the fully-qualified path and
filename of an ActiveX control to unregister. The return value
will be one of the values discussed in eRegStatus.
Sample Usage
This sample shows how to use the RegisterComponent routine in
order to more intelligently handle problems loading OCX and DLL
files. The sample tries to load a form and if an error occurs it
first assumes there was a problem loading the control(s) that it
depends on. You can add additional registrations and you might
need to be smarter about how you find the files to register. This
is beyond the scope of this issue.
Public Sub Main()
Dim frm As Object
On Error Resume Next
Set frm = New Form1
frm.Show vbModal
If E ... (cont.)
OOP and UML [C++, MFC, STL, Article, Visual C++] www.codeproject.com 21-Jun-2000 by Alex Marbus
OOP and UML
Alex Marbus
An introduction to modelling OOP design concepts with UML
Using the List Control [List Control, Article, Visual C++] www.codeproject.com 21-Jun-2000 by Matt Weagle
Using the List Control
Matt Weagle
Everything you need to know about using the standard list control in
your applications
Structure Storage: A COM way to read/write Persistent Data (using: Visual C++ 6.0) [Structure Storage, COM, Persistent Data, Article, Visual C++] www.mindcracker.com 21-Jun-2000 by Mahesh Chand
Structure Storage: A COM way to read/write Persistent Data
Mahesh Chand
21-Jun-2000
21-Jun-2000
In persistent storage, normally files are stored in the form of bytes.
A file is treated as a raw sequence of bytes. Entire file is stored in the
blocks on the disk. These blocks are scattered on the disk. When you read this
file, file system manages its pointers and return you a sequence of bytes.
COM follows a different approach to store a file and its data on the
persistent storage, called structured storage. Structure storage provides a way
by defining how to treat a file as a structured collection of objects. These
objects are storages and streams. A storage object is kind of a directory and
it can contain other storage objects and stream objects. You can think a stream
object as a file. Like a file, a stream contains data stored as a consecutive
sequence of bytes. A compound file is a combination of these two objects. COM
provides two interface to access this compound file. IStorage and IStream.
Structured storage. Why?? Ok, suppose you have a compound file which
has some text, some images and other data. Now you want to add one more object
to a file. In traditional approach, when you save the file, file system rewrite
the entire data. But structured storage approach eliminates this rewriting
process and increases the read/write performance.. The new data is written to
the next available location in permanent storage, and the storage object
updates the table of pointers it maintains to track the locations of its
storage objects and stream objects. Here are some other benefits:
Structured storage approach provides you control over separate objects.
You can read/write separate objects instead of entire compound file.
More than one user can concurrently read/write same file.
Compound file: A compound file is file which contains different types
of data saved in a structured format. A word file containing excel sheet and
cha ... (cont.)
Useful Reference Books [Project, Article, Visual C++] www.codeproject.com 20-Jun-2000 by Chris Maunder
Useful Reference Books
Chris Maunder
A list of popular reference books sent in by the readers of CodeProject
An Adaptable Property List Control [List Control, Article, Visual C++] www.codeproject.com 20-Jun-2000 by Stefan Belopotocan
An Adaptable Property List Control
Stefan Belopotocan
An object properties list control than can change based on the objects
state.
Easy Navigation Through an Editable List View [List Control, Article, Visual C++] www.codeproject.com 20-Jun-2000 by Lee Nowotny
Easy Navigation Through an Editable List View
Lee Nowotny
This article shows you how you can navigate through a multi-column,
editable list view
An Improved Analog Meter Control [Control, Article, Visual C++] www.codeproject.com 20-Jun-2000 by Mark C Malburg
An Improved Analog Meter Control
Mark C Malburg
An Analog Meter Control for displaying real-time data
Are you Cool? [Article, Delphi] delphi.about.com 20-Jun-2000
20-Jun-2000
20-Jun-2000
Are you Cool?
Make your application user interface cool with Delphi's TCoolBar
component. It's like a toolbar, except that you can place *anything* you want
on it.
Prevent Checkbox Changes
You'll often want to display a checkbox-style listbox to show users the
values they have selected in an underlying database. However, you don't want to
allow users to change the selections-that is, to change which boxes they
checked. You can't disable the listbox because that stops the user from
scrolling the list to see which items they checked. You can't use Locked,
because the listbox doesn't have a Locked property.
Here's one solution: Paint a Command button with the caption "Click to toggle
enabled property" and a listbox on a form, then change the listbox style to
1-Checkbox. Add this code:
Option Explicit
Dim mbDisabled As Boolean
Private Sub Command1_Click()
mbDisabled = Not mbDisabled
End Sub
Private Sub List1_ItemCheck(Item As Integer)
If mbDisabled Then
List1.Selected(Item) = Not List1.Selected(Item)
End If
End Sub
When mbDisabled is set to True, the changes made by the user to the listbox
selections are immediately reversed. It will appear as if the selections
haven't changed at all, and the list is still scrollable.
Creating and Destroying C++ Objects [Article, Visual C++] cplus.about.com 19-Jun-2000
19-Jun-2000
19-Jun-2000
Creating and Destroying C++ Objects
A tutorial on the basics of Object-Oriented Programming
Creating a console for your MFC app's debug output [Debugging, MFC, Article, Visual C++] www.codeproject.com 18-Jun-2000 by Matthias Steinbart
Creating a console for your MFC app's debug output
Matthias Steinbart
How to send debugging output to a console in a MFC application
CTracerST v1.0
Davide Calabro
A flexible Trace class for consistent application debug traces.
MB TipOfTheDay Control [Control, Article, Visual Basic] www.vb2themax.com 17-Jun-2000 by Marco Bellinaso
MB TipOfTheDay Control
17-Jun-2000
17-Jun-2000
Marco Bellinaso
Many commercial programs have a Tip of the Day dialog, that shows a tip
or trick whenever the application starts. With the MB TipOfTheDay Control you
can add this nice feature to your apps without writing a single line of code.
The tips are contained into a INI file, and the control uses the same file to
save the index of the current tip and other informations. (Nothing is written
in the registry.) The dialog is completely customizable in its size, colors,
fonts, the presence of a Previous button in addition to the standard Next one,
and the caption of each control, so localizing the dialog is a breeze.
Adding a search facility to your website [Active Server Pages, Article, Visual C++] www.codeproject.com 16-Jun-2000 by Chris Maunder
Adding a search facility to your website
Chris Maunder
Using the Microsoft Index Server to enable your readers to search your
site
Keyword highlighting in ASP [Active Server Pages, ASP, Article, Visual C++] www.codeproject.com 16-Jun-2000 by Konstantin Vasserman
Keyword highlighting in ASP
Konstantin Vasserman
A simple function to highlight keywords in ASP
Getting started with Borland C++ 5.5 [C++, MFC, STL, Article, Visual C++] www.codeproject.com 15-Jun-2000 by Leon Matthews
Getting started with Borland C++ 5.5
Leon Matthews
In mid-February 2000 the people responsible for Borland's C++ products
made the core of their product line available as a free download.
Creating your first Windows application [Dialog, Windows Programming, SDI, MFC, Document/View, Article, Visual C++] www.codeproject.com 15-Jun-2000 by Daniel Kopitchinski
Creating your first Windows application
Daniel Kopitchinski
A brief step-by-step tutorial that demonstrates creating an SDI based
application that does not use the MFC Document/View architecture.
A simple prototype for demonstration of Voice Communication via Network/Internet [Internet, Network, Article, Visual C++] www.codeproject.com 15-Jun-2000 by Zhaohui Xing
A simple prototype for demonstration of Voice Communication via
Network/Internet
Zhaohui Xing
Voice communication
HTTP Tunneling [Internet, Network, Article, Visual C++] www.codeproject.com 15-Jun-2000 by Alex Turc
HTTP Tunneling
Alex Turc
This article describes how to open arbitrary TCP connections through
proxy servers
Get the latest version of the Windows Common Controls library [Control, Common Control, Article, Visual C++] www.codeproject.com 15-Jun-2000 by Ravi Bhavnani
Get the latest version of the Windows Common Controls library
Ravi Bhavnani
No more worrying about which version of the library your clients
machine has
Property List Box [Article, Visual C++] www.earthweb.com 14-Jun-2000 by Noel Ramathal
Property List Box
Noel Ramathal
14-Jun-2000
14-Jun-2000
MFC CListbox-derived class that enables you to create a VB-like
Property Listbox
Another Way to Drag a Window [Article, Delphi] delphi.about.com 13-Jun-2000
13-Jun-2000
13-Jun-2000
Another Way to Drag a Window
No title bar! How can we drag such a window? It's easy and fun: let's
make a Delphi form move by clicking (and dragging) in it's client area.
Property Listbox
Noel Ramathal
MFC CListbox-derived class that enables you to create a VB-like
Property Listbox
Property List Box [Article, Visual C++] www.earthweb.com 12-Jun-2000 by Noel Ramathal
Property List Box
Noel Ramathal
12-Jun-2000
12-Jun-2000
MFC CListbox-derived class that enables you to create a VB-like
Property Listbox
Pointers and Memory [Article, Visual C++] cplus.about.com 11-Jun-2000
11-Jun-2000
11-Jun-2000
Pointers and Memory
Debugging Issues with pointers and memory
Debugging C++ [C++, Debugging, Visual C++, Book] Purchased 08-Jun-2000, $51.16
with 20% off
Nullsoft Winamp Plugin With Bitmapped UI, Docking and Restrictive Resizing [Dialog, Windows Programming, Bitmap, Article, Visual C++] www.codeproject.com 10-Jun-2000 by James Spibey
Nullsoft Winamp Plugin With Bitmapped UI, Docking and Restrictive
Resizing
James Spibey
An article discussing a Plugin for Nullsoft Winamp which looks and
behaves like the Winamp UI.
Pluggable Event Handler [Control, Event, Article, Visual C++] www.codeproject.com 10-Jun-2000 by William E Kempf
Pluggable Event Handler
William E Kempf
A plug in class that allows you to intercept and handle messages for
any window class
AVE Code Find Add-in
10-Jun-2000
10-Jun-2000
Jaroslaw Zwierz
This add-in augments the VB IDE with the capability to search a string
or a pattern across all the modules of all the projects loaded in the
environment. Better yet, all the matches are displayed in a non-modal,
hierarchical treeview control, so you can move to each occurrence by simply
double-clicking on it. All the usual search options are supported, included
search for whole words and for a regular expression. All the recent searches
are kept in an history list, and you can dock the window as you would do for
any regular IDE window. This add-in comes with fully commented source code!
Visit the author's web site at www.ave.com.pl
Windows Message Handling, Part 3 [Dialog, Windows Programming, Article, Visual C++] www.codeproject.com 09-Jun-2000 by Daniel Kopitchinski
Windows Message Handling, Part 3
Daniel Kopitchinski
Handling messages in SDK programs
A Utility to Clean Up Compiler Temp Files [Tip, File, Shell Extension, Article, Visual C++] www.codeproject.com 09-Jun-2000 by Michael Dunn
A Utility to Clean Up Compiler Temp Files
Michael Dunn
A Shell Extension that deletes compiler temp and intermediate files.
Redirect
Franky Braem
An ATL-control for redirecting stdout/stdin
CIniEx: Class with Extended ini files support [C++, MFC, STL, Memory, Article, Visual C++] www.codeproject.com 08-Jun-2000 by Oscar Kogosov
CIniEx: Class with Extended ini files support
Oscar Kogosov
Class CIniEx carries out extended set of ini-files functions in Memory
Windows Message Handling, Part 1 [Dialog, Windows Programming, Article, Visual C++] www.codeproject.com 08-Jun-2000 by Daniel Kopitchinski
Windows Message Handling, Part 1
Daniel Kopitchinski
An introduction to basic Windows messages such as WM_SIZE and WM_CLOSE,
and how to add your own handlers
Windows Message Handling, Part 2 [Dialog, Windows Programming, Article, Visual C++] www.codeproject.com 08-Jun-2000 by Daniel Kopitchinski
Windows Message Handling, Part 2
Daniel Kopitchinski
Message Maps, User defined messages and Registered Messages
Windows Message Handling, Part 4 [Dialog, Windows Programming, MFC, Article, Visual C++] www.codeproject.com 08-Jun-2000 by Daniel Kopitchinski
Windows Message Handling, Part 4
Daniel Kopitchinski
Reflected Messages, MFC and SDK Subclassing
Gradient Progress Control [Control, Progress Control, Article, Visual C++] www.codeproject.com 08-Jun-2000 by Matt Weagle
Gradient Progress Control
Matt Weagle
Subclasses the standard CProgressCtrl to allow for gradient fills.
Supports vertical progress controls as well.
Reduce the Size of Your Final EXE File [Tip, File, Article, Visual C++] www.codeproject.com 08-Jun-2000 by Rehan Nadeem
Reduce the Size of Your Final EXE File
Rehan Nadeem
This article describes ways to reduce the final size of your
applucation's EXE file.
OptimizeHTML: A tool to optimize HTML files [Tool, HTML, Article, Visual C++] www.codeproject.com 08-Jun-2000 by Paolo Messina
OptimizeHTML: A tool to optimize HTML files
Paolo Messina
A simple script to reduce the size of a HTML source
UnPatcher: a COM object for patching files [Tool, COM, Article, Visual C++] www.codeproject.com 08-Jun-2000 by Alessandro Vergani
UnPatcher: a COM object for patching files
Alessandro Vergani
An article on patching files.
Enable an MFC ActiveX Control to Self-Register [COM, DCOM, MFC, Article, Visual C++] www.codeproject.com 07-Jun-2000 by Wenfei Wu
Enable an MFC ActiveX Control to Self-Register
Wenfei Wu
A simple method that enables your MFC ActiveX Control to be
self-registering
The Grid Control (using: Visual C++ 6.0) [Project, Grid Control, MFC, ATL, Article, Visual C++] www.codeproject.com 06-Jun-2000 by Chris Maunder, Ken Bertelson, Mario Zucca, Fred Ackers
The Grid Control
Chris Maunder, Ken Bertelson, Mario Zucca, Fred Ackers
The grid is a fully featured control for displaying tabular data. There
are MFC and ATL versions that run on everything from CE to Windows 2000
The Complete Idiot's Guide to Writing Shell Extensions, Part I [Shell Programming, Shell Extension, Article, Visual C++] www.codeproject.com 06-Jun-2000 by Michael Dunn
The Complete Idiot's Guide to Writing Shell Extensions, Part I
Michael Dunn
A step-by-step tutorial on writing shell extensions
The Complete Idiot's Guide to Writing Shell Extensions, Part II [Shell Programming, Shell Extension, Article, Visual C++] www.codeproject.com 06-Jun-2000 by Michael Dunn
The Complete Idiot's Guide to Writing Shell Extensions, Part II
Michael Dunn
A tutorial on writing a shell extension that operates on multiple files
at once.
The Complete Idiot's Guide to Writing Shell Extensions, Part III [Shell Programming, Shell Extension, Article, Visual C++] www.codeproject.com 06-Jun-2000 by Michael Dunn
The Complete Idiot's Guide to Writing Shell Extensions, Part III
Michael Dunn
A tutorial on writing a shell extension that shows pop-up info for
files.
The Complete Idiot's Guide to Writing Shell Extensions, Part IV [Shell Programming, Shell Extension, Drag and Drop, Article, Visual C++] www.codeproject.com 06-Jun-2000 by Michael Dunn
The Complete Idiot's Guide to Writing Shell Extensions, Part IV
Michael Dunn
A tutorial on writing a shell extension that provides custom Drag and
Drop functionality.
The Complete Idiot's Guide to Writing Shell Extensions, Part V [Shell Programming, Shell Extension, Dialog, Article, Visual C++] www.codeproject.com 06-Jun-2000 by Michael Dunn
The Complete Idiot's Guide to Writing Shell Extensions, Part V
Michael Dunn
A tutorial on writing a shell extension that adds pages to the
properties Dialog of files.
The Complete Idiot's Guide to Writing Shell Extensions, Part VI [Shell Programming, Shell Extension, Menu, Article, Visual C++] www.codeproject.com 06-Jun-2000 by Michael Dunn
The Complete Idiot's Guide to Writing Shell Extensions, Part VI
Michael Dunn
A tutorial on writing a shell extension that can be used on the Send To
Menu.
Birth, Life and Death of a Form [Article, Delphi] delphi.about.com 06-Jun-2000
06-Jun-2000
06-Jun-2000
Birth, Life and Death of a Form
Delphi For Beginners: Examining the life cycle of a Form - the central
element of development in Delphi. See what's happening behind events OnCreate,
OnActivate, OnShow, OnClose...
Programming Industrial Strength Windows [C++, Windows Programming, Book] Purchased 02-Jun-2000, $69.95
Standard Template Library [Article, Visual C++] cplus.about.com 05-Jun-2000
05-Jun-2000
05-Jun-2000
Standard Template Library
Learn about STL or the Standard Template Library
A handy keyobard shortcut for "Double Click" on VC6 IDE [Macro, Add-in, Article, Visual C++] www.codeproject.com 04-Jun-2000 by Alberto Gattegno
A handy keyobard shortcut for "Double Click" on VC6 IDE
Alberto Gattegno
Mark a word in VC6 without leaving the keyboard to double click with
the mouse.
Adding Hyperlink support to the MFC Grid Control [Control, MFC, Grid Control, Article, Visual C++] www.codeproject.com 04-Jun-2000 by Fred Ackers, Chris Maunder
Adding Hyperlink support to the MFC Grid Control
Fred Ackers and Chris Maunder
A new class that adds hyperlink support to the MFC Grid Control
Printing and Print Preview OpenGL with MFC [OpenGL, Print Preview, MFC, Article, Visual C++] www.codeproject.com 04-Jun-2000 by Wenfei Wu
Printing and Print Preview OpenGL with MFC
Wenfei Wu
Using DIB section to print OpenGL with good resolution.
Text Only Status Bar [Status Bar, Article, Visual C++] www.codeproject.com 04-Jun-2000 by Farhan Noor Qureshi
Text Only Status Bar
Farhan Noor Qureshi
An easy to use and implement Text Only Status Bar with Tool tip text
extracted from the status bar panes.
A Color Picker For Your Desktop or Internet Explorer Window [Tool, Color, Explorer, Internet Explorer, Article, Visual C++] www.codeproject.com 04-Jun-2000 by Erik Thompson
A Color Picker For Your Desktop or Internet Explorer Window
Erik Thompson
A Color Picker that sits in Internet Explorer or on the Desktop,
Requires IE4+
VCMake Script
Kinook Software
Script for automating Visual C++ builds
Changing your Monitor's refresh rate [Win32, SDK Programming, Monitor, Article, Visual C++] www.codeproject.com 04-Jun-2000 by Dan Pilat
Changing your Monitor's refresh rate
Dan Pilat
This article will show you how to change your monitor's refresh rate to
a value not available from control panel.
Handle Application Crashes Better
Shane Hyde
A method of getting more details about application crashes.
Time is the Simplest Thing... [System, Time, Article, Visual C++] www.codeproject.com 03-Jun-2000 by Joseph M Newcomer
Time is the Simplest Thing...
Joseph M Newcomer
Explains misconceptions about timing in Windows.
MB Tray Control [Tray, Control, System Tray, Article, Visual Basic] www.vb2themax.com 03-Jun-2000 by Marco Bellinaso
MB Tray Control
3-Jun-2000
3-Jun-2000
Marco Bellinaso
This control lets you place an icon in the System Tray area and
associate it to your application. The icon can be static or animated, if you
specify a series of frames. The control has a ToolTip property and you can also
flash the icon with a used defined speed. The MB Tray Control exposes all the
standard mouse events for displaying a menu or taking a default action when the
user click or double click the icon in the system tray.
WTL Documented [Windows Template Library, WTL, Article, Visual C++] www.codeproject.com 02-Jun-2000 by Ben Burnett
WTL Documented
Ben Burnett
Beginning Documentation on WTL
CreateAssociation .... How to associate a Visual Basic program application extension in the registry [File Association, Registry, Visual Basic, VB Code Module] www.vbnet.com 01-Jun-2000 by Paul Clement
An oft-asked newsgroup question is how to associate a Visual Basic program
application extension in the registry. Thanks to an newsgroup example provided
by Paul Clement, this marks the first in the registry series of VBnet code
examples.
The illustrations show the two registry keys that need to be created and filled
in order to have a given file extension associated with your project. The
actual routine to create the association is only around 10 lines .. most of the
code below is comments. The first step is to create the extension identifier
(in this code example the extension '.xxx', and add to it a pointer to the file
type. Next, you create the file type item itself, and under it add the desired
shell commands to execute for different actions (open, print, etc).
The code creates the MyApp.Document type, associates it with the extension
.xxx, and adds an Open command to the shell section. Once you've run the demo
code here, create or save a text file with the extension .xxx, or use the test
file included in this compiled VB5 test app (6k) to test the passing of the
associated .xxx file via the command line.
Kylix: The Real Lowdown [Kylix, Linux, Article, Delphi] Delphi Developer 01-Jun-2000, vol. 6, no. 6 by Jeroen Pluimers
Kylix: The Real Lowdown
Jeroen Pluimers
Kylix is the Borland/Inprise port of Delphi, C++ Builder, the IDE, and
component library to Linux. It's one of the most exciting things to happen in
the Delphi world in a long time. In our continuing effort to keep you abreast
of every detail, Jeroen Pluimers walks you through some of the most exciting
features of this new environment.
Displaying Properties [Property Editor, Object Inspector, Article, Delphi] Delphi Developer 01-Jun-2000, vol. 6, no. 6 by Keith Wood
Displaying Properties
Keith Wood
One of the new features of Delphi 5 is the ability to add extensions to
the Property Editor classes to allow for graphical displays within the Object
Inspector. In this article, you'll discover how this can be implemented by
building property editors to jazz up your Font and Boolean properties.
Reviewing Database Design Studio [Database Design Studio, Database Design, Article, Delphi] Delphi Developer 01-Jun-2000, vol. 6, no. 6 by Kevin Collins
Reviewing Database Design Studio
Kevin Collins
When you begin a new application, one of the first tasks is the
Database Design: deciding which fields to store, which relationships to use,
which data would be redundant, which constraints you need, and so on. This task
can be quite tedious, and it's easy to overlook basic functionality provided by
the DBMS, such as foreign key constraints and cascade deletions. In this
article, Kevin Collins discusses a great tool to ease this process named
Database Design Studio, which is now available from Chilli Source
(www.ChilliSource.com).
Checking on NT Services (using: Windows NT 4.0, Delphi 5.0) [Services, Windows NT, Article, Delphi, TListView] Delphi Developer 01-Jun-2000, vol. 6, no. 6 by Mark Meyer
Checking on NT Services
Mark Meyer
Is there a way to see if a certain service was installed in Windows
NT? And if so, is there a way to ascertain the status of that service? For
example, you might want to make sure that a service installed by Microsoft SQL
Server 7 is running. Mark Meyer shows you how.
Good example of a simple TListView (in report view) to display the services,
long names and statuses.
Get the Cursor's Line Number in a TMemo [Cursor, TMemo, Article, Delphi] Delphi Developer 01-Jun-2000, vol. 6, no. 6 by Narasim Kasaru
Get the Cursor's Line Number in a TMemo
Narasim Kasaru
Extending Explorer Folder Views by Customizing Hypertext Templates [Explorer, Folder, HTML, ActiveX Control, Shell, Shell Extension, Visual C++, Windows NT, Article] MSDN Magazine 01-Jun-2000, vol. 15, no. 6 by Dino Esposito
Extending Explorer Folder Views by Customizing Hypertext Templates
This article shows you how the Explorer Web view works and how to build
your own custom templates for it. You’ll see how to add a command prompt and
task buttons to a new folder view using HTML, script, and ActiveX Controls. The
Shell object model and thumbnail Shell Extensions are also examined, then used
to build a simple icon viewer for Explorer.
Dino Esposito
Putting a Secure Front End on Your COM+ Distributed Applications [COM+, Distributed Application, Digital Certificate, Key Encryption, Secure Sockets Layer, Web Certificate, Internet Information Server, IIS, ISAPI, Windows NT, Article] MSDN Magazine 01-Jun-2000, vol. 15, no. 6 by Keith Brown
Putting a Secure Front End on Your COM+ Distributed Applications
This article covers the options, from Digital Certificates to public
and private Key Encryption to Secure Sockets Layer and Web Certificates. The
discussion covers the installation of certificates in Microsoft Internet
Information Services along with other options specific to IIS.
Keith Brown
Send Microsoft Exchange Appointment Reminders to Your Pager Using Collaboration Data Objects [Exchange, Pager, Collaboration Data Object, CDO, Visual Basic, Article] MSDN Magazine 01-Jun-2000, vol. 15, no. 6 by Sean McCormick
Send Microsoft Exchange Appointment Reminders to Your Pager Using
Collaboration Data Objects
This article explains how CDO enables you to access Exchange services,
then walks you through a sample application that reads calendar events from an
Exchange server and sends pager reminders to your users.
Sean McCormick
Wireless Internet Database Connectivity with ASP, XML, and SQL Server [Wireless, Internet, Database Connectivity, ASP, XML, SQL Server, Visual Basic, Article] MSDN Magazine 01-Jun-2000, vol. 15, no. 6 by Srdjan Vujosevic, Robert Laberge
Wireless Internet Database Connectivity with ASP, XML, and SQL Server
This article outlines the services and equipment currently available to
support wireless Web access. A sample wireless-accessible Web site that
dynamically draws data from a SQL Server database back end in real time is
created using tools such as ASP and XML.
Srdjan Vujosevic
and
Robert Laberge
Convert Your Microsoft Access-based Application to Take Advantage of SQL Server 7.0 [Jet, Access, Stored Procedure, Visual Basic, SQL Server, Article] MSDN Magazine 01-Jun-2000, vol. 15, no. 6 by Michael McManus
Convert Your Microsoft Access-based Application to Take Advantage of
SQL Server 7.0
Using some concrete code examples, this article takes you step by step
through converting the native Jet queries in your Access application into
Stored Procedures and pass-through queries that SQL Server can use. You’ll also
learn how to pass on parameters when your client-server app calls these SQL
Server stored procedures and queries.
Michael McManus
Switch focus between frames [Frame, HTML, DHTML, Internet Explorer, Article] MSDN Magazine 01-Jun-2000, vol. 15, no. 6 by Robert Hess
Switch focus between frames
Robert Hess
Connect a Web page to a Database [Database, VBScript, Article] MSDN Magazine 01-Jun-2000, vol. 15, no. 6 by Robert Hess
Connect a Web page to a Database
Robert Hess
Creating and optimizing performance for XML document/view Web apps [XML, HTML, DHTML, Internet Explorer, Article] MSDN Magazine 01-Jun-2000, vol. 15, no. 6 by Dino Esposito
Creating and optimizing performance for XML document/view Web apps
Dino Esposito
Designing apps using Visual Modeler in Visual Basic [Visual Modeler, Visual Basic, Article] MSDN Magazine 01-Jun-2000, vol. 15, no. 6 by Ken Spencer
Designing apps using Visual Modeler in Visual Basic
Ken Spencer
Transactional programming design and optimization [Article, Visual C++] MSDN Magazine 01-Jun-2000, vol. 15, no. 6 by Jason Masterman
Transactional programming design and optimization
Jason Masterman
Creating sophisticated tabbed views with CTabView and the TabDemo app [CTabView Class, MFC, Visual C++, Article] MSDN Magazine 01-Jun-2000, vol. 15, no. 6 by Jeff Prosise
Creating sophisticated tabbed views with CTabView and the TabDemo app
Jeff Prosise
Tester, take two. TESTREC.EXE updates previous version of Tester utility [Article, Visual C++, Visual Basic] MSDN Magazine 01-Jun-2000, vol. 15, no. 6 by John Robbins
Tester, take two. TESTREC.EXE updates previous version of Tester utility
John Robbins
Add Scripting to your apps with Microsoft Script Control [Scripting, Microsoft Script Control, Visual C++, Article] MSDN Magazine 01-Jun-2000, vol. 15, no. 6 by George Shepherd
Add Scripting to your apps with Microsoft Script Control
George Shepherd
Inline Virtual Functions: how does C++ handle them [Inline Virtual Function, C++, Visual C++, Article] MSDN Magazine 01-Jun-2000, vol. 15, no. 6 by Paul DiLascia
Inline Virtual Functions: how does C++ handle them
Paul DiLascia
DynPrompt sample app: dynmically changing the Tooltip/Statusbar text [Tooltip, Statusbar, Menu, Visual C++, Article] MSDN Magazine 01-Jun-2000, vol. 15, no. 6 by Paul DiLascia
DynPrompt sample app: dynmically changing the Tooltip/Statusbar text
Paul DiLascia
CTabView .... Creating sophisticated tabbed views with CTabView which is derived from CCtrlView [Article, CCtrlView, Document/View, MFC, MFC Class, Visual C++] MSDN Magazine 01-Jun-2000, vol. 15, no. 6, page 115 by Jeff Prosise
Creating sophisticated tabbed views with CTabView and the TabDemo app
Jeff Prosise
Use this class in an MFC doc/view app.
To use CTabView:
Create a standard doc/view app.
Reference the header fie for the class where necessary.
Create a dialog resource for each page.
Add a WM_CREATE handler to your derived class.
Call the AddPage() member function in OnCreate().
Helpfile Generation Tool [Help, WinHelp, Windows NT, Article] Windows Developer's Journal 01-Jun-2000, vol. 11, no. 6 by Kurt Jung
Helpfile Generation Tool
Kurt Jung
WinHelp files for applications (and all their associated IDs) can be a
pain to create and maintain. Here’s an Awk script that eliminates much of the
tedious detail work.
ISAPI Extension Debugging Tool [ISAPI, Debugging, Visual C++, Article] Windows Developer's Journal 01-Jun-2000, vol. 11, no. 6 by Sven B Schreiber
ISAPI Extension Debugging Tool
Sven B Schreiber
An ISAPI extension is a DLL that Microsoft’s server loads and
communicates with. That can complicate the debugging of these modules. This
article provides a debugging framework that creates a simplified environment
for loading and debugging your ISAPI extension DLL.
Using RGB Colors with DirectDraw [RGB, DirectDraw, Visual C++, Article] Windows Developer's Journal 01-Jun-2000, vol. 11, no. 6 by Fran Heeran
Using RGB Colors with DirectDraw
Fran Heeran
A reusable function to provide a device-dependent RGB value.
Visual Studio Macro for Adding _T() to Strings [Macro, _T, String, Unicode, Visual C++, Article] Windows Developer's Journal 01-Jun-2000, vol. 11, no. 6 by Orin Walker
Visual Studio Macro for Adding _T() to Strings
Orin Walker
Here’s a macro to automate part of the tedious process of converting
old code to use the Unicode macros.
Hardware Profiles for Safe Driver Development [Profile, Driver, Visual C++, Article] Windows Developer's Journal 01-Jun-2000, vol. 11, no. 6 by Louis Joubert
Hardware Profiles for Safe Driver Development
Louis Joubert
An unbootable system is an ever present danger for driver developers,
but this tip can help you avoid that fate.
Retrieving the Pentium III Serial Number [Serial Number, Pentium, Visual C++, Article] Windows Developer's Journal 01-Jun-2000, vol. 11, no. 6 by Chris Branch
Retrieving the Pentium III Serial Number
Chris Branch
A reusable function for obtaining the new Pentium serial number (if
your processor supports it), using either VC++ or Borland C++.
Understanding NT: Right Number of Threads [Thread, Context Switching, Thread Pool, Windows NT, Article] Windows Developer's Journal 01-Jun-2000, vol. 11, no. 6 by Paula Tomlinson
Understanding NT: Right Number of Threads
Paula Tomlinson
Using too many threads for a given problem means you waste time on
thread Context Switching. NT’s I/O completion ports provided help in keeping
the 'right' number of threads running, and now Windows 2000 enhances that
support with Thread Pools.
Loading Small Icons from Active Document Servers [Icon, Active Document Server, Visual C++, Article] Windows Developer's Journal 01-Jun-2000, vol. 11, no. 6 by Daniel Pilat
Loading Small Icons from Active Document Servers
Daniel Pilat
How to make a client frame window obtain its icon from the server.
Enumerating Shell ID Lists [Enumerating, Shell, Visual C++, Article] Windows Developer's Journal 01-Jun-2000, vol. 11, no. 6 by Daniel Pilat
Enumerating Shell ID Lists
Daniel Pilat
A class for enumerating in the shell’s namespace.
Window Animation and Window Positioning [Animation, Positioning, Visual C++, Article] Windows Developer's Journal 01-Jun-2000, vol. 11, no. 6 by Petter Hesselberg
Window Animation and Window Positioning
Petter Hesselberg
One aspect of the user interface you probably don’t think much about is
window creation windows just appear, right? However, how they appear can give
the user visual feedback about what caused them to appear, and where they
appear on the screen can also affect usability. This column looks at window
animation and window positioning.
VC++ 6 just won’t compile the function if it’s defined separately [Bug, Visual C++, Article] Windows Developer's Journal 01-Jun-2000, vol. 11, no. 6 by Ron Burk
VC++ 6 just won’t compile the function if it’s defined separately
Ron Burk
You can define and declare a function at the same time, or declare a
function and then define it later. Either way should produce the same code, but
reader Karlton Zeitz demonstrates a case where VC++ 6 just won’t compile the
function if it’s defined separately.
Manage vptr Overload With Tear-Off Interfaces [vptr, Tear-off Interface, Interface, Article, Visual C++] Visual C++ Developers Journal 01-Jun-2000, vol. 3, no. 5 by George Shepherd
Manage vptr Overload With Tear-Off Interfaces
George Shepherd
Sometimes your object has to make a set of objects available—even if
they aren't used frequently. Learn how to use tear-off interfaces to accomplish
this.
Pragmas, Linker Options [Pragma, Linker Option, Article, Visual C++] Visual C++ Developers Journal 01-Jun-2000, vol. 3, no. 5 by Andy Harding
Pragmas, Linker Options
Andy Harding
Figure out how to debug a Win32 console app, use the comment pragma.
Create Your Own ATL Object Wizard [ATL Object Wizard, ATL, Object Wizard, Wizard, Article, Visual C++] Visual C++ Developers Journal 01-Jun-2000, vol. 3, no. 5 by Richard Grimes
Create Your Own ATL Object Wizard
Richard Grimes
By creating your own ATL Object Wizard, you can streamline your
development efforts and customize objects you use most often.
Extract ODBC-Based Data [ODBC, DBMS, Data Extraction, Article, Visual C++] Visual C++ Developers Journal 01-Jun-2000, vol. 3, no. 5 by Tom Creighton
Extract ODBC-Based Data
Tom Creighton
Do you repeatedly move data from one DBMS to another, or pull out data
for backup? Follow the expert advice of our Black Belt columnist as he
demonstrates how to build a utility for speedy Data Extraction.
Create COM+ Business Objects With ADO Recordsets [COM+, Business Object, ADO, Recordset, Article, Visual C++] Visual C++ Developers Journal 01-Jun-2000, vol. 3, no. 5 by Alan Gordon
Create COM+ Business Objects With ADO Recordsets
Alan Gordon
ADO Recordsets provide a simple object type that holds and manipulates
tabular or relational data records. Use VC++ to create COM+ objects that use
ADO Recordsets as input or return values.
Monitor System State With SENS [Monitor, SENS, COM+, Event, System Event Notification Service, Article, Visual C++] Visual C++ Developers Journal 01-Jun-2000, vol. 3, no. 5 by Jim Beveridge
Monitor System State With SENS
Jim Beveridge
Want to notify your app of relevant events? Find out what's happening
on the user's desktop by using COM+ Events to subscribe to the System Event
Notification Service (SENS).
Save Time With Software Patterns [Pattern, Singleton Pattern, Article, Visual C++] Visual C++ Developers Journal 01-Jun-2000, vol. 3, no. 5 by Muaz Niazi
Save Time With Software Patterns
Muaz Niazi
You probably hear the buzzword 'patterns' dart around the
object-oriented world, but might not know how to put these patterns to
practical use. Find out how the Singleton Pattern can speed your coding.
Working With the STL: STL Containers, Iterators, and Algorithms [STL, Container, Iterator, Algorithm, Article, Visual C++] Visual C++ Developers Journal 01-Jun-2000, vol. 3, no. 5 by Bill Wagner
Working With the STL: STL Containers, Iterators, and Algorithms
Bill Wagner
Continue your Standard Template Library education by learning to use
STL containers, iterators, and algorithms.
A Snowball's Chance for DLL Hell [DLL, Article, Visual Basic] Visual Basic Programmer's Journal 01-Jun-2000, vol. 10, no. 7 by Jim Deutch
A Snowball's Chance for DLL Hell
Jim Deutch
What do you do if your program fails on some users' machines? Learn how
to troubleshoot and fix DLL incompatibility problems to restore your program to
working order.
Draw Bitmaps on Device Contexts [Bitmap, Device Context, Article, Visual Basic] Visual Basic Programmer's Journal 01-Jun-2000, vol. 10, no. 7 by Karl E Peterson
Draw Bitmaps on Device Contexts
Karl E Peterson
Learn the skill of drawing on memory-based device contexts.
Show Oversized Listbox Data [Listbox Control, Article, Visual Basic] Visual Basic Programmer's Journal 01-Jun-2000, vol. 10, no. 7 by Karl E Peterson
Show Oversized Listbox Data
Karl E Peterson
How to show oversized listbox data.
Format a Floppy Disk From Code [Format, Floppy Disk, Win32 API, Article, Visual Basic] Visual Basic Programmer's Journal 01-Jun-2000, vol. 10, no. 7 by John M Calvert
Format a Floppy Disk From Code
John M Calvert
Formatting a floppy drive from code should be easy, but it's not. Learn
how using some Win32 API calls.
Build Hierarchical Recordsets Easily
Brad Freels
Data shaping with VB6 and ADO 2.x is the key to simplifying
master/detail Database relationships. Use it to improve application performance.
Search Tool Add-in To Do Regular Expression Searches [Search, Add-in, Regular Expression, Article, Visual Basic] Visual Basic Programmer's Journal 01-Jun-2000, vol. 10, no. 7 by Tade Oyebode
Search Tool Add-in To Do Regular Expression Searches
Tade Oyebode
VB6 doesn't support searches across project groups, but fortunately you
can use its extensibility model to make up for this shortcoming. Learn how to
build a search tool add-in to do regular expression searches.
Make the Machine Understand [Interpreter, Compiler, Article, Visual Basic] Visual Basic Programmer's Journal 01-Jun-2000, vol. 10, no. 7 by Dan O'Day
Make the Machine Understand
Dan O'Day
Interpreters and Compilers go about the same job, but in different
ways. It's all about producing machine-level language.
Maintain Null Values [Null Value, Data Integrity, N-tier, Article, Visual Basic] Visual Basic Programmer's Journal 01-Jun-2000, vol. 10, no. 7 by Eric Litwin
Maintain Null Values
Eric Litwin
Ensure Data Integrity in your applications by learning how to maintain
Null values in all layers of an N-tier application.
Develop an Autobuild Process [Article, Visual Basic] Visual Basic Programmer's Journal 01-Jun-2000, vol. 10, no. 7 by Dave Summer
Develop an Autobuild Process
Dave Summer
Take control of your code by implementing an automatic build process.
Search With Soundex [Search, Soundex, Article, Visual Basic] Visual Basic Programmer's Journal 01-Jun-2000, vol. 10, no. 7 by Stan Schultes
Search With Soundex
Stan Schultes
Help your users find data in your apps and liberate them from exact
matches by creating Soundex codes, a sounds-like search tool.
Use Design Patterns to Create Objects [Design Pattern, Factory Method, Polymorphic Collection, Article, Visual Basic] Visual Basic Programmer's Journal 01-Jun-2000, vol. 10, no. 7 by William Wen
Use Design Patterns to Create Objects
William Wen
Learn how the Factory Method design pattern helps solve object creation
issues. Also, learn how to extend this factory method into a Polymorphic
Collection.
Reduce DLL Hell in Windows 2000 [DLL, Windows NT, Article, Visual Basic] Visual Basic Programmer's Journal 01-Jun-2000, vol. 10, no. 7 by Michiel de Bruijn
Reduce DLL Hell in Windows 2000
Michiel de Bruijn
New features in Windows 2000 can reduce DLL Hell versioning problems to
DLL purgatory. They won't solve every problem - and they might even introduce a
few new ones - but they're a good start.
Access SQL Server Metadata [SQL Server, Metadata, Database, System Table, System Stored Procedure, Article, Visual Basic] Visual Basic Programmer's Journal 01-Jun-2000, vol. 10, no. 7 by Dianne Siebold
Access SQL Server Metadata
Dianne Siebold
Looking for a way to store and access information about your Database
and database objects? Take advantage of SQL Server's System Tables and System
Stored Procedures.
Create Persistent Objects With XML [Persistent Object, XML, Web, Property Let Procedure, Property Get Procedure, Article, Visual Basic] Visual Basic Programmer's Journal 01-Jun-2000, vol. 10, no. 7 by A Russell Jones
Create Persistent Objects With XML
A Russell Jones
You can persist and create objects for the Web using XML in ways you
can't with VB. Explore how by creating Property Let and Property Get procedures.
Creating Temporary Files Using GetTempFileName (using: Visual Basic 6.0) [File, GetTempFileName(), GetTempPath(), Visual Basic, Tip] www.vbnet.com 01-Jun-2000 by Randy Birch
Palm Conduits: Part I [Palm Conduit, Article, Delphi] Delphi Informant 01-Jun-2000, vol. 6, no. 6 by Ron Loewy
Palm Conduits: Part I
Ron Loewy
Mr Loewy explains Palm applications, the databases they use, and how to
exchange information between Palm and PC, preparing the ground for the sample
conduit application presented in Part II.
Augmenting a Control [VCL, Article, Delphi] Delphi Informant 01-Jun-2000, vol. 6, no. 6 by Ken Revak
Augmenting a Control
Ken Revak
Mr Revak demonstrates and compares the relative merits of four
approaches to extending native VCL objects: procedural, Windows message-based,
introspection, and via Delphi interfaces.
Exploiting SQL Server 7 DMO: Part I [Distributed Management Objects, SQL-DMO, Database, SQL Server, Article, Delphi] Delphi Informant 01-Jun-2000, vol. 6, no. 6 by Jason Perry
Exploiting SQL Server 7 DMO: Part I
Jason Perry
Sharing impressive applications, Mr Perry begins a two-part series that
demonstrates using Microsoft SQL Server 7 Distributed Management Objects
(SQL-DMO) to develop Database management tools.
Manipulating Events [Event, Method, TMethod, Article, Delphi] Delphi Informant 01-Jun-2000, vol. 6, no. 6 by Jeremy Merrill
Manipulating Events
Jeremy Merrill
Manipulating Method properties by typecasting them as TMethod affords
us with some interesting capabilities, and can provide increased power and
flexibility to an application, as Mr Merrill explains.
Waking from Threadmare [Thread, Article, Delphi] Delphi Informant 01-Jun-2000, vol. 6, no. 6 by Nikolai Sklobovsky
Waking from Threadmare
Nikolai Sklobovsky
Mr Sklobovsky shares a robust, reliable, comprehensive, and relatively
simple approach to multi-threaded programming. Even veterans of multi-threaded
development will benefit from his insights.
The Self-Organizing Neural Network [Neural Network, Article, Visual C++] C++ Users Journal 01-Jun-2000 by Joey Rogers
The Self-Organizing Neural Network
Joey Rogers
People can learn even when they don’t know what they’re being taught.
So can neural nets.
A Reusable Nonlinear System Solver, Part 1 [Newton-Raphson Method, Article, Visual C++] C++ Users Journal 01-Jun-2000 by Michael L Perry
A Reusable Nonlinear System Solver, Part 1
Michael L Perry
C++ lets you encapsulate the Newton-Raphson Method for solving
equations without obscuring the underlying physical problem to be solved.
Combining Boyer-Moore String Search with Regular Expressions [Boyer-Moore String Search, Regular Expression, String, Article, Visual C++] C++ Users Journal 01-Jun-2000 by David Berry
Combining Boyer-Moore String Search with Regular Expressions
David Berry
Some text searches are fast and some are flexible. This one is both.
The Double Metaphone Search Algorithm [Article, Visual C++] C++ Users Journal 01-Jun-2000 by Lawrence Philips
The Double Metaphone Search Algorithm
Lawrence Philips
Computer vision is a broad and deep topic, but computer hearing is no
breeze either, particularly when trying to recognize surnames.
Safe and Economical Reference Counting in C++ [Reference Count, Smart Pointer, Article, Visual C++] C++ Users Journal 01-Jun-2000 by Vladimir Batov
Safe and Economical Reference Counting in C++
Vladimir Batov
Smart Pointers keep getting smarter.
Generic Extensions to the STL [STL, Article, Visual C++] C++ Users Journal 01-Jun-2000 by Thomas Becker
Generic Extensions to the STL
Thomas Becker
STL is a pretty complete set of tinker toys, but you can always find a
few more good ones to add.
Java Strings [Java, String, Article, Visual C++] C++ Users Journal 01-Jun-2000 by Chuck Allison
Chuck Allison
Java Strings
Every language lets you manipulate text to some degree. Java is
stronger in this regard than most.
Floating Point Basics [Floating Point, Article, Visual C++] C++ Users Journal 01-Jun-2000 by Pete Becker
Pete Becker
Floating Point Basics
You can’t overcome a fear of floating-point arithmetic - or complacency
about it - until you understand what’s going on.
Search for a File in a Directory Tree Using the Imagehlp DLL (using: Visual Basic 6.0) [Directory, File, IMAGEHLP.DLL, SearchTreeForFile(), Visual Basic, Tip] www.vb2themax.com 31-May-2000
Search for a File in a Directory Tree Using the Imagehlp DLL
------------------------------------------------
You can search for a file in all the subdirectories of a given drive with VB
using a recursive routine based on the Dir$ function, the FileSystemObject
component, or the FindFirstFile/FindNextFile API functions. There is a fourth
way you might want to try, based on the SearchTreeForFile function embedded in
the ImageHlp DLL. The great thing about this function is that you don't need
any recursion:
Private Declare Function SearchTreeForFile Lib "imagehlp.dll" (ByVal sRootPath
As String, ByVal InputPathName As String, ByVal OutputPathBuffer As String) As
Boolean
' search a file on directory subtree
'
' returns the complete path+name of the filename
' or a null string if the filename hasn't been found
' only the first occurrence of the file is returned
'
' ROOTDIR can be a drive root dir (e.g. "C:\") or a subdir ("C:\DOCS")
Function SearchFileInDirTree(ByVal rootDir As String, ByVal Filename As String)
As String
' this is the max length for a filename
Dim buffer As String * 260
If SearchTreeForFile(rootDir, Filename, buffer) Then
' a non-zero return value means success
SearchFileInDirTree = Left$(buffer, InStr(buffer, vbNullChar) - 1)
End If
End Function
*Note that when you use the SearchTreeForFile API function, your program must
wait until the file is found or the entire hard disk has been scanned. For this
reason, you might want to display a warning to the end user, explaining that
the search might take a long time. This routine is especially useful to quickly
scan a smaller directory subtree, rather than an entire drive.
IPCONFIG displays the IP address, subnet mask and default gateway
for each adapter bound to TCP/IP. (using: Windows NT 4.0) [IP Address, TCP/IP, IP, IPCONFIG, Windows NT, Tip] www.microsoft.com 31-May-2000
The following information is a sample of the output from the Ipconfig tool:
Windows NT IP Configuration
Host Name . . . . . . . . . : MYPC
DNS Servers . . . . . . . . :
Node Type . . . . . . . . . : Mixed
NetBIOS Scope ID. . . . . . :
IP Routing Enabled. . . . . : No
WINS Proxy Enabled. . . . . : No
NetBIOS Resolution Uses DNS : No
Ethernet adapter Elnk31:
Description . . . . . . . . : ELNK3 Ethernet Adapter.
Physical Address. . . . . . : 00-C0-4F-D7-DB-91
DHCP Enabled. . . . . . . . : Yes
IP Address. . . . . . . . . : 100.50.84.54
Subnet Mask . . . . . . . . : 255.255.248.0
Default Gateway . . . . . . : 100.50.80.1
DHCP Server . . . . . . . . : 100.50.40.9
Primary WINS Server . . . . : 100.50.16.153
Secondary WINS Server . . . : 100.50.16.155
Lease Obtained. . . . . . . : Friday, January 10, 1997 7:29:32 AM
Lease Expires . . . . . . . : Wednesday, January 29, 1997 7:29:32 AM
How to call the EnumServicesStatus() API on Windows NT 4.0 (SP3) or Windows 2000 from Visual Basic (using: Visual Basic 6.0) [EnumServicesStatus(), Services, Windows NT, Visual Basic, Tip] www.microsoft.com 31-May-2000 by Marshall Brain
This article demonstrates how to call the EnumServicesStatus API on Windows NT
4.0 (SP3) or Windows 2000 from Visual Basic. The EnumServicesStatus function
enumerates services in the specified service control manager database. The name
and status of each service is retrieved.
Step-by-Step Instructions
1 Create a new Standard EXE project in Visual Basic, Project1. Form1 is created
by default.
2 Place two command buttons and two list boxes on Form1 and place the following
code in Form1's code window:
Private Sub Command1_Click()
'Getting only the active services
GetServiceInfo SERVICE_ACTIVE
End Sub
Private Sub Command2_Click()
'Getting all services registered
GetServiceInfo SERVICE_ACTIVE Or SERVICE_INACTIVE
End Sub
Private Sub Form_Load()
Command1.Caption = "Active Services"
Command2.Caption = "All Registered Services"
End Sub
3 Add a standard module (Module1) to Project1 and place the following code in
Module1.
'****************** MODULE1 CODE **********************
'UDTs
'*******************************************************
Type SERVICE_STATUS
dwServiceType As Long
dwCurrentState As Long
dwControlsAccepted As Long
dwWin32ExitCode As Long
dwServiceSpecificExitCode As Long
dwCheckPoint As Long
dwWaitHint As Long
End Type
Type ENUM_SERVICE_STATUS
lpServiceName As Long
lpDisplayName As Long
ServiceStatus As SERVICE_STATUS
End Type
'*******************************************************
'Constants
'*******************************************************
Public Const ERROR_MORE_DATA = 234
Public Const SERVICE_ACTIVE = &H1
Public Const SERVICE_INACTIVE = &H2
Public Const SC_MANAGER_ENUMERATE_SERVICE = &H4
Public Const SERVICE_WIN32_OWN_PROCESS As Long = &H10
... (cont.)
Thread Synchronization Classes [Thread, Process, Inteprocess Communication, Article, Visual C++] www.codeproject.com 30-May-2000 by Zoran M Todorovic
Thread Synchronization Classes
Zoran M Todorovic
Implements a set of classes for thread synchronization.
The Time has Come: Members Area [Article, Delphi] delphi.about.com 30-May-2000
30-May-2000
30-May-2000
The Time has Come: Members Area
Finally, Delphi Programming site gives You the chance to show the World
what you have made with Delphi.
Using the File System controls [Article, Visual Basic] visualbasic.about.com 29-May-2000
29-May-2000
29-May-2000
Using the File System controls
Do you want to code your own customised open and save dialog boxes?
Your Visual Basic Guide shows you how, with help from the VB file system
controls!
basAssociations .... How to retrieve the executable name for any file [Association, FindExecutable(), Visual Basic, VB Code Module] www.codeoftheweek.com 28-May-2000, no. 123
Requirements
Visual Basic 4.0 32-bit or higher.
In this issue we discuss how to retrieve the executable name for
any file.
If you have any questions about using this module, let us know at
questions@codeoftheweek.com
basAssociations
This module makes it easy to get the executable associated with a
particular extension. This routine is most useful for
applications that have to launch filenames by their extensions.
One great use for this function is to automatically launch a
browser based on a particular HTML file that might exist in your
application. It could also be used to intelligently use the
existing file viewers/editors already installed on a users machine
(such as looking for the default editor for the DOC extension).
Functions
Public Function FindAssociation(sFilename As String, Optional bWithParams As
Boolean = False) As String
This routine does all the work of calling the FindExecutable API
call to determine the program/executable associated with the
extension specified in sFilename. This function requires the file
to exist to determine the executable name. The bWithParams is an
optional parameter that allows you to control what kind of data
gets returned. If bWithParams is not specified or False only the
executable path and filename will be returned. If it is True then
any additional parameters or command line information will be
returned. Typically the full executable filename along with any
startup parameters and the file to launch will be returned as a
single string.
NOTE: The FindExecutable API call seems to have a problem
returning the full parameters when there is a space (blank
character) in the executable filename. Use the bWithParams with
caution in this case.
Public Function ReverseInstr(sStringToSearch As String, _
sStringToFind As String, _
Optional Compare As VbCompareMethod =
vbBinaryCompare) As Long
See Issue #61 for details -
http://www.codeoftheweek ... (cont.)
DevStudioObjects.dsm .... Take a snapshot of the entire Developer Studio object hierarchy [Developer Studio, Macro, Visual C++, Visual Studio, VC++ Add-in, Visual Studio Macro] www.worldofatl.com 28-May-2000 by Alex Stockton
This file contains a single macro, which takes a snapshot of the entire
Developer Studio object hierarchy whenever it is run. All the objects and
properties available to Developer Studio, along with their current values, are
displayed in a newly created text file.
DevStudioEvents.dsm .... Simple event handlers for every event available in Developer Studio [Developer Studio, Macro, Visual C++, Visual Studio, VC++ Add-in, Visual Studio Macro] www.worldofatl.com 28-May-2000 by Alex Stockton
This file contains simple event handlers for every event available in Developer
Studio. Each event handler will display a dialog containing the name of the
event and the information passed to that event.
Backup.dsm .... Silently creates a backup of that file in a particular location [Developer Studio, Macro, Visual C++, Visual Studio, VC++ Add-in, Visual Studio Macro] www.worldofatl.com 28-May-2000 by Alex Stockton
This file contains a macro that responds to the BeforeDocumentClose() event
handler. Whenever you close a file that hasn't been saved, this macro silently
creates a backup of that file in a particular location. This will prevent you
from losing work if you're one of those people always pressing the wrong button
on Save dialogs! ;-) Note that you need to edit the strSavePath constant in
this file so that it's appropriate for your system. You should also be aware
that the files that this macro backs up need to be manually deleted when you
are sure that they are no longer needed
BracesEtc.dsm .... Collection of macros that add pairs of braces, brackets and parentheses then position the insertion point between them [Developer Studio, Macro, Visual C++, Visual Studio, VC++ Add-in, Visual Studio Macro] www.worldofatl.com 28-May-2000 by Alex Stockton
This file contains a collection of macros that add pairs of braces, brackets
and parentheses then position the insertion point between them. These macros
are best mapped to the keys corresponding to open brace, bracket and
parenthesis respectively. This file also contains a macro to trigger Developer
Studio's built-in SmartFormat method, a useful facility for formatting code
that is only available via a macro.
IncludeOnce.dsm .... Adds code to a C++ header file to ensure that it is only included once [Developer Studio, Macro, Visual C++, Visual Studio, VC++ Add-in, Visual Studio Macro] www.worldofatl.com 28-May-2000 by Alex Stockton
The macro in this file adds code to a C++ header file to ensure that it is only
included once. The macro combines safe use of the #pragma once directive with
#if !defined() style exclusion to minimize compatibility problems. The
exclusion #define is based on the name of the file and a UUID to ensure that
there are no collisions. This macro makes use of the AjsUuid scriptable
control.
AddDualInterface.dsm .... Adds the basic IDL code for a new dual interface to the current file at the insertion point, [Developer Studio, Dual Interface, IDL, Macro, UUID, Visual C++, Visual Studio, VC++ Add-in, Visual Studio Macro] www.worldofatl.com 28-May-2000 by Alex Stockton
This macro adds the basic IDL code for a new dual interface to the current file
at the insertion point, even creating and inserting the UUID for you all in one
go. All you need do is supply the name of the new interface. This macro makes
use of the AjsUuid scriptable control.
AjsUuid Control .... Provides a scriptable means of generating UUIDs [ActiveX Control, ATL, UUID, Visual C++] www.worldofatl.com 28-May-2000 by Alex Stockton
This simple ActiveX control, written using the Active Template Library,
provides a scriptable means of generating UUIDs. This is useful for any macro
(or other code) that needs to generate CLSIDs, IIDs or any type of unique
number. This control is used by the AddDualInterface and IncludeOnce macros
included in the Macro Pack. To use these macros, you will need to build the
control from the source code provided. The build process will also register the
control
LiteTimer Class Module [Timer, Class Module, Article, Visual Basic] www.vb2themax.com 27-May-2000 by Kieron O'Connor
LiteTimer Class Module
27-May-2000
27-May-2000
Kieron O'Connor
This handy class module by Kieron O'Connor lets you add a control-less
timer to your application, without actually using a Timer control. Beside being
useful in itself, the CLiteTimer class provides a great example of how you can
correctly implement Windows callback procedures. The class comes with a
complete demo program that demonstrate that you can create multiple forms with
many a timer on them.
Java to JavaScript Communication [JavaScript, COM, Component, Article, Visual C++] www.codeproject.com 26-May-2000 by Jeremiah Talkar
Java to JavaScript Communication
Jeremiah Talkar
Give Java applets a second chance (as COM style binary Components)
Scan and Merge INI Files [Tool, Article, Visual C++] www.codeproject.com 26-May-2000 by Philip McGahan
Scan and Merge INI Files
Philip McGahan
A free tool to merge INI files, check for common INI file mistakes, and
quickly determine how two INI files differ.
Smart Grid [ATL, Article, Visual C++] www.codeproject.com 25-May-2000 by Alex Turc
Smart Grid
Alex Turc
Build a grid using ATL, STL and Win32 API
Different Styles of Programming [C++, MFC, STL, Article, Visual C++] www.codeproject.com 25-May-2000 by Alex Marbus
Different Styles of Programming
Alex Marbus
A basic introduction to some different styles of programming
BCGControlBar 4.7: MFC extension framework library
Stas Levin
The MFC extension framework library which allows you create
MS-Office-like applications with full toolbars/Menus customization.
Creating a Self Extracting Executable [File, Folder, Article, Visual C++] www.codeproject.com 25-May-2000 by James Spibey
Creating a Self Extracting Executable
James Spibey
A class that allows you to create self extracting executables for use
in distribution or setup programs
'Wait while loading' message for Java applets [Java Programming, Internet Explorer, Article, Visual C++] www.codeproject.com 25-May-2000 by Glenn S Peffers
'Wait while loading' message for Java applets
Glenn S Peffers
An article describing JavaScript code that will display a message (i.e.
Please Wait...) while a Java Applet is loading. This code is designed to work
in both Internet Explorer and Netscape
Business Components Gallery [Project, Component, Article, Visual C++] www.codeproject.com 25-May-2000 by Stas Levin
Business Components Gallery
Stas Levin
Windows GUI Solutions.
Window Tabs Add-In For DevStudio [Macro, Add-in, Article, Visual C++] www.codeproject.com 25-May-2000 by Oz Solomonovich
Window Tabs Add-In For DevStudio
Oz Solomonovich
Window and File Management For Visual C++
An Introductory STL tutorial [C++, MFC, STL, Article, Visual C++] www.codeproject.com 24-May-2000 by David Hubbard
An Introductory STL tutorial
David Hubbard
An STL starter that introduces the various collection types, strings,
streams, iterators and methods of STL
Add a Help Button to a MessageBox [Dialog, Windows Programming, Article, Visual C++] www.codeproject.com 24-May-2000 by Robert Pittenger
Add a Help Button to a MessageBox
Robert Pittenger
How to add a help button to a MessageBox and associate it with a
context-sensitive help ID
Using dialogs in console apps [Dialog, Windows Programming, Article, Visual C++] www.codeproject.com 24-May-2000 by Joseph M Newcomer
Using dialogs in console apps
Joseph M Newcomer
Learn how to display a message box from a console application.
Windows 2000 Style Wizards [Dialog, Windows Programming, Article, Visual C++] www.codeproject.com 24-May-2000 by Robert Pittenger
Windows 2000 Style Wizards
Robert Pittenger
Create Windows 2000 style Wizards with white backgrounds
Remote Control PCs [Internet, Network, Article, Visual C++] www.codeproject.com 24-May-2000 by Andy Bantly
Remote Control PCs
Andy Bantly
Two projects that work together to remote control PCs across a LAN
Java 'Swing' style Components written in MFC [Control, Component, MFC, Article, Visual C++] www.codeproject.com 24-May-2000 by Abhijit Bhole
Java 'Swing' style Components written in MFC
Abhijit Bhole
A set of MFC classes the duplicate the Java Swing look and feel
String Conversions [String, Article, Visual C++] www.codeproject.com 23-May-2000 by Zoran M Todorovic
String Conversions
Zoran M Todorovic
Set of classes enabling UNICODE and ANSI string conversion.
23-May-2000
23-May-2000
TFindFile - Delphi Component
Tired of using FindFirst, Next and Close? Come see how to encapsulate
all those functions in a single "find-files-recursively" component. It's easy
to use, free and with code.
22-May-2000
22-May-2000
Error Objectives
Have you ever wished that you could decipher those pesky Visual Basic
runtime errors? Now you can, with help from the Err object! Your About.com
guide shows your how to implement intelligent error handling.
Connect VB to Oracle through ODBC (using: Visual Basic 6.0) [ADO, Database, ODBC, Oracle, Visual Basic, Tip] www.developer.com 21-May-2000 by Rod Stephens
The ODBC connection
How do I connect VB to Oracle through ODBC? What is creating a dataset?..Is it
just creating tables in Oracle using the SQL or is it something else?
--------------------------------------------------------------------------------
Developer.com Expert Rod Stephen's Answer:
The way I do this is I create a data source name (DSN) for the Oracle database.
Open the Control Panel and start the ODBC Data Sources applet. On the User or
System DSN tab, click the Add button.
Then select the Oracle driver you want to use. I use Microsoft's driver but I
know others who have downloaded Oracle's driver from their Web site. After you
select the driver, click Finish.
On the next form, enter the data source name. This is the name by which you
want to identify the database. Also enter the user ID you want to logon as and
optionally a description. I don't worry about which user it is because I'm
going to change the user when I connect to the database anyway. Click Ok to
finish.
Now to open the database using the DSN, use code like this:
Private m_DBConnection As ADODB.Connection
Set m_DBConnection = New ADODB.Connection
m_DBConnection.ConnectionString = _
"DSN=" & dsn & _
";UID=" & user_name & _
";PWD=" & password
m_DBConnection.Open
Where dsn is the DSN name, and user_name and password are the user name and
password you want to log in as. When the variables are inserted, this string
looks something like:
DSN=oracle_database;UID=rod;PWD=testpassword
Make a beep in C++ (using: Visual C++ 6.0) [C++, Visual C++, Tip, Escape Sequence] www.devx.com 21-May-2000 by Danny Kalev
How do I make a beep in C++? I'd like to make my program alert the user in case
of errors.
Use the '\a' escape sequence to emit a beep. For example:
const char ALERT = '\a';
if (input < 0)
{
cout << "wrong input!" << ALERT << endl;
}
Numeric Edits, with Limits and Spinner [Edit Control, Article, Visual C++] www.codeguru.com 21-May-2000 by Kenneth Fleckenstein Nielsen
Numeric Edits, with Limits and Spinner
Kenneth Fleckenstein Nielsen
Several classes for dealing with floats
Windows 2000 Style Wizards [Property Sheet, Article, Visual C++] www.codeguru.com 21-May-2000 by Robert Pittenger
Windows 2000 Style Wizards
Robert Pittenger
Two classes that allow you to easily create Windows 2000 style wizards
Numeric Edits (with Limits and Spinner)
-N/A
21-May-2000
21-May-2000
VC++ code for numeric edit controls
Windows 2000 Style Wizards [Article, Visual C++] www.earthweb.com 21-May-2000
Windows 2000 Style Wizards
-N/A
21-May-2000
21-May-2000
VC++ classes to create Windows 2000-style wizards
MB HiTimer ActiveX Control [Timer, ActiveX Control, Article, Visual Basic] www.vb2themax.com 20-May-2000 by Marco Bellinaso
MB HiTimer ActiveX Control
20-May-2000
20-May-2000
Marco Bellinaso
Everybody knows that the VB timer is not much accurate: about 10
milliseconds on Windows NT and 50 milliseconds on Win9.x. In addition, the
interval value is a Integer value so you can't choose an interval greater that
just over 1 minute. If you need greater accuracy or longer intervals, the MB
HiTimer is the right control. It has a accuracy of 1 ms and an Interval
property specified as a Long value. This control includes the CountDown and the
StopWatch methods to benchmarck your routines. The package includes both the
control and a class module with the same features, so that you can use this
better timer even if you don't have a form to place a control. You can gets
notifications from the class through standard events or though a secondary
interface.
Custom AppWizard: Programmer's About Box [Macro, Article, Visual C++] www.codeguru.com 20-May-2000 by Tom Archer
Custom AppWizard: Programmer's About Box
Tom Archer
AppWizard that automatically includes an About box that links to your
home page in all your applications
Turn Any CWnd-Derived Control Class into a View [Document/View, Article, Visual C++] www.codeguru.com 20-May-2000 by Tom Archer
Turn Any CWnd-Derived Control Class into a View
Tom Archer
Using the CCtrlView class you can easily make any of your controls act
as views
Deriving CWnd classes from CCtrlView [Article, Visual C++] www.earthweb.com 20-May-2000
Deriving CWnd classes from CCtrlView
-N/A
20-May-2000
20-May-2000
VC++ code for deriving CWnd classes from the CCtrlView class
Custom AppWizard - Programmer's About Box
-N/A
20-May-2000
20-May-2000
VC++ code for a wizard that creates an About box
Useful Managers [Macro, Add-in, Article, Visual C++] www.codeproject.com 19-May-2000 by Mike Melnikov
Useful Managers
Mike Melnikov
An add-in for Devstudio that provides tag indexing and search, window,
bookmarks, session and other managers
'Window Tabs' Developer Studio Add-In [Macro, Update, Article, Visual C++] www.codeguru.com 19-May-2000 by Oz Solomonovich
'Window Tabs' Developer Studio Add-In
Oz Solomonovich
Incredible Add-In just got even better !!
"Mail Merge" System for XML and Microsoft Word [Internet, Article, Visual C++] www.codeguru.com 19-May-2000 by Franky Braem
"Mail Merge" System for XML and Microsoft Word
Franky Braem
Illustrates great technique of creating a Word template and merging it
with XML data
The "Window Tabs" Add-In For Visual C++ [Article, Visual C++] www.earthweb.com 19-May-2000
The "Window Tabs" Add-In For Visual C++
-N/A
19-May-2000
19-May-2000
VC++ code for a docking tab bar to switch windows
"Mail Merge" System with XML and Microsoft Word [Article, Visual C++] www.earthweb.com 19-May-2000
"Mail Merge" System with XML and Microsoft Word
-N/A
19-May-2000
19-May-2000
VC++ code to merge XML files with a Word template
Setting the width of the dropdown list [Combobox, List Control, Article, Visual C++] www.codeproject.com 18-May-2000 by Chris Maunder
Setting the width of the dropdown list
Chris Maunder
A simple tutorial explaining how to set the width of a combo dropdown
list so that all items are fully visible
Dr. Joseph M. Newcomer's MVP Tips, Techniques, and Goodies [Project, Article, Visual C++] www.codeproject.com 18-May-2000 by Joseph M Newcomer
Dr. Joseph M. Newcomer's MVP Tips, Techniques, and Goodies
Joseph M Newcomer
A collection of code examples and essays that I've often posted to the
microsoft.public.vc.mfc newsgroup and other places
Smart Grid [Control, Update, Article, Visual C++] www.codeguru.com 18-May-2000 by Alex Turc
Smart Grid
Alex Turc
Major update : Addition of sorting, combo-boxes and event firing
Multiline Header Control Inside a CListCtrl [Listview, Update, Article, Visual C++] www.codeguru.com 18-May-2000 by Alberto Gattegno, Alon Peleg
Multiline Header Control Inside a CListCtrl
Alberto Gattegno and Alon Peleg
Updated source code and article
Multiline Header Control Inside a CListCtrl [Article, Visual C++] www.earthweb.com 18-May-2000
Multiline Header Control Inside a CListCtrl
-N/A
18-May-2000
18-May-2000
VC++ code to create a multiline header within a CListCtrl
A Better Bitmap Button Class [Button Control, Bitmap, Article, Visual C++] www.codeproject.com 17-May-2000 by Joseph M Newcomer
A Better Bitmap Button Class
Joseph M Newcomer
An improvement on the CBitmapButton class.
Combo Box Initialization [Combobox, List Control, Article, Visual C++] www.codeproject.com 17-May-2000 by Joseph M Newcomer
Combo Box Initialization
Joseph M Newcomer
Learn how to programmatically initialize a combo box.
A simple STL based XML Parser [C++, MFC, STL, XML, Parser, Article, Visual C++] www.codeproject.com 17-May-2000 by David Hubbard
A simple STL based XML Parser
David Hubbard
This is a small non-validating XML parser based purely on STL
Attaching and Detaching Objects [C++, MFC, STL, Article, Visual C++] www.codeproject.com 17-May-2000 by Joseph M Newcomer
Attaching and Detaching Objects
Joseph M Newcomer
Attaching and detaching MFC objects to and from Windows objects.
Avoiding GetDlgItem [C++, MFC, STL, Article, Visual C++] www.codeproject.com 17-May-2000 by Joseph M Newcomer
Avoiding GetDlgItem
Joseph M Newcomer
Learn how to refrain from using GetDlgItem.
Avoiding Multiple Instances of an Application [C++, MFC, STL, Article, Visual C++] www.codeproject.com 17-May-2000 by Joseph M Newcomer
Avoiding Multiple Instances of an Application
Joseph M Newcomer
Learn the right way to limit your application to run only one instance.
Avoiding UpdateData [C++, MFC, STL, Dialog, Article, Visual C++] www.codeproject.com 17-May-2000 by Joseph M Newcomer
Avoiding UpdateData
Joseph M Newcomer
Learn how to avoid using UpdateData in your modal Dialogs.
Callbacks, Threads, and MFC [C++, MFC, STL, Callback, Thread, Article, Visual C++] www.codeproject.com 17-May-2000 by Joseph M Newcomer
Callbacks, Threads, and MFC
Joseph M Newcomer
Learn how to use callbacks and threads with MFC.
Dialog Box Control Management [Dialog, Windows Programming, Article, Visual C++] www.codeproject.com 17-May-2000 by Joseph M Newcomer
Dialog Box Control Management
Joseph M Newcomer
Learn how to effectively control your dialogs.
Message Management [Dialog, Windows Programming, Article, Visual C++] www.codeproject.com 17-May-2000 by Joseph M Newcomer
Message Management
Joseph M Newcomer
Learn effective methods for managing your user-defined messages.
Windows 2000 Common File Dialog [Dialog, Windows Programming, File Dialog, Dialog, MFC, Article, Visual C++] www.codeproject.com 17-May-2000 by Keyvan Saneinejad
Windows 2000 Common File Dialog
Keyvan Saneinejad
How to show the new Common File Dialog in MFC Apps in Windows 2000
FileMonitor
Franky Braem
An ATL control for Monitoring your directories and/or files for
updates, creation and deletion
Drawing Techniques [Font, GDI, GUI, Article, Visual C++] www.codeproject.com 17-May-2000 by Joseph M Newcomer
Drawing Techniques
Joseph M Newcomer
Learn how to effectively draw your dialogs.
Who Owns the GUI? [Font, GDI, GUI, Article, Visual C++] www.codeproject.com 17-May-2000 by Joseph M Newcomer
Who Owns the GUI?
Joseph M Newcomer
Learn about who owns the GUI definition and pitfalls of GUI programming.
The Win32 Foundation Classes (WFC) Version 45 [Project, Article, Visual C++] www.codeproject.com 17-May-2000 by Sam Blackburn
The Win32 Foundation Classes (WFC) Version 45
Sam Blackburn
The Win32 Foundation Classes (WFC) are a library of C++ classes that
extend Microsoft Foundation Classes (MFC) beyond mere GUI applications, and
provide extensive support for system and NT specific applications
A Logging Listbox Control [List Control, Article, Visual C++] www.codeproject.com 17-May-2000 by Joseph M Newcomer
A Logging Listbox Control
Joseph M Newcomer
Learn how to use printf-like functionality to debug your GUI
applications.
A Multiline Header Control Inside a CListCtrl [List Control, Article, Visual C++] www.codeproject.com 17-May-2000 by Alberto Gattegno, Alon Peleg
A Multiline Header Control Inside a CListCtrl
Alberto Gattegno and Alon Peleg
How to make the CListCtrl's header Multiline
WndImage Control [Control, Bitmap, Article, Visual C++] www.codeproject.com 17-May-2000 by Peter Hauptmann
WndImage Control
Peter Hauptmann
An easy-to-use control to display Bitmaps (stretch, scale, tile)
A Simple Printing Mechanism [Printing, Article, Visual C++] www.codeproject.com 17-May-2000 by Joseph M Newcomer
A Simple Printing Mechanism
Joseph M Newcomer
Learn how to implement print support in your applications.
An Introduction to Processes: Asynchronous Process Notification [Thread, Process, Inteprocess Communication, Article, Visual C++] www.codeproject.com 17-May-2000 by Joseph M Newcomer
An Introduction to Processes: Asynchronous Process Notification
Joseph M Newcomer
Learn how to create new processes and how to efficiently manage them.
Using User-Interface Threads [Thread, Process, Inteprocess Communication, Article, Visual C++] www.codeproject.com 17-May-2000 by Joseph M Newcomer
Using User-Interface Threads
Joseph M Newcomer
Learn tricks on how to create and use a User-Interface thread.
Surviving the Release Version [Tip, Article, Visual C++] www.codeproject.com 17-May-2000 by Joseph M Newcomer
Surviving the Release Version
Joseph M Newcomer
Learn about the issues and differences between Debug and Release builds.
The Graphical Developer Interface [Tip, Article, Visual C++] www.codeproject.com 17-May-2000 by Joseph M Newcomer
The Graphical Developer Interface
Joseph M Newcomer
Learn effective methods for logging and debugging your Windows apps.
Auto-Increment of the Build Count [Tool, Article, Visual C++] www.codeproject.com 17-May-2000 by Joseph M Newcomer
Auto-Increment of the Build Count
Joseph M Newcomer
Learn how to implement an auto-incrementing build number for your
projects.
Dialog Shortcut Consistency Checker [Tool, Dialog, Article, Visual C++] www.codeproject.com 17-May-2000 by Joseph M Newcomer
Dialog Shortcut Consistency Checker
Joseph M Newcomer
A tool to check the consistency of your dialog shortcuts.
Tokenizing strings in VBScript [Visual Basic, VBScript, VBA, Visual Basic, Article, Visual C++] www.codeproject.com 17-May-2000 by Chris Maunder
Tokenizing strings in VBScript
Chris Maunder
A simple function that allows you to tokenize a string sing multiple
token separators
VBScript directory crawler [Visual Basic, VBScript, VBA, Visual Basic, Article, Visual C++] www.codeproject.com 17-May-2000 by Ron Olson
VBScript directory crawler
Ron Olson
A VBScript program that can recursively walk directories and also
create a true working tree (good for printouts)
A Simple BizTalk Shema Viewer (XML/XDR/XSL) (using: Visual C++ 6.0) [Internet, Article, Visual C++] www.codeguru.com 17-May-2000 by Philippe LaChaise
A Simple BizTalk Shema Viewer (XML/XDR/XSL)
Philippe LaChaise
Great article/demo application for XML and XSL !!
Report Control: An Outlook 2000-Style SuperGrid Control [Listview, Article, Visual C++] www.codeguru.com 17-May-2000 by Maarten Hoeben
Report Control: An Outlook 2000-Style SuperGrid Control
Maarten Hoeben
Enhanced to include Outlook 2000 UI Features !
A Simple BizTalk Shema Viewer (XML/XDR/XSL) [Article, Visual C++] www.earthweb.com 17-May-2000 by Philippe Lachaise
A Simple BizTalk Shema Viewer (XML/XDR/XSL)
Philippe Lachaise
17-May-2000
17-May-2000
Very quick illustration of using several different XML-related
technologies together
Report Control - An Outlook 2000-Style SuperGrid Control [Article, Visual C++] www.earthweb.com 17-May-2000 by Maarten Hoeben
Report Control - An Outlook 2000-Style SuperGrid Control
Maarten Hoeben
17-May-2000
17-May-2000
Enhanced to include Outlook 2000 UI Features!
A Simple BizTalk Shema Viewer (XML/XDR/XSL)
-N/A
17-May-2000
17-May-2000
VC++ code for an BizTalk XML schema viewer
A Tree Control using ASP [Active Server Pages, ASP, Article, Visual C++] www.codeproject.com 16-May-2000 by Iulian Iuga
A Tree Control using ASP
Iulian Iuga
A simple tree control written using ASP that allows you to display
hierachical data.
List Components, Executables and Libraries [Tool, Component, Article, Visual C++] www.codeproject.com 16-May-2000 by Phil McGahan
List Components, Executables and Libraries
Phil McGahan
A handy utility that produces a comma delimited list of components such
as .exe's, ocx's etc on your hard drive.
Generic Viewer/Printing Application for Windows Files [Printing, Article, Visual C++] www.codeguru.com 16-May-2000 by Francisco Gajardo
Generic Viewer/Printing Application for Windows Files
Francisco Gajardo
SDI application that enables you to view and print many common
registered Windows file types
Hybrid Edit Control that Combines Prompt Text and Edit Control [Edit Control, Article, Visual C++] www.codeguru.com 16-May-2000 by Tom Archer
Hybrid Edit Control that Combines Prompt Text and Edit Control
Tom Archer
Great for dialogs/views where space is limited or prompt text would
look out of place (e.g., invoices, purchase orders, etc.)
Generic Viewer/Printing Application for Windows Files [Article, Visual C++] www.earthweb.com 16-May-2000 by Francisco Gajardo
Generic Viewer/Printing Application for Windows Files
Francisco Gajardo
16-May-2000
16-May-2000
SDI application that enables you to view and print many common
registered Windows file types
Hybrid Edit Control that Combines Prompt Text and Edit Control [Article, Visual C++] www.earthweb.com 16-May-2000 by Tom Archer
Hybrid Edit Control that Combines Prompt Text and Edit Control
Tom Archer
16-May-2000
16-May-2000
Great for dialogs/views where space is limited or prompt text would
look out of place (e.g., invoices, purchase orders, etc.)
Searching for Files [Article, Delphi] delphi.about.com 16-May-2000
16-May-2000
16-May-2000
Searching for Files
Stop. This is the one and only solution to file searching. Use Delphi
to find any file in any directory and/or subdirectory that match a certain
mask. Start searching.
Gradient Menu in MFC [Menu, MFC, Article, Visual C++] www.codeproject.com 15-May-2000 by Jim Koornneef
Gradient Menu in MFC
Jim Koornneef
Create Popup menus in MFC with a gradient and text on the left side
15-May-2000
15-May-2000
Error Handling 101
Your About.com guide shows you how to use simple error handling code to
catch those unexpected execution errors.
Function to Verify if Connected to the Internet [Internet, Article, Visual C++] www.codeguru.com 15-May-2000 by Dmitry Utenkov
Function to Verify if Connected to the Internet
Dmitry Utenkov
Very quick and straight-forward way of determining if the user is
connected to the Internet
Using MS Office in MFC application [Office, Article, Visual C++] www.codeguru.com 15-May-2000 by Igor Tkachev
Using MS Office in MFC application
Igor Tkachev
Lists step-by-step instructions on incorporating MS Office into your
applications
Function to Verify if Connected to the Internet [Article, Visual C++] www.earthweb.com 15-May-2000 by Dmitri Utenkov
Function to Verify if Connected to the Internet
Dmitri Utenkov
15-May-2000
15-May-2000
Very quick and straight-forward way of determining if the user is
connected to the Internet
Programming Windows with MFC, Second Edition [MFC, Object-Oriented Programming, Visual C++, Windows Programming, Book] Purchased 12-May-2000, $40.48
Originally 89.99 CDN
Hot List Control: Another Kind of List Control [Control, Article, Visual C++] www.codeproject.com 14-May-2000 by Robert Pittenger
Hot List Control: Another Kind of List Control
Robert Pittenger
A control for selecting items from a list, with tool tips and mouse
tracking
Outlook Express (OE) Reader Class [Interfacing, Article, Visual C++] www.codeguru.com 14-May-2000 by Mladen Bonev
Outlook Express (OE) Reader Class
Mladen Bonev
Class that reads directly from Outlook Express files (e.g., folder
names, message subjects, message bodies, etc.)
CPrintListCtrl Class [Listview, Update, Article, Visual C++] www.codeguru.com 14-May-2000 by Mike Marquet
CPrintListCtrl Class
Mike Marquet
Print Preview added to popular class !!
CPrintListCtrl Class [Article, Visual C++] www.earthweb.com 14-May-2000 by Mike Marquet
CPrintListCtrl Class
Mike Marquet
14-May-2000
14-May-2000
The CPrintListCtrl class is a standalone class which can be used to
easy print a list control content (and even includes a "print preview" feature).
A Custom Message Box ActiveX Control [Message Box, ActiveX Control, Article, Visual Basic] www.earthweb.com 14-May-2000
A Custom Message Box ActiveX Control
-N/A
14-May-2000
14-May-2000
VB code for an ActiveX message box
API CD Player [CD-ROM, Article, Visual Basic] www.earthweb.com 14-May-2000
API CD Player
-N/A
14-May-2000
14-May-2000
VB code for a CD player
Windows HotKeys [Hot Key, Article, Visual Basic] www.earthweb.com 14-May-2000
Windows HotKeys
-N/A
14-May-2000
14-May-2000
VB code to use multiple hotkeys
STL-based (non-validating) XML Parser [Internet, Article, Visual C++] www.codeguru.com 13-May-2000 by David Hubbard
STL-based (non-validating) XML Parser
David Hubbard
Another great STL implementation by David, these classes use standard
parsing (as opposed to the XML DOM) to parse XML documents
STL-based Web Server and Utility Classes [Internet, Article, Visual C++] www.codeguru.com 13-May-2000 by David Hubbard
STL-based Web Server and Utility Classes
David Hubbard
Very cool STL (non-UI) implementation of the MSDN httpsvr example
STL-based (non-validating) XML Parser [Article, Visual C++] www.earthweb.com 13-May-2000 by Dave Hubbard
STL-based (non-validating) XML Parser
Dave Hubbard
13-May-2000
13-May-2000
This is a small XML parser, based purely on STL
STL-based Web Server and Utility Classes [Article, Visual C++] www.earthweb.com 13-May-2000 by David Hubbard
STL-based Web Server and Utility Classes
David Hubbard
13-May-2000
13-May-2000
The code for the web server was adapted from the httpsvr in MSDN. The
visual interface has been removed. All of the the MFC code has been ripped out
and converted to STL and socket classes were implemented
Introduction to Software Translation for MFC [C++, MFC, STL, Article, Visual C++] www.codeproject.com 12-May-2000 by Robert Pittenger
Introduction to Software Translation for MFC
Robert Pittenger
An introduction to software localization and translation with issues
specific to MFC development.
Creating Custom Controls [Control, MFC, Article, Visual C++] www.codeproject.com 12-May-2000 by Chris Maunder
Creating Custom Controls
Chris Maunder
An introduction to creating custom controls using MFC
ActiveX Grid Control (Written with MFC) [Control, Article, Visual C++] www.codeguru.com 12-May-2000 by Michael C Lombardi
ActiveX Grid Control (Written with MFC)
Michael C Lombardi
Awesome grid that can be bound to an MS Access database!!
CString Extensions for Resource Loading and String Formatting [String, Article, Visual C++] www.codeguru.com 12-May-2000 by Joshua Reed
CString Extensions for Resource Loading and String Formatting
Joshua Reed
Very nice CString extension classes that provide helper functions for
loading resource strings and formatting strings
ActiveX Grid Control (Written with MFC) [Article, Visual C++] www.earthweb.com 12-May-2000 by Michael Lombardi
ActiveX Grid Control (Written with MFC)
Michael Lombardi
12-May-2000
12-May-2000
ActiveX version of grid
CString Extensions for Resource Loading and String Formatting [Article, Visual C++] www.earthweb.com 12-May-2000 by Joshua Reed
CString Extensions for Resource Loading and String Formatting
Joshua Reed
12-May-2000
12-May-2000
The following classes were developed to simplify my life and clean up
my code and perhaps they can do the same for you. They are simple classes, but
allow an easy load of a string resource (important for internationalization) as
well as an easy way to format strings.
A Custom Block Allocator for Speeding Up VC++ STL (using: Visual C++ 6.0) [C++, MFC, STL, Article, Visual C++] www.codeproject.com 11-May-2000 by Joaquín M López Muñoz
A Custom Block Allocator for Speeding Up VC++ STL
Joaquín M López Muñoz
A block allocator for use with STL containers that greatly improves
speed in programs doing massive data insertions and extractions.
P J Naughter's Freeware Library [Project, Network, Wrapper Class, Article, Visual C++] www.codeproject.com 11-May-2000 by P J Naughter
P J Naughter's Freeware Library
P J Naughter
A collection of articles that provide freeware classes covering GUIs,
Networking, Wrapper Classes and general code snippets
Dialog for Selecting (and Creating) Folders [Dialog, Article, Visual C++] www.codeguru.com 11-May-2000 by Nguyen Tan Hung
Dialog for Selecting (and Creating) Folders
Nguyen Tan Hung
Not only allows the user to select a folder, but class easily allows
you to create a new folder (as you see in most installation programs)
Smart Grid [Control, Article, Visual C++] www.codeguru.com 11-May-2000 by Alex Turc
Smart Grid
Alex Turc
Extremely well done Grid control written using ATL 3.0, STL and the
Win32 SDK (does not require MFC)
Dialog for Selecting (and Creating) Folders [Article, Visual C++] www.earthweb.com 11-May-2000 by Nguyen Tan Hung
Dialog for Selecting (and Creating) Folders
Nguyen Tan Hung
11-May-2000
11-May-2000
Extension of SHBrowseForFolder function.
Smart Grid [Article, Visual C++] www.earthweb.com 11-May-2000 by Alex Turc
Smart Grid
Alex Turc
11-May-2000
11-May-2000
This is a data grid built using ATL 3.0, STL and Win32 API
Command Line Parameters Context Menu Extension [Shell Programming, Context Menu, Explorer, Article, Visual C++] www.codeproject.com 10-May-2000 by Nick Carruthers
Command Line Parameters Context Menu Extension
Nick Carruthers
Allows for running programs with command line parameters directly from
Explorer.
Copy Path Context Menu Extension [Shell Programming, Context Menu, Shell Extension, Article, Visual C++] www.codeproject.com 10-May-2000 by Nick Carruthers
Copy Path Context Menu Extension
Nick Carruthers
A context menu Shell Extension that allows you to copy full file paths
to the clipboard.
QuickSplit Version 1.0 [Tool, Article, Visual C++] www.codeguru.com 10-May-2000 by Dmitriy Okunev
QuickSplit Version 1.0
Dmitriy Okunev
Complete documented source code for popular utility that enables you to
split large files for easier transfer!!
Font Selector Combobox [GDI, Article, Visual C++] www.codeguru.com 10-May-2000 by Igo
Font Selector Combobox
Igo
Nifty little combobox control that lists all fonts on system and allows
you to view each one's impact on test string
Font Selector Combobox [Article, Visual C++] www.earthweb.com 10-May-2000
Font Selector Combobox
-N/A
10-May-2000
10-May-2000
The CFontCombo class is a CComboBox-derived class that while being a
simple class is very useful in that it enables you to display all the fonts on
the system in a combo box for the user's selection
Change TCP/IP network settings remotely. [Internet, Network, Article, Visual C++] www.codeproject.com 09-May-2000 by Gert Boddaert
Change TCP/IP network settings remotely.
Gert Boddaert
Do you want to change a Host name, DHCP or static IP settings?
STL WebServer [Internet, Network, Article, Visual C++] www.codeproject.com 09-May-2000 by David Hubbard
STL WebServer
David Hubbard
A set of classes written in STL that implement a web server
Embed ActiveX controls inside Java GUI
Davanum Srinivas
With this your Java projects can take advantage of ActiveX controls and
Office documents such as spreadsheets, charts, calendars, word processors,
specialized graphics, and many more.
Converting a Win32 Application to ATL [ATL, COM, Article, Visual C++] www.codeguru.com 09-May-2000 by Chandra Shekar
Converting a Win32 Application to ATL
Chandra Shekar
Easy-to-follow steps that enable you to quickly convert your legacy
Win32 applications to ATL
MFC WindowStyler [C++, MFC, Windows Programming, Article, Visual C++] www.codeguru.com 09-May-2000 by Brian Stuart
MFC WindowStyler
Brian Stuart
Utility that enables you to experiment with creating and changing a
windows styles at runtime
Converting a Win32 Application to ATL [Article, Visual C++] www.earthweb.com 09-May-2000 by Chandra Shekar
Converting a Win32 Application to ATL
Chandra Shekar
9-May-2000
9-May-2000
In the midst of all this publicity writing ATL-based applications, you
will find little in the way of documentation on porting your legacy Win32
applications to ATL. Hopefully, these steps will ease that migration path.
MFC WindowStyler [Article, Visual C++] www.earthweb.com 09-May-2000 by Brian Stuart
MFC WindowStyler
Brian Stuart
9-May-2000
9-May-2000
The purpose of MFC WindowStyler is to allow users to experiment
creating windows with different window styles and extended window styles,
WS_styles and WS_EX_styles, with out having to recompile
Routines in Delphi: Beyond the Basics [Article, Delphi] delphi.about.com 09-May-2000
09-May-2000
09-May-2000
Routines in Delphi: Beyond the Basics
Delphi For Beginners: Extending Object Pascal's functions and
procedures with default (optional) parameters and method overloading.
Inside COM+ Base Services [COM, COM+, Book] Purchased 05-May-2000, $33.73
Regular 74.99
CryptIt [C++, MFC, STL, Article, Visual C++] www.codeproject.com 08-May-2000 by Daniel Madden
CryptIt
Daniel Madden
Keep sensitive data safe via encryption
Handling right-click on the CListCtrl header control [List Control, Article, Visual C++] www.codeproject.com 08-May-2000 by Alberto Gattegno
Handling right-click on the CListCtrl header control
Alberto Gattegno
Determining the right click on the header of the CListCtrl
A Tutorial on Pointers [Article, Visual C++] cplus.about.com 08-May-2000
08-May-2000
08-May-2000
A Tutorial on Pointers
A tutorial on how to use pointers in C++
Multiline Header Control Inside a CListCtrl [Listview, Article, Visual C++] www.codeguru.com 08-May-2000 by Alberto Gattegno, Alon Peleg
Multiline Header Control Inside a CListCtrl
Alberto Gattegno and Alon Peleg
If you've ever had Listviews where some of the column headings would
display better on multiple lines, this article is for you!
ATL Date Routines [ATL, COM, Article, Visual C++] www.codeguru.com 08-May-2000 by Paul E Bible
ATL Date Routines
Paul E Bible
Great set of Date routines that does not require MFC
ATL Date Routines [Article, Visual C++] www.earthweb.com 08-May-2000 by Paul Bible
ATL Date Routines
Paul Bible
8-May-2000
8-May-2000
ATL library of date and time routines
Comment Block Macros [Macro, Article, Visual C++] www.codeguru.com 07-May-2000 by Vu Dang
Comment Block Macros
Vu Dang
Macros to quickly comment and uncomment blocks of code
Colored/Blinking Controls and Dialogs with any Font [Control, Article, Visual C++] www.codeguru.com 07-May-2000 by Yury Goltsman
Colored/Blinking Controls and Dialogs with any Font
Yury Goltsman
These classes are template-based so they work with your current
CWnd-derived classes!!
Comment Block Macros [Article, Visual C++] www.earthweb.com 07-May-2000 by Vu Dang
Comment Block Macros
Vu Dang
7-May-2000
7-May-2000
Do you find that it is much easier to comment or uncomment a block of
code in Visual Basic editor? I wrote a couple of macro routines to do the same
for Visual C++ editor
Project Line Counter Add-In [Macro, Article, Visual C++] www.codeguru.com 06-May-2000 by Oz Solomonovich
Project Line Counter Add-In
Oz Solomonovich
Great add-in that enables you to quickly ascertain source code
statistics for your entire project
Simple Way to Check All Dialog Controls for Changings [Dialog, Article, Visual C++] www.codeguru.com 06-May-2000 by Ramin Sadeghi
Simple Way to Check All Dialog Controls for Changings
Ramin Sadeghi
Uses the ON_CONTROL_RANGE MFC macro to avoid having to individually
check each control
Simple Way to Check All Dialog Controls for Changings [Article, Visual C++] www.earthweb.com 06-May-2000 by Ramin Sadeghi
Simple Way to Check All Dialog Controls for Changings
Ramin Sadeghi
6-May-2000
6-May-2000
It is very difficult and toilsome to implement code that checks every
single control on a given dialog for changes; especially for complex dialogs.
This aritcles shows you one method of accomplishing this.
A 3D Label Control [Label Control, Article, Visual Basic] www.earthweb.com 06-May-2000
A 3D Label Control
-N/A
6-May-2000
6-May-2000
VB code to create a 3D ActiveX label
Overloading Operator << for a User-Defined Type (using: Visual C++ 6.0) [C++, Overloading, User-defined Type, iostream, Visual C++, Tip] www.devx.com 05-May-2000 by Danny Kalev
Overloading Operator << for a User-Defined Type
By Danny Kalev
One of the advantages of using the iostream objects is that you can customize
them to support your own classes. I will show how to overload ostream's
operator << so that it can display a user-defined object.
Suppose you declared the following class:
class student
{
private:
string name;
string department;
public:
student(string n = "", string dep = 0)
: name(n), department(dep) {}
string get_name() const { return name; }
string get_department () const { return department; }
void set_name(const string& n) { name=n; }
void set_department (const string& d) {department=d;}
};
And you want to be able to use it in a cout statement as follows:
student st("Bill Jones", "Zoology"); // create instance
cout<
CIniFile [C++, MFC, STL, Article, Visual C++] www.codeproject.com 05-May-2000 by Adam Clauss
CIniFile
Adam Clauss
A class that makes it easy to implement an INI settings file in your
applications.
Reformat source code
Alvaro Mendez
A great macro for reformatting C++ source code
A Case Study about InterProcess Synchronization [Thread, Process, Inteprocess Communication, Synchronization, Article, Visual C++] www.codeproject.com 05-May-2000 by Gert Boddaert
A Case Study about InterProcess Synchronization
Gert Boddaert
An application demonstrating process Synchronisation and interprocess
communication
Single Toobar Simultaneously Used by Multiple Dialog-Based Applications At Once [Dialog, Article, Visual C++] www.codeguru.com 05-May-2000 by Oscar Kogosov
Single Toobar Simultaneously Used by Multiple Dialog-Based Applications
At Once
Oscar Kogosov
Enables you to use a single Toolbar across multiple dialog-based
application
CIniFile: Class for Reading and Writing .INI Files [C++, MFC, Windows Programming, Article, Visual C++] www.codeguru.com 05-May-2000 by Adam Clauss
CIniFile: Class for Reading and Writing .INI Files
Adam Clauss
Very easy-to-use class to handle the reading and writing .INI files
CIniFile - Class for Reading and Writing .INI Files [Article, Visual C++] www.earthweb.com 05-May-2000 by Adam Clauss
CIniFile - Class for Reading and Writing .INI Files
Adam Clauss
5-May-2000
5-May-2000
Simple .INI wrapper
Single Toobar Simultaneously Used by Multiple Dialog-Based Applications At Once [Article, Visual C++] www.earthweb.com 05-May-2000 by Oscar Kogosov
Single Toobar Simultaneously Used by Multiple Dialog-Based Applications
At Once
Oscar Kogosov
5-May-2000
5-May-2000
TlbDlg_OK is a sample how to work with common toolbar from several
dialog-based applications
Customizable forms [Active Server Pages, Template, Article, Visual C++] www.codeproject.com 04-May-2000 by Iulian Iuga
Customizable forms
Iulian Iuga
Template Active Server Page to display different objects based on
registry settings
ATL Object Wizard Property Page [ATL, ATL Object Wizard, C++, MFC, STL, Article, Visual C++] www.codeproject.com 04-May-2000 by Shaun Wilde, John R Bandela
ATL Object Wizard Property Page
Shaun Wilde
A wizard that allows you to create an ATL Object Wizard Property Page
Asynchronous IO within ISAPI modules [IIS, ISAPI, Article, Visual C++] www.codeproject.com 04-May-2000 by Mike Junkin
Asynchronous IO within ISAPI modules
Mike Junkin
How to use asynchronous IO to send data from an ISAPI module
ITEMIDLIST management library [Shell Programming, Article, Visual C++] www.codeproject.com 04-May-2000 by Vassili Bourdo
ITEMIDLIST management library
Vassili Bourdo
The library that helps to manage Shell ITEMIDLISTS
Removing debug information from .obj files [Tip, Article, Visual C++] www.codeproject.com 04-May-2000 by Tibor Blazko
Removing debug information from .obj files
Tibor Blazko
A small program for removing debug information from object files that
aids incrementally linking extremely large projects.
Observer Pattern Class [C++, MFC, Article, Visual C++] www.codeguru.com 04-May-2000 by Ray Virzi
Observer Pattern Class
Ray Virzi
Provides a very fine C++ implementation of the Observer Pattern
(implementing cyclic updates, self reference, etc.)
Visual C++ Custom Debug Monitor [Debugging, Article, Visual C++] www.codeguru.com 04-May-2000 by Daniel Chirca
Visual C++ Custom Debug Monitor
Daniel Chirca
Nifty little utility that allows you to route debug messages to a
separate window for viewing while testing your application
Visual C++ Custom Debug Monitor [Article, Visual C++] www.earthweb.com 04-May-2000 by Daniel Chirca
Visual C++ Custom Debug Monitor
Daniel Chirca
4-May-2000
4-May-2000
Easy way to get the same functionality in Microsoft Visual C++ that
Visual Basic provides, i.e. to insert into the source code some debug messages
and have them displayed at runtime into a separated, dedicated window (...the
"Immediate" window in Visual Basic).
Observer Pattern Class [Article, Visual C++] www.earthweb.com 04-May-2000 by Ray Virzi
Observer Pattern Class
Ray Virzi
4-May-2000
4-May-2000
The class CObserver is a base class from which you can derive both
observer and subject classes. An 'observer' object is one whose internal state
depends upon the internal state of one or more other objects.
SHFILEOPSTRUCT and the SHFileOperation [File, Folder, Update, Article, Visual C++] www.codeguru.com 03-May-2000 by John Z Czopowik
SHFILEOPSTRUCT and the SHFileOperation
John Z Czopowik
Updated example code
WTL Tool Bar Drop-Down Extension [ATL, COM, Article, Visual C++] www.codeguru.com 03-May-2000 by Ben Burnett
WTL Tool Bar Drop-Down Extension
Ben Burnett
Drop down Toolbar buttons implemented with WTL
WTL Tool Bar Drop-Down Extension [Article, Visual C++] www.earthweb.com 03-May-2000 by Ben Burnett
WTL Tool Bar Drop-Down Extension
Ben Burnett
3-May-2000
3-May-2000
Great article on this unsupported Microsoft technology
SHFILEOPSTRUCT and the SHFileOperation [Article, Visual C++] www.earthweb.com 03-May-2000 by John Z Czopowik
SHFILEOPSTRUCT and the SHFileOperation
John Z Czopowik
3-May-2000
3-May-2000
Introduction of the SHFILEOPSTRUCT and the SHFileOperation function.
Simple midi - IN, OUT & THRU demonstrated and Midi FAQ [MIDI, Article, Visual Basic] www.earthweb.com 03-May-2000 by Stefaan Casier
Simple midi - IN, OUT & THRU demonstrated and Midi FAQ
Stefaan Casier
3-May-2000
3-May-2000
VB code to demonstrate MIDI programming techniques
Base Number Conversion Routines [Conversion, Article, Visual Basic] www.earthweb.com 03-May-2000
Base Number Conversion Routines
-N/A
3-May-2000
3-May-2000
VB code to convert between decimal and base numbers
Getting the Module (exe) Filename from an HWND [System, Article, Visual C++] www.codeguru.com 02-May-2000 by Mike Ryan
Getting the Module (exe) Filename from an HWND
Mike Ryan
Very useful class that also includes the ability to filter out specific
module names and types
Class (CShellList) to Retrieve All Icon File Types [ImageList Control, Update, Article, Visual C++] www.codeguru.com 02-May-2000 by Nathan Moinvaziri
Class (CShellList) to Retrieve All Icon File Types
Nathan Moinvaziri
Code updated to retrieve all icon types
Class (CShellList) to Retrieve All Icon File Types [Article, Visual C++] www.earthweb.com 02-May-2000 by Nathan Moinvaziri
Class (CShellList) to Retrieve All Icon File Types
Nathan Moinvaziri
2-May-2000
2-May-2000
CShellList shows about how you would go extracting each one of the
individual file type icons, from windows, just like what happens when you click
on File Types in Folder Options of any folder view in windows
Getting the Module (exe) Filename from an HWND [Article, Visual C++] www.earthweb.com 02-May-2000 by Mike Ryan
Getting the Module (exe) Filename from an HWND
Mike Ryan
2-May-2000
2-May-2000
This is a very useful class that also includes the ability to filter
out specific module names and types.
MDI Development in Delphi. Part II. [Article, Delphi] delphi.about.com 02-May-2000
02-May-2000
02-May-2000
MDI Development in Delphi. Part II.
Creating a multiple document interface graphic file viewer.
Using Predicate Waits with Win32 Threads [Thread, Synchronization, Article, Visual C++] C++ Users Journal 01-May-2000 by David M Howard
Using Predicate Waits with Win32 Threads
David M Howard
Most Win32 Synchronization primitives are just that - primitive. But
you can use them to build queues that are safe and easy to use.
Integrating Threads with Template Classes [Thread, Template Class, Article, Visual C++] C++ Users Journal 01-May-2000 by Charles Calkins
Integrating Threads with Template Classes
Charles Calkins
It’s obviously a good idea to encapsulate a thread as an object. It is
less obvious how to get all the interfaces right.
Thread-Safe Access to Collections [Thread Safe, Collection, Thread, Article, Visual C++] C++ Users Journal 01-May-2000 by Jeff Kleber
Thread-Safe Access to Collections
Jeff Kleber
The best place to store a thread lock for a shared container is
somewhere inside the container - deep inside.
Visualizing Depth Images via Rendering [Rendering, Graphic, Image, Article, Visual C++] C++ Users Journal 01-May-2000 by Dwayne Phillips
Visualizing Depth Images via Rendering
Dwayne Phillips
In case you thought that Dwayne Phillips had exhausted the topic of
imaging in these pages, here’s another interesting installment.
Catching Untested Return Codes [Article, Visual C++] C++ Users Journal 01-May-2000 by Marc Guillemot
Catching Untested Return Codes
Marc Guillemot
Who watches the watchers, at least to make sure they're watching? This
class does.
State Machine Design in C++ [State Machine, C++, Finite-state Machine, Multithreading, Article, Visual C++] C++ Users Journal 01-May-2000 by David Lafreniere
State Machine Design in C++
David Lafreniere
It’s not all that hard to implement a Finite-State Machine, unless it’s
very large, and you have to worry about Multithreading, and ...
Speed Up Your Apps With Data Structures [Data Structure, Linked List, Hash Table, Article, Visual Basic] Visual Basic Programmer's Journal 01-May-2000, vol. 10, no. 6 by Francesco Balena
Speed Up Your Apps With Data Structures
Francesco Balena
Choosing the right data structure can help you write faster apps.
Here's how to use Linked Lists and Hash Tables to write code that rivals C for
speed.
Build Your Own MMC Snap-In [MMC, Snap-In, Microsoft Management Console, Article, Visual Basic] Visual Basic Programmer's Journal 01-May-2000, vol. 10, no. 6 by Bill Block
Build Your Own MMC Snap-In
Bill Block
The Microsoft Management Console (MMC) Designer gives developers
something they've been waiting a long time for - the ability to create MMC
snap-ins in VB.
From Office DOM to XML DOM [Office, DOM, XML, Outlook, Document Object Model, VBA, Article, Visual Basic] Visual Basic Programmer's Journal 01-May-2000, vol. 10, no. 6 by Kurt Cagle
From Office DOM to XML DOM
Kurt Cagle
Although Microsoft Outlook doesn't really support XML, knowing how to
use MS Office's Document Object Models (DOMs) lets you create complex
applications with tools such as VBA.
Share Your Appointments [Article, Visual Basic] Visual Basic Programmer's Journal 01-May-2000, vol. 10, no. 6 by Chris Barlow
Share Your Appointments
Write apps that read and write most common vCalendar data elements.
Chris Barlow
Save Code With Common Dialogs [Common Dialog, File, Font, Printer, Article, Visual Basic] Visual Basic Programmer's Journal 01-May-2000, vol. 10, no. 6 by Ron Schwarz
Save Code With Common Dialogs
VB's CommonDialog control provides a useful interface for opening and
saving Files, Font selection, and Printer management.
Ron Schwarz
Roll Your Own Upload Component [Component, File-uploading, Web, Article, Visual Basic] Visual Basic Programmer's Journal 01-May-2000, vol. 10, no. 6 by Jonathan Goodyear
Roll Your Own Upload Component
File-uploading capability makes Web-based apps more interactive. Learn
how to build a file upload component that implements custom business rules.
Jonathan Goodyear
Six Tips Developers Should Know [Pattern, Antipattern, Design, Database, Article, Visual Basic] Visual Basic Programmer's Journal 01-May-2000, vol. 10, no. 6 by Deborah Kurata
Six Tips Developers Should Know
Using Patterns and Antipatterns can help you improve your Design,
deliverables, and the Database.
Deborah Kurata
How to direct Callbacks into Classes and Forms [Callback, Class, Form, Article, Visual Basic] Visual Basic Programmer's Journal 01-May-2000, vol. 10, no. 6 by Karl E Peterson
How to direct Callbacks into Classes and Forms
Learn how to direct callbacks into classes and forms.
Karl E Peterson
Mine Your Resources [Resource, Enumerate, Article, Visual Basic] Visual Basic Programmer's Journal 01-May-2000, vol. 10, no. 6 by Karl E Peterson
Mine Your Resources
Learn how to Enumerate resources from outside your app.
Karl E Peterson
Handle Events With Triggers [Event, Trigger, Stored Procedure, Table, Audit Trail, Summary Table, Article, Visual Basic] Visual Basic Programmer's Journal 01-May-2000, vol. 10, no. 6 by Joseph Lax
Handle Events With Triggers
Triggers - Stored Procedures that you create and attach to a Table -
fire whenever data in the table is modified. Practical uses range from
maintaining an Audit Trail to updating Summary Tables.
Joseph Lax
Create Data-Driven Forms [Form, Article, Visual Basic] Visual Basic Programmer's Journal 01-May-2000, vol. 10, no. 6 by Francesco Balena
Create Data-Driven Forms
Data-driven forms are one of the best applications of VB6's ability to
create controls dynamically. Use such forms to write better programs in less
time.
Francesco Balena
Minimize Cache Thrash [Cache, Database, Oracle, SQL Server, Article, Visual Basic] Visual Basic Programmer's Journal 01-May-2000, vol. 10, no. 6 by Kirk Allen Evans
Minimize Cache Thrash
Improve your app's performance by using Database caching, query plans,
and bind variables in Oracle or SQL Server.
Kirk Allen Evans
Implement Dynamic Role-Based Security [Role, Security, COM+, Article, Visual Basic] Visual Basic Programmer's Journal 01-May-2000, vol. 10, no. 6 by Brian A Manlove
Implement Dynamic Role-Based Security
Meet security requirements by using membership in COM+ roles to alter
the user interface.
Brian A Manlove
Windows 2000 Translucent Windows [Translucent Windows, WS_EX_TRANSPARENT, Visual C++, Windows NT, Article] Windows Developer's Journal 01-May-2000, vol. 11, no. 5 by Petter Hesselberg
Windows 2000 Translucent Windows
Petter Hesselberg
Win32 has long offered the intriguing window style known as
WS_EX_TRANSPARENT, but anyone who's used it knows it doesn't live up to the
name. Now, Windows 2000 finally provides functioning support for not just
transparent windows, but also translucent (or "bleed-through") windows.
Enumerating/Calling Control Panel Applets [Enumerating, Control Panel Applet, Visual C++, Article] Windows Developer's Journal 01-May-2000, vol. 11, no. 5 by Zuoliu Ding
Enumerating/Calling Control Panel Applets
Zuoliu Ding
Sometimes your application needs functionality that a control panel
applet provides. For example, if your program needs to let the user set the
current date/time, you could either tell them to manually use the control
panel, or write your own dialog that duplicates that work. This article
provides a third alternative: calling a control panel applet directly from your
own application.
Configuring VC++ Multithreaded Memory Management
Gerbert Orasche
Multithreaded VC++ programs can actually run slower on multiprocessor
machines if they are performing intensive memory management. Here's a trick to
greatly speed up such bottlenecked programs - without even rebuilding the
program!
Understanding NT: Files reside on Network Shares that aren't always connected? [File, Network Share, Visual C++, Article] Windows Developer's Journal 01-May-2000, vol. 11, no. 5 by Paula Tomlinson
Understanding NT: Files reside on Network Shares that aren't always
connected?
Paula Tomlinson
Your program provides a File menu with a list of most recently used
files. But what if some of those files reside on network shares that aren't
always connected? Instead of stupidly saying "Can't access that file.", you can
detect this situation, pop up a dialog that lets the user provide the needed
logon information, create the connection, and then open the file - here's how.
Add a much-needed history feature to the standard Combobox Control [Combobox, Visual C++, Article] Windows Developer's Journal 01-May-2000, vol. 11, no. 5 by Petter Hesselberg
Add a much-needed history feature to the standard Combobox Control
Petter Hesselberg
The standard controls are the workhorses of Windows user interface
programming, but they lack some obvious features that many programs need. This
month's column adds a much-needed history feature to the standard combobox
control.
Win98 TransparentBlt() Bugs [TransparentBlt(), Transparent Bitmap, Visual C++, Article] Windows Developer's Journal 01-May-2000, vol. 11, no. 5 by Chris Branch
Win98 TransparentBlt() Bugs
Chris Branch
The new Win98 function, TransparentBlt(), can handle the details of
drawing a Transparent Bitmap - but unless you don't mind resource leaks, use it
only with monochrome source bitmaps.
Distinguishing Big Endian From Little Endian [Endian, HTTP, Visual C++, Article] Windows Developer's Journal 01-May-2000, vol. 11, no. 5 by Moishe Halibard
Distinguishing Big Endian From Little Endian
Moishe Halibard
One set of software can provide both web server and standalone
application functionality; the trick is to just write a tiny HTTP server to let
your 'standalone' application be accessed locally via HTTP.
Finding Trace Statements [Trace, Debugging, Visual C++, Article] Windows Developer's Journal 01-May-2000, vol. 11, no. 5 by Michael Taylor
Finding Trace Statements
Michael Taylor
How to make your Debugging trace statements click to the source code
they arose from.
Internet Audio: Using the Audio Compression Manager [Internet, Audio, Audio Compression Manager, Article, Delphi] Delphi Developer 01-May-2000, vol. 6, no. 5 by Peter Morris
Internet Audio: Using the Audio Compression Manager
Peter Morris
Are you excited by the possibilities of transmitting audio over the
Internet, but confused by all of the crazy buzzwords that go with it? Peter
Morris cuts through the confusion and shows you how to use Delphi to make
inroads into this exciting technology.
Using Network Graphs to Represent Linked Objects [Graph, Object, Article, Delphi] Delphi Developer 01-May-2000, vol. 6, no. 5 by Keith Wood
Using Network Graphs to Represent Linked Objects
Keith Wood
Network graphs provide a visual representation for many areas of
interest. Any time you're working with entities joined by connections, a
network graph can be used to help visualize the relationship. In this article,
Keith Wood shows you how to construct an interface and class structure that
models and then displays a graph. Separating the graph structure from its
presentation makes it easier to use and reuse.
Integrating Auto Completion into Your Applications [Auto Completion, Article, Delphi] Delphi Developer 01-May-2000, vol. 6, no. 5 by Anthony Walter
Integrating Auto Completion into Your Applications
Anthony Walter
A feature standard to newer versions of Microsoft Windows is auto
completion. Anthony Walter shows how to incorporate this feature into your own
Delphi programs with just a few lines of code.
Embed Perl in Your Projects [Perl, Scripting, Article, Visual C++] Visual C++ Developers Journal 01-May-2000, vol. 3, no. 4 by Martin C Brown
Embed Perl in Your Projects
Martin C Brown
Adding a programmable element to your applications makes them more
practical solutions for users. Extend your program's functionality by using
Perl to provide an embedded Scripting language.
Multithreaded Programming in C++ and Java [Multithreaded, C++, Java, Article, Visual C++] Visual C++ Developers Journal 01-May-2000, vol. 3, no. 4 by Dianne M Marsh
Multithreaded Programming in C++ and Java
Dianne M Marsh
Multithreading improves the user's interaction with your program. Get
the scoop on the best ways to use multithreading in C++ and Java.
Discover Class Designs [Class, Article, Visual C++] Visual C++ Developers Journal 01-May-2000, vol. 3, no. 4 by Bill Wagner
Discover Class Designs
Bill Wagner
A class's design speaks volumes about how it should be used. Figure out
what functions to look for and what they tell you.
Programming COM+ Security
Yasser Shohoud
In this excerpt from Mastering COM and COM+, discover how to define
roles and perform security checks at the application level for any COM+
component.
(The Joy of) Memory Mapping [Memory Mapping, File, Article, Visual C++] Visual C++ Developers Journal 01-May-2000, vol. 3, no. 4 by Andy Harding
(The Joy of) Memory Mapping
Andy Harding
Use memory mapping to view your Files quickly and easily. Our VC++ Pro
also answers questions about loading device-independent bitmaps.
Generate Rich Error Information [Error, Article, Visual C++] Visual C++ Developers Journal 01-May-2000, vol. 3, no. 4 by Richard Grimes
Generate Rich Error Information
Richard Grimes
Learn to generate rich error information - descriptive text that
pinpoints the source of an error - to help your components' users solve
problems that might arise.
Manage Thread Affinity Issues [Thread Affinity, Apartment, Windows NT, Article, Visual C++] Visual C++ Developers Journal 01-May-2000, vol. 3, no. 4 by George Shepherd
Manage Thread Affinity Issues
George Shepherd
Understand the new role for Apartments in Windows 2000 so you can
associate your objects with apartment-calling threads effectively.
Business-to-Business Architecture and Tools for Trading Partner Integration [Business-to-Business, BizTalk Server 2000, Web, XML, Visual Basic, Article] MSDN Magazine 01-May-2000, vol. 15, no. 5 by Aaron Skonnard, Bob Laskey
Business-to-Business Architecture and Tools for Trading Partner
Integration
This article provides an overview of the concepts involved with
implementing a trading partner integration system on BizTalk Server 2000 and
details the document interchange server architecture and toolset. Additionally,
an early look was taken at some business process integration features planned
for the production release of the product that allow easy design, execution and
sharing of new business processes with trading partners. The concepts and
architecture presented allow companies to prepare internal line-of-business
applications and trading partners for systems that improve customer service and
reduce operating costs.
Aaron Skonnard
and
Bob Laskey
Use Web Tools to Monitor and Manage Embedded Devices with Windows CE Web Server [Web, Monitor, Embedded Device, Windows CE Web Server, Internet Information Server, IIS, Visual C++, Article] MSDN Magazine 01-May-2000, vol. 15, no. 5 by Leonid Braginski, Matthew Powell
Use Web Tools to Monitor and Manage Embedded Devices with Windows CE
Web Server
This article explains how the Windows CE Web Server component can be
included in the operating system for a given device. We’ll also show you how
the Web server features you’re familiar with from Microsoft Internet
Information Services are implemented in the Windows CE Web Server.
Leonid Braginski
and
Matthew Powell
Implement E-Commerce Affiliate Programs to Create New Partnerships and Generate Business [E-Commerce, Web, ASP, VBScript, Article] MSDN Magazine 01-May-2000, vol. 15, no. 5 by Ted Coombs
Implement E-Commerce Affiliate Programs to Create New Partnerships and
Generate Business
This article gives you an overview of some of the new e-commerce
concepts and implementations that are helping forge those new relationships
with customers, vendors, and shipping companies.
Ted Coombs
Administering Windows and Applications across an Enterprise [Administration, Enterprise, Windows Management Instrumentation, WMI, Common Information Model, CIM, Windows Management Instrumentation Query Language, WQL, COM, Scripting, Windows NT, Visual C++, Article] MSDN Magazine 01-May-2000, vol. 15, no. 5 by Jeffrey Cooperstein
Administering Windows and Applications across an Enterprise
This article provides an overview of Windows Management
Instrumentation, a technology that exposes a wide variety of system and device
information through a standard API. With WMI, management information is exposed
by following the object oriented structure outlined in the Common Information
Model (CIM), which relies on inheritance for reuse and standardization of
object classes that represent system devices. This article briefly describes
querying WMI for information using a query language much like SQL called
Windows Management Instrumentation Query Language (WQL), existing system
classes, handling system events, and security in WMI.
Jeffrey Cooperstein
Building a WMI Provider to Expose Your Object Info [WMI, Windows Management Instrumentation, COM, Windows NT, Visual C++, Article] MSDN Magazine 01-May-2000, vol. 15, no. 5 by Kevin Hughes, David Wohlferd
Building a WMI Provider to Expose Your Object Info
You need a WMI provider to expose system information to WMI to manage
applications and devices. This article offers an in-depth discussion of how to
write WMI providers using the WMI provider framework, and how to optimize
performance.
Kevin Hughes
and
David Wohlferd
Managing Projects Using Visual SourceSafe [Visual SourceSafe, ASP, Source Control, VBScript, Article] MSDN Magazine 01-May-2000, vol. 15, no. 5 by Ken Ramirez
Managing Projects Using Visual SourceSafe
Visual SourceSafe provides an object model that you can use as the
basis of your own customized source code control environment. To give you an
idea of what is possible, we’ll walk you through the elements of a
browser-based source code control system built with Visual SourceSafe, ASP, and
VBScript. This simple system lets members of your team build, label, and
promote individual files or entire projects, and to reverse promotions.
Ken Ramirez
Extending HTML with custom tags (using: Interent Explorer 5.0) [Article, HTML, Internet Explorer, Interent Explorer] MSDN Magazine 01-May-2000, vol. 15, no. 5 by Dino Esposito
Extending HTML with custom tags
Dino Esposito
XPath, XSLT, and other XML specs (using: Interent Explorer 5.0) [Article, Internet Explorer, XML, XPath, XSLT, Interent Explorer] MSDN Magazine 01-May-2000, vol. 15, no. 5 by Aaron Skonnard
XPath, XSLT, and other XML specs
Aaron Skonnard
Building and testing ADO components with Visual Basic [ADO, Visual Basic, Article] MSDN Magazine 01-May-2000, vol. 15, no. 5 by Ken Spencer
Building and testing ADO components with Visual Basic
Ken Spencer
Porting apps from MTS to COM+ [MTS, COM+, Visual Basic, Article] MSDN Magazine 01-May-2000, vol. 15, no. 5 by Ted Pattison
Porting apps from MTS to COM+
Ted Pattison
Optimizing DLL load time Performance with the MakeLoadTimeTest utility [DLL, Performance, Visual C++, Article] MSDN Magazine 01-May-2000, vol. 15, no. 5 by Matt Pietrek
Optimizing DLL load time Performance with the MakeLoadTimeTest utility
Matt Pietrek
Understanding Kerberos credential delegation using TktView utility [Kerberos, Windows NT, Article] MSDN Magazine 01-May-2000, vol. 15, no. 5 by Keith Brown
Understanding Kerberos credential delegation using TktView utility
Keith Brown
How to build a stealth dialog .. one that doesn't appear on the taskbar [Dialog, Taskbar, Visual C++, Article] MSDN Magazine 01-May-2000, vol. 15, no. 5 by Paul DiLascia
How to build a stealth dialog .. one that doesn't appear on the taskbar
Paul DiLascia
Parsing the Web [Parsing, Web, SGML, HTML, XML, Article, Delphi] Delphi Informant 01-May-2000, vol. 6, no. 5 by Richard Phillips
Parsing the Web
Richard Phillips
In this tour de force, Mr Phillips describes the parsing rules for
SGML, HTML, and XML. He then shares and demonstrates three powerful Delphi
classes for programmatically gathering any Web information.
Active Directories [Active Directories, ADSI, Windows NT, Article, Delphi] Delphi Informant 01-May-2000, vol. 6, no. 5 by Simon Murrell
Active Directories
Simon Murrell
Microsoft's Active Directories is to directories what ADO is to
databases. It's also at the foundation of Windows 2000. All of which makes it
important to read Mr Murrell's guide to ADSI for Delphi developers.
Delphi in the Office [Add-in, COM, Word, Excel, Outlook, Office, Article, Delphi] Delphi Informant 01-May-2000, vol. 6, no. 5 by Ron Loewy
Delphi in the Office
Ron Loewy
Step by step, Mr Loewy demonstrates how to construct Office 2000
Add-ins with Delphi. Now you can use COM to extend the capabilities of your
favorite Microsoft Office tools, such as Word, Excel, and Outlook.
Dynamic Forms [Dynamic Form, Form, Dialog, Article, Delphi] Delphi Informant 01-May-2000, vol. 6, no. 5 by Ron Gray
Dynamic Forms
Ron Gray
Need to create a Form or Dialog box on the fly? How about adding new
controls - even database controls - at run time? The applications are endless,
and Mr Gray shows us how it's done.
VisiBroker 3.3 for Delphi [CORBA, VisiBroker, Article, Delphi] Delphi Informant 01-May-2000, vol. 6, no. 5 by Eric Whipple
VisiBroker 3.3 for Delphi
Eric Whipple
With VisiBroker 3.3, and its IDL2PAS compiler, Delphi can now create
CORBA clients based on existing interfaces, written in other languages. Mr
Whipple provides the details and demonstration client and server applications.
What are Pointers [Article, Visual C++] cplus.about.com 01-May-2000
01-May-2000
01-May-2000
What are Pointers
An introduction to pointers
CreateDragImage for (Unlimited) Multiply Selected Items [Listview, Article, Visual C++] www.codeguru.com 01-May-2000 by Hao ( David ) TRAN
CreateDragImage for (Unlimited) Multiply Selected Items
Hao ( David ) TRAN
Includes great Dual-ListCtrl Selection Manager Demo!
Automatic Font Handling Class [GDI, Update, Article, Visual C++] www.codeguru.com 01-May-2000 by Jamie Nordmeyer
Automatic Font Handling Class
Jamie Nordmeyer
Wrapper class that greatly eases task of using fonts from within an
application
CreateDragImage for (Unlimited) Multiply Selected Items [Article, Visual C++] www.earthweb.com 01-May-2000 by David Tran
CreateDragImage for (Unlimited) Multiply Selected Items
David Tran
1-May-2000
1-May-2000
Allows nice user feedback when dragging multiple items from one
listview to another
Automatic Font Handling Class [Article, Visual C++] www.earthweb.com 01-May-2000 by Jamie Nordmeyer
Automatic Font Handling Class
Jamie Nordmeyer
1-May-2000
1-May-2000
Simple class to be used in the place of the MFC CFont class
A Database Tool for Client-Server Systems [Database, Article, Visual C++] www.codeproject.com 30-Apr-2000 by Xiangyang Liu
A Database Tool for Client-Server Systems
Xiangyang Liu
Introducing a database tool for client-server systems
MDI Windows Manager Dialog [Document/View, MDI, Dialog, Article, Visual C++] www.codeproject.com 30-Apr-2000 by Ivan Zhakov
MDI Windows Manager Dialog
Ivan Zhakov
Implementing "Windows..." dialog
Project Explorer [Macro, Add-in, Explorer, Article, Visual C++] www.codeproject.com 30-Apr-2000 by Mark Wickman
Project Explorer
Mark Wickman
A DevStudio Add-in that adds the ability to launch windows explorer in
the directory of the currently active project
Introduction to WTL, Part 1 [Windows Template Library, WTL, Article, Visual C++] www.codeproject.com 30-Apr-2000 by Ben Burnett
Introduction to WTL, Part 1
Ben Burnett
The 'what' and 'where do I get it' of WTL
SHFILEOPSTRUCT and the SHFileOperation [File, Folder, Article, Visual C++] www.codeguru.com 30-Apr-2000 by John Z Czopowik
SHFILEOPSTRUCT and the SHFileOperation
John Z Czopowik
Discusses some of the (poorly documented) issues regarding the use of
the SHFileOperation function
Macro That Opens Resource File as Text [Macro, Article, Visual C++] www.codeguru.com 30-Apr-2000 by Roman A Surma
Macro That Opens Resource File as Text
Roman A Surma
Automates tedious task of opening current resource file (.rc) as text
Macro That Opens Resource File as Text [Article, Visual C++] www.earthweb.com 30-Apr-2000 by Roman Surma
Macro That Opens Resource File as Text
Roman Surma
30-Apr-2000
30-Apr-2000
Automates tedious task of opening current resource file (.rc) as text
Browse IIS Directory Structures
Schellnast Bernd
ISAPI Extension that displays (in an HTML Web page) the directory
structure of an IIS Web Server
CDirTreeCtrl for displaying or selecting Folders and Files [Treeview, Update, Article, Visual C++] www.codeguru.com 29-Apr-2000 by Michael Hofer
CDirTreeCtrl for displaying or selecting Folders and Files
Michael Hofer
Very popular file/folder Treeview that can be used on either a dialog
or a view
DirTreeCtrl - for displaying folders and files [Article, Visual C++] www.earthweb.com 29-Apr-2000 by Michael Hofer
DirTreeCtrl - for displaying folders and files
Michael Hofer
29-Apr-2000
29-Apr-2000
Very popular file/folder treeview that can be used on either a dialog
or a view
COM delegation using the COM channel hook mechanism [COM, DCOM, Delegate, Article, Visual C++] www.codeproject.com 28-Apr-2000 by Pavlo Barvinko
COM delegation using the COM channel hook mechanism
Pavlo Barvinko
Allows a low-privileged COM client to Delegate calls to a COM server
that is running under a higher-priveleged NT user account.
ObjectLookup Utility [COM, DCOM, Article, Visual C++] www.codeproject.com 28-Apr-2000 by Christian Skovdal Andersen
ObjectLookup Utility
Christian Skovdal Andersen
A small utility for looking up an object based on a CLSID or progid
Using the std::sort() Method [C++, MFC, STL, Article, Visual C++] www.codeproject.com 28-Apr-2000 by Paul Wolfensberger
Using the std::sort() Method
Paul Wolfensberger
An introduction to sorting using STL
The CPerfTimer timer class [Date, Time, Article, Visual C++] www.codeproject.com 28-Apr-2000 by Dean Wyant
The CPerfTimer timer class
Dean Wyant
This class encapsulates QueryPerformanceCounter for high precision
timing
Cool WTL Menu with Gradient Sidebar [Windows Template Library, WTL, Menu, Icon, Article, Visual C++] www.codeproject.com 28-Apr-2000 by Ramon Smits
Cool WTL Menu with Gradient Sidebar
Ramon Smits
An article about changing the look of WTL Icon menu
ATL Masked Edit Control [ATL, COM, Article, Visual C++] www.codeguru.com 28-Apr-2000 by Fred Forester
ATL Masked Edit Control
Fred Forester
Implements popular CodeGuru Masked Edit control in ATL
Passing Binary Data in COM [ATL, COM, Article, Visual C++] www.codeguru.com 28-Apr-2000
Passing Binary Data in COM
-N/A
Illustrates most efficient manner of passing binary data via COM
ATL Masked Edit Control [Article, Visual C++] www.earthweb.com 28-Apr-2000 by Fred Forester
ATL Masked Edit Control
Fred Forester
28-Apr-2000
28-Apr-2000
MEdit is an ATL-based version of an MEdit control that appears here at
CodeGuru
Passing Binary Data in COM [Article, Visual C++] www.earthweb.com 28-Apr-2000
Passing Binary Data in COM
-N/A
28-Apr-2000
28-Apr-2000
Illustrates most efficient manner of passing binary data via COM
Deleting a Folder and its Contents in Windows NT (using: Windows NT 4.0) [Command Prompt, Windows NT, Tip] Woody's Windows Watch 27-Apr-2000
Deleting a Folder and its Contents in Windows NT
ZDTips: Windows NT
If you want to delete a folder, including all files and folders within the
folder, you can use the rd Command Prompt utility. (This command is very
similar to the DOS deltree command.)
To delete a folder and all of its contents, type the following:
rd x:\folder /S
Replace x:\folder with the drive letter and name of the folder you want to
delete. If you don't want rd to verify that you really do want to delete the
folder and everything below it, you can type the following command:
rd x:\folder /S /Q
Adding the /Q parameter runs rd in "quiet" mode--which means you won't be
prompted to confirm the deletion of the folder and its contents. (So be
careful!!)
Performance Comparison - FSO vs API (using: Visual Basic 6.0) [File, FileSystemObject Object, FindFirstFile(), Visual Basic, Tip] www.mvps.org/vbnet 27-Apr-2000 by Randy Birch
Whenever someone in the newsgroups ask about performing file searches in a
specific folder, you can count on three different answers - use Dir(), use the
FileSystemObject (FSO), and use the FindFirstFile APIs.
I always recommend the latter ... and then put up with comments about the
amount of code required to actually do it compared to the Dir or FSO method.
The FSO method looks so compact ... but what is the real price paid for using
an unnecessary COM object? The illustration shows the results on my system for
a non-recursive ListView listing of all files in my \winnt\system32\ folder.
The demo is as simple as possible to reduce unneeded overhead, and both methods
return identical data.
The FileSystemObject method uses the FSO and one additional routine to populate
the ListView. The API method uses FindFirstFile/FindNextFile/FindClose to
perform the search, along with SHGetFileInfo for obtaining the file type and
FileTimeToSystemTime for obtaining the file date. In both methods the elapsed
time is tracked using the GetTickCount API.
The first illustration shows the comparative results for the non-recursive
search for files in my \winnt\ststem32\ folder, populating the ListView with
name, size, date, and file-type info. The second illustrations shows the result
of the same searches, but with the code to populate the SubItem code commented
out, eliminating some of the ListView overhead as well as API and FSO property
calls. The API methods have been tweaked with suggestions provided by Brad
Martinez, providing even better performance compared to the FSO.
Regardless of the amount of data displayed, tests prove that a well-written API
method blows the doors off of a similar FileSystemObject method. Sure it
involves more code, but the end results should be obvious to anyone wishing to
maximize the performance of their application.
Form Code
Ad to a form a ListView (ListView1), two command buttons (Command1, Command2)
and four textboxes (Text1/Text2 f ... (cont.)
Accessing Microsoft Access Databases in ASP using ADO [Active Server Pages, Access, Database, ASP, ADO, Article, Visual C++] www.codeproject.com 27-Apr-2000 by Chris Maunder
Accessing Microsoft Access Databases in ASP using ADO
Chris Maunder
A simple introduction to using Access .mdb databases in your ASP pages
Implementing Tooltips for Menus [Menu, Article, Visual C++] www.codeguru.com 27-Apr-2000 by Marco Dehn
Implementing Tooltips for Menus
Marco Dehn
Illustrates how to implement tooltips for menus by overriding some key
CMainFrame functions
Getting ComboBox Strings to Appear with an ATL Project [ATL, COM, Article, Visual C++] www.codeguru.com 27-Apr-2000 by Joe Schmitt
Getting ComboBox Strings to Appear with an ATL Project
Joe Schmitt
Shows how to overcome Microsoft-acknowledged bug in ATL where ComboBox
strings don't appear at runtime
Getting ComboBox Strings to Appear with an ATL Project [Article, Visual C++] www.earthweb.com 27-Apr-2000 by Joe Schmitt
Getting ComboBox Strings to Appear with an ATL Project
Joe Schmitt
27-Apr-2000
27-Apr-2000
This article illustrates how to overcome a bug in ATL that deals with
creating a dialog resource with a combobox that contains string initialization
data
Implementing Tooltips for Menus [Article, Visual C++] www.earthweb.com 27-Apr-2000 by Marco Dehn
Implementing Tooltips for Menus
Marco Dehn
27-Apr-2000
27-Apr-2000
Illustrates how to implement tooltips for menus by overriding some key
CMainFrame functions
cThumbnailViewer .... How to create an thumbnail image viewer [Image Viewer, Thumbnail, Visual Basic, VB Code Module] www.codeoftheweek.com 26-Apr-2000, no. 121
Requirements
Visual Basic 5.0 or higher.
In this Issue
In this issue we discuss how to create an thumbnail image viewer.
The basic idea here is to create a scrollable window that can
display many images at once. Most image management programs
contain this feature.
cThumbnailViewer
This class takes a form with a couple of controls on it (two
picture boxes and a vertical scroller control) and turns it into a
easy-to-use image viewer. It supports three different image
sizes.
We are planning on expanding this module to include routines to
aid in the creation of a full-blown image viewer. With the
proliferation of digital cameras and online images we have been
receiving many requests for routines to help manage these
graphics. If you have any suggestions, drop us an email at
image@codeoftheweek.com
NOTE: You can use last weeks' issue to create thumbnail versions
of all the graphics within a directory and then point this viewer
class to the directory you created the thumbnails in. This can
speed up the performance of this thumbnail viewer tremendously.
Another useful feature would be the autogeneration of the
thumbnail images on the fly to speed up future viewing of the
images.
Properties
Public ParentForm As Form
The form that will be the image viewer form. This form must have
a picture box (with an Index value of zero) control within a
container control (another picture box works fine) and a vertical
scroller (VScrollBar) control.
Public PictureFolder As String
Folder name which contains the graphics to display. This should
be the fully qualfied path name, such as c:\windows or
e:\pics\thumbs
Public ThumbnailSize As eThumbSize
This determines the size of the thumbnail graphic. It can be one
of the following: ethSmall, ethMedium, ethLarge.
Public WithEvents Scroller As VScrollBar
This property needs to be set to the vertical scroller that is on
the image form. The class will automatically manage this scroller
and respond to th ... (cont.)
SQL Server and Database Enumerator [Database, SQL Server, Article, Visual C++] www.codeproject.com 26-Apr-2000 by Santosh Rao
SQL Server and Database Enumerator
Santosh Rao
A class that helps enumerate SQL servers, databases and languages.
Class (CShellList) to Retrieve All Icon File Types [ImageList Control, Article, Visual C++] www.codeguru.com 26-Apr-2000 by Nathan Moinvaziri
Class (CShellList) to Retrieve All Icon File Types
Nathan Moinvaziri
Shows how to use the Shell API function, SHGetFileInfo, to retrieve
file information such as icon file types
Minimize-to-SysTray for Dialog-Based Applications [Shell Programming, Article, Visual C++] www.codeguru.com 26-Apr-2000 by Warren Young
Minimize-to-SysTray for Dialog-Based Applications
Warren Young
Illustrates how to have your dialog based applications minimize to the
system tray instead of the task bar
Minimize-to-SysTray for Dialog-Based Applications [Article, Visual C++] www.earthweb.com 26-Apr-2000 by Warren Young
Minimize-to-SysTray for Dialog-Based Applications
Warren Young
26-Apr-2000
26-Apr-2000
Minimize-to-systray is a common UI idiom these days, but Windows
doesn't make this task easy
Asynchronous Sockets Class as an ActiveX Control [Network, Article, Visual C++] www.codeguru.com 25-Apr-2000 by G Balamurali
Asynchronous Sockets Class as an ActiveX Control
G Balamurali
Non-blocking socket solution based on MFC's CASyncSocket and
implemented as an ActiveX control for developing other applications
Logging 404's using Filter DLL [ISAPI, Article, Visual C++] www.codeguru.com 25-Apr-2000 by Chiraz
Logging 404's using Filter DLL
Chiraz
Simple ISAPI filter (and maintenance application) that logs 404 events
Asynchronous Sockets Class as an ActiveX Control [Article, Visual C++] www.earthweb.com 25-Apr-2000
Asynchronous Sockets Class as an ActiveX Control
-N/A
25-Apr-2000
25-Apr-2000
VC++ code to perform non-blocking socket communication
Logging 404's using Filter DLL [Article, Visual C++] www.earthweb.com 25-Apr-2000
Logging 404's using Filter DLL
-N/A
25-Apr-2000
25-Apr-2000
VC++ code to list Web site 404s
MDI Development in Delphi. Part I. [Article, Delphi] delphi.about.com 25-Apr-2000
25-Apr-2000
25-Apr-2000
MDI Development in Delphi. Part I.
Constructing "multiple document interface" application with Delphi.
Examining MDI parent/child relationship, menus and some most important MDI
parent form properties.
Create Multiple Level Subdirectories
Brad Guttilla
Article moved from Misc section
View Desktops Remotely [Network, Update, Article, Visual C++] www.codeguru.com 24-Apr-2000 by Andy Bantly
View Desktops Remotely
Andy Bantly
Updated client and server code
SysInfo .... A non-visible control that gathers system information about the operating system, disk space and memory, processor details and file version information from a selected module [Visual C++, ActiveX Control] www.organicsoftware.net 24-Apr-2000
A non-visible control that gathers system information about the operating
system, disk space and memory, processor details and file version information
from a selected module. The screenshot shows a client dialog-based application
using the control to display all this information.
Viewer Desktop Remotely
-N/A
24-Apr-2000
24-Apr-2000
VC++ projects to create a Sockets programming knowledgebase
COM Delegation Using the COM Channel Hook Mechanism [ATL, COM, Article, Visual C++] www.codeguru.com 23-Apr-2000 by Paul Barvinko
COM Delegation Using the COM Channel Hook Mechanism
Paul Barvinko
Allows a COM client to delegate calls to a COM server that is running
under a higher-priveleged NT user account.
COM Delegation Using the COM Channel Hook Mechanism [Article, Visual C++] www.earthweb.com 23-Apr-2000
COM Delegation Using the COM Channel Hook Mechanism
-N/A
23-Apr-2000
23-Apr-2000
VC++ code to provide a channel hook mechanism for COM delegation
Class to manipulate UNICODE string on Window 95/98 [String, Update, Article, Visual C++] www.codeguru.com 22-Apr-2000 by Kim, Sang-Yup
Class to manipulate UNICODE string on Window 95/98
Kim, Sang-Yup
Updated article and demo
Class to manipulate UNICODE string on Window 95/98 [Article, Visual C++] www.earthweb.com 22-Apr-2000
Class to manipulate UNICODE string on Window 95/98
-N/A
22-Apr-2000
22-Apr-2000
VC++ code for a class to manipulate UNICODE strings
Using VB to load a Web page (using: Visual Basic 6.0) [HTML, Microsoft Internet Transfer Control, Web, DHTML, Visual Basic, Tip] www.devx.com 20-Apr-2000 by Michael Gellis
Is there a way (using VB) to load a Web page (without actually showing the page
through a browser or otherwise) and then extract the HTML code for use in
extracting data (whether by scanning the actual HTML or saving it as a text
file for later automated scanning)?
Yes there is. Place the Microsoft Internet Control on a form, navigate to the
page you want to scan, using the Navigate method. Once the page has been
downloaded (beware downloading is asynchronous) you can use the WebBrowser's
Document object to gain entry into the downloaded document's DHTML object
model. The following code will return all the HTML in a document:
s=WebBrowser1.Document.All(0).OuterHTML
Convert a Text File to XML (using: Visual Basic 6.0) [Document Object Model, DOM, FielSystemObject Object, XML, Visual Basic, Article, Tip] www.devx.com 19-Apr-2000 by Kurt Cagle
Convert a Text File to XML
Harness the XML Document Object Model to create generic functions for dealing
with straight text
By Kurt Cagle
Here's an interesting conundrum. You have an application that doesn't have an
object model (or has one that's so hideously complex that you'd just as soon
not pay a programmer three months' wages just to build a matching automation
interface). The details of the program are unimportant, except that it can
output a comma or tab-separated text file; it can produce a text file with
fields of a fixed length; or it can work with an INI file or some similar
minimally structured text file.
These sort of text files are the poor cousins of the database world. They often
contain sufficiently small numbers of records, which makes them ideal to work
with as XML files. With the data in an XML file, you can perform queries, sort
and filter the data, and even handle multilayer formats—all with a common set
of tools. This data file could be sent to a different machine without worrying
about such coding conventions as whether you're using a comma and I'm using a
tab to separate data. Once in an XML file, you can easily transform the data
using XSL (Extensible Stylesheet Language) into tables, combo boxes, or far
more sophisticated controls or behaviors. In other words, the record becomes
vastly easier to manipulate anywhere.
If this is the case, then it should be easy to create an XSL filter or perhaps
a schema to load this data into an XML file. Unfortunately, as useful as this
would be, the fundamental problem that any text-to-XML conversion faces is that
without tags, an XSL filter or schema sees such files as undifferentiated
blobs. However, here's one case where you can harness the XML Document Object
Model itself to create a few fairly generic functions for dealing with straight
text.
Delimited text to XML
Consider a simple text database that contains information about employees in
your company:
name,dateOfBirth ... (cont.)
Validate Data with Regular Expressions and XSL (using: Visual Basic 6.0) [FileSystemObject Object, Regular Expression, XSL, Visual Basic, Article, Tip] www.devx.com 19-Apr-2000 by Kurt Cagle
Validate Data with Regular Expressions and XSL
By Kurt Cagle
Extensible Stylesheet Language (XSL) has slowly been gaining a reputation as
the SQL of the hierarchical data world. Even with only the partial
implementation that Microsoft's XSL offers, you can perform surprisingly
complex queries. Yet the language has been hamstrung somewhat in that the
current XSL query language can only perform queries based upon the complete
text of a text node. There is no clean way to search all nodes and return nodes
that include an expression within a larger block of text, or that can validate
specific types of text.
Furthermore, there are times where you need to include parameters in your XML
(or XSL) that change depending upon external conditions (the XSL targets
different browsers, the return XML must work against specific records passed
through ASP parameters, and so forth). XML does support entities, of course,
but in the current implementation, the entities must be defined within a DTD
(useful for documents, but worthless for programmatic parameters). Microsoft's
XML Schema notation as it exists right now simply doesn't support entities.
In both of these cases (and several others), you need a mechanism that can
search at a lower level of granularity than the XML text element. Fortunately,
the problem of searching within strings of text is extremely common, and over
the years a number of tools have arisen to solve that particular problem set.
The most powerful (and most pervasive) are the constructs known as regular
expressions.
Introducing regular expressions
Regular expressions are staples in the Unix world—indeed, whole languages are
built around them (Perl, Python, and Tcl, to name a few). But surprisingly they
have only begun creeping into the Windows world fairly recently, primarily in
the scripting languages, JavaScript and VBScript, although you can use them to
good effect in languages like Visual Basic and Java.
With a regular expression, you ... (cont.)
CFraction: a double / fraction / String conversion class [C++, MFC, STL, String, Article, Visual C++] www.codeproject.com 18-Apr-2000 by Dean Wyant
CFraction: a double / fraction / String conversion class
Dean Wyant
A class that converts between doubles, strings and fractional
representations
Programming Toolbar Chevrons [Toolbar, Docking Window, Article, Visual C++] www.codeproject.com 18-Apr-2000 by S Rajasekar
Programming Toolbar Chevrons
S Rajasekar
An introduction to using the cool new toolbar chevrons
Animated Dialog Windows [Font, GDI, GUI, Dialog, Article, Visual C++] www.codeproject.com 18-Apr-2000 by Anton Stuck
Animated Dialog Windows
Anton Stuck
A class that provides some simple, yet spectacular window animation
effects. Try the demo!
Arrays in Object Pascal [Article, Delphi] delphi.about.com 18-Apr-2000
18-Apr-2000
18-Apr-2000
Arrays in Object Pascal
Delphi For Beginners: Understanding and using array data types in
Delphi.
Convert a CString value to integer value in order to do computation (using: Visual C++ 6.0) [Conversion, CString Class, Integer, int, Visual C++, Tip] www.devx.com 17-Apr-2000
How can I convert a CString value to integer value in order to do computation?
CString StrInt = "23";
int i = _ttoi(StrInt);
There is also _ttol, _ttoi64 available.
Overloading Operator << for a User-Defined Type (using: Visual C++ 6.0) [C++, Overloading, Visual C++, Tip] www.devx.com 17-Apr-2000 by Danny Kalev
Overloading Operator << for a User-Defined Type
By Danny Kalev
One of the advantages of using the iostream objects is that you can customize
them to support your own classes. I will show how to overload ostream's
operator << so that it can display a user-defined object.
Suppose you declared the following class:
class student
{
private:
string name;
string department;
public:
student(string n = "", string dep = 0)
: name(n), department(dep) {}
string get_name() const { return name; }
string get_department () const { return department; }
void set_name(const string& n) { name=n; }
void set_department (const string& d) {department=d;}
};
And you want to be able to use it in a cout statement as follows:
student st("Bill Jones", "Zoology"); // create instance
cout<
Get the contents of the system variable "PATH" (using: Visual C++ 6.0) [getenv(), MFC, PATH, System Variable, Environment Variable, Visual C++, Tip] www.devx.com 17-Apr-2000 by Danny Kalev
Is there any method (MFC, Win32) to get the contents of the systemvariable
"PATH"?
Sure there is. Use the standard function getenv() for this purpose:
#include
{
char * descr = getenv("PATH");
}
After the getenv() call, the pointer descr will point to the string description
of the environment variable path.
basImage .... How to take any image and create a thumbnail version of it [Image, PictureBox Control, Thumbnail, Visual Basic, VB Code Module] www.codeoftheweek.com 17-Apr-2000, no. 120
Requirements
Visual Basic 5.0 or higher.
In this issue we discuss how to take any image and create a
thumbnail version of it.
basImage
This module contains a single routine called CreateThumbnail that
takes an image and creates a new version of the image in bitmap
format that can be used as a thumbnail version of the original
graphic. This is useful for any application that needs to show
many large images in a smaller space (such as an image viewing
program). It can also be useful for generating thumbnail graphics
for use on the web (i.e. catalog images, product images, etc)
We are planning on expanding this module to include routines to
aid in the creation of a full-blown image viewer. With the
proliferation of digital cameras and online images we have been
receiving many requests for routines to help manage these
graphics. If you have any suggestions, drop us an email at
image@codeoftheweek.com
Methods
Public Sub CreateThumbnail(Picbox As PictureBox, sImageFile As String,
sThumbnailFile As String)
This routine requires the existence of a PictureBox on a form.
It does not have to be a visible PictureBox. picbox is the
PictureBox on your form. sImageFile is the name of the image file
to load into picbox for which you want to create a thumbnail
graphic. sThumbnailFile is the file that the thumbnail graphic
will be saved into. It should have an extension of BMP since the
SavePicture method that this routine uses only supports the saving
of bitmaps.
It will not change the original graphic in any way.
Any errors which occur in this routine (such as a missing file)
will be raised to the caller.
Sample Usage
This example will take the image file called e:\pics\p1010023.jpg
and convert it to a thumbnail called e:\pics\thumb-p1010023.bmp.
CreateThumbnail pic, "e:\pics\p1010023.jpg", "e:\pics\thumb-p1010023.bmp"
The Microsoft Message Queue [Windows 2000, Article, Visual C++] www.codeproject.com 16-Apr-2000 by Santosh Rao
The Microsoft Message Queue
Santosh Rao
An introduction to the Microsoft Message Queue (MSMQ)
Creating DeskBands with an ATL Object Wizard [ATL, ATL Object Wizard, COM, Article, Visual C++] www.codeproject.com 15-Apr-2000 by Erik Thompson
Creating DeskBands with an ATL Object Wizard
Erik Thompson
An ATL Object Wizard that creates an DeskBand COM Object implementation
Transparent Scrolling Credits [Bitmap, Palette, Color, Article, Visual C++] www.codeproject.com 15-Apr-2000 by Jim Connor
Transparent Scrolling Credits
Jim Connor
Scroll Colored text and bitmaps transparently over a bitmapped
background.
CComboBox with disabled items [Combobox, List Control, CComboBox Class, Article, Visual C++] www.codeproject.com 15-Apr-2000 by Petr Novotny
CComboBox with disabled items
Petr Novotny
combobox with disabled items
CListBox with disabled items [Combobox, List Control, CListBox Class, Article, Visual C++] www.codeproject.com 15-Apr-2000 by Petr Novotny
CListBox with disabled items
Petr Novotny
Listbox with disabled items.
Simple wizard property sheet class [Property Sheet, CPropertySheet Class, Article, Visual C++] www.codeproject.com 15-Apr-2000 by Petr Novotny
Simple wizard property sheet class
Petr Novotny
A simply class to turn CPropertySheet into wizard mode without needing
to alert the property pages within
Copy Location Shell Extension
Itay Szekely
This shell extension adds the ability to copy File and Folder names
from the Windows Explorer to the clipboard.
Communicating with Remote Processes without DCOM or CORBA [Thread, Process, Inteprocess Communication, DCOM, Article, Visual C++] www.codeproject.com 15-Apr-2000 by Xiangyang Liu
Communicating with Remote Processes without DCOM or CORBA
Xiangyang Liu
Introduce a new interprocess communication tool
Create your own controls - the art of subclassing [Control, Common Control, MFC, Article, Visual C++] www.codeproject.com 14-Apr-2000 by Chris Maunder
Create your own controls - the art of subclassing
Chris Maunder
An introduction to subclassing the Windows Common Controls using MFC
A utility to stagger processes at Windows Startup [Thread, Process, Inteprocess Communication, Article, Visual C++] www.codeproject.com 14-Apr-2000 by Philip McGahan
A utility to stagger processes at Windows Startup
Philip McGahan
This utility uses very little system resources to launch apps base on a
timer.
basLogin .... How to retrieve the username used to login to Windows [Username, WNetGetUser(), Visual Basic, VB Code Module] www.codeoftheweek.com 12-Apr-2000, no. 122
Requirements
Visual Basic 4.0 32-bit or higher.
In this issue we discuss how to retrieve the username used to
login to Windows.
basLogin
This module makes it easy to get the username used to login to
Windows. This routine is most useful to avoid having to prompt
your users with additional login information in your applications.
You can use the built-in operating system security to provide
authentication. This is most effective in Windows NT where
security can be very high. One example of this is how Microsoft
Outlook works.
Functions
Public Function LoginName() As String
Returns the username used to login to Windows. If an error
occurs it will be raised to the calling routine.
Sample Usage
Simply shows a message box with the current username.
MsgBox LoginName()
Some useful additions for the C++ standard library [C++, MFC, STL, Article, Visual C++] www.codeproject.com 12-Apr-2000 by Daniel Lohmann
Some useful additions for the C++ standard library
Daniel Lohmann
Defines some TCHAR compatible STL elements and gives you an
std::ostream to send output to the debugger windows.
Write a C++ class [Macro, Add-in, Article, Visual C++] www.codeproject.com 12-Apr-2000 by Dhananjay Gune
Write a C++ class
Dhananjay Gune
A Macro which writes an empty C++ class.
A simple HH:MM:SS alarm clock. You can get/set the hours/minutes for the alarm
and/or the clock time. You can also set the sound to be used for the alarm,
and turn the alarm on/off. The foreground and background colors are also
exposed properties. The user has access to design-time properties at runtime
via the right mouse button.
ColorSpace .... A color selection composite control which exposes colors in both RGB (Red-Green-Blue) and HSV (Hue-Saturation-Luminance Value) forms [ATL Control, ActiveX Control, Visual C++] www.organicsoftware.net 30-Apr-2000
A color selection composite control which exposes colors in both RGB
(Red-Green-Blue) and HSV (Hue-Saturation-Luminance Value) forms. (With many
thanks to Rajiv Ramachandran and the developer.com Codeguru site).
4 Different Methods to display the Find Files Dialog [Find Files Dialog, Article, Visual Basic] www.earthweb.com 11-Apr-2000
4 Different Methods to display the Find Files Dialog
-N/A
11-Apr-2000
11-Apr-2000
VB code to display a Find Files dialog box
A Visual Basic PaintBrush / Imaging Program [Imaging, Article, Visual Basic] www.earthweb.com 11-Apr-2000
A Visual Basic PaintBrush / Imaging Program
-N/A
11-Apr-2000
11-Apr-2000
VB code to create an imaging application
Dynamic Link Libraries and Delphi [Article, Delphi] delphi.about.com 11-Apr-2000
11-Apr-2000
11-Apr-2000
Dynamic Link Libraries and Delphi
Everything you ever wanted to know about DLLs and Delphi but didn't
know where to look for answers (or were to afraid to ask).
The future of Visual Basic [Article, Visual Basic] visualbasic.about.com 10-Apr-2000
10-Apr-2000
10-Apr-2000
The future of Visual Basic
Your VB guide takes a look at a few of the features we can expect in
the next version of Visual Basic.
A 'mouse repeat' function [C++, MFC, STL, Article, Visual C++] www.codeproject.com 09-Apr-2000 by Pete Sackett
A 'mouse repeat' function
Pete Sackett
A function that simulates the keyboard repeat behavior for mouse clicks
Quick and Dirty Collection Class Notes [C++, MFC, STL, Article, Visual C++] www.codeproject.com 09-Apr-2000 by Joe Harleman
Quick and Dirty Collection Class Notes
Joe Harleman
An article describing MFC Collection Classes
String Tokenizer class [C++, MFC, STL, String, Article, Visual C++] www.codeproject.com 09-Apr-2000 by Zoly Farkas
String Tokenizer class
Zoly Farkas
A customizable string tokenizer
A snap to screen border dialog class [Dialog, Windows Programming, Article, Visual C++] www.codeproject.com 09-Apr-2000 by François Gagné
A snap to screen border dialog class
François Gagné
Dialog class that implement a snap-to-screen-border feature like Winamp
Shell Extension to make executables as services [Shell Programming, Shell Extension, Article, Visual C++] www.codeproject.com 09-Apr-2000 by Sardaukar
Shell Extension to make executables as services
Sardaukar
A 'not-so-simple' shell extension allowing executable to be run as
services
CSNTPClient - An SNTP Implementation [Internet, Network, MFC, Article, Visual C++] www.codeproject.com 08-Apr-2000 by P J Naughter
CSNTPClient - An SNTP Implementation
P J Naughter
A collection of freeware MFC classes to encapsulate the SNTP protocol.
CTraceRoute v1.0 [Internet, Network, MFC, Article, Visual C++] www.codeproject.com 08-Apr-2000 by P J Naughter
CTraceRoute v1.0
P J Naughter
A freeware MFC class to implement traceroute functionality.
W3Mfc v1.11 [Internet, Network, MFC, Article, Visual C++] www.codeproject.com 08-Apr-2000 by P J Naughter
W3Mfc v1.11
P J Naughter
A collection of freeware MFC classes to implement a simple Web server.
Making UNIX and Windows NT Talk [Cross-platform Development, C++, Networking, Socket, Threading, Unix, Windows NT, Book] Purchased 27-Mar-2000, $69.95
C++ tutorials include documents and examples (using: Visual C++) [C++, OOP, Tutorial, Visual C++, Example] CompuServe 06-Apr-2000
A series of 12 lessons teaching C++ programming for a person with a
working knowledge of C. Careful attention is given to a full description
of Object Oriented Programming and how to use it
Frhed - free hex editor is a free binary file editor for Windows 95/98/Nt4.
Source code in C++ is included (does not use MFC, only the Win32 API). Features
include cut&paste (for binary and text data), find and replace (binary and/or
text), bookmarking, file comparison, customizable colors and font (ANSI or OEM
display), partially opening large files and more.
VBLikeCombo - A Visual Basic Style Combo Box [Combobox, List Control, Article, Visual C++] www.codeproject.com 06-Apr-2000 by J Cardinal
VBLikeCombo - A Visual Basic Style Combo Box
J Cardinal
Creates a combo box similar to those in Visual Basic.
BUG in Visual C++ access for destructors with virtual base classes [C++, MFC, STL, Article, Visual C++] www.codeproject.com 06-Apr-2000 by Roger Onslow
BUG in Visual C++ access for destructors with virtual base classes
Roger Onslow
When inheriting from a virtual base class the access specifier for the
destructor is ignored
Wrapper Classes for MFC list classes the extend their functionality (using: Visual C++ 6.0) [Smart List, Wrapper Class, MFC, Article, Visual C++] www.codeproject.com 06-Apr-2000 by Simon Hughes
Simon Hughes
Wrapper Classes for MFC list classes the extend their functionality
frhed - free hex editor
Raihan Kibria
A free hex editor with C++ source
CS-RCS - a free revision control system for Windows (using: Visual C++ 6.0) [Tool, Component, Article, Visual C++] www.codeproject.com 06-Apr-2000
CS-RCS - a free revision control system for Windows
Component Software
Based on GNU RCS, CS-RCS is fully integrated with Windows, providing
robust and intuitive configuration management and change control
SmartHelp 1.01
Goran Mitrovic
Update to popular Visual Studio add-in
System Information Class [System, Article, Visual C++] www.codeguru.com 05-Apr-2000 by Tien Tran Ngoc
System Information Class
Tien Tran Ngoc
Minor bugs fixed and readme.txt added
Simple Numerical Formula Parser [C++, MFC, Windows Programming, Article, Visual C++] www.codeguru.com 05-Apr-2000 by Ralf Wirtz
Simple Numerical Formula Parser
Ralf Wirtz
Colored/Blinking Controls and Dialogs with any Font [Article, Visual C++] www.earthweb.com 05-Apr-2000 by Yury Goltsman
Colored/Blinking Controls and Dialogs with any Font
Yury Goltsman
5-Apr-2000
5-Apr-2000
In this article I want to introduce two template classes, that can help
you in simple dialog development. Very frequently we try to set different color
or font to static, editbox or another control in our
System Information Class [Article, Visual C++] www.earthweb.com 05-Apr-2000 by Tien Tran Ngoc
System Information Class
Tien Tran Ngoc
5-Apr-2000
5-Apr-2000
C++ Class for retrieving almost all the information in a Windows system
with only two lines of code
Simple Numerical Formula Parser [Article, Visual C++] www.earthweb.com 05-Apr-2000
Simple Numerical Formula Parser
-N/A
5-Apr-2000
5-Apr-2000
VC++ code for a class to parse formulas
Handling right-click on the CListCtrl header control [Article, Visual C++] www.earthweb.com 04-Apr-2000
Handling right-click on the CListCtrl header control
-N/A
4-Apr-2000
4-Apr-2000
VC++ code to determine a right-click on a header control
A Tab Control - VB5/6 [Tab Control, Article, Visual Basic] www.earthweb.com 04-Apr-2000
A Tab Control - VB5/6
-N/A
4-Apr-2000
4-Apr-2000
VB code to create a tabbed dialog control
String Function - CountWords [String, Article, Visual Basic] www.earthweb.com 04-Apr-2000
String Function - CountWords
-N/A
4-Apr-2000
4-Apr-2000
VB code to return the number of words in a string
An Owner Drawn Clock Control VB5/6 [Ownerdrawn, Article, Visual Basic] www.earthweb.com 04-Apr-2000
An Owner Drawn Clock Control VB5/6
-N/A
4-Apr-2000
4-Apr-2000
VB code to create an analogue clock
Using XML and Word for Mail Merging [XML, Word, Mail Merge, Article, Visual Basic] www.earthweb.com 04-Apr-2000
Using XML and Word for Mail Merging
-N/A
4-Apr-2000
4-Apr-2000
VB code to merge XML-files with a MS Word97 template
An Owner Drawn Calendar Control VB5/6 [Ownerdrawn, Calendar, Control, Article, Visual Basic] www.earthweb.com 04-Apr-2000
An Owner Drawn Calendar Control VB5/6
-N/A
4-Apr-2000
4-Apr-2000
VB code to create a calendar control
Exploring Directories and Files [Article, Delphi] delphi.about.com 04-Apr-2000
04-Apr-2000
04-Apr-2000
Exploring Directories and Files
Delphi For Beginners: Creating custom file-selection and
directory-navigation forms (dialogs) with file system components.
System Information Class [System, Update, Article, Visual C++] www.codeguru.com 03-Apr-2000 by Tien Chen
System Information Class
Tien Chen
Code updated and demo added
Handling right-click on the CListCtrl header control [Listview, Article, Visual C++] www.codeguru.com 03-Apr-2000 by Alberto Gattegno
Handling right-click on the CListCtrl header control
Alberto Gattegno
An alternative to determining the right click on the header of the
CListCtrl
Using the Document/View Architecture with a DLL [Document/View, Article, Visual C++] www.codeguru.com 03-Apr-2000 by Roger Allen
Using the Document/View Architecture with a DLL
Roger Allen
Explorting Views from a DLL
Creating a CTabCtrl Application [Control, Article, Visual C++] www.codeguru.com 03-Apr-2000 by Ben Hill
Creating a CTabCtrl Application
Ben Hill
Illustrates how to quickly create an application whose dialog contains
a tab control
Using the Document/View Architecture with a DLL [Article, Visual C++] www.earthweb.com 03-Apr-2000
Using the Document/View Architecture with a DLL
-N/A
3-Apr-2000
3-Apr-2000
VC++ code for a DLL containing document/views
Creating a CTabCtrl Application [Article, Visual C++] www.earthweb.com 03-Apr-2000
Creating a CTabCtrl Application
-N/A
3-Apr-2000
3-Apr-2000
VC++ code to create a tabbed dialog box
basCCValidate .... How use the LUHN credit card number validation formula [Credit Card Number, Visual Basic, VB Code Module] www.codeoftheweek.com 02-Apr-2000, no. 119
Requirements
Visual Basic 3.0 or higher.
In this Issue
In this issue we discuss how use the LUHN credit card number
validation formula. This is sometimes called the MOD 10 formula.
basCCValidate
This module contains a single routine called CreditCardValidate
that takes a string of digits, removes all characters other than
numbers and performs the Luhn validation formula (mod 10 formula).
This algorithm works by doing the following:
- A checksum is calculated by summing all the alternate digits
starting with the rightmost digit and moving to the left.
- Once this sum is calculated start with the second to last digit
and double each alternate digit (basically you are using each
number you did not use in the first step) moving to the left.
After doubling each digit add it to the total calculated in the
first step.
- If the doubling of a digit results in a number greater or equal
to 10 then subtract 9 from the overall total for each digit that
is greater or equal to 10. The final sum after processing all the
digits should be a multiple of ten if the credit card number is
valid.
If you had a number such as 372712312312345 the formula would
calculate like this: 5+3+1+2+3+1+2+3 for the first step. The
first part of the second step would be
(4*2)+(2*2)+(3*2)+(1*2)+(2*2)+(7*2)+(7*2) which would result in
the following additions 8+4+6+3+4+(14-9)+(14-9).
Functions
Public Function CreditCardValidate(sCardNumber As String) As Boolean
Sample Usage
Some examples are shown using different credit card numbers
(NOTE: the credit card numbers are not real card numbers).
Debug.Print CreditCardValidate("4234123412341234")
' will print out as True (if the credit card was actually a real card
number)
02-Apr-2000
02-Apr-2000
Understanding OO Programming
A tutorial on the basics of Object-Oriented Programming
CStringFile Class [File, Folder, Article, Visual C++] www.codeguru.com 02-Apr-2000 by Frank Driesens
CStringFile Class
Frank Driesens
Efficient means of reading large text files
Simple Chat Program [Internet, Article, Visual C++] www.codeguru.com 02-Apr-2000 by Ivan Cerrato, Max Vigilante, Bartolo Sorrentino
Simple Chat Program
Ivan Cerrato and Max Vigilante and Bartolo Sorrentino
ATL and DCOM based Chat Program
UniTalk2 Chat Program [Article, Visual C++] www.earthweb.com 02-Apr-2000
UniTalk2 Chat Program
-N/A
2-Apr-2000
2-Apr-2000
VC++ code for a chat program
CStringFile Class [Article, Visual C++] www.earthweb.com 02-Apr-2000
CStringFile Class
-N/A
2-Apr-2000
2-Apr-2000
VC++ code to read and filter a text file
Programming Excel COM Objects in C++ [Excel, COM, C++, Article, Visual C++] C++ Users Journal 01-Apr-2000 by Philippe Lacoude, Grum Ketema
Programming Excel COM Objects in C++
Philippe Lacoude
and
Grum Ketema
Excel is a powerful tool that you can use from a C++ program, once you
get the protocol right.
Stressing Your COM Objects [Stressing, COM, Synchronization Error, Article, Visual C++] C++ Users Journal 01-Apr-2000 by Panos Kougiouris
Stressing Your COM Objects
Panos Kougiouris
The best known way to detect Synchronization Errors in code is simply
to pound on it to see if it breaks.
Views, A New Form of Container Adaptors [Container, Article, Visual C++] C++ Users Journal 01-Apr-2000 by Gary Powell, Martin Weiser
Views, A New Form of Container Adaptors
Gary Powell
and
Martin Weiser
There’s more than one way to slice a container. Views provide a
particularly sharp knife.
Error Logging with Iostreams [Error, Logging, Iostream, Debugging, Article, Visual C++] C++ Users Journal 01-Apr-2000 by Brad Offer
Error Logging with Iostreams
Brad Offer
You don’t have to sacrifice the convenience of Iostreams while
Debugging, at least not if they’re packaged properly.
A Class for Scanning Directories [Class, Wildcard, Directory, Article, Visual C++] C++ Users Journal 01-Apr-2000 by Michal Niklas
A Class for Scanning Directories
Michal Niklas
Expanding Wildcard filenames is something you want to do uniformly
across many utilities and different operating systems.
Building HTML Documents with C++ [HTML, C++, Article, Visual C++] C++ Users Journal 01-Apr-2000 by Giovanni Bavestrelli
Building HTML Documents with C++
Giovanni Bavestrelli
The block structure of C++ can really help you get the block structure
of HTML right.
Testing C++ Library Conformance [C++, Library, Conformance, Article, Visual C++] C++ Users Journal 01-Apr-2000 by P J Plauger
P J Plauger
Testing C++ Library Conformance
Now that we have a standard for C++ libraries, we need to know how to
determine which libraries conform to the standard.
Casts and Conversions [Cast, Conversion, Type Casting, C++, Article, Visual C++] C++ Users Journal 01-Apr-2000 by Pete Becker
Pete Becker
Casts and Conversions
Type Casting is a blunt instrument in C. The four different casts in
C++ are safer, but still require care when used.
Delphi COM: Out-of-Process and DCOM, Part 2 [COM, DCOM, Out-of-Process Server, Article, Delphi] Delphi Developer 01-Apr-2000, vol. 6, no. 4 by Fernando Vicaria
Delphi COM: Out-of-Process and DCOM, Part 2
Fernando Vicaria
Last month Fernando Vicaria described in-process COM servers that run
in DLLs and consequently in the same address space as the client application.
In this article, he'll show you out-of-process (local or remote) COM servers
running, as the name suggests, in an address space separate from the client.
Now, two completely separate applications can share data -- even if they're
running on different machines!
Programming Internet Explorer 5: Adding an ActiveX Web Bar [Internet Explorer, ActiveX, HTML, Article, Delphi] Delphi Developer 01-Apr-2000, vol. 6, no. 4 by David Bolton
Programming Internet Explorer 5: Adding an ActiveX Web Bar
David Bolton
In this article, David Bolton demonstrates how to add a Web bar to IE
5, like Favorites or History. It's implemented as an ActiveX object, supplied
in a DLL. The Web bar includes additional functionality so that it can respond
to IE events. It captures the names and values of the HTML form input objects
when a Submit button on a Web page is clicked.
Character Animation 2: Fleshing Out the Model [Animation, Article, Delphi] Delphi Developer 01-Apr-2000, vol. 6, no. 4 by Michael Chapin
Character Animation 2: Fleshing Out the Model
Michael Chapin
Character animation is what makes some motion pictures show things that
can never be seen in real life. Toy Story, Antz and A Bug's Life are just a few
movies that are made entirely with character animation. In the first article of
this series, Michael Chapin introduced code for a skeleton and how to move it
in 3D space. In this part, he'll show you how to add flesh to that skeleton,
then move and render those points.
Delphi IDE Wizardry: Component Editors [IDE, Component Editor, Article, Delphi] Delphi Developer 01-Apr-2000, vol. 6, no. 4 by Bob Swart
Delphi IDE Wizardry: Component Editors
Bob Swart
Delphi IDE Wizardry is a column exploring new features and enhancements
found in and developed for the Delphi IDE. This time out, Bob Swart
demonstrates Component Editors in Delphi. He begins by examining the evolution
of Component Editors, then shows you how to create your own custom Component
Editors for Delphi.
How to check whether a given .DLL/.OCX/.EXE is a ActiveX component (using: Visual Basic 6.0) [ActiveX Component, OCX, Visual Basic, Tip] www.codeguru.com 01-Apr-2000 by Vasudevan S
How to check whether a given .DLL/.OCX/.EXE is a ActiveX
component or not?
There are 3 ways to do it.
a. Use regsvr32.exe
----------------
If regsvr32.exe says
"vbajet32.dll was loaded but the dll register server entry point was not found.
Dll register server may not be exported or a corrupt version of vbajet32.dll
may be in memory"
then vbajet32.dll is not a ActiveX component.
b. Use DUMPBIN.EXE
---------------
From Visual C++ bin directory, the syntax is
DUMPBIN /EXPORTS /OUT:C:\VBAJET32.TXT C:\WINDOWS\SYSTEM\VBAJET32.DLL.
This will create a VBAJET32.TXT file on your C: drive.
Open the TXT file and check for "DllRegisterServer"
under ordinal/name section.
If the entry "DllRegisterServer" is not there, then the
component is not a ActiveX component.
This technique applies to all components.
c. Use GetProcAddress to return the entry point for DllRegisterServer
----------------------
Inside my code (see -> ) the API call GetProcAddress will return
0 which means there is no entry point for DllRegisterServer
in vbajet32.dll.
Enabling NT Users (using: Visual Basic 6.0) [Account, NetApiBufferFree(), NetUserGetInfo(), NetUserSetInfo(), Network, Windows NT, User Account, Visual Basic, Tip] www.devx.com 01-Apr-2000 by L J Johnson
Enabling NT Users
By L.J. Johnson
A surprisingly simple question that comes up frequently is "How do I disable or
enable user accounts programmatically?" The easiest way to do this is via ADSI
(which is native to Windows 2000 and can be downloaded for NT 4.0 SP4+).
However, for those administrators running NT 4.0 in situations where installing
ADSI is not an option, the following code will demonstrate how to either enable
or disable a user's account.
The only really interesting thing about the code (other than the extra steps
required in VB to do the Unicode pointer conversions) is the fact that enabling
or disabling a user's account is done, not via a separate parameter, but by
setting the flags parameter. In fact, many of the interesting options are
set/unset by setting the flags for the user (for example, whether or not a
password is required, or whether the user can change the password or not).
The code itself is pretty basic, and should run in either VB 5.0 or 6.0
(although I only tested it with 6.0). First, get the user information and
extract the flag's parameter, then check to see if the setting is already what
the UI requested (either disabled or enabled). If it is not currently what was
requested, you can Xor the current flag with the UF_ACCOUNTDISABLE windows
constant to set the flag to the correct value. Finally, call the NetUserSetInfo
to set the revised information back to the operating simple.
Note that with only very minor changes, this code can be used to set any of the
other flags for a user's account.
' In a *.FRM file
Option Explicit
Private Sub cmdDisable_Click()
UserEnabled strServerName:="", _
strUserName:=Trim$(Me.Text1.Text), _
blnIsEnabled:=False
Me.Label2.Caption = "Account is disabled"
End Sub
Private Sub cmdEnable_Click()
UserEnabled strServerName:="", _
strUserName:=Trim$(Me.Text1.Text), _
blnIsEnabled:=True
Me.Label2.Caption = "Account is en ... (cont.)
SetString .... Convert a set to a string and vice versa [RTTI, String, Set, Delphi, Dephi Routine] Delphi Informant 01-Apr-2000
Get Accurate Results With Code-Based Timers [Timer, Article, Visual Basic] Visual Basic Programmer's Journal 01-Apr-2000, vol. 10, no. 4 by Warren Bedell
Get Accurate Results With Code-Based Timers
Warren Bedell
Help your apps perform better by using code-based timers. These timers
offer event-driven timing without controls or forms.
Manage Control Data I/O [Control, Database, Article, Visual Basic] Visual Basic Programmer's Journal 01-Apr-2000, vol. 10, no. 4 by Ron Schwarz
Manage Control Data I/O
Ron Schwarz
Coding in VB requires knowing how to get both Database and nondatabase
data into and out of your controls at run time.
Optimize ADO 2.5 [ADO, Data, Article, Visual Basic] Visual Basic Programmer's Journal 01-Apr-2000, vol. 10, no. 4 by Dan Fox
Optimize ADO 2.5
Dan Fox
ADO 2.5 provides great flexibility and performance when accessing
relational Data sources. Learn techniques to write code that uses ADO to its
fullest potential.
Expose Your App's Object Model [Object Model, ActiveX Scripting, Scripting, Article, Visual Basic] Visual Basic Programmer's Journal 01-Apr-2000, vol. 10, no. 4 by Bill Hludzinski
Expose Your App's Object Model
Bill Hludzinski
Sometimes you need to open up your application for user customization,
and becoming an ActiveX Script host is the way to do it. Take an in-depth look
at a VB6 add-in that adds Scripting support to the VB IDE.
Update Your Calendar [Calendar, Outlook, Article, Visual Basic] Visual Basic Programmer's Journal 01-Apr-2000, vol. 10, no. 4 by Chris Barlow
Update Your Calendar
Avoid scheduling mishaps caused by Outlook adjusting your appointments
to different time zones.
Chris Barlow
It Takes All Sorts [Sort, Algorithm, Article, Visual Basic] Visual Basic Programmer's Journal 01-Apr-2000, vol. 10, no. 4 by Dan Fox
It Takes All Sorts
Algorithms that search and sort are basic, and you should know which to
use in any programming scenario.
Dan Fox
Finally! An Application-Scope Dictionary Object [Dictionary Object, Article, Visual Basic] Visual Basic Programmer's Journal 01-Apr-2000, vol. 10, no. 4 by A Russell Jones
Finally! An Application-Scope Dictionary Object
Although the Scripting Dictionary object can store key/value pairs, it
isn't both-threaded. The alternative: Use the new LookupTable object. In this
column, the author shows you how.
A Russell Jones
VB Classes Can Inherit Events [Class, Inheritance, Event, Object-Oriented, Inheritance, Article, Visual Basic] Visual Basic Programmer's Journal 01-Apr-2000, vol. 10, no. 4 by Andrew J Marshall
VB Classes Can Inherit Events
There's a way to get around VB's lack of true inheritance. Use Event
classes to enable event inheritance and follow the principles of
Object-Oriented Inheritance.
Andrew J Marshall
Copy Several Files Into One [File, Concatenate, Article, Visual Basic] Visual Basic Programmer's Journal 01-Apr-2000, vol. 10, no. 4 by Karl E Peterson
Copy Several Files Into One
Learn how to Concatenate files.
Karl E Peterson
Check for the presence of a CD-ROM [CD-ROM, Article, Visual Basic] Visual Basic Programmer's Journal 01-Apr-2000, vol. 10, no. 4 by Karl E Peterson
Check for the presence of a CD-ROM
Check for the presence of a CD-ROM.
Karl E Peterson
Check the existence of a File on an FTP server [File, FTP, Article, Visual Basic] Visual Basic Programmer's Journal 01-Apr-2000, vol. 10, no. 4 by Karl E Peterson
Check the existence of a File on an FTP server
Check the existence of a file on an FTP server.
Karl E Peterson
Avoid Locking Conflicts
Learn why and how SQL Server uses locking to protect Transactions.
Also, learn how to override the default locking behavior when necessary.
Barry Fridley
Encapsulate Windows API Calls in Classes [API Programming, Class, Article, Visual Basic] Visual Basic Programmer's Journal 01-Apr-2000, vol. 10, no. 4 by Francesco Balena
Encapsulate Windows API Calls in Classes
Learn how you can simplify your Windows programming chores by
encapsulating much of the API's functionality into complex object hierarchies.
Francesco Balena
Choose the Best Database Design [Database, Object-Oriented Database, Article, Visual Basic] Visual Basic Programmer's Journal 01-Apr-2000, vol. 10, no. 4 by Joel Garcia
Choose the Best Database Design
When should you use a traditional database, and when is using an
Object-Oriented Database better? The author gives you the scoop on your options.
Joel Garcia
Name That Language [Jet, Article, Visual Basic] Visual Basic Programmer's Journal 01-Apr-2000, vol. 10, no. 4 by Michael Kaplan
Name That Language
Utilize Jet's hidden language-detection feature to make good use of
your data, even if you don't know ahead of time what language the text is
written in.
Michael Kaplan
The Shell Namespace PIDLs [Shell Namespace, PIDL, Article, Visual C++] Windows Developer's Journal 01-Apr-2000, vol. 11, no. 4 by Oz Solomonovich
The Shell Namespace PIDLs
Oz Solomonovich
Whether you just want to add an entry to a shell’s context menu, or
write your own complete extension to the shell’s namespace, you’re going to
have to deal with PIDLs. This article explains what they are, how they work,
and provides reusable code that handles the more tedious details of PIDL
manipulation.
Tracing NT Kernel-Mode Calls [Tracing, Kernel Mode Call, Debugging, Windows NT, Article, Visual C++] Windows Developer's Journal 01-Apr-2000, vol. 11, no. 4 by Dmitri Leman
Tracing NT Kernel-Mode Calls
Dmitri Leman
Interactive Debugging is useful, but sometimes tracing is a better
choice, such as when you’re tracking down a race condition. Tracing tools are
available for user-mode programs, but the choices for kernel-mode tracing are
more limited. This article demonstrates an NT tool that lets you trace calls to
any kernel-mode API function (such as those exported by ntoskrnl.exe and
hal.dll).
Help keep your Dialog’s use of Default Buttons correct [Dialog, Default Button, Article, Visual C++] Windows Developer's Journal 01-Apr-2000, vol. 11, no. 4 by Petter Hesselberg
Help keep your Dialog’s use of Default Buttons correct
Petter Hesselberg
The default button is a great convenience for users, but it’s easy to
end up with a dialog that sometimes contains a disabled default button or
paints a button as though it were the default, even though it isn’t. This
column explores these problems and provides reusable code to help keep your
dialog’s use of default buttons correct.
Understanding NT: Windows NT Embedded 4.0 [Embedding, Windows CE, Windows NT, Article, Visual C++] Windows Developer's Journal 01-Apr-2000, vol. 11, no. 4 by Paula Tomlinson
Understanding NT: Windows NT Embedded 4.0
Paula Tomlinson
Windows CE puts a Windows-like operating system into the embedded
market, but Microsoft also has another candidate for embedded systems: Windows
NT Embedded 4.0. This column provides an overview of this embedded product,
including a comparison with CE.
Disabling Ctrl+Alt+Del on Win95/Win98 [Ctrl+Alt+Del, Keyboard, Rebooting, Windows, Article, Visual C++] Windows Developer's Journal 01-Apr-2000, vol. 11, no. 4 by Simon Liu
Disabling Ctrl+Alt+Del on Win95/Win98
Simon Liu
The cheap and dirty way to disable Keyboard Rebooting - via screensaver
functionality
Mini-Servers for Cross-Platform Client-Side Hypertext [Web, HTTP, Article, Visual C++] Windows Developer's Journal 01-Apr-2000, vol. 11, no. 4 by Ron Burk
Mini-Servers for Cross-Platform Client-Side Hypertext
Ron Burk
One set of software can provide both Web server and standalone
application functionality; the trick is to just write a tiny HTTP server to let
your 'standalone' application be accessed locally via HTTP.
VB Problems with DEFLNG [Article, Visual C++, Visual Basic] Windows Developer's Journal 01-Apr-2000, vol. 11, no. 4 by Darin Higgins
VB Problems with DEFLNG
Darin Higgins
Distributed Computing With SOAP [Distributed Computing, SOAP, DCOM, Article, Visual C++] Visual C++ Developers Journal 01-Apr-2000, vol. 3, no. 3 by Davide Marcato
Distributed Computing With SOAP
Davide Marcato
If you lament the complexity and inflexibility of DCOM, check out SOAP.
Learn how and why SOAP fits into the big picture of today's distributed
computing arena.
Manage Images Efficiently
Dino Esposito
Need a better way to store BMP and ICO files, create images
dynamically, and overlay icons? Let ImageLists give you a hand.
Mastering the STL [STL, Standard Template Library, Article, Visual C++] Visual C++ Developers Journal 01-Apr-2000, vol. 3, no. 3 by Bill Wagner
Mastering the STL
Bill Wagner
The Standard Template Library (STL) gives you a rich set of components
you can use to simplify complex programming jobs.
An Introduction to Polymorphism [Polymorphism, Object-Oriented, Article, Visual C++] Visual C++ Developers Journal 01-Apr-2000, vol. 3, no. 3 by David Steinhoff
An Introduction to Polymorphism
David Steinhoff
Polymorphism lets you reuse existing code to solve new programming
problems. Learn how to use this Object-Oriented technique effectively.
Write Publisher Filters [Publisher Filter, Event, Article, Visual C++] Visual C++ Developers Journal 01-Apr-2000, vol. 3, no. 3 by Jeff Prosise
Write Publisher Filters
Jeff Prosise
Filter the Events a publisher fires without modifying the code for
either the publisher or the event class.
Load XML Documents in C++ [XML, C++, Article, Visual C++] Visual C++ Developers Journal 01-Apr-2000, vol. 3, no. 3 by Jim Beveridge
Load XML Documents in C++
Jim Beveridge
Use mixin interfaces and decentralized logic to build an extensible
converter between XML and C++ objects.
Debug Multithreaded Code
Davide Marcato
Learn how to debug multithreaded code, and find out how ATL helps COM
programmers.
Write With WTL [WTL, Windows Template Library, Article, Visual C++] Visual C++ Developers Journal 01-Apr-2000, vol. 3, no. 3 by Richard Grimes
Write With WTL
Richard Grimes
Windows Template Library (WTL) gives you the application framework and
wrapper classes to use Win32, common controls, and printers - all without the
bulk of MFC.
Use Activities to Manage COM Threading [COM, Thread, Concurrency Management, Article, Visual C++] Visual C++ Developers Journal 01-Apr-2000, vol. 3, no. 3 by George Shepherd
Use Activities to Manage COM Threading
George Shepherd
Are you looking for a way to solve the callback-deadlock issue? Try
activity-based Concurrency Management.
Windows 2000: Asynchronous Method Calls Eliminate the Wait for COM Clients and Servers [Asynchronous Method Call, COM, Windows NT, Article] MSDN Magazine 01-Apr-2000, vol. 15, no. 4 by Jeff Prosise
Windows 2000: Asynchronous Method Calls Eliminate the Wait for COM
Clients and Servers
Windows 2000 is the first version of COM to support asynchronous method
calls, which permit clients to make nonblocking calls to COM objects and
objects to process incoming calls without blocking the calling threads. COM
clients benefit from asynchronous method calls because they can continue
working while waiting for outbound calls to return. Objects benefit because
they can queue incoming calls and service them from a thread pool. Our
SieveClient and SieveServer sample apps demonstrate how to create and use
asynchronous clients and servers in COM-based distributed applications.
Jeff Prosise
Visual Basic: Web Forms, Web Services, and Language Enhancements Slated for Next Generation [Web Form, Web Services, SOAP, Inheritance, Polymorphism, Overloading, Visual Basic, Article] MSDN Magazine 01-Apr-2000, vol. 15, no. 4 by Joshua Trupin
Visual Basic: Web Forms, Web Services, and Language Enhancements Slated
for Next Generation
The plans for the next version of Microsoft Visual Basic include three
major improvements: Web Forms, Web services, and object-oriented language
enhancements. Web Forms will let veteran Visual Basic users develop Web-based
applications as easily as they design standalone apps today. Through a SOAP
interface, Web services will let you deploy programmable modules anywhere that
can be reached by a URL. In addition, several key object-oriented language
enhancements, including Inheritance, Polymorphism, and Overloading, will make
Visual Basic code as flexible as C++.
Joshua Trupin
Scripting Windows: Windows Management Instrumentation Provides a Powerful Tool for Managing Windows with Script [Scripting, Windows Management Instrumentation, WMI, Windows NT, Article] MSDN Magazine 01-Apr-2000, vol. 15, no. 4 by Alan Boshier
Scripting Windows: Windows Management Instrumentation Provides a
Powerful Tool for Managing Windows with Script
The new Windows Management Instrumentation (WMI) technology for Windows
2000, Windows NT 4.0, and Windows 98 provides powerful scripting technology
that can be used to administrate Windows-based systems. With WMI, you can
create scripts to simplify management of devices, user accounts, services,
networking, and other aspects of your system. This piece will introduce you to
WMI and the WMI Scripting Object Model, taking a look at the available objects,
methods, and properties. Along the way, you’ll see how these elements can be
used to create system management scripts.
Alan Boshier
Which Framework Should You Use? Building ActiveX Controls with ATL and MFC [ActiveX Control, Visual C++, MFC, ATL, Article] MSDN Magazine 01-Apr-2000, vol. 15, no. 4 by George Shepherd
Which Framework Should You Use? Building ActiveX Controls with ATL and
MFC
Currently MFC and ATL represent two frameworks targeted at different
types of Windows-based development. MFC represents a simple and consistent
means of creating standalone apps for Windows; ATL provides a framework to
implement the boilerplate code necessary to create COM clients and servers. The
two frameworks overlap in their usefulness for developing ActiveX controls.
We’ll take a look at both frameworks as they apply to creating ActiveX
controls-highlighting strengths and weaknesses, and walking through the process
of creating a control-so you can determine when you might want to use one
framework or the other.
George Shepherd
Active Accessibility-Compliant Apps Offer New Tools to Manipulate Software [Active Accessibility, Windows NT, Article] MSDN Magazine 01-Apr-2000, vol. 15, no. 4 by Dmitri Klementiev
Active Accessibility-Compliant Apps Offer New Tools to Manipulate
Software
Active Accessibility was developed to allow people with disabilities to
work on PCs-it’s used in magnifiers, screen readers, and tactile mice. It can
also be used to create applications that drive other software, and its ability
to emulate user input is particularly well suited to the design of testing
software. Starting from the basics of Active Accessibility, this article leads
you through the development of a software testing application. You’ll see how
this testing application interacts with common controls and other UI elements,
then processes the resulting WinEvents.
Dmitri Klementiev
Using XSL for Early Rendering of Frequently Accessed, Data-Driven Web Pages [XSL, Web, HTML, Windows NT, Article] MSDN Magazine 01-Apr-2000, vol. 15, no. 4 by Paul Enfield
Using XSL for Early Rendering of Frequently Accessed, Data-Driven Web
Pages
Dynamic data-driven pages have become the basis of many cutting-edge
Web sites. Early render systems can provide better performance and
maintainability for data-driven Web sites by generating frequently accessed
pages that contain less-volatile information ahead of time. We’ll show you an
example of a server-side solution that uses Extensible Stylesheet Language
(XSL) to merge data and layout information into HTML that is compatible with
just about any modern Web browser. Using these techniques to render Web pages
early can reduce the load on your database back end and increase performance
for your users.
Paul Enfield
Two New Redirection Methods in Microsoft IIS 5.0 [IIS, Internet Information Server, ASP, Web, Windows NT, Article] MSDN Magazine 01-Apr-2000, vol. 15, no. 4 by Ram Papatla
Two New Redirection Methods in Microsoft IIS 5.0
Internet Information Services (IIS) 5.0 provides several enhancements
to its support for ASP-based Web development, including two new server-side
redirection methods: Server.Transfer and Server.Execute. Rather than
redirecting requests with a round-trip to the client, these new methods can be
used to transfer requests directly to an ASP file without ever leaving the
server.
Ram Papatla
Let’s start a 3D revolution [3-D, Visual C++, Article] MSDN Magazine 01-Apr-2000, vol. 15, no. 4 by Doug Boling
Let’s start a 3D revolution
Doug Boling
Resources for Your Developer Toolbox [Article, Visual C++] MSDN Magazine 01-Apr-2000, vol. 15, no. 4 by Theresa W Carey
Resources for Your Developer Toolbox
Theresa W Carey
Windows Script Host [Windows Scripting Host, Windows NT, Article] MSDN Magazine 01-Apr-2000, vol. 15, no. 4 by Robert Hess
Windows Script Host
Robert Hess
Dropdown Menus [Menu, Visual C++, Article] MSDN Magazine 01-Apr-2000, vol. 15, no. 4 by Robert Hess
Dropdown Menus
Robert Hess
ASP-to-HTML [ASP, HTML, Windows NT, Article] MSDN Magazine 01-Apr-2000, vol. 15, no. 4 by Robert Hess
ASP-to-HTML
Robert Hess
Exchanging data over the Internet using XML [Internet, Windows NT, Article] MSDN Magazine 01-Apr-2000, vol. 15, no. 4 by Dino Esposito
Exchanging data over the Internet using XML
Dino Esposito
Working with MTS, ASP and Visual Basic [MTS, ASP, Visual Basic, Article] MSDN Magazine 01-Apr-2000, vol. 15, no. 4 by Ken Spencer
Working with MTS, ASP and Visual Basic
Ken Spencer
Windows 2000 and LDR messages, a COM symbol engine, finding bloated functions, and PDB2MAP utility [LDR, COM, Windows NT, Article] MSDN Magazine 01-Apr-2000, vol. 15, no. 4 by John Robbins
Windows 2000 and LDR messages, a COM symbol engine, finding bloated
functions, and PDB2MAP utility
John Robbins
Adding your own AppWizard to Visual C++ [AppWizard, Visual C++, Article] MSDN Magazine 01-Apr-2000, vol. 15, no. 4 by George Shepherd
Adding your own AppWizard to Visual C++
George Shepherd
New C++ classes for better resource management in Windows [C++, Visual C++, Article] MSDN Magazine 01-Apr-2000, vol. 15, no. 4 by Jeffrey Richter
New C++ classes for better resource management in Windows
Jeffrey Richter
Intializing C++ class members and incorporating the Places bar in your MFC apps [C++, Visual C++, MFC, Article] MSDN Magazine 01-Apr-2000, vol. 15, no. 4 by Paul DiLascia
Intializing C++ class members and incorporating the Places bar in your
MFC apps
Paul DiLascia
WAP! Delphi Does Wireless [WAP, Wireless Application Protocol, Wireless Markup Language, Article, Delphi] Delphi Informant 01-Apr-2000, vol. 6, no. 4 by Jani Järvinen
WAP! Delphi Does Wireless
Jani Järvinen
After explaining the basics of Wireless Application Protocol and
Wireless Markup Language, Mr Järvinen demonstrates how to create a real-time,
order query system for use over a WAP phone.
TChart Actions [TChart, Article, Delphi] Delphi Informant 01-Apr-2000, vol. 6, no. 4 by Keith Wood
TChart Actions
Keith Wood
Mr Wood demonstrates actions, handy entities that centralize
functionality for a class (or group of classes), and synchronize changes to
their states within GUI elements (i.e. another way to reuse code).
Interfaces Revisited: Part II [Interface, Article, Delphi] Delphi Informant 01-Apr-2000, vol. 6, no. 4 by Cary Jensen
Interfaces Revisited: Part II
Cary Jensen
Dr Jensen ends his series by showing how to use objects through
interface references, and by discussing two types of interface implementation
by delegation - one of which is inherently dangerous.
Maintaining State [Browser, Internet, Article, Delphi] Delphi Informant 01-Apr-2000, vol. 6, no. 4 by Jon Etheredge
Maintaining State
Jon Etheredge
Maintaining the state of Browser sessions is a classic Internet
problem. Mr Etheredge weighs the relative merits of cookies, URL variables,
hidden fields, etc. from a Delphi perspective.
Sets to Strings, and Back [Set, String, Run-Time Type Information, RTTI, Article, Delphi] Delphi Informant 01-Apr-2000, vol. 6, no. 4 by Ray Lischner
Sets to Strings, and Back
Ray Lischner
Mr Lischner demonstrates how to take advantage of Delphi's Run-time
Type Information (RTTI) to write functions that convert any set to a string and
back again.
Filtering Mail with Mail::Audit and News::Gateway [Mail, Mail::Audit, News::Gateway, Article, Perl] The Perl Journal 01-Apr-2000, vol. 5, no. 2 by Simon Cozens
Filtering Mail with Mail::Audit and News::Gateway
Simon Cozens
Tktk: a Perl/Tk Solitare Game [Tk, Article, Perl] The Perl Journal 01-Apr-2000, vol. 5, no. 2 by Greg Bacon
Tktk: a Perl/Tk Solitare Game
Greg Bacon
Trees [Tree, Article, Perl] The Perl Journal 01-Apr-2000, vol. 5, no. 2 by Sean M Burke
Trees
Sean M Burke
GDGraph3d [Article, Perl] The Perl Journal 01-Apr-2000, vol. 5, no. 2 by Jeremy Wadsack
GDGraph3d
Jeremy Wadsack
Lingua::Wordnet [Article, Perl] The Perl Journal 01-Apr-2000, vol. 5, no. 2 by Dan Brian
Lingua::Wordnet
Dan Brian
Patterns in Perl [Pattern, Article, Perl] The Perl Journal 01-Apr-2000, vol. 5, no. 2 by Sean Hunter
Patterns in Perl
Sean Hunter
Capturing Video in Real Time [Video, Article, Perl] The Perl Journal 01-Apr-2000, vol. 5, no. 2 by Marc Lehmann
Capturing Video in Real Time
Marc Lehmann
Perlix, the Perl Operating System [Perlix, Article, Perl] The Perl Journal 01-Apr-2000, vol. 5, no. 2 by Bruce Winter
Perlix, the Perl Operating System
Bruce Winter
TkComics, A Perl/Tk Web Client [Tk, Web, Article, Perl] The Perl Journal 01-Apr-2000, vol. 5, no. 2 by Stephen Lidie
TkComics, A Perl/Tk Web Client
Stephen Lidie
The Perl Shell [Shell, Article, Perl] The Perl Journal 01-Apr-2000, vol. 5, no. 2 by Gregor N Purdy
The Perl Shell
Gregor N Purdy
Lotus Increases XML Integration [XML, Article, Lotus Notes] Notes Advisor 01-Apr-2000 by Greg Pepus
EDITOR'S VIEW - Lotus Notes & Domino Advisor - April 2000
Lotus Increases XML Integration
Greg Pepus
Best Practices for Web UI Design [Web, UI, Article, Lotus Notes] Notes Advisor 01-Apr-2000
WEB FOUNDATIONS - Lotus Notes & Domino Advisor - April 2000
Best Practices for Web UI Design
-N/A
WebSphere & Domino: How do They Fit? [WebSphere, Domino, Article, Lotus Notes] Notes Advisor 01-Apr-2000
Web Development - Lotus Notes & Domino Advisor - April 2000
WebSphere & Domino: How do They Fit?
-N/A
Make Notes Links Work for You [Link, Article, Lotus Notes] Notes Advisor 01-Apr-2000
Knowledge Management - Lotus Notes & Domino Advisor - April 2000
Make Notes Links Work for You
-N/A
Web Development - Lotus Notes & Domino Advisor - April 2000
Target Frames in Domino
-N/A
Java-less Show Single Category Views [Java, View, Article, Lotus Notes] Notes Advisor 01-Apr-2000
Web Development - Lotus Notes & Domino Advisor - April 2000
Java-less Show Single Category Views
-N/A
A smart critical section wrapper for COM objects [COM, DCOM, COM, Article, Visual C++] www.codeproject.com 30-Mar-2000 by Jeremiah Talkar
A smart critical section wrapper for COM objects
Jeremiah Talkar
An extremely simple class that wraps the win32 CRITICAL_SECTION. Ideal
for the COM STA or MTA.
Unicode, MBCS and Generic text mappings [C++, MFC, STL, Article, Visual C++] www.codeproject.com 29-Mar-2000 by Chris Maunder
Unicode, MBCS and Generic text mappings
Chris Maunder
A guide to using generic text functions to make the transition between
character sets simple and painless
Hershey Font Wrapper Class [Font, GDI, GUI, Wrapper Class, Rendering, Article, Visual C++] www.codeproject.com 29-Mar-2000 by Randy More
Hershey Font Wrapper Class
Randy More
Using Hershey vector fonts for faster Rendering
Making UNIX and Windows NT Talk [C++, Object-Oriented Programming, Unix, Windows NT, Book] Purchased 27-Mar-200, $69.95
Debug Toolkit [Debugging, Article, Visual C++] www.codeproject.com 28-Mar-2000 by Keith Westley
Debug Toolkit
Keith Westley
A complete debug toolkit to add intelligent debugging capability to
your application.
Flicker free redrawing and background buffering of drawing with two simple classes [Font, GDI, GUI, Article, Visual C++] www.codeproject.com 28-Mar-2000 by Ernst Versteeg
Flicker free redrawing and background buffering of drawing with two
simple classes
Ernst Versteeg
Two classes that make double buffering simple
Filename Extensions in Delphi [Article, Delphi] delphi.about.com 28-Mar-2000
28-Mar-2000
28-Mar-2000
Filename Extensions in Delphi
List of the file extensions created (and used) by Delphi and what they
all mean.
basCCFormat .... How to properly format credit card numbers [Credit Card Number, Visual Basic, VB Code Module] www.codeoftheweek.com 27-Mar-2000, no. 118
Requirements
Visual Basic 5.0 or higher. Can be used with Visual Basic 3 and
up by changing the optional parameters.
In this Issue
In this issue we discuss how to properly (at least in our opinion)
format credit card numbers. This routine is useful for anyplace a
credit card number is captured or displayed. It should work well
in VBScript with very little modifications.
basCCFormat
-----------
This module contains a single routine called
FormatCreditCardNumber that takes a string of digits and processes
it to produce a nicely formatted credit card number.
Functions
Public Function FormatCreditCardNumber(sCardNumber As String, Optional bSecure
As Boolean = False) As String
This function returns a formatted credit card number using
separate formats for the different types of credit/charge cards.
An American Express card is 15 digits and has the number grouped
differently than Visa, MasterCard and Novus cards. The default
number separator is a - (dash). If you want the return string to
show a secure representation of the card number just set the
bSecure option to True. This will cause this function to put X
characters in the place of all numbers except the last four
digits.
American Express numbers will be formatted as 1234-123456-12345.
All others will be formatted as 1234-1234-1234-1234.
One really nice feature of this routine is that the input string
specified by sCardNumber can be any format as long as it has 15 or
16 digits. For example, 1111-1111-2222-2222 or 11111111 222 2
2222 would result in the same output string. The routine "cleans"
the string first by removing any non-numeric character and then
reformats it according to the specific rules defined in this
function. This is REALLY useful for those web sites that gather
information from users that can enter numbers any way they wish.
Sample Usage
Some examples are shown using different credit card numbers
(NOTE: the credit card numbers are not real card numbers).
Debug ... (cont.)
This code sample shows how to Register and Unregister ActiveX Components
directly through VB Code - useful if you write your own Setup/Installation
routines for projects.
The project contains a BAS module with a function RegisterComponent - heres the
header text that explains exactly how it works :
public Function RegisterComponent(byval FileName$, _
byval RegFunction as REGISTER_FUNCTIONS) as STATUS
'*******************************************************************************
***
'Author: Vasudevan S
'Helena, MT
'Function: RegisterComponent
'Purpose: Registers/Unregisters any ActiveX DLL/EXE/OCX component
'Entry Points in ActiveX DLL/EXE/OCX are DllRegisterServer and
DllUnRegisterServer
'input: FileName: Any valid file with complete path
'RegFunction: Enumerated Type(DllRegisterServer, DllUnregisterServer)
'Returns: Returns the status of the call in a enumerated type
'Comments: The utility REGSVR32.EXE need not be used to register/unregister
ActiveX
'components. This code can be embedded inside any application that
needs
'to register/unregister any ActiveX component from within the code
base
'SAMPLE FORM is INCLUDED
'WORKS IN VB5.0/6.0
'HOW to CALL:
'-----------
'Dim mEnum as STATUS
'
'to REGISTER A COMPONENT USE
'mEnum = RegisterComponent("C:\windows\system\filename.dll", DllRegisterServer)
'to Register
'
'If mEnum = [File Could Not Be Loaded Into Memory Space] then
' MsgBox "Your Message Here", vbExclamation
'ElseIf mEnum = [Not A Valid ActiveX Component] then
' MsgBox "Your Message Here", vbExclamation
'ElseIf mEnum = [ActiveX Component Registration Failed] then
' MsgBox "Your Message Here", vbExclamation
'ElseIf mEnum = [ActiveX Component Registered Successfully] then
' MsgBox "Your Message Here", vbExclamation
'End If
'
'to UNREGISTER A COMPONENT USE
'mEnum = RegisterComponent("C:\windows\system\filename.dll",
DllUnRegisterServer) 'to UnRegister
'
'If mEnum = [File Could ... (cont.)
Print ListCtrl on multiple pages [List Control, Article, Visual C++] www.codeproject.com 27-Mar-2000 by Markus Loibl
Print ListCtrl on multiple pages
Markus Loibl
Printing the contents of a CListCtrl or CListView with multiple pages
MyTop - a Top/WinTop like application [System, Article, Visual C++] www.codeproject.com 27-Mar-2000 by Darren Schroeder
MyTop - a Top/WinTop like application
Darren Schroeder
An article on listing and killing processes
Introduction to Multi-threaded Code [Thread, Process, Inteprocess Communication, Article, Visual C++] www.codeproject.com 27-Mar-2000 by William T Block
Introduction to Multi-threaded Code
William T Block
Synchronizing worker threads using 3 different methods
Date-Time Edit Control [Edit Control, Date, Time, Article, Visual C++] www.codeproject.com 26-Mar-2000 by Tri VU KHAC
Date-Time Edit Control
Tri VU KHAC
A simple masked date-time editor
How to use the res: protocol in Developer Studio [Tip, MFC, Article, Visual C++] www.codeproject.com 26-Mar-2000 by Santosh Rao
How to use the res: protocol in Developer Studio
Santosh Rao
A simple MFC demo application that demonstrates using the res: protocol
to use resources in your applications
Compact long VB filepaths with SHLWAPI library (using: Visual Basic 6.0) [Ellipses, Filename, Long Path Name, Path Name, PathCompactPath(), SHLWAPI.DLL, Visual Basic, Tip] www.zdtips.com 23-Mar-2000
Compact long VB filepaths with SHLWAPI library
The PathCompactPath function in SHLWAPI provides one way to
compact long filenames. It does so by replacing a portion of
the pathname with an ellipsis (...). This function uses the
following API declaration statement:
Private Declare Function _
PathCompactPath Lib "shlwapi"_
Alias "PathCompactPathA" _
(ByVal hDC As Long, ByVal _
lpszPath As String, _
ByVal dx As Long) As Long
As you can see, the PathCompactPath function requires three arguments.
The first argument contains a device context handle.
The second argument holds the address of the pathname you want to use.
The third argument contains the width in pixels of the spot in which you want
the pathname to fit.
So, to place a compacted filename in a label named lblEllipsis, place the
following in a command button's Click() event:
Private Sub Command1_Click()
Dim lhDC As Long, lCtlWidth As Long
Dim FileSpec As String
FileSpec = "C:\MyFolder\VisualBasic\MyReallyWayTooLongFolderName\" &
"ButWhoCares\IhaveTheAPI.doc"
Me.ScaleMode = vbPixels
lCtlWidth = lblEllipsis.Width - Me.DrawWidth
lhDC = Me.hDC
PathCompactPath lhDC, FileSpec, lCtlWidth
lblEllipsis.Caption = FileSpec
End Sub
Multiply Conditions for Boolean Result (using: Visual Basic 6.0) [Boolean, Visual Basic, Tip] www.devx.com 23-Mar-2000
Multiply Conditions for Boolean Result
You often have to test for multiple conditions when enabling a confirmation
button or other control that commits user input. Instead of using complex
If...ElseIf statements or inline If functions, you can manage multiple
conditions by multiplying the many conditions together. This way, any condition
that hasn't been met evaluates to zero and the rules of multiplication will
keep your confirmation control disabled. For example, assume you have two
textboxes that must contain text before enabling a command button. Call a
common subroutine in each textbox's Change event:
Private Sub Text1_Change()
Call DoEnables
End Sub
Private Sub Text2_Change()
Call DoEnables
End Sub
In the common subroutine, set the command button's Enabled property:
Private Sub DoEnables
cmdOk.Enabled = Len(Trim$(Text1)) * Len(Trim$(Text2))
End Sub
Also, adding new conditions is a simple task. Simply include the new condition
into the series of multiplication:
Private Sub TextMustBeGreaterThan5_Change()
Call DoEnables
End Sub
Private Sub DoEnables()
cmdOk.Enabled = Len(Trim$(Text1)) * Len(Trim$(Text2)) * _
(Val(TextMustBeGreaterThan5) > 5)
End Sub
You can add as many conditions as you need. Any condition not met evaluates to
zero before being included into the equation. Make sure to enclose your logical
operators in parentheses. Even one zero results in zero for the entire
calculation, which VB treats as False for the Enabled property. If all
conditions are met, you get a nonzero number, which VB treats as True.
Hyperlink control [Control, Article, Visual C++] www.codeproject.com 23-Mar-2000 by Chris Maunder
Hyperlink control
Chris Maunder
A simple drop-in hyperlink control
Onscreen Keyboard [Sample, Article, Visual C++] www.codeproject.com 22-Mar-2000 by Randy More
Onscreen Keyboard
Randy More
An onscreen keyboard for pen computing and touchscreens
Using Automation from Perl to send mail via Outlook (using: Perl, Outlook) [Automation, Mail, Perl, Outlook, Tip] 21-Mar-2000
sub mail_notification {
use OLE;
msg("*** mailing...");
my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) =
localtime(time);
$mon++;
my $date = sprintf($DATE_MASK, $year+1900, $mon, $mday);
my $time= sprintf($TIME_MASK, $hour, $min, $sec);
my $objSession = CreateObject OLE "Outlook.Application" or die "Cannot create
Outlook Application object: $!";
my $objMessage = $objSession -> CreateItem(0); # olMailItem = 0
my $objRecipient = $objMessage -> Recipients ->
Add('kirk_pearson@v-wave.com');
$objRecipient -> {Type} = 1; # To
$objMessage -> {Subject} = "Backup Log for $date $time";
$objMessage -> {Body} = join ('', @_);
$objMessage -> {Importance} = 1;
$objMessage -> Send;
msg("*** ... done mailing");
} sub mail_notification
frmBrowser .... How create your own custom web browser [Browser, Internet Explorer, Microsoft Internet Transfer Control, SHDOCVW.DLL, Web, Visual Basic, VB Form] www.codeoftheweek.com 21-Mar-2000, no. 117
Requirements
Visual Basic 5.0 or higher.
Addition of the control called Microsoft Internet Controls (shdocvw.dll) to
your project.
Internet Explorer 4.0 or higher.
In this Issue
In this issue we discuss how create your own custom web browser.
Using this form as a base you can expand it to include features
such as history lists, custom bookmarks, limited intranet browser
(restricts the user to certain sites) and more features that you
wish Microsoft included in their browser interface, but did not.
It can also be used to include a browser interface in your
application for display reports, help screens and other formatted
text.
frmBrowser
This form module encapsulates the web browsing feature of
Internet Explorer in about 20-30 lines of source code. This is one
of the best examples of the power of component programming. It
uses the Microsoft Internet Controls which creates a WebBrowser
object in your Visual Basic environment. You can get complete
details of the WebBrowser object model at
http://msdn.microsoft.com/workshop/browser/webbrowser/reference/objects/WebBrows
er.asp
You can download the complete project from
http://www.codeoftheweek.com/membersonly/bi/Browser.zip
Methods
Private Sub cmdGo_Click()
This method is where everything starts. cmdGo_Click calls the
Navigate method of the WebBrowser control. This starts the
process of downloading the appropriate files to display the pages
in the browser window.
Sample Usage
See below Source Code.
Why I Chose C++ [C++, MFC, STL, Article, Visual C++] www.codeproject.com 21-Mar-2000 by William T Block
Why I Chose C++
William T Block
An introduction to C++ from a personal perspective
Introduction to drawing in Windows [Font, GDI, GUI, Article, Visual C++] www.codeproject.com 21-Mar-2000 by William T Block
Introduction to drawing in Windows
William T Block
A simple introduction to using DCs to draw in Windows
Hide the JVM Console window [Java Programming, Article, Visual C++] www.codeproject.com 21-Mar-2000 by Buddy
Hide the JVM Console window
Buddy
A simple application that hides the JVM console window while your JVM
GUI runs
Dynamic submenus
Anneke Sicherer-Roetman
Some handy functions for adding and deleting submenus and menuitems in
runtime
A 2D data visualisation class [Control, Article, Visual C++] www.codeproject.com 21-Mar-2000 by Paul Barvinko
A 2D data visualisation class
Paul Barvinko
A comprehensive set of classes for displaying 2 dimensional data
Syntax Coloring for user-defined keywords in Visual Studio [Tip, Color, Visual Studio, Article, Visual C++] www.codeproject.com 21-Mar-2000 by Keith Kudlac
Syntax Coloring for user-defined keywords in Visual Studio
Keith Kudlac
A UserType.dat file that provides syntax coloring for user-defined
keywords in Visual Studio
21-Mar-2000
21-Mar-2000
Tech Workshop - Create Tic-Tac-Toe
Your Visual Basic guide shows you how to create your own version of the
classic game tic-tac-toe.
21-Mar-2000
21-Mar-2000
Projects
Delphi For Beginners: Understanding and managing the Project file (dpr).
Uses for extern in C++ (using: Visual C++ 6.0) [Compiler, C++, extern, Link, Visual C++, Tip] www.devx.com 19-Mar-2000
There are 2 similar, but different, uses for extern in C++. It can be used
as 1) a storage class specifier for a variable or 2)to tell the compiler
how to link to an external function.
1) If you write a program that uses multiple files of source code, and you
have a global variable that you want to use in both files, then you can use
the extern keyword.
File A:
. . .
int myGlobal; // Define a global variable
. . .
File B:
. . .
extern int myGlobal; // Declare that you are using the same
. . . // global variable that was defined in
// the other file
The extern keyword used in this sense is good for code maintenance because
it tells someone reading the code that you are intentionally using a variable
that was defined elsewhere. If you find yourself using extern a lot in this
sense, I recommend that you re-think your program design to minimize coupling
between modules.
2) The second use is a little more complicated to explain well. If you want
to link to functions in libraries or object files (I mean object as opposed
to source or executable) that were creating using a C compiler, you can use
the extern keyword.
Say File A is object code that was created using a C compiler and has a function
called void myCFunc();
To call that function from your C++ program that you are writing (without
recompiling the the source code for myCFunc using the C++ compiler) you would
use a function prototype like this:
extern "C" void myCFunc();
That will allow the C++ code that you write and compile to link to and use
the already written and compiled C code. I have needed this to use already
existing libraries of code that were compiled with a C compiler because I
didn't have the source code for those libraries.
Some C++ compilers may even support linking to different languages than C.
If so, the syntax would be:
extern "language_specifier" function_prototype
Declaring Function Pointers and Implementing Callbacks (using: Visual C++ 6.0) [Callback, Function Pointer, Visual C++, Tip] www.devx.com 19-Mar-2000 by Danny Kalev
Declaring Function Pointers and Implementing Callbacks
By Danny Kalev
Programmers often need to implement callbacks. I will discuss the fundamentals
of function pointers and show how to use them to implement callbacks. Notice
that this article focuses on ordinary functions, not class member functions,
which rely on substantially different syntactic and semantic rules (pointers to
class members were discussed in a previous 10-Minute Solution).
Declaring a Function Pointer
A callback function is one that is not invoked explicitly by the programmer;
rather the responsibility for its invocation is delegated to another function
that receives the callback function's address. To implement a callback, you
need to define an appropriate function pointer first. Although the syntax is a
bit arcane, if you're familiar with function declarations in general, you will
notice that a function pointer declaration is very similar to a function
declaration. Consider the following example:
void f(); // a function prototype
It declares a function f() that takes no arguments and returns void. A pointer
to such a function has the following type:
void (*) ();
Let's parse it. The asterisk in the leftmost parentheses is the nucleus of a
function pointer declaration. Two additional elements are the function's return
type, which appears on the left and is 'void' in our example, and a parameter
list enclosed in the rightmost parentheses. In our case, the parameter list is
empty because f() takes no arguments. Note that we didn't create a pointer
variable yet—we only declared the type of such a variable. We can use this type
to create a typedef name, or in a sizeof expression:
// get the size of a function pointer
unsigned psize = sizeof (void (*) ());
// declare a typedef for a function pointer
typedef void (*pfv) ();
pfv is a synonym for "a pointer to a function that takes no arguments and
returns void". We can use this typedef name to hide th ... (cont.)
HELPING THE COMPILER DEDUCE THE TYPE OF A TEMPLATE ARGUMENT (using: Visual C++ 6.0) [Template, Visual C++, Tip] www.devx.com 19-Mar-2000
HELPING THE COMPILER DEDUCE THE TYPE OF A TEMPLATE ARGUMENT
In general, the compiler deduces the type of a function template
argument automatically. For example:
int n = max (5,10); /* max< int > deduced because 5 and 10 are int's */
However, sometimes the compiler needs more explicit clues regarding
the type of the argument, as in the following example:
template < class T >T f()
{
return static_cast< T > (0);
}
int main()
{
int n = f();/*error, can't deduce argument type*/
double d = f(); /*ditto*/
}
The program fails to compile because the compiler cannot deduce what
the type of f's argument is (the return type is insufficient for that
purpose). In situations like these, you can state the type of the
template argument explicitly:
int i = f < int > (); /*now OK */
double d = f < double >(); /* OK*/
ATL/AUX Library [ATL, Article, Visual C++] www.codeproject.com 18-Mar-2000 by Andrew Nosenko
ATL/AUX Library
Andrew Nosenko
A set of VC++ helpers and patterns to help automate some routine coding
tasks.
CByteArrayFile - storing objects in databases using DAO [Database, Article, Visual C++] www.codeproject.com 18-Mar-2000 by You HongJiang, Daniel Kaminski
CByteArrayFile - storing objects in databases using DAO
You HongJiang and Daniel Kaminski
A class used to serialize object into a database field
QuickSort enabled CArray Template class [C++, MFC, STL, CArray Class, Template, Article, Visual C++] www.codeproject.com 17-Mar-2000 by Martin Ziacek
QuickSort enabled CArray Template class
Martin Ziacek
A CArray derived class that provides quick and convenient sorting
SEH and C++ Exceptions - catch all in one [C++, MFC, STL, Article, Visual C++] www.codeproject.com 17-Mar-2000 by Martin Ziacek
SEH and C++ Exceptions - catch all in one
Martin Ziacek
This article describes how to handle SE and C++ exception together.
Round Slider Control [Control, Article, Visual C++] www.codeproject.com 17-Mar-2000 by Daniel Frey
Round Slider Control
Daniel Frey
A round slider control to allow users to adjust an angle or similar
values
The CAccessReports class [Database, Access, Article, Visual C++] www.codeproject.com 15-Mar-2000 by Tom Archer
The CAccessReports class
Tom Archer
A class for Printing and Viewing MS Access Reports
The CODBCDynamic class [Database, ODBC, Article, Visual C++] www.codeproject.com 15-Mar-2000 by Tom Archer
The CODBCDynamic class
Tom Archer
A class to dynamically read data from any ODBC data source
Views in a Sizeable Docking Control Bar (CSizingControlBar) [Toolbar, Docking Window, Article, Visual C++] www.codeproject.com 15-Mar-2000 by Rob Finch
Views in a Sizeable Docking Control Bar (CSizingControlBar)
Rob Finch
A fairly simple way to incoporate views into sizing control bars
Kylix := Delphi in [Linux] [Article, Delphi] delphi.about.com 14-Mar-2000
14-Mar-2000
14-Mar-2000
Kylix := Delphi in [Linux]
Step forward in the application development software for the Linux
platform.
ucDriveInfo .... Show the available disk space of all connected drives [Disk Space, Drive, UserControl, VB Code Module, Visual Basic, VB UserControl] www.codeoftheweek.com 12-Mar-2000, no. 116
Requirements
Visual Basic 5.0 or higher.
In this Issue
In this issue we discuss a couple of topics. Primarily this
issue discusses custom controls and dynamic control creation.
ucDriveInfo
This issue is more of an application itself than a single module.
It is designed to show the available disk space of all connected
drives. It will automatically update as you map and unmap network
drives. It shows the free space in text and graphical form. The
available disk space is determined using the logic found in issue
#51 - http://www.codeoftheweek.com/issues/0051.html
Some of the more interesting techniques shown in this issue are
how to create controls on the fly in VB 5 and up (some new
features were introduced in VB 6 to make this even easier). Each
drive is represented by a ucDriveInfo user control. The code
within the main form calls the Refresh method as often as
necessary.
The complete source code (project and all) is available at
http://www.codeoftheweek.com/issues/issue116
Properties
Public Property Let DriveLetter(sDrive As String)
Allows you to assign which drive letter this control is going to
watch. sDrive only needs to contain a single letter from A to Z.
It will handle drives passed as x: (where you specify the : after
the drive letter).
Methods
Public Sub Refresh()
Refreshes the information about the drive specified by
DriveLetter.
Sample Usage
This issue is an application itself so there is no sample to
show.
See http://www.codeoftheweek.com/issues/issue116 for the complete source code.
How to write a C program [Article, Visual C++] cplus.about.com 12-Mar-2000
12-Mar-2000
12-Mar-2000
How to write a C program
Writing, compiling and running a C program
MBSplitter ActiveX Control [Splitter, ActiveX Control, Article, Visual Basic] www.vb2themax.com 11-Mar-2000 by Marco Bellinaso
MBSplitter ActiveX Control
11-Mar-2000
11-Mar-2000
Marco Bellinaso
Another great and useful control by Marco Bellinaso. Place this control
on a form to immediately achieve splitting capabilities. It works as a
container control, and the controls you drop on it will be automatically
resized when the end user moves the splitter bars. You can control the splitter
bar's size, color, and position, and programmatically assign controls to its
two panes. The SplitBegin and SplitComplete events inform you when the drag
operation begins and ends, so your code can do any additional processing as
required.
API Spyer Utility [API Programming, Article, Visual Basic] www.vb2themax.com 11-Mar-2000 by Steve Weller
API Spyer Utility
11-Mar-2000
11-Mar-2000
Steve Weller
This handy utility by Steve Weller lets you browse the properties of
the window under the mouse cursor. You can use it to learn the window's handle,
caption, class name, size, position, style, and application instance.
Furthermore, you can change a few of its attributes, such as its caption, its
visibility and the enabled state. On top of that, you have the complete source
code, to play with and to learn from!
Multi-Field Edit Controls [Edit Control, Article, Visual C++] www.codeguru.com 11-Mar-2000 by George Chastain
Multi-Field Edit Controls
George Chastain
A Whole New Class of Edit Controls
UTM Coordinate Control [Control, Article, Visual C++] www.codeguru.com 11-Mar-2000 by George Chastain
UTM Coordinate Control
George Chastain
Tuning SHGetFileInfo for Optimum Performance [Shell Programming, Article, Visual C++] www.codeguru.com 11-Mar-2000 by Michael Harnad
Tuning SHGetFileInfo for Optimum Performance
Michael Harnad
Adding a Document Selector to a MDI Application [Document/View, Article, Visual C++] www.codeguru.com 11-Mar-2000 by Yogesh Jagota
Adding a Document Selector to a MDI Application
Yogesh Jagota
Tuning SHGetFileInfo for Optimum Performance [Article, Visual C++] www.earthweb.com 11-Mar-2000 by Michael Harnad
Tuning SHGetFileInfo for Optimum Performance
Michael Harnad
11-Mar-2000
11-Mar-2000
Illustrates how to efficiently use the SHGetFileInfo shell function
Adding a Document Selector to a MDI Application [Article, Visual C++] www.earthweb.com 11-Mar-2000 by Yogesh Jagota
Adding a Document Selector to a MDI Application
Yogesh Jagota
11-Mar-2000
11-Mar-2000
A control which enables the user to quickly jump to a selected document
in a MDI application
UTM Coordinate Control [Article, Visual C++] www.earthweb.com 11-Mar-2000
UTM Coordinate Control
-N/A
11-Mar-2000
11-Mar-2000
VC++ code for a control that displays coordinates on a Universal
Transverse Mercator (UTM) grid
Multi-Field Edit Controls
-N/A
11-Mar-2000
11-Mar-2000
VC++ code for an edit control containing multiple fields
Tutorial on Extended Stored Procedures for MS SQL Server v7.0 [Database, SQL Server, Article, Visual C++] www.codeproject.com 10-Mar-2000 by Santosh Rao
Tutorial on Extended Stored Procedures for MS SQL Server v7.0
Santosh Rao
An interface that can be used to build robust applications that extend
the power of MS SQL Server.
CRasMonitor v1.41 [Internet, Network, Monitor, Article, Visual C++] www.codeproject.com 10-Mar-2000 by P J Naughter
CRasMonitor v1.41
P J Naughter
A shareware application to Monitor your Dial-Up Networking Connections.
PopWatch v1.01 [Internet, Network, Monitor, Article, Visual C++] www.codeproject.com 10-Mar-2000 by P J Naughter
PopWatch v1.01
P J Naughter
A freeware application to Monitor your POP3 mailbox.
Auto File Save Add-in for Visual Studio 6.0 [Macro, Add-in, Visual Studio, Article, Visual C++] www.codeproject.com 10-Mar-2000 by Itay Szekely
Auto File Save Add-in for Visual Studio 6.0
Itay Szekely
Add auto-save feature to Visual Studio 6.0.
Wizard2000 - Wizard 97 Property Sheet
Santosh Rao
Implements an application whose main window is a Wizard 97 based
property sheet.
A Document-View foundation for WTL. Part 1 [Windows Template Library, WTL, Component, Article, Visual C++] www.codeproject.com 10-Mar-2000 by Sandu Turcan
A Document-View foundation for WTL. Part 1
Sandu Turcan
A library that provides the easiest way to get loosely coupled
Components.
Auto-Incrementing Build Numbers
Navi Singh
Describes a way to automatically generate an application build number.
Animated Tray Icon Class [Shell Programming, Article, Visual C++] www.codeguru.com 09-Mar-2000 by Kiran Thonse Sanjeeva
Animated Tray Icon Class
Kiran Thonse Sanjeeva
Animated Tray Icon Class [Article, Visual C++] www.earthweb.com 09-Mar-2000 by Kiran Thonse Sanjeeva
Animated Tray Icon Class
Kiran Thonse Sanjeeva
9-Mar-2000
9-Mar-2000
Very simple function that enables you to animate your tray
application's icon
CFtpGet: FTP File Retrieval Class [Internet, Article, Visual C++] www.codeguru.com 07-Mar-2000 by Robert Lascelle
CFtpGet: FTP File Retrieval Class
Robert Lascelle
Using DAO from a DLL [Database, Article, Visual C++] www.codeguru.com 07-Mar-2000 by Joe Bernier
Using DAO from a DLL
Joe Bernier
Using DAO from a DLL [Article, Visual C++] www.earthweb.com 07-Mar-2000 by Joe Bernier
Using DAO from a DLL
Joe Bernier
7-Mar-2000
7-Mar-2000
Illustrated different problems associated with using DAO from an MFC
DLL and the workarounds necessary to get it to work
CFtpGet - FTP File Retrieval Class [Article, Visual C++] www.earthweb.com 07-Mar-2000 by Robert Lascelle
CFtpGet - FTP File Retrieval Class
Robert Lascelle
7-Mar-2000
7-Mar-2000
Very easy to use Visual C++ class to download files via FTP
An Othello / Reversi Game in VB5 / 6 [Game, Article, Visual Basic] www.earthweb.com 07-Mar-2000
An Othello / Reversi Game in VB5 / 6
-N/A
7-Mar-2000
7-Mar-2000
VB code for an Othello game
Exporting VB code to RTF or HTML format with Syntax Highlighting [Export, RTF, HTML, Syntax, Article, Visual Basic] www.earthweb.com 07-Mar-2000
Exporting VB code to RTF or HTML format with Syntax Highlighting
-N/A
7-Mar-2000
7-Mar-2000
VB code to export code in color
A HyperLink Control [HyperLink, ActiveX, Article, Visual Basic] www.earthweb.com 07-Mar-2000
A HyperLink Control
-N/A
7-Mar-2000
7-Mar-2000
VB code to create an ActiveX HyperLink control
Resize me Gently [Article, Delphi] delphi.about.com 07-Mar-2000
07-Mar-2000
07-Mar-2000
Resize me Gently
What to keep in mind when scaling Delphi applications (forms) on
different screen resolutions.
System Information Class [System, Article, Visual C++] www.codeguru.com 06-Mar-2000 by Tien Chen
System Information Class
Tien Chen
Class that retrieves all system information in two lines of code !
Expanding Dialog [Dialog, Update, Article, Visual C++] www.codeguru.com 06-Mar-2000 by D Sivakumar
Expanding Dialog
D Sivakumar
Corel PhotoHouse-like Color Chooser [Dialog, Article, Visual C++] www.codeguru.com 06-Mar-2000 by Rajiv Ramachandran
Corel PhotoHouse-like Color Chooser
Rajiv Ramachandran
Update to demo project
CRichEditView/CRichEditDoc Bug Work-Around [Rich Edit, Article, Visual C++] www.codeguru.com 06-Mar-2000 by John Czopowik
CRichEditView/CRichEditDoc Bug Work-Around
John Czopowik
Very nice article not only the bug, but why it's there and how to fix
it !!
Corel PhotoHouse-like Color Chooser [Article, Visual C++] www.earthweb.com 06-Mar-2000 by Rajiv Ramachandran
Corel PhotoHouse-like Color Chooser
Rajiv Ramachandran
6-Mar-2000
6-Mar-2000
Ever wanted one of those fancy color picking dialogs that apps like
Corel PhotoHouse have ? If you did, here it is !!
Corel PhotoHouse-like Color Chooser [Article, Visual C++] www.earthweb.com 06-Mar-2000 by Rajiv Ramachandran
Corel PhotoHouse-like Color Chooser
Rajiv Ramachandran
6-Mar-2000
6-Mar-2000
Ever wanted one of those fancy color picking dialogs that apps like
Corel PhotoHouse have ? If you did, here it is !!
Expanding Dialog [Article, Visual C++] www.earthweb.com 06-Mar-2000 by D Sivakumar
Expanding Dialog
D Sivakumar
6-Mar-2000
6-Mar-2000
CDialog-based class that enables you to have an expanding/contracting
dialog
CClockCtrl v1.01 [Dialog, Windows Programming, MFC, Article, Visual C++] www.codeproject.com 05-Mar-2000 by P J Naughter
CClockCtrl v1.01
P J Naughter
A Freeware MFC class to display an analog clock.
Bitmap Basics - A GDI tutorial [Bitmap, Palette, Article, Visual C++] www.codeproject.com 04-Mar-2000 by Chris Becke
Bitmap Basics - A GDI tutorial
Chris Becke
A set of basic tutorials on working with the core bitmap structures
CLedButton [Button Control, Article, Visual C++] www.codeproject.com 04-Mar-2000 by Benjamin Mayrargue
CLedButton
Benjamin Mayrargue
A button that looks like a LED.
IconComboBox - Selecting Icons [Combobox, List Control, Icon, MFC, Article, Visual C++] www.codeproject.com 04-Mar-2000 by P J Naughter
Finger Utility [Article, Visual C++] www.earthweb.com 02-Mar-2000 by Alexei Veremenko
Finger Utility
Alexei Veremenko
2-Mar-2000
2-Mar-2000
Very little documentation, but nice code on writing a Finger Utility
GUID Generator - Developer Studio Addin [Article, Visual C++] www.earthweb.com 02-Mar-2000 by Eddie Velasquez
GUID Generator - Developer Studio Addin
Eddie Velasquez
2-Mar-2000
2-Mar-2000
GUIDGen is an Add-In that replaces and extends the GUID Generator
component included with Developer Studio.
CString-like Class Using STL [Article, Visual C++] www.earthweb.com 02-Mar-2000 by Joe O'Leary
CString-like Class Using STL
Joe O'Leary
2-Mar-2000
2-Mar-2000
Gives you all the functionality of a CString (without having to have
MFC)
How to set a file's Date and Time (using: Visual Basic 6.0) [CloseHandle(), File, FILETIME, FileTimeToSystemTime(), GetFileTime(), OFSTRUCT, OpenFile(), SetFileTime(), Solution, SYSTEMTIME, SystemTimeToFileTime(), Time, Visual Basic] www.blackbeltvb.com 01-Mar-2000 by Matt Hart
Uses the following API functions:
CloseHandle()
GetFileTime()
FileTimeToSystemTime()
OpenFile()
SetFileTime()
SystemTimeToFileTime()
' OpenFile() Flags
Private Const OF_READ = &H0
Private Const OF_WRITE = &H1
Private Const OF_READWRITE = &H2
Private Const OF_SHARE_COMPAT = &H0
Private Const OF_SHARE_EXCLUSIVE = &H10
Private Const OF_SHARE_DENY_WRITE = &H20
Private Const OF_SHARE_DENY_READ = &H30
Private Const OF_SHARE_DENY_NONE = &H40
Private Const OF_PARSE = &H100
Private Const OF_DELETE = &H200
Private Const OF_VERIFY = &H400
Private Const OF_CANCEL = &H800
Private Const OF_CREATE = &H1000
Private Const OF_PROMPT = &H2000
Private Const OF_EXIST = &H4000
Private Const OF_REOPEN = &H8000
Private Const OFS_MAXPATHNAME = 128
' OpenFile() Structure
Private Type OFSTRUCT
cBytes As Byte
fFixedDisk As Byte
nErrCode As Integer
Reserved1 As Integer
Reserved2 As Integer
szPathName(OFS_MAXPATHNAME) As Byte
End Type
Private Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type
Private Type SYSTEMTIME
wYear As Integer
wMonth As Integer
wDayOfWeek As Integer
wDay As Integer
wHour As Integer
wMinute As Integer
wSecond As Integer
wMilliseconds As Integer
End Type
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As
Long
Private Declare Function GetFileTime Lib "kernel32" (ByVal hFile As Long,
lpCreationTime As FILETIME, lpLastAccessTime As FILETIME, lpLastWriteTime As
FILETIME) As Long
Private Declare Function FileTimeToSystemTime Lib "kernel32" (lpFileTime As
FILETIME, lpSystemTime As SYSTEMTIME) As Long
Private Declare Function OpenFile Lib "kernel32" (ByVal lpFileName As String,
lpReOpenBuff As OFSTRUCT, ByVal wStyle As Long) As Long
' Note I've changed the lpLastAccessTime from a FILETIME to a LONG, because I'm
going to pass a 0 (Null) 'cause I don't want to set it.
Private Declare Function SetFileTime Lib "kernel32" (ByVal hFile As Long,
lpC ... (cont.)
Cross-Platform Development Using GCC [Cross-Platform Development, GCC, Compiler, Article, Visual C++] C++ Users Journal 01-Mar-2000 by Jamie Guinan
Cross-Platform Development Using GCC
Jamie Guinan
You can build any number of native and cross Compilers from GCC, if you
know how.
Not-So-Obvious Utility Macros [Macro, Preprocessor, Article, Visual C++] C++ Users Journal 01-Mar-2000 by Radoslav Getov
Not-So-Obvious Utility Macros
Radoslav Getov
We all know the Preprocessor is primitive and ugly. Nevertheless, a
clever macro or two can still come in handy more often than we care to admit.
Finding Neat Scales for Plotting [Plotting, Article, Visual C++] C++ Users Journal 01-Mar-2000 by Antonio Gómiz Bas
Finding Neat Scales for Plotting
Antonio Gómiz Bas
Labeling axes is easy for people. For a computer, it’s rather less
obvious.
An Embedded Memory-Based SQL Class for C++ [SQL, Class, C++, Article, Visual C++] C++ Users Journal 01-Mar-2000 by Ben Faul
An Embedded Memory-Based SQL Class for C++
Ben Faul
SQL and C++ make a powerful combination, particularly if you don’t have
to do the combining yourself
Taming the 3-D Perspective Transform [3-D, Transform, Perspective, Article, Visual C++] C++ Users Journal 01-Mar-2000 by Alex Telford
Taming the 3-D Perspective Transform
Alex Telford
Showing objects in Perspective requires only simple math, but a little
not-so-simple strategy makes for a friendlier display.
An STL-Based N-Way Set [STL, N-way Set, Database, Container, Article, Visual C++] C++ Users Journal 01-Mar-2000 by Mark L Smith
An STL-Based N-Way Set
Mark L Smith
Databases support access with multiple keys. Why not allow the same
latitude with an STL-style Container?
Making Primitive Objects Thread Safe [Object, Thread Safe, Article, Visual C++] C++ Users Journal 01-Mar-2000 by Juval Lowy
Making Primitive Objects Thread Safe
Juval Lowy
All sorts of things need thread locks. A fairly simple template or two
can do the job.
Testing Conformance [Conformance, Article, Visual C++] C++ Users Journal 01-Mar-2000 by P J Plauger
P J Plauger
Testing Conformance
It’s impossible to prove conclusively that an implementation conforms
to a standard, but you can at least build some level of confidence.
Delphi COM: In-Process Servers Under the Microscope, Part 1 [COM, In-Process Server, COM Server, Article, Delphi] Delphi Developer 01-Mar-2000, vol. 6, no. 3 by Fernando Vicaria
Delphi COM: In-Process Servers Under the Microscope, Part 1
Fernando Vicaria
The objective of this article is not to teach COM or how to program in
Delphi. Instead, Fernando Vicaria shows you what goes on behind the scenes when
you write a simple COM Server. This is no short subject, so it's been split
into two parts. Part 1 discusses in-process servers -- that is, COM servers
that are implemented as a DLL. Part 2 will discuss out-of-process and remote
servers.
Delphi IDE Wizardry: Experts [IDE, Expert, Wizard, IDE, Article, Delphi] Delphi Developer 01-Mar-2000, vol. 6, no. 3 by Bob Swart
Delphi IDE Wizardry: Experts
Bob Swart
"Delphi IDE Wizardry" is a column that explores new features and
enhancements found in and developed for the Delphi IDE. This time, Bob Swart
explores the different ways to integrate Experts or Wizards to the Delphi IDE
using the Delphi OpenTools API.
Creating a Component to Display Application Version Information [Component, Version, Article, Delphi] Delphi Developer 01-Mar-2000, vol. 6, no. 3 by Larry Dew
Creating a Component to Display Application Version Information
Larry Dew
Every time Larry Dew created a Help/About form, he had to write code to
iterate through the file version information that can be included with the
application. At first he wrote a simple function and placed it in his utility
library unit and then called it from the showform method in HelpAboutForm.
While this worked, he thought a component that could be dropped onto the form
would be easier to use. In this article, he shows how he created the component,
called ssShowVersion.
Character Animation with Delphi [Animation, Article, Delphi] Delphi Developer 01-Mar-2000, vol. 6, no. 3 by Michael Chapin
Character Animation with Delphi
Michael Chapin
How do the creators of A Bug's Life and Antz build those motion
pictures? By using character animation software, that's how. In this article,
Michael Chapin uses Delphi to explore the basics of character animation. It
will draw a skeleton and move the bones around. Who says C++ programmers have
all the fun?
Owner-drawn Property Editors [Owner-drawn Property, Property, Article, Delphi] Delphi Informant 01-Mar-2000, vol. 6, no. 2 by Ray Lischner
Owner-drawn Property Editors
Ray Lischner
New in Delphi 5 is the ability for a property editor to draw anything
to display a property's name and value, and if the property has a drop-down
list, you can draw each list item, as Mr Lischner explains.
CORBA: Part II [CORBA, JBuilder, Article, Delphi] Delphi Informant 01-Mar-2000, vol. 6, no. 2 by Dennis P Butler
CORBA: Part II
Dennis P Butler
Mr Butler ends his two-part exploration of CORBA development by
describing how to build CORBA clients with Delphi (both early and late binding)
and with JBuilder.
Visual Form Inheritance: Part II [Visual Form Inheritance, Inheritance, Article, Delphi] Delphi Informant 01-Mar-2000, vol. 6, no. 2 by Rick Spence
Visual Form Inheritance: Part II
Rick Spence
Mr Spence winds up his two-part introduction to Delphi's woefully
underdocumented VFI capabilities by creating a generic table maintenance
application.
Interfaces Revisited: Part I [Interface, Article, Delphi] Delphi Informant 01-Mar-2000, vol. 6, no. 2 by Cary Jensen
Interfaces Revisited: Part I
Cary Jensen
More than a method, less than a class, but not an object, the Object
Pascal interface defies brief description. Dr Jensen is up to the task,
however, and provides an updated introduction.
SAX for Delphi [SAX, Simple API for XML, XML, Article, Delphi] Delphi Informant 01-Mar-2000, vol. 6, no. 2 by Keith Wood
SAX for Delphi
Keith Wood
Mr Wood explains the importance of SAX(Sample API for XML) and then
demonstrates its power by building an impressive example application for Delphi
versions 3, 4, and 5.
FormShaper [Form, UI, Article, Delphi] Delphi Informant 01-Mar-2000, vol. 6, no. 2 by Peter Morris
FormShaper
Peter Morris
Tired of the standard rectangular windows? Have an exotic UI request
from a client? Mr Morris shares his FormShaper component, and shows us how to
think outside the box.
Low-level Delphi: Part II [Assembler, Article, Delphi] Delphi Informant 01-Mar-2000, vol. 6, no. 2 by Andre van der Merwe
Low-level Delphi: Part II
Andre van der Merwe
Mr van der Merwe presents the basics of inline Assembler in Delphi,
including labels, constants, registers, expressions, typecasts, calling
conventions, and stack frames.
Tibco's Rendezvous [Article, Delphi] Delphi Informant 01-Mar-2000, vol. 6, no. 2 by Bob Depin
Tibco's Rendezvous
Bob Depin
Mr Depin outlines the basics of using Rendezvous components, and builds
a messaging application that distributes data to multiple clients - on the same
machine, or over a LAN.
SQL Server 2000: New XML Features Streamline Web-centric App Development (using: SQL Server 2000) [SQL Server, XML, Web, HTTP, Database, Vector Markup Language, SQL Server, Article] MSDN Magazine 01-Mar-2000, vol. 15, no. 3 by Joshua Trupin
SQL Server 2000: New XML Features Streamline Web-centric App Development
With XML support in SQL Server 2000, you can query SQL over HTTP with a
URL, bring the data down to the browser, and manipulate it on the client
machine. By adding Internet Explorer 5.0 to the mix and using XSL to convert
the XML to HTML, you can lighten the load on your Database server. Going still
one step further, by using Vector Markup Language you can even create drawings
on the fly using the data from your SQL queries.
Joshua Trupin
A Young Person’s Guide to The Simple Object Access Protocol: SOAP Increases Interoperability Across Platforms and Languages [Simple Object Access Protocol, SOAP, Interoperability, Web, HTTP, XML, Visual C++, Article] MSDN Magazine 01-Mar-2000, vol. 15, no. 3 by Don Box
A Young Person’s Guide to The Simple Object Access Protocol: SOAP
Increases Interoperability Across Platforms and Languages
The Simple Object Access Protocol (SOAP) facilitates interoperability
among a wide range of programs and platforms, making existing applications
accessible to a broader range of users. SOAP combines the proven Web technology
of HTTP with the flexibility and extensibility of XML.
Don Box
Window 2000 UI Innovations: Using New Shell Extensions Such as Infotip and Icon Overlay to Enhance Your User's Experience [Window 2000, UI, Shell Extension, Infotip, Icon Overlay, Explorer, Context Menu Shell Extension, Visual C++, Article] MSDN Magazine 01-Mar-2000, vol. 15, no. 3 by Dino Esposito
Window 2000 UI Innovations: Using New Shell Extensions Such as Infotip
and Icon Overlay to Enhance Your User's Experience
Windows 2000 includes some helpful new UI features you can customize
and implement in your own applications. In this article you’ll see how to
provide infotips for files, after making the appropriate registry entries. Then
create a custom column handler extension, resulting in a new column for the
Explorer’s Details view. In order to further extend the shell, additional UI
goodies will also be examined and implemented including: search handlers,
cleanup handlers, folder customizations using property sheet handlers and icon
overlays, and Context Menu Shell Extensions. All the code samples are rolled up
into a handy package which we’ve named, by tradition, ShellToys.
Dino Esposito
Drag and Drop Data Manipulation Powered by XML [Drag and Drop, XML, VML, Vector Markup Language, XSL, JScript, Internet Explorer, Visual C++, Article] MSDN Magazine 01-Mar-2000, vol. 15, no. 3 by Scott Howlett, Jeff Dunmall
Drag and Drop Data Manipulation Powered by XML
Building on the browser-based org chart featuring VML (Vector Markup
Language) described previously in Microsoft Internet Developer, this article
takes you through the process of refining that sample app by using XML, XSL,
and JScript code to create a new, improved version. Drag and drop editing is
added to the org chart interface thanks to built-in support found in Internet
Explorer 5.0. XML and JScript allow data manipulated on the screen to be saved
back to the server in its native format. The final product of this combination
of XML, XSL, and VML is a high performance, scalable Internet app that uses
processing on the client to reduce stress for the server.
Scott Howlett
and
Jeff Dunmall
Build a Dynamic Intranet the Easy Way Using Office Docs, FSO and OLE Structured Storage [Intranet, Office, Structured Storage, HTML, File System Object, FSO, ActiveX, Word, Office, Article] MSDN Magazine 01-Mar-2000, vol. 15, no. 3 by Josef Finsel
Build a Dynamic Intranet the Easy Way Using Office Docs, FSO and OLE
Structured Storage
If you’ve ever needed to build an easy-to-maintain intranet site,
here’s a solution based on Microsoft Office documents. Many sites require
constant updating of their HTML, but the use of Word documents can simplify the
process. This article details the construction of a human resources site that
exploits the File System Object (FSO), OLE Structured Storage, and ActiveX
capabilities of Word documents. This allows the HR staff to copy their revised
or newly created Word files to the site, dynamically generate a list of links
to their files, and free IS from the constant recoding of HR updates into new
HTML pages.
Josef Finsel
Accessing Recordsets over the Internet [Recordset, Internet, Visual C++, Article] MSDN Magazine 01-Mar-2000, vol. 15, no. 3 by Dino Esposito
Accessing Recordsets over the Internet
Dino Esposito
XML-based Persistence Behaviors Fix Web Farm Headaches
Aaron Skonnard
Compiling Components in Visual Basic for ASP [Component, ASP, Visual Basic, Article] MSDN Magazine 01-Mar-2000, vol. 15, no. 3 by Ken Spencer
Compiling Components in Visual Basic for ASP
Ken Spencer
Performance Trade-offs of the Windows 2000 Component Execution Environment [Windows 2000, Component Execution Environment, Windows NT, Article] MSDN Magazine 01-Mar-2000, vol. 15, no. 3 by Don Box
Performance Trade-offs of the Windows 2000 Component Execution
Environment
Don Box
Exploring Handle Security in Windows [Handle Security, Security, Windows NT, Article] MSDN Magazine 01-Mar-2000, vol. 15, no. 3 by Keith Brown
Exploring Handle Security in Windows
Keith Brown
Porting Applications from MTS to COM+ [MTS, COM+, Visual Basic, Article] MSDN Magazine 01-Mar-2000, vol. 15, no. 3 by Ted Pattison
Porting Applications from MTS to COM+
Ted Pattison
ATL Virtual Functions and vtables [ATL, Virtual Function, vtable, Visual C++, Article] MSDN Magazine 01-Mar-2000, vol. 15, no. 3 by Paul DiLascia
ATL Virtual Functions and vtables
Paul DiLascia
Supercharge Data Binding [Data Binding, ADO, Article, Visual Basic] Visual Basic Programmer's Journal 01-Mar-2000, vol. 10, no. 3 by Keith Franklin
Supercharge Data Binding
Keith Franklin
Data binding with VB6 and ADO 2.x is now scalable, flexible, and easier
to implement. Use it to display and enter data, and to control the UI.
Prevent File Tampering [File, Article, Visual Basic] Visual Basic Programmer's Journal 01-Mar-2000, vol. 10, no. 3 by James World
Prevent File Tampering
James World
A comprehensive set of Windows API functions can help make your files
tamper-resistant.
Create a Help System [Help, WinHelp, HTML Help, Article, Visual Basic] Visual Basic Programmer's Journal 01-Mar-2000, vol. 10, no. 3 by Stan Schultes
Create a Help System
Build layered user help into your apps while avoiding the complexity of
WinHelp or HTML Help.
Stan Schultes
Type Your Data Correctly [Datatype, Article, Visual Basic] Visual Basic Programmer's Journal 01-Mar-2000, vol. 10, no. 3 by Dan Petit
Type Your Data Correctly
VB's numerous Datatypes can confuse even the most seasoned programmers.
Take a practical look at each VB type and make your data work for you, not
against you.
Dan Petit
Create Data Forms Easily [Data Access Page Designer, Intranet, Form, Access, Article, Visual Basic] Visual Basic Programmer's Journal 01-Mar-2000, vol. 10, no. 3 by Paul Litwin
Create Data Forms Easily
Access 2000 introduces a Data Access Page Designer, which simplifies
building Intranet data Forms. The biggest drawbacks: scalability and its
dependence on IE5.
Paul Litwin
Simplify Changes
The Strategy Design Pattern lets you define a family of algorithms,
encapsulate each one, and make them all interchangeable.
Deborah Kurata
How to emulate an Alt+Tab keypress in code [Article, Visual Basic] Visual Basic Programmer's Journal 01-Mar-2000, vol. 10, no. 3 by Karl E Peterson
How to emulate an Alt+Tab keypress in code
Learn how to emulate an Alt+Tab keypress in code.
Karl E Peterson
Retrieve Windows Font Specification [Font, System Metric, System Font, Article, Visual Basic] Visual Basic Programmer's Journal 01-Mar-2000, vol. 10, no. 3 by Karl E Peterson
Retrieve Windows Font Specification
Use a simple API call to return information on several System Metrics,
including System Fonts.
Karl E Peterson
Process Rows With Cursors [Cursor, Transact-SQL, SQL Server, Article, Visual Basic] Visual Basic Programmer's Journal 01-Mar-2000, vol. 10, no. 3 by Mary V Hooke
Process Rows With Cursors
Learning to use Transact-SQL cursors effectively can help you take much
better advantage of SQL Server's capabilities.
Mary V Hooke
Display Query Results From ASP [Query, ASP, Article, Visual Basic] Visual Basic Programmer's Journal 01-Mar-2000, vol. 10, no. 3 by Francesco Balena
Display Query Results From ASP
The author shows you how to speed up and extend your ASP code by
encapsulating it into a VB ASP component. This component enables you display
query results from ASP.
Francesco Balena
Create Round-Trip XML Recordsets [XML, Recordset, Cursor, ADO, IIS, Article, Visual Basic] Visual Basic Programmer's Journal 01-Mar-2000, vol. 10, no. 3 by Andrew J Brust
Create Round-Trip XML Recordsets
Send batch-updatable Cursors bidirectionally over the Web with ADO 2.5
and IIS 5.
Andrew J Brust
Speed Up Large Calculations [Article, Visual Basic] Visual Basic Programmer's Journal 01-Mar-2000, vol. 10, no. 3 by Jason Bock
Speed Up Large Calculations
Using native datatypes in VB is standard for most programming
calculations, but you need nontrivial algorithms to handle the calculations for
large numbers.
Jason Bock
Real-Time Kernel-Mode Tracing [Kernel Mode, Tracing, Debugging, Device Driver, Article, Visual C++] Windows Developer's Journal 01-Mar-2000, vol. 11, no. 3 by Mark S Covert
Real-Time Kernel-Mode Tracing
Mark S Covert
When you’re Debugging a Device Driver problem that’s sensitive to
timing and memory placement, you need a low-impact tool to gather information.
This article discusses techniques for adding a very low overhead tracing
mechanism, whose output you can view with a simple console-mode program (no
separate debugging machine required).
Passing Plain C++ Objects via COM [C++, Object, COM, Article, Visual C++] Windows Developer's Journal 01-Mar-2000, vol. 11, no. 3 by Steve Samarov
Passing Plain C++ Objects via COM
Steve Samarov
When both your client and server are written in C++, it would sometimes
be convenient to be able to pass an ordinary C++ object to a remote COM object,
without having to redesign it as a COM class. This article shows how an
ordinary C++ class can be extended slightly so you can pass it across apartment
and machine boundaries.
Using Structures in Active Scripting [Structure, Scripting, Article, Visual C++] Windows Developer's Journal 01-Mar-2000, vol. 11, no. 3 by Gilberto Araya
Using Structures in Active Scripting
Gilberto Araya
Microsoft’s free scripting library provides object access, but not
structures. This article demonstrates that it’s possible to add realistic
structure access to Microsoft’s Active Scripting, allowing the script to access
structure members with a natural syntax.
Understanding NT: Windows File Protection and how it actually works in the pre-release version of Windows 2000 [Windows File Protection, WFP, Windows NT, Article, Visual C++] Windows Developer's Journal 01-Mar-2000, vol. 11, no. 3 by Paula Tomlinson
Understanding NT: Windows File Protection and how it actually works in
the pre-release version of Windows 2000
Paula Tomlinson
Microsoft takes yet another whack at solving the 'DLL hell' problem in
Windows 2000, providing a new feature called 'Windows File Protection' (WFP).
This column describes WFP and examines how it actually works in the pre-release
version of Windows 2000.
Invoking File Properties from Console Apps [Console App, File Properties Dialog, Article, Visual C++] Windows Developer's Journal 01-Mar-2000, vol. 11, no. 3 by Scott Singer
Invoking File Properties from Console Apps
Scott Singer
If your program invokes a File Properties dialog, it can’t terminate or
the dialog will disappear; here’s how to locate the dialog window so you can
discover when it’s finished.
Starting Simulated-Runtime Access Instance from C++ [C++, Access, Article, Visual C++] Windows Developer's Journal 01-Mar-2000, vol. 11, no. 3 by Glenn Pearson
Starting Simulated-Runtime Access Instance from C++
Glenn Pearson
Tips on starting and manipulating Microsoft Access from a C++ program.
Various forms of Subclassing and provides a small library that provides safe (as safe as possible, anyway) subclassing [Subclassing, Article, Visual C++] Windows Developer's Journal 01-Mar-2000, vol. 11, no. 3 by Petter Hesselberg
Various forms of Subclassing and provides a small library that provides
safe (as safe as possible, anyway) subclassing
Petter Hesselberg
To really reuse or build upon existing GUI code in Windows, you almost
always need to use some form of window subclassing. This column looks at
various forms of subclassing and provides a small library that provides safe
(as safe as possible, anyway) subclassing.
Build a Hybrid Client [Client, Web, MFC, MFC, Article, Visual C++] Visual C++ Developers Journal 01-Mar-2000, vol. 3, no. 2 by Christian Gross
Build a Hybrid Client
Christian Gross
Programming Web apps now? Don’t throw away your traditional clients
just yet! Use MFC and Web technologies to build a hybrid client application
that incorporates the best of both worlds.
Use COM Interfaces to Read Type Libraries [COM, Interface, ITypeLib Interface, ITypeInfo Interface, Type Library, Article, Visual C++] Visual C++ Developers Journal 01-Mar-2000, vol. 3, no. 2 by Jeff Ferguson
Use COM Interfaces to Read Type Libraries
Jeff Ferguson
Type libraries give you the power to use objects, interfaces, and data
structures with a COM server. Learn to use COM’s ITypeLib and ITypeInfo
interfaces to read information directly from type libraries.
Locating, Analyzing, and Repairing Memory Problems [Memory, Memory Leak, Debugging, C++, Article, Visual C++] Visual C++ Developers Journal 01-Mar-2000, vol. 3, no. 2 by Chris H Pappas, William H Murray III
Locating, Analyzing, and Repairing Memory Problems
Chris H Pappas
and
William H Murray III
Memory Leaks are difficult to detect - and finding the problem is only
the tip of the iceberg. In this excerpt from the upcoming Debugging C++:
Troubleshooting for Programmers, learn to find, analyze, and fix memory
allocation and leak problems in your apps.
12 Tips for Effective Operator Overloading [Operator Overloading, Article, Visual C++] Visual C++ Developers Journal 01-Mar-2000, vol. 3, no. 2 by Bill Wagner
12 Tips for Effective Operator Overloading
Bill Wagner
Some programmers shy away from operator overloading; some embrace it to
a fault. Learn how to use it effectively for clearer code.
Tap Into Transient Subscriptions [COM+, Article, Visual C++] Visual C++ Developers Journal 01-Mar-2000, vol. 3, no. 2 by Jeff Prosise
Tap Into Transient Subscriptions
Jeff Prosise
Transient subscriptions allow running clients to respond to events.
Here’s how to put this important COM+ tool to use.
Transport Data With XML [Data, XML, Article, Visual C++] Visual C++ Developers Journal 01-Mar-2000, vol. 3, no. 2 by Jim Beveridge
Transport Data With XML
Jim Beveridge
Everyone has a different opinion about what XML can do and how best to
use it. Here you’ll learn why XML makes an excellent data transfer format
Bugs, Bytes, and Datatypes [Debugging, Macro, Inheritance, Memory Allocation, iostream, C++, Article, Visual C++] Visual C++ Developers Journal 01-Mar-2000, vol. 3, no. 2 by Danny Kalev
Bugs, Bytes, and Datatypes
Danny Kalev
Our VC++ Pro tackles your questions on Debugging Macros, Inheritance
and Memory Allocation, iostream objects’ memory use, using C++ for AIX Unix and
Windows NT, and more.
Write Thread-Safe Code With ATL [Thread Safe, ATL, COM, Apartment, Article, Visual C++] Visual C++ Developers Journal 01-Mar-2000, vol. 3, no. 2 by Richard Grimes
Write Thread-Safe Code With ATL
Richard Grimes
Learn how ATL wizards can help you write components for all COM
Apartment types.
Save Time: Marshal by Value [Marshaling, COM, Interface, Article, Visual C++] Visual C++ Developers Journal 01-Mar-2000, vol. 3, no. 2 by George Shepherd
Save Time: Marshal by Value
George Shepherd
Knowing how COM gets Interfaces from one execution to the next can cut
your coding time.
TLBX.EXE .... Type Library Viewer uses COM Interfaces to Read Type Libraries [COM, Interface, ITypeLib Interface, ITypeInfo Interface, Type Library, Article, Visual C++, EXE] Visual C++ Developers Journal 01-Mar-2000, vol. 3, no. 2 by Jeff Ferguson
Use COM Interfaces to Read Type Libraries
Jeff Ferguson
Type libraries give you the power to use objects, interfaces, and data
structures with a COM server. Learn to use COM’s ITypeLib and ITypeInfo
interfaces to read information directly from type libraries.
WhoIS Class for MFC [Internet, Network, MFC, Article, Visual C++] www.codeproject.com 01-Mar-2000 by Ed Dixon
WhoIS Class for MFC
Ed Dixon
A simple MFC class for WhoIS processing for the Internet.
Zip and Unzip the MFC Way [C++, MFC, Windows Programming, Article, Visual C++] www.codeguru.com 01-Mar-2000 by Tadeusz Dracz
Zip and Unzip the MFC Way
Tadeusz Dracz
Timer Support for Non-Window Classes [C++, MFC, Windows Programming, Article, Visual C++] www.codeguru.com 01-Mar-2000 by Rudolf Ladyzhenksii
Timer Support for Non-Window Classes
Rudolf Ladyzhenksii
Using Common File Dialogs as Modeless Views [Dialog, Article, Visual C++] www.codeguru.com 01-Mar-2000 by Aliaksei Sanko
Using Common File Dialogs as Modeless Views
Aliaksei Sanko
A Powerful Function Parser [C++, MFC, Article, Visual C++] www.codeguru.com 01-Mar-2000 by Andreas Jäger
Who's Locking? v1.3
Emmanuel Kartmann
Several key enhancements to popular DLL utility !!
MFC Multithreaded Classes for Recording, Playing and Saving (WAV files) Sound [Multimedia, Article, Visual C++] www.codeguru.com 01-Mar-2000 by Paul Cheffers
MFC Multithreaded Classes for Recording, Playing and Saving (WAV files)
Sound
Paul Cheffers
Added ability to save WAV files
Troubleshoot ActiveX Data Objects Errors [ActiveX Data Objects, Article, Lotus Notes] Notes Advisor 01-Mar-2000 by Terrance A Crow
Data Integration - Lotus Notes & Domino Advisor - March 2000
Troubleshoot ActiveX Data Objects Errors
Terrance A Crow
Real-World XML [XML, Article, Lotus Notes] Notes Advisor 01-Mar-2000 by Christopher Pepin
Data Integration - Lotus Notes & Domino Advisor - March 2000
Real-World XML
Christopher Pepin
IT Factory SDK and Business Suite [Article, Lotus Notes] Notes Advisor 01-Mar-2000 by Matt Holthe
DEVELOPMENT TOOLS - Lotus Notes & Domino Advisor - March 2000
IT Factory SDK and Business Suite
Matt Holthe
MFC Multithreaded Classes for Recording, Playing and Saving (WAV files) Sound [Article, Visual C++] www.earthweb.com 01-Mar-2000 by Paul Cheffers
MFC Multithreaded Classes for Recording, Playing and Saving (WAV files)
Sound
Paul Cheffers
1-Mar-2000
1-Mar-2000
C++ classes, CRecordSound and CPlaySound, that record sound and play
PCM sound simultaneously
A Powerful Function Parser [Article, Visual C++] www.earthweb.com 01-Mar-2000 by Andreas Jäger
A Powerful Function Parser
Andreas Jäger
1-Mar-2000
1-Mar-2000
Easy-to-use parser for functions given as string
Using Common File Dialogs as Modeless Views [Article, Visual C++] www.earthweb.com 01-Mar-2000 by Aliaksei Sanko
Using Common File Dialogs as Modeless Views
Aliaksei Sanko
1-Mar-2000
1-Mar-2000
Great code that enables you to use the common dialogs such as File
Open, Print, etc. as a modeless view in your MFC application.
Timer Support for Non-Window Classes [Article, Visual C++] www.earthweb.com 01-Mar-2000 by Rudolf Ladyzhenksii
Timer Support for Non-Window Classes
Rudolf Ladyzhenksii
1-Mar-2000
1-Mar-2000
Illustrates how to implement a Windows timer without having to have a
window (hidden or not)
Command-line 'Where' Tool
Glenn Carr
Fixed minor bugs in source code
Dynamic Child Window Repositioning [UI, Article, Visual C++] www.codeguru.com 29-Feb-2000 by Hans Buhler
Dynamic Child Window Repositioning
Hans Buhler
Read the article notes carefully! This framework has undergone a MAJOR
update!
Adding a Customozied 'More Windows...' Dialog to an MDI Application [Article, Visual C++] www.earthweb.com 29-Feb-2000 by Yogesh Jagota
Adding a Customozied 'More Windows...' Dialog to an MDI Application
Yogesh Jagota
29-Feb-2000
29-Feb-2000
Give you the ability, like Visual Studio, to include a menu in your MDI
application that displays a dialog for faster user access to open windows
TreeView with Three-State Checkboxes [Article, Visual C++] www.earthweb.com 29-Feb-2000 by Mike Korzeniowski
TreeView with Three-State Checkboxes
Mike Korzeniowski
29-Feb-2000
29-Feb-2000
Allows you to write applications that show a third-state of selection
for your tree control items
CStatic-Derived Flat Button Class [Article, Visual C++] www.earthweb.com 29-Feb-2000 by Kwon Jin-ho
CStatic-Derived Flat Button Class
Kwon Jin-ho
29-Feb-2000
29-Feb-2000
With this class your applications can have standard buttons or new and
modern buttons with "flat" style!
Command-line 'Where' Tool
Glenn Carr
29-Feb-2000
29-Feb-2000
Command-line wrapper for the Win32 SearthPath API that mimics the Unix
csh utility
Dynamic Child Window Repositioning [Article, Visual C++] www.earthweb.com 29-Feb-2000 by Hans Buehler
Dynamic Child Window Repositioning
Hans Buehler
29-Feb-2000
29-Feb-2000
Code that will make your windows support automatic repositioning of
their child controls
COM/DCOM Exception Class [Article, Visual C++] www.earthweb.com 29-Feb-2000 by Reg Anderson
COM/DCOM Exception Class
Reg Anderson
29-Feb-2000
29-Feb-2000
This article includes an updated SYSEX exception class.
Drag-and-Drop TreeCtrl (with multiple selection) [Article, Visual C++] www.earthweb.com 29-Feb-2000 by Andrei Romanov
Drag-and-Drop TreeCtrl (with multiple selection)
Andrei Romanov
29-Feb-2000
29-Feb-2000
Illustrates how to have a treeview that supports the dragging and
dropping of multiply selected items
29-Feb-2000
29-Feb-2000
TPictureClip
Use TPictureClip custom component to extract portions of a matrix of
pictures and assign the "cell picture" to another picture control.
Templates and MFC [C++, MFC, STL, Template, Article, Visual C++] www.codeproject.com 28-Feb-2000 by Len Holgate
Templates and MFC
Len Holgate
Templates are a great way of reusing code, unfortunately MFC
Implementing Modal Message Loops [Dialog, Windows Programming, Article, Visual C++] www.codeproject.com 28-Feb-2000 by Chris Becke
Implementing Modal Message Loops
Chris Becke
An introduction to creating modal windows
Tabbed Dialog Box Class [Dialog, Windows Programming, Article, Visual C++] www.codeproject.com 28-Feb-2000 by Christophe Mestrallet
Tabbed Dialog Box Class
Christophe Mestrallet
A docking dialog that auto-expands when the mouse passes over it
C++ Certification [Article, Visual C++] cplus.about.com 28-Feb-2000
28-Feb-2000
28-Feb-2000
C++ Certification
Why and how?
Replacing the Default MFC Application Icon [Article, Visual C++] www.earthweb.com 28-Feb-2000 by Shahzad Alam
Replacing the Default MFC Application Icon
Shahzad Alam
28-Feb-2000
28-Feb-2000
For the many new MFC programmers who wonder how to 'replace' the
default icon rather than to change or edit in the resource editor
Writing extensible applications [COM, DCOM, Article, Visual C++] www.codeproject.com 26-Feb-2000 by Len Holgate
Writing extensible applications
Len Holgate
Using simple in-process COM objects you can make an application easy to
extend without the need for recompilation of the main app.
Include/Exclude List Boxes [C++, MFC, STL, CListBox Class, Article, Visual C++] www.codeproject.com 26-Feb-2000 by Len Holgate
Include/Exclude List Boxes
Len Holgate
How to package lots of standard functionality into a CListBox derived
class.
Get Dropdown's hWnd Without Subclassing (using: Visual Basic 6.0) [ClientToScreen(), ComboBox Control, DropDown Event, GetClassName(), Handle, PostMessage(), Subclassing, WindowFromPoint(), WM_KEYDOWN, Visual Basic, Tip] www.devx.com 25-Feb-2000 by Mike Hill
Get Dropdown's hWnd Without Subclassing
I’ve written code to get the hWnd for a combo's dropdown. When a combo's
DropDown event is fired, the dropdown is not yet visible on the screen. Post a
WM_KEYDOWN to the combo, which causes the combo's KeyDown event to fire after
the dropdown is visible. Then use the Win32 API calls ClientToScreen,
WindowFromPoint, and GetClassName to locate the dropdown window. Once you have
the dropdown’s hWnd, you can move and resize the dropdown window using Win32
API calls such as SetWindowPos. You’ll find this technique useful where the
width of the combo is less then the width of the combo's longest item text. To
shorten the code listing, I'm leaving to you the case where the dropdown is
dropped above the combo:
Option Explicit
Private Type POINTAPI
x As Long
y As Long
End Type
Private Declare Function PostMessage Lib "user32" Alias _
"PostMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Function WindowFromPoint Lib "user32" _
(ByVal xPoint As Long, ByVal yPoint As Long) As Long
Private Declare Function ClientToScreen Lib "user32" (ByVal _
hWnd As Long, lpPoint As POINTAPI) As Long
Private Declare Function GetClassName Lib "user32" Alias _
"GetClassNameA" (ByVal hWnd As Long, ByVal lpClassName As _
String, ByVal nMaxCount As Long) As Long
Private Const WM_KEYDOWN = &H100
Private Const KEY_CODE_DROPDOWN = 256
Private Sub Combo1_DropDown()
'This will cause Combo1_KeyDown to fire
'after the DropDown is shown
Call PostMessage(Combo1.hWnd, WM_KEYDOWN, KEY_CODE_DROPDOWN, 0)
End Sub
Private Sub Combo1_KeyDown(KeyCode As Integer, Shift As _
Integer) Dim hwndDropdown As Long
If KeyCode = KEY_CODE_DROPDOWN Then
hwndDropdown = GetHwndDropdown(Combo1)
Debug.Print hwndDropdown
End If
End Sub
Private Function GetHwndDropdown(cbo As ComboBox) As Long
Dim ptDropDown As POINTAPI
Dim hwndDropdown As Long
Dim sClassName As String
Dim ... (cont.)
cICMP .... How to ping a hostname or an IP address [Domain Name, Internet, IP Address, Network, Ping, Hostname, VB Class Module, Visual Basic] www.codeoftheweek.com 25-Feb-2000, no. 115
Requirements
Visual Basic 4.0 32-bit or higher.
cICMP
-----
This class module provides a simple way to ping another host. If
you use this function on the Internet it will figure out the
response time of a domain name. This can be useful for debugging
network problems and determining the response of various network
hosts around the network. One way we use it is to check the
response time to particular web servers on the internet. Not all
web servers support the responding to ICMP requests (ping).
Properties
Public Property Let PacketSize(lPacketSize As Long)
Public Property Get PacketSize() As Long
The size of the packet used when sent to the host during the Ping
process.
Public Property Let PacketCount(lPacketCount As Long)
Public Property Get PacketCount() As Long
The number of packets to send sequentially during the Ping
process. To get the status of each ping step, look at the
PingStatus event described below.
Methods
Public Sub Initialize()
This method needs to be called before the any other routines in
this class module. It is the one that initializes the winsock
library.
Public Sub Ping(sHostName As String)
The Ping method uses the ICMPSendEcho function to perform the
ping operation. Microsoft describes the ICMPSendEcho command as
follows: The ICMPSendEcho() function sends an ICMP echo request
to the specified destination IP address and returns any replies
received within the timeout specified. The API is synchronous,
requiring the process to spawn a thread before calling the API to
avoid blocking (which we did not implement for this version in
Visual Basic). An open IcmpHandle is required for the request to
complete. IcmpCreateFile() and IcmpCloseHandle() functions are
used to create and destroy the context handle.
Events
Public Event PingStatus(lStatus As Long, sResultString As String,
sRespondingHost As String, iBytesSent As Integer, lRoundTripTime As Long,
lTimeToLive As Byte)
This event will be fired for each ICMPS ... (cont.)
COM: IEnumXXXX to STL-style iterator Wrapper Class [ATL, COM, Wrapper Class, Article, Visual C++] www.codeproject.com 25-Feb-2000 by Len Holgate
COM: IEnumXXXX to STL-style iterator Wrapper Class
Len Holgate
A simplified method to enumerate a collection of objects.
Component Category Manager Wrapper Classes
Len Holgate
COM objects can be categorised using the Component Category Manager.
The code here makes it easier to use these categories in your code.
A Flat ToolBar that does not require Internet Explorer [Toolbar, Docking Window, Explorer, Common Control, Article, Visual C++] www.codeproject.com 25-Feb-2000 by Joerg Koenig
A Flat ToolBar that does not require Internet Explorer
Joerg Koenig
A flat toolbar implementation that does not require the updated Common
Controls library from Internet Explorer.
Autosave and Crash Recovery [Document/View, Article, Visual C++] www.codeproject.com 25-Feb-2000 by Jesse Ezell
Autosave and Crash Recovery
Jesse Ezell
How to implement autosave and autorecover features in your application
A Task Tray Applet Framework [Shell Programming, System Tray, Article, Visual C++] www.codeproject.com 25-Feb-2000 by Len Holgate
A Task Tray Applet Framework
Len Holgate
A framework for System Tray applets
Registry API Wrapper [System, Article, Visual C++] www.codeproject.com 25-Feb-2000 by Len Holgate
Registry API Wrapper
Len Holgate
The Win32 Registry API is far too complex for simple tasks, and all the
error checking gets in the way of the real work...
Control Panel Applet Framework [Win32, SDK Programming, Article, Visual C++] www.codeproject.com 25-Feb-2000 by Len Holgate
Control Panel Applet Framework
Len Holgate
A mini framework for writing Control Panel applets. Just fill in the
blanks!.
Simple Graph Control [Article, Visual C++] www.earthweb.com 25-Feb-2000 by Larry Leonard
Simple Graph Control
Larry Leonard
25-Feb-2000
25-Feb-2000
This is a very simple (but easily enhanced) CStatic-derived class to do
bar, line, and pie graphs
Free size and extended styles in CPropertySheets [Property Sheet, CPropertySheet Class, Article, Visual C++] www.codeproject.com 24-Feb-2000 by Antonio Tejada Lacaci
Free size and extended styles in CPropertySheets
Antonio Tejada Lacaci
How to use extended styles and make Property Sheet any size.
Sharing folders using tree control drag & drop [Tree Control, Drag and Drop, Article, Visual C++] www.codeproject.com 24-Feb-2000 by Sardaukar
Sharing folders using tree control drag & drop
Sardaukar
A very simple manager for shared folders using tree control drag & drop
A Custom Block Allocator for Speeding Up VC++ STL [C++, MFC, Article, Visual C++] www.codeguru.com 24-Feb-2000 by Joaquín M López Muñoz
A Custom Block Allocator for Speeding Up VC++ STL
Joaquín M López Muñoz
A Custom Block Allocator for Speeding Up VC++ STL [Article, Visual C++] www.earthweb.com 24-Feb-2000 by Joaquín M López Muñoz
A Custom Block Allocator for Speeding Up VC++ STL
Joaquín M López Muñoz
24-Feb-2000
24-Feb-2000
block_allocator is a custom STL allocator for use with STL as
implemented in Microsoft VC++
Sizing Dialog Box
Niki Estner
24-Feb-2000
24-Feb-2000
Have you ever made sizing dialog boxes? Well I've made some (with my
bare hands and a bit MFC support). Well it was quite a hack
A Wrapper for MessageBoxIndirect [Article, Visual C++] www.earthweb.com 24-Feb-2000 by Peter Kenyon
A Wrapper for MessageBoxIndirect
Peter Kenyon
24-Feb-2000
24-Feb-2000
Demonstrates how to set the icon of a MessageBox among other things
Snap-In Interface Technology + Embedded MFC GUI into ATL Server DLL [Article, Visual C++] www.earthweb.com 24-Feb-2000 by Steve Bryndin
Snap-In Interface Technology + Embedded MFC GUI into ATL Server DLL
Steve Bryndin
24-Feb-2000
24-Feb-2000
Great article on how to use ATL for advanced UI functionality
A powerful function Parser (using: Visual C++ 6.0) [C++, MFC, STL, Parser, Article, Visual C++] www.codeproject.com 23-Feb-2000 by Andreas Jäger
A powerful function Parser
Andreas J?ger
A simple yet powerful function parser that parses and evaluates
standard mathematical functions
Addison-Velski and Landis (AVL) Binary Trees (using: Visual C++ 6.0) [C++, MFC, STL, Article, Visual C++] www.codeproject.com 23-Feb-2000 by Andreas Jäger
Addison-Velski and Landis (AVL) Binary Trees
Andreas J?ger
Describes an implementation of AVL Trees.
A Wrapper for MessageBoxIndirect [Dialog, Windows Programming, Article, Visual C++] www.codeproject.com 23-Feb-2000 by Peter Kenyon
A Wrapper for MessageBoxIndirect
Peter Kenyon
A class which encapsulates MessageBoxIndirect.
Dynamic child window positioning [Dialog, Windows Programming, Article, Visual C++] www.codeproject.com 23-Feb-2000 by Hans B?hler
Dynamic child window positioning
Hans B?hler
Describes a method to implement resizable child windows.
22-Feb-2000
22-Feb-2000
"Real" Delphi
Using Real Audio files (and more) in a Delphi application.
Making ATL OLE DB Provider Templates support updating of data, Part 1 [Database, ATL, Template, Article, Visual C++] www.codeproject.com 21-Feb-2000 by Len Holgate
Making ATL OLE DB Provider Templates support updating of data, Part 1
Len Holgate
The ATL OLE DB Provider templates only seem to support read-only
rowsets and making them support updating of data isn't as easy as you'd expect!
Making ATL OLE DB Provider Templates support updating of data, Part 2 [Database, ATL, Template, Article, Visual C++] www.codeproject.com 21-Feb-2000 by Len Holgate
Making ATL OLE DB Provider Templates support updating of data, Part 2
Len Holgate
The ATL OLE DB Provider templates only seem to support read-only
rowsets and making them support updating of data isn't as easy as you'd expect!
Leap Years [Date, Time, Article, Visual C++] www.codeproject.com 21-Feb-2000 by Chris Maunder, LeRoy Baxter
Leap Years
Chris Maunder and LeRoy Baxter
A discussion on the thorny issue of leap years.
A custom-drawn TreeList Control [Tree Control, Article, Visual C++] www.codeproject.com 21-Feb-2000 by Gerolf Kuehnel
A custom-drawn TreeList Control
Gerolf Kuehnel
A custom-drawn tree-list hybrid, with explanations on how the control
was developed.
Const Class Methods [Article, Visual C++] cplus.about.com 21-Feb-2000
21-Feb-2000
21-Feb-2000
Const Class Methods
Why use the const identifier ?
MBListEx ActiveX Control [ActiveX Control, Listbox, Article, Visual Basic] www.vb2themax.com 19-Feb-2000 by Marco Bellinaso
MBListEx ActiveX Control
19-Feb-2000
19-Feb-2000
Marco Bellinaso
This extended Listbox control adds many features that are missing in
the standard VB control, such as support for bitmaps, control on the height,
forecolor, backcolor, and font of individual list items, a horizontal
scrollbar, text indentation. The MBListEx control is great to display a list of
custom or system colors. The Setup procedure also installs a complete demo
project that illustrates all the features of this control.
Quickly Convert Recordset into an XML File (using: Visual Basic 6.0) [Data Access, MDAC, Microsoft Data Access Components, Recordset Object, XML, Visual Basic, Category] www.devx.com 18-Feb-2000 by Deepak Pant
Quickly Convert Recordset into an XML File
With MDAC 2.1 (Microsoft Data Access Components), you can generate a XML file
quickly from a Recordset object.
The Save() method of Recordset object takes in an optional parameter,
adPersistXML, of type "PersistFormatEnum". By specifying adPersistXML in the
Save() method, you can save the Recordset object into a file in XML format.
Similarly, you can reopen a Recordset by providing a previously saved XML file.
Here is an example that saves a Recordset as an XML file:
Public Sub GenerateXML()
Dim oRecordset As ADODB.Recordset
‘ Create Recordset object
Set oRecordset = CreateObject("ADODB.Recordset")
‘ Open Recordset
oRecordset.Open "SELECT * FROM MyTable", _
"DSN=Sample;Provider=MSDASQL; uid=sa;pwd=;", _
adOpenDynamic, adLockOptimistic, adCmdText
‘ Save Recordset as an XML file
oRecordset.Save "C:\MyFolder\MyTable.xml", adPersistXML
‘ Close Recordset
oRecordset.Close
End Sub
Deepak Pant
GUIDGen Developer Studio AddIn [Macro, Add-in, Component, Article, Visual C++] www.codeproject.com 18-Feb-2000 by Eddie Velasquez
GUIDGen Developer Studio AddIn
Eddie Velasquez
An Add-In that replaces and extends the GUID Generator Component
included with Developer Studio
Determining the version number of the Windows system libraries [System, Article, Visual C++] www.codeproject.com 18-Feb-2000 by Chris Maunder
Determining the version number of the Windows system libraries
Chris Maunder
A simple way to determine the version of the Comctl32.dll, Shell32.dll
and Shlwapi.dll system libraries
Beware of global variables in Visual Basic COM objects [Visual Basic, VBScript, VBA, Visual Basic, COM, Thread, Article, Visual C++] www.codeproject.com 18-Feb-2000 by Jeremiah Talkar
Beware of global variables in Visual Basic COM objects
Jeremiah Talkar
A note for C++ programmers about global varaibles in Apartment Threaded
VB COM objects
CSplitPath [C++, MFC, STL, Component, Article, Visual C++] www.codeproject.com 17-Feb-2000 by Kevin Lussier
CSplitPath
Kevin Lussier
A class that will split a complete path into its Components.
Two Simple Lines for Self-Repairing Apps [C++, MFC, STL, Article, Visual C++] www.codeproject.com 17-Feb-2000 by Jesse Ezell
Two Simple Lines for Self-Repairing Apps
Jesse Ezell
Creating Self-Repairing Applications using Windows Installer
Structured Storage: The DocFile [File, Folder, Structured Storage, Wrapper Class, Article, Visual C++] www.codeproject.com 17-Feb-2000 by Andrew Peace
Structured Storage: The DocFile
Andrew Peace
A Wrapper Class for easy use of OLE structured storage.
Replacing the Default MFC Icon [Font, GDI, GUI, Icon, MFC, Article, Visual C++] www.codeproject.com 17-Feb-2000 by Shahzad Alam Khan
Replacing the Default MFC Icon
Shahzad Alam Khan
How to replace the default MFC icon in your application.
MPCStatusBar: An Enhanced CStatusBar [Status Bar, Article, Visual C++] www.codeproject.com 17-Feb-2000 by Pierre Mellinand
MPCStatusBar: An Enhanced CStatusBar
Pierre Mellinand
An enhanced CStatusBar to easily and dynamically add/remove controls on
a status bar
Static LED control [Control, Article, Visual C++] www.codeguru.com 17-Feb-2000 by Michel Wassink
Static LED control
Michel Wassink
Simple DNS Resolver v1.0 [Internet, Article, Visual C++] www.codeguru.com 17-Feb-2000 by Emmanuel Kartmann
Simple DNS Resolver v1.0
Emmanuel Kartmann
Extremely in-depth, well written DNS tutorial and resolver utility
System Color Changer [Tool, Article, Visual C++] www.codeguru.com 17-Feb-2000 by Winter
System Color Changer
Winter
Nifty little utility for quickly changing the system colors during
testing
Simple DNS Resolver v1.0 [Article, Visual C++] www.earthweb.com 17-Feb-2000 by Emmanuel Kartmann
Simple DNS Resolver v1.0
Emmanuel Kartmann
17-Feb-2000
17-Feb-2000
This ATL COM component provides very simple Internet name resolving
functionality (Domain Name System or DNS).
SmartHelp 1.0
Goran Mitrovic
Added support for at least one more version of MSDN Library
Command Line Parameters Context Menu Extension [Article, Visual C++] www.earthweb.com 16-Feb-2000 by Nick Carruthers
Command Line Parameters Context Menu Extension
Nick Carruthers
16-Feb-2000
16-Feb-2000
Great article on menu extensions
System Color Changer [Article, Visual C++] www.earthweb.com 16-Feb-2000 by Winter
System Color Changer
Winter
16-Feb-2000
16-Feb-2000
This is the simplest of utilities intended to make UI testing easier by
allowing you to change the system colors (as specified in the documentation for
GetSysColor) with the click of a button
Mounting Network Drives [Article, Visual C++] www.earthweb.com 16-Feb-2000 by Rick Jones
Mounting Network Drives
Rick Jones
16-Feb-2000
16-Feb-2000
C++ wrapper class for a password dialog (exactly the same as Windows
NT) that enables you to mount a specific drive.
Drag and Drop Between Any CWnd-Derived Window [Article, Visual C++] www.earthweb.com 16-Feb-2000 by David Orr
Drag and Drop Between Any CWnd-Derived Window
David Orr
16-Feb-2000
16-Feb-2000
Suppose you have a number or controls on various windows that you want
to drag and drop data between. Now suppose that the data shown in your controls
come from your own data objects, so that dragging and dropping is not only
required for text by also your own objects. Then this article is for you!!!
Persist ActiveX Controls At Runtime [Article, Visual C++] www.earthweb.com 14-Feb-2000 by Lee Marmara
Persist ActiveX Controls At Runtime
Lee Marmara
14-Feb-2000
14-Feb-2000
Code to store and load user preferences and wanted to persist the
properties of some ActiveX controls on my dialog
A Drag and Drop List Control [Article, Visual C++] www.earthweb.com 14-Feb-2000 by Adrian Stanley
A Drag and Drop List Control
Adrian Stanley
14-Feb-2000
14-Feb-2000
Complete solution with working code, which is thus the purpose of this
contribution.
SmartHelp 2.0 [Article, Visual C++] www.earthweb.com 14-Feb-2000 by Goran Mitrovic
SmartHelp 2.0
Goran Mitrovic
14-Feb-2000
14-Feb-2000
SmartHelp helps you work with the MSDN Library.
Paint Shop Pro 5.0 [Graphic, Image, Product, Owned By IPL, Owned By BDP, Development, CD-ROM] Purchased 12-Jan-1999, $59
SmartHelp 2.0
Goran Mitrovic
14-Feb-2000
14-Feb-2000
SmartHelp helps you work with the MSDN Library.
MBFormEx ActiveX Control [ActiveX Control, Article, Visual Basic] www.vb2themax.com 12-Feb-2000 by Marco Bellinaso
MBFormEx ActiveX Control
12-Feb-2000
12-Feb-2000
Marco Bellinaso
Add this control to a VB form and onjoy a number of great new features,
including: the control over the size and position of the form when maximized,
automatic resizing for fonts and controls (including controls that are added
dynamically), transparent background, new items to system menu, the capability
to be Always-on-top and to flash the caption to draw user's attention, and the
FullScreen mode. The MBFormEx control exposes also a number of events that
should have added to VB forms, such as ActivateApp and DeactivateApp,
CompactingMemory, DisplayChanged, DragDropFiles, ItemSelect, Move, and
SysItemClick (that fires when a system menu item has been clicked). The program
comes with a Setup routine.
Updated: 8/19/00
Using the Implements Statement (using: Visual Basic 6.0) [Abstract Class, Implements Statement, Interface, Tip, Visual Basic] www.devx.com 11-Feb-2000 by Michael Gellis
Using the Implements Statement
By Michael Gellis
Many people ask about how the Implements statement is used in Visual Basic. It
is actually quite useful and allows you to build more flexible applications.
Here's what it is all about:
The Implements statement is used as part of a technique that separates the
interface of an object from its implementation, so that multiple
implementations of the interface can be developed. The interface is defined as
an abstract interface, and concrete classes inherit the interface using the
Implements statement. Clients can then bind to the interface and dynamically
switch these concrete classes used to fulfill the role of the interface. To
explain this, let's explore the following scenario:
Suppose we are creating an object for a company-wide application that we'll
call AccountTransfer. This component must have the ability to log all actions
that it performs and the logging method will vary from client to client. We
want to develop, compile, and distribute AccountTransfer without having to
modify it for each client. To solve this problem we decide to encapsulate the
logging functionality in a separate object. The logging object, called Log, has
one method, called Execute, that takes a parameter, called Info. Clients will
be responsible for creating this logging object. They will supply it to
AccountTransfer by setting a property of AccountTransfer, called LogObject.
Every time AccountTransfer performs a transaction it calls the Execute method
of the Log object that was set by the client through the LogObject property.
The challenge is how to ensure that the client that creates the Log object
gives it the correct method and parameter so that our component doesn't crash.
In other words, how do we do early binding to an object that hasn't been
created yet, and will vary from client to client? Using Implements we can
define a standard description of the LogObject called an abstract interface. An
interface is made up of the ... (cont.)
Drag and Drop Between Any CWnd-Derived Window [C++, MFC, Windows Programming, Article, Visual C++] www.codeguru.com 11-Feb-2000 by David Orr
Drag and Drop Between Any CWnd-Derived Window
David Orr
A Dual Listbox Selection Manager [Listbox, Article, Visual C++] www.codeguru.com 11-Feb-2000 by Steve Aube
A Dual Listbox Selection Manager
Steve Aube
Password Retrieval Application [Sample, Update, Article, Visual C++] www.codeguru.com 11-Feb-2000 by Tom Archer
Password Retrieval Application
Tom Archer
Now allows the ability to enter a list of Windows classes on the dlg
that are treated as password edit controls
CGraph: Graph Class for Plotting Groups of Data [Control, Article, Visual C++] www.codeguru.com 11-Feb-2000 by Brian Convery
CGraph: Graph Class for Plotting Groups of Data
Brian Convery
Display Loaded Modules v1.5
Emmanuel Kartmann
A Debugging Tool for Application using Multiple DLL
Increment Private Build Number [Macro, Add-in, Article, Visual C++] www.codeproject.com 09-Feb-2000 by Mihai Filimon
Increment Private Build Number
Mihai Filimon
An add-in to automatically increment the PrivateBuild field in your
applications resource file.
Very Simple Print Preview without the Document/View architecture [Printing, Print Preview, Document/View, Article, Visual C++] www.codeproject.com 09-Feb-2000 by Danang Suharno
Very Simple Print Preview without the Document/View architecture
Danang Suharno
A very simple way of displaying a print preview in a simple window
CStatic That Knows Good From Bad [Static Control, Article, Visual C++] www.codeguru.com 09-Feb-2000 by Keith Vasilakes
CStatic That Knows Good From Bad
Keith Vasilakes
Process and Module Enumeration Class [System, Article, Visual C++] www.codeguru.com 09-Feb-2000 by JaeKi Lee
Process and Module Enumeration Class
JaeKi Lee
Editable Flex Grid (without an Edit control) [Control, Article, Visual C++] www.codeguru.com 09-Feb-2000 by Rafat Sarosh
Editable Flex Grid (without an Edit control)
Rafat Sarosh
Cool Owner Draw Engine [Control, Article, Visual C++] www.codeguru.com 09-Feb-2000 by Thales P Carvalho
Cool Owner Draw Engine
Thales P Carvalho
Very cool and a lot of fun to boot !!
Extended Message Box (CTcxMsgBox) [C++, MFC, Windows Programming, Article, Visual C++] www.codeguru.com 09-Feb-2000 by Thales P Carvalho
Extended Message Box (CTcxMsgBox)
Thales P Carvalho
Message Box class that lets you do things previously only doable with
dialog boxes!!
Expandable, Data Type-Neutral Buffer Class [C++, MFC, Article, Visual C++] www.codeguru.com 09-Feb-2000 by Abrar Ahmad
Expandable, Data Type-Neutral Buffer Class
Abrar Ahmad
Scrolling Support for ATL Composite Controls [ATL, COM, Article, Visual C++] www.codeguru.com 09-Feb-2000 by Brad Barber
Scrolling Support for ATL Composite Controls
Brad Barber
Access Automation from Visual C++ [Database, Article, Visual C++] www.codeguru.com 09-Feb-2000 by Rafat Sarosh
Access Automation from Visual C++
Rafat Sarosh
CHTTPSocket (using: Visual C++ 6.0) [Internet, Article, Visual C++] www.codeguru.com 09-Feb-2000 by Tair Abdurman
CHTTPSocket
Class to Explore Web
Tair Abdurman
Hiding the Flat Toolbar Separators [Toolbar, Article, Visual C++] www.codeguru.com 09-Feb-2000 by Andrey Abelyashev
Hiding the Flat Toolbar Separators
Andrey Abelyashev
Expandable, Data Type-Neutral Buffer Class [Article, Visual C++] www.earthweb.com 09-Feb-2000 by Abrar Ahmad
Expandable, Data Type-Neutral Buffer Class
Abrar Ahmad
9-Feb-2000
9-Feb-2000
CBuffer is an expandable buffer class which can expand when needed and
allows insertion of data and many operation on buffer
CHTTPSocket - Class to Explore Web [Article, Visual C++] www.earthweb.com 09-Feb-2000 by Tair Abdurman
CHTTPSocket - Class to Explore Web
Tair Abdurman
9-Feb-2000
9-Feb-2000
Here is CHTTPSocket class with full source code, full qualified, one
step, HTTP client
Cool Owner Draw Engine [Article, Visual C++] www.earthweb.com 09-Feb-2000 by Thales P Carvalho
Cool Owner Draw Engine
Thales P Carvalho
9-Feb-2000
9-Feb-2000
Here I present a class that helps writing Owner Draw Controls with
basic - although cute - text formatting
Hiding the Flat Toolbar Separators [Article, Visual C++] www.earthweb.com 09-Feb-2000 by Andrey Abelyashev
Hiding the Flat Toolbar Separators
Andrey Abelyashev
9-Feb-2000
9-Feb-2000
Hiding the Flat Toolbar Separators
Extended Message Box (CTcxMsgBox) [Article, Visual C++] www.earthweb.com 09-Feb-2000 by Thales P Carvalho
Extended Message Box (CTcxMsgBox)
Thales P Carvalho
9-Feb-2000
9-Feb-2000
Extended message box class for MFC applications (CTcxMsgBox).
Access Automation from Visual C++ [Article, Visual C++] www.earthweb.com 09-Feb-2000 by Rafat Sarosh
Access Automation from Visual C++
Rafat Sarosh
9-Feb-2000
9-Feb-2000
Utilizing Access' reporting capabilities from Visual C++ via OLE
Automation
Editable Flex Grid (without an Edit control) [Article, Visual C++] www.earthweb.com 09-Feb-2000 by Rafat Sarosh
Editable Flex Grid (without an Edit control)
Rafat Sarosh
9-Feb-2000
9-Feb-2000
Article that shows (with Visual C++) how to add editing capability to
the Flex Grid.
Detecting / Counting Duplicate Items in a ListBox [ListBox, Article, Visual Basic] www.earthweb.com 09-Feb-2000
Detecting / Counting Duplicate Items in a ListBox
-N/A
9-Feb-2000
9-Feb-2000
VB code to detect and count duplicate list box entries
Listing Available DSN / Drivers Installed
-N/A
9-Feb-2000
9-Feb-2000
VB code to list installed DSN/drivers
cICMP .... Class module provides a simple way to get the IP address by name [IP Address, Network, Winsock, Domain Name, Visual Basic, VB Class Module] www.codeoftheweek.com 08-Feb-2000, no. 114
Requirements
Visual Basic 4.0 32-bit or higher.
In this issue we discuss how to get the IP address from a domain
name. This can be useful for debugging network problems. We have
several issues planned to enhance this class to include ping and
traceroute functions direct from Visual Basic. If you are
interested in more details, contact ping@codeoftheweek.com
cICMP
This class module provides a simple way to get the IP address by
name. If you use this function on the Internet it will figure out
the IP address of a domain name. If you use it on your intranet
it might return the name of a machine found in your hosts file.
It uses the winsock libraries to gather this information.
Methods
Public Sub Initialize()
This method needs to be called before the any other routines in
this class module. It is the one that initializes the winsock
library.
Functions
Public Function GetIPAddress(ByVal sLookupName As String) As String
Returns the IP address of a network name (such as a domain name).
For example codeoftheweek.com returns 216.149.93.134
Sample Usage
The below sample shows will determine the IP address of
codeoftheweek.com.
Dim ICMP As New cICMP
ICMP.Initialize
MsgBox "codeoftheweek.com IP address is " &
ICMP.GetIPAddress("codeoftheweek.com")
Set ICMP = Nothing
A C++ Wrapper for TWAIN [Audio, Video, Article, Visual C++] www.codeproject.com 08-Feb-2000 by Rajiv Ramachandran
A C++ Wrapper for TWAIN
Rajiv Ramachandran
A C++ wrapper for TWAIN. Allows you to implement a scanning interface.
Sizing TabControlBar [Toolbar, Docking Window, Article, Visual C++] www.codeproject.com 08-Feb-2000 by Dirk Clemens
Sizing TabControlBar
Dirk Clemens
Creates a dockable and resizable control bar.
A Ruler Control [Control, Article, Visual C++] www.codeproject.com 08-Feb-2000 by Michael Ang
A Ruler Control
Michael Ang
A simple ruler control to allow users to set margins or indents
The Windows Thumbnail Control [Control, Article, Visual C++] www.codeproject.com 08-Feb-2000 by Smile Seo
The Windows Thumbnail Control
Smile Seo
An application demonstrating the windows Thumbnail control
Send-Messenger Service Pair [Network, Article, Visual C++] www.codeguru.com 08-Feb-2000 by Bruno Vais
Send-Messenger Service Pair
Bruno Vais
Storage Media Independent AVL Library [C++, MFC, Article, Visual C++] www.codeguru.com 08-Feb-2000 by Wu Yuh Song
Storage Media Independent AVL Library
Wu Yuh Song
Automatic Font Handling Class [GDI, Article, Visual C++] www.codeguru.com 08-Feb-2000 by Jamie Nordmeyer
Automatic Font Handling Class
Jamie Nordmeyer
Shape-Changing Progress Control [Control, Article, Visual C++] www.codeguru.com 08-Feb-2000 by Ryan Binns
Shape-Changing Progress Control
Ryan Binns
Very cool new look for your progress bars!!
Owner Drawn Menu with Icons (3) (uses Toolbar res) [Menu, Update, Article, Visual C++] www.codeguru.com 08-Feb-2000 by Brent Corkum
Owner Drawn Menu with Icons (3) (uses Toolbar res)
Brent Corkum
Major updates to very popular menu article!!
Storage Media Independent AVL Library [Article, Visual C++] www.earthweb.com 08-Feb-2000 by Wu Yuh Song
Storage Media Independent AVL Library
Wu Yuh Song
8-Feb-2000
8-Feb-2000
AVL tree libraries to work in the random access memory(RAM
Shape-Changing Progress Control [Article, Visual C++] www.earthweb.com 08-Feb-2000 by Ryan Binns
Shape-Changing Progress Control
Ryan Binns
8-Feb-2000
8-Feb-2000
Very cool progress control
Send - Messenger Service Pair [Article, Visual C++] www.earthweb.com 08-Feb-2000 by Bruno Vais
Send - Messenger Service Pair
Bruno Vais
8-Feb-2000
8-Feb-2000
The "Send"-"Messenger" pair are ment to replace the old "Net
send"-"Messenger".
Owner Drawn Menu with Icons [Article, Visual C++] www.earthweb.com 08-Feb-2000 by Brent Corkum
Owner Drawn Menu with Icons
Brent Corkum
8-Feb-2000
8-Feb-2000
This class, BCMenu, implements owner drawn menus derived from the CMenu
class.
Message in the Bottle [Article, Delphi] delphi.about.com 08-Feb-2000
08-Feb-2000
08-Feb-2000
Message in the Bottle
Handling Windows Messages the Delphi way!
ATL Grid Control [ATL, Grid Control, Article, Visual C++] www.codeproject.com 07-Feb-2000 by Mario Zucca
ATL Grid Control
Mario Zucca
A grid control for displaying tabular data, based on Chris Maunder's
grid control
Creating alternate GUI using Vector Art [Font, GDI, GUI, Article, Visual C++] www.codeproject.com 07-Feb-2000 by Keith Rule
Creating alternate GUI using Vector Art
Keith Rule
Create visually complex, yet programmatically simple, non-rectangular
GUIs
Creating holes in a window [Font, GDI, GUI, Article, Visual C++] www.codeproject.com 07-Feb-2000 by Amir Salzberg
Creating holes in a window
Amir Salzberg
How to create a window with holes in it
Enhanced CListCtrl that accepts and filters dropped files and folders [List Control, Drag and Drop, Article, Visual C++] www.codeproject.com 07-Feb-2000 by Stuart Carter
Enhanced CListCtrl that accepts and filters dropped files and folders
Stuart Carter
This article explains how to support file Drag and Drop in your
CWnd-derived object
Visual Studio Bookmark Saver Add-In [Macro, Add-in, Visual Studio, Article, Visual C++] www.codeproject.com 07-Feb-2000 by Jignesh Patel
Visual Studio Bookmark Saver Add-In
Jignesh Patel
Visual Studio add-in which saves and restores bookmarks after closing
and re-opening a file.
Using the Internet Explorer 5 built-in progress dialog [Control, Internet Explorer, Wrapper Class, Dialog, Article, Visual C++] www.codeproject.com 07-Feb-2000 by Michael Dunn
Using the Internet Explorer 5 built-in progress dialog
Michael Dunn
A Wrapper Class for the progress Dialog provided by IE 5.
VRMLTest: Full VRML 1.x Parser and partial viewer [OpenGL, Parser, Article, Visual C++] www.codeproject.com 07-Feb-2000 by Antonio Tejada Lacaci
VRMLTest: Full VRML 1.x Parser and partial viewer
Antonio Tejada Lacaci
VRML parser and Partial viewer
Printing support functions [Printing, Article, Visual C++] www.codeproject.com 07-Feb-2000 by Michael A Barnhart
Printing support functions
Michael A Barnhart
Two methods for obtaining consistent output between printers
A C++ Wrapper for TWAIN [Multimedia, Article, Visual C++] www.codeguru.com 07-Feb-2000 by Rajiv Ramachandran
A C++ Wrapper for TWAIN
Rajiv Ramachandran
Corel PhotoHouse-like Color Chooser [Dialog, Update, Article, Visual C++] www.codeguru.com 07-Feb-2000 by Rajiv Ramachandran
Corel PhotoHouse-like Color Chooser
Rajiv Ramachandran
Updated demo project
Cookies in an ISAPI Extension DLL [ISAPI, Update, Article, Visual C++] www.codeguru.com 07-Feb-2000 by Klynt Klimek
Cookies in an ISAPI Extension DLL
Klynt Klimek
Updated demo project
TipMaker Tool [Tool, Update, Article, Visual C++] www.codeguru.com 07-Feb-2000 by Peter Boulton
TipMaker Tool
Peter Boulton
Implemented several new features in tool
TipMaker Tool [Article, Visual C++] www.earthweb.com 07-Feb-2000 by Peter Boulton
TipMaker Tool
Peter Boulton
7-Feb-2000
7-Feb-2000
Adding tooltip text to dialog box controls is a tedious process.
TipMaker.exe is a tool that makes that process considerably faster and less
error prone.
Cookies in an ISAPI Extension DLL [Article, Visual C++] www.earthweb.com 07-Feb-2000 by Klynt Klimek
Cookies in an ISAPI Extension DLL
Klynt Klimek
7-Feb-2000
7-Feb-2000
I was designing an ISAPI .dll for use on our website, and quickly
discovered what little information is available regarding the use of cookies on
an MFC server side ISAPI extension. For login purposes, the cookies were
absolutely essential. Hopefully this code will save somebody the R&D I had to
go through
A C++ Wrapper for TWAIN [Article, Visual C++] www.earthweb.com 07-Feb-2000 by Rajiv Ramachandran
A C++ Wrapper for TWAIN
Rajiv Ramachandran
7-Feb-2000
7-Feb-2000
Add scanner support to your applications
Arrays in C and C++ - Part II [Article, Visual C++] cplus.about.com 06-Feb-2000
06-Feb-2000
06-Feb-2000
Arrays in C and C++ - Part II
How to use arrays of objects
LiteGrid Control [Control, Article, Visual C++] www.codeguru.com 06-Feb-2000 by Andrew Ivannikov
Screen Saver Tray Icon Sample
Thierry Maurel
Update to very popular article!!
Creating a Self Extracting Executable [C++, MFC, Windows Programming, Article, Visual C++] www.codeguru.com 06-Feb-2000 by James Spibey
Creating a Self Extracting Executable
James Spibey
A C++ Wrapper for TWAIN [Article, Visual C++] www.earthweb.com 06-Feb-2000 by Rajiv Ramachandran
A C++ Wrapper for TWAIN
Rajiv Ramachandran
6-Feb-2000
6-Feb-2000
One of my applications needed some scanner support. I thought it might
be a good idea to get into TWAIN and try it out. Well, here are the results.
Multiple CRectTracker Class [C++, MFC, Windows Programming, Article, Visual C++] www.codeguru.com 05-Feb-2000 by Thierry Maurel
Multiple CRectTracker Class
Thierry Maurel
Mutli Row Tab View [Property Sheet, Article, Visual C++] www.codeguru.com 05-Feb-2000 by H Praveen
Mutli Row Tab View
H Praveen
Nesting Property Sheets
Creating statically linked, non-MFC DLLs [DLL, Article, Visual C++] www.codeguru.com 05-Feb-2000 by Tair Abdurman
Creating statically linked, non-MFC DLLs
Tair Abdurman
Digital Display Classes [Control, Article, Visual C++] www.codeguru.com 05-Feb-2000 by Michel Wassink
Digital Display Classes
Michel Wassink
Corel PhotoHouse-like Color Chooser [Dialog, Article, Visual C++] www.codeguru.com 04-Feb-2000 by Rajiv Ramachandran
Corel PhotoHouse-like Color Chooser
Rajiv Ramachandran
Tabbed Dialog Box Class [Dialog, Article, Visual C++] www.codeguru.com 04-Feb-2000 by Christophe Mestrallet
Tabbed Dialog Box Class
Christophe Mestrallet
Dockable dialog that collapses/expands based on mouse over
Wrap-Around Draw Function for Printing Text [Printing, Article, Visual C++] www.codeguru.com 04-Feb-2000 by Santhosh Cheeran
Wrap-Around Draw Function for Printing Text
Santhosh Cheeran
Windows 2000 for the VB Developer [Windows 2000, Article, Visual Basic] www.earthweb.com 04-Feb-2000
Windows 2000 for the VB Developer
Don Kiely -N/A
4-Feb-2000
4-Feb-2000
Each new release of an operating system, any operating system, brings
with it new features that application developers can take advantage of.
A smart edit and linked slider control [Edit Control, Floating Point, Article, Visual C++] www.codeproject.com 03-Feb-2000 by Rick York
A smart edit and linked slider control
Rick York
An edit control for entering text, numbers, hexadecimal or Floating
Point values, and which can be linked to a slider control
CCeFileFind: File Finder class for Windows CE [CE Programming, Article, Visual C++] www.codeguru.com 03-Feb-2000 by Waseem Anis
CCeFileFind: File Finder class for Windows CE
Waseem Anis
Simple Point to Point Communication Using Named Pipes [Network, Update, Article, Visual C++] www.codeguru.com 03-Feb-2000 by Emil Gustafsson
Simple Point to Point Communication Using Named Pipes
Emil Gustafsson
Updated demo project
Control Panel Applet using MFC [System, Article, Visual C++] www.codeguru.com 03-Feb-2000 by Ben Burnett
Control Panel Applet using MFC
Ben Burnett
Shared Memory Inter Process Communication (IPC) [System, Update, Article, Visual C++] www.codeguru.com 03-Feb-2000 by Peter Hendrix
Shared Memory Inter Process Communication (IPC)
Peter Hendrix
Using File Mappings to Access Windows NT Shared Memory [System, Article, Visual C++] www.codeguru.com 03-Feb-2000 by Hans Wijntjes
Using File Mappings to Access Windows NT Shared Memory
Hans Wijntjes
Mounting Network Drives [System, Article, Visual C++] www.codeguru.com 03-Feb-2000 by Rick Jones
Mounting Network Drives
Rick Jones
Multi-slider Control [Control, Article, Visual C++] www.codeguru.com 03-Feb-2000 by Terri Braxton
Multi-slider Control
Terri Braxton
Color Chooser Dialog [Dialog, Article, Visual C++] www.codeguru.com 03-Feb-2000 by Rajiv Ramachandran
Color Chooser Dialog
Rajiv Ramachandran
Corel PhotoHouse-like Color Chooser Dialog
Paint Shop Pro 6.0 [Graphic, Image, Product, Owned By IPL, Owned By BDP, Development, CD-ROM] Purchased 25-Jan-2000, $79
Color Chooser Dialog
Rajiv Ramachandran
Corel PhotoHouse-like Color Chooser Dialog
Microsoft SQL Server Black Book [Data Access, Database, SQL Server, Book] Purchased 02-Feb-2000, $55.99
50% off = 27.95
Working with cookies [Active Server Pages, ASP, Article, Visual C++] www.codeproject.com 02-Feb-2000 by Iulian Iuga
Working with cookies
Iulian Iuga
An introduction to using cookies in your ASP scripts
Using Windows CE CommandBands in an MFC based Application [CE Programming, MFC, Article, Visual C++] www.codeproject.com 02-Feb-2000 by Bruce Hearder
Using Windows CE CommandBands in an MFC based Application
Bruce Hearder
An introduction to using CommandBars in CE
Multimedia Streaming Synchronization Mechanisms Under DirectShow [DirectX, Article, Visual C++] www.codeproject.com 02-Feb-2000 by Stephane Rodriguez
Multimedia Streaming Synchronization Mechanisms Under DirectShow
Stephane Rodriguez
An overview of three methods on how to perform multimedia streaming.
Using the AlphaBlend function [Font, GDI, GUI, Article, Visual C++] www.codeproject.com 02-Feb-2000 by Smile Seo
Using the AlphaBlend function
Smile Seo
A sample application that uses the AlphaBlend function to produce a
transparent splash screen
A Sizing/Moving widget [Control, Article, Visual C++] www.codeproject.com 02-Feb-2000 by Andrew JM Hall
A Sizing/Moving widget
Andrew JM Hall
A class that provides the ability to move and size controls at run-time
Transparent group box [Control, Article, Visual C++] www.codeproject.com 02-Feb-2000 by Jens Schacherl
Transparent group box
Jens Schacherl
A very simple group box replacement to enhance your user interface
A Single Page Printing Framework [Printing, Article, Visual C++] www.codeproject.com 02-Feb-2000 by Jacob Boo
A Single Page Printing Framework
Jacob Boo
A Single Page Printing Framework
KeyCHW: A Compression Utility for MSDN (and other large help systems) [Tip, Compression, Article, Visual C++] www.codeproject.com 02-Feb-2000 by Ralph Walden
KeyCHW: A Compression Utility for MSDN (and other large help systems)
Ralph Walden
A DOS utility for compressing CHW files.
Embedding an HTML Help window into a Dialog [WinHelp, HTML Help, Help, Dialog, Property Sheet, Article, Visual C++] www.codeproject.com 02-Feb-2000 by Ralph Walden
Embedding an HTML Help window into a Dialog
Ralph Walden
Placing an embedded help window inside of a dialog, Property Sheet, or
window.
02-Feb-2000
02-Feb-2000
Tech Workshop - Scripting Screen Savers
Your Visual Basic Guide offers crafty code and practical procedures to
help you script your own screen savers.
Drag and Drop CListCtrl-derived Class [Listview, Article, Visual C++] www.codeguru.com 02-Feb-2000 by Stuart Carter
Drag and Drop CListCtrl-derived Class
Stuart Carter
Enhanced CListCtrl control that accepts drag and drop of files
JTDraw:An Example of Drawing [GDI, Article, Visual C++] www.codeguru.com 02-Feb-2000 by Jian Zhu, Tao Zhu
JTDraw:An Example of Drawing
Jian Zhu and Tao Zhu
Great article for beginners on how to advanced drawing in Windows
Adding Context Help [Help, Update, Article, Visual C++] www.codeguru.com 02-Feb-2000 by Thomas Kokholm
Adding Context Help
Thomas Kokholm
Updated article
Programmatically Invoking the OLEDB Data Link Config Dialog [Database, Article, Visual C++] www.codeguru.com 02-Feb-2000 by Tony Johnson, Chris Wilcock
Programmatically Invoking the OLEDB Data Link Config Dialog
Tony Johnson and Chris Wilcock
CFrameGrabber: Wrapper for AVICap Window [Multimedia, Article, Visual C++] www.codeguru.com 02-Feb-2000 by Vadim Gorbatenko
CFrameGrabber: Wrapper for AVICap Window
Vadim Gorbatenko
An Introduction to Interpolation [Interpolation, Visual C++, Article] C++ Users Journal 01-Feb-2000 by Kyle Loudon
An Introduction to Interpolation
Kyle Loudon
There’s more to mathematical interpolation than just drawing lines
between dots.
Tracking Memory Leaks under Windows CE [Memory Leak, Windows CE, Visual C++, Article] C++ Users Journal 01-Feb-2000 by Jean L Gareau
Tracking Memory Leaks under Windows CE
Jean L Gareau
Visual C++ omits the darndest things in its support for Windows CE. Too
bad memory tracking is one of those things.
How Non-Member Functions Improve Encapsulation [Non-Member Function, Encapsulation, Visual C++, Article] C++ Users Journal 01-Feb-2000 by Scott Meyers
How Non-Member Functions Improve Encapsulation
Scott Meyers
When it comes to encapsulation, sometimes less is more.
Shim Classes [Class, Template, Visual C++, Article] C++ Users Journal 01-Feb-2000 by Douglas Reichard
Shim Classes
Douglas Reichard
You don’t always have to rewrite ordinary classes as Templates to get
the benefits of templatization.
Solving Combinatorial Problems with STL and Backtracking [STL, Visual C++, Article] C++ Users Journal 01-Feb-2000 by Roger Labbe
Solving Combinatorial Problems with STL and Backtracking
Roger Labbe
The STL approach extends nicely to problems of all sorts, and helps
make for more generic solutions.
Replacing Character Arrays with Strings, Part 2 [Character Array, String, Visual C++, Article] C++ Users Journal 01-Feb-2000 by Dan Saks
Dan Saks
Replacing Character Arrays with Strings, Part 2
Higher-level constructs have their overheads, but they are generally
worth the cost.
Common Design Mistakes, Part 2 [Design, Java, Article] C++ Users Journal 01-Feb-2000 by Pete Becker
Pete Becker
Common Design Mistakes, Part 2
Pete offers more examples of how not to rush code to market, from the
wonderful world of Java Standard Libraries.
Creating Tight, Database-Aware ISAPI DLLs [Database, ISAPI, DLL, Internet Server API, Internet Information Server, InterBase, Article, Delphi] Delphi Developer 01-Feb-2000, vol. 6, no. 2 by Jani Jarvinen
Creating Tight, Database-Aware ISAPI DLLs
Jani Jarvinen
Internet Server API lets the developer extend Microsoft Internet
Information Server and compatible Web servers with custom DLLs. These DLLs
respond to the Web browser's request and return valid data. For example, this
data can be created by querying databases. In this article, Jani Jarvinen shows
you how to create an ISAPI DLL that accesses an InterBase database using its
native API.
TThread: An Introduction to Multi-Threaded Development [TThread, Multi-Threaded, Threading, Article, Delphi] Delphi Developer 01-Feb-2000, vol. 6, no. 2 by David G Parsons
TThread: An Introduction to Multi-Threaded Development
David G Parsons
David Parsons offers a primer on Threading that removes some of the
mystery from a programming technique that's often viewed as cumbersome and
difficult.
Delphi 5 IDE Wizardry: Creating Your Own Property Categories [IDE, Property, Property Categories, Object Inspector, Article, Delphi] Delphi Developer 01-Feb-2000, vol. 6, no. 2 by Bob Swart
Delphi 5 IDE Wizardry: Creating Your Own Property Categories
Bob Swart
"Delphi IDE Wizardry" is a column that explores new features and
enhancements found in and developed for the Delphi 5 IDE. Last month, Bob Swart
began an exploration of Property Categories in Delphi 5. (See "Examining Object
Inspector Property Categories" in the January 2000 issue.) This time, he
continues focusing on the enhanced Object Inspector and Property Categories,
showing how to add your own custom properties to your own custom property
categories in Delphi 5's Object Inspector.
Exposing Events [Event, Breakpoint, Article, Delphi] Delphi Developer 01-Feb-2000, vol. 6, no. 2 by Keith Wood
Exposing Events
Keith Wood
Tracing the flow of a program can be difficult at times. Delphi comes
to the rescue with Breakpoints and stepping through code. But as Keith Wood
explains, for even more information, the event log is the place to look.
Mediator Pattern [Mediator Pattern, Object, Process Control System, Article, Delphi] Delphi Informant 01-Feb-2000, vol. 6, no. 2 by Xavier Pacheco
Mediator Pattern
Xavier Pacheco
The Mediator pattern simplifies complex communication between Objects,
while maintaining loose coupling, making it ideal for use in a distributed
Process Control System, as Mr Pacheco explains.
CORBA: Part I [CORBA, Article, Delphi] Delphi Informant 01-Feb-2000, vol. 6, no. 2 by Dennis P Butler
CORBA: Part I
Dennis P Butler
Mr Butler begins a two-part exploration of CORBA and CORBA development
with Delphi with an introduction to the techonolgy, and a step-by-step
description of how to build a CORBA server.
Modifying VCL Behavior [VCL, Component, Message, Article, Delphi] Delphi Informant 01-Feb-2000, vol. 6, no. 2 by Jeremy Merrill
Modifying VCL Behavior
Jeremy Merrill
Mr Merrill shows us how to dynamically change the behavior of a native
Delphi visual component without creating a new class. The secret is to
intercept Windows messages sent to the control.
Visual Form Inheritance: Part I [Visual Form Inheritance, UI, Inheritance, Article, Delphi] Delphi Informant 01-Feb-2000, vol. 6, no. 2 by Rick Spence
Visual Form Inheritance: Part I
Rick Spence
Decreased development time, fewer errors, a more-consistent UI. The
benefits of VFI sound terrific, but Delphi's implementation of the technology
is woefully underdocumented. Enter Mr Spence.
Time Travels [Time-zone, Daylight Savings Time, Article, Delphi] Delphi Informant 01-Feb-2000, vol. 6, no. 2 by T Wesley Erickson
Time Travels
T Wesley Erickson
Mr Erickson asks pesky questions, e.g. "What will happen when your app
is deployed in a different Time Zone?" and "Have you considered Daylight
Savings Time?" then - thankfully - answers them.
Generating XML [XML, Scripting, Database, Article, Delphi] Delphi Informant 01-Feb-2000, vol. 6, no. 2 by Keith Wood
Generating XML
Keith Wood
He's already introduced us to XML Scripting. Now Mr Wood demonstrates
how to generate XML documents from a Database, then send the documents over the
internet.
Scriptable Plug-Ins [Plug-In, Automation, Microsoft Script Control, Scripting, Article, Delphi] Delphi Informant 01-Feb-2000, vol. 6, no. 2 by Andre van der Merwe
Scriptable Plug-Ins
Andre van der Merwe
Implementing plug-ins with OLE Automation and the Microsoft Script
Control, Mr van der Merwe offers a novel way of providing Scripting
capabilities to users of your applications.
Dynamic Arrays [Array, Dynamic Array, Article, Delphi] Delphi Informant 01-Feb-2000, vol. 6, no. 2 by Aleksandr Gofen
Dynamic Arrays
Aleksandr Gofen
From ALGOL-60 to Object Pascal, from open arrays to Variant arrays, Mr
Gofen relates the convoluted history of the dynamic array, while demonstrating
powerful, useful techniques for today.
Handle Logons in Windows NT And Windows 2000 with Your Own Logon Session Broker [Logon, Windows NT, Windows 2000, Session, Windows NT, Article] Microsoft Systems Journal 01-Feb-2000, vol. 15, no. 2 by Keith Brown
Handle Logons in Windows NT And Windows 2000 with Your Own Logon
Session Broker
You can create a "logon session broker" to launch processes into
arbitrary window stations and desktops with any user’s logon credentials. We
bring together our cmdasuser utility and the concepts you need to build your
own logon session broker.
Keith Brown
Construct Your E-commerce Business Tier the Easy Way With XML, ASP, and Scripting [XML, ASP, Scripting, COM, N-tier, E-commerce, Multitier, Visual C++, Article] Microsoft Systems Journal 01-Feb-2000, vol. 15, no. 2 by Dave Cohen
Construct Your E-commerce Business Tier the Easy Way With XML, ASP, and
Scripting
Forget COM for the middle layer of your N-tier E-commerce app. Instead,
build your business layer with ASP, XML, and scripting. We’ll show you how to
use these technologies to develop a powerful, Multitier site that interacts
with third-party vendors.
Dave Cohen
It’s Simple to Build PerfMon Support into Your Apps With A Little Help from COM [PerfMon, COM, Windows NT, Visual C++, Article] Microsoft Systems Journal 01-Feb-2000, vol. 15, no. 2 by Ken Knudsen
It’s Simple to Build PerfMon Support into Your Apps With A Little Help
from COM
PerfMon in Windows NT is not just for monitoring system resources.
Using a COM server and a single DLL, you can painlessly hook up multiple apps
to PerfMon and access a whole new level of resource management and debugging.
Ken Knudsen
New GetLastInputInfo() Function in Windows 2000 [GetLastInputInfo(), Windows 2000, Event, Visual C++, Article] Microsoft Systems Journal 01-Feb-2000, vol. 15, no. 2 by Paul DiLascia
New GetLastInputInfo() Function in Windows 2000
Paul DiLascia discusses a new function in Windows 2000,
GetLastInputInfo, which holds information about that last events the system
handled. With it you can determine how long the system has been idle, and what
the last events were.
Paul DiLascia
COM Components with Scripting Languages [COM Component, Scripting, Windows Script Component, WSC, COM, Visual C++, Article] Microsoft Systems Journal 01-Feb-2000, vol. 15, no. 2 by Jeffrey Richter
COM Components with Scripting Languages
It turns out you can write COM components with scripting languages.
This month George Shephers shows you how the Windows Script Components (WSC)
let you package scripts for use as COM components.
Jeffrey Richter
Driver Verifier, a kernel-mode addition introduced in Windows 2000 [Driver Verifier, Windows 2000, Testing, Debugging, Stressing, Kernel Mode Driver, Windows NT, Article] Microsoft Systems Journal 01-Feb-2000, vol. 15, no. 2 by John Robbins
Driver Verifier, a kernel-mode addition introduced in Windows 2000
This month Jim Finnegan looks at the Driver Verifier, a kernel-mode
addition introduced in Windows 2000 that's aimed directly at developers,
providing operating-system-level support for Testing, Debugging, and Stressing
Kernel-Mode Drivers.
John Robbins
Determine which DLLs are good candidates for DelayLoad [DLL, Delay-load DLL, Visual C++, Article] Microsoft Systems Journal 01-Feb-2000, vol. 15, no. 2 by Don Box
Determine which DLLs are good candidates for DelayLoad
Matt Pietrek introduces DelayLoadProfile, which helps you determine
which DLLs are good candidates for DelayLoad by reporting how often a DLL is
called, by which applications, and other pertinent data.
Don Box
Leverage COM Through the Registry [COM, Registry, Article, Visual Basic] Visual Basic Programmer's Journal 01-Feb-2000, vol. 10, no. 2 by Francesco Balena
Leverage COM Through the Registry
Francesco Balena
Find out how COM uses the Registry, and learn code routines to diagnose
application malfunctions.
Implement Custom Code in DTS [DTS, Data Transformation Services, Article, Visual Basic] Visual Basic Programmer's Journal 01-Feb-2000, vol. 10, no. 2 by Mary V Hooke
Implement Custom Code in DTS
Mary V Hooke
Data transformations are only the beginning of what Data Transformation
Services (DTS) has to offer. Learn how to integrate custom code in DTS to
satisfy your business needs.
Call Function Pointers [Function Pointer, vtable, COM, Interface, Article, Visual Basic] Visual Basic Programmer's Journal 01-Feb-2000, vol. 10, no. 2 by Matthew Curland
Call Function Pointers
Matthew Curland
Function pointers open the door to powerful programming possibilities.
Learn how to turn a vtable-bound call to a COM Interface into a call to a
function pointer.
Spice Up Your Menus [Menu, API Programming, Article, Visual Basic] Visual Basic Programmer's Journal 01-Feb-2000, vol. 10, no. 2 by Kathleen Joeris
Spice Up Your Menus
Kathleen Joeris
Few applications function without menus; this article explores some
tricks for working with menus, along with how to use the Windows API with menus.
Create a VBA Template Suite [VBA, Article, Visual Basic] Visual Basic Programmer's Journal 01-Feb-2000, vol. 10, no. 2 by Chris Kunicki, Charles Maxson
Create a VBA Template Suite
Chris Kunicki
and
Charles Maxson
You can use VBA to automate your users' tasks. Here's how to create an
automated template suite with VBA.
Keep Your Processes in Line [Process, Win32 API, Article, Visual Basic] Visual Basic Programmer's Journal 01-Feb-2000, vol. 10, no. 2 by John Carnell
Keep Your Processes in Line
John Carnell
This article shows you how to use VB and the Win32 API to integrate
applications, how to control apps and processes, and how to terminate apps in
tricky situations.
Application Menus Made Easy [Menu, Article, Visual Basic] Visual Basic Programmer's Journal 01-Feb-2000, vol. 10, no. 2 by Stan Schultes
Application Menus Made Easy
Well-thought-out menus can make your app stand out from the crowd. The
author shows you how to implement them.
Stan Schultes
Make Your Boolean Logic Error-Free [Article, Visual Basic] Visual Basic Programmer's Journal 01-Feb-2000, vol. 10, no. 2 by Stephen Teilhet
Make Your Boolean Logic Error-Free
Follow this step-by-step process to simplify your complex Boolean logic
while producing error-free code.
Stephen Teilhet
Solve the Dependent List Problem [XML, Article, Visual Basic] Visual Basic Programmer's Journal 01-Feb-2000, vol. 10, no. 2 by A Russell Jones
Solve the Dependent List Problem
Get around the dependent list problem by using XML data islands on the
client side.
A Russell Jones
Resize Rules
Cut your resize code in half and standardize implementation with a
Resizer class.
Alain Lavoie
Passwords users put into your apps aren't as secure as you might think [Password, Security, Article, Visual Basic] Visual Basic Programmer's Journal 01-Feb-2000, vol. 10, no. 2 by Karl E Peterson
Passwords users put into your apps aren't as secure as you might think
The passwords users put into your apps aren't as secure as you might
think.
Karl E Peterson
Extend Scrollbar Range With Class [Scrollbar, Article, Visual Basic] Visual Basic Programmer's Journal 01-Feb-2000, vol. 10, no. 2 by Karl E Peterson
Extend Scrollbar Range With Class
How to extend the scrollbar range
Karl E Peterson
NT System Resources Limits [System Resource, Windows NT, Article, Visual Basic] Visual Basic Programmer's Journal 01-Feb-2000, vol. 10, no. 2 by Karl E Peterson
NT System Resources Limits
NT system resources limits.
Karl E Peterson
Secure Your Data [SQL Server, Security, Article, Visual Basic] Visual Basic Programmer's Journal 01-Feb-2000, vol. 10, no. 2 by Joseph Lax
Secure Your Data
Take advantage of some of SQL Server 7's new features to secure data
transmitted over the Web.
Joseph Lax
Add Controls Dynamically
Add new controls to a form at run time dynamically, and intercept
events from such controls in the class itself. Learn how to create useful and
highly reusable class modules that compete with full-blown ActiveX Controls.
Francesco Balena
Avoid Delimiter Traps
Learn how to use ADO and XML to avoid the delimiter problems caused
when you include names with apostrophes in your database code.
Jeffrey P McManus
Pool Database Connections [Database Connection, MTS, Article, Visual Basic] Visual Basic Programmer's Journal 01-Feb-2000, vol. 10, no. 2 by George Copeland
Pool Database Connections
MTS lets you implement database connection pooling for your Windows
app, helping you conserve middle-tier memory and processing power.
George Copeland
Monitoring NT Debug Services [Monitoring, Service, Debugging, Kernel Mode Driver, Article, Visual C++] Windows Developer's Journal 01-Feb-2000, vol. 11, no. 2 by Jose Flores
Monitoring NT Debug Services
Jose Flores
The normal Win32 Debugging API lets your program detect debugging
notifications for a given process. However, at the kernel level, there's a lot
more notification information available if you could just get to it, including
the debugging notifications for all processes in the system. This article uses
interrupt hooking and a Kernel-Mode Driver to provide user-mode access to
kernel-level debugging information.
Sending TCP/IP Control Messages with ICMP.DLL [TCP/IP, ICMP.DLL, Protocol, Article, Visual C++] Windows Developer's Journal 01-Feb-2000, vol. 11, no. 2 by Arnab Bhaduri
Sending TCP/IP Control Messages with ICMP.DLL
Arnab Bhaduri
ICMP is one of the lower-level Protocols in the TCP/IP protocol suite
that you just can't get to from WinSock. This article explains how to use
icmp.dll to access ICMP, and demonstrates with code that implements a complete
traceroute utility.
A C++ Class for Logging [C++, Class, Logging, Article, Visual C++] Windows Developer's Journal 01-Feb-2000, vol. 11, no. 2 by Joey Rogers
A C++ Class for Logging
Joey Rogers
Everybody does some kind of logging, even if it's just the lowly
printf() call. Here's a reusable class that tries to capture all the most
common logging features you'll ever need, including control over the output
destination (file or debug window), logging levels, automatic indentation,
timestamps, and more.
Understanding NT: User interface code needed to handle various aspects such as logging on, name/password collection, shutdown, etc. [GINA, Windows NT, Article, Visual C++] Windows Developer's Journal 01-Feb-2000, vol. 11, no. 2 by Paula Tomlinson
Understanding NT: User interface code needed to handle various aspects
such as logging on, name/password collection, shutdown, etc.
Paula Tomlinson
A GINA DLL lets you take over the NT logon process, participating in
authenticating users who log on. This column completes the GINA started last
month, discussing the user interface code needed to handle various aspects such
as logging on, name/password collection, shutdown, etc.
Resource Leaks with Enhanced Metafiles [Resource Leak, Metafile, PlayEnhMetaFile(), Article, Visual C++] Windows Developer's Journal 01-Feb-2000, vol. 11, no. 2 by Chris Branch
Resource Leaks with Enhanced Metafiles
Chris Branch
There's a resource leak in PlayEnhMetaFile(); this tip describes the
problem and your options for dealing with it.
The PathCompactPath() Bug [PathCompactPath(), Shell, Path, Article, Visual C++] Windows Developer's Journal 01-Feb-2000, vol. 11, no. 2 by Petter Hesselberg
The PathCompactPath() Bug
Petter Hesselberg
PathCompactPath() is a Shell function you can use to replace part of a
string containing a filename with "...", so it will fit in a menu better, for
example. Incredibly, this function will actually scribble outside the buffer
you give it under certain conditions!
Follow-up to VB Design Mode Detection [Design Mode, Visual Basic, Article, Visual C++] Windows Developer's Journal 01-Feb-2000, vol. 11, no. 2 by Juan Garcia
Follow-up to VB Design Mode Detection
Juan Garcia
More discussion of the problem of detecting whether you're currently in
design mode or not.
Loading String Resources with CString [String Resource, CString Class, Resource, Article, Visual C++] Windows Developer's Journal 01-Feb-2000, vol. 11, no. 2 by Eric Haddan
Loading String Resources with CString
Eric Haddan
A little trick for creating a CString that contains a String Resource
in just one line of code.
Enhancing Support for Multiple Toolbars [Toolbar, Article, Visual C++] Windows Developer's Journal 01-Feb-2000, vol. 11, no. 2 by Sami Vaaraniemi
Enhancing Support for Multiple Toolbars
Sami Vaaraniemi
A refinement of Michael Moser's tip for letting users manipulate
multiple toolbars.
A Reusable Class for Setting the Default Printer [Class, Printer, Registry, Article, Visual C++] Windows Developer's Journal 01-Feb-2000, vol. 11, no. 2 by Zuoliu Ding
A Reusable Class for Setting the Default Printer
Zuoliu Ding
A class that handles all the Registry fiddling required to set the
default printer under both Win16 and Win32.
Tiny subset of HTML support can make laying out static Dialog text a lot more convenient [HTML, Dialog, Article, Visual C++] Windows Developer's Journal 01-Feb-2000, vol. 11, no. 2 by Petter Hesselberg
Tiny subset of HTML support can make laying out static Dialog text a
lot more convenient
Petter Hesselberg
User Interface Programming is a new column devoted to user interface
issues that Windows programmers face. This first installment shows that a tiny
subset of HTML support can make laying out static dialog text a lot more
convenient.
Publish COM Interfaces Gracefully (using: Visual C++ 6.0) [COM, Interface, Article, Visual C++] Visual C++ Developers Journal 01-Feb-2000, vol. 3, no. 1 by Michèle Leroux Bustamante
Publish COM Interfaces Gracefully
Michèle Leroux Bustamante
Ever regretted publishing a COM interface? Use these eight tips to
develop COM interfaces that perform well and look good.
Use Direct3D to Manipulate Objects [Direct3D, Object, Article, Visual C++] Visual C++ Developers Journal 01-Feb-2000, vol. 3, no. 1 by Bill Wagner
Use Direct3D to Manipulate Objects
Bill Wagner
You know how to use Direct3D to create simple shapes. Now it's time to
learn to move and orient them, using static and dynamic transformations.
Effective Memory Management [Memory Management, C++, Article, Visual C++] Visual C++ Developers Journal 01-Feb-2000, vol. 3, no. 1 by Herb Sutter
Effective Memory Management
Herb Sutter
How well do you know your memory? Where does it go? How can you use it
more safely? Let an authority on C++ memory management show you how.
5 Bugs to Avoid in Release Builds [Bug, Debugging, Article, Visual C++] Visual C++ Developers Journal 01-Feb-2000, vol. 3, no. 1 by John W Stout
5 Bugs to Avoid in Release Builds
John W Stout
Your Debug build looked fine, but the app's release build is riddled
with bugs. Here's how to find - and fix - these frustrating problems.
A Hands-On Look at COM+ Events [COM+, Event, Event, Subscriber, Publisher, Windows NT, Article, Visual C++] Visual C++ Developers Journal 01-Feb-2000, vol. 3, no. 1 by Jeff Prosise
A Hands-On Look at COM+ Events
Jeff Prosise
Dive into Windows 2000's flexible publish-subscribe model of
disseminating information. You'll learn how to build a COM+ Event Class,
Subscriber, And Publisher.
Optimize COM Object Performance [COM, Object, Performance, Article, Visual C++] Visual C++ Developers Journal 01-Feb-2000, vol. 3, no. 1 by Jim Beveridge
Optimize COM Object Performance
Jim Beveridge
Learn how to optimize your COM objects' network performance - without
sacrificing understandability or ease of use.
Create and Customize Transactions [Transaction, Article, Visual C++] Visual C++ Developers Journal 01-Feb-2000, vol. 3, no. 1 by Davide Marcato
Create and Customize Transactions
Davide Marcato
Our VC++ Pro answers questions ranging from timeouts and transactions
to pointers and public methods.
Make Your Server Use a Thread Pool [Server, Thread, STA, Thread Affinity, Article, Visual C++] Visual C++ Developers Journal 01-Feb-2000, vol. 3, no. 1 by Richard Grimes
Make Your Server Use a Thread Pool
Richard Grimes
With STA thread pooling, you can write an EXE server that has
components with Thread Affinity, but isn't a single-threaded server.
Report Easily With COM Exceptions [COM, Exception, HRESULT, Error, Article, Visual C++] Visual C++ Developers Journal 01-Feb-2000, vol. 3, no. 1 by George Shepherd
Report Easily With COM Exceptions
George Shepherd
HRESULTs aren't the only way to provide the client program with
information. Throw and catch COM exceptions to retrieve greater Error details.
Automatic Tab Bar for MDI Frameworks [Document/View, MDI, Article, Visual C++] www.codeproject.com 01-Feb-2000 by Paul Selormey
Automatic Tab Bar for MDI Frameworks
Paul Selormey
A dockable bar containing a tabbed list of open windows
Fully owner drawn tab control [Tab Control, Article, Visual C++] www.codeproject.com 01-Feb-2000 by Oleg Lobach
Fully owner drawn tab control
Oleg Lobach
A better looking tab control
Copy Path Shell Extension [Shell Programming, Article, Visual C++] www.codeguru.com 01-Feb-2000 by Nick Carruthers
Copy Path Shell Extension
Nick Carruthers
WM_COMMAND user message macro [Macro, Update, Article, Visual C++] www.codeguru.com 01-Feb-2000 by John Christian Lonningdal
WM_COMMAND user message macro
John Christian Lonningdal
Strip'em Add-in for Visual Studio 6.0 [Macro, Article, Visual C++] www.codeguru.com 01-Feb-2000 by Itay Szekely
Strip'em Add-in for Visual Studio 6.0
Itay Szekely
Useful utility for working in mixed Unix/Windows environment
Fully Owner Drawn Tab Control [Control, Article, Visual C++] www.codeguru.com 01-Feb-2000 by Oleg Lobach
Fully Owner Drawn Tab Control
Oleg Lobach
Great article on creating advanced tabs for your application
Compass Control [Control, Article, Visual C++] www.codeguru.com 01-Feb-2000 by Monte Variakojis
Compass Control
Monte Variakojis
Great new control for writing GPS and Navigation systems!
Log Book Control [Control, Article, Visual C++] www.codeguru.com 01-Feb-2000 by Mike Marquet
Log Book Control
Mike Marquet
Very cool control for creating a visual logbook application
Transparent Group Box Control [Control, Article, Visual C++] www.codeguru.com 01-Feb-2000 by Jens Schacherl
Transparent Group Box Control
Jens Schacherl
Cookies in an ISAPI Extension DLL [ISAPI, Article, Visual C++] www.codeguru.com 01-Feb-2000 by Klynt Klimek
Cookies in an ISAPI Extension DLL
Klynt Klimek
TipMaker Tool [Tool, Article, Visual C++] www.codeguru.com 01-Feb-2000 by Peter Boulton
TipMaker Tool
Peter Boulton
Tool that enables you to automatically create *all* your application's
tooltips at once!
Insert your Logo between TitleBar and MenuBar (ala Real-Player) [C++, MFC, Windows Programming, Article, Visual C++] www.codeguru.com 01-Feb-2000 by Smile Seo
Insert your Logo between TitleBar and MenuBar (ala Real-Player)
Smile Seo
A Visual Studio-like Listbox class [Listbox, Visual Studio, Article, Visual C++] www.codeguru.com 01-Feb-2000 by Stefano Passiglia
A Visual Studio-like Listbox class
Stefano Passiglia
Includes built-in buttons for Add, Remove, Move Up and Move Down
Componentize Notes Functionality [Component, Article, Lotus Notes] Notes Advisor 01-Feb-2000 by Terrance A Crow
Enterprise Integration - Lotus Notes & Domino Advisor - February 2000
Componentize Notes Functionality
Terrance A Crow
Integrate Visual Basic into Notes Applications [Visual Basic, Article, Lotus Notes] Notes Advisor 01-Feb-2000 by Michael Mohen
Enterprise Integration - Lotus Notes & Domino Advisor - February 2000
Integrate Visual Basic into Notes Applications
Michael Mohen
Custom Visual Basic and OLE Integration with Notes [Visual Basic, OLE, Integration, Article, Lotus Notes] Notes Advisor 01-Feb-2000 by Gerard Ulto
MESSAGING - Lotus Notes & Domino Advisor - February 2000
Custom Visual Basic and OLE Integration with Notes
Gerard Ulto
Easier Application Deployment [Article, Lotus Notes] Notes Advisor 01-Feb-2000 by Shahir A Daya, Marek Nowicki
APPLICATION DEPLOYMENT - Lotus Notes & Domino Advisor - February 2000
Easier Application Deployment
Shahir A Daya and Marek Nowicki
Create Name Picklists for Web Applications [Picklist, Web, Article, Lotus Notes] Notes Advisor 01-Feb-2000 by Steve Parker
Web Development - Lotus Notes & Domino Advisor - February 2000
Create Name Picklists for Web Applications
Steve Parker
Customize the Database View Search [Search, Article, Lotus Notes] Notes Advisor 01-Feb-2000 by Scot Haberman
Knowledge Management - Lotus Notes & Domino Advisor - February 2000
Customize the Database View Search
Scot Haberman
Tap the Power of Notes' Import and Export Capabilities [Import, Export, Article, Lotus Notes] Notes Advisor 01-Feb-2000 by Laurie Kimmel
Data Integration - Lotus Notes & Domino Advisor - February 2000
Tap the Power of Notes' Import and Export Capabilities
Laurie Kimmel
Drawing Fast Polygons / Graphics with VB5/6 [Graphic, Article, Visual Basic] www.earthweb.com 01-Feb-2000
Drawing Fast Polygons / Graphics with VB5/6
-N/A
1-Feb-2000
1-Feb-2000
VB code to display fast Graphics drawings
Detecting Mouse-Clicks Globally
-N/A
1-Feb-2000
1-Feb-2000
VB code to detect mouse clicks anywhere on the desktop or window
Auto completing Dates [Article, Delphi] delphi.about.com 01-Feb-2000
01-Feb-2000
01-Feb-2000
Auto completing Dates
Date manipulation: improve your code, let them type faster.
Simple and Easy Undo/Redo [Document/View, Article, Visual C++] www.codeproject.com 31-Jan-2000 by Keith Rule
Simple and Easy Undo/Redo
Keith Rule
Easily add Undo/Redo to your CDocument/CView Based Applciation
Crystal Edit: syntax Coloring text editor [Edit Control, Color, Article, Visual C++] www.codeproject.com 31-Jan-2000 by Andrei Stcherbatchenko
Crystal Edit: syntax Coloring text editor
Andrei Stcherbatchenko
A set of classes that provide an expandable framework for the syntax
coloring text editor.
Masked Edit Control [Edit Control, Validation, Article, Visual C++] www.codeproject.com 31-Jan-2000 by Dundas Software
Masked Edit Control
Dundas Software
A masked edit control that provides restricted, formatted and cued data
input and Validation
Simple Point to Point Communication Using Named Pipes [Network, Update, Article, Visual C++] www.codeguru.com 31-Jan-2000 by Emil Gustafsson
Simple Point to Point Communication Using Named Pipes
Emil Gustafsson
Updated article
Calling scripts within scripts [Active Server Pages, Component, ASP, Article, Visual C++] www.codeproject.com 30-Jan-2000 by Uwe Keim
Calling scripts within scripts
Uwe Keim
A Component for calling a URL from an ASP script and reading back the
output
A multi document tabbed interface [Document/View, MDI, Article, Visual C++] www.codeproject.com 30-Jan-2000 by Dundas Software
A multi document tabbed interface
Dundas Software
A variation on the MDI that indicates the open child windows in a tab
control.
30-Jan-2000
30-Jan-2000
Loops
Explore While and For loops in C and C++
Functions for Setting and Retrieving Values from Variant Safe Arrays [C++, MFC, Update, Article, Visual C++] www.codeguru.com 30-Jan-2000 by Nanda Kishore
Functions for Setting and Retrieving Values from Variant Safe Arrays
Nanda Kishore
Serializable Base Object [C++, MFC, Article, Visual C++] www.codeguru.com 30-Jan-2000 by Betao
Serializable Base Object
Betao
Generic base class for handling the serialization duties of all derived
classes
How to Create a Custom View to Wrap Your Own Control [Document/View, Article, Visual C++] www.codeguru.com 30-Jan-2000 by Charles Calvert
How to Create a Custom View to Wrap Your Own Control
Charles Calvert
Print Preview Without MFC [Printing, Article, Visual C++] www.codeguru.com 30-Jan-2000 by Danang Suharno
Print Preview Without MFC
Danang Suharno
MFC Solution to Explanding the CFileDialog Common Dialog [Dialog, Update, Article, Visual C++] www.codeguru.com 30-Jan-2000 by Milan Markovic
MFC Solution to Explanding the CFileDialog Common Dialog
Milan Markovic
Updated demo project
A Pinnable Dialog Base Class [Dialog, Article, Visual C++] www.codeguru.com 30-Jan-2000 by David Hill
A Pinnable Dialog Base Class
David Hill
Framework for Creating Custom Window Captions [UI, Article, Visual C++] www.codeguru.com 30-Jan-2000 by Dave Lorde
Framework for Creating Custom Window Captions
Dave Lorde
Extremely cool framework for use with complex apps with lots of views
Simple Point to Point Communication Using Named Pipes [Network, Article, Visual C++] www.codeguru.com 30-Jan-2000 by Emil Gustafsson
Simple Point to Point Communication Using Named Pipes
Emil Gustafsson
Open Source Chat Program [Network, Article, Visual C++] www.codeguru.com 30-Jan-2000 by Christian Carrillo
Open Source Chat Program
Christian Carrillo
Complete, realtime chat application (source code included!)
Open Source Instant Messenger [Network, Article, Visual C++] www.codeguru.com 30-Jan-2000 by Christian Carrillo
Open Source Instant Messenger
Christian Carrillo
Very nice instant messaging application (source code included!)
Open Source File Sharing Environment [Network, Article, Visual C++] www.codeguru.com 30-Jan-2000 by Christian Carrillo
Open Source File Sharing Environment
Christian Carrillo
Very large, sophisticated app for sharing files across the Internet
EnTeHandle [System, Update, Article, Visual C++] www.codeguru.com 30-Jan-2000 by Fred Forester
EnTeHandle
Fred Forester
Added link to Microsoft's ntexapi.h file
Transparent Splash Window [C++, MFC, Windows Programming, Article, Visual C++] www.codeguru.com 30-Jan-2000 by Smile Seo
Transparent Splash Window
Smile Seo
Owner Drawn Spin Control [Control, Article, Visual C++] www.codeguru.com 30-Jan-2000 by Oleg Lobach
Owner Drawn Spin Control
Oleg Lobach
Owner drawn spin button control with autodisabling arrow buttons
Programmatically Create Dialup Connection Objects [Internet, Article, Visual C++] www.codeguru.com 30-Jan-2000 by Jordi Mas
Programmatically Create Dialup Connection Objects
Jordi Mas
Enables you to create Dialup connections in your Dialup Connections
folder
CPrintListCtrl Class [Listview, Update, Article, Visual C++] www.codeguru.com 30-Jan-2000 by Mike Marquet
CPrintListCtrl Class
Mike Marquet
Updated source and demo files
LibDump Tool [Debugging, Update, Article, Visual C++] www.codeguru.com 30-Jan-2000 by George Poulose
LibDump Tool
George Poulose
Very nice Utility for examining the contents of library (.LIB) files
Stored Procedure Class Wizard [Tool, Article, Visual C++] www.codeguru.com 30-Jan-2000 by George Poulose
Stored Procedure Class Wizard
George Poulose
Interactive SQL Tool (using MFC) [Database, Article, Visual C++] www.codeguru.com 30-Jan-2000 by George Poulose
Interactive SQL Tool (using MFC)
George Poulose
Updated source and demo files
Interactive SQL Tool (using ADO) [Database, Article, Visual C++] www.codeguru.com 30-Jan-2000 by George Poulose
Interactive SQL Tool (using ADO)
George Poulose
Updated source and demo files
Framework for Creating Custom Window Captions [Article, Visual C++] www.earthweb.com 30-Jan-2000 by Lorde Dave
Framework for Creating Custom Window Captions
Lorde Dave
30-Jan-2000
30-Jan-2000
This article presents some classes that make customising window
captions really quick and easy.
PeopleWatcher instant messanger
Tenebril Incorporated
An instant messenger program using the AwareNet library
Aggressive Optimizations for Visual C++ [Tip, Article, Visual C++] www.codeproject.com 28-Jan-2000 by Todd C Wilson
Aggressive Optimizations for Visual C++
Todd C Wilson
Save time and space in your release builds
How to test your programs with Unicode characters in multiple languages on Windows 2000 [Windows 2000, Article, Visual C++] www.codeproject.com 28-Jan-2000 by Michael Dunn
How to test your programs with Unicode characters in multiple languages
on Windows 2000
Michael Dunn
How to test your Unicode program with foreign-language characters on
Windows 2000
Using qsort on arrays of sequential data [C++, MFC, STL, Article, Visual C++] www.codeproject.com 27-Jan-2000 by Phil McGahan, Chris Maunder
Using qsort on arrays of sequential data
Phil McGahan and Chris Maunder
An introduction to a useful function
BCGDateTime controls version 1.0 [Date, Time, Article, Visual C++] www.codeproject.com 27-Jan-2000 by Stas Levin
BCGDateTime controls version 1.0
Stas Levin
A set of four date/time ActiveX controls (Date/Time Picker, Month
Calendar, Duration Control, Time Intervals Control)
Perforated Tape Toolbar [Toolbar, Docking Window, Article, Visual C++] www.codeproject.com 27-Jan-2000 by Oleg A Mostovlyansky
Perforated Tape Toolbar
Oleg A Mostovlyansky
A spectacular variation on toolbars
Tear-off Rebars [Toolbar, Docking Window, Office, Article, Visual C++] www.codeproject.com 27-Jan-2000 by Nick Hodapp
Tear-off Rebars
Nick Hodapp
This article Implements the functionality similar to the Office 2000
toolbars
Using the DrawAnimatedRects() function (using: Visual C++ 6.0) [Font, GDI, GUI, Article, Visual C++] www.codeproject.com 27-Jan-2000 by Chris Maunder, Norm Almond, Santosh Rao
Using the DrawAnimatedRects() function
Norm Almond, Chris Maunder and Santosh Rao
Shows how to use the DrawAnimatedRects function to improve the look of
your apps
True Colour Developer Studio Addin [Macro, Add-in, Article, Visual C++] www.codeproject.com 27-Jan-2000 by Simon Capewell
True Colour Developer Studio Addin
Simon Capewell
Use any colour in the Developer Studio IDE
String Tokenizer Class (CTokenEx) [String, Article, Visual C++] www.codeproject.com 27-Jan-2000 by Daniel Madden
String Tokenizer Class (CTokenEx)
Daniel Madden
A very simple string tokenizer class
Use VB's RegExp object to validate email address syntax
Nowadays, if your application requires a user to enter specific
company information, you probably have a field for an email
address. No doubt, you'll want to ensure that the address not
only contains the @ and dot, but that the remaining characters
contain only letters, numerals, or underscores (and perhaps a
dash or period). At first, this may seem like a daunting task.
And if you use standard Visual Basic string functions alone, it
will be. Fortunately, the VB RegExp object provides an easier way.
If you didn't read our previous tip on using a RegExp object for
global find and replace operations, then to use regular expressions
in Visual Basic you'll need to download the VBScript 5.0 DLL from
www.microsoft.com/msdownload/vbscript/scripting.asp
Once you install VBScript's DLL, the Microsoft VBScript Regular
Expressions option appears in Visual Basic's References dialog
box. Add this reference to your project, and you'll be free to
use the RegExp object. The following code validates an email
address in a textbox named Text1:
Dim myReg As RegExp
Private Sub Form_Load()
Set myReg = New RegExp
myReg.IgnoreCase = True
myReg.Pattern = "^[\w-\.]+@\w+\.\w+$"
End Sub
Private Sub Text1_Validate(Cancel As Boolean)
Cancel = Not myReg.Test(Text1)
End Sub
Here, the pattern accepts any number of numeric, underscore,
letters, periods, or dash characters before the @ character
and only numerals, underscores, or letters before and after the dot.
CMapiAdmin: MAPI wrapper [Internet, Network, Article, Visual C++] www.codeproject.com 26-Jan-2000 by Jason Hattingh
CMapiAdmin: MAPI wrapper
Jason Hattingh
A class to encapsulate extended MAPI functions.
ATL Rotary Control [Control, ATL, Article, Visual C++] www.codeproject.com 26-Jan-2000 by Norm Almond
ATL Rotary Control
Norm Almond
A rotary knob similar to that used in the Windows 2000 CD Player
Case-Insensitive String Replace
Uwe Keim
function to replace all occurences of a string within another, ignoring
the case.
Utility to Product Source Code Statistics [C++, MFC, Windows Programming, Article, Visual C++] www.codeguru.com 26-Jan-2000 by Valery R Kim
Utility to Product Source Code Statistics
Valery R Kim
Adding Buttons to Dialog Caption [Dialog, Article, Visual C++] www.codeguru.com 26-Jan-2000 by Fabi Pantera
Adding Buttons to Dialog Caption
Fabi Pantera
"Happy Year2000" For All Software Developers [OpenGL, Article, Visual C++] www.codeguru.com 26-Jan-2000 by Zhaohui Xing
"Happy Year2000" For All Software Developers
Zhaohui Xing
Defining a Function Object (using: Visual C++ 6.0) [Callback, Function Object, Template, Visual C++, Tip] www.devx.com 25-Jan-2000 by Danny Kalev
Defining a Function Object
By Danny Kalev
Although pointers to functions are widely used for implementing function
callbacks, C++ offers a significantly superior alternative to them, namely
function objects. Function objects (also called "functors") are ordinary class
objects that overload the () operator. Thus, syntactically, they behave like
ordinary functions.
There are several advantages in using a function object instead of a pointer to
function. First, they are more resilient to design changes because the object
can be modified internally without changing its external interface. A function
object can also have data members that store the result of a previous call.
When using ordinary functions, you need to store the result of a previous call
in a global or a local static variable. However, global and local static
variables have some undesirable characteristics. Finally, compilers can inline
a call made through a function object, thereby enhancing performance even
further. In contrast, it is nearly impossible to inline a function call made
through a pointer.
This solution will show how to define and use a function object that implements
a negation operation. The first step consists of declaring an ordinary class
and overloading the () operator:
class Negate
{
public:
int operator() (int n) { return -n;}
};
The overloaded () might look a bit confusing because it has two pairs of
parentheses. Remember that the first pair is always empty because it serves as
the operator's name; the parameter list appears in the second pair of
parentheses. Unlike other overloaded operators, whose number of parameters is
fixed, the overloaded () operator may take any number of parameters.
Because the built-in negation operator is unary (it takes only a single
operand), our overloaded () operator also takes a single parameter. The return
type is identical to the parameter's type -- int in our example. The function
body is trivial; it simply re ... (cont.)
Building a Network Service Object (using: Visual Basic 6.0) [NETRESOURCE, Network, WNetAddConnection2(), WNetCancelConnection2(), WNetGetUser(), Visual Basic, Tip, Connection] www.devx.com 25-Jan-2000 by Eric Smith
Building a Network Service Object
By Eric Smith
Objects you build don't always have to be related to a database entity. In
fact, some of the best objects are pure service objects that know how to talk
to the registry, or other Windows service. This article will show you the code
to build a network service object that knows how to:
1. Get network user name.
2. Connect a network drive.
3. Disconnect a network drive.
Each one of these features will be a public subroutine or function. The object
will take care of error handling from the API calls by raising errors to the
calling routine. While the sample code will have a basic error handler, you can
expand it to check each of the error codes that the API calls might return.
These error codes are documented in the MSDN library (both online and on
CD-ROM), and the error code constants are defined in the API viewer. Just add
them to your application and you'll be ready to go.
The first routine will be called AddConnection. The code for this routine is
shown here:
Public Sub AddConnection(strLocalPath As String,
_strNetworkPath As String, _
Optional strUserName As String = "",
_Optional strPassword As String = "")
Dim typNet As NETRESOURCE
Dim lngReturn As Long
With typNet
.dwType = RESOURCETYPE_DISK
.lpLocalName = strLocalPath
.lpRemoteName = strNetworkPath
.lpProvider = ""
End With
lngReturn = WNetAddConnection2(typNet,
_strPassword, strUserName, 0)
If lngReturn <> 0 Then
Err.Raise vbObjectError,
_"NetworkServices.AddConnection",
_"Error #" & lngReturn & " occurred
_during connection."
End If
End Sub
The routine is designed to accept a local path and a network path, and
optionally, a user name and/or password to make the connection. As is required
by the API call, we fill the NETRESOURCE structure with the information needed
to make the connection. The constant used here i ... (cont.)
FileSystemObject: Overhauled Feature Improves File Operations (using: Visual Basic 6.0) [FielSystemObject Object, File, Folder, SCRRUN.DLL, Drive, Visual Basic, Tip] www.devx.com 25-Jan-2000 by Eric Smith
FileSystemObject: Overhauled Feature Improves File Operations
By Eric Smith
Ever since Visual Basic was first released, most of its major features have
been overhauled at least once. The exception to this rule is in file
operations. Just as in the original basic language, files are still opened
using numbers. You can pass the numbers around through your code, but you
always have to use somewhat obscure statements to write data to files.
With the release of Visual Basic Scripting Edition, version 2.0, Microsoft
introduced the FileSystemObject. This is the overhaul that developers who work
with disk files have been waiting for. This object, and other objects in this
group, encapsulate all the file operations that previously have been difficult
or impossible to implement.
To use these objects, you must reference the Microsoft Scripting Runtime
(C:\Windows\System\SCRRUN.DLL) in your Visual Basic application. If you're
using VBScript with Internet Explorer, the objects are available already. The
objects of interest are these:
Drive. Represents a single storage device, including floppy disk, hard drive,
CD-ROM, and more.
Drives. A collection of all the drives in the system.
File. Represents a single disk file somewhere on the system.
Files. A collection of disk files, typically located in a particular directory.
FileSystemObject. An object to represent the entire file system on your
computer, including all drives, directories, and files.
Folder. Represents a single directory, whether local or network.
Folders. A collection of directories, which can be located at either the root
level or in another directory.
TextStream. Represents a file that has been opened for reading or writing of
data.
To get information on all the drives on your system, you could use the
following code:
Sub Main()
Dim objFSO As New Scripting.FileSystemObject
Dim drvLoop As Scripting.Drive
For Each drvLoop In objFSO.Drives
Debug.Print drvLoop.DriveLetter & ":\"
... (cont.)
CArray: A simple but highly efficient improvement [C++, MFC, STL, CArray Class, Template, Article, Visual C++] www.codeproject.com 25-Jan-2000 by Russell Robinson
CArray: A simple but highly efficient improvement
Russell Robinson
A simple derived Template class that can boost the efficiency of your
programs.
High resolution date and time class [Date, Time, Article, Visual C++] www.codeproject.com 25-Jan-2000 by H?kan Trygg
High resolution date and time class
H?kan Trygg
A high resolution time class that is a replacement for COleDateTime
that does not use MFC.
Writing AutoCad DXF files [File, Folder, Article, Visual C++] www.codeproject.com 25-Jan-2000 by Claude Gagnon
Writing AutoCad DXF files
Claude Gagnon
A simple class for writing AutoCad DXF files
Owner drawn spin button control with autodisabling arrow buttons. [Control, Article, Visual C++] www.codeproject.com 25-Jan-2000 by Oleg Lobach
Owner drawn spin button control with autodisabling arrow buttons.
Oleg Lobach
A spin button whose arrows automatically disable themselves when they
are at their maximum or minimum value.
CUsefulSplitterWnd (an extension to CSplitterWnd) [Splitter Window, MFC, Article, Visual C++] www.codeproject.com 25-Jan-2000 by Shaun Wilde
CUsefulSplitterWnd (an extension to CSplitterWnd)
Shaun Wilde
An extension to MFCs CSplitterWnd that provides splitter locking and
dynamic view replacement
Connection Points and Asynchronous Calls, Part II [ATL, COM, Update, Article, Visual C++] www.codeguru.com 25-Jan-2000 by Ashish Dha
Connection Points and Asynchronous Calls, Part II
Ashish Dha
Updated source code
A static control to display DIBs [Static Control, Update, Article, Visual C++] www.codeguru.com 25-Jan-2000 by Jorge Lodos
A static control to display DIBs
Jorge Lodos
Demo added to article
CPrintListCtrl Class [Listview, Article, Visual C++] www.codeguru.com 25-Jan-2000 by Mike Marquet
CPrintListCtrl Class
Mike Marquet
CListCtrl-derived class that prints (without MFC support)
Stacked Dialog
Zoran MTodorovic
Presents an alternative to Property Sheets
cOutlookIntegration .... How to send attachments using the Outlook Object Model [Object Model, Outlook, Visual Basic, VB Class Module] www.codeoftheweek.com 23-Jan-2000, no. 113
Requirements
Visual Basic 4.0 32-bit or higher.
You will need to create a Reference to Microsoft Outlook 98
Object Model. To create this reference for Visual Basic 4 goto
Tools / References. To create this reference for Visual Basic 5
or 6 goto Project / References. Then select Microsoft Outlook 98
Model. Outlook 2000 should work the same way.
Outlook 98 or higher installed on your machine.
In this Issue
In this issue we discuss how to send attachments using the
Outlook Object Model. We also cover how to use the CC and BCC
options when sending messages.
cOutlookIntegration.
This week we took what we had from last week and converted it to
a class module. This allowed us to add some other features that
would have been difficult to implement in a single function call.
The cOutlookIntegration module contains several properties and
methods that use the Outlook object model. This class assumes
the user of this software has Outlook installed on their computer.
In a future issue we might show how to use other useful Outlook
messaging features. Send a message to outlook@codeoftheweek.com
if you are interested in seeing more about this.
Properties
Public Property Let ImportanceFlag(eImportance As OlImportance)
eImportance marks the message with one of the following:
olImportanceHigh, olImportanceLow or olImportanceNormal. This
option is not supported on all mail systems. The default is
depends on how Outlook is configured.
Public Property Let MessageBody(sBody As String)
sBody is the content of the message. sBody can contain new line
characters and can be pretty much unlimited in length; although
you probably do not want to send a message that is too long.
Methods
Public Sub ComposeMessage(Optional olItem As OlItemType = olMailItem)
This is where you should start. For any message you send, you
should call ComposeMessage first. The parameter olItem allows you
to control what kind of message will be composed. For now all
that is supported ... (cont.)
C/C++ Tips from Users [Article, Visual C++] cplus.about.com 23-Jan-2000
23-Jan-2000
23-Jan-2000
C/C++ Tips from Users
C++ tips sent in by you.
The RGN Generator [Font, GDI, GUI, Dialog, Article, Visual C++] www.codeproject.com 22-Jan-2000 by Richard de Oude
The RGN Generator
Richard de Oude
Creating non-rectangular Dialog boxes
General Purpose Log System [C++, MFC, Windows Programming, Article, Visual C++] www.codeguru.com 22-Jan-2000 by Rehzon
General Purpose Log System
Rehzon
CWinApp-derived Class for Retrieving Version Information [C++, MFC, Windows Programming, Article, Visual C++] www.codeguru.com 22-Jan-2000 by Bernd Wißler
CWinApp-derived Class for Retrieving Version Information
Bernd Wißler
Displaying Animated Cursors from a Resource File [C++, MFC, Windows Programming, Article, Visual C++] www.codeguru.com 22-Jan-2000 by Bernd Wißler
Displaying Animated Cursors from a Resource File
Bernd Wißler
Win32 SDK Screen Saver that cycles through a series of bitmaps every n seconds (using: Visual C++ 6.0) [Win32 Bitmaps Screen Saver, Article, Visual C++] www.codeguru.com 22-Jan-2000 by S Vinoj Kumar
S. Vinoj Kumar
Win32 SDK Screen Saver that cycles through a series of bitmaps every n
seconds
C++ Operators Macro [Macro, Article, Visual C++] www.codeguru.com 22-Jan-2000 by Yury Chervonij
C++ Operators Macro
Yury Chervonij
Auto-completes and inserts code for C++ keywords such as for, which,
etc.
Simple Mixer Control Wrapper [Multimedia, Update, Article, Visual C++] www.codeguru.com 22-Jan-2000 by Alexander Fedorov
Simple Mixer Control Wrapper
Alexander Fedorov
Bug fixes to source code
Cool Popup Menu [Menu, Article, Visual C++] www.codeguru.com 22-Jan-2000 by Dipti Alone
Cool Popup Menu
Dipti Alone
Class to create menu with vertical bitmap along left side of menu
(similar to Start menu)
Load Arrays Using XML (using: Visual Basic 6.0) [Array, XML, Visual Basic, Tip] www.devx.com 21-Jan-2000 by Kurt Cagle
"Is it possible to load (populate) values into arrays using XML? Presently, I
am storing the values in an ASCII file and reading the file to populate the
arrays. The application contains several arrays - some of them quite large. I
read an article, "Ask the VB Pro: Load Arrays With Values Quickly," (requires
Premier Club membership) in the December 1999 issue of Visual Basic
Programmer's Journal, about using the VB Resource Editor and loading an array
from a resource file. Can array values be stored in an XML file and loaded at
run time? What would be the mechanics of doing this in VB6?"
Depending upon the type of XML structure, making the jump from an XML document
to an array is a fairly simple proposition. Indeed, a one-dimensional array, in
which each element of the array contains a simple scalar value, can be done
with a direct translation. For example, consider the problem of turning a list
of names contained within this XML structure into an array:
Albert EinsteinErasmus DarwinSamuel HawthorneMarie CurieLao TseAda Augusta LovelaceGrace HopperRichard FeynmanBenjamin Franklin
In this case, the structure is very uniform. You can take advantage of this
structure and the .selectnodes function, which returns a list of nodes that
satisfy a given condition. This nodelist is the key to doing any XML to variant
array conversion, because the nodelist is a collection that is accessible
through an index, just as an array is. This DOM code shows how you can take
advantage of that similarity:
function XML2Array(xmlDoc as DOMDocument, _
optional entityPath as String="/*/*") as Variant
dim nodeList as IXMLDOMNodeList
dim entities() as Variant
set nodeList=xmlDoc.selectNodes(entityPath)
redim entities(nodeList.length) as Variant
for index=0 to nodeList.length-1
entities(index)=nodeList(index)
ne ... (cont.)
Insert XML Into Another XML Document (using: Visual Basic 6.0) [XML, Visual Basic, Tip] www.devx.com 21-Jan-2000 by Kurt Cagle
"Is there an easy and efficient way to insert an XML document into another XML
template? The insertion point can be before, between, or after specified nodes."
Sure. I do this all the time. If you're going from a DOM-based solution, you
can incorporate one XML structure into another through the use of appendChild
and cloneNode. For example:
dim parentDoc
dim childDoc
dim insertionNode
set parentDoc=createObject("Microsoft.XMLDOM")
set childDoc=createObject("Microsoft.XMLDOM")
parentDoc.load "myXMLDoc.xml"
childDoc.load "myChildXMLDoc.xml"
set insertionNode=parentDoc.selectSingleNode("//some/arbitrary/path")
insertionNode.appendChild childDoc.documentElement
In this case, you load in two documents, select the node you want to attach the
child document to, then append the document element of the child document as a
child to that node. There is similarly an .insertBefore(nodePos) method that
can insert the new document into the node along with any other children that
the node happens to have.
Written by Kurt Cagle on 1/21/00.
Reading a text file in ASP [Active Server Pages, ASP, Article, Visual C++] www.codeproject.com 21-Jan-2000 by Chris Maunder
Reading a text file in ASP
Chris Maunder
How to read a text file on a server using VBScript in ASP
How to verify the bar state info [Toolbar, Docking Window, Article, Visual C++] www.codeproject.com 21-Jan-2000 by Cristi Posea
How to verify the bar state info
Cristi Posea
Verify the bar state info in the application profile before calling
LoadBarState()
printf()-like format function in VBScript [Visual Basic, VBScript, VBA, Visual Basic, Article, Visual C++] www.codeproject.com 21-Jan-2000 by Uwe Keim
printf()-like format function in VBScript
Uwe Keim
A format function in VBScript that simulates the printf() C function.
MFC Multithreaded Recording and Playback of Sound [Multimedia, Article, Visual C++] www.codeguru.com 21-Jan-2000 by Paul Cheffers
MFC Multithreaded Recording and Playback of Sound
Paul Cheffers
EditPad - Syntax Highlighting Editor [Edit Control, Update, Article, Visual C++] www.codeguru.com 21-Jan-2000 by Ferdinand Prantl
EditPad - Syntax Highlighting Editor
Ferdinand Prantl
Major updates to very popular syntax highlighting editor!!!
COleFileManager - OLE Compound File Class [ATL, COM, Article, Visual C++] www.codeguru.com 21-Jan-2000 by Brett R Mitchell
COleFileManager - OLE Compound File Class
Brett R Mitchell
Functionality added and bugs fixed
A Multi-Level CCheckListbox [Listbox, Article, Visual C++] www.codeguru.com 21-Jan-2000 by Brett R Mitchell
Ultimate FastMaps!
Dundas Software
A fully featured map class that uses balanced trees to store and
retrieve data quickly by key
A Card Dialog [Dialog, Windows Programming, Article, Visual C++] www.codeproject.com 20-Jan-2000 by Zoran M Todorovic
A Card Dialog
Zoran M Todorovic
A auto-sizing dialog used to store and display smaller child dialogs
Grouping project files into folders [Tip, Article, Visual C++] www.codeproject.com 20-Jan-2000 by Jeremiah Talkar
Grouping project files into folders
Jeremiah Talkar
A tip on organising your project files in the DevStudio Workspace window
Analog Meter Class [Control, Article, Visual C++] www.codeproject.com 19-Jan-2000 by Mark C Malburg
Analog Meter Class
Mark C Malburg
A control that displays a numerical value as an analog meter
Create a buzzword generator [Article, Visual Basic] visualbasic.about.com 19-Jan-2000
19-Jan-2000
19-Jan-2000
Create a buzzword generator
Your Visual Basic guide gives you the low-down on creating random
numbers to help create a nonsense phrase generator.
Property Page and Context Menu Shell Extension ATL Wizards [ATL, Context Menu, Shell Extension, Article, Visual C++] www.codeproject.com 18-Jan-2000 by Shaun Wilde
Property Page and Context Menu Shell Extension ATL Wizards
Shaun Wilde
A wizard that allows you to create an ATL Property Page or Context Menu
extensions
Serialization of COM objects using MFC [COM, DCOM, Serialization, MFC, Article, Visual C++] www.codeproject.com 18-Jan-2000 by Pierre Chalamet
Serialization of COM objects using MFC
Pierre Chalamet
A neat way to use MFCs built in serialization to store COM objects
Interactive SQL Tool (using ADO) [Database, SQL, ADO, Article, Visual C++] www.codeproject.com 18-Jan-2000 by George Poulose
Interactive SQL Tool (using ADO)
George Poulose
A tool that allows you to query OLE DB sources
Interactive SQL Tool (using ODBC) [Database, SQL, ODBC, ODBC, Article, Visual C++] www.codeproject.com 18-Jan-2000 by George Poulose
Interactive SQL Tool (using ODBC)
George Poulose
A tool that allows you to query ODBC sources
A Library Symbol Dump tool [DLL, Article, Visual C++] www.codeproject.com 18-Jan-2000 by George Poulose
A Library Symbol Dump tool
George Poulose
A tool to display the contents of a library file
How to share a data segment in a DLL [DLL, Article, Visual C++] www.codeproject.com 18-Jan-2000 by Phil McGahan
How to share a data segment in a DLL
Phil McGahan
Using #pragma statements to share variables in a DLL
History Edit Control [Edit Control, CEdit Class, Article, Visual C++] www.codeproject.com 18-Jan-2000 by Ravi Bhavnani
History Edit Control
Ravi Bhavnani
CEdit derived control that lets you to display a scrolling text history
Rotate your graphics: advanced Memory Device Context [Font, GDI, GUI, Memory, Device Context, Article, Visual C++] www.codeproject.com 18-Jan-2000 by Hans B?hler
Rotate your graphics: advanced Memory Device Context
Hans B?hler
A memory DC that allows you to rotate your graphics
Oscilloscope/StripChart Control [Control, Article, Visual C++] www.codeproject.com 18-Jan-2000 by Mark C Malburg
Oscilloscope/StripChart Control
Mark C Malburg
A control that graphically displays numerical information
An LED Style display control and bar control [Static Control, Time, Floating Point, Article, Visual C++] www.codeproject.com 18-Jan-2000 by Jason Hattingh
An LED Style display control and bar control
Jason Hattingh
A control to display Time, Floating Point numbers or integers using an
LED digital-style display
A service that displays an Icon in the System Tray [System, Icon, System Tray, Article, Visual C++] www.codeproject.com 18-Jan-2000 by Bruno Vais
A service that displays an Icon in the System Tray
Bruno Vais
This article demonstrates a service that uses the system tray to
interact with the user.
Fixing the GPF in Devshl.dll when starting VC++ 5 or 6 [Tip, Visual Studio, Article, Visual C++] www.codeproject.com 18-Jan-2000 by Sean Echevarria
Fixing the GPF in Devshl.dll when starting VC++ 5 or 6
Sean Echevarria
Having problems with Devshl.dll? Don't reinstall Visual Studio until
you've read this!
A Print Enabled Tree View [Tree Control, Article, Visual C++] www.codeproject.com 18-Jan-2000 by Koay Kah Hoe
A Print Enabled Tree View
Koay Kah Hoe
Code to add printing capabilities to a Tree View
Explicitly Linking to Classes in DLL's [DLL, Update, Article, Visual C++] www.codeguru.com 18-Jan-2000 by V Rama Krishna
Explicitly Linking to Classes in DLL's
V Rama Krishna
Fixed a bug in the source code/demo project
System Menu Handling [Article, Delphi] delphi.about.com 18-Jan-2000
18-Jan-2000
18-Jan-2000
System Menu Handling
Add, delete and change system menu items from Delphi.
A Drag-Drop Manager for CObjects [Clipboard, MFC, Article, Visual C++] www.codeproject.com 17-Jan-2000 by Wes Rogers
A Drag-Drop Manager for CObjects
Wes Rogers
A drag-drop/clipboard manager class for MFC objects derived from CObject
Sizers: An Extendable Layout Management Library [Dialog, Windows Programming, Article, Visual C++] www.codeproject.com 17-Jan-2000 by William E Kempf
Sizers: An Extendable Layout Management Library
William E Kempf
An article on extendable layout management classes
Creating Static-linked Executables using VC++ Standard Edition [DLL, Article, Visual C++] www.codeproject.com 17-Jan-2000 by LJP
Creating Static-linked Executables using VC++ Standard Edition
LJP
VC++ Standard Edition only has support for dynamically linked exes.
This article shows you how to by-pass this restriction.
Insert your Logo between caption bar and menu bar [Menu, Article, Visual C++] www.codeproject.com 17-Jan-2000 by Smile Seo
Insert your Logo between caption bar and menu bar
Smile Seo
Give your apps a unique look by adding a logo to your menu
An LED Time and value display control [Static Control, Time, Article, Visual C++] www.codeproject.com 17-Jan-2000 by Jason Hattingh
An LED Time and value display control
Jason Hattingh
A control to display times and numbers using an LED digital-style
display
VBUniverse
-N/A
17-Jan-2000
17-Jan-2000
Free Visual Basic Resource site with source code, sample projects,
articles. Featuring VB5/6, VBA, VBScript and some ASP. Also Chat and
messageboards...
Static text to display long filenames with ellipses [Static Control, Article, Visual C++] www.codeproject.com 16-Jan-2000 by Ravi Bhavnani
Static text to display long filenames with ellipses
Ravi Bhavnani
Lightweight class for displaying long filespecs that may need to be
truncated
Sending "Pop Up" Messages via NetMessageXXX Functions [Network, Article, Visual C++] www.codeguru.com 16-Jan-2000 by Phil Petree
Sending "Pop Up" Messages via NetMessageXXX Functions
Phil Petree
IE Advanced Options-like Tree View [Treeview, Article, Visual C++] www.codeguru.com 15-Jan-2000 by Huang Shansong
IE Advanced Options-like Tree View
Huang Shansong
Extending CStringArray [String, Article, Visual C++] www.codeguru.com 15-Jan-2000 by Anders M Eriksson
Extending CStringArray
Anders M Eriksson
Advanced CStringArray class with a Find method
Workspace Utilities v1.75 [Macro, Article, Visual C++] www.codeguru.com 15-Jan-2000 by Joshua C Jensen
Workspace Utilities v1.75
Joshua C Jensen
Latest version of popular Visual Studio Add-In
Simple messaging service [C++, MFC, Windows Programming, Article, Visual C++] www.codeguru.com 15-Jan-2000 by Alex G Nazarov
Simple messaging service
Alex G Nazarov
Weekly Hours Selector [Date, Time, Article, Visual C++] www.codeguru.com 15-Jan-2000 by Jeff Palmer
Weekly Hours Selector
Jeff Palmer
A Simple Smart Pointer [C++, MFC, Article, Visual C++] www.codeguru.com 15-Jan-2000 by Sandu Turcan
A Simple Smart Pointer
Sandu Turcan
Smart Pointer with minimal developer requirements and overhead
File Transfer Using CSockets [Network, Update, Article, Visual C++] www.codeguru.com 15-Jan-2000 by Vicken Simonian
File Transfer Using CSockets
Vicken Simonian
Demo added to article
Opening a Dial-Up connection [Internet, Network, Article, Visual C++] www.codeproject.com 14-Jan-2000 by Mileta Radenovic
Opening a Dial-Up connection
Mileta Radenovic
How to open a new dialup connection using RasDial
CSplitterWndEx : indicating splitter window focus, and automatic splitting [Splitter Window, Article, Visual C++] www.codeproject.com 14-Jan-2000 by Stephane Routelous
CSplitterWndEx : indicating splitter window focus, and automatic
splitting
Stephane Routelous
A tutorial that shows how to automatically split a view, and also how
to indicate which view has the focus
XSleep: An alternative to the Sleep() function [C++, MFC, Windows Programming, Article, Visual C++] www.codeguru.com 14-Jan-2000 by Anuj Seth
XSleep: An alternative to the Sleep() function
Anuj Seth
Memory Mapped Files [C++, MFC, Windows Programming, Article, Visual C++] www.codeguru.com 14-Jan-2000 by Rådström Stefan
Memory Mapped Files
Rådström Stefan
Using Memory Mapped Files for Efficient Inter-Process Communications
(IPC)
Shell Extension to Copy Full Filename Path(s) [Shell Programming, Article, Visual C++] www.codeguru.com 14-Jan-2000 by Glenn Carr
Shell Extension to Copy Full Filename Path(s)
Glenn Carr
Very useful extension that copies the selected file path(s) to the
clipboard
CUnicodeString Class [String, Update, Article, Visual C++] www.codeguru.com 14-Jan-2000 by Alexander Keck
CUnicodeString Class
Alexander Keck
Updated source code!!
Dialog for Selecting Directories [Dialog, Article, Visual C++] www.codeguru.com 14-Jan-2000 by Andrew Phillips
Dialog for Selecting Directories
Andrew Phillips
Display Update Speed for Dialog Boxes [Dialog, Article, Visual C++] www.codeguru.com 14-Jan-2000 by Joseph C Burwell
Display Update Speed for Dialog Boxes
Joseph C Burwell
GUI MFC Framework inside ATL DLL server [ATL, COM, Article, Visual C++] www.codeguru.com 14-Jan-2000 by Steve Bryndin
GUI MFC Framework inside ATL DLL server
Steve Bryndin
A Smart Pointer Capable of Object Level Thread Synchronization and Reference Counting Garbage Collection [C++, MFC, STL, Smart Pointer, Thread, Wrapper Class, Article, Visual C++] www.codeproject.com 13-Jan-2000 by Stefan Chekanov
A Smart Pointer Capable of Object Level Thread Synchronization and
Reference Counting Garbage Collection
Stefan Chekanov
A smart pointer Wrapper Class
Creating Excel Sheets using ODBC [Database, ODBC, Article, Visual C++] www.codeproject.com 13-Jan-2000 by Alexander Mikula
Creating Excel Sheets using ODBC
Alexander Mikula
Writing to Excel spreadsheets using only ODBC
Reading Excel files using ODBC [Database, ODBC, Article, Visual C++] www.codeproject.com 13-Jan-2000 by Alexander Mikula
Reading Excel files using ODBC
Alexander Mikula
A discussion and demonstration of reading Excel files using ODBC
How to place controls on toolbars [Toolbar, Docking Window, Article, Visual C++] www.codeproject.com 13-Jan-2000 by Randy More
How to place controls on toolbars
Randy More
How to place combo-boxes, edit boxes, progress controls, etc. into
toolbars
Catching the 'Enter' Key in windows and controls [Control, Article, Visual C++] www.codeproject.com 13-Jan-2000 by Randy More
Catching the 'Enter' Key in windows and controls
Randy More
How to handle the WM_GETDLGCODE message in order to catch special key
strokes.
How to display the Pick Icon Dialog [Shell Programming, Icon, Dialog, Article, Visual C++] www.codeproject.com 13-Jan-2000 by Henk Devos
How to display the Pick Icon Dialog
Henk Devos
Explains how to display the windows 'Pick Icon' dialog
CColorListbox: A list box with colored strings (using: Visual C++ 6.0) [Listbox, Article, Visual C++] www.codeguru.com 13-Jan-2000 by Paul M Meidinger
CColorListbox
A list box with colored strings
Paul M. Meidinger
CFileInfoArray [File, Folder, Article, Visual C++] www.codeguru.com 13-Jan-2000 by Antonio Tejada Lacaci
CFileInfoArray
Antonio Tejada Lacaci
Class for gathering file information recursively through directories
Outlook 98-Style FlatHeader Control [Listview, Article, Visual C++] www.codeguru.com 13-Jan-2000 by Maarten Hoeben
Outlook 98-Style FlatHeader Control
Maarten Hoeben
SuperGrid: Yet Another Listview Control (using: Visual C++ 6.0) [Listview, Update, Article, Visual C++] www.codeguru.com 13-Jan-2000 by Allan Nielsen
SuperGrid
Yet Another Listview Control
Allan Nielsen
An Adaptable Property List Control [Listview, Article, Visual C++] www.codeguru.com 13-Jan-2000 by Stefan Belopotocan
An Adaptable Property List Control
Stefan Belopotocan
Report Control (using: Visual C++ 6.0) [Listview, Article, Visual C++] www.codeguru.com 13-Jan-2000 by Maarten Hoeben
Report Control
An Outlook 98 style SuperGrid Control
Maarten Hoeben
HeadTail .... A composite control that offers the traditional Unix head functionality, which reads the first or last x number of bytes from the selected file [Visual C++, ActiveX Control] www.organicsoftware.net 22-Apr-2000
A composite control that offers the traditional Unix head functionality, which
reads the first or last x number of bytes from the selected file. The user can
switch from head to tail and specify the maximum number of characters to read.
The file selection listbox allows for navigation through the filesystem
Adaptable Property List Control [Article, Visual C++] www.earthweb.com 13-Jan-2000 by Stefan Belopotocan
Adaptable Property List Control
Stefan Belopotocan
13-Jan-2000
13-Jan-2000
A very nice list control for displaying VB-like properties dialog
Correctly pass variant array parameters in Visual Basic
If you create a procedure that will accept both standard arrays as well
as those created from the Spit() and Array() functions, then you'll definitely
want to type the argument as a variant, not an array, as in
Sub FooList ( MyArrayList as Variant)
instead of
Sub FooList (MyArrayList() as Variant)
Why? Well, both the Split() and Array() functions create variant
arrays-that is, a variant variable filled with an array subtype. And even
though you manipulate them the same way, Visual Basic doesn't consider an array
of variants and a variant array the same thing. So, if your procedure expects a
regular array and you pass it a variant array created from the Split() or
Array() function, you'll get a type mismatch error. On the other hand, Visual
Basic does let you pass a regular array into a variant parameter-which makes
sense when you consider a variant's universal nature.
Custom Draw Buttons & A Smarter Groupbox [Button Control, Article, Visual C++] www.codeproject.com 12-Jan-2000 by John Curtis
Custom Draw Buttons & A Smarter Groupbox
John Curtis
A class to make working with radio buttons easier, and another for
custom drawing buttons
A Simple Smart Pointer [C++, MFC, STL, Smart Pointer, Template, Article, Visual C++] www.codeproject.com 12-Jan-2000 by Sandu Turcan
A Simple Smart Pointer
Sandu Turcan
A Template-based smart pointer implementation
eNITL: The Network Improv Template Language [C++, MFC, STL, Template, HTML, XML, Article, Visual C++] www.codeproject.com 12-Jan-2000 by Liam Breck
eNITL: The Network Improv Template Language
Liam Breck
A cross platform scripting engine for server applications providing
HTML, XML, SGML or other text based formats
Indicating an empty ListView (using: Visual C++ 6.0) [List Control, Article, Visual C++] www.codeproject.com 12-Jan-2000 by Ghini Mauro
Indicating an empty ListView
Ghini Mauro
Instead of presenting a blank screen if your list control is empty, why
not try this?
CWndSliderView: An animated child window manager [Control, Outlook, Article, Visual C++] www.codeproject.com 12-Jan-2000 by Christopher Brown
CWndSliderView: An animated child window manager
Christopher Brown
An article on using an Outlook style window slider control.
Using the Network Registry Functions [System, Network, Article, Visual C++] www.codeproject.com 12-Jan-2000 by Santosh Rao
Using the Network Registry Functions
Santosh Rao
A small sample which uses Network Registry Access Functions to access a
remote computer
Creating an NT boot disk (using: Windows NT 4.0) [Boot-Up, Windows NT, Tip] www.zdnet.com 11-Jan-2000 by Chris Morton
If you accidentally delete NT's boot files from the hard disk's \root folder,
no operating system will boot. An NT boot disk can come to the rescue. To
create one, insert a floppy disk, open Explorer, right-click on the A: drive
icon, and choose Format. Then copy these files from the \root folder to the
floppy disk: NTLDR, NTDETECT.COM, BOOT.INI, and BOOTSECT.DOS. If disaster
strikes, simply boot from the floppy disk and copy those four files back to
their original location.
------------------------------
If you lose the three boot floppies (also known as Setup Disks) that came with
your Windows NT 4.0 CD-ROM, you can easily use the CDROM's setup utility,
WINNT32.EXE to create new copies of them. To do so, take your Windows NT 4.0
CDROM to another Windows NT Workstation or Server 4.0 system and run the
command
WINNT32.EXE /OX
from the CDROM's \I386 directory. The Setup program will prompt you to insert
three formatted disks to create the boot floppies but won't begin the
installation process itself. You can also run the command
WINNT.EXE /OX
from the CDROM's \I386 directory on a Windows 95, Windows 3.11 or DOS machine
to create the three boot floppies.
Using Command Line Arguments (using: Visual Basic 6.0) [Argument, Command Line, Visual Basic, Tip] www.zdnet.com 11-Jan-2000 by Eric Smith
Using Command Line Arguments
By Eric Smith
Editor's Note: Code in this Solution has been updated since its original
publication.
One of the virtually forgotten features of Visual Basic is the ability to
accept command-line parameters when an application is executed. Even with a GUI
available to you, there are some cases in which you need to build a VB
application that doesn't have a front-end. In these cases, one of the easiest
ways to control the function of the application is through command line
arguments.
Command line arguments are passed into Visual Basic by way of the Command$
variable. This variable is a very long string with all the arguments written
exactly as the user entered them. When running an application, you would add
them to the shortcut or the Run line. However, you may also need to use
arguments in testing within the VB environment. To do this:
1. Select Properties from the Project menu.
2. Click the Make tab.
3. As shown in Figure 1, enter the arguments that you want to pass to the
application when it runs in the development environment.
Interpreting the arguments is the next step. If you've ever had computer
science courses dealing with compilers and parsers, this should be fairly
straightforward for you. For this application, we're going to allow two options:
-d indicates debug mode
-f allows a filename to be specified immediately after the -f flag.
Once the application has started, we need to determine if any of these
arguments were supplied, and store the values in some variables for later use.
The code is shown below:
Sub Main()
Dim a_strArgs() As String
Dim blnDebug As Boolean
Dim strFilename As String
Dim i As Integer
a_strArgs = Split(Command$, " ")
For i = LBound(a_strArgs) To UBound(a_strArgs)
Select Case LCase(a_strArgs(i))
Case "-d", "/d"
' debug mode
blnDebug = True
Case "-f", "/f"
' filename specified
If i = UBound(a_strArgs) Th ... (cont.)
Creating an NT Setup Disk Set (using: Windows NT 4.0) [Setup, Windows NT, Tip] www.zdnet.com 11-Jan-2000 by Chris Morton
Unfortunately, the Emergency Repair disk won't work without NT setup disks.
It's easy to create a set, however, from any NT 4.0 machine that can access the
original distribution files. First, have three disks handy. Then choose
Start|Run and type WINNT32 /OX. Click on OK, then follow the prompts. If this
is your only NT system, test the disks by rebooting from disk 1, then entering
disk 2 until you see the Emergency Repair disk option on the Welcome to Setup
menu.
Determining the version number of a DLL or Executable [DLL, Article, Visual C++] www.codeproject.com 11-Jan-2000 by Eran Yariv, Kenneth Lea
Determining the version number of a DLL or Executable
Eran Yariv and Kenneth Lea
A class that allows you to determine the version of a DLL or EXE at
run-time
How to display tooltips for a toolbar in a Dialog [Toolbar, Docking Window, Dialog, Article, Visual C++] www.codeproject.com 11-Jan-2000 by Randy More
How to display tooltips for a toolbar in a Dialog
Randy More
Simple technique for getting tooltips when you have a toolbar in a
dialog
Highlight view with focus [Splitter Window, Article, Visual C++] www.codeproject.com 11-Jan-2000 by Randy More
Highlight view with focus
Randy More
Adding visual feedback on which pane in a split view currently has the
focus
Split a view from a menu item or keystroke [Splitter Window, Article, Visual C++] www.codeproject.com 11-Jan-2000 by Randy More
Split a view from a menu item or keystroke
Randy More
Connection Points and Asynchronous Calls, Part II [ATL, COM, Update, Article, Visual C++] www.codeguru.com 11-Jan-2000 by Ashish Dha
Connection Points and Asynchronous Calls, Part II
Ashish Dha
Updated source files
Macintosh-like Progress Control [Control, Article, Visual C++] www.codeguru.com 11-Jan-2000 by Paul M Meidinger
Macintosh-like Progress Control
Paul M Meidinger
Macintosh-like Slider Control [Control, Article, Visual C++] www.codeguru.com 11-Jan-2000 by Paul M Meidinger
Macintosh-like Slider Control
Paul M Meidinger
Get and Set Display Device Modes [Article, Delphi] delphi.about.com 11-Jan-2000
11-Jan-2000
11-Jan-2000
Get and Set Display Device Modes
Changing the display mode settings (resolution and color depth) from
Delphi code.
Simple Mixer Control Wrapper [Audio, Video, Article, Visual C++] www.codeproject.com 10-Jan-2000 by Alexander Fedorov
Simple Mixer Control Wrapper
Alexander Fedorov
A small audio mixer control wrapper
High quality image rotation (rotate by shear) [Bitmap, Palette, Article, Visual C++] www.codeproject.com 10-Jan-2000 by Eran Yariv
High quality image rotation (rotate by shear)
Eran Yariv
Rotating images using shear
Expanding and collapsing Dialogs [Dialog, Windows Programming, Article, Visual C++] www.codeproject.com 10-Jan-2000 by Michael Walz
Expanding and collapsing Dialogs
Michael Walz
This article shows gives you the ability to make your dialogs expand or
contract, depending on how much information the user wishes to view
How to do run-time (or explicit) linking of C++ plug-in Components and objects [DLL, Component, Article, Visual C++] www.codeproject.com 10-Jan-2000 by Gert Boddaert
How to do run-time (or explicit) linking of C++ plug-in Components and
objects
Gert Boddaert
Extending the functionality of your programs using explicit linking
Calling RasHangUp without errors. [Internet, Network, Article, Visual C++] www.codeproject.com 10-Jan-2000 by Alexander Fedorov
Calling RasHangUp without errors.
Alexander Fedorov
A way to call RasHangUp without hanging your applications or your modem
Adding Checkboxes to a list control [List Control, Article, Visual C++] www.codeproject.com 10-Jan-2000 by Eran Yariv
Adding Checkboxes to a list control
Eran Yariv
Using the updated list control in IE3 and above to add check boxes to
your list controls
A bevelline with horizontal and vertical text [Static Control, Article, Visual C++] www.codeproject.com 10-Jan-2000 by Hans B?hler
A bevelline with horizontal and vertical text
Hans B?hler
A bevelline control that displays vertical and horizontal text
CStatic-derived histogram control [Static Control, CStatic Class, Article, Visual C++] www.codeproject.com 10-Jan-2000 by Alexander Fedorov
CStatic-derived histogram control
Alexander Fedorov
A simple histogram control for displaying data
Tip-Static control like [Static Control, Article, Visual C++] www.codeproject.com 10-Jan-2000 by Smile Seo
Tip-Static control like
Smile Seo
A tip-of-the-day control that uses a cool sliding effect to show each
tip
Arrays in C and C++ [Article, Visual C++] cplus.about.com 09-Jan-2000
09-Jan-2000
09-Jan-2000
Arrays in C and C++
A tutorial on how to use arrays.
The Microsoft VC++ Virtual Property feature [C++, MFC, STL, Article, Visual C++] www.codeproject.com 07-Jan-2000 by Jeremiah Talkar
The Microsoft VC++ Virtual Property feature
Jeremiah Talkar
Using the __declspec(property) method to enhance legacy code
Selective Offline Browser
Rajiv Ramachandran
A useful application to download only selected files for offline
browsing
MsgHookX ActiveX DLL for Subclassing [ActiveX DLL, Subclassing, Article, Visual Basic] www.vb2themax.com 07-Jan-2000 by Francesco Balena
MsgHookX ActiveX DLL for Subclassing
7-Jan-2000
7-Jan-2000
Francesco Balena
The MsgHookEx DLL is an ActiveX component written in VB6, that lets you
perform safe and efficient subclassing even from within the Visual Basic IDE in
debug (break mode). This is an improved version of a similar component provided
with Francesco Balena's Programming Microsoft Visual Basic 6 book. This new
version adds the support for notification through a secondary interface, and
the definition of over 300 constants with all the most frequently used Windows
messages.
Note: This version of the DLL has been compiled with VB6. If you want
to distribute it with VB5 applications, remember to add VB6 runtime files.
Updated: 7/1/00
Creating an application with no Taskbar Icon [Document/View, Taskbar, Icon, Article, Visual C++] www.codeproject.com 06-Jan-2000 by Chris Maunder
Creating an application with no Taskbar Icon
Chris Maunder
A simple method to create a main window that does not appear in the
windows taskbar
Multiline Titletips [Control, Article, Visual C++] www.codeproject.com 06-Jan-2000 by Mark Findlay, Chris Maunder
Multiline Titletips
Mark Findlay and Chris Maunder
A class that allows you to display data for a control that is otherwise
not large enough to display the full text
Windows 2000 Junction Points [Windows 2000, Article, Visual C++] www.codeproject.com 06-Jan-2000 by Mike Nordell
Windows 2000 Junction Points
Mike Nordell
Explains how reparse points are used to create filesystem links
List Control displaying image thumbnails [List Control, Article, Visual C++] www.codeproject.com 05-Jan-2000 by Stefan Ungureanu
List Control displaying image thumbnails
Stefan Ungureanu
Demonstrates using a list control to display thumbnail views of images
Implementing Rulers inside of Splitter Panes [Splitter Window, Article, Visual C++] www.codeproject.com 05-Jan-2000 by Stefan Ungureanu
Implementing Rulers inside of Splitter Panes
Stefan Ungureanu
Using fixed panes to add rulers to your view
Toolbar within splitter windows [Splitter Window, Article, Visual C++] www.codeproject.com 05-Jan-2000 by Stefan Ungureanu
Toolbar within splitter windows
Stefan Ungureanu
A simple method that allows a toolbar to be docked inside a splitter
pane
AutoPtr Class [Article, Visual C++] www.earthweb.com 05-Jan-2000 by Dmitry Leonov
AutoPtrClass
Dmitry Leonov
5-Jan-2000
5-Jan-2000
The AutoPtrclass is an extension of std::auto_ptrtemplate class from
the Standard Template Library.
basOutlook .... How to send a message using the Outlook
Object Model [Mail, Outlook, Object Model, Visual Basic, VB Code Module] www.codeoftheweek.com 04-Jan-2000, no. 112
Requirements
Visual Basic 4.0 32-bit or higher.
You will need to create a Reference to Microsoft Outlook 98
Object Model. To create this reference for Visual Basic 4 goto
Tools / References. To create this reference for Visual Basic 5
or 6 goto Project / References. Then select Microsoft Outlook 98
Model. Outlook 2000 should work the same way.
basOutlook
The basOutlook module contains a single routine that calls
several methods within the Outlook object model. In the past we
have covered other methods to send email messages (using features
such as SMTP and MAPI). This one is very simple, but assumes the
user of this software has Outlook installed on their computer.
In a future issue we will expand on this code to show how to send
attachments, use the CC and BCC address fields and other useful
Outlook messaging features. Send a message to
outlook@codeoftheweek.com if you are interested in seeing more
about this.
Methods
Public Sub OutlookSendMessage(sRecipient As String, sSubject As String, _
sMessage As String, _
Optional eImportance As OlImportance =
olImportanceNormal)
sRecipient is the email address you want to send the message to,
such as info@codeoftheweek.com or just "John Doe" (if you are
either running a mail system that will resolve the name or have a
contact added called John Doe). sSubject is the subject of the
message and sMessage is the content of the message. sMessage can
contain new line characters and can be pretty much unlimited in
length; although you probably do not want to send a message that
is too long. eImportance marks the message with one of the
following: olImportanceHigh, olImportanceLow or
olImportanceNormal. This option is not supported on all mail
systems.
Sample Usage
The below sample shows how to send a message using the
OutlookSendMessage routine.
OutlookSendMessage "info@codeoftheweek.com", "Order Now!", "Please place
your order now!"
A Simple Logging Utility in ATL [ATL, Article, Visual C++] www.codeproject.com 04-Jan-2000 by Ashish Dhar
A Simple Logging Utility in ATL
Ashish Dhar
A simple logging utility to help debug your ATL applications
Drag and Drop between Tree controls [Treeview, Update, Article, Visual C++] www.codeguru.com 04-Jan-2000 by Vinayak Tadas
Drag and Drop between Tree controls
Vinayak Tadas
Updated source and demo files !!
StampVer: Command line version updater [Tool, Update, Article, Visual C++] www.codeguru.com 04-Jan-2000 by Paul Dixon
StampVer: Command line version updater
Paul Dixon
Updated link to newer version of utility
MakeDef : Intelligent DEF file Generator for Win32 Apps [Tool, Update, Article, Visual C++] www.codeguru.com 04-Jan-2000 by George Hazan
MakeDef : Intelligent DEF file Generator for Win32 Apps
George Hazan
Corrections made to article describing how to use tool
Resource Finder Utility [Tool, Update, Article, Visual C++] www.codeguru.com 04-Jan-2000 by Uwe Philipps
Resource Finder Utility
Uwe Philipps
Version 1.1 posted
Template based Registry class with serialization [System, Article, Visual C++] www.codeguru.com 04-Jan-2000 by Frank Melber
Template based Registry class with serialization
Frank Melber
Displaying an Empty Listview Message [Listview, Article, Visual C++] www.codeguru.com 04-Jan-2000 by Mauro Ghini
Displaying an Empty Listview Message
Mauro Ghini
Displays message so that user knows Listview is intentionally empty
Web Resources for Developers [Article, Delphi] delphi.about.com 04-Jan-2000
04-Jan-2000
04-Jan-2000
Web Resources for Developers
Cool, sexy...useful sites to make your programming easier, better,
faster, happier.
SAPrefs: Netscape-like Preferences Dialog [Property Sheet, Dialog, Article, Visual C++] www.codeproject.com 03-Jan-2000 by Chris Losinger
SAPrefs: Netscape-like Preferences Dialog
Chris Losinger
A base class for a prefereneces dialog, similar to that used in Netscape
More About Conditional Programming [Article, Visual C++] cplus.about.com 03-Jan-2000
03-Jan-2000
03-Jan-2000
More About Conditional Programming
A tutorial on nested if statements.
Simple Logging Utilily in ATL [ATL, COM, Article, Visual C++] www.codeguru.com 03-Jan-2000 by Ashish Dhar
Simple Logging Utilily in ATL
Ashish Dhar
Connection Points and Asynchronous Calls, Part II (using: Visual C++ 6.0) [Article, Visual C++] www.codeguru.com 03-Jan-2000 by Ashish Dha
Ashish Dha
Second installment of Connection Points tutorial
Enumerating Controls of a Dialog Resource at Runtime [Dialog, Article, Visual C++] www.codeguru.com 03-Jan-2000 by Ty Matthews
Enumerating Controls of a Dialog Resource at Runtime
Ty Matthews
Display Loaded Modules
Emmanuel Kartmann
Much newer version (v 1.10) of popular utility
Creating Internet Shortcuts [Internet, Article, Visual C++] www.codeguru.com 03-Jan-2000 by Venu Vemula
Creating Internet Shortcuts
Venu Vemula
Code that creates an Internet shortcut for Windows 9x and NT computers
Static LED Control [Control, Article, Visual C++] www.codeguru.com 03-Jan-2000 by Monte Variakojis
Static LED Control
Monte Variakojis
Great for graphical controls !!
File Transfer Using CSockets [Network, Article, Visual C++] www.codeguru.com 03-Jan-2000 by Vicken Simonian
File Transfer Using CSockets
Vicken Simonian
Two generic functions (SendFile / GetFile) to ease file transfer with
Sockets
Easy Dynamic Loading in C++ [Dynamic Loading, C++, Encapsulation, Visual C++, Article] C++ Users Journal 01-Jan-2000 by Sasha Gontmakher
Easy Dynamic Loading in C++
Sasha Gontmakher
Many programs today configure themselves on the fly. Dynamic loading
can really benefit from Encapsulation, to hide tedious details and system
dependencies.
Interval Trees [Article, Visual C++] C++ Users Journal 01-Jan-2000 by Yogi Dandass
Interval Trees
Yogi Dandass
We know that a tree is often a good way to represent an ordered set of
values. It can also be a good way to order a set of ranges as well.
Debugging Component-Based Memory Leaks [Debugging, Memory Leak, Visual C++, Article] C++ Users Journal 01-Jan-2000 by Ernesto Guisado
Debugging Component-Based Memory Leaks
Ernesto Guisado
The best place to catch memory leaks is as close to the source as
possible.
Java Interfaces and Inner Classes [Interface, Inner Class, Multiple Inheritance, C++, Java, Article] C++ Users Journal 01-Jan-2000 by Chuck Allison
Chuck Allison
Java Interfaces and Inner Classes
A Java interface is a weak substitute for Multiple Inheritance in C++,
but it still manages to do a lot of what needs doing.
Replacing Character Arrays with Strings, Part 1 [Character Array, String, Visual C++, Article] C++ Users Journal 01-Jan-2000 by Dan Saks
Dan Saks
Replacing Character Arrays with Strings, Part 1
It is a truism that well-designed library objects are superior to the
more primitive C data structures. But it still helps to know the costs of
converting to them.
Common Design Mistakes, Part 1 (using: Java) [Article, Design, Java] C++ Users Journal 01-Jan-2000 by Pete Becker
Pete Becker
Common Design Mistakes, Part 1
Create Your Own Internet Explorer Pluggable Protocols [Internet Explorer, Pluggable Protocol, Internet Protocol, HTTP, FTP, COM, Interface, XML, Article, Delphi] Delphi Developer 01-Jan-2000, vol. 6, no. 1 by Jani Jarvinen
Create Your Own Internet Explorer Pluggable Protocols
Jani Jarvinen
Everybody knows that Internet Explorer supports most of the regular
Internet Protocols like HTTP and FTP. However, beginning with Internet Explorer
4.0, the supported protocols can be extended by implementing simple COM
Interfaces. In this article, Jani Jarvinen shows how to create a custom
"delphi" protocol that's able to display the contents of a Delphi project file
using XML.
Making Windows Work Using the ShellAPI [ShellAPI, Shell, Article, Delphi] Delphi Developer 01-Jan-2000, vol. 6, no. 1 by David G Parsons
Making Windows Work Using the ShellAPI
David G Parsons
Most likely, you've needed to send an e-mail, launch a Web browser to a
certain URL, or maybe just open a Word document from your application. Users
expect their software to be more integrated with other software and more
Web-enabled than ever before. Of course, there are many ways to do this. You
can use OLE, DDE, and top-heavy functions such as CreateProcess, with all of
its associated structures. But thanks to ShellAPI, much of the dirty work has
been done for you. ShellAPI encapsulates the functionality of the Shell32
Windows library.
Delphi 5 IDE Wizardry: Examining Object Inspector Property Categories [IDE, Object Inspector, Property, Article, Delphi] Delphi Developer 01-Jan-2000, vol. 6, no. 1 by Bob Swart
Delphi 5 IDE Wizardry: Examining Object Inspector Property Categories
Bob Swart
Delphi IDE Wizardry is a column exploring the new features and
enhancements found in the Delphi 5 IDE. In this and next month's Delphi
Developer, Bob Swart focuses on the enhanced Object Inspector and Property
categories. He'll show you how to add your own custom properties to existing
categories and, next time, how you can even create your own custom categories.
Get Zip Functionality for Free [Zip, Component, Article, Delphi] Delphi Developer 01-Jan-2000, vol. 6, no. 1 by Fernando Vicaria
Get Zip Functionality for Free
Fernando Vicaria
Looking for a way to integrate zip and unzip functionality into your
application on the cheap? Here's the plan--and Fernando Vicaria has even
wrapped it all up into a neat little Component for you!
Revisiting FastStrings [String, Search, Article, Delphi] Delphi Developer 01-Jan-2000, vol. 6, no. 1 by Peter Morris
Revisiting FastStrings
Peter Morris
In the November 1999 issue of Delphi Developer, Peter Morris wrote an
article titled "Optimizing String Searches in Delphi." He now updates the
technique he offered with a bug workaround and new routines.
Embedded Forms [Embedded Form, Article, Delphi] Delphi Informant 01-Jan-2000, vol. 6, no. 1 by John Simonini
Embedded Forms
John Simonini
Mr Simonini shares a technique for embedding forms as the pages of a
tabbed notebook-a technique that facilitates discrete business logic, team
development, memory management, and code reuse.
Request Threads
Michael J Leaver
Mr Leaver describes a resource-sharing methodology for Delphi 4/5
Client/Server Suite using DCOM, and without using Transaction Processing
Monitors, such as MTS or BEA's Tuxedo.
A Multimedia Assembly Line: Part II [Multimedia, Component, Article, Delphi] Delphi Informant 01-Jan-2000, vol. 6, no. 1 by Alan C Moore
A Multimedia Assembly Line: Part II
Alan C Moore
Dr. Moore wraps up his two-part description of how to create a Delphi
sound expert that builds sound-enabled Components, including a detailed look at
the code-generating engine.
Control Panel Applets [Control Panel, Applet, Article, Delphi] Delphi Informant 01-Jan-2000, vol. 6, no. 1 by Peter J Rosario
Control Panel Applets
Peter J Rosario
Control Panel applets are the small programs that are visible in, and
run from, Windows Control Panel. Mr Rosario describes why you'd write one, and
demonstrates how to do it with Delphi.
Run-time ActiveX [ActiveX, ActiveX Component, Article, Delphi] Delphi Informant 01-Jan-2000, vol. 6, no. 1 by Ron Loewy
Run-time ActiveX
Ron Loewy
Sure, it's easy to incorporate an ActiveX Component with your Delphi
application at design time, but Mr Loewy takes it one big step further by
allowing run-time integration.
Dropping Hints: Part II [Hint, Article, Delphi] Delphi Informant 01-Jan-2000, vol. 6, no. 1 by Motty Adler
Dropping Hints: Part II
Motty Adler
From an independent hint window, to a complete sample application, Mr
Adler concludes his series regarding everything you've always wanted to know
about those small, yellow message boxes.
Multiple Inheritance: In Delphi? [Multiple Inheritance, Inheritance, Article, Delphi] Delphi Informant 01-Jan-2000, vol. 6, no. 1 by Alfred Lopez
Multiple Inheritance: In Delphi?
Alfred Lopez
Regardless of how you feel about multiple inheritance (MI), Mr Lopez's
implementation of MI in Delphi, which "borrows" some mechanisms from Eiffel,
makes for interesting reading.
Use AppCenter Server or COM And MTS for Load Balancing Your Component Servers [AppCenter Server, COM, MTS, Load Balancing, Component Server, Visual C++, Article] Microsoft Systems Journal 01-Jan-2000, vol. 15, no. 1 by Timothy Ewald
Use AppCenter Server or COM And MTS for Load Balancing Your Component
Servers
Of all the servers in your cluster, the one that is the least busy
should respond to a client component request. You can load balance the use of
your COM objects when Microsoft AppCenter Server is released-or you can get
started today with COM and MTS.
Timothy Ewald
Visual Basic Design Time Techniques to Prevent Runtime Version Conflicts [Interface Definition Language, Visual Basic, Article] Microsoft Systems Journal 01-Jan-2000, vol. 15, no. 1 by Brian A Randell, Ted Pattison
Visual Basic Design Time Techniques to Prevent Runtime Version Conflicts
Compatibility issues can be a nightmare when components written in
different versions of Visual Basic won’t work together. Understanding the
Visual Basic compatibility scheme and Interface Definition Language will help
you cope.
Brian A Randell
and
Ted Pattison
Active Directory Doesn’t Just Manage Network Resources, It Can Manage Your Data Too [Active Directory, Network Resource, Visual C++, Article] Microsoft Systems Journal 01-Jan-2000, vol. 15, no. 1 by Shawn Wildermuth
Active Directory Doesn’t Just Manage Network Resources, It Can Manage
Your Data Too
You thought Active Directory services was just for managing network
resources. But in reality you can use Active Directory services to store static
data in a hierarchical manner, just like the files or folders on your hard
drive.
Shawn Wildermuth
Common problem of accessing Data Access Objects from C++ with MFC [Data Access Object, C++, MFC, Visual C++, Article] Microsoft Systems Journal 01-Jan-2000, vol. 15, no. 1 by Paul DiLascia
Common problem of accessing Data Access Objects from C++ with MFC
Paul Dilascia describes addresses a common problem of accessing Data
Access Objects from C++ with MFC.
Paul DiLascia
How to use CHtmlView to display HTML in a Dialog [CHTMLView Class, HTML, Dialog, MFC, Visual C++, Article] Microsoft Systems Journal 01-Jan-2000, vol. 15, no. 1 by Paul DiLascia
How to use CHtmlView to display HTML in a Dialog
Paul Dilascia describes how to use CHtmlView to display HTML in a dialog
Paul DiLascia
Four levels of Opportunistic Locks that Windows 2000 supports [Opportunistic Lock, Windows NT, Article] Microsoft Systems Journal 01-Jan-2000, vol. 15, no. 1 by Jeffrey Richter
Four levels of Opportunistic Locks that Windows 2000 supports
Jeffrey Richter introduces the four levels of opportunistic locks that
Windows 2000 supports.
Jeffrey Richter
How to extend WinDBG with custom commands (using: Visual C++ 6.0) [WinDBG, Debugging, Visual C++, Article] Microsoft Systems Journal 01-Jan-2000, vol. 15, no. 1 by John Robbins
How to extend WinDBG with custom commands
John Robbins completes last month's discussion on WinDBG by showing how
to extend WinDBG with custom commands, called WinDBG extensions.
John Robbins
XML as a Component Technology (using: Visual C++ 6.0) [XML, Component, Visual C++, Article] Microsoft Systems Journal 01-Jan-2000, vol. 15, no. 1 by Don Box
XML as a Component Technology
Don Box discusses the emerging use of XML as a component technology.
Don Box
Find and Convert a Drive Letter [Drive, Article, Visual Basic] Visual Basic Programmer's Journal 01-Jan-2000, vol. 10, no. 1 by Karl E Peterson
Find and Convert a Drive Letter
Karl E Peterson
Learn the right techniques for finding drive letters and metafile
handles.
Calling Uncallable DLL Routines
R Greg Dudgeon
Writing DLLs that VBA can access is tricky. Here's how to access C code
that you can't convert to VB.
Control Your Option Buttons [Control, Statement, Article, Visual Basic] Visual Basic Programmer's Journal 01-Jan-2000, vol. 10, no. 1 by Dan Fergus
Control Your Option Buttons
Dan Fergus
Avoid endless For...Next and Select statements by building a simple
control that allows you to create custom groups of option buttons.
Manage Arrays Like a Pro [Array, Article, Visual Basic] Visual Basic Programmer's Journal 01-Jan-2000, vol. 10, no. 1 by Ron Schwarz
Manage Arrays Like a Pro
Ron Schwarz
Arrays are one of the most basic and useful mechanisms for handling
data.
Extend T-SQL With COM [T-SQL, COM, Automation, Article, Visual Basic] Visual Basic Programmer's Journal 01-Jan-2000, vol. 10, no. 1 by Andrew Holliday
Extend T-SQL With COM
Andrew Holliday
Learn how to use T-SQL's native OLE Automation APIs to call out to COM
objects.
Debug Stored Procedures
Dianne Siebold
Now you can create and modify stored procedures and debug the - without
ever leaving Visual Basic.
Evolve Simple Solutions to Complex Problems [Algorithm, Article, Visual Basic] Visual Basic Programmer's Journal 01-Jan-2000, vol. 10, no. 1 by Jonny Anderson
Evolve Simple Solutions to Complex Problems
Jonny Anderson
Simple, iterative Algorithms modeled on genetics enable you to solve
challenging multiconstraint problems, such as finding the most efficient route
for a given situation.
FTPServer/X [FTP, Article, Visual Basic] Visual Basic Programmer's Journal 01-Jan-2000, vol. 10, no. 1 by Eric Smith
FTPServer/X
Eric Smith
Set up FTP servers easily
Create an AutoBackup App [Backup, File, Article, Visual Basic] Visual Basic Programmer's Journal 01-Jan-2000, vol. 10, no. 1 by Chris Barlow
Create an AutoBackup App
Chris Barlow
Learn how to save your files to a backup folder automatically.
Design Docu-Centric Apps [Index Server, Article, Visual Basic] Visual Basic Programmer's Journal 01-Jan-2000, vol. 10, no. 1 by Edward L Chicca
Design Docu-Centric Apps
Edward L Chicca
Leverage the power of Index Server to give users instant access to
documents over your intranet.
Making Use of XML [XML, Web, Metadata, Article, Visual Basic] Visual Basic Programmer's Journal 01-Jan-2000, vol. 10, no. 1 by Nachi Sendowski
Making Use of XML
Nachi Sendowski
The secret to scalable Web applications lies in managing object state
without maintaining user sessions. Use XML to hold Metadata for restoring
object identity and state.
Pass Data Right, Part 2 [XML, Variant, Article, Visual Basic] Visual Basic Programmer's Journal 01-Jan-2000, vol. 10, no. 1 by Deborah Kurata
Pass Data Right, Part 2
Deborah Kurata
Learn how to pass data between server and client using XML or Variant
arrays.
SQL Service - Create Powerful Queries
Dianne Siebold
Combining SQL Server's simple aggregate functions appropriately can
help you create powerful, complex queries that are ideal for reports that
require summary information.
GDI Helper Classes [GDI, Class, C++, Device Context, MFC, Article, Visual C++] Windows Developer's Journal 01-Jan-2000, vol. 11, no. 1 by Giovanni Bavestrelli
GDI Helper Classes
Giovanni Bavestrelli
Whether you use MFC or straight C++, there’s a lot of repetitive GDI
work that can be automated. These classes simplify creating various GDI objects
(including fonts) and automatically handle restoring Device Contexts to their
previous states.
Programmatic Network Card Installation [Network, NIC, Article, Visual C++] Windows Developer's Journal 01-Jan-2000, vol. 11, no. 1 by Nickoletta Athanassopoulou, Simon D Hughes
Programmatic Network Card Installation
Nickoletta Athanassopoulou
and
Simon D Hughes
Administrators have to use the network control panel applet to install
network components, but it turns out there’s a DLL with an undocumented API
that is doing the real work. To demonstrate, this article includes code that
directly installs an NE2000 NIC.
A Print Monitor Setup Utility [Monitor, Printer, Article, Visual C++] Windows Developer's Journal 01-Jan-2000, vol. 11, no. 1 by Zuoliu Ding
A Print Monitor Setup Utility
Zuoliu Ding
If you start writing a print monitor, you’ll quickly get tired of the
steps required to install and uninstall it. Here’s some reusable code to
automate the task.
Understanding NT: Construction of a GINA that attempts to replace the default GINA [GINA, Article, Visual C++] Windows Developer's Journal 01-Jan-2000, vol. 11, no. 1 by Paula Tomlinson
Understanding NT: Construction of a GINA that attempts to replace the
default GINA
Paula Tomlinson
Previous columns described the basics of a GINA DLL, which lets you
insert your own code into NT’s logon and authentication process. This column
begins the construction of a GINA that attempts to replace the default GINA,
showing how to handle the user interface of the logon process with custom code.
A Reusable File Enumeration Function [File, Enumerating, FindFirstFile(), FindNextFile(), Article, Visual C++] Windows Developer's Journal 01-Jan-2000, vol. 11, no. 1 by Ron Burk
A Reusable File Enumeration Function
Ron Burk
You can use FindFirstFile() and FindNextFile() to traverse directories,
but there are lots of special cases, such as '.', '..', and the root directory.
This function hides the hard parts for you.
Profile Routines for Easy Registry Access [Registry, GetProfileString(), Article, Visual C++] Windows Developer's Journal 01-Jan-2000, vol. 11, no. 1 by Paula Tomlinson
Profile Routines for Easy Registry Access
Paula Tomlinson
You can sometimes use those old .ini file routines, such as
GetProfileString(), to access the registry with less code and hassle than the
'real' registry routines require.
Adding Window Functionality to Non-UI Objects [Message, Class, Article, Visual C++] Windows Developer's Journal 01-Jan-2000, vol. 11, no. 1 by Giovanni Bavestrelli
Adding Window Functionality to Non-UI Objects
Giovanni Bavestrelli
Sometimes you want to use window Messages (e.g., WM_TIMER) even though
there’s no visible window; this reusable Class handles the grunt work of
providing a hidden window for such cases.
A User's View of Object-Oriented Modules [Object-Oriented, Module, Article, Perl] The Perl Journal 01-Jan-2000, vol. 5, no. 1 by Sean M Burke
A User's View of Object-Oriented Modules
Sean M Burke
Napster [Napster, Article, Perl] The Perl Journal 01-Jan-2000, vol. 5, no. 1 by Lincoln D Stein
Napster
Lincoln D Stein
Multiple Dispatch in Perl [Article, Perl] The Perl Journal 01-Jan-2000, vol. 5, no. 1 by Damian Conway
Multiple Dispatch in Perl
Damian Conway
HTML::Parser [HTML::Parser, Article, Perl] The Perl Journal 01-Jan-2000, vol. 5, no. 1 by Ken MacFarlane
HTML::Parser
Ken MacFarlane
Beyond Hardcoded CGI with HTML::Mason [CGI, HTML::Mason, Article, Perl] The Perl Journal 01-Jan-2000, vol. 5, no. 1 by Joe Johnston
Beyond Hardcoded CGI with HTML::Mason
Joe Johnston
Home Automation with MisterHouse [Article, Perl] The Perl Journal 01-Jan-2000, vol. 5, no. 1 by Bruce Winter
Home Automation with MisterHouse
Bruce Winter
Home Automation: The X10 Nitty-Gritty [Article, Perl] The Perl Journal 01-Jan-2000, vol. 5, no. 1 by Bill Birthisel
Home Automation: The X10 Nitty-Gritty
Bill Birthisel
A Day in the Life of comp.lang.perl.misc [Article, Perl] The Perl Journal 01-Jan-2000, vol. 5, no. 1 by Clinton Pierce
A Day in the Life of comp.lang.perl.misc
Clinton Pierce
Perl and Morphology [Morphology, Article, Perl] The Perl Journal 01-Jan-2000, vol. 5, no. 1 by Khurshid Ahmad, Duncan C White
Perl and Morphology
Khurshid Ahmad and Duncan C White
Tray Calendar [Date, Time, System Tray, Article, Visual C++] www.codeproject.com 01-Jan-2000 by Chris Maunder
Tray Calendar
Chris Maunder
A simple app that places a date in the System Tray
MacPerl: There's More than One Way to Do it [MacPerl, awk, shell, Article, Visual C++] www.perlmonth.com 01-Jan-2000 by Vicki Brown
MacPerl: There's More than One Way to Do it
A friend had been telling me about Perl for 5 years or more. Given that
awk and shell did everything I needed (or so I thought :-), I had been
listening with only half an ear. But now, awk and shell weren't readily
available on my desktop. I had heard that there was a Macintosh port of Perl.
Learning Perl could do my resume no harm. Perhaps Perl was the answer.
Server Setup [Server, Dynamic Web Page, Article, Visual C++] www.perlmonth.com 01-Jan-2000 by Paul Vining
Server Setup
This column will contain approaches and tips to create Dynamic Web
Pages. I will provide snippets of code and tell about my approaches to various
problems that I have encountered. If you choose to use different tools on your
server, my explanations should give you enough information to go on. Since this
is the first column, I will start off by explaining how to get to where I
started off. Everything that I will discuss will work on both WinXX and linux
platforms.
Learning From Docs [Article, Visual C++] www.perlmonth.com 01-Jan-2000 by Dave Cross
Learning From Docs
If you're reading this edition of PerlMonth then it's a fair bet that
you are already aware of Perl's usefulness, flexibility and just all-round
coolness. It is, however, a little more likely that you are unaware that within
its distribution, Perl contains what is probably the best set of free
documentation for any software currently available. In this article I want to
introduce those of you who are less familar with the Perl documentation to the
huge amount of information that it contains and how it can almost certainly
make your coding life easier.
Parsing Command Line Options with GetOpt:: [Parsing, Command Line, GetOpt, Article, Visual C++] www.perlmonth.com 01-Jan-2000 by Steven McDougall
Parsing Command Line Options with GetOpt::
Parsing the command line is a problem. The problem isn't that it is so
hard, but rather that it is so easy: for many programs, it can be done in under
20 lines of code. Because parsing the command line seems easy, it is often not
identified as a distinct function of the program. It never gets a functional
specification, or a design, or even the considered attention of the programmer.
This leads to many bad things. Steven shows you how to avoid them.
MacPerl Oddities: if ($^O eq 'MacOS') [MacPerl, Article, Visual C++] www.perlmonth.com 01-Feb-2000 by Vicki Brown
MacPerl Oddities: if ($^O eq 'MacOS')
In many ways, MacPerl is no different from "regular" (that is, Unix)
Perl. Much of the functionality you would expect to find is there. Most of the
books that are available for Perl apply to MacPerl; many of the available
scripts run in both environments. In short, MacPerl is "real" Perl and it is
quite possible to write scripts which will function in both Mac and Unix
environments. Understanding the differences may also help you to write programs
that are more portable to other platforms. (After all, there's that "Redmond
operating system" that isn't Unix or Linux either :-)
Creating Dynamic Pages With Embperl [Dynamic Page, Embperl, Article, Visual C++] www.perlmonth.com 01-Feb-2000 by Paul Vining
Creating Dynamic Pages With Embperl
Let's say that you just revamped a website and you have the most
amazing home page that uses all the latest technologies, but you want to allow
older browsers to still see the older version of the site. You could use
javascript and basically generate the page that the browser needs. This would
solve the problem but it could get real messy depending on the complexity of
the site. The cleanest and easiest to maintain solution is to use Embperl.
Modules, References, Data Structures and Objects [Module, Reference, Data Structure, Object, Article, Visual C++] www.perlmonth.com 01-Feb-2000 by Dave Cross
Modules, References, Data Structures and Objects
In last month's column I gave you a brief overview of the absolutely
essential parts of the Perl documentation set. This month I am going to go a
little deeper into Perl and discuss the parts of the documentation that cover
modules, references, and complex data structures. At the end I'll also touch on
Perl objects. There are less files to cover this month so I'll be able to go
into a little more detail on each one.
Finding your files with File::Find [File::Find, Article, Visual C++] www.perlmonth.com 01-Feb-2000 by Steven McDougall
Finding your files with File::Find
Learn the uses of File::Find. Learn how to operate on some files in a
hierarchy but not others. Of course you can use a command like find(1), but you
will have to tackle the drawbacks that accompany find(1). Perl is an obvious
language for writing such a program, and once you start coding Perl, you may
wonder if you really need find(1) at all. After all, Perl supports recursion.
How hard could it be?
An application with Perl/Tk: tkgnuplot [Perl/Tk, GUI, gnuplot, Article, Visual C++] www.perlmonth.com 01-Feb-2000 by Slaven Rezic
An application with Perl/Tk: tkgnuplot
After Stephen O. Lidie's introduction to Perl/Tk in the previous issue
of PerlMonth, how about a simple and small application for this issue. We will
explore coding a GUI wrapper for gnuplot. So here we go. The first version of
tkgnuplot is very simple. It only offers an entry field to input the function
to plot and two buttons for starting the plot and quitting the program. So here
it is:
What is mod_perl? [mod_perl, Apache, CGI, Article, Visual C++] www.perlmonth.com 01-Feb-2000 by Stas Bekman
What is mod_perl?
The Apache/Perl integration project brings together the full power of
the Perl programming language and the Apache HTTP server. With mod_perl it is
possible to write Apache modules entirely in Perl, this lets you easily do
things that are more difficult or impossible in regular CGI programs, such as
running sub requests for example. In addition, the persistent interpreter
embedded in the server saves the overhead of starting an external perl
interpreter, the penalty of Perl start-up time. Another important feature is
code caching, the modules and scripts are being loaded and compiled only once,
then for the rest of the server's life the scripts are being served from the
cache, thus server spends its time only to run the already loaded and compiled
code, which is very fast.
Perl: It's not just for Unix anymore [Unix, Article, Visual C++] www.perlmonth.com 01-Mar-2000 by Vicki Brown
Perl: It's not just for Unix anymore
Most Perl programming is done on Unix systems. This isn't all that
surprising; Perl originated in the Unix community and draws many of its
features from Unix tools such as awk, sed, and the Bourne shell. However, what
is perhaps more surprising is how well Perl works on systems that bear little
resemblance to Unix, such as Mac OS.
Using Databases with Embperl [Database, Embperl, Internet, MySQL, DBI/DBD, Article, Visual C++] www.perlmonth.com 01-Mar-2000 by Paul Vining
Using Databases with Embperl
Almost every major site on the Internet today uses some form of
database for content. I will discuss how to implement database content using
Embperl. I have chosen MySQL as a database for its speed. I will be using
DBI/DBD, so this solution is easily ported to other databases if you have any
preference.
Writing Plain Old Documentation [Plain Old Documentation, POD, Article, Visual C++] www.perlmonth.com 01-Mar-2000 by Dave Cross
Writing Plain Old Documentation
As I've mentioned in passing in previous columns, Perl documentation is
usually written using Plain Old Documentation (or POD). POD is a simple markup
language that aims to make it a simple as possible for programmers to add
documentation to their programs and modules. As you'd expect, the standard Perl
documentation set contains a file that discusses POD in some detail. If you
want to jump straight into that, try typing . . .
Representing Sets in Perl [Set, Article, Visual C++] www.perlmonth.com 01-Mar-2000 by Steven McDougall
Representing Sets in Perl
Mathematicians describe sets; programmers have to implement them. To
implement a set, we have to find a way to represent it on a computer, and then
write code to carry out set operations on that representation. Different
representations may be more or less difficult to operate on, be well or poorly
suited to a given universe, and provide different performance characteristics.
Perl/Tk Menus
Menus are a very common element in GUIs. There are some ways for
creating menus in Perl/Tk, which probably caused some confusion, so I will try
to clarify this a little. This article will show how to create menus with the
old way, the new way, and the Perlish way.
mod_perl Strategy and Implementation - Part 1 [mod_perl, Article, Visual C++] www.perlmonth.com 01-Mar-2000 by Stas Bekman
mod_perl Strategy and Implementation - Part 1
The article starts with an overvi