294 lines
4.6 KiB
C++
294 lines
4.6 KiB
C++
/*++
|
|
|
|
Copyright (C) Microsoft Corporation, 1996 - 1997
|
|
All rights reserved.
|
|
|
|
Module Name:
|
|
|
|
prtshare.hxx
|
|
|
|
Abstract:
|
|
|
|
Printer Share header
|
|
|
|
Author:
|
|
|
|
Steve Kiraly (SteveKi) 17-Mar-1996
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
#ifndef _PRTSHARE_HXX
|
|
#define _PRTSHARE_HXX
|
|
|
|
/********************************************************************
|
|
|
|
Printer Printer class
|
|
|
|
********************************************************************/
|
|
|
|
class TPrtPrinter {
|
|
|
|
SIGNATURE( 'ptpr' )
|
|
SAFE_NEW
|
|
|
|
public:
|
|
|
|
TPrtPrinter::
|
|
TPrtPrinter(
|
|
IN LPCTSTR pszServerName
|
|
);
|
|
|
|
TPrtPrinter::
|
|
~TPrtPrinter(
|
|
VOID
|
|
);
|
|
|
|
BOOL
|
|
TPrtPrinter::
|
|
bValid(
|
|
VOID
|
|
) const;
|
|
|
|
BOOL
|
|
TPrtPrinter::
|
|
bRefresh(
|
|
VOID
|
|
);
|
|
|
|
BOOL
|
|
TPrtPrinter::
|
|
bIsValidShareNameForThisPrinter(
|
|
IN LPCTSTR pszShareName,
|
|
IN LPCTSTR pszPrinterName = NULL
|
|
) const;
|
|
|
|
#if DBG
|
|
|
|
VOID
|
|
TPrtPrinter::
|
|
vPrint(
|
|
VOID
|
|
) const;
|
|
|
|
#endif
|
|
|
|
|
|
private:
|
|
|
|
//
|
|
// Copying and assignment are not defined.
|
|
//
|
|
TPrtPrinter::
|
|
TPrtPrinter(
|
|
const TPrtPrinter &
|
|
);
|
|
|
|
TPrtPrinter &
|
|
TPrtPrinter::
|
|
operator =(
|
|
const TPrtPrinter &
|
|
);
|
|
|
|
BOOL
|
|
TPrtPrinter::
|
|
bGetEnumData(
|
|
VOID
|
|
);
|
|
|
|
BOOL _bValid;
|
|
PRINTER_INFO_2 *_pPrinterInfo2;
|
|
DWORD _cPrinterInfo2;
|
|
TString _strServerName;
|
|
|
|
};
|
|
|
|
|
|
/********************************************************************
|
|
|
|
Printer Share class
|
|
|
|
********************************************************************/
|
|
|
|
class TPrtShare {
|
|
|
|
SIGNATURE( 'ptsh' )
|
|
SAFE_NEW
|
|
|
|
public:
|
|
|
|
enum tStatus {
|
|
kSuccess,
|
|
kInvalidLength,
|
|
kInvalidDosFormat,
|
|
kInvalidChar,
|
|
};
|
|
|
|
TPrtShare::
|
|
TPrtShare(
|
|
LPCTSTR pszServerName
|
|
);
|
|
|
|
TPrtShare::
|
|
~TPrtShare(
|
|
VOID
|
|
);
|
|
|
|
BOOL
|
|
TPrtShare::
|
|
bValid(
|
|
VOID
|
|
) const;
|
|
|
|
BOOL
|
|
TPrtShare::
|
|
bRefresh(
|
|
VOID
|
|
);
|
|
|
|
BOOL
|
|
TPrtShare::
|
|
bNewShareName(
|
|
IN TString &strShareName,
|
|
IN const TString &strBaseShareName
|
|
) const;
|
|
|
|
BOOL
|
|
TPrtShare::
|
|
bIsValidShareNameForThisPrinter(
|
|
IN LPCTSTR pszShareName,
|
|
IN LPCTSTR pszPrinterName = NULL
|
|
) const;
|
|
|
|
INT
|
|
TPrtShare::
|
|
iIsValidDosShare(
|
|
LPCTSTR pszShareName
|
|
) const;
|
|
|
|
INT
|
|
TPrtShare::
|
|
iIsValidNtShare(
|
|
LPCTSTR pszShareName
|
|
) const;
|
|
|
|
static
|
|
BOOL
|
|
TPrtShare::
|
|
bNetworkInstalled(
|
|
VOID
|
|
);
|
|
|
|
#if DBG
|
|
|
|
VOID
|
|
TPrtShare::
|
|
vPrint(
|
|
VOID
|
|
) const;
|
|
#endif
|
|
|
|
private:
|
|
|
|
//
|
|
// Copying and assignment are not defined.
|
|
//
|
|
TPrtShare::
|
|
TPrtShare(
|
|
const TPrtShare &
|
|
);
|
|
|
|
TPrtShare &
|
|
TPrtShare::
|
|
operator =(
|
|
const TPrtShare &
|
|
);
|
|
|
|
BOOL
|
|
TPrtShare::
|
|
bIsShareNameUsedW(
|
|
IN PCWSTR pszShareName
|
|
) const;
|
|
|
|
BOOL
|
|
TPrtShare::
|
|
bIsShareNameUsedA(
|
|
IN PCSTR pszShareName
|
|
) const;
|
|
|
|
BOOL
|
|
TPrtShare::
|
|
bGetEnumData(
|
|
VOID
|
|
);
|
|
|
|
VOID
|
|
TPrtShare::
|
|
vDestroy(
|
|
VOID
|
|
);
|
|
|
|
BOOL _bValid;
|
|
LPBYTE _pNetResBuf;
|
|
DWORD _dwNetResCount;
|
|
TString _strServerName;
|
|
TPrtPrinter _PrtPrinter;
|
|
static LPCTSTR _gszIllegalDosChars;
|
|
static LPCTSTR _gszIllegalNtChars;
|
|
|
|
BOOL
|
|
TPrtShare::
|
|
bLoad(
|
|
VOID
|
|
);
|
|
|
|
VOID
|
|
TPrtShare::
|
|
vUnload(
|
|
VOID
|
|
);
|
|
|
|
typedef
|
|
NET_API_STATUS
|
|
(NET_API_FUNCTION *PF_NETSHAREENUM)(
|
|
IN LPTSTR servername,
|
|
IN DWORD level,
|
|
OUT LPBYTE *bufptr,
|
|
IN DWORD prefmaxlen,
|
|
OUT LPDWORD entriesread,
|
|
OUT LPDWORD totalentries,
|
|
IN OUT LPDWORD resume_handle
|
|
);
|
|
|
|
typedef
|
|
NET_API_STATUS
|
|
(NET_API_FUNCTION *PF_NETAPIBUFFERFREE)(
|
|
IN LPVOID Buffer
|
|
);
|
|
|
|
#define NETAPI32_LIB "netapi32.dll"
|
|
#define NETSHAREENUM "NetShareEnum"
|
|
#define NETAPIBUFFERFREE "NetApiBufferFree"
|
|
|
|
TLibrary *_pLibrary;
|
|
PF_NETSHAREENUM _pfNetShareEnum;
|
|
PF_NETAPIBUFFERFREE _pfNetApiBufferFree;
|
|
|
|
};
|
|
|
|
/********************************************************************
|
|
|
|
Global functions.
|
|
|
|
********************************************************************/
|
|
|
|
BOOL
|
|
bCreateShareName(
|
|
IN LPCTSTR pszServer,
|
|
IN LPCTSTR pszPrinter,
|
|
IN OUT LPTSTR pszBuffer,
|
|
IN OUT PDWORD pcbSize
|
|
);
|
|
|
|
#endif
|