Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Adam b4a8d373d8
Create README.md
5 years ago
..
alpha initial commit 5 years ago
cfm40 initial commit 5 years ago
cfm40d initial commit 5 years ago
cfm40ds initial commit 5 years ago
cfm40s initial commit 5 years ago
cfm40u initial commit 5 years ago
cfm40ud initial commit 5 years ago
cfm40uds initial commit 5 years ago
cfm40us initial commit 5 years ago
cfmo40d initial commit 5 years ago
cfmo40ud initial commit 5 years ago
i386 initial commit 5 years ago
include initial commit 5 years ago
l.chs initial commit 5 years ago
l.deu initial commit 5 years ago
l.esp initial commit 5 years ago
l.fra initial commit 5 years ago
l.ita initial commit 5 years ago
l.jpn initial commit 5 years ago
l.kor initial commit 5 years ago
m68k initial commit 5 years ago
mips initial commit 5 years ago
mppc initial commit 5 years ago
ppc initial commit 5 years ago
uuid2 initial commit 5 years ago
afx.ini initial commit 5 years ago
afxabort.cpp initial commit 5 years ago
afxasert.cpp initial commit 5 years ago
afxcrit.cpp initial commit 5 years ago
afxdbcs.cpp initial commit 5 years ago
afximpl.h initial commit 5 years ago
afxinl1.cpp initial commit 5 years ago
afxinl2.cpp initial commit 5 years ago
afxinl3.cpp initial commit 5 years ago
afxmem.cpp initial commit 5 years ago
afxstate.cpp initial commit 5 years ago
afxtls.cpp initial commit 5 years ago
afxtrace.cpp initial commit 5 years ago
app3d.cpp initial commit 5 years ago
app3ds.cpp initial commit 5 years ago
appcore.cpp initial commit 5 years ago
appdlg.cpp initial commit 5 years ago
appgray.cpp initial commit 5 years ago
apphelp.cpp initial commit 5 years ago
apphelpx.cpp initial commit 5 years ago
appinit.cpp initial commit 5 years ago
appmodul.cpp initial commit 5 years ago
appprnt.cpp initial commit 5 years ago
appterm.cpp initial commit 5 years ago
appui.cpp initial commit 5 years ago
appui2.cpp initial commit 5 years ago
appui3.cpp initial commit 5 years ago
arccore.cpp initial commit 5 years ago
arcex.cpp initial commit 5 years ago
arcobj.cpp initial commit 5 years ago
array_b.cpp initial commit 5 years ago
array_d.cpp initial commit 5 years ago
array_o.cpp initial commit 5 years ago
array_p.cpp initial commit 5 years ago
array_s.cpp initial commit 5 years ago
array_u.cpp initial commit 5 years ago
array_w.cpp initial commit 5 years ago
attribut.r initial commit 5 years ago
auxdata.cpp initial commit 5 years ago
barcore.cpp initial commit 5 years ago
bardlg.cpp initial commit 5 years ago
bardock.cpp initial commit 5 years ago
barstat.cpp initial commit 5 years ago
bartool.cpp initial commit 5 years ago
build_.h initial commit 5 years ago
ccdata.cpp initial commit 5 years ago
cmdtarg.cpp initial commit 5 years ago
commimpl.h initial commit 5 years ago
ctlcache.cpp initial commit 5 years ago
ctlconn.cpp initial commit 5 years ago
ctlcore.cpp initial commit 5 years ago
ctldata.cpp initial commit 5 years ago
ctlevent.cpp initial commit 5 years ago
ctlfont.cpp initial commit 5 years ago
ctlframe.cpp initial commit 5 years ago
ctlimpl.h initial commit 5 years ago
ctlinl.cpp initial commit 5 years ago
ctlinplc.cpp initial commit 5 years ago
ctlintl.cpp initial commit 5 years ago
ctllic.cpp initial commit 5 years ago
ctlmodul.cpp initial commit 5 years ago
ctlobj.cpp initial commit 5 years ago
ctlpbag.cpp initial commit 5 years ago
ctlpict.cpp initial commit 5 years ago
ctlppg.cpp initial commit 5 years ago
ctlprop.cpp initial commit 5 years ago
ctlpropx.cpp initial commit 5 years ago
ctlpset.cpp initial commit 5 years ago
ctlpstg.cpp initial commit 5 years ago
ctlpstm.cpp initial commit 5 years ago
ctlrefl.cpp initial commit 5 years ago
ctlreg.cpp initial commit 5 years ago
ctltrack.cpp initial commit 5 years ago
ctlview.cpp initial commit 5 years ago
daocore.cpp initial commit 5 years ago
daodfx.cpp initial commit 5 years ago
daoimpl.h initial commit 5 years ago
daoview.cpp initial commit 5 years ago
dbcore.cpp initial commit 5 years ago
dbflt.cpp initial commit 5 years ago
dbimpl.h initial commit 5 years ago
dblong.cpp initial commit 5 years ago
dbrfx.cpp initial commit 5 years ago
dbview.cpp initial commit 5 years ago
dcmeta.cpp initial commit 5 years ago
dcprev.cpp initial commit 5 years ago
dirs initial commit 5 years ago
dispimpl.h initial commit 5 years ago
dlgclr.cpp initial commit 5 years ago
dlgcomm.cpp initial commit 5 years ago
dlgcore.cpp initial commit 5 years ago
dlgdata.cpp initial commit 5 years ago
dlgfile.cpp initial commit 5 years ago
dlgfloat.cpp initial commit 5 years ago
dlgfnt.cpp initial commit 5 years ago
dlgfr.cpp initial commit 5 years ago
dlgprnt.cpp initial commit 5 years ago
dlgprop.cpp initial commit 5 years ago
dlgtempl.cpp initial commit 5 years ago
dlldb.cpp initial commit 5 years ago
dllinit.cpp initial commit 5 years ago
dllmodul.cpp initial commit 5 years ago
dllnet.cpp initial commit 5 years ago
dllole.cpp initial commit 5 years ago
doccore.cpp initial commit 5 years ago
dockcont.cpp initial commit 5 years ago
dockstat.cpp initial commit 5 years ago
docmapi.cpp initial commit 5 years ago
docmgr.cpp initial commit 5 years ago
docmulti.cpp initial commit 5 years ago
docsingl.cpp initial commit 5 years ago
doctempl.cpp initial commit 5 years ago
dumpcont.cpp initial commit 5 years ago
dumpflt.cpp initial commit 5 years ago
dumpinit.cpp initial commit 5 years ago
dumpout.cpp initial commit 5 years ago
elements.h initial commit 5 years ago
except.cpp initial commit 5 years ago
filecore.cpp initial commit 5 years ago
filelist.cpp initial commit 5 years ago
filemem.cpp initial commit 5 years ago
fileshrd.cpp initial commit 5 years ago
filest.cpp initial commit 5 years ago
filetxt.cpp initial commit 5 years ago
filex.cpp initial commit 5 years ago
indicate.rc initial commit 5 years ago
inetcall.cpp initial commit 5 years ago
isapi.cpp initial commit 5 years ago
list_o.cpp initial commit 5 years ago
list_p.cpp initial commit 5 years ago
list_s.cpp initial commit 5 years ago
makefile initial commit 5 years ago
makefile.inc initial commit 5 years ago
map_pp.cpp initial commit 5 years ago
map_pw.cpp initial commit 5 years ago
map_so.cpp initial commit 5 years ago
map_sp.cpp initial commit 5 years ago
map_ss.cpp initial commit 5 years ago
map_wo.cpp initial commit 5 years ago
map_wp.cpp initial commit 5 years ago
mfcdb.mak initial commit 5 years ago
mfcdb.rc initial commit 5 years ago
mfcdll.clw initial commit 5 years ago
mfcdll.mak initial commit 5 years ago
mfcdll.r initial commit 5 years ago
mfcdll.rc initial commit 5 years ago
mfcintl.mak initial commit 5 years ago
mfcintl.rc initial commit 5 years ago
mfcisapi.mak initial commit 5 years ago
mfcnet.mak initial commit 5 years ago
mfcnet.rc initial commit 5 years ago
mfcole.mak initial commit 5 years ago
mfcole.rc initial commit 5 years ago
mtcore.cpp initial commit 5 years ago
mtex.cpp initial commit 5 years ago
nolib.cpp initial commit 5 years ago
objcore.cpp initial commit 5 years ago
occcont.cpp initial commit 5 years ago
occddx.cpp initial commit 5 years ago
occddxf.cpp initial commit 5 years ago
occdlg.cpp initial commit 5 years ago
occevent.cpp initial commit 5 years ago
occimpl.h initial commit 5 years ago
occlock.cpp initial commit 5 years ago
occmgr.cpp initial commit 5 years ago
occsite.cpp initial commit 5 years ago
olebar.cpp initial commit 5 years ago
olecall.cpp initial commit 5 years ago
olecli1.cpp initial commit 5 years ago
olecli2.cpp initial commit 5 years ago
olecli3.cpp initial commit 5 years ago
oleconn.cpp initial commit 5 years ago
oledata.cpp initial commit 5 years ago
oledisp1.cpp initial commit 5 years ago
oledisp2.cpp initial commit 5 years ago
oledlgs1.cpp initial commit 5 years ago
oledlgs2.cpp initial commit 5 years ago
oledlgs3.cpp initial commit 5 years ago
oledll.cpp initial commit 5 years ago
oledobj1.cpp initial commit 5 years ago
oledobj2.cpp initial commit 5 years ago
oledoc1.cpp initial commit 5 years ago
oledoc2.cpp initial commit 5 years ago
oledrop1.cpp initial commit 5 years ago
oledrop2.cpp initial commit 5 years ago
oleenum.cpp initial commit 5 years ago
oleexp.cpp initial commit 5 years ago
olefact.cpp initial commit 5 years ago
oleimpl.h initial commit 5 years ago
oleimpl2.h initial commit 5 years ago
oleinit.cpp initial commit 5 years ago
oleipfrm.cpp initial commit 5 years ago
olelink.cpp initial commit 5 years ago
olelock.cpp initial commit 5 years ago
olemisc.cpp initial commit 5 years ago
olemsgf.cpp initial commit 5 years ago
olepro32.cpp initial commit 5 years ago
olepset.cpp initial commit 5 years ago
olereg.cpp initial commit 5 years ago
olestrm.cpp initial commit 5 years ago
olesvr1.cpp initial commit 5 years ago
olesvr2.cpp initial commit 5 years ago
oletsvr.cpp initial commit 5 years ago
oletyplb.cpp initial commit 5 years ago
oleui1.cpp initial commit 5 years ago
oleui2.cpp initial commit 5 years ago
oleunk.cpp initial commit 5 years ago
olevar.cpp initial commit 5 years ago
oleverb.cpp initial commit 5 years ago
pchmark.bin initial commit 5 years ago
plex.cpp initial commit 5 years ago
ppgcolor.cpp initial commit 5 years ago
ppgfont.cpp initial commit 5 years ago
ppgpict.cpp initial commit 5 years ago
ppgstock.cpp initial commit 5 years ago
prompts.rc initial commit 5 years ago
readme.txt initial commit 5 years ago
sockcore.cpp initial commit 5 years ago
sockimpl.h initial commit 5 years ago
sources.inc initial commit 5 years ago
static.inc initial commit 5 years ago
stdafx.cpp initial commit 5 years ago
stdafx.h initial commit 5 years ago
strcore.cpp initial commit 5 years ago
strex.cpp initial commit 5 years ago
thrdcore.cpp initial commit 5 years ago
timecore.cpp initial commit 5 years ago
tooltip.cpp initial commit 5 years ago
trckrect.cpp initial commit 5 years ago
validadd.cpp initial commit 5 years ago
viewcmn.cpp initial commit 5 years ago
viewcore.cpp initial commit 5 years ago
viewedit.cpp initial commit 5 years ago
viewform.cpp initial commit 5 years ago
viewprev.cpp initial commit 5 years ago
viewprnt.cpp initial commit 5 years ago
viewrich.cpp initial commit 5 years ago
viewscrl.cpp initial commit 5 years ago
winbtn.cpp initial commit 5 years ago
wincore.cpp initial commit 5 years ago
winctrl1.cpp initial commit 5 years ago
winctrl2.cpp initial commit 5 years ago
winctrl3.cpp initial commit 5 years ago
winctrl4.cpp initial commit 5 years ago
winfrm.cpp initial commit 5 years ago
winfrm2.cpp initial commit 5 years ago
winfrmx.cpp initial commit 5 years ago
wingdi.cpp initial commit 5 years ago
wingdix.cpp initial commit 5 years ago
winhand.cpp initial commit 5 years ago
winhand_.h initial commit 5 years ago
winmain.cpp initial commit 5 years ago
winmdi.cpp initial commit 5 years ago
winmenu.cpp initial commit 5 years ago
winmini.cpp initial commit 5 years ago
winocc.cpp initial commit 5 years ago
winsplit.cpp initial commit 5 years ago
winstr.cpp initial commit 5 years ago
winutil.cpp initial commit 5 years ago

