// This code and information is provided "as is" without warranty of
// any kind, either expressed or implied, including but not limited to
// the implied warranties of merchantability and/or fitness for a
// particular purpose.
//
// Copyright (C) 1993-1995  Microsoft Corporation.  All Rights Reserved.
//
// Thunk compiler sample script - to demonstrate thunk scripts for
// the Microsoft Thunk Compiler.
//

enablemapdirect3216 = true;

#include "types.def"


//  
//  Locale APIs
//  
//  nwlocale.h & nwlocale.lib
//  

LPVOID  I_NWLlocaleconv(LPVOID lconvPtr)
{
}

UINT I_NWInitUnicodeTables(int countryCode, int codePage)
{
}

UINT I_NWFreeUnicodeTables()
{
}

//  
//  Misc. APIs
//  
UINT I_NWGetRequesterVersion(LPBYTE majorVersion,
                             LPBYTE minorVersion,
                             LPBYTE revision)
{
   majorVersion = output;
   minorVersion = output;
   revision     = output;
}

//  
//  Directory services APIs
//  
//  nwds*.h & nwcalls.lib
//  

DWORD I_NWDSCreateContext()
{
}

DWORD I_NWDSFreeContext(DWORD context)
{
}

UINT I_NWDSGetContext(ULONG context,
                      INT key, 
                      LPVOID lpvalue)
{
    lpvalue = output;
}

UINT I_NWDSSetContext(ULONG context, int key, LPVOID lpvalue)
{
    lpvalue = input;
}

UINT I_NWDSList(ULONG context,
                LPSTR object,
                LPDWORD iterationHandle,
                DWORD subordinates)
{
    object=input;
    iterationHandle=output;
}

UINT I_NWDSGetObjectCount(ULONG context, 
                          DWORD buf,
                          LPDWORD objectCount)
{
    objectCount=output;
}

UINT I_NWDSGetObjectName(ULONG context,
                         DWORD buf,
                         LPSTR objectName,
                         LPDWORD attrCount,
                         LPVOID objectInfo)
{
    objectName=output;
    objectInfo=output;
}

UINT  I_NWIsDSAuthenticated()
{
}

UINT I_NWDSAuthenticate(UINT    conn,
                        DWORD   optionsFlag,
                        LPVOID  sessionKey) 
{
    sessionKey= output;
}

UINT I_NWDSLogin(ULONG context,
                 DWORD optionsFlag,
                 LPSTR objectName,
                 LPSTR password,
                 DWORD validityPeriod)
{
}

UINT I_NWDSLogout(ULONG context)
{
}

UINT I_NWDSAuditGetObjectID(ULONG context,
                            LPSTR objectName,
                            LPUINT conn,
                            LPDWORD objectID)
{
   objectID = output;
}

UINT I_NWGetPreferredDSServer(LPUINT connID)
{
    connID = output;
}

UINT I_NWGetNearestDirectoryService(LPUINT connID)
{
    connID = output;
}

UINT I_NWGetNumConnections(LPWORD numConnections)
{
    numConnections=output;
}

UINT I_NWFreeConnectionSlot(UINT connID,BYTE  disconnectType)
{
}

UINT I_NWGetNextConnectionID(LPUINT connID)
{
    connID = output;
}

UINT I_NWSetPreferredDSTree(WORD length,LPSTR treeName)
{
    treeName = output;
}

UINT I_NWSetDefaultNameContext(WORD contextLength,
                               LPSTR context)
{
}

UINT I_NWGetDefaultNameContext(WORD bufferSize,LPSTR context)
{
    context = output;
}

UINT I_NWGetPreferredConnName(LPSTR preferredName,
                              LPBYTE preferredType)
{
    preferredName = output;
    preferredType = output;
}


UINT I_NWDSAbbreviateName(ULONG context,
                          LPSTR inName,
                          LPSTR abbreviatedName)
{
    abbreviatedName=output;
}

UINT I_NWDSCanonicalizeName(ULONG context,
                            LPSTR objectName,
                            LPSTR canonName)
{
    canonName=output;
}

UINT I_NWDSRemoveAllTypes(ULONG context,
                          LPSTR name,
                          LPSTR typelessName)
{
    typelessName=output;
}

UINT I_NWDSAllocBuf(UINT size, LPDWORD buf)
{
    buf=output;
}

UINT I_NWDSFreeBuf(DWORD buf)
{
}

/*
 * Bindery APIs
 *
 * nwcalls.lib , nwmisc.h, nwbindry.h
 *
 */

