From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,b8bbbb20e001f1b1,start X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!postnews.google.com!o13g2000cwo.googlegroups.com!not-for-mail From: "Steve" Newsgroups: comp.lang.ada Subject: Pointers, C, Win32 API Date: 19 Apr 2005 16:13:38 -0700 Organization: http://groups.google.com Message-ID: <1113952418.548084.275020@o13g2000cwo.googlegroups.com> NNTP-Posting-Host: 62.172.111.131 Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" X-Trace: posting.google.com 1113952423 5770 127.0.0.1 (19 Apr 2005 23:13:43 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Tue, 19 Apr 2005 23:13:43 +0000 (UTC) User-Agent: G2/0.2 Complaints-To: groups-abuse@google.com Injection-Info: o13g2000cwo.googlegroups.com; posting-host=62.172.111.131; posting-account=aq96rQ0AAADdufZMZ78LEbcV0nHAO2hV Xref: g2news1.google.com comp.lang.ada:10586 Date: 2005-04-19T16:13:38-07:00 List-Id: Hi, I am fairly new to ADA and have a query. I am writing a program in ADA to monitor a directory for any changes using a notification API. MSDN Samples have a solution called FWATCH and I am basing my code on this. I understand the C code but I am having problems converting it to ADA. Firstly, the C code: // this is the all purpose structure that contains // the interesting directory information and provides // the input buffer that is filled with file change data typedef struct _DIRECTORY_INFO { HANDLE hDir; TCHAR lpszDirName[MAX_PATH]; CHAR lpBuffer[MAX_BUFFER]; DWORD dwBufLength; OVERLAPPED Overlapped; } DIRECTORY_INFO, *PDIRECTORY_INFO, *LPDIRECTORY_INFO; DIRECTORY_INFO DirInfo; ... // Set up a key(directory info) hCompPort=CreateIoCompletionPort( DirInfo.hDir, hCompPort, (DWORD) &DirInfo, 0); // Start watching the directory of interest ReadDirectoryChangesW( DirInfo.hDir, DirInfo.lpBuffer, MAX_BUFFER, TRUE, FILE_NOTIFY_CHANGE_LAST_WRITE, &DirInfo.dwBufLength, &DirInfo.Overlapped, NULL); ---------------------------------------- Great, all is well. Now here is my attempt at the ADA version: type DIRECTORY_INFO_T is record hDir : Win32.Winnt.HANDLE; lpszDirName : Win32.TCHAR; lpBuffer : Win32.CHAR; dwBufLength : Win32.DWORD; lpOverlapped : Win32.Winbase.LPOVERLAPPED; end record; DirInfo : DIRECTORY_INFO_T; ... // Set up a key(directory info) hCompPort := Winbase.CreateIoCompletionPort( FileHandle => DirInfo.hDir, ExistingCompletionPort => hCompPort, CompletionKey => ?????, NumberOfConcurrentThreads => 0); In ADA how do I do what the 'C' example is doing: ---> (DWORD) &DirInfo, Cheers Steve