readme.txt

=======================================================================
MICROSOFT (R) FOUNDATION CLASSES
Version 4.1
Source Code ReadMe
=======================================================================

This directory contains the source code to the MFC library.

These files have been included for reference purposes, in
conjunction with the Class Library Reference manual and tutorial.

These files are compiled to form the Microsoft Foundation Classes 4.1
(MFC 4.1). The library may be built in a number of configurations,
character sets (UNICODE or ANSI), and whether or not debugging and
diagnostic aids are to be included in applications which link with
the library.

============================================
1. BUILDING A STATIC LINK LIBRARY VARIANT
============================================

The makefile provided can be used to build the static link library
variants of MFC 4.1. See section 2 for instructions on building
the shared DLL variant. The makefile can be used from either the
MS-DOS command line (in a Windows NT cmd shell) or as an External
Project file in the Microsoft Developer Studio.

To build a library in a particular configuration, use the NMAKE tool
and the makefile which is in this directory. The following arguments
can be given to NMAKE to successfully build a specific library variant.

NMAKE {DEBUG=[0|1]} {BROWSE=[0|1]} {BROWSEONLY={0|1} \
{CODEVIEW=[0|1|2]} {OBJ=path} \
{PLATFORM=INTEL|ALPHA|MIPS|PPC|M68K|MPPC} \
{UNICODE=[0|1]} \
{OPT=<CL command line switches>}

Previous versions of MFC supported MODEL and TARGET options to control the
memory model and to support DOS/CONSOLE mode targetting. These options are
no longer supported (your Win32 console application can still be linked to
the GUI MFC library, NAFXCW[D].LIB).

For example to build default model with browser information in the debug
build use the following settings:

Debug Build: NMAKE DEBUG=1 CODEVIEW=1 BROWSE=1
Release Build: NMAKE DEBUG=0

DEBUG=[0|1]
The "DEBUG" argument specifies whether or not to include diagnostic
support code for the library. This may be 0 (for no diagnostics)
or 1 (for full diagnostics).

CODEVIEW=[0|1]
The "CODEVIEW" argument specifies whether to compile the library with
CodeView information or not. You need to compile the library with
CodeView information if you want to trace into MFC code using the
Visual C++ debugger. You should also compile your application files
with the /Zi option, and link your executable with the /debug:full
and /debugtype:cv options.

Setting CODEVIEW does not affect the DEBUG argument, although the
value of the DEBUG argument does affect the default value of CODEVIEW
(discussed below). A value of 0 indicates that no CodeView
information is to be compiled into the library. A value of 1 indicates
to compile in full CodeView information for all modules of the library.

The default value depends on the setting of the DEBUG argument.
If DEBUG=1, CODEVIEW defaults to 1. If DEBUG=0, CODEVIEW defaults
to 0. The installed libraries have been built with CODEVIEW=1 for
maximum CodeView information.

UNICODE=[0|1]
The "UNICODE" argument specifies whether to create an MBCS
or UNICODE aware library. If UNICODE is set to 1, the UNICODE
variant of the specified library will be built. The default,
UNICODE=0, specifies that an MBCS aware (or ANSI) library is
to be built.

OBJ=[path]
We recommend storing .OBJ files in a separate directory so that you
may compile different versions of the MFC library concurrently.
The "OBJ" argument allows you to specify where these files are stored
during the build process. The directory specified is created and
removed automatically as required. This defaults to a combination
of the target, model, and debug status, preceded by a '$' (i.e. $NWD).

OPT=[switches]
If your library needs to be built with custom compiler switches, then
these may be included in the "OPT" argument. Note that switches need
to be separated by spaces, so when including more than one extra
compiler switch, enclose the whole OPT= argument in double-quotes.
This is an advanced feature; read the makefile and the details on each
of the switches concerned in the Microsoft C/C++ Compiler User Manual
before using this option.

Defaults
The default is:
nmake DEBUG=1 CODEVIEW=1 BROWSE=0 BROWSEONLY=0 UNICODE=0 OBJ=$NWD

To set these options from MS Developer Studio, from the Build menu choose
the Settings menu command and set them in the associated build sections.

=============================
2. BUILDING THE SHARED DLL
=============================

Building the shared DLL is very similar to the static link variants. You
must, however, use the MFCDLL.MAK which is also an External Project file.

To build the shared DLL components that contain the implementation for
OLE and ODBC use MFCOLE.MAK and MFCDB.MAK respectively. These additional
DLLs are required only if your application utilizes the database or
OLE classes.

Technical note TN033 explains in detail how to build the shared DLL and
how to build an application that uses the shared DLL.


===============================
3. AFTER BUILDING THE LIBRARY
===============================

Once the library has been built successfully, you may want to delete object
files with:

NMAKE CLEAN OBJ=[path]

Note that if you used the "OBJ" argument while building the library, specify
the same sub directory in the cleanup command.

This will remove all of the temporary .OBJ files created by building the
library, and remove the directory where they were stored.

Always perform a cleanup before building a new variant of the library,
or use different object paths for each variant. Note that the OBJ files
are only necessary during the building process.


===========================================
4. BUILDING AND USING THE BROWSE DATABASE
===========================================

A prebuilt MFC browser database is included on the Visual C++ CD-ROM.
It is located in the same directory as the MFC source files, and can be
accessed by opening <cd-drive>:\MSDEV\MFC\SRC\MFC.BSC. You may want to
build a browse database if you wish to merge the MFC browse information
with your own project or you wish to build a different browse variant than
the one provided (MFC.BSC is the browser database for NAFXCWD.LIB).
The following instructions describe how to build the browse database using
MFC's makefile and how to integrate the resulting .SBR files into your
project.

By building the library with either the BROWSE=1 or BROWSEONLY=1
options you can create the browse database files for the MFC source code.
The output browse file (.BSC) will be placed in the source directory
(this allows the browser to find the source files). The browse
database files share a common naming convention with the libraries.

Usually, it is sufficient to build only one browse database, although
you can build a browse variant for each library variant that MFC
supports. In addition, it is possible to build only the browse database,
instead of building all the object files and library file. To build
the NAFXCWD.BSC file, for example:

NMAKE DEBUG=1 BROWSEONLY=1

The output will be placed in NAFXCWD.BSC (in the MFC source directory).
In addition, all of the SBR files (the individual files, which when combined,
form the .BSC) will be preserved in the OBJ directory (in this case $NWD).
You can add these SBR files to your project's browse database, enabling you to
browse the MFC source as well as your application source code at the same time.

If you are using an external makefile, simply include the MFC SBRs in your
BSCMAKE command. For example:

BSCMAKE /o myproj.sbr myfile1.sbr myfile2.sbr \msdev\mfc\src\$nwd\*.sbr

If you are using a Visual C++ project file, you can add it to your project
settings. To do so, load your project (.MDP or .MAK) file:

- From the Build menu, choose Settings to edit your project settings
- Select the "Browse Info" tab in the settings dialog
- Choose the target you wish to add the MFC browse information
(ie. Win32 Debug or Win32 Retail)
- Add the browse files (.SBR files) to "Project Options" edit box:
\msdev\mfc\src\$nwd\*.sbr

Note: Substitute the appropriate path if you built a different variant
of the library or installed VC++ in a different directory than the
default.

Even if you are using the incremental build option of BSCMAKE (the default),
these files will not be truncated to zero length (the files are marked in a
special way to prevent the normal truncation that occurs when doing incremental
builds).

Note: The SBR files are protected from truncation by adding a special record
(PCHMARK) that bscmake uses to protect SBR files that are refered to from
pre-compiled header files (PCH). This record consists of a single byte with
the value 0x10. The PCHMARK.BIN file contains this single byte -- it is
appended to the SBR files during the build process.

You can also open the resulting browse database file directly and use it
to browse MFC source code.


======================================
5. SOURCE CODE FORMATTING CONVENTION
======================================

All MFC source code has been formatted such that leading whitespace
on a line is made up of physical tabs, while embedded whitespace is
physical spaces. MFC source code assumes that your editor is set to
display a physical tab as four blanks.

For example:

int FormatExample()
{
// Statements below should start in column 5 if tabs are set correctly
// Comment should start in column 20
/*
0 1 2
12345678901234567890
*/
int i;
i = 5; // whitespace between statement and comment is spaces

return i;

}

More information on MFC coding and commenting conventions can be found
in Technical Note #46.