UINT I_NWCallsInit(DWORD in, DWORD out)
{
}

UINT I_NWGetDefaultConnectionID(LPWORD lpconn)
{
    lpconn=output;
}


UINT  I_NWVerifyObjectPassword(UINT conn,
                               LPSTR objectName,
                               WORD objectType,
                               LPSTR password)
{
}

UINT  I_NWDisallowObjectPassword(UINT conn,
                                 LPSTR objectName,
                                 WORD objectType,
                                 LPSTR disallowedPassword)
{
}

UINT  I_NWChangeObjectPassword(UINT conn,
                               LPSTR objectName,
                               WORD objectType,
                               LPSTR oldPassword,
                               LPSTR newPassword)
{
    newPassword=output;
}

UINT  I_NWWritePropertyValue(UINT conn,
                             LPSTR objectName,
                             WORD objectType,
                             LPSTR propertyName,
                             BYTE segmentNumber,
                             LPBYTE segmentData,
                             BYTE moreSegments)
{
}


UINT  I_NWAddObjectToSet(UINT conn,
                         LPSTR objectName,
                         WORD objectType,
                         LPSTR propertyName,
                         LPSTR memberName,
                         WORD memberType)
{
}


UINT  I_NWDeleteObjectFromSet(
  UINT conn,
  LPSTR objectName,
  WORD objectType,
  LPSTR propertyName,
  LPSTR memberName,
  WORD memberType)
{
}


UINT  I_NWIsObjectInSet(
  UINT conn,
  LPSTR objectName,
  WORD objectType,
  LPSTR propertyName,
  LPSTR memberName,
  WORD memberType)
{
}


UINT  I_NWGetObjectDiskSpaceLeft(
  UINT conn,
  DWORD objectID,
  LPDWORD systemElapsedTime,
  LPDWORD unusedDiskBlocks,
  LPBYTE  restrictionEnforced)
{
   systemElapsedTime=output;
   unusedDiskBlocks=output;
   restrictionEnforced=output;
}


UINT  I_NWGetBinderyAccessLevel(
  UINT conn,
  LPBYTE accessLevel,
  LPDWORD objectID)
{
   accessLevel=output;
   objectID=inout;
}


UINT  I_NWCreateProperty(
  UINT conn,
  LPSTR objectName,
  WORD objectType,
  LPSTR propertyName,
  BYTE propertyFlags,
  BYTE propertySecurity)
{
}


UINT  I_NWDeleteProperty(
  UINT conn,
  LPSTR objectName,
  WORD objectType,
  LPSTR propertyName)
{
}


UINT  I_NWChangePropertySecurity(
  UINT conn,
  LPSTR objectName,
  WORD objectType,
  LPSTR propertyName,
  BYTE newPropertySecurity)
{
}

UINT  I_NWCreateObject(
  UINT conn,
  LPSTR objectName,
  WORD objectType,
  BYTE objectFlags,
  BYTE objectSecurity)
{
}


UINT  I_NWDeleteObject(
  UINT conn,
  LPSTR objectName,
  WORD objectType)
{
}


UINT  I_NWRenameObject(
  UINT conn,
  LPSTR oldObjectName,
  LPSTR newObjectName,
  WORD objectType)
{
}


UINT  I_NWChangeObjectSecurity(
  UINT conn,
  LPSTR objectName,
  WORD objectType,
  BYTE newObjectSecurity)
{
}


UINT  I_NWOpenBindery(UINT conn)
{
}

UINT  I_NWCloseBindery(UINT conn)
{
}


UINT  I_NWScanObjectTrusteePaths(
  UINT conn,
  DWORD objectID,
  WORD volNumber,
  LPWORD sequenceNumber,
  LPBYTE accessRights,
  LPSTR dirPath)
{
   sequenceNumber=inout;
   accessRights=inout;
   dirPath=inout;
}


UINT  I_NWGetObjectEffectiveRights(
  UINT conn,
  DWORD objectID,
  BYTE    dirHandle,
  LPSTR path,
  LPWORD rightsMask)
{
   path=output;
   rightsMask=output;
}


UINT  I_NWScanObject(WORD conn,LPSTR searchName,
              WORD searchType,LPDWORD objectID,
              LPSTR objectName,LPWORD objectType,
              LPBYTE  hasPropertiesFlag,
              LPBYTE  objectFlags,
              LPBYTE  objectSecurity)
{
   searchName = input;

   objectID = inout;

   objectName = output;
   objectType = output;
   hasPropertiesFlag  = output;
   objectFlags        = output;
   objectSecurity     = output;
}


