|
|
1.1 ! root 1: /*************************************************************/ ! 2: /** **/ ! 3: /** Microsoft RPC Examples **/ ! 4: /** Dictionary Application **/ ! 5: /** Copyright(c) Microsoft Corp. 1991 **/ ! 6: /** **/ ! 7: /*************************************************************/ ! 8: ! 9: /*************************************************************************/ ! 10: /*** RecordNode / RecordTree free routines ***/ ! 11: /*************************************************************************/ ! 12: ! 13: void ! 14: RecordTreeNodeFree( ! 15: IN RecordTreeNode * node ! 16: ); ! 17: ! 18: void ! 19: RecordTreeFree( ! 20: IN RecordTreeNode * node ! 21: ); ! 22: ! 23: VDict_Status ! 24: RDict_Free_Dict( ! 25: IN OUT RDict * r_dict ! 26: ); ! 27: ! 28: void ! 29: VDict_Print( ! 30: VDict * pvd, ! 31: int indent ! 32: ); ! 33: ! 34: /*************************************************************************/ ! 35: /*** State Allocate / Free routines ***/ ! 36: /*************************************************************************/ ! 37: ! 38: DictState * allocate_state(void); ! 39: ! 40: void free_state(DictState * state); ! 41: ! 42: /*************************************************************************/ ! 43: /*** Rdict Duplicate utilities ***/ ! 44: /*************************************************************************/ ! 45: ! 46: RDict * ! 47: RDict_Duplicate( ! 48: IN RDict * src ! 49: ); ! 50: ! 51: DictState * ! 52: DictState_Duplicate( ! 53: IN DictState * src ! 54: ); ! 55: ! 56: TreeNode * ! 57: TreeNode_Duplicate( ! 58: IN TreeNode * src ! 59: ); ! 60: ! 61: TreeNode * ! 62: Tree_Duplicate( ! 63: IN TreeNode * src ! 64: ); ! 65: ! 66: /*************************************************************************/ ! 67: /*** MIDL_user_allocate / MIDL_user_free ***/ ! 68: /*************************************************************************/ ! 69: ! 70: void * ! 71: MIDL_user_allocate(unsigned long count); ! 72: ! 73: void ! 74: MIDL_user_free(void * p); ! 75: ! 76: /*************************************************************************/ ! 77: /*** Comparison and Printing routines ***/ ! 78: /*************************************************************************/ ! 79: ! 80: /* ! 81: Record definition - moved to imported file util1.idl: ! 82: ! 83: typedef struct _Record { ! 84: short key; ! 85: char* name; ! 86: } Record; ! 87: */ ! 88: ! 89: ! 90: #define DICT_SUCCESS 0 ! 91: #define DICT_ITEM_ALREADY_PRESENT 1 ! 92: #define DICT_ITEM_NOT_FOUND 2 ! 93: #define DICT_FIRST_ITEM 3 ! 94: #define DICT_LAST_ITEM 4 ! 95: #define DICT_EMPTY_DICTIONARY 5 ! 96: #define DICT_NULL_ITEM 6 ! 97: ! 98: ! 99: Record * ! 100: makeRecord( ! 101: short key, ! 102: char * name ! 103: ); ! 104: ! 105: void ! 106: freeRecord( ! 107: Record * pr ! 108: ); ! 109: ! 110: Record * ! 111: ItemDuplicate( ! 112: Record * item ! 113: ); ! 114: ! 115: void ! 116: ItemCopy( ! 117: IN Record * src, ! 118: OUT Record * dest ! 119: ); ! 120: ! 121: // void TestLoop( Dictionary * pdict ); ! 122: ! 123: // void TestLoopOld(Dictionary * dp); ! 124: ! 125: int comp(void* x, void* y); ! 126: ! 127: void printRecord(void* rp); ! 128: ! 129: typedef void (*PrintFun) (void *); ! 130: ! 131: void prinTree(int lmargin, ! 132: int indent, ! 133: TreeNode *np, ! 134: PrintFun print); ! 135: ! 136: void ! 137: Dict_Print( /* prints the binary tree (indented right subtree, ! 138: followed by the root, followed by the indented ! 139: right dubtree) */ ! 140: Dictionary * dp, ! 141: int indent); /* number of spaces to indent subsequent levels */ ! 142: ! 143: TreeNode* ! 144: makeNode(void * item); ! 145: ! 146: void ! 147: Init_dict(Dictionary * dp);
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.