TIP: Click on subject to list as thread! ANSI
echo: os2prog
to: Morten Mertner
from: Rinat Sadretdinow
date: 1997-03-13 18:05:48
subject: Undocumented API`s

Hello Morten!

Wednesday March 12 1997 04:29, Morten Mertner wrote to All:

 MM> Does anyone have information to complement the following API's, which
 MM> are not documented anywhere (but still supported, although 16-bit).
 MM> They correspond to the
 MM> Win32 DosFind(First/Next/Close)ChangeNotification API's in Windows 95
 MM> and NT.

-------------------------------8<------------------------------------
 Area : OS2PROG
 Date : Apr 24 '95, 09:01
 From : Peter Fitzsimmons
 To   : Henrik Vendelbo
 Subj : DosNotify..

 HV> Does anybody know why the DosNotify.. functions are
 HV> ommitted from the 32 bit API.

(Fyi: they are DosFindNotify...(), not just DosNotify...()).

I can't even find these in my 1.x header files.

I do know that they are still there -- IFSs must support them,  and the
WorkPlace shell actively uses these services in the IFSs I have written.

Try prototyping them yourself and using them.

[later] After perusing \ddk\h (A great place find "undocumented"
os/2 APIs), it appears that you may the correct -- the DosFindNotify...()
apis no long exist as 32bit apis (but you can still import the 16bit ones
if if like).

They appear to have been replaced by something better (which probably uses the
FindNotify IFS services underneath).  You'll have to figure these out on your
own (please report back here);but they don't look too hard:

 #pragma pack(1)

 typedef struct _CNPATH {      /* CHANGENOTIFYPATH */
     ULONG   oNextEntryOffset;
     ULONG   wFlags;
     USHORT  cbName;
     CHAR    szName[1];
 } CNPATH;
 typedef CNPATH *PCNPATH;

 typedef struct _CNINFO {      /* CHANGENOTIFYINFO */
     ULONG   oNextEntryOffset;
     CHAR    bAction;
     USHORT  cbName;
     CHAR    szName[1];
 } CNINFO;
 typedef CNINFO *PCNINFO;

 #pragma pack()

 // Equates for ChangeNotifyInfo baction field
 #define             RCNF_FILE_ADDED        0x0001
 #define             RCNF_FILE_DELETED      0x0002
 #define             RCNF_DIR_ADDED         0x0003
 #define             RCNF_DIR_DELETED       0x0004
 #define             RCNF_MOVED_IN          0x0005
 #define             RCNF_MOVED_OUT         0x0006
 #define             RCNF_CHANGED           0x0007
 #define             RCNF_OLDNAME           0x0008
 #define             RCNF_NEWNAME           0x0009
 #define             RCNF_DEVICE_ATTACHED   0x000A
 #define             RCNF_DEVICE_DETACHED   0x000B

 APIRET  APIENTRY DosOpenChangeNotify(PCNPATH PathBuf,
                                      ULONG LogSize, PHDIR hdir,
                                      ULONG ulReserved);
 APIRET  APIENTRY DosResetChangeNotify(PCNINFO LogBuf, ULONG BufferSize,
                                       PULONG LogCount, HDIR hdir);
 APIRET  APIENTRY DosCloseChangeNotify(HDIR hdir);
-------------------------------8<------------------------------------

The only thing I should say is that you won't be able to use this API if
you run PMSHELL. Unfortunately it's impossible to open more than one notify
on the same directory (DosOpenChangeNotify returns ERR_ACCESS_DENIED in
such case). And PMSHELL opens notify on all drives and directories passing
NULL as PCNPATH in the call to DosOpenChangeNotify. If you have the sources
of PMWP.DLL or just disassemble it :-) you may see the way PMWP does it in
the function WheelWatcher. So you should not run PMSHELL to have these
functions work for you. I don't know why IBM guys did it this way.

Bye!
Rinat Sadretdinow                                              [Team OS/2]

---
* Origin: -= Thunder Bird =- +7 095 947 1209 10:00pm-08:00am (2:5020/620)
SEEN-BY: 50/99 54/99 270/101 620/243 625/160 711/401 413 430 934 712/311 407
SEEN-BY: 712/505 506 517 623 624 704 713/317 800/1
@PATH: 5020/620 509 443 225 79 5100/8 396/1 270/101 712/624 711/934

SOURCE: echomail via fidonet.ozzmosis.com

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.