| TIP: Click on subject to list as thread! | ANSI |
| echo: | |
|---|---|
| to: | |
| from: | |
| date: | |
| 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™.