/* * declaration of client library functions for * remote checksum server. * * statically linked to the calling program. */ /* -- functions defined in library ------------------------------- */ /* connect to the remote server */ HANDLE ss_connect(PSTR server); /* send a request */ BOOL ss_sendrequest(HANDLE hpipe, long lCode, PSTR szPath, int lenpath, DWORD dwFlags); /* receive a standard response block */ int ss_getresponse(HANDLE hpipe, PSSNEWRESP presp); /* cleanly close a correctly-finished conversation */ void ss_terminate(HANDLE hpipe); /* send a SSREQ_UNC */ BOOL ss_sendunc(HANDLE hpipe, PSTR password, PSTR server); // I think this is obsolete - let's see if it still links without error. // if so, please delete me! // /* return a checksum for a file */ // ULONG ss_checksum(HANDLE hFile); /* return a checksum for a block of data */ ULONG ss_checksum_block(PSTR block, int size); /* checksum a single file using the checksum server */ BOOL ss_checksum_remote( HANDLE hpipe, PSTR path, ULONG * psum, FILETIME * pft, LONG * pSize, DWORD *pAttr ); /* Call this before a sequence of ss_bulkcopy calls. This should be considerably faster than calls to ss_copy_reliable. Call ss_endcopy afterwards (the copying is not complete until endcopy has completed. */ BOOL ss_startcopy(PSTR server, PSTR uncname, PSTR password); /* negative retcode = number of bad files, else number of files copied (none bad) */ int ss_endcopy(void); /* * request to copy a file * * returns TRUE if it succeeded or FALSE if the connection was lost * TRUE only means the REQUEST was sent. */ BOOL ss_bulkcopy(PSTR server, PSTR remotepath, PSTR localpath, PSTR uncname, PSTR password); /* * reliably copy a file (repeat (upto N times) until checksums match) * unc connection is made first if uncname and password are non-null */ BOOL ss_copy_reliable(PSTR server, PSTR remotepath, PSTR localpath, PSTR uncname, PSTR password); /* copy one file using checksum server */ BOOL ss_copy_file(HANDLE hpipe, PSTR remotepath, PSTR localpath); VOID ss_setretries(int retries); /* get a block of unspecified type */ int ss_getblock(HANDLE hpipe, PSTR block, int blocksize); /* --- functions called from library - defined in calling program ------ */ /* * print a fatal error; allow 'cancel' button if fCancel TRUE. Returns * TRUE for OK. */ BOOL APIENTRY Trace_Error(HWND hwnd, LPSTR str, BOOL fCancel); /* * print a status report on non-fatal error (eg 'retrying...'). * can be no-op if status not desired. */ void Trace_Status(LPSTR str); /* * client app must define this (can be set to NULL - used for MessageBox) */ extern HWND hwndClient;