-
Notifications
You must be signed in to change notification settings - Fork 0
/
AkelDLL.h
5176 lines (4055 loc) · 191 KB
/
AkelDLL.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
#ifndef __AKELDLL_H__
#define __AKELDLL_H__
//// Version
#ifndef MAKE_IDENTIFIER
#define MAKE_IDENTIFIER(a, b, c, d) ((DWORD)MAKELONG(MAKEWORD(a, b), MAKEWORD(c, d)))
#endif
#define AKELDLL MAKE_IDENTIFIER(2, 0, 0, 2)
$$$ DEFINES1 $$$
//// Defines
//Control IDs
#define ID_EDIT 10001
#define ID_STATUS 10002
#define ID_TAB 10003
#define ID_PROGRESS 10004
#define ID_FIRSTMDI 10010
//Window mode
#define WMD_SDI 0 //Single document interface (SDI).
#define WMD_MDI 1 //Multiple document interface (MDI).
#define WMD_PMDI 2 //Pseudo-Multiple document interface (PMDI).
//Sizes
#define COMMANDLINE_SIZE 32768
#define COMMANDARG_SIZE 16384
#define WORD_DELIMITERS_SIZE 128
#define WRAP_DELIMITERS_SIZE 128
#define URL_PREFIXES_SIZE 128
#define URL_DELIMITERS_SIZE 128
//Unload plugin flag
#define UD_FAILED -1 //Operation failed. Don't use it.
#define UD_UNLOAD 0 //Unload plugin (default).
#define UD_NONUNLOAD_ACTIVE 0x1 //Don't unload plugin and set active status.
#define UD_NONUNLOAD_NONACTIVE 0x2 //Don't unload plugin and set non-active status.
#define UD_NONUNLOAD_UNCHANGE 0x4 //Don't unload plugin and don't change active status.
#define UD_HOTKEY_DODEFAULT 0x8 //Do default hotkey processing.
//Hotkey owner
#define HKO_NONE 0 //Hotkey is not assigned.
#define HKO_PLUGINFUNCTION 1 //Hotkey assigned to plugin function.
#define HKO_HOTKEYSPLUGIN 2 //Hotkey assigned to Hotkeys plugin command.
//Command line options
#define CLO_NONOTEPADCMD 0x01 //Don't use MS Notepad compatibility mode when parse command line parameters.
#define CLO_GLOBALPRINT 0x02 //Next opened file will be printed.
#define CLO_MSGOPENCREATEYES 0x04 //Silently create new file, if doesn't exist.
#define CLO_MSGOPENCREATENO 0x08 //Don't create new file, if doesn't exist.
#define CLO_MSGOPENBINARYYES 0x10 //Silently open file, if binary.
#define CLO_MSGOPENBINARYNO 0x20 //Don't open file, if binary.
#define CLO_MSGSAVELOSTSYMBOLSYES 0x40 //Silently save file, even if symbols will be lost.
#define CLO_MSGSAVELOSTSYMBOLSNO 0x80 //Don't save file, if symbols will be lost.
//AKD_PARSECMDLINE return value
#define PCLE_QUIT 0x01 //Stop parsing command line parameters and close program.
#define PCLE_END 0x02 //Stop parsing command line parameters.
#define PCLE_ONLOAD 0x04 //Done parsing command line parameters on program load (used internally).
//MI_ONFINISH type
#define MOF_NONE 0
#define MOF_QUERYEND 1 //Processing WM_CLOSE or WM_QUERYENDSESSION message.
#define MOF_DESTROY 2 //Processing AKDN_MAIN_ONFINISH message.
//Autodetect flags
#define ADT_BINARY_ERROR 0x00000001 //Check if file is binary.
#define ADT_REG_CODEPAGE 0x00000002 //If last open code page found in registry, then it will be
//used with ADT_DETECT_BOM flag. If not found, then next flags
//will be used ADT_DETECT_CODEPAGE|ADT_DETECT_BOM.
#define ADT_DETECT_CODEPAGE 0x00000004 //Detect code page.
#define ADT_DETECT_BOM 0x00000008 //Detect BOM mark.
#define ADT_NOMESSAGES 0x00000010 //No messages, if errors in autodetect.
//Autodetect errors
#define EDT_SUCCESS 0 //Success.
#define EDT_OPEN -1 //Can't open file.
#define EDT_ALLOC -2 //Can't allocate buffer.
#define EDT_READ -3 //Read file error.
#define EDT_BINARY -4 //File is binary.
//Open document flags
#define OD_ADT_BINARY_ERROR ADT_BINARY_ERROR //See ADT_BINARY_ERROR.
#define OD_ADT_REG_CODEPAGE ADT_REG_CODEPAGE //See ADT_REG_CODEPAGE.
#define OD_ADT_DETECT_CODEPAGE ADT_DETECT_CODEPAGE //See ADT_DETECT_CODEPAGE.
#define OD_ADT_DETECT_BOM ADT_DETECT_BOM //See ADT_DETECT_BOM.
#define OD_ADT_NOMESSAGES ADT_NOMESSAGES //See ADT_NOMESSAGES.
#define OD_REOPEN 0x00000100 //Don't create new MDI window, use the exited one.
#define OD_NOSCROLL 0x00000200 //Don't restore scroll position.
#define OD_MULTIFILE 0x00000400 //More documents is on queue. Use MB_YESNOCANCEL instead of MB_OKCANCEL.
//Open document errors
#define EOD_SUCCESS 0 //Success.
#define EOD_ADT_OPEN EDT_OPEN //See EDT_OPEN.
#define EOD_ADT_ALLOC EDT_ALLOC //See EDT_ALLOC.
#define EOD_ADT_READ EDT_READ //See EDT_READ.
#define EOD_OPEN -11 //Can't open file.
#define EOD_WINDOW_EXIST -13 //File already opened.
#define EOD_CODEPAGE_ERROR -14 //Code page isn't implemented.
#define EOD_STOP -15 //Stopped from AKDN_OPENDOCUMENT_START.
#define EOD_STREAMIN -16 //Error in EM_STREAMIN.
#define EOD_DOCUMENTS_LIMIT -17 //Documents limit reached in MDI mode.
#define EOD_MSGNO -20 //File is skipped.
#define EOD_MSGCANCELCREATE -21 //User press cancel in message "Create new file?".
#define EOD_MSGCANCELBINARY -22 //User press cancel in message "Binary file. Continue?".
//Save document flags
#define SD_UPDATE 0x00000001 //Update file info.
#define SD_SELECTION 0x00000002 //Save only selection.
//Save document errors
#define ESD_SUCCESS 0 //Success.
#define ESD_OPEN -1 //Can't open file.
#define ESD_WRITE -2 //Can't write to file.
#define ESD_READONLY -3 //File has read-only attribute.
#define ESD_CODEPAGE_ERROR -4 //Code page isn't implemented.
#define ESD_STOP -5 //Stopped from AKDN_SAVEDOCUMENT_START.
#define ESD_STREAMOUT -6 //Error in EM_STREAMOUT.
#define ESD_NOWINDOW -7 //No window to save from.
//Code pages int
#define CP_UNICODE_UTF16LE 1200
#define CP_UNICODE_UTF16BE 1201
#define CP_UNICODE_UTF32LE 12000
#define CP_UNICODE_UTF32BE 12001
#define CP_UNICODE_UTF7 65000
#define CP_UNICODE_UTF8 65001
#define CP_KOI8_R 20866
//Save settings
#define SS_REGISTRY 1 //Registry.
#define SS_INI 2 //INI file.
//AKD_RECENTFILES flags
#define RF_GET 1 //Retrieve current recent files info.
//(RECENTFILESTACK **)lParam is a pointer to a variable that receive pointer to a RECENTFILESTACK structure, can be NULL.
//Return value is maximum number of recent files.
#define RF_SET 2 //Set recent files number.
//(int)lParam is maximum number of recent files.
//Return value is zero.
#define RF_READ 3 //Read recent files from registry.
//(RECENTFILESTACK *)lParam is a pointer to a RECENTFILESTACK structure, can be NULL.
//Return value is number of records read.
#define RF_SAVE 4 //Save recent files to registry.
//(RECENTFILESTACK *)lParam is a pointer to a RECENTFILESTACK structure, can be NULL.
//Return value is zero.
#define RF_CLEAR 5 //Clear recent files stack. Use RF_SAVE to save result.
//(RECENTFILESTACK *)lParam is a pointer to a RECENTFILESTACK structure, can be NULL.
//Return value is zero.
#define RF_DELETEOLD 6 //Delete non-existent recent files records. Use RF_SAVE to save result.
//(RECENTFILESTACK *)lParam is a pointer to a RECENTFILESTACK structure, can be NULL.
//Return value is number of records deleted.
#define RF_FINDINDEX 7 //Find item index in recent files stack by file name.
//(wchar_t *)lParam is a pointer to a file name.
//Return value is item index in recent files stack, -1 if error.
#define RF_DELETEINDEX 8 //Delete item from recent files stack by index.
//(int)lParam is index in recent files array to delete.
//Return value is TRUE - success, FALSE - error.
#define RF_FINDITEMBYINDEX 9 //Find pointer to a RECENTFILE structure by index.
//(int)lParam is index of item in recent files stack.
//Return value is a pointer to a RECENTFILE structure.
#define RF_FINDITEMBYNAME 10 //Find pointer to a RECENTFILE structure by file name.
//(wchar_t *)lParam is a pointer to a file name.
//Return value is a pointer to a RECENTFILE structure.
#define RF_DELETEITEM 11 //Delete item from recent files stack.
//(RECENTFILE *)lParam a pointer to a RECENTFILE structure to delete.
//Return value is zero.
#define RF_GETPARAM 21 //Get recent file parameter by name.
//(RECENTFILEPARAM *)lParam a pointer to a RECENTFILEPARAM structure with filled "file" and "pParamName" members.
//Return value is a pointer to a real RECENTFILEPARAM structure or NULL if error.
#define RF_SETPARAM 22 //Set recent file parameter.
//(RECENTFILEPARAM *)lParam a pointer to a RECENTFILEPARAM structure with filled "file", "pParamName" and "pParamValue" members.
//Return value is a pointer to a real RECENTFILEPARAM structure or NULL if error.
#define RF_DELETEPARAM 23 //Delete recent file parameter.
//(RECENTFILEPARAM *)lParam a pointer to a real RECENTFILEPARAM structure.
//Return value is zero.
//AKD_SEARCHHISTORY flags
#define SH_GET 1 //Retrieve search strings count.
#define SH_CLEAR 2 //Clear search history.
//AKD_GETMAININFO type
//PLUGINDATA
#define MI_AKELDIRA 1 //Return: copied chars. (char *)lParam - buffer that receives AkelPad directory string.
#define MI_AKELDIRW 2 //Return: copied chars. (wchar_t *)lParam - buffer that receives AkelPad directory string.
#define MI_INSTANCEEXE 3 //Return: EXE instance.
#define MI_PLUGINSSTACK 4 //Return: copied bytes. (HSTACK *)lParam - buffer that receives plugin stack.
#define MI_SAVESETTINGS 5 //Return: see SS_* defines.
#define MI_WNDPROGRESS 10 //Return: progress bar window handle.
#define MI_WNDSTATUS 11 //Return: status bar window handle.
#define MI_WNDMDICLIENT 12 //Return: MDI client window handle.
#define MI_WNDTAB 13 //Return: tab window handle.
#define MI_MENUMAIN 21 //Return: main menu handle.
#define MI_MENURECENTFILES 22 //Return: recent files menu handle.
#define MI_MENULANGUAGE 23 //Return: language menu handle.
#define MI_MENUPOPUP 24 //Return: right click menu handle.
#define MI_ICONMAIN 31 //Return: main window icon handle.
#define MI_ACCELGLOBAL 32 //Return: global accelerator table (highest priority).
#define MI_ACCELMAIN 33 //Return: main accelerator table (lowest priority).
#define MI_OLDWINDOWS 41 //Return: non-Unicode Windows.
#define MI_OLDRICHEDIT 42 //Return: riched20.dll lower then 5.30 (v3.0).
#define MI_OLDCOMCTL32 43 //Return: comctl32.dll lower then 4.71.
#define MI_AKELEDIT 44 //Return: AkelEdit control is used.
#define MI_MDI 45 //Return: window mode, see WMD_* defines.
#define MI_LANGMODULEA 51 //Return: copied chars. (char *)lParam - buffer that receives language module string.
#define MI_LANGMODULEW 52 //Return: copied chars. (wchar_t *)lParam - buffer that receives language module string.
#define MI_LANGIDSYSTEM 53 //Return: system language ID.
#define MI_LANGIDMODULE 54 //Return: language module language ID.
//Execution
#define MI_ONSTART 90 //Return: TRUE - execution is between AKDN_MAIN_ONSTART and AKDN_MAIN_ONSTART_FINISH, FALSE - elsewhere.
#define MI_ONFINISH 91 //Return: see MOF_* defines.
#define MI_AKELEXEA 95 //Return: copied chars. (char *)lParam - buffer that receives AkelPad executable string.
#define MI_AKELEXEW 96 //Return: copied chars. (wchar_t *)lParam - buffer that receives AkelPad executable string.
//Compile
#define MI_X64 101 //Return: TRUE - x64 version, FALSE - x86 version.
#define MI_AKELEDITSTATICBUILD 102 //Return: TRUE - AkelEdit is compiled statically, FALSE - AkelEdit is compiled as standalone library.
#define MI_AKELPADDLLBUILD 103 //Return: TRUE - AkelPad is compiled as library, FALSE - AkelPad is compiled as executable.
//Manual
#define MI_CMDLINEBEGIN 105 //Return: copied chars. (wchar_t *)lParam - buffer that receives "CmdLineBegin" string.
#define MI_CMDLINEEND 106 //Return: copied chars. (wchar_t *)lParam - buffer that receives "CmdLineEnd" string.
#define MI_SHOWMODIFY 110 //Return: "ShowModify" flags, see SM_* defines.
#define MI_STATUSPOSTYPE 111 //Return: "StatusPosType" type, see SPT_* defines.
#define MI_STATUSUSERFORMAT 112 //Return: copied chars. (wchar_t *)lParam - buffer that receives "StatusUserFormat" string.
#define MI_WORDBREAKCUSTOM 117 //Return: "WordBreak" flags.
#define MI_PAINTOPTIONS 121 //Return: "PaintOptions" flags, see PAINT_* defines.
#define MI_EDITSTYLE 122 //Return: "EditStyle" flags, see EDS_* defines.
#define MI_RICHEDITCLASS 125 //Return: "RichEditClass" type.
#define MI_AKELADMINRESIDENT 126 //Return: AkelAdmin.exe resident - TRUE or unloaded immediately after execution - FALSE.
#define MI_DATELOGFORMAT 129 //Return: copied chars. (wchar_t *)lParam - buffer that receives "DateLogFormat" string.
#define MI_DATEINSERTFORMAT 130 //Return: copied chars. (wchar_t *)lParam - buffer that receives "DateInsertFormat" string.
#define MI_AKELUPDATEROPTIONS 131 //Return: copied chars. (wchar_t *)lParam - buffer that receives "AkelUpdaterOptions" string.
#define MI_URLCOMMAND 132 //Return: copied chars. (wchar_t *)lParam - buffer that receives "UrlCommand" string.
#define MI_TABNAMEFIND 133 //Return: copied chars. (wchar_t *)lParam - buffer that receives "TabNameFind" string.
#define MI_TABNAMEREP 134 //Return: copied chars. (wchar_t *)lParam - buffer that receives "TabNameRep" string.
//Menu
#define MI_ONTOP 141 //Return: always on top (on\off).
#define MI_STATUSBAR 142 //Return: show statusbar (on\off).
#define MI_KEEPSPACE 146 //Return: keep left space (on\off).
#define MI_WATCHFILE 147 //Return: watch file change (on\off).
#define MI_SAVETIME 148 //Return: save original file time (on\off).
#define MI_SINGLEOPENFILE 152 //Return: single open file (on\off).
#define MI_SINGLEOPENPROGRAM 153 //Return: single open program flags, see SOP_* defines.
#define MI_TABOPTIONSMDI 157 //Return: tab flags, see TAB_* defines.
//Settings dialog
#define MI_EXECUTECOMMAND 171 //Return: copied chars. (wchar_t *)lParam - buffer that receives execution command string.
#define MI_EXECUTEDIRECTORY 172 //Return: copied chars. (wchar_t *)lParam - buffer that receives execution directory string.
#define MI_CODEPAGELIST 176 //Return: copied bytes. (int *)lParam - buffer that receives array of codepages, last element in array is zero.
#define MI_DEFAULTCODEPAGE 177 //Return: default codepage.
#define MI_DEFAULTBOM 178 //Return: default BOM.
#define MI_NEWFILECODEPAGE 179 //Return: new file codepage.
#define MI_NEWFILEBOM 180 //Return: new file BOM.
#define MI_NEWFILENEWLINE 181 //Return: new file new line, see NEWLINE_* defines.
#define MI_LANGCODEPAGERECOGNITION 183 //Return: codepage recognition language defined as LANGID.
#define MI_CODEPAGERECOGNITIONBUFFER 184 //Return: size of codepage recognition buffer.
#define MI_SAVEPOSITIONS 192 //Return: save recent file positions (on\off).
#define MI_SAVECODEPAGES 193 //Return: save recent file codepages (on\off).
#define MI_RECENTFILES 194 //Return: number of recent files.
#define MI_SEARCHSTRINGS 198 //Return: number of search strings.
#define MI_FILETYPESOPEN 202 //Return: copied chars. (wchar_t *)lParam - buffer that receives associated file types to open.
#define MI_FILETYPESEDIT 203 //Return: copied chars. (wchar_t *)lParam - buffer that receives associated file types to edit.
#define MI_FILETYPESPRINT 204 //Return: copied chars. (wchar_t *)lParam - buffer that receives associated file types to print.
#define MI_FILETYPESASSOCIATED 205 //Return: associated file types, see FTA_* defines.
#define MI_KEYBLAYOUTOPTIONS 209 //Return: keyboard layout options, see KLO_* defines.
#define MI_SILENTCLOSEEMPTYMDI 213 //Return: silently close unsaved empty MDI tab (on\off).
#define MI_DATELOG 217 //Return: insert date if file has .LOG at the beginning (on\off).
#define MI_SAVEINREADONLYMSG 221 //Return: save in read-only files warning (on\off).
#define MI_DEFAULTSAVEEXT 224 //Return: copied chars. (wchar_t *)lParam - buffer that receives default saving extension string.
#define MI_SEARCHOPTIONS 228 //Return: search options, see FRF_* defines.
//Print dialog
#define MI_PRINTMARGINS 251 //Return: copied bytes. (RECT *)lParam - buffer that receives print margins.
#define MI_PRINTCOLOR 255 //Return: color printing, see PRNC_* defines.
#define MI_PRINTHEADERENABLE 259 //Return: enable print header (on\off).
#define MI_PRINTHEADER 260 //Return: copied chars. (wchar_t *)lParam - buffer that receives print header string.
#define MI_PRINTFOOTERENABLE 261 //Return: enable print footer (on\off).
#define MI_PRINTFOOTER 262 //Return: copied chars. (wchar_t *)lParam - buffer that receives print footer string.
#define MI_PRINTFONTENABLE 266 //Return: enable print font (on\off).
#define MI_PRINTFONTW 267 //Return: copied bytes. (LOGFONTW *)lParam - buffer that receives print font data.
//Open dialog
#define MI_LASTDIR 281 //Return: copied chars. (wchar_t *)lParam - buffer that receives last directory of open dialog.
#define MI_SHOWPLACESBAR 282 //Return: show places bar in open dialog (on\off).
//AKD_SETMAININFO type
//PLUGINDATA
#define MIS_SAVESETTINGS 5 //(int)lParam - see SS_* defines.
#define MIS_MDI 45 //(int)lParam - window mode, see WMD_* defines. Required program restart.
#define MIS_LANGMODULEA 51 //(char *)lParam - language module string. Required program restart.
#define MIS_LANGMODULEW 52 //(wchar_t *)lParam - language module string. Required program restart.
//Manual
#define MIS_CMDLINEBEGIN 105 //(wchar_t *)lParam - "CmdLineBegin" string.
#define MIS_CMDLINEEND 106 //(wchar_t *)lParam - "CmdLineEnd" string.
#define MIS_SHOWMODIFY 110 //(DWORD)lParam - "ShowModify" flags, see SM_* defines.
#define MIS_STATUSPOSTYPE 111 //(DWORD)lParam - "StatusPosType" type, see SPT_* defines.
#define MIS_STATUSUSERFORMAT 112 //(wchar_t *)lParam - "StatusUserFormat" string.
#define MIS_WORDBREAKCUSTOM 117 //(DWORD)lParam - "WordBreak" flags. Changes are applied for a new edit windows.
#define MIS_PAINTOPTIONS 121 //(DWORD)lParam - "PaintOptions" flags, see PAINT_* defines. Changes are applied for a new edit windows.
#define MIS_EDITSTYLE 122 //(DWORD)lParam - "EditStyle" flags, see EDS_* defines. Changes are applied for a new edit windows.
#define MIS_RICHEDITCLASS 125 //(BOOL)lParam - "RichEditClass" type. Changes are applied for a new edit windows.
#define MIS_AKELADMINRESIDENT 126 //(BOOL)lParam - AkelAdmin.exe resident - TRUE or unloaded immediately after execution - FALSE.
#define MIS_DATELOGFORMAT 129 //(wchar_t *)lParam - "DateLogFormat" string.
#define MIS_DATEINSERTFORMAT 130 //(wchar_t *)lParam - "DateInsertFormat" string.
#define MIS_AKELUPDATEROPTIONS 131 //(wchar_t *)lParam - "AkelUpdaterOptions" string.
#define MIS_URLCOMMAND 132 //(wchar_t *)lParam - "UrlCommand" string.
#define MIS_TABNAMEFIND 133 //(wchar_t *)lParam - "TabNameFind" string. Changes are applied for a new opened documents.
#define MIS_TABNAMEREP 134 //(wchar_t *)lParam - "TabNameRep" string. Changes are applied for a new opened documents.
//Menu
#define MIS_ONTOP 141 //(BOOL)lParam - always on top (on\off).
#define MIS_STATUSBAR 142 //(BOOL)lParam - show statusbar (on\off).
#define MIS_KEEPSPACE 146 //(BOOL)lParam - keep left space (on\off).
#define MIS_WATCHFILE 147 //(BOOL)lParam - watch file change (on\off).
#define MIS_SAVETIME 148 //(BOOL)lParam - save original file time (on\off).
#define MIS_SINGLEOPENFILE 152 //(BOOL)lParam - single open file (on\off).
#define MIS_SINGLEOPENPROGRAM 153 //(DWORD)lParam - single open program flags, see SOP_* defines.
#define MIS_TABOPTIONSMDI 157 //(DWORD)lParam - tab flags, see TAB_* defines.
//Settings dialog
#define MIS_EXECUTECOMMAND 171 //(wchar_t *)lParam - execution command string.
#define MIS_EXECUTEDIRECTORY 172 //(wchar_t *)lParam - execution directory string.
#define MIS_CODEPAGELIST 176 //(int *)lParam - array of codepages, last element in array is zero.
#define MIS_DEFAULTCODEPAGE 177 //(int)lParam - default codepage.
#define MIS_DEFAULTBOM 178 //(BOOL)lParam - default BOM.
#define MIS_NEWFILECODEPAGE 179 //(int)lParam - new file codepage.
#define MIS_NEWFILEBOM 180 //(BOOL)lParam - new file BOM.
#define MIS_NEWFILENEWLINE 181 //(int)lParam - new file new line, see NEWLINE_* defines.
#define MIS_LANGCODEPAGERECOGNITION 183 //(DWORD)lParam - codepage recognition language defined as LANGID.
#define MIS_CODEPAGERECOGNITIONBUFFER 184 //(DWORD)lParam - size of codepage recognition buffer.
#define MIS_SAVEPOSITIONS 192 //(BOOL)lParam - save recent file positions (on\off).
#define MIS_SAVECODEPAGES 193 //(BOOL)lParam - save recent file codepages (on\off).
#define MIS_RECENTFILES 194 //(int)lParam - number of recent files.
#define MIS_SEARCHSTRINGS 198 //(int)lParam - number of search strings.
#define MIS_FILETYPESOPEN 202 //(wchar_t *)lParam - associated file types to open.
#define MIS_FILETYPESEDIT 203 //(wchar_t *)lParam - associated file types to edit.
#define MIS_FILETYPESPRINT 204 //(wchar_t *)lParam - associated file types to print.
#define MIS_FILETYPESASSOCIATED 205 //(DWORD)lParam - associated file types, see FTA_* defines. If FTA_ flag is set file types will be associated. If FTA_ flag is not set file types will be deassociated.
#define MIS_KEYBLAYOUTOPTIONS 209 //(DWORD)lParam - keyboard layout options, see KLO_* defines.
#define MIS_SILENTCLOSEEMPTYMDI 213 //(BOOL)lParam - silently close unsaved empty MDI tab (on\off).
#define MIS_DATELOG 217 //(BOOL)lParam - insert date if file has .LOG at the beginning (on\off).
#define MIS_SAVEINREADONLYMSG 221 //(BOOL)lParam - save in read-only files warning (on\off).
#define MIS_DEFAULTSAVEEXT 224 //(wchar_t *)lParam - default saving extension string.
#define MIS_SEARCHOPTIONS 228 //(DWORD)lParam - search options, see FRF_* defines.
//Print dialog
#define MIS_PRINTMARGINS 251 //(RECT *)lParam - print margins.
#define MIS_PRINTCOLOR 255 //(DWORD)lParam - color printing, see PRNC_* defines.
#define MIS_PRINTHEADERENABLE 259 //(BOOL)lParam - enable print header (on\off).
#define MIS_PRINTHEADER 260 //(wchar_t *)lParam - print header string.
#define MIS_PRINTFOOTERENABLE 261 //(BOOL)lParam - enable print footer (on\off).
#define MIS_PRINTFOOTER 262 //(wchar_t *)lParam - print footer string.
#define MIS_PRINTFONTENABLE 266 //(BOOL)lParam - enable print font (on\off).
#define MIS_PRINTFONTW 267 //(LOGFONTW *)lParam - print font data.
//Open dialog
#define MIS_LASTDIR 281 //(wchar_t *)lParam - last directory of open dialog.
#define MIS_SHOWPLACESBAR 282 //(BOOL)lParam - show places bar in open dialog (on\off).
//AKD_GETFRAMEINFO type. See FRAMEDATA members description.
#define FI_WNDEDITPARENT 1
#define FI_WNDEDIT 2
#define FI_DOCEDIT 3
#define FI_WNDMASTER 4
#define FI_DOCMASTER 5
#define FI_WNDCLONE1 6
#define FI_DOCCLONE1 7
#define FI_WNDCLONE2 8
#define FI_DOCCLONE2 9
#define FI_WNDCLONE3 10
#define FI_DOCCLONE3 11
#define FI_CODEPAGE 12
#define FI_BOM 13
#define FI_NEWLINE 14
#define FI_MODIFIED 15
#define FI_READONLY 16
#define FI_WORDWRAP 17
#define FI_OVERTYPE 18
#define FI_FILEA 31
#define FI_FILEW 32
#define FI_FILELEN 33
#define FI_STREAMOFFSET 34
#define FI_ICONHANDLE 38
#define FI_ICONINDEX 39
#define FI_RECTEDIT 43
#define FI_RECTMASTER 44
#define FI_EDITFONTW 48
#define FI_TABSTOPSIZE 52
#define FI_TABSTOPASSPACES 53
#define FI_UNDOLIMIT 57
#define FI_DETAILEDUNDO 58
#define FI_WRAPTYPE 62
#define FI_WRAPLIMIT 63
#define FI_MARKER 64
#define FI_CARETWIDTH 68
#define FI_CARETOPTIONS 69
#define FI_ALTLINEFILL 73
#define FI_ALTLINESKIP 74
#define FI_ALTLINEBORDER 75
#define FI_RECTMARGINS 79
#define FI_LINEGAP 83
#define FI_MOUSEOPTIONS 87
#define FI_CLICKURL 88
#define FI_SHOWURL 89
#define FI_URLPREFIXESENABLE 93
#define FI_URLPREFIXES 94
#define FI_URLDELIMITERSENABLE 98
#define FI_URLLEFTDELIMITERS 99
#define FI_URLRIGHTDELIMITERS 103
#define FI_WORDDELIMITERSENABLE 107
#define FI_WORDDELIMITERS 108
#define FI_WRAPDELIMITERSENABLE 112
#define FI_WRAPDELIMITERS 113
#define FI_MAPPEDPRINTWIDTH 121
#define FI_INPUTLOCALE 125
#define FI_LOCKINHERIT 129
#define FI_FILETIME 133
#define FI_COLORS 137
#define FI_BKIMAGEFILE 140
#define FI_BKIMAGEALPHA 141
//AKD_SETFRAMEINFO type.
#define FIS_TABSTOPSIZE 1 //(int)FRAMEINFO.dwData - tabulation size in characters.
#define FIS_TABSTOPASSPACES 2 //(BOOL)FRAMEINFO.dwData - insert tabulation as spaces.
#define FIS_UNDOLIMIT 6 //(int)FRAMEINFO.dwData - undo limit.
#define FIS_DETAILEDUNDO 7 //(BOOL)FRAMEINFO.dwData - detailed undo.
#define FIS_WRAP 11 //(DWORD)FRAMEINFO.dwData - the low-order word contains the wrap type (see AEWW_* defines in AkelEdit.h). The high-order word contains the wrap limit in characters.
#define FIS_MARKER 12 //(int)FRAMEINFO.dwData - column marker position.
#define FIS_CARETWIDTH 16 //(int)FRAMEINFO.dwData - caret width.
#define FIS_CARETOPTIONS 17 //(DWORD)FRAMEINFO.dwData - caret options, see CO_* defines.
#define FIS_ALTLINES 21 //(DWORD)FRAMEINFO.dwData - alternating lines. The low-order word of FRAMEINFO.dwData contains the skip interval in lines. The high-order word of FRAMEINFO.dwData contains the fill interval in lines.
#define FIS_ALTLINEBORDER 22 //(BOOL)FRAMEINFO.dwData - draw alternating lines border.
#define FIS_RECTMARGINS 26 //(RECT *)FRAMEINFO.dwData - edit margins. FRAMEINFO.dwData contain left, top, right, bottom margins in pixels.
#define FIS_LINEGAP 30 //(int)FRAMEINFO.dwData - gap between lines.
#define FIS_MOUSEOPTIONS 34 //(DWORD)FRAMEINFO.dwData - mouse options, see MO_* defines.
#define FIS_SHOWURL 35 //(BOOL)FRAMEINFO.dwData - show URL.
#define FIS_CLICKURL 36 //(int)FRAMEINFO.dwData - number of clicks to open URL.
#define FIS_URLPREFIXESENABLE 40 //(BOOL)FRAMEINFO.dwData - URL prefixes enable.
#define FIS_URLPREFIXES 41 //(wchar_t *)FRAMEINFO.dwData - URL prefixes.
#define FIS_URLDELIMITERSENABLE 45 //(BOOL)FRAMEINFO.dwData - URL delimiters enable.
#define FIS_URLLEFTDELIMITERS 46 //(wchar_t *)FRAMEINFO.dwData - URL left delimiters.
#define FIS_URLRIGHTDELIMITERS 50 //(wchar_t *)FRAMEINFO.dwData - URL right delimiters.
#define FIS_WORDDELIMITERSENABLE 54 //(BOOL)FRAMEINFO.dwData - word delimiters enabled.
#define FIS_WORDDELIMITERS 55 //(wchar_t *)FRAMEINFO.dwData - word delimiters.
#define FIS_WRAPDELIMITERSENABLE 59 //(BOOL)FRAMEINFO.dwData - wrap delimiters enabled.
#define FIS_WRAPDELIMITERS 60 //(wchar_t *)FRAMEINFO.dwData - wrap delimiters.
#define FIS_LOCKINHERIT 68 //(DWORD)FRAMEINFO.dwData - lock inherit new document settings from current document. FRAMEINFO.dwData contain lock inherit flags, see LI_* defines.
#define FIS_COLORS 72 //(AECOLORS *)FRAMEINFO.dwData - set colors.
#define FIS_BKIMAGE 73 //(BKIMAGE *)FRAMEINFO.dwData - set background image.
//New line format
#define NEWLINE_WIN 1 //Windows/DOS new line format (\r\n).
#define NEWLINE_UNIX 2 //Unix new line format (\n).
#define NEWLINE_MAC 3 //MacOS new line format (\r).
//AKD_GOTO type
#define GT_LINE 0x1 //Go to "Line:Column".
#define GT_OFFSETBYTE 0x2 //Go to offset counted in bytes.
#define GT_OFFSETCHAR 0x4 //Go to offset counted in characters (not present in "Go to..." dialog).
//Caret options
#define CO_CARETOUTEDGE 0x00000001 //Allow caret moving out of the line edge.
#define CO_CARETVERTLINE 0x00000002 //Draw caret vertical line.
#define CO_CARETACTIVELINE 0x00000004 //Draw active line.
#define CO_CARETACTIVELINEBORDER 0x00000008 //Draw active line border.
//Mouse options
#define MO_LEFTMARGINSELECTION 0x00000001 //Enables left margin line selection with mouse.
#define MO_RICHEDITMOUSE 0x00000002 //After WM_LBUTTONUP message capture operations doesn't stopped.
#define MO_MOUSEDRAGGING 0x00000004 //Enables OLE text dragging.
#define MO_RCLICKMOVECARET 0x00000008 //WM_RBUTTONDOWN message moves caret to a click position.
#define MO_NONEWLINEMOUSESELECT 0x00000010 //Triple click and left margin click selects only line contents without new line.
#define MO_NOWHEELFONTCHANGE 0x00000020 //Don't change font size with middle button scroll and Ctrl key.
#define MO_MARGINSELUNWRAPLINE 0x00000040 //Left margin line selection with mouse selects all wrapped line.
#define MO_MBUTTONDOWNNOSCROLL 0x00000080 //No scrolling after WM_MBUTTONDOWN message.
//Keyboard layout options
#define KLO_REMEMBERLAYOUT 0x00000001 //Remember keyboard layout for each tab (MDI).
#define KLO_SWITCHLAYOUT 0x00000002 //Auto switch keyboard layout according to text under caret.
//Paint options
#define PAINT_PAINTGROUP 0x00000001 //Paint text by group of characters (default is character by character).
//With this flag some text recognition programs could start to work, printer could print faster, but highlighted symbols and combined unicode symbols can be drawn differently and editing of whose characters may become uncomfortable.
#define PAINT_NONEWLINEDRAW 0x00000002 //Disables drawing new line selection as space character.
#define PAINT_ENTIRENEWLINEDRAW 0x00000004 //Draw new line selection to the right edge.
#define PAINT_HIDESEL 0x00000008 //Hides the selection when the control loses the input focus and inverts the selection when the control receives the input focus.
#define PAINT_NOMARKERAFTERLASTLINE 0x00000010 //Disables marker painting after last line.
#define PAINT_HIDENOSCROLL 0x00000100 //Hides scroll bars instead of disabling them when they are not needed.
#define PAINT_STATICEDGE 0x00000200 //Draw thin edit window border.
#define PAINT_NOEDGE 0x00000400 //Draw no edit window border.
//Edit styles
#define EDS_GLOBALUNDO 0x00000001 //Use process heap for Undo/Redo instead of window heap. Required for AEM_DETACHUNDO and AEM_ATTACHUNDO.
//Compatibility: define same as ES_SUNKEN.
#define EDS_HEAPSERIALIZE 0x00000002 //Mutual exclusion will be used when the heap functions allocate and free memory from window heap. Serialization of heap access allows two or more threads to simultaneously allocate and free memory from the same heap.
//Compatibility: define same as ES_SAVESEL.
//Status bar position type
#define SPT_COLUMN 0x00000001 //"Line:Column". By default: "Line:Symbol".
#define SPT_LINEWRAP 0x00000002 //Wrap line numbers. By default: Non-wrap line numbers.
//Show modify
#define SM_NONE 0x00000000
#define SM_STATUSBAR 0x00000001
#define SM_MAINTITLE_SDI 0x00000002
#define SM_FRAMETITLE_MDI 0x00000004
#define SM_TABTITLE_MDI 0x00000008
//StatusBar parts
#define SBP_POSITION 0
#define SBP_MODIFY 1
#define SBP_INSERT 2
#define SBP_NEWLINE 3
#define SBP_CODEPAGE 4
#define SBP_USER 5
//"Don't open a program twice" flags
#define SOP_ON 0x00000001 //"Don't open a program twice" is on.
#define SOP_SAMEEXE 0x00000002 //"Don't open a program twice" only if AkelPad executable is the same.
//Tab options MDI
#define TAB_VIEW_NONE 0x00000001 //Hide tab bar.
#define TAB_VIEW_TOP 0x00000002 //Show tab bar on top.
#define TAB_VIEW_BOTTOM 0x00000004 //Show tab bar at the bottom.
#define TAB_TYPE_STANDARD 0x00000100 //Standard tab bar style.
#define TAB_TYPE_BUTTONS 0x00000200 //Buttons tab bar style.
#define TAB_TYPE_FLATBUTTONS 0x00000400 //Flat buttons tab bar style.
#define TAB_SWITCH_NEXTPREV 0x00010000 //Switch between tabs: Next-Previous.
#define TAB_SWITCH_RIGHTLEFT 0x00020000 //Switch between tabs: Left-Right.
#define TAB_ADD_AFTERCURRENT 0x00080000 //Create tabs after the current one.
#define TAB_NOADD_LBUTTONDBLCLK 0x00100000 //Don't create new tab by left button double click on the tab bar.
#define TAB_NOADD_MBUTTONDOWN 0x00200000 //Don't create new tab by middle button click on the tab bar.
#define TAB_NODEL_LBUTTONDBLCLK 0x00400000 //Don't close tab by left button double click on the tab.
#define TAB_NODEL_MBUTTONDOWN 0x00800000 //Don't close tab by middle button click on the tab.
//File types association
#define FTA_ASSOCIATE 0x00000001 //Internal.
#define FTA_DEASSOCIATE 0x00000002 //Internal.
#define FTA_OPEN 0x00000004 //Open file types.
#define FTA_EDIT 0x00000008 //Edit file types.
#define FTA_PRINT 0x00000010 //Print file types.
//Color printing
#define PRNC_TEXT 0x01 //Print colored text.
#define PRNC_BACKGROUND 0x02 //Print on colored background.
#define PRNC_SELECTION 0x04 //Print text selection.
//Main menu
#define MENU_FILE_POSITION 0
#define MENU_EDIT_POSITION 1
#define MENU_VIEW_POSITION 2
#define MENU_OPTIONS_POSITION 3
#define MENU_MDI_POSITION 4
#define MENU_ABOUT_POSITION 5
//Popup menu
#define MENU_POPUP_EDIT 0
#define MENU_POPUP_VIEW 1
#define MENU_POPUP_CODEPAGE 2
#define MENU_POPUP_HEADLINE 3
//Submenu position
#define MENU_FILE_RECENTFILES_3X 12
#define MENU_FILE_RECENTFILES_4X 14
#define MENU_VIEW_LANGUAGE_3X 11
#define MENU_VIEW_LANGUAGE_4X 9
#define MENU_POPUP_CODEPAGE_OPEN 0
#define MENU_POPUP_CODEPAGE_SAVE 2
//INI value types
#define INI_DWORD 1
#define INI_BINARY 2
#define INI_STRINGANSI 3
#define INI_STRINGUNICODE 4
//Options flags
#define POB_READ 0x01 //Begins read options.
#define POB_SAVE 0x02 //Begins save options.
#define POB_CLEAR 0x04 //Begins new save options (POB_SAVE|POB_CLEAR).
#define POB_SCRIPTS 0x10 //Begins Scripts plugin options.
//Option type
#define PO_DWORD 1 //32-bit number.
#define PO_BINARY 2 //Binary data in any form.
#define PO_STRING 3 //Null-terminated string.
#define PO_REMOVE 10 //Delete option.
//Support flags
#define PDS_SUPPORTALL 0x00000000 //Function support everything (default).
#define PDS_NOAUTOLOAD 0x00000001 //Function doesn't support autoload.
#define PDS_NOANSI 0x00000002 //Function doesn't support ansi API and can be executed only on unicode Windows (WinNT/2000/XP/2003/Vista/Seven).
#define PDS_NOUNICODE 0x00000004 //Function doesn't support unicode API.
#define PDS_NOSDI 0x00000008 //Function doesn't support SDI mode.
#define PDS_NOMDI 0x00000010 //Function doesn't support MDI mode.
#define PDS_NOPMDI 0x00000020 //Function doesn't support PMDI mode.
#define PDS_NORICHEDIT 0x00000040 //Reserved.
#define PDS_GETSUPPORT 0x10000000 //Flag is set if caller wants to get PDS_* flags without function execution.
#define PDS_STRANSI 0x20000000 //Flag is set if caller passes Ansi strings in external call arguments (PLUGINDATA.lParam).
#define PDS_STRWIDE 0x40000000 //Flag is set if caller passes Unicode strings in external call arguments (PLUGINDATA.lParam).
//If PDS_STRANSI and PDS_STRWIDE not specified then one of these flags will be set automatically depending on Windows version.
//AKD_DLLCALL flags
#define DLLCF_ONPROGRAMLOAD 0x001 //Don't use it. For internal code only.
#define DLLCF_SWITCHAUTOLOAD 0x004 //If function running after call then turn on autoload, if not then turn off autoload.
#define DLLCF_SAVENOW 0x008 //Using with DLLCF_SWITCHAUTOLOAD. Call AKD_DLLSAVE with DLLSF_NOW after switching autoload flag.
#define DLLCF_SAVEONEXIT 0x010 //Using with DLLCF_SWITCHAUTOLOAD. Call AKD_DLLSAVE with DLLSF_ONEXIT after switching autoload flag.
//AKD_DLLSAVE flags
#define DLLSF_NOW 0x1 //Save plugins stack immediately.
#define DLLSF_ONEXIT 0x2 //Save plugins stack on program exit.
//AKD_TRANSLATEMESSAGE types
#define TMSG_GLOBAL 0x01 //Translate hotkey from global accelerator table (PLUGINDATA.hGlobalAccel).
#define TMSG_DIALOG 0x02 //Translate message from modeless (see AKD_SETMODELESS) or dockable dialog (see AKD_DOCK).
#define TMSG_PLUGIN 0x04 //Translate plugin message (see AKD_DLL*, AKD_CALLPROC, AKD_POSTMESSAGE).
#define TMSG_HOTKEY 0x08 //Translate plugin hotkey.
#define TMSG_ACCELERATOR 0x10 //Translate hotkey from main accelerator table (PLUGINDATA.hMainAccel).
#define TMSG_DEFAULT 0x20 //Default message processing.
#define TMSG_ALL (TMSG_GLOBAL |\
TMSG_DIALOG |\
TMSG_PLUGIN |\
TMSG_HOTKEY |\
TMSG_ACCELERATOR |\
TMSG_DEFAULT)
//Context menu owner
#define NCM_EDIT 1 //Edit control.
#define NCM_TAB 2 //Tab control.
#define NCM_STATUS 3 //Status bar control.
//AKD_FRAMEFIND flags
#define FWF_CURRENT 1 //Retrieve current frame data pointer. lParam not used.
#define FWF_NEXT 2 //Retrieve next frame data pointer in frame stack. lParam is a frame data pointer.
#define FWF_PREV 3 //Retrieve previous frame data pointer in frame stack. lParam is a frame data pointer.
#define FWF_BYINDEX 4 //Retrieve frame data by index in frame stack. lParam is frame index. First frame has index 1, last -1.
#define FWF_BYFILENAME 5 //Retrieve frame data by full file name. lParam is full file name string.
// For AKD_FRAMEFINDA string is ansi.
// For AKD_FRAMEFINDW string is unicode.
#define FWF_BYEDITWINDOW 6 //Retrieve frame data by edit window handle. lParam is edit window handle or NULL for current edit window handle.
#define FWF_BYEDITDOCUMENT 7 //Retrieve frame data by edit document handle. lParam is edit document handle or NULL for current edit document handle.
#define FWF_BYTABINDEX 8 //Retrieve frame data by tab item index. lParam is tab item index.
#define FWF_TABNEXT 9 //Retrieve next tab item frame data. lParam is a frame data pointer.
#define FWF_TABPREV 10 //Retrieve previous tab item frame data. lParam is a frame data pointer.
//AKD_FRAMEACTIVATE and AKDN_FRAME_ACTIVATE flags
#define FWA_NOUPDATEORDER 0x00000001 //Don't update access order during activating.
#define FWA_NOUPDATEEDIT 0x00000002 //For WMD_PMDI mode. Don't redraw edit control area during activating.
#define FWA_NOVISUPDATE 0x00000004 //For WMD_PMDI mode. Don't make any visual updates during activating. Use it only if you later will activate back frame that has lost active status.
//AKDN_FRAME_ACTIVATE only flags:
#define FWA_NOTIFY_CREATE 0x00000100 //Frame activating after creation.
#define FWA_NOTIFY_BEFOREDESTROY 0x00000200 //Frame activating for destroying.
#define FWA_NOTIFY_AFTERDESTROY 0x00000400 //Previous frame activating because current one has been destroyed.
#define FWA_NOTIFY_REOPEN 0x00000800 //Frame activating before reopening document.
//AKD_FRAMEDESTROY return value
#define FWDE_SUCCESS 0 //Operation is successful.
#define FWDE_ABORT 1 //Operation is aborted by user.
#define FWDE_LASTTAB 2 //For WMD_PMDI mode. Last tab cannot be destroyed.
#define FWDE_NOWINDOW 3 //Frame doesn't have associated edit window (FRAMEDATA.ei.hWndEdit == NULL).
//AKD_FRAMESTATS flags
#define FWS_COUNTALL 0 //Count of windows.
#define FWS_COUNTMODIFIED 1 //Count of modified windows.
#define FWS_COUNTSAVED 2 //Count of unmodified windows.
#define FWS_CURSEL 3 //Active window zero based index.
//Lock inherit new document settings from current document
#define LI_FONT 0x00000001 //Lock inherit font.
#define LI_COLORS 0x00000002 //Lock inherit colors.
#define LI_BKIMAGE 0x00000004 //Lock inherit background image.
#define LI_WRAP 0x00000008 //Lock inherit wrapping.
//Find/Replace flags
#define FRF_DOWN 0x00000001 //Same as AEFR_DOWN.
#define FRF_WHOLEWORD 0x00000002 //Same as AEFR_WHOLEWORD.
#define FRF_MATCHCASE 0x00000004 //Same as AEFR_MATCHCASE.
#define FRF_WHOLEWORDGOODSTART 0x00000010 //Internal.
#define FRF_WHOLEWORDGOODEND 0x00000020 //Internal.
#define FRF_FINDFROMREPLACE 0x00000040 //Internal.
#define FRF_REGEXPNONEWLINEDOT 0x00040000 //Symbol . specifies any character except new line. Uses with FRF_REGEXP.
#define FRF_REGEXP 0x00080000 //Same as AEFR_REGEXP.
#define FRF_UP 0x00100000
#define FRF_BEGINNING 0x00200000
#define FRF_SELECTION 0x00400000
#define FRF_ESCAPESEQ 0x00800000
#define FRF_ALLFILES 0x01000000
#define FRF_REPLACEALLANDCLOSE 0x02000000
#define FRF_CHECKINSELIFSEL 0x04000000
#define FRF_CYCLESEARCH 0x08000000
#define FRF_CYCLESEARCHPROMPT 0x10000000
#define FRF_REPLACEALLNOMSG 0x20000000
//AKD_PASTE
#define PASTE_ANSI 0x00000001 //Paste text as ANSI. Default is paste as Unicode text, if no Unicode text available ANSI text will be used.
#define PASTE_COLUMN 0x00000002 //Paste to column selection.
#define PASTE_AFTER 0x00001000 //Paste text after caret.
#define PASTE_SINGLELINE 0x00002000 //Paste multiline text to single line edit control. All new lines replaced with '\r'.
//AKD_RECODESEL flags
#define RCS_DETECTONLY 0x00000001 //Don't do text replacement, only detect codepages.
//AKD_GETMODELESS types
#define MLT_NONE 0 //No registered modeless dialog open.
#define MLT_CUSTOM 1 //Dialog registered with AKD_SETMODELESS.
#define MLT_RECODE 2 //Recode dialog.
#define MLT_FIND 3 //Find dialog.
#define MLT_REPLACE 4 //Replace dialog.
#define MLT_GOTO 5 //Go to dialog.
//DIALOGRESIZEMSG flags
#define DRM_PAINTSIZEGRIP 0x2 //Draw resize grid.
//DIALOGRESIZE type
#define DRS_SIZE 0x1 //Resize control. Can be combined with DRS_X ot DRS_Y.
#define DRS_MOVE 0x2 //Move control. Can be combined with DRS_X ot DRS_Y.
#define DRS_X 0x4 //X value. Can be combined with DRS_SIZE ot DRS_MOVE.
#define DRS_Y 0x8 //Y value. Can be combined with DRS_SIZE ot DRS_MOVE.
//Dock side
#define DKS_LEFT 1
#define DKS_RIGHT 2
#define DKS_TOP 3
#define DKS_BOTTOM 4
//Dock flags
#define DKF_OWNTHREAD 0x00000001 //Dock window has its own thread.
#define DKF_FIXEDSIZE 0x00000002 //Dock window isn't resizeable.
#define DKF_DRAGDROP 0x00000004 //Dock window has drag-and-drop support, the DOCK.rcDragDrop member is valid.
#define DKF_HIDDEN 0x00000008 //Dock window isn't visible.
#define DKF_NODROPLEFT 0x00000010 //Disable drag-and-drop to the left side.
#define DKF_NODROPRIGHT 0x00000020 //Disable drag-and-drop to the right side.
#define DKF_NODROPTOP 0x00000040 //Disable drag-and-drop to the top side.
#define DKF_NODROPBOTTOM 0x00000080 //Disable drag-and-drop to the bottom side.
//Dock action
#define DK_ADD 0x00000001 //Add new dockable window.
#define DK_DELETE 0x00000002 //Delete dockable window.
#define DK_SUBCLASS 0x00000004 //Assign dockable window handle (DOCK.hWnd).
#define DK_UNSUBCLASS 0x00000008 //Deassign dockable window handle (DOCK.hWnd).
#define DK_SETLEFT 0x00000010 //Set DKS_LEFT side.
#define DK_SETRIGHT 0x00000020 //Set DKS_RIGHT side.
#define DK_SETTOP 0x00000040 //Set DKS_TOP side.
#define DK_SETBOTTOM 0x00000080 //Set DKS_BOTTOM side.
#define DK_HIDE 0x00000100 //Hide dockable window and set DKF_HIDDEN flag.
#define DK_SHOW 0x00000200 //Show dockable window and remove DKF_HIDDEN flag.
#define DK_FINDDOCK 0x00000400 //Find dock by dockable window handle (DOCK.hWnd). Cannot be combined with DK_FINDCHILD.
#define DK_FINDCHILD 0x00000800 //Find dock by dockable window or its child handle (DOCK.hWnd). Cannot be combined with DK_FINDDOCK.
//Dock capture
#define DKC_SIZING 1
#define DKC_DRAGDROP 2
//AKD_SETBUTTONDRAW flags
#define BIF_BITMAP 0x001 //Bitmap handle is used in BUTTONDRAW.hImage.
#define BIF_ICON 0x002 //Icon handle is used in BUTTONDRAW.hImage.
#define BIF_CROSS 0x004 //Draw small cross 8x7. BUTTONDRAW.hImage is ignored.
#define BIF_DOWNARROW 0x008 //Draw small down arrow 7x4. BUTTONDRAW.hImage is ignored.
#define BIF_UPARROW 0x010 //Draw small up arrow 7x4. BUTTONDRAW.hImage is ignored.
#define BIF_LEFTARROW 0x020 //Draw small left arrow 4x7. BUTTONDRAW.hImage is ignored.
#define BIF_RIGHTARROW 0x040 //Draw small right arrow 4x7. BUTTONDRAW.hImage is ignored.
#define BIF_ETCHED 0x100 //Draw edge around button.
#define BIF_ENABLEFOCUS 0x200 //Draw focus rectangle when button receive focus.
//BUTTONMESSAGEBOX flags
#define BMB_DEFAULT 0x001 //Default button.
#define BMB_DISABLED 0x002 //Button is disabled.
//WM_INITMENU lParam
#define IMENU_EDIT 0x00000001
#define IMENU_CHECKS 0x00000004
$$$ DEFINES1 END $$$
//// Structures
#ifndef _HSTACK_STRUCT_
#define _HSTACK_STRUCT_
typedef struct {
INT_PTR first;
INT_PTR last;
} HSTACK;
#endif
#ifndef __AKELEDIT_H__
typedef struct _AELINEDATA {
struct _AELINEDATA *next;
struct _AELINEDATA *prev;
wchar_t *wpLine;
int nLineLen;
BYTE nLineBreak;
BYTE nLineFlags;
WORD nReserved;
int nLineWidth;
int nSelStart;
int nSelEnd;
} AELINEDATA;
typedef struct _AELINEINDEX {
int nLine;
AELINEDATA *lpLine;
} AELINEINDEX;
typedef struct _AECHARINDEX {
int nLine;
AELINEDATA *lpLine;
int nCharInLine;
} AECHARINDEX;
typedef struct {
AECHARINDEX ciMin;
AECHARINDEX ciMax;
} AECHARRANGE;
typedef struct {
DWORD dwFlags;
COLORREF crCaret;
COLORREF crBasicText;
COLORREF crBasicBk;
COLORREF crSelText;
COLORREF crSelBk;
COLORREF crActiveLineText;
COLORREF crActiveLineBk;
COLORREF crUrlText;
COLORREF crActiveColumn;
COLORREF crColumnMarker;
COLORREF crUrlCursorText;
COLORREF crUrlVisitText;
COLORREF crActiveLineBorder;
COLORREF crAltLineText;
COLORREF crAltLineBk;
COLORREF crAltLineBorder;
} AECOLORS;
DECLARE_HANDLE (AEHDOC);
typedef LRESULT (CALLBACK *AEEditProc)(AEHDOC hDoc, UINT uMsg, WPARAM wParam, LPARAM lParam);
#endif
DECLARE_HANDLE (HINIFILE);
DECLARE_HANDLE (HINISECTION);
DECLARE_HANDLE (HINIKEY);
typedef void (CALLBACK *WNDPROCRET)(CWPRETSTRUCT *);
typedef void (CALLBACK *CALLPROC)(void *);
typedef BOOL (CALLBACK *PLUGINPROC)(void *lpParameter, LPARAM lParam, DWORD dwSupport);
//lpParameter Procedure parameter. Specified in AKD_DLLADD message (PLUGINADD.lpParameter).
//lParam Input data. Specified in AKD_DLLCALL message.
//dwSupport See PDS_* defines. Specified in AKD_DLLCALL message.
//
//Return Value
// TRUE catch hotkey.
// FALSE do default hotkey processing.
typedef struct {
HWND hWndEdit; //Edit window.
AEHDOC hDocEdit; //Edit document.
const BYTE *pFile; //Current editing file.
// const char *pFile if bOldWindows == TRUE
// const wchar_t *pFile if bOldWindows == FALSE
const char *szFile; //Current editing file (Ansi).
const wchar_t *wszFile; //Current editing file (Unicode).
int nCodePage; //Current code page.
BOOL bBOM; //Current BOM.
int nNewLine; //Current new line format, see NEWLINE_* defines.
BOOL bModified; //File has been modified.
BOOL bReadOnly; //Read only.
BOOL bWordWrap; //Word wrap.
BOOL bOvertypeMode; //Overtype mode.
HWND hWndMaster; //Master window.
AEHDOC hDocMaster; //Master document.
HWND hWndClone1; //First clone window.
AEHDOC hDocClone1; //First clone document.
HWND hWndClone2; //Second clone window.
AEHDOC hDocClone2; //Second clone document.
HWND hWndClone3; //Third clone window.
AEHDOC hDocClone3; //Third clone document.
} EDITINFO;
typedef struct _RECENTCARETITEM {
struct _RECENTCARETITEM *next;
struct _RECENTCARETITEM *prev;
INT_PTR nCaretOffset;
} RECENTCARETITEM;
typedef struct {
RECENTCARETITEM *first;
RECENTCARETITEM *last;
} STACKRECENTCARET;
typedef struct _FRAMEDATA {
struct _FRAMEDATA *next;
struct _FRAMEDATA *prev;
//Edit state external
HWND hWndEditParent; //Edit parent window.
EDITINFO ei; //Edit info.
char szFile[MAX_PATH]; //Frame file (Ansi).
wchar_t wszFile[MAX_PATH]; //Frame file (Unicode).
int nFileLen; //Frame file length.
int nStreamOffset; //":" symbol offset in FRAMEDATA.wszFile.
HICON hIcon; //Frame icon.
int nIconIndex; //Frame ImageList icon index.
RECT rcEditWindow; //Edit RECT. rcEditWindow.right - is width and rcEditWindow.bottom is height.
RECT rcMasterWindow; //Master window RECT. rcMasterWindow.right - is width and rcMasterWindow.bottom is height.
//Edit settings (AkelPad)
DWORD dwLockInherit; //See LI_* defines.
LOGFONTW lf; //Edit font.
BOOL bTabStopAsSpaces; //Insert tab stop as spaces.
DWORD dwCaretOptions; //See CO_* defines.
DWORD dwMouseOptions; //See MO_* defines.
int nClickURL; //Number of clicks to open URL.
BOOL bUrlPrefixesEnable; //URL prefixes enable.
BOOL bUrlDelimitersEnable; //URL delimiters enable.
BOOL bWordDelimitersEnable; //Word delimiters enabled.
BOOL bWrapDelimitersEnable; //Wrap delimiters enabled.
DWORD dwMappedPrintWidth; //Mapped print page width.
//Edit settings (AkelEdit)
RECT rcEditMargins; //Edit margins.
int nTabStopSize; //Tab stop size.
int nUndoLimit; //Undo limit.
BOOL bDetailedUndo; //Detailed undo.
DWORD dwWrapType; //Wrap type AEWW_WORD or AEWW_SYMBOL.
DWORD dwWrapLimit; //Wrap characters limit, zero if wrap by window edge.
DWORD dwMarker; //Vertical marker, zero if no marker set.
int nCaretWidth; //Caret width.
DWORD dwAltLineFill; //Alternating lines fill interval.
DWORD dwAltLineSkip; //Alternating lines skip interval.
BOOL bAltLineBorder; //Draw alternating lines border.
DWORD dwLineGap; //Line gap.
BOOL bShowURL; //Show URL.
wchar_t wszUrlPrefixes[URL_PREFIXES_SIZE]; //URL prefixes.
wchar_t wszUrlLeftDelimiters[URL_DELIMITERS_SIZE]; //URL left delimiters.
wchar_t wszUrlRightDelimiters[URL_DELIMITERS_SIZE]; //URL right delimiters.
wchar_t wszWordDelimiters[WORD_DELIMITERS_SIZE]; //Word delimiters.
wchar_t wszWrapDelimiters[WRAP_DELIMITERS_SIZE]; //Wrap delimiters.
wchar_t wszBkImageFile[MAX_PATH]; //Background image file.
int nBkImageAlpha; //Alpha transparency value that ranges from 0 to 255.
HBITMAP hBkImageBitmap; //Background image handle.
AECOLORS aec; //Edit colors.
//Edit state internal. AKD_FRAMEINIT not copy data below.
AEEditProc lpEditProc; //Edit window procedure.
FILETIME ft; //File time.
HKL dwInputLocale; //Keyboard layout.
STACKRECENTCARET hRecentCaretStack; //Recent caret stack.
RECENTCARETITEM *lpCurRecentCaret; //Current recent caret position.
//Find/Replace
INT_PTR nCompileErrorOffset; //Contain pattern offset, if error occurred during compile pattern.
BOOL bCompileErrorReplace; //TRUE - error in "ReplaceWith" complitaion, FALSE - error in "FindIt" complitaion.
//Statusbar
AECHARRANGE crPrevSel;
INT_PTR nSelSubtract;
INT_PTR nCaretRichOffset;
INT_PTR nCaretByteOffset;
int nCaretChar;
int nCaretLine;
int nCaretColumn;
int nLineCountAll;
int nLineCountSel;
int nLineSelBegin;
int nLineSelEnd;
INT_PTR nRichCount;
int nFontPoint;
BOOL bCapsLock;
BOOL bNumLock;
BOOL bReachedEOF;
INT_PTR nReplaceCount;
} FRAMEDATA;
typedef struct {
DWORD cb; //Size of the structure.
HWND hMainWnd; //Main window.
DWORD dwAkelDllVersion; //Current AkelDLL version. Set it to AKELDLL.
DWORD dwExeMinVersion3x; //Required minimum AkelPad 3.x version.
//Set as MAKE_IDENTIFIER(x, x, x, x) or.
//If not supported MAKE_IDENTIFIER(-1, -1, -1, -1).
DWORD dwExeMinVersion4x; //Required minimum AkelPad 4.x version.
//Set as MAKE_IDENTIFIER(x, x, x, x) or.
//If not supported MAKE_IDENTIFIER(-1, -1, -1, -1).
const char *pPluginName; //Plugin unique name.
} PLUGINVERSION;
typedef struct _PLUGINFUNCTION {
struct _PLUGINFUNCTION *next;
struct _PLUGINFUNCTION *prev;
const BYTE *pFunction; //Function name, format "Plugin::Function".
// const char *pFunction if bOldWindows == TRUE
// const wchar_t *pFunction if bOldWindows == FALSE
char szFunction[MAX_PATH]; //Function name (Ansi).
wchar_t wszFunction[MAX_PATH]; //Function name (Unicode).
int nFunctionLen; //Function name length.
WORD wHotkey; //Function hotkey. See HKM_GETHOTKEY message return value (MSDN).
BOOL bAutoLoad; //TRUE if function has autoload flag.
//FALSE if function has no autoload flag.
BOOL bRunning; //Function is running.
PLUGINPROC PluginProc; //Function procedure.
void *lpParameter; //Procedure parameter.
int nRefCount; //Internal.