1 #ifndef _objblst3_
2 #define _objblst3_
3 
4 #undef NLM_EXTERN
5 #ifdef NLM_IMPORT
6 #define NLM_EXTERN NLM_IMPORT
7 #else
8 #define NLM_EXTERN extern
9 #endif
10 
11 
12 #ifdef __cplusplus
13 extern "C" { /* } */
14 #endif
15 
16 
17 /**************************************************
18 *
19 *    Generated objects for Module NCBI-Blast
20 *    Generated using ASNCODE Revision: 6.14 at Apr 16, 2002 11:50 AM
21 *
22 **************************************************/
23 
24 NLM_EXTERN Boolean LIBCALL
25 objblst3AsnLoad PROTO((void));
26 
27 
28 /**************************************************
29 *
30 *    BlastSearch
31 *
32 **************************************************/
33 typedef struct struct_Blast_search {
34    Uint2   program;
35    /* following #defines are for enumerated type, not used by object loaders */
36 #define Blast_search_program_blastn 0
37 #define Blast_search_program_blastp 1
38 #define Blast_search_program_blastx 2
39 #define Blast_search_program_tblastn 3
40 #define Blast_search_program_tblastx 4
41 
42    struct struct_Bioseq PNTR   query;
43    CharPtr   database;
44    struct struct_Blast_parameters PNTR   parameters;
45    ValNodePtr   mask;
46    struct struct_Blast_matrix PNTR   matrix;
47    Uint1   return_parts;
48    struct struct_Bioseq_set PNTR   query_set;
49 } BlastSearch, PNTR BlastSearchPtr;
50 
51 
52 NLM_EXTERN BlastSearchPtr LIBCALL BlastSearchFree PROTO ((BlastSearchPtr ));
53 NLM_EXTERN BlastSearchPtr LIBCALL BlastSearchNew PROTO (( void ));
54 NLM_EXTERN BlastSearchPtr LIBCALL BlastSearchAsnRead PROTO (( AsnIoPtr, AsnTypePtr));
55 NLM_EXTERN Boolean LIBCALL BlastSearchAsnWrite PROTO (( BlastSearchPtr , AsnIoPtr, AsnTypePtr));
56 
57 typedef ValNodePtr BlastRequestPtr;
58 typedef ValNode BlastRequest;
59 #define BlastRequest_init 1
60 #define BlastRequest_motd 2
61 #define BlastRequest_db_info 3
62 #define BlastRequest_db_info_specific 4
63 #define BlastRequest_matrix_get 5
64 #define BlastRequest_search 6
65 #define BlastRequest_db_seq_get 7
66 #define BlastRequest_db_redundant_ids_get 8
67 #define BlastRequest_db_redundant_descr_get 9
68 #define BlastRequest_fini 10
69 
70 
71 NLM_EXTERN BlastRequestPtr LIBCALL BlastRequestFree PROTO ((BlastRequestPtr ));
72 NLM_EXTERN BlastRequestPtr LIBCALL BlastRequestAsnRead PROTO (( AsnIoPtr, AsnTypePtr));
73 NLM_EXTERN Boolean LIBCALL BlastRequestAsnWrite PROTO (( BlastRequestPtr , AsnIoPtr, AsnTypePtr));
74 
75 typedef ValNodePtr BlastResponsePtr;
76 typedef ValNode BlastResponse;
77 #define BlastResponse_init 1
78 #define BlastResponse_motd 2
79 #define BlastResponse_error 3
80 #define BlastResponse_db_seq_get 4
81 #define BlastResponse_db_redundant_ids_get 5
82 #define BlastResponse_db_redundant_descr_get 6
83 #define BlastResponse_db_info 7
84 #define BlastResponse_db_info_specific 8
85 #define BlastResponse_matrix 9
86 #define BlastResponse_alignment 10
87 #define BlastResponse_mask 11
88 #define BlastResponse_kablk 12
89 #define BlastResponse_parameters 13
90 #define BlastResponse_queued 14
91 #define BlastResponse_start 15
92 #define BlastResponse_progress 16
93 #define BlastResponse_done 17
94 #define BlastResponse_fini 18
95 #define BlastResponse_phialign 19
96 #define BlastResponse_parts 20
97 #define BlastResponse_mbalign 21
98 
99 
100 NLM_EXTERN BlastResponsePtr LIBCALL BlastResponseFree PROTO ((BlastResponsePtr ));
101 NLM_EXTERN BlastResponsePtr LIBCALL BlastResponseAsnRead PROTO (( AsnIoPtr, AsnTypePtr));
102 NLM_EXTERN Boolean LIBCALL BlastResponseAsnWrite PROTO (( BlastResponsePtr , AsnIoPtr, AsnTypePtr));
103 
104 
105 
106 /**************************************************
107 *
108 *    BlastParameters
109 *
110 **************************************************/
111 typedef struct struct_Blast_parameters {
112    Int4   first_threshold;
113    Int4   second_threshold;
114    ValNodePtr   Cutoff_cutoff;
115    ValNodePtr   Cutoff2_cutoff2;
116    Int4   hitlist_size;
117    Int4   nucl_penalty;
118    Int4   nucl_reward;
119    Int4   genetic_code;
120    Int4   db_genetic_code;
121    Int4   low_complexity_filtering;
122    Uint1   gapped_alignment;
123    Int4   gap_open;
124    Int4   gap_extend;
125    Int4   required_start;
126    Int4   required_end;
127    FloatHi   ethresh;
128    Int4   max_num_passes;
129    Int4   pseudo_count_const;
130    CharPtr   other_options;
131    ValNodePtr   gilist;
132    CharPtr   gifile;
133    CharPtr   matrix;
134    CharPtr   filter_string;
135    CharPtr   entrez_query;
136    Int4   word_size;
137    Int4   db_length;
138    FloatHi   searchsp_eff;
139    Int4   hsp_range_max;
140    Int4   block_width;
141    Uint1   perform_culling;
142    Int4   strand_option;
143    CharPtr   phi_pattern;
144    Uint1   use_real_db_size;
145    Uint1   use_best_align;
146    Uint1   is_rps_blast;
147    Uint1   tweak_parameters;
148    Uint1   smith_waterman;
149    Uint1   is_megablast;
150    ValNodePtr   query_lcase_mask;
151    Int4   is_ooframe;
152    Uint1   endpoint_results;
153    FloatHi   percent_identity;
154    Int4   first_db_seq;
155    Int4   final_db_seq;
156    Int4   window_size;
157    Int4   mb_template_length;
158    Int4   mb_disc_type;
159 } BlastParameters, PNTR BlastParametersPtr;
160 
161 
162 NLM_EXTERN BlastParametersPtr LIBCALL BlastParametersFree PROTO ((BlastParametersPtr ));
163 NLM_EXTERN BlastParametersPtr LIBCALL BlastParametersNew PROTO (( void ));
164 NLM_EXTERN BlastParametersPtr LIBCALL BlastParametersAsnRead PROTO (( AsnIoPtr, AsnTypePtr));
165 NLM_EXTERN Boolean LIBCALL BlastParametersAsnWrite PROTO (( BlastParametersPtr , AsnIoPtr, AsnTypePtr));
166 
167 
168 #ifdef NLM_GENERATED_CODE_PROTO
169 
170 typedef ValNodePtr Cutoff2_cutoff2Ptr;
171 typedef ValNode Cutoff2_cutoff2;
172 
173 #endif /* NLM_GENERATED_CODE_PROTO */
174 
175 #define Cutoff2_cutoff2_evalue 1
176 #define Cutoff2_cutoff2_score 2
177 
178 #ifdef NLM_GENERATED_CODE_PROTO
179 
180 static Cutoff2_cutoff2Ptr LIBCALL Cutoff2_cutoff2Free PROTO ((Cutoff2_cutoff2Ptr ));
181 static Cutoff2_cutoff2Ptr LIBCALL Cutoff2_cutoff2AsnRead PROTO (( AsnIoPtr, AsnTypePtr));
182 static Boolean LIBCALL Cutoff2_cutoff2AsnWrite PROTO (( Cutoff2_cutoff2Ptr , AsnIoPtr, AsnTypePtr));
183 
184 #endif /* NLM_GENERATED_CODE_PROTO */
185 
186 
187 #ifdef NLM_GENERATED_CODE_PROTO
188 
189 typedef ValNodePtr Cutoff_cutoffPtr;
190 typedef ValNode Cutoff_cutoff;
191 
192 #endif /* NLM_GENERATED_CODE_PROTO */
193 
194 #define Cutoff_cutoff_evalue 1
195 #define Cutoff_cutoff_score 2
196 
197 #ifdef NLM_GENERATED_CODE_PROTO
198 
199 static Cutoff_cutoffPtr LIBCALL Cutoff_cutoffFree PROTO ((Cutoff_cutoffPtr ));
200 static Cutoff_cutoffPtr LIBCALL Cutoff_cutoffAsnRead PROTO (( AsnIoPtr, AsnTypePtr));
201 static Boolean LIBCALL Cutoff_cutoffAsnWrite PROTO (( Cutoff_cutoffPtr , AsnIoPtr, AsnTypePtr));
202 
203 #endif /* NLM_GENERATED_CODE_PROTO */
204 
205 
206 
207 /**************************************************
208 *
209 *    BlastMatrix
210 *
211 **************************************************/
212 typedef struct struct_Blast_matrix {
213    Uint1   is_protein;
214    CharPtr   name;
215    ValNodePtr   comments;
216    Int4   row_length;
217    Int4   column_length;
218    ValNodePtr   scores;
219    FloatHi   karlinK;
220    ValNodePtr   posFreqs;
221 } BlastMatrix, PNTR BlastMatrixPtr;
222 
223 
224 NLM_EXTERN BlastMatrixPtr LIBCALL BlastMatrixFree PROTO ((BlastMatrixPtr ));
225 NLM_EXTERN BlastMatrixPtr LIBCALL BlastMatrixNew PROTO (( void ));
226 NLM_EXTERN BlastMatrixPtr LIBCALL BlastMatrixAsnRead PROTO (( AsnIoPtr, AsnTypePtr));
227 NLM_EXTERN Boolean LIBCALL BlastMatrixAsnWrite PROTO (( BlastMatrixPtr , AsnIoPtr, AsnTypePtr));
228 
229 
230 
231 /**************************************************
232 *
233 *    BlastDbinfo
234 *
235 **************************************************/
236 typedef struct struct_Blast_dbinfo {
237    struct struct_Blast_dbinfo PNTR next;
238    Uint1   is_protein;
239    CharPtr   name;
240    CharPtr   definition;
241    CharPtr   date;
242    Int4   total_length;
243    Int4   number_seqs;
244 } BlastDbinfo, PNTR BlastDbinfoPtr;
245 
246 
247 NLM_EXTERN BlastDbinfoPtr LIBCALL BlastDbinfoFree PROTO ((BlastDbinfoPtr ));
248 NLM_EXTERN BlastDbinfoPtr LIBCALL BlastDbinfoNew PROTO (( void ));
249 NLM_EXTERN BlastDbinfoPtr LIBCALL BlastDbinfoAsnRead PROTO (( AsnIoPtr, AsnTypePtr));
250 NLM_EXTERN Boolean LIBCALL BlastDbinfoAsnWrite PROTO (( BlastDbinfoPtr , AsnIoPtr, AsnTypePtr));
251 
252 
253 
254 /**************************************************
255 *
256 *    BlastMask
257 *
258 **************************************************/
259 typedef struct struct_Blast_mask {
260    ValNodePtr   location;
261    Uint2   frame;
262    /* following #defines are for enumerated type, not used by object loaders */
263 #define Blast_mask_frame_notset 0
264 #define Blast_mask_frame_plus1 1
265 #define Blast_mask_frame_plus2 2
266 #define Blast_mask_frame_plus3 3
267 #define Blast_mask_frame_minus1 4
268 #define Blast_mask_frame_minus2 5
269 #define Blast_mask_frame_minus3 6
270 
271 } BlastMask, PNTR BlastMaskPtr;
272 
273 
274 NLM_EXTERN BlastMaskPtr LIBCALL BlastMaskFree PROTO ((BlastMaskPtr ));
275 NLM_EXTERN BlastMaskPtr LIBCALL BlastMaskNew PROTO (( void ));
276 NLM_EXTERN BlastMaskPtr LIBCALL BlastMaskAsnRead PROTO (( AsnIoPtr, AsnTypePtr));
277 NLM_EXTERN Boolean LIBCALL BlastMaskAsnWrite PROTO (( BlastMaskPtr , AsnIoPtr, AsnTypePtr));
278 
279 
280 
281 /**************************************************
282 *
283 *    BlastKABlk
284 *
285 **************************************************/
286 typedef struct struct_Blast_KABlk {
287    FloatHi   lambda;
288    FloatHi   k;
289    FloatHi   h;
290    Uint1   gapped;
291 } BlastKABlk, PNTR BlastKABlkPtr;
292 
293 
294 NLM_EXTERN BlastKABlkPtr LIBCALL BlastKABlkFree PROTO ((BlastKABlkPtr ));
295 NLM_EXTERN BlastKABlkPtr LIBCALL BlastKABlkNew PROTO (( void ));
296 NLM_EXTERN BlastKABlkPtr LIBCALL BlastKABlkAsnRead PROTO (( AsnIoPtr, AsnTypePtr));
297 NLM_EXTERN Boolean LIBCALL BlastKABlkAsnWrite PROTO (( BlastKABlkPtr , AsnIoPtr, AsnTypePtr));
298 
299 
300 
301 /**************************************************
302 *
303 *    BlastError
304 *
305 **************************************************/
306 typedef struct struct_Blast_error {
307    Uint2   level;
308    /* following #defines are for enumerated type, not used by object loaders */
309 #define Blast_error_level_none 0
310 #define Blast_error_level_info 1
311 #define Blast_error_level_warn 2
312 #define Blast_error_level_error 3
313 #define Blast_error_level_fatal 4
314 
315    CharPtr   msg;
316 } BlastError, PNTR BlastErrorPtr;
317 
318 
319 NLM_EXTERN BlastErrorPtr LIBCALL BlastErrorFree PROTO ((BlastErrorPtr ));
320 NLM_EXTERN BlastErrorPtr LIBCALL BlastErrorNew PROTO (( void ));
321 NLM_EXTERN BlastErrorPtr LIBCALL BlastErrorAsnRead PROTO (( AsnIoPtr, AsnTypePtr));
322 NLM_EXTERN Boolean LIBCALL BlastErrorAsnWrite PROTO (( BlastErrorPtr , AsnIoPtr, AsnTypePtr));
323 
324 
325 
326 /**************************************************
327 *
328 *    BlastPhialign
329 *
330 **************************************************/
331 typedef struct struct_Blast_phialign {
332    Int4   numaligns;
333    ValNodePtr   seqloc;
334 } BlastPhialign, PNTR BlastPhialignPtr;
335 
336 
337 NLM_EXTERN BlastPhialignPtr LIBCALL BlastPhialignFree PROTO ((BlastPhialignPtr ));
338 NLM_EXTERN BlastPhialignPtr LIBCALL BlastPhialignNew PROTO (( void ));
339 NLM_EXTERN BlastPhialignPtr LIBCALL BlastPhialignAsnRead PROTO (( AsnIoPtr, AsnTypePtr));
340 NLM_EXTERN Boolean LIBCALL BlastPhialignAsnWrite PROTO (( BlastPhialignPtr , AsnIoPtr, AsnTypePtr));
341 
342 
343 
344 /**************************************************
345 *
346 *    BlastDbinfoGet
347 *
348 **************************************************/
349 typedef struct struct_Blast_dbinfo_get {
350    CharPtr   name;
351    Uint2   type;
352    /* following #defines are for enumerated type, not used by object loaders */
353 #define Blast_dbinfo_get_type_unknown 0
354 #define Blast_dbinfo_get_type_protein 1
355 #define Blast_dbinfo_get_type_nucleotide 2
356 
357 } BlastDbinfoGet, PNTR BlastDbinfoGetPtr;
358 
359 
360 NLM_EXTERN BlastDbinfoGetPtr LIBCALL BlastDbinfoGetFree PROTO ((BlastDbinfoGetPtr ));
361 NLM_EXTERN BlastDbinfoGetPtr LIBCALL BlastDbinfoGetNew PROTO (( void ));
362 NLM_EXTERN BlastDbinfoGetPtr LIBCALL BlastDbinfoGetAsnRead PROTO (( AsnIoPtr, AsnTypePtr));
363 NLM_EXTERN Boolean LIBCALL BlastDbinfoGetAsnWrite PROTO (( BlastDbinfoGetPtr , AsnIoPtr, AsnTypePtr));
364 
365 
366 
367 /**************************************************
368 *
369 *    BlastSeqId
370 *
371 **************************************************/
372 typedef struct struct_Blast_seq_id {
373    Uint1   is_protein;
374    CharPtr   database;
375    ValNodePtr   id;
376 } BlastSeqId, PNTR BlastSeqIdPtr;
377 
378 
379 NLM_EXTERN BlastSeqIdPtr LIBCALL BlastSeqIdFree PROTO ((BlastSeqIdPtr ));
380 NLM_EXTERN BlastSeqIdPtr LIBCALL BlastSeqIdNew PROTO (( void ));
381 NLM_EXTERN BlastSeqIdPtr LIBCALL BlastSeqIdAsnRead PROTO (( AsnIoPtr, AsnTypePtr));
382 NLM_EXTERN Boolean LIBCALL BlastSeqIdAsnWrite PROTO (( BlastSeqIdPtr , AsnIoPtr, AsnTypePtr));
383 
384 
385 
386 /**************************************************
387 *
388 *    BlastSequence
389 *
390 **************************************************/
391 typedef struct struct_Blast_sequence {
392    struct struct_Blast_sequence PNTR next;
393    struct struct_Seq_align PNTR   align;
394    ByteStorePtr   db_seq;
395 } BlastSequence, PNTR BlastSequencePtr;
396 
397 
398 NLM_EXTERN BlastSequencePtr LIBCALL BlastSequenceFree PROTO ((BlastSequencePtr ));
399 NLM_EXTERN BlastSequencePtr LIBCALL BlastSequenceNew PROTO (( void ));
400 NLM_EXTERN BlastSequencePtr LIBCALL BlastSequenceAsnRead PROTO (( AsnIoPtr, AsnTypePtr));
401 NLM_EXTERN Boolean LIBCALL BlastSequenceAsnWrite PROTO (( BlastSequencePtr , AsnIoPtr, AsnTypePtr));
402 
403 
404 
405 /**************************************************
406 *
407 *    BlastParts
408 *
409 **************************************************/
410 typedef struct struct_Blast_parts {
411    struct struct_Blast_parts PNTR next;
412    CharPtr   defline;
413    struct struct_Blast_sequence PNTR   sequence;
414 } BlastParts, PNTR BlastPartsPtr;
415 
416 
417 NLM_EXTERN BlastPartsPtr LIBCALL BlastPartsFree PROTO ((BlastPartsPtr ));
418 NLM_EXTERN BlastPartsPtr LIBCALL BlastPartsNew PROTO (( void ));
419 NLM_EXTERN BlastPartsPtr LIBCALL BlastPartsAsnRead PROTO (( AsnIoPtr, AsnTypePtr));
420 NLM_EXTERN Boolean LIBCALL BlastPartsAsnWrite PROTO (( BlastPartsPtr , AsnIoPtr, AsnTypePtr));
421 
422 
423 
424 /**************************************************
425 *
426 *    BlastQueued
427 *
428 **************************************************/
429 typedef struct struct_Blast_Queued {
430    Int4   length;
431 } BlastQueued, PNTR BlastQueuedPtr;
432 
433 
434 NLM_EXTERN BlastQueuedPtr LIBCALL BlastQueuedFree PROTO ((BlastQueuedPtr ));
435 NLM_EXTERN BlastQueuedPtr LIBCALL BlastQueuedNew PROTO (( void ));
436 NLM_EXTERN BlastQueuedPtr LIBCALL BlastQueuedAsnRead PROTO (( AsnIoPtr, AsnTypePtr));
437 NLM_EXTERN Boolean LIBCALL BlastQueuedAsnWrite PROTO (( BlastQueuedPtr , AsnIoPtr, AsnTypePtr));
438 
439 
440 
441 /**************************************************
442 *
443 *    BlastProgress
444 *
445 **************************************************/
446 typedef struct struct_Blast_Progress {
447    Int4   completed;
448 } BlastProgress, PNTR BlastProgressPtr;
449 
450 
451 NLM_EXTERN BlastProgressPtr LIBCALL BlastProgressFree PROTO ((BlastProgressPtr ));
452 NLM_EXTERN BlastProgressPtr LIBCALL BlastProgressNew PROTO (( void ));
453 NLM_EXTERN BlastProgressPtr LIBCALL BlastProgressAsnRead PROTO (( AsnIoPtr, AsnTypePtr));
454 NLM_EXTERN Boolean LIBCALL BlastProgressAsnWrite PROTO (( BlastProgressPtr , AsnIoPtr, AsnTypePtr));
455 
456 
457 
458 /**************************************************
459 *
460 *    BlastDefline
461 *
462 **************************************************/
463 typedef struct struct_Blast_defline {
464    struct struct_Blast_defline PNTR next;
465    ValNodePtr   id;
466    CharPtr   defline;
467 } BlastDefline, PNTR BlastDeflinePtr;
468 
469 
470 NLM_EXTERN BlastDeflinePtr LIBCALL BlastDeflineFree PROTO ((BlastDeflinePtr ));
471 NLM_EXTERN BlastDeflinePtr LIBCALL BlastDeflineNew PROTO (( void ));
472 NLM_EXTERN BlastDeflinePtr LIBCALL BlastDeflineAsnRead PROTO (( AsnIoPtr, AsnTypePtr));
473 NLM_EXTERN Boolean LIBCALL BlastDeflineAsnWrite PROTO (( BlastDeflinePtr , AsnIoPtr, AsnTypePtr));
474 
475 
476 
477 /**************************************************
478 *
479 *    BlastVersion
480 *
481 **************************************************/
482 typedef struct struct_Blast_version {
483    CharPtr   version;
484    CharPtr   date;
485 } BlastVersion, PNTR BlastVersionPtr;
486 
487 
488 NLM_EXTERN BlastVersionPtr LIBCALL BlastVersionFree PROTO ((BlastVersionPtr ));
489 NLM_EXTERN BlastVersionPtr LIBCALL BlastVersionNew PROTO (( void ));
490 NLM_EXTERN BlastVersionPtr LIBCALL BlastVersionAsnRead PROTO (( AsnIoPtr, AsnTypePtr));
491 NLM_EXTERN Boolean LIBCALL BlastVersionAsnWrite PROTO (( BlastVersionPtr , AsnIoPtr, AsnTypePtr));
492 
493 
494 
495 /**************************************************
496 *
497 *    MegaBlastHit
498 *
499 **************************************************/
500 typedef struct struct_MegaBlast_hit {
501    struct struct_MegaBlast_hit PNTR next;
502    CharPtr   id1;
503    CharPtr   id2;
504    Int4   query_offset;
505    Int4   subject_offset;
506    Int4   query_end;
507    Int4   subject_end;
508    Int4   score;
509 } MegaBlastHit, PNTR MegaBlastHitPtr;
510 
511 
512 NLM_EXTERN MegaBlastHitPtr LIBCALL MegaBlastHitFree PROTO ((MegaBlastHitPtr ));
513 NLM_EXTERN MegaBlastHitPtr LIBCALL MegaBlastHitNew PROTO (( void ));
514 NLM_EXTERN MegaBlastHitPtr LIBCALL MegaBlastHitAsnRead PROTO (( AsnIoPtr, AsnTypePtr));
515 NLM_EXTERN Boolean LIBCALL MegaBlastHitAsnWrite PROTO (( MegaBlastHitPtr , AsnIoPtr, AsnTypePtr));
516 
517 
518 
519 /**************************************************
520 *
521 *    MegaBlastResults
522 *
523 **************************************************/
524 typedef struct struct_MegaBlast_results {
525    struct struct_MegaBlast_hit PNTR   mbhits;
526 } MegaBlastResults, PNTR MegaBlastResultsPtr;
527 
528 
529 NLM_EXTERN MegaBlastResultsPtr LIBCALL MegaBlastResultsFree PROTO ((MegaBlastResultsPtr ));
530 NLM_EXTERN MegaBlastResultsPtr LIBCALL MegaBlastResultsNew PROTO (( void ));
531 NLM_EXTERN MegaBlastResultsPtr LIBCALL MegaBlastResultsAsnRead PROTO (( AsnIoPtr, AsnTypePtr));
532 NLM_EXTERN Boolean LIBCALL MegaBlastResultsAsnWrite PROTO (( MegaBlastResultsPtr , AsnIoPtr, AsnTypePtr));
533 
534 #ifdef __cplusplus
535 /* { */ }
536 #endif
537 
538 #endif /* _objblst3_ */
539 
540 #undef NLM_EXTERN
541 #ifdef NLM_EXPORT
542 #define NLM_EXTERN NLM_EXPORT
543 #else
544 #define NLM_EXTERN
545 #endif
546 
547