Compare commits

...

412 Commits

Author SHA1 Message Date
7909738a09 add get_list(networks) to plugin api 2013-06-23 01:19:02 -04:00
6e3f05fcc7 Fixed indent: spaces -> tabs. 2013-06-20 19:03:26 +01:00
d8286a63ec Add more uri schemes 2013-06-19 18:57:52 -03:00
9854b100fb Detect Spotify URIs 2013-06-19 05:07:45 -04:00
ef5588b9c0 Use chat.freenode.net 2013-06-18 22:38:10 -03:00
64ba92593e fix merge conflict 2013-06-18 20:40:07 -04:00
33b5dc1c75 Use tabs 2013-06-18 21:20:09 -03:00
02139fbb79 Handle IPv6 addresses correcly in fe_open_url_locale(). 2013-06-19 00:15:47 +01:00
9ef1d1db96 Now WORD_HOST6 is handled the same way as WORD_HOST. 2013-06-18 23:30:38 +01:00
225acd0ce2 Merge pull request #649 from RichardHitt/urlgrabber
Fix urlgrabber right click selection.
2013-06-18 15:08:56 -07:00
b4496216db Fix urlgrabber right click selection. 2013-06-18 14:53:18 -07:00
d88c4ad411 Added a few more useful url schemes. 2013-06-18 12:32:55 +01:00
8b217981ed Removed unused argument of make_re(). 2013-06-18 12:07:46 +01:00
8ce8a359c1 Now url_check_word() returns WORD_HOST6 when a ipv6 address is matched. 2013-06-18 12:01:39 +01:00
55734baed8 Fix IPv6 addr matching in url: must be enclosed in []. 2013-06-17 22:43:18 +01:00
52ce55341b Fix Open Data Folder on unix
Mentioned in #646
2013-06-16 16:20:06 -03:00
e4b6f4b375 Refined IPv6 address matching in url.c. 2013-06-16 20:16:58 +01:00
32dee82c58 Added support for passwords in userinfo of urls. 2013-06-16 20:00:35 +01:00
2870586cf9 Fixed irc:// and ircs:// url matching: irc://freenode was not working because
"freenode" doesn't match a hostname.
2013-06-16 19:11:26 +01:00
cb1975f450 Fixed file:// url matching. 2013-06-16 19:09:50 +01:00
805b33552b Rework url matching to make it easier to add schemes.
The new way allows great control of what a url is composed of.

Added a bunch of new schemes.
2013-06-16 15:36:52 +01:00
6bc05a8bc8 Improved host matching in url:
* Refined ipv4 addr
 * Added ipv6 addr
2013-06-16 04:22:28 +01:00
3ffae231de Fix building with static spell 2013-06-15 21:52:04 -03:00
6a7557da01 Merge branch 'master' of http://github.com/hexchat/hexchat 2013-06-15 17:26:13 -07:00
d7045e2b61 Fix Fedora-19 Segmentation fault, bugid 968817. 2013-06-15 17:21:55 -07:00
e68635b8e4 Add configure patch from gentoo 2013-06-15 17:26:10 -03:00
7ef8d0d443 More autojoin wording tweaks 2013-06-13 20:53:55 -04:00
9b958ed393 Use snprintf 2013-06-13 18:38:59 -03:00
84e8c658f6 Tweak travis template 2013-06-13 15:33:25 -04:00
21a5eb2702 Formatting 2013-06-13 16:20:58 -03:00
1d62465e5b Add irc notifications to travis 2013-06-13 15:08:35 -04:00
cb1b1c6e1c Tweak autojoin wording 2013-06-13 15:55:38 -03:00
8be56d7003 Don't open libcanberra connection for every event
Closes #645
2013-06-12 10:41:52 -04:00
8ce1a9476d Merge pull request #640 from orium/default-language
Default language
2013-06-09 14:10:55 -07:00
0689b54827 Add irc_ban_type to preferences 2013-06-09 16:51:57 -03:00
b569943059 Specify what for completion amount 2013-06-09 16:01:00 -03:00
eb001433e4 Emit FOUNDIP in server session 2013-06-09 15:55:56 -03:00
a591c875ae Add completion_amount to prefs
... and remove completion_auto which is confusing to say the least.
2013-06-09 15:48:42 -03:00
08cd36bef0 Fix printing ipv6 addresses with identd
Closes #639
2013-06-09 10:42:42 -03:00
5d0599976e Add more mnemonics to the menu 2013-06-08 20:09:22 -04:00
2e014bbc72 Merge pull request #641 from orium/possible-buffer-overflow-fix
Fixed possible overflow in create_mask().
2013-06-08 02:45:00 -07:00
88e9611444 Minor cosmetic changes 2013-06-08 03:14:24 +01:00
97e88b885a Renamed tbuf to buf in create_mask() to avoid confusion. 2013-06-08 03:01:36 +01:00
f84476cf87 Fixed possible overflow in create_mask(). 2013-06-08 02:56:36 +01:00
473ab16739 Now the default configuration tries to set the language from the system
locale, and defaults to english if no language match.

This closes #473.
2013-06-08 02:34:01 +01:00
951292abe1 Change default irc_ban_type to 1 2013-06-07 09:55:56 -03:00
612032c9f8 Add QUIET command 2013-06-07 08:24:13 -04:00
0dd9ac2e44 Take two at fixing xtext copying to secondary clipboard 2013-06-07 08:20:36 -03:00
8f551de4f4 Merge pull request #636 from Remmy/master
Addition to the list of available IRC networks. Serenity-IRC is a small friendly network which has been around since 2003.
2013-06-07 01:31:41 -07:00
0c2e08cf2b Add Serenity-IRC to the list of networks available by default. 2013-06-07 04:58:34 +02:00
0e420fbee8 Save chanopt after any changes 2013-06-06 19:16:50 -04:00
cf505b850b Add chanopt for stripping colors 2013-06-06 17:47:01 -04:00
fd762303b0 Add autoconnect option to menu of networks 2013-06-06 16:49:57 -04:00
a6f05db34b Make autojoin a toggle menu 2013-06-06 16:12:59 -04:00
df0ee53765 Handle /CAP LIST output
Closes #635
2013-06-05 13:35:30 -03:00
d0b3476839 update help message for /menu 2013-06-05 08:27:16 -04:00
4d16f5bf28 Add missing gtk_tree_path_free() 2013-06-04 12:32:51 -03:00
c45cc78548 Add copy option to right click in banlist
Closes #626
2013-06-04 12:25:12 -03:00
d16aedf6c4 Merge pull request #634 from youknowone/ipv6
Retrieve reachable addresses only.
2013-06-04 05:04:48 -07:00
d3a27947fe Retrieve reachable addresses only.
AI_ADDRCONFIG helps not to try to connect unreachable ipv6 address if
user doesn't have ipv6 network stack.
2013-06-04 20:19:37 +09:00
42e3587fd5 copy xtext selection to all clipboards 2013-06-04 07:00:08 -03:00
e3f699a9d8 Improve error message from /load -e 2013-06-04 06:34:15 -03:00
5201f0fd06 Python: revert 43bd9483ce
Will possibly come back to this at a later time...
2013-06-04 06:13:28 -03:00
df0e97550b fix loading startup.txt automatically 2013-06-04 06:07:51 -03:00
983b4ace89 treat banlist event as a generic list event (for quiets etc) 2013-06-03 08:19:27 -04:00
f0684dc74e translate servlist tabs 2013-06-02 20:50:43 -04:00
39923e05f3 Rename favorite channels to autojoin channels 2013-06-02 20:44:05 -04:00
51bf9165b2 Merge pull request #633 from FionnK/master
Add IRCNode to network list
2013-06-02 17:27:50 -07:00
f1735f3ae1 Remove IPv6 check for IRCNode entry in server list. 2013-06-03 02:21:42 +02:00
2ba785f648 Add IRCNode to the server list. 2013-06-03 02:10:44 +02:00
c9b7a3f86e Python: return true/false from set/del_pluginpref 2013-06-02 00:29:34 -03:00
43bd9483ce Python: Save pluginprefs to seperate files 2013-06-02 00:22:00 -03:00
1277b4c30f be more specific about sysinfo menu entry 2013-06-01 19:06:58 -04:00
e1ce1c90f7 configure.ac: Use pkg-config's CFLAGS for libxml2 instead of guessing our own. 2013-06-01 13:46:33 -07:00
f45c2dd061 Add valleynode to network list
Closes #631
2013-05-31 20:12:21 -03:00
855c20501b fix crash 2013-05-30 22:23:00 -03:00
945251c6b8 add .js to list of loadable filetypes 2013-05-29 01:55:41 -03:00
e47dd3eb89 Don't send previous session's password
closes #616
2013-05-25 20:47:16 -03:00
c9c8993b9d Merge pull request #625 from orium/network-name-improve
Improved server_get_network()
2013-05-25 16:31:51 -07:00
d934e60c2b Improved server_get_network(): if we don't have the current network in the
network list use the server name in received in event 005.
(This fixes the problem that the network (%n) in the log file names would be
"NETWORK" instead of the real network name (this happened if the network was
not in the network list).)
2013-05-25 22:31:45 +01:00
11478719cd Merge pull request #624 from Niichan/master
PonyChat added to network list
2013-05-24 21:12:00 -07:00
7284addb09 Added PonyChat to network list 2013-05-24 21:01:06 -07:00
270cde42f1 Merge pull request #590 from orium/run-as-root-589-504
Now hexchat doesn't abnormally terminate when started as root.
2013-05-24 15:01:27 -07:00
b690098941 Merge pull request #622 from orium/null-ptr-favchan-fix
Fixed null pointer deref when we try to autojoin a channel
2013-05-24 14:07:14 -07:00
fffe9f4bd9 Restored inbound.c to make the pull request cleaner. 2013-05-24 22:04:34 +01:00
7353bf2698 Followed richtroye suggestion and implemented the net == NULL guard in
servlist_favchan_find().
2013-05-24 21:49:46 +01:00
133b0f7d94 Fixed null pointer deref when we try to autojoin a channel of a network not
in the network list.
2013-05-24 20:29:15 +01:00
4878012065 Merge pull request #621 from orium/dictionaries-update-fix
Spell check dictionaries were not being updated when changed
2013-05-24 08:53:48 -07:00
4402ea34de Fixed mistake in last commit. 2013-05-24 16:46:35 +01:00
faa53a5335 Spell check dictionaries were not being updated when changed. 2013-05-24 00:01:25 +01:00
44a88fc1ab Merge pull request #618 from orium/server-command-password-fix
Fix issue with /server command
2013-05-23 07:28:58 -07:00
d3ce4f64f6 Passing a password to the /server command was ignored because the login method
was not set.
2013-05-23 13:22:34 +01:00
fcdd85ae5e Merge pull request #603 from orium/lag-meter-stuck
Fix an issue where the lag meter could get stuck after reconnect
2013-05-22 17:17:28 -07:00
fd71bb768a Python: Allow unhooking commands and prints by name 2013-05-22 19:30:49 -03:00
66bb79ef10 Improve sort keybinding in servlist
also disable auto sorting on fav channels, closes #606
2013-05-20 13:19:20 -03:00
3b4cc9d806 Use png instead of svg 2013-05-20 15:59:41 +02:00
79221c403b Temporary workaround for reconnect crashes on win32
Yes, we really need to fix this ASAP
2013-05-20 14:39:24 +02:00
0ab11cc09a Add structs and use treeview 2013-05-20 13:21:27 +02:00
1432ecfb33 Sample code docs for challengeauth_response() 2013-05-20 12:38:50 +02:00
341cfbb527 Set up Doxyfile 2013-05-20 12:31:09 +02:00
78573ae0c9 Add default Doxyfile 2013-05-20 12:24:25 +02:00
8a9d3e21f2 Update dirent.h win32 implementation 2013-05-20 00:22:20 +02:00
8655c4b007 Reorganize Preferences 2013-05-19 20:43:21 +02:00
5fa23341b3 Avoid useless strdup() and free() calls 2013-05-19 12:17:37 +02:00
67274f91e9 Add default connect commands for networks with obscure login methods
Yeah, QuakeNet is an exception
2013-05-19 12:15:31 +02:00
c0cc6a2c93 Cosmetics 2013-05-19 11:49:27 +03:00
b2fec642fe Login type cleanup 2013-05-19 05:17:13 +02:00
d60cecb8d3 Add custom login type to avoid collisions 2013-05-19 04:34:20 +02:00
c168a9adc6 Add variables for user credentials in connect commands 2013-05-19 03:30:45 +02:00
f778245a86 Simplify SASL auth string generation code 2013-05-19 01:21:27 +02:00
5701ba287b Translate search window tooltips 2013-05-18 17:40:35 -04:00
c471388021 Don't use popup when search is not found 2013-05-18 17:32:41 -04:00
9d717ffee9 Fix text event for erroneous nicks 2013-05-18 22:09:44 +02:00
bac96d1fa8 Add FurryLand 2013-05-18 21:40:42 +02:00
f313a83474 Update Perl library name 2013-05-18 21:33:22 +02:00
9891f94e41 Rebrand python about message 2013-05-18 15:42:30 -03:00
a22ae9f39a Support time lists via python 2013-05-18 15:13:05 -03:00
02298c8e76 Fix prototype, return value is used by joindelay_tag 2013-05-18 19:48:54 +02:00
73badc67ff Fix warning from hwmon.c in plugins/sysinfo 2013-05-17 21:51:34 -07:00
1181b56211 Add omsg user command 2013-05-17 06:17:16 -03:00
78eb3e7522 Handle limited channel messages
Maybe improved later to signify they are limited messages. closes #315
2013-05-17 06:10:02 -03:00
57b74c3de9 Increase default irc_join_delay to 5 2013-05-17 05:32:53 -03:00
c83ca8f85a Respect irc_join_delay if connect command set 2013-05-17 05:28:45 -03:00
ef58a267b0 Omit CHALLENGE hashes in the server tab 2013-05-17 02:48:32 +02:00
4130954c15 Fix removing keys from favorites 2013-05-17 02:24:47 +02:00
0a2af0ab62 Fix crash when using global username for QuakeNet 2013-05-17 02:08:34 +02:00
a1a94ed319 Add support for QuakeNet /CHALLENGEAUTH, remove legacy /AUTH 2013-05-17 01:40:07 +02:00
096d0660e2 Merge pull request #594 from Tux/master
Allow the special colors 32..41 in %Cfg,bg
2013-05-16 10:50:43 -07:00
b28734c4a8 Merge pull request #581 from orium/numeric-session-with-open-query
Session of numeric events passed to text_emit() for nicks with open query dialogs
2013-05-16 09:21:02 -07:00
69c2893234 Merge pull request #586 from bviktor/authcleanup
Login and network list cleanup
2013-05-16 09:07:38 -07:00
89078eb3b3 Fix an issue where the lag meter would be stuck after a reconnect caused by a
ping timeout.
2013-05-16 15:11:52 +01:00
26cefd0587 Have rawlog properly handle newlines
This is most noticable with /cycle or the missing USER command on connect.
2013-05-16 09:21:55 +00:00
8ccd11ee4b Remove comment 2013-05-16 00:08:43 +02:00
fd1b276aab Make sure the created favchannel instances have a NULL key when the session's key is empty 2013-05-16 00:04:58 +02:00
2ff8e74061 Omit filler keys if no channel's using them 2013-05-15 23:52:14 +02:00
0020f81e79 Fix reconnect keys 2013-05-15 18:26:54 +02:00
6f09752db4 Cosmetics 2013-05-15 11:48:37 +02:00
8cf025f18d Fix autojoins for sessions 2013-05-15 11:43:38 +02:00
81990ce53b Change prototype 2013-05-15 08:49:28 +02:00
12cdb7704c Fix command splitting when the channel list is too long 2013-05-14 18:20:05 +02:00
947dd45294 Fix warnings 2013-05-14 16:52:16 +02:00
a435e8648f Fix initial autojoins and some erroneous copies/frees 2013-05-14 16:40:32 +02:00
25d0793766 Merge pull request #596 from Arnavion/python3-allow-unhook-within-hook
python: Hold a reference to plugin instead of dereferencing hook to get to it.
2013-05-14 01:33:50 -07:00
5c9652bf13 python: Hold a reference to plugin instead of dereferencing hook to get to it.
hook might have been free'd by the callback via hexchat.unhook().
2013-05-14 01:25:01 -07:00
7a242a8331 Allow the special colors 32..41 in %Cfg,bg
Text events allow %Cfg,bg as decribed in "Theming" on
https://hexchat.readthedocs.org/en/latest/appearance.html?#theming

That section describes mIRC colors 0-15 and local colors 16-31, but
when selecting background colors, the 9 special internal colors are
extremely useful, like %C20,33 will do bright red on the selected
text background color.

As the documentation is on-line, this patch has no doc-change.
Ideally, the color-codes should show in the colored squares in the
preferences color-dialog just as with colors 0-31

Signed-off-by: H.Merijn Brand <h.m.brand@xs4all.nl>
2013-05-13 15:26:33 +02:00
7cdfeff204 Add note about preferred tab size 2013-05-13 13:38:01 +02:00
83107ee222 Use macros instead of raw numbers for login type 2013-05-13 13:22:25 +02:00
d9d05e83ba Restructured a fair bit of cfgfiles.c. Besides making the code cleaner this allows
for better error handling (in fact the error message of check_prefs_dir () whould
make hexchat abort).
2013-05-13 01:58:08 +01:00
631664645d Add "#define GLIB_DISABLE_DEPRECATION_WARNINGS" to eliminate a warning message 2013-05-12 17:25:43 -07:00
61ed0829bd Forget to put an empty line after a function definition 2013-05-12 23:33:44 +01:00
f023de0faf Removed unnecessary call to check_prefs_dir() in load_config().
This function is called in save_config(), where it is actually needed.
2013-05-12 23:25:36 +01:00
7238853f0f Factored locale related code in main() to a new function. 2013-05-12 23:15:23 +01:00
6a8cad6f94 Now hexchat doesn't abnormally terminal when started as root.
This fixes #589/#504.
2013-05-12 16:37:38 +01:00
2c15270be1 Remember selected tab 2013-05-12 16:59:21 +02:00
c044bdfe32 Fix warning 2013-05-12 16:38:31 +02:00
aac7079562 Add code for migrating existing configs 2013-05-12 16:38:21 +02:00
cadcfc553c Cosmetics 2013-05-12 16:37:32 +02:00
5df669a329 Make the order consistent for load and save 2013-05-12 16:02:26 +02:00
4c307f6ac9 Add auto-reconnect to preferences 2013-05-12 04:08:01 -04:00
37aa38617e Merge pull request #588 from Repentinus/patch-2
Fixed misleading comments identifying the colours
2013-05-12 00:00:08 -07:00
07acb6f7b6 Fixed misleading comments identifying the colours
Replaced incorrect numbers (16 to 31) for mIRC colours with the correct ones (0 to 15).
2013-05-12 05:50:52 +00:00
9c96528a98 Remove unused variable 2013-05-12 06:19:42 +02:00
9327a5c71f Reduce GLib requirement 2013-05-12 06:16:26 +02:00
171dbcdedf Remove dead GLib code 2013-05-12 05:58:16 +02:00
de819e12bf g_slist_copy_deep() requires GLib 2.34 2013-05-12 05:55:14 +02:00
198dc9eb43 Fix favorite channels except in inbound.c 2013-05-12 05:44:32 +02:00
04d282fae3 Fix crash when quickly attaching/detaching tabs 2013-05-11 23:07:42 -03:00
bb86771425 Add explanation as well 2013-05-11 20:47:39 +02:00
791e0fc11f Make login type more intuitive and disable unused /NS 2013-05-11 20:42:29 +02:00
0badd9b874 Remove dead code 2013-05-11 20:09:07 +02:00
af03fa3c7c Fix connect commands 2013-05-11 20:06:22 +02:00
4d30512e05 Fix layout when resized 2013-05-11 16:30:45 +02:00
d5e8fa47f0 Allocate all extra vertical space to the treeviews 2013-05-11 16:21:38 +02:00
85c7e07351 Set up window sizes correctly 2013-05-11 15:58:52 +02:00
fde85c79df Reorganize the network editor 2013-05-11 15:22:28 +02:00
712eb5428e GtkComboBoxText requires GTK+ 2.24, dump code for older versions 2013-05-11 13:06:25 +02:00
5c663adf35 Reorganize a bit and fix spacing 2013-05-11 12:56:26 +02:00
68fa033483 Re-enable resize 2013-05-11 11:54:42 +02:00
b33f70571e fix error 2013-05-11 09:31:56 -04:00
cdc2bb0216 serverlistgui cleanup 2013-05-11 09:20:03 -04:00
250d9b565c Merge pull request #582 from Repentinus/patch-1
Support for away tracking regardless of channel size
2013-05-11 02:10:42 -07:00
6e7c0395e1 Merge pull request #585 from rahatarmanahmed/master
Added help text to sysinfo
2013-05-10 21:38:10 -07:00
be35154376 Added help text for sysinfo plugin. 2013-05-10 23:32:29 -05:00
de2fdc093a Cosmetics 2013-05-11 04:19:18 +02:00
3679dfe93e Make logmask consistent with scrollback mask 2013-05-11 04:18:44 +02:00
2e1425451d Remove some redundancy 2013-05-11 03:13:50 +02:00
0e1da0d33d Also disable labels, not just entries 2013-05-11 03:02:31 +02:00
7b0b86c9f7 Nuke nickserv password field and some cosmetics 2013-05-11 02:40:08 +02:00
a98b95923b Get rid of this unnecessary buffer 2013-05-11 02:00:32 +02:00
cf3d1ebb8b Skeleton for tabbed ui 2013-05-11 01:20:53 +02:00
5db1541f95 Reorganize the network list 2013-05-11 00:49:04 +02:00
873a3ef047 Replace various network options with universal login method option 2013-05-10 23:52:47 +02:00
beb3ab506d Import hexchat automatically when calling /py exec 2013-05-09 23:45:04 -03:00
494364d437 Fix returning gtkwin_ptr from python api 2013-05-09 22:55:06 -03:00
2f1f2c6a85 Added support for marking nicks that are away in different colour when away_size_max = 0, but tracking enabled. 2013-05-09 23:04:46 +00:00
66853d9715 Add option to support away tracking regardless of channel size
As there is option to disable away tracking, it would make sense to treat channel size limit of 0 as infinity for away tracking purposes. These changes attempt to implement this.
2013-05-09 21:11:58 +00:00
cf59ad2c76 Now process_numeric() passes the right session context to text_emit() when an
numeric event occurs regarding a nick with a open dialog.

Since this session context is potentially passed to plugins this can change the
behavior of plugins, but I think this is the intended semantics
(http://docs.hexchat.org/en/latest/script_python.html#context-theory).

Another consequence is that event messages will be displayed in the query dialog
of the nick in question (if a query dialog is open, of course), which I think is
sensible. (The initial intention of this patch was actually to report the
"No such nick" message in the query dialog when sending a message to a user that
has quit.)
2013-05-09 20:32:05 +01:00
dba9c42473 stop using gconf 2013-05-08 23:41:52 -04:00
f8556360ca Merge pull request #580 from hasufell/master
Build failure: fix undefined reference to `g_type_init'
2013-05-08 20:33:40 -07:00
28fe051aa5 Fix server tab changing color when active 2013-05-08 23:56:03 -03:00
607e5a567c CONFIGURE: fix undefined reference to `g_type_init'
These two assignments have no place here and will overwrite the
previous COMMON_LIBS="$COMMON_LIBS -lgmodule-2.0 -lgobject-2.0".
This can lead to build failure during linking stage depending on
the chosen configure options.
2013-05-09 01:48:10 +02:00
df31e239a9 add pkgconfig file to gitignore 2013-05-08 19:22:04 -03:00
df7a15e910 Show hours for last seen in friends list
closes #579
2013-05-08 19:08:37 -03:00
860ef759f5 Have gui_input_icon depend on gui_input_nick in prefs 2013-05-07 23:28:59 -03:00
4ba79fd489 Clean up IRCNet 2013-05-06 00:53:07 -03:00
fb01d4e9ab Replace g_strdup_printf with g_build_filename where possible 2013-05-04 18:21:48 +02:00
b2317d8800 Typofix 2013-05-04 17:40:48 +02:00
3283c71936 Use system include syntax 2013-05-04 17:40:23 +02:00
22a0d5a3fb Add Python major version to plugin description 2013-05-04 17:39:24 +02:00
46443cbd1c python: fully delete failed plugins 2013-05-04 02:02:10 -03:00
efd21ce982 fix possible crash 2013-05-04 00:00:48 -03:00
c4e96dd481 Fix output name 2013-05-04 02:57:03 +02:00
65e384523a Make copy depend on python3 as well 2013-05-04 02:41:53 +02:00
80aee2af6c Fix VS edition 2013-05-04 02:35:38 +02:00
1f525a6f4b Merge branch 'py3k' of git://github.com/TingPing/hexchat 2013-05-03 20:32:23 -04:00
ffa1ea7358 Add python3 plugin 2013-05-03 20:26:58 -04:00
ce7eb02601 Consistency 2013-05-04 03:24:30 +03:00
ce80e571f2 comma 2013-05-03 17:14:31 -03:00
11044c6264 update gamesurge's default nickserv type 2013-05-03 17:13:35 -03:00
7243f5bc2c Merge pull request #565 from bviktor/nickservtype
Make NickServ registration configurable per-network
2013-05-03 09:19:01 -07:00
863ff811e6 Don't make assumptions about the function being called 2013-05-03 18:12:36 +02:00
414ab39db5 Add Italian GenericName 2013-05-03 13:08:03 -03:00
ba78c0527f Fix QuakeNet registration 2013-05-03 18:00:30 +02:00
fb696b7a68 Provide default NickServ types where necessary 2013-05-03 17:23:36 +02:00
295da18414 Merge pull request #571 from amalmurali/master
Update textevents.in
2013-05-03 07:26:42 -07:00
8272df5ec2 Fix desktop translations
closes #567
2013-05-03 11:24:12 -03:00
99fed089cf Line breaks and typofix 2013-05-03 15:54:18 +02:00
e3fd501057 Do save_config() on Channel List window min, max changes
#570
2013-05-01 12:47:53 -07:00
7403dfa9aa Do save_config() on Search-window checkbox change
#570
2013-05-01 12:25:29 -07:00
b08d9cfb56 Fix warning about g_type_init() in dbus/example.c 2013-05-01 12:12:05 -07:00
1969db5f94 Save nicks when closing network list
#570
2013-05-01 10:36:16 -03:00
866299b508 Update textevents.in
Corrected text events for Channel Invite and Channel Remove Invite
2013-05-01 13:53:10 +05:30
c4384265e4 remove incorrect notice help info 2013-04-30 21:27:41 -03:00
b4c885861d Remove away announce 2013-04-28 17:19:26 -04:00
d9be5e098f Remove useless slash 2013-04-28 21:32:47 +02:00
0a54efdd0c Make NickServ registration configurable per-network
Fixes #394
2013-04-28 21:24:53 +02:00
708c5a7347 Make /msg nickserv the default registration type
Fixes #394 and hopefully doesn't break others
2013-04-28 17:03:41 +02:00
50373f4ff9 Get rid of some hardcoded network recognition 2013-04-28 17:01:37 +02:00
2df866bdf8 Don't autoload WMPA, it's dead in the water 2013-04-28 16:50:19 +02:00
5b8567919d Install a pkgconfig .pc file. This allows external plugins to find
where the header file is located, where Hexchat expects to find
plugins so it can load them at startup and which version of
Hexchat is installed. The path where pkgconfig files are stored
is determined by a macro available in newer versions of pkgconfig
which can be overridden by the --with-pkgconfig= configure switch.
However, if this macro is unavailable (older versions of
pkgconfig) then m4ifdef will make it fallback to simply use
${libdir}/pkgconfig (which is the default).

	modified:   configure.ac
	modified:   share/Makefile.am
	new file:   share/pkgconfig/Makefile.am
	new file:   share/pkgconfig/hexchat-plugin.pc.in
2013-04-28 16:48:32 +02:00
77cad8e716 Don't hardcode "plugins" as the subdirectory for plugins in many
places.

	modified:   config-win32.h
	modified:   configure.ac
	modified:   plugins/checksum/Makefile.am
	modified:   plugins/doat/Makefile.am
	modified:   plugins/fishlim/Makefile.am
	modified:   plugins/perl/Makefile.am
	modified:   plugins/python/Makefile.am
	modified:   plugins/sysinfo/Makefile.am
	modified:   plugins/xdcc/Makefile.am
	modified:   src/common/plugin.c
	modified:   src/fe-text/fe-text.c
2013-04-28 16:42:48 +02:00
700d699f5b Cosmetics 2013-04-28 15:30:08 +03:00
87413e9d3c Add hints about the beep file 2013-04-28 05:31:45 +02:00
dbe6deab45 Rename Sound to Sounds and reorder Chatting pages 2013-04-28 04:57:01 +02:00
b2ae3b9dd1 Update gtkrc 2013-04-28 05:47:20 +03:00
92dca50dfc Eliminate compiler warning
free() requires stdlib.h
2013-04-28 04:19:31 +02:00
a3ba8d575e Store just the filename if the sound file comes from the default sound dir
And get rid of some hardcoding while we're at it
2013-04-28 04:12:00 +02:00
ea48d18130 Fix spacing 2013-04-28 03:06:02 +02:00
4547719358 Update .travis.yml 2013-04-27 21:29:33 -03:00
bb878848f7 Use regular canberra not gtk 2013-04-27 20:28:39 -04:00
5bb284267b Remove dead code for sound_command 2013-04-28 01:57:00 +02:00
7e3c8c461e Escape all the things 2013-04-27 20:38:39 -03:00
24034b5b8b More cleanup 2013-04-27 20:35:04 -03:00
78f9f3f87c clean up canberra code 2013-04-27 20:29:28 -03:00
bc1169e979 Use canberra for files 2013-04-27 20:02:27 -03:00
012105e115 Let's just say the word 2013-04-28 00:56:24 +02:00
5c5eb1df14 udpate travis build w/ canberra 2013-04-27 19:19:26 -03:00
e714c7d53f Remove extra omitalerts check 2013-04-27 19:16:34 -03:00
78e39bfb1c use libcanberra for beeps 2013-04-27 18:05:05 -04:00
7323f7c561 Fix unused variable 2013-04-27 23:28:24 +02:00
c6513ea7a2 Use "Instant Message Notification" system sound on Windows, use gdk_beep() on Unix
Note: gdk_beep() is expected to be replaced with libcanberra stuff.
2013-04-27 23:26:26 +02:00
6001ceff9f Get rid of bundled beep 2013-04-27 23:00:18 +02:00
8e3db00dac Don't include if unused 2013-04-27 21:38:13 +02:00
d20dccbe02 Some crucial cosmetics 2013-04-27 21:35:19 +02:00
e834783cb8 Fix compiler warning 2013-04-27 21:31:54 +02:00
01f24aae07 Don't use external players on Windows 2013-04-27 21:07:34 +02:00
584dc6a626 typo 2013-04-27 15:52:18 -03:00
756080831d fix url opening on osx
oops
2013-04-27 15:47:40 -03:00
ffce6c5788 Clean up old url handling on unix 2013-04-27 15:30:40 -03:00
565a492724 Reverts commit d964af8142 2013-04-27 06:32:30 -04:00
6982bbfef9 fix false positives when checking chanopts 2013-04-26 09:37:14 -03:00
07bc467d03 win32: Moved PlatformToolset configuration to individual project files. It should be set before setting other properties or importing other props.
This fixes the broken GUI Platform Toolset indicator, as well as VS compilation itself if another version such as 2010 was also installed.
2013-04-25 21:03:03 -07:00
a39f8ea71f Do not allow blank realname in preferences 2013-04-25 04:51:19 -03:00
4ad9a69aeb Early on, call g_type_init() unless deprecated 2013-04-24 14:33:05 -07:00
ee200b97aa Fix left-click of URL/HOST by tidying what we pass to fe_open_url() 2013-04-24 13:18:34 -07:00
fc659a67f0 Merge pull request #561 from RichardHitt/no-depr-decl
Add '#define GLIB_DISABLE_DEPRECATION_WARNINGS' to fix fkeys.c warnings
2013-04-24 12:27:53 -07:00
de0b0b9467 Merge pull request #560 from RichardHitt/warning-fix
Add '(void)'  to fix perl.c unused-value warning message
2013-04-23 18:33:49 -07:00
eef74ed263 Add '#define GLIB_DISABLE_DEPRECATION_WARNINGS' to fix fkeys.c warnings 2013-04-23 12:46:32 -07:00
facf0ab9c4 Add '(void)' to fix perl.c unused-value warning message 2013-04-23 12:09:05 -07:00
5318c953ed reduce abuse of ternary operator
The ?: operator should not be used as a generic shorthand for if/else.
(Which isn't needed here either...)
2013-04-23 01:09:58 -04:00
2550a94f05 fix omitting custom sounds 2013-04-23 00:45:37 -04:00
bd73c80152 Clean up balloon formatting 2013-04-22 20:13:34 -03:00
43cbe83d61 fix warning in new glib 2013-04-22 18:04:26 -03:00
075c5dfad6 Merge pull request #556 from RichardHitt/ignore-unused
Fix Ubuntu build warnings by using gcc flag -Wno-unused-result
2013-04-22 13:54:45 -07:00
ba1dfabf11 Fix Ubuntu build warnings by using gcc flag -Wno-unused-result 2013-04-22 11:22:04 -07:00
9603248a5b Fall back to global username for sasl 2013-04-22 07:30:33 -03:00
4e891102f2 Merge pull request #550 from RichardHitt/issue440a
In do_an_re() put WORD_CHANNEL before WORD_HOST.  fixes #440
2013-04-20 17:05:18 -07:00
bc1c84347d fix install error 2013-04-20 18:37:30 -03:00
2db01371b3 Build with travis 2013-04-19 15:55:14 -04:00
e17a9c6503 In do_an_re() put WORD_CHANNEL before WORD_HOST. fixes #440 2013-04-19 12:41:49 -07:00
3994126a09 Add english generic name 2013-04-18 01:21:12 -03:00
70174be823 Fix a typo.
modified:   share/misc/hexchat.desktop
2013-04-18 00:14:40 -04:00
9254f9284c Add GTK and IRCClient to Categories. This is Based on:
http://standards.freedesktop.org/menu-spec/latest

	modified:   share/misc/hexchat.desktop
2013-04-18 00:11:17 -04:00
c819adf830 Translate Comment in french, german, italian and norwegian bokmål
modified:   share/misc/hexchat.desktop
2013-04-18 00:10:54 -04:00
13c717159d Change "no" to "nb" for Norsk Bokmål. In norway there is not only
one official language but two.

	modified:   share/misc/hexchat.desktop
2013-04-18 00:10:14 -04:00
4c90a9b2d5 Change most Comment lines to be GenericName. GenericName should be
used when only one IRC client in installed.

	modified:   share/misc/hexchat.desktop
2013-04-18 00:09:52 -04:00
a14bd119b7 typo 2013-04-17 22:45:08 -03:00
f9cf25f797 Use more useful example for url handler 2013-04-17 22:39:50 -03:00
450b92f6c0 add paplay 2013-04-17 06:13:34 -03:00
9790151ec0 beep sound is gtk only 2013-04-17 06:02:17 -03:00
3fbea449b5 g_file requires gio 2013-04-17 05:45:51 -03:00
02cdc57eb5 Install sound file on unix
for #542
2013-04-17 03:45:41 -04:00
d7571ce1e3 Update installers as well 2013-04-16 11:35:22 +02:00
ccc8601624 Move beep to proper place 2013-04-16 11:32:58 +02:00
7e2ae20ecf only 1 2013-04-15 22:10:25 -03:00
b856065167 fix warning 2013-04-15 22:03:03 -03:00
f3efdaf40f finish removing sound_dir 2013-04-15 18:16:51 -03:00
86564c8741 Merge pull request #545 from RichardHitt/issue522
Fix broken logic in mg_word_clicked().  fixes #522
2013-04-15 13:54:00 -07:00
a5eb7784c6 Fix broken logic in mg_word_clicked(). fixes #522 2013-04-15 12:05:53 -07:00
f0d0f90e13 no error on beeps 2013-04-15 00:12:06 -03:00
27d828172d try play first. 2013-04-14 17:54:28 -03:00
a7ffdf3d65 Remove one warning bypass 2013-04-14 13:19:49 +02:00
dd624950c6 Eliminate compiler warning 2013-04-14 13:15:10 +02:00
b407bfa168 Fix missing first letter in busy server error popup 2013-04-14 13:11:35 +02:00
069a6adb19 If no path given, try to load plugins from config dir, not from install dir 2013-04-14 12:55:02 +02:00
9dd2c85df4 Load connect commands from config dir 2013-04-14 12:31:27 +02:00
b7f0f6abc8 Fix tabulation 2013-04-14 12:11:38 +02:00
ea0479998a Use bundled beep file for beep alerts 2013-04-14 11:56:50 +02:00
9272eb4325 G_FILE_COPY_TARGET_DEFAULT_PERMS requires GLib 2.20+ 2013-04-14 11:00:01 +02:00
4e601cf14c Browse into the sounds folder by default 2013-04-14 10:52:34 +02:00
db582a4e5c Remove sound_dir, it's pointless 2013-04-14 10:47:37 +02:00
059e4ec9c8 Add default beep sound, deploy on Windows
FIXME on Unix yet
2013-04-14 10:30:51 +02:00
a96be226b2 Really relocate 2013-04-14 10:15:52 +02:00
bed00e525d Relocate plugin icons 2013-04-14 10:14:17 +02:00
096e837ece Add accounts to users in get_list 2013-04-14 00:33:03 -03:00
e67371d269 Add option for omitting alerts while focused 2013-04-13 23:03:54 -04:00
a996549577 Rewrite desensitizing options in preferences 2013-04-13 20:54:42 -04:00
9917b7e3df hook reload command 2013-04-13 02:02:57 -03:00
541f221a61 fix crash after reloading script 2013-04-13 02:01:04 -03:00
44a2ed5a97 Fix possible crash
Thanks to - http://forum.xchat.org/viewtopic.php?f=5&t=7558
2013-04-12 23:08:02 -03:00
ba3f4daee8 Rebrand object types 2013-04-12 22:58:29 -03:00
2d3d4db16b Nuke last Tcl and SASL remnants 2013-04-13 04:27:10 +03:00
0c351c9cbc Nuke WMPA, not supported by Express 2013-04-13 02:38:44 +02:00
cc1f2b2d27 Fix last filename
Left here to make changes trackable
2013-04-13 02:27:02 +02:00
6ee3a4a978 Get rid of multiple Perl versions 2013-04-13 02:27:01 +02:00
5326f76a40 Fix tray not respecting away_omit_alerts 2013-04-12 19:59:46 -03:00
7f86fbad1e We ship bundles, this is unnecessary too 2013-04-12 18:05:54 +02:00
30fa189cbb We don't release git head anymore, github does that for us 2013-04-12 18:05:28 +02:00
2fdb2a8b6f Revert "win32: Fixed YourDepsPath."
This reverts commit b07e5fafaf.
2013-04-12 18:04:22 +02:00
b07e5fafaf win32: Fixed YourDepsPath. 2013-04-11 21:59:58 -07:00
ba1a1ab28d Don't call it package, it causes line break 2013-04-11 17:44:33 +02:00
a9643234ae It's official: VS2012.2 needs VS2012.1 redist 2013-04-11 14:03:27 +02:00
7870c8028f warning 2013-04-10 15:41:29 -03:00
6510e8961e Delete left over themes 2013-04-10 14:39:43 -03:00
6e8b7367d7 comma 2013-04-10 13:43:22 -03:00
feb5b41642 Readd irc charset to the list 2013-04-10 13:27:53 -03:00
36694afe0e Don't send ping's to the server if we are still waiting for a pong.
If the server don't respond in 30s just report the lag as +30s.

This fixes the bug where hexchat reset the lag meter every time a ping
was sent and no pong was received.
2013-04-09 19:14:46 -07:00
a99111172d Merge pull request #527 from grawity/cap-req-sasl
Request 'sasl' even if it's the only recognized cap
2013-04-09 17:50:26 -07:00
780c3d29c7 Request 'sasl' even if it's the only recognized cap 2013-04-10 02:43:09 +03:00
1a7831df2a Fix spelling checkbox with libsexy 2013-04-09 12:28:44 -03:00
924178cde7 cosmetics 2013-04-09 03:08:26 +02:00
77fa72924b readme cleanup 2013-04-09 03:06:07 +02:00
b90633d406 Fix deps path 2013-04-08 22:39:35 +02:00
cd64e02096 Use EAT_HEXCHAT on hexchat module 2013-04-08 17:23:07 -03:00
ad820cef8a Give both modules the version too. 2013-04-08 17:16:32 -03:00
68de2bcb00 Add constants to both modules 2013-04-08 17:09:36 -03:00
68b6be11d6 Add hexchat module to python interface 2013-04-08 17:07:13 -03:00
d13ae114a2 Handle numeric 900 2013-04-08 16:52:14 -03:00
3a6103564e Merge pull request #516 from Misdre/optout-extra-alerts
Closes #290 - opt-out for extra alerts now working
2013-04-08 10:35:53 -07:00
0424e5a329 Closes #290 - opt-out for extra alerts now working 2013-04-08 19:19:55 +02:00
561ad635cd Merge pull request #515 from Misdre/optin-optout-scrollback
fix issue #491 - opt-in/opt-out of scrollback per channel
2013-04-08 08:04:48 -07:00
2427c095e5 fix issue #491 - opt-in/opt-out of scrollback per channel 2013-04-08 15:07:58 +02:00
ed27009285 Notify away status of friends 2013-04-07 20:41:29 -04:00
92654bdd9b Make copy depend on perl-5.18, not perl-5.16 2013-04-08 02:31:47 +02:00
fdf7ec22f5 I might regret this, but let's do the brave jump 2013-04-08 01:12:19 +02:00
3c4a154f0a Add events for quiet 2013-04-07 17:49:30 -04:00
c766b24920 Merge pull request #508 from Misdre/split-long-action-notice
Long ctcp action/notice split
2013-04-07 12:40:29 -07:00
af652a6639 Merge pull request #510 from RichardHitt/allownick
Allow nick starting with digit despite rfc 2812 violation
2013-04-06 15:53:21 -07:00
812628acb2 Update textevents.in 2013-04-06 17:30:19 -03:00
6b86940b7b Allow nick starting with digit despite rfc 2812 violation 2013-04-06 11:51:22 -07:00
08d948435d split cmd_msg too 2013-04-06 01:11:28 +02:00
5004f69b5e 'splitted' is'nt a word 2013-04-06 00:11:45 +02:00
bc5d16c4fb split long message on action and notice 2013-04-05 23:14:51 +02:00
c2a5b4fb7d Disable esc keybinding on tabbed utils 2013-04-05 17:33:35 -03:00
cca8ab4640 Fix esc closing detached util tabs 2013-04-05 16:56:57 -03:00
d964af8142 Fix root user warning running before g_type_init
closes #504
2013-04-05 10:12:33 -04:00
7746ff9a12 Fix manpage EOL 2013-04-05 06:38:12 +02:00
c4cf67bee4 Merge pull request #501 from gusnan/master
Minor spelling fix
2013-04-04 08:20:29 -07:00
a1daf03538 Fix spelling seperate/separate 2013-04-04 17:11:05 +02:00
2be0530c34 get account from whois 2013-04-04 10:29:15 -03:00
b0d1c884e0 regular who doesn't send account 2013-04-04 05:07:42 -04:00
e0a7f0ae59 Fixed compiler error. 2013-04-04 01:56:40 -07:00
5779691efb Update hiding menu text 2013-04-03 20:35:42 -03:00
496ed18e85 Add MONITOR support 2013-04-03 18:51:54 -04:00
86cf7de430 add %u to userlist popups for account 2013-04-03 18:10:14 -04:00
477d7470c1 renable irc_who_join by default 2013-04-03 18:35:40 -03:00
3706b51159 Fix realname 2013-04-03 18:28:00 -03:00
b4c8d53394 Support account-notify and extended-join capabilities 2013-04-03 17:10:09 -04:00
4c217d4ba3 Merge pull request #448 from TingPing/awaynotify2
Add away-notify support
2013-04-03 12:12:26 -07:00
23b2081385 update man page
Close #498
2013-04-03 15:11:43 -03:00
0534b54e51 Remove strlutil 2013-04-03 16:48:03 +02:00
faf4575e9a Enable cast checks 2013-04-02 23:58:43 -07:00
52efe3abff Add missing declaration 2013-04-02 23:57:43 -07:00
59510cf8a1 Move Perl from hexchat to gtk-win32 2013-04-03 08:05:26 +02:00
905705910b Remove hardcoded clear keybinding
You can re-add this easily in settings > keyboard shortcuts
2013-04-03 02:50:57 -03:00
bb78d8dd59 Add new window keybinding 2013-04-03 02:41:59 -03:00
8b72d53dcc Merge pull request #496 from bviktor/toplevel-includes
Only include top level includes from GTK+, GLib and GDK-PixBuf Closes #486
2013-04-02 22:39:17 -07:00
ef4aa16730 Apply to fe-text too 2013-04-02 22:37:24 -07:00
14b089ef90 Set up CFLAGS on Unix too 2013-04-02 22:35:42 -07:00
b5fef8d0e2 gtk_show_uri() requires GTK+ 2.14 2013-04-03 06:49:57 +02:00
561f3044d6 update --url help string 2013-04-03 01:36:52 -03:00
9c49254abd Only include top level includes from GTK+, GLib and GDK-PixBuf 2013-04-02 20:39:37 -07:00
5e59578e28 Remove most of HexTray and one instance
You can still build HexTray manually if you want to try fixing it
2013-04-02 11:56:08 -07:00
7317535c28 Fix textfe with dbus disabled 2013-04-02 09:06:47 -03:00
920839cf1c fix strptime on bsd 2013-04-02 08:06:38 -03:00
d8eec06473 Missing include
#492
2013-04-02 07:50:08 -03:00
4748405277 This is useless too 2013-04-01 21:28:54 -07:00
13d574b455 Revert XP version check; as it turned out, it's completely irrelevant now
This reverts commit cd2f775fe4.
2013-04-01 21:15:46 -07:00
2b13d0f527 Apparently XP won't work anymore, Uniscribe problem with the redistributable 2013-04-01 20:51:40 -07:00
e054a6512f We all knew I'll forget something, right? 2013-04-01 18:33:12 -07:00
eb5313f850 Clean up away-notify patch 2013-03-12 23:54:55 -04:00
bf0fb9f327 Add away-notify support 2013-03-12 02:21:18 -04:00
200 changed files with 6688 additions and 17269 deletions

3
.gitignore vendored
View File

@ -20,6 +20,8 @@ config.sub
configure
configure.tmp
depcomp
doxygen*.tmp
html/
install-sh
intl/
libtool
@ -32,6 +34,7 @@ po/Makefile.in.in
po/POTFILES
po/remove-potcdate.sed
po/stamp-po
share/pkgconfig/hexchat-plugin.pc
src/common/dbus/example
src/common/dbus/marshallers.h
src/common/dbus/org.hexchat.service.service

14
.travis.yml Normal file
View File

@ -0,0 +1,14 @@
language: c
compiler: gcc
before_script:
- sudo apt-get build-dep -qq xchat
- sudo apt-get install -qq libnotify-dev libproxy-dev libpci-dev libcanberra-dev
script:
- ./autogen.sh
- ./configure --enable-textfe
- make
notifications:
irc:
channels: "chat.freenode.net#hexchat-devel"
template: "Build #%{build_number} (%{commit}) by %{author}: %{message}"
on_success: change

1904
Doxyfile Normal file

File diff suppressed because it is too large Load Diff

View File

@ -8,7 +8,7 @@
#define HAVE_ISO_CODES
#define PACKAGE_NAME "hexchat"
#define PACKAGE_VERSION "2.9.5"
#define HEXCHATLIBDIR "."
#define HEXCHATLIBDIR ".\\plugins"
#define HEXCHATSHAREDIR "."
#define OLD_PERL
#define GETTEXT_PACKAGE "hexchat"

View File

@ -45,6 +45,7 @@ AH_VERBATIM([USE_GTKSPELL],[#undef USE_GTKSPELL])
AH_VERBATIM([USE_LIBSEXY],[#undef USE_LIBSEXY])
AH_VERBATIM([HAVE_ISO_CODES],[#undef HAVE_ISO_CODES])
AH_VERBATIM([USE_LIBNOTIFY],[#undef USE_LIBNOTIFY])
AH_VERBATIM([USE_LIBCANBERRA],[#undef USE_LIBCANBERRA])
AH_VERBATIM([USE_IPV6],[#undef USE_IPV6])
AH_VERBATIM([USE_MMX],[#undef USE_MMX])
AH_VERBATIM([USE_OPENSSL],[#undef USE_OPENSSL])
@ -118,17 +119,13 @@ AC_ARG_ENABLE(python,
python=$enableval, python=python2)
AC_ARG_ENABLE(perl,
[AS_HELP_STRING([--disable-perl],[don't build the perl plugin])],
[AS_HELP_STRING([--disable-perl],[don\'t build the perl plugin])],
perl=$enableval, perl=yes)
AC_ARG_ENABLE(perl_old,
[AS_HELP_STRING([--disable-perl_old],[no backwards compatibility for perl plugin])],
perl_old=$enableval, perl_old=yes)
dnl AC_ARG_ENABLE(tcl,
dnl [AS_HELP_STRING([--enable-tcl[=PATH]],[directory with Tcl config file: tclConfig.sh])],
dnl tcl=$enableval, tcl=yes)
AC_ARG_ENABLE(plugin,
[AS_HELP_STRING([--disable-plugin],[disable plugin support])],
plugin=$enableval, plugin=yes)
@ -145,10 +142,6 @@ AC_ARG_ENABLE(fishlim,
[AS_HELP_STRING([--disable-fishlim],[disable the FiSHLiM plugin])],
fishlim=$enableval, fishlim=yes)
dnl AC_ARG_ENABLE(sasl,
dnl [AS_HELP_STRING([--disable-sasl],[disable the SASL plugin])],
dnl sasl=$enableval, sasl=yes)
AC_ARG_ENABLE(sysinfo,
[AS_HELP_STRING([--disable-sysinfo],[disable the SysInfo plugin])],
sysinfo=$enableval, sysinfo=yes)
@ -161,6 +154,11 @@ AC_ARG_ENABLE(libnotify,
[AS_HELP_STRING([--disable-libnotify],[disable libnotify support])],
libnotify=$enableval, libnotify=yes)
AC_ARG_ENABLE(libcanberra,
[AS_HELP_STRING([--disable-libcanberra],[disable libcanberra support])],
libcanberra=$enableval, libcanberra=yes)
AC_ARG_ENABLE(mmx,
[AS_HELP_STRING([--disable-mmx],[disable MMX assembly routines])],
mmx=$enableval, mmx=yes)
@ -174,7 +172,7 @@ AC_ARG_ENABLE(spell,
spell=$enableval, spell=static)
AC_ARG_ENABLE(ntlm,
[AS_HELP_STRING([--enable-ntlm],[enable Microsoft's NTLM auth (libntlm) library support (default: no)])],
[AS_HELP_STRING([--enable-ntlm],[enable Microsoft\'s NTLM auth (libntlm) library support (default: no)])],
ntlm=$enableval, ntlm=no)
AC_ARG_ENABLE(libproxy,
@ -186,14 +184,15 @@ dnl *********************************************************************
dnl ** GLIB *************************************************************
dnl *********************************************************************
AM_PATH_GLIB_2_0(2.14.0, glib=yes, glib=no)
AM_PATH_GLIB_2_0(2.28.0, glib=yes, glib=no)
if test "$glib" = no; then
AC_MSG_ERROR(Cannot find GLib!)
fi
COMMON_CFLAGS="$GLIB_CFLAGS"
COMMON_LIBS="$GLIB_LIBS"
COMMON_LIBS="$COMMON_LIBS -lgmodule-2.0"
PKG_CHECK_MODULES([GOBJECT], [gobject-2.0], [], [AC_MSG_ERROR(Cannot find gobject-2.0!)])
COMMON_CFLAGS="$GLIB_CFLAGS $GOBJECT_CFLAGS -DG_DISABLE_SINGLE_INCLUDES"
COMMON_LIBS="$GLIB_LIBS $GOBJECT_LIBS -lgmodule-2.0"
dnl *********************************************************************
dnl ** GTK **************************************************************
@ -201,7 +200,7 @@ dnl *********************************************************************
# we might get undefined macro without this test
if test "$gtkfe" = yes ; then
AM_PATH_GTK_2_0(2.10.0, havegtk=yes, havegtk=no)
AM_PATH_GTK_2_0(2.24.0, havegtk=yes, havegtk=no)
if test "$havegtk" = no; then
gtkfe=no
@ -213,8 +212,6 @@ fi
if test "$gtkfe" != yes; then
gnome=no
COMMON_LIBS="$GLIB_LIBS"
COMMON_CFLAGS="$GLIB_CFLAGS"
fi
dnl *********************************************************************
@ -222,7 +219,7 @@ dnl ** GNOME ************************************************************
dnl *********************************************************************
GUI_LIBS="$GUI_LIBS $GTK_LIBS"
GUI_CFLAGS="$GUI_CFLAGS $GTK_CFLAGS"
GUI_CFLAGS="$GUI_CFLAGS $GTK_CFLAGS -DG_DISABLE_SINGLE_INCLUDES -DGDK_PIXBUF_DISABLE_SINGLE_INCLUDES -DGTK_DISABLE_SINGLE_INCLUDES"
#if test "$gnome" = yes; then
# AC_PATH_PROG(pkgconfigpath, pkg-config)
@ -241,11 +238,11 @@ GUI_CFLAGS="$GUI_CFLAGS $GTK_CFLAGS"
#fi
# GConf
if test "$gnome" != no ; then
AC_PATH_PROG(GCONFTOOL, gconftool-2, no)
else
GCONFTOOL=no
fi
#if test "$gnome" != no ; then
# AC_PATH_PROG(GCONFTOOL, gconftool-2, no)
#else
# GCONFTOOL=no
#fi
dnl *********************************************************************
dnl ** XFT **************************************************************
@ -354,51 +351,30 @@ if test "x$python" != xno ; then
PYPLAT_INC=`$pythonpath -c 'import distutils.sysconfig; print(distutils.sysconfig.get_python_inc(plat_specific=True));'`
changequote([, ])dnl
AC_MSG_RESULT($PY_VER)
$pythonpath -c "import sys; float(sys.version[[:3]]) >= 2.2 and int(sys.version[[0]]) < 3 or sys.exit(1)"
$pythonpath -c "import sys; float(sys.version[[:3]]) >= 2.6 and int(sys.version[[0]]) <= 3 or sys.exit(1)"
if test "$?" != "1"; then
AC_MSG_CHECKING(Python compile flags)
PY_PREFIX=`$pythonpath -c 'import sys; print(sys.prefix)'`
PY_EXEC_PREFIX=`$pythonpath -c 'import sys; print(sys.exec_prefix)'`
if test -f $PY_INC/Python.h || test -f $PYPLAT_INC/Python.h; then
PY_LIBS="-L$PY_LIB/config -lpython$PY_VER -lpthread -lutil"
AS_VERSION_COMPARE($PY_VER, 3.0,
[PYL="$PY_VER"], # less than
[PYL="${PY_VER}m"], # equal
[PYL="${PY_VER}m"]) # greater than
PY_LIBS="-L$PY_LIB/config -lpython$PYL -lpthread -lutil"
PY_CFLAGS="-I$PY_INC -I$PYPLAT_INC"
AC_MSG_RESULT(ok)
else
python=no
AC_MSG_RESULT([Can't find Python.h])
AC_MSG_RESULT([Can\'t find Python.h])
fi
else
echo "Python is too old or too new. Only 2.2-2.7 are supported."
echo "Python is too old or too new. Only 2.6-3.x are supported."
python=no
fi
fi
fi
dnl *********************************************************************
dnl ** TCL **************************************************************
dnl *********************************************************************
dnl AC_MSG_CHECKING(for location of tclConfig.sh)
dnl dirs="$tcl /lib /usr/lib /usr/tcl/lib /usr/lib/tcl8.4 /usr/local/lib /usr/local/tcl-8.4/lib /usr/local/tcl/lib /opt/lib /usr/lib/tcl8.3"
dnl found=0
dnl if test "$tcl" != "no"; then
dnl tcl=no
dnl for try in $dirs; do
dnl if test -f $try/tclConfig.sh; then
dnl found=1
dnl . $try/tclConfig.sh
dnl TCL_LIBS="$TCL_LIB_SPEC $TCL_LIBS"
dnl TCL_CFLAGS="-I${TCL_PREFIX}/include $TCL_INCLUDE_SPEC"
dnl tcl=yes
dnl AC_MSG_RESULT($try/tclConfig.sh)
dnl break
dnl fi
dnl done
dnl if test "$found" -eq 0 ; then
dnl AC_MSG_RESULT([tclConfig.sh not found - use the --enable-tcl option])
dnl fi
dnl fi
dnl *********************************************************************
dnl ** IPv6 *************************************************************
dnl *********************************************************************
@ -585,21 +561,6 @@ if test "$fishlim" != "no"; then
fi
fi
dnl *********************************************************************
dnl ** SASL *************************************************************
dnl *********************************************************************
dnl if test "$sasl" != "no"; then
dnl AC_MSG_CHECKING(for plugin interface used by SASL)
dnl sasl=no
dnl if test "$plugin" = yes; then
dnl sasl=yes
dnl AC_MSG_RESULT([yes])
dnl else
dnl AC_MSG_RESULT([plugins are disabled, use the --enable-plugin option for SASL])
dnl fi
dnl fi
dnl *********************************************************************
dnl ** SYSINFO **********************************************************
dnl *********************************************************************
@ -653,6 +614,21 @@ if test "x$libnotify" = "xyes" ; then
fi
fi
dnl *********************************************************************
dnl ** LIBCANBERRA ******************************************************
dnl *********************************************************************
if test "x$libcanberra" = "xyes" ; then
PKG_CHECK_MODULES(LIBCANBERRA, libcanberra >= 0.22, [], [
libcanberra=no
])
if test "$libcanberra" != "no" ; then
COMMON_LIBS="$COMMON_LIBS $LIBCANBERRA_LIBS"
COMMON_CFLAGS="$COMMON_CFLAGS $LIBCANBERRA_CFLAGS"
AC_DEFINE(USE_LIBCANBERRA)
fi
fi
dnl *********************************************************************
dnl ** SPELL ************************************************************
dnl *********************************************************************
@ -684,7 +660,7 @@ if test "$spell" = "static" ; then
PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.0.0, [
AC_DEFINE(HAVE_ISO_CODES)
AC_DEFINE(USE_LIBSEXY)
GUI_CFLAGS="$GUI_CFLAGS -I/usr/include/libxml2"
GUI_CFLAGS="$GUI_CFLAGS $LIBXML2_CFLAGS"
LIBS="$LIBS -lxml2"
], [
AC_MSG_ERROR(Cannot find libxml2!)
@ -698,19 +674,18 @@ dnl *********************************************************************
AM_CONDITIONAL(USE_OPENSSL, test "x$openssl" = "xyes")
AM_CONDITIONAL(USE_LIBSEXY, test "x$spell" = "xstatic")
AM_CONDITIONAL(USE_LIBNOTIFY, test "x$libnotify" = "xyes")
AM_CONDITIONAL(USE_LIBCANBERRA, test "x$libcanberra" = "xyes")
AM_CONDITIONAL(DO_TEXT, test "x$textfe" = "xyes")
AM_CONDITIONAL(DO_GTK, test "x$gtkfe" = "xyes")
AM_CONDITIONAL(DO_PERL, test "x$perl" = "xyes")
AM_CONDITIONAL(DO_PYTHON, test "x$python" != "xno")
dnl AM_CONDITIONAL(DO_TCL, test "x$tcl" = "xyes")
AM_CONDITIONAL(DO_PLUGIN, test "x$plugin" = "xyes")
AM_CONDITIONAL(DO_CHECKSUM, test "x$checksum" = "xyes")
AM_CONDITIONAL(DO_DOAT, test "x$doat" = "xyes")
AM_CONDITIONAL(DO_FISHLIM, test "x$fishlim" = "xyes")
dnl AM_CONDITIONAL(DO_SASL, test "x$sasl" = "xyes")
AM_CONDITIONAL(DO_SYSINFO, test "x$sysinfo" = "xyes")
AM_CONDITIONAL(USE_DBUS, test "x$dbus" = "xyes")
AM_CONDITIONAL(DO_GCONF, test "x$GCONFTOOL" != "xno")
#AM_CONDITIONAL(DO_GCONF, test "x$GCONFTOOL" != "xno")
dnl *********************************************************************
dnl ** SOCKS5 ***********************************************************
@ -861,12 +836,34 @@ if test x$unsigned_char = xyes; then
CFLAGS="$CFLAGS -funsigned-char"
fi
dnl does this compiler support -Wno-unused-result ?
AC_MSG_CHECKING([if gcc accepts -Wno-unused-result ])
safe_CFLAGS=$CFLAGS
CFLAGS="-Wno-unused-result"
AC_TRY_COMPILE(, [
int main () { return 0 ; }
],
[
no_unused_result=yes
AC_MSG_RESULT([yes])
], [
no_unused_result=no
AC_MSG_RESULT([no])
])
CFLAGS=$safe_CFLAGS
if test x$no_unused_result = xyes; then
CFLAGS="$CFLAGS -Wno-unused-result"
fi
dnl *********************************************************************
dnl ** FUNCTIONS/LIBS/CFLAGS ********************************************
dnl *********************************************************************
AC_MSG_CHECKING(for modern sigaction)
dnl libc5 on linux and FreeBSD 3.x doesn't have siginfo_t
dnl libc5 on linux and FreeBSD 3.x doesn\'t have siginfo_t
dnl and the sa_sigation field.
AC_TRY_COMPILE(
[#include <signal.h>],
@ -885,7 +882,7 @@ if test "$gtkfe" != no -a "_$gdkpixbufcsourcepath" = _; then
AC_MSG_ERROR(Cannot find gdk-pixbuf-csource: Install GTK+ 2.0!)
fi
dnl if we don't have this, use g_snprintf instead
dnl if we don\'t have this, use g_snprintf instead
AC_CHECK_FUNCS(snprintf vsnprintf memrchr strtoull)
AC_CHECK_FUNC(gethostbyname, ,
@ -933,11 +930,10 @@ AC_SUBST(PERL_CFLAGS)
AC_SUBST(PERL_LDFLAGS)
AC_SUBST(PY_CFLAGS)
AC_SUBST(PY_LIBS)
dnl AC_SUBST(TCL_LIBS)
dnl AC_SUBST(TCL_CFLAGS)
AC_SUBST(DBUS_CFLAGS)
AC_SUBST(DBUS_LIBS)
m4_ifdef([PKG_INSTALLDIR], [PKG_INSTALLDIR], AC_SUBST([pkgconfigdir], ${libdir}/pkgconfig))
PLUGIN_INCLUDES='-I$(top_srcdir)/plugins'
AC_SUBST(PLUGIN_INCLUDES)
@ -948,14 +944,14 @@ test "x$exec_prefix" = xNONE && exec_prefix="$prefix"
AC_DEFINE_UNQUOTED(PREFIX, "${prefix}")
AS_AC_EXPAND(HEXCHATLIBDIR, "${libdir}/hexchat")
AS_AC_EXPAND(HEXCHATLIBDIR, "${libdir}/hexchat/plugins")
AC_DEFINE_UNQUOTED(HEXCHATLIBDIR, "$HEXCHATLIBDIR")
AS_AC_EXPAND(HEXCHATSHAREDIR, "$datadir")
AC_DEFINE_UNQUOTED(HEXCHATSHAREDIR, "$HEXCHATSHAREDIR")
dnl for plugins/xxx/Makefile.am
hexchatlibdir=${libdir}/hexchat
hexchatlibdir=${libdir}/hexchat/plugins
AC_SUBST(hexchatlibdir)
AC_CONFIG_FILES([
@ -963,6 +959,8 @@ Makefile
share/Makefile
share/icons/Makefile
share/misc/Makefile
share/pkgconfig/Makefile
share/pkgconfig/hexchat-plugin.pc
src/Makefile
src/common/Makefile
src/common/dbus/Makefile
@ -980,8 +978,6 @@ intl/Makefile
po/Makefile.in
man/Makefile
])
dnl plugins/tcl/Makefile
dnl plugins/sasl/Makefile
AC_OUTPUT
@ -1001,6 +997,7 @@ fi
echo OpenSSL support ....... : $openssl
echo D-Bus support ......... : $dbus
echo libnotify support ..... : $libnotify
echo libcanberra support ... : $libcanberra
echo Spelling .............. : $spell
echo Plugin interface ...... : $plugin
echo NLS/gettext ........... : $USE_NLS
@ -1010,12 +1007,10 @@ echo libproxy support ...... : $libproxy
echo
echo Perl .................. : $perl
echo Python ................ : $python
dnl echo Tcl ................... : $tcl
echo
echo Checksum .............. : $checksum
echo Do At ................. : $doat
echo FiSHLiM ............... : $fishlim
dnl echo SASL .................. : $sasl
echo SysInfo ............... : $sysinfo
echo
echo The binary will be installed in $prefix/bin

View File

@ -1,55 +1,55 @@
.TH HEXCHAT "1" "April 2013" "HexChat 2.9.5" "User Commands"
.SH NAME
HexChat \- manual page for HexChat 2.9.5
.SH DESCRIPTION
.SS "Usage:"
.IP
hexchat [OPTION...]
.SS "Help Options:"
.TP
\fB\-h\fR, \fB\-\-help\fR
Show help options
.TP
\fB\-\-help\-all\fR
Show all help options
.TP
\fB\-\-help\-gtk\fR
Show GTK+ Options
.SS "Application Options:"
.TP
\fB\-a\fR, \fB\-\-no\-auto\fR
Don't auto connect to servers
.TP
\fB\-d\fR, \fB\-\-cfgdir\fR=\fIPATH\fR
Use a different config directory
.TP
\fB\-n\fR, \fB\-\-no\-plugins\fR
Don't auto load any plugins
.TP
\fB\-p\fR, \fB\-\-plugindir\fR
Show plugin auto\-load directory
.TP
\fB\-u\fR, \fB\-\-configdir\fR
Show user config directory
.TP
\fB\-\-url\fR=\fIURL\fR
Open an irc://server:port/channel URL
.TP
\fB\-c\fR, \fB\-\-command\fR=\fICOMMAND\fR
Execute command:
.TP
\fB\-e\fR, \fB\-\-existing\fR
Open URL or execute command in an existing HexChat
.TP
\fB\-\-minimize\fR=\fIlevel\fR
Begin minimized. Level 0=Normal 1=Iconified 2=Tray
.TP
\fB\-v\fR, \fB\-\-version\fR
Show version information
.TP
\fB\-\-display\fR=\fIDISPLAY\fR
X display to use
.SH AUTHOR
This manual page was written by Davide Puricelli <evo@debian.org> for the Debian GNU/Linux system (but
may be used by others).
.TH HEXCHAT "1" "April 2013" "HexChat 2.9.5" "User Commands"
.SH NAME
HexChat \- IRC Client
.SH DESCRIPTION
.SS "Usage:"
.IP
hexchat [OPTION...]
.SS "Help Options:"
.TP
\fB\-h\fR, \fB\-\-help\fR
Show help options
.TP
\fB\-\-help\-all\fR
Show all help options
.TP
\fB\-\-help\-gtk\fR
Show GTK+ Options
.SS "Application Options:"
.TP
\fB\-a\fR, \fB\-\-no\-auto\fR
Don't auto connect to servers
.TP
\fB\-d\fR, \fB\-\-cfgdir\fR=\fIPATH\fR
Use a different config directory
.TP
\fB\-n\fR, \fB\-\-no\-plugins\fR
Don't auto load any plugins
.TP
\fB\-p\fR, \fB\-\-plugindir\fR
Show plugin auto\-load directory
.TP
\fB\-u\fR, \fB\-\-configdir\fR
Show user config directory
.TP
\fB\-\-url\fR=\fIURL\fR
Open an irc://server:port/channel?key URL
.TP
\fB\-c\fR, \fB\-\-command\fR=\fICOMMAND\fR
Execute command:
.TP
\fB\-e\fR, \fB\-\-existing\fR
Open URL or execute command in an existing HexChat
.TP
\fB\-\-minimize\fR=\fIlevel\fR
Begin minimized. Level 0=Normal 1=Iconified 2=Tray
.TP
\fB\-v\fR, \fB\-\-version\fR
Show version information
.TP
\fB\-\-display\fR=\fIDISPLAY\fR
X display to use
.SH AUTHOR
This manual page was written by Davide Puricelli <evo@debian.org> for the Debian GNU/Linux system (but
may be used by others).

View File

@ -1,4 +1,4 @@
libdir = $(hexchatlibdir)/plugins
libdir = $(hexchatlibdir)
lib_LTLIBRARIES = checksum.la
checksum_la_SOURCES = checksum.c

View File

@ -1,5 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Configuration">
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>

View File

@ -1,5 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Configuration">
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>

View File

@ -1,4 +1,4 @@
libdir = $(hexchatlibdir)/plugins
libdir = $(hexchatlibdir)
lib_LTLIBRARIES = doat.la
doat_la_SOURCES = doat.c

View File

@ -1,5 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Configuration">
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>

View File

@ -1,5 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Configuration">
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>

View File

@ -1,6 +1,6 @@
EXTRA_DIST = INSTALL LICENSE README
libdir = $(hexchatlibdir)/plugins
libdir = $(hexchatlibdir)
lib_LTLIBRARIES = fishlim.la
fishlim_la_SOURCES = fish.c irc.c keystore.c misc.c plugin_hexchat.c

View File

@ -1,5 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Configuration">
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>

View File

@ -1,5 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Configuration">
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>

View File

@ -131,11 +131,11 @@ int hexchat_plugin_init(hexchat_plugin *plugin_handle, char **plugin_name, char
hexchat_hook_command(ph, "mpc", HEXCHAT_PRI_NORM, mpc_tell,"no help text", 0);
hexchat_hook_command(ph, "mpc_themes", HEXCHAT_PRI_NORM, print_themes,"no help text", 0);
hexchat_hook_command(ph, "mpc_reloadthemes", HEXCHAT_PRI_NORM, mpc_themeReload,"no help text", 0);
hexchat_command (ph, "MENU -ietc\\music.png ADD \"Window/Display Current Song (MPC)\" \"MPC\"");
hexchat_command (ph, "MENU -ishare\\music.png ADD \"Window/Display Current Song (MPC)\" \"MPC\"");
themeInit();
loadThemes();
hexchat_printf(ph, "%s %s plugin loaded\n",*plugin_name, VERSION);
hexchat_printf(ph, "%s plugin loaded\n", *plugin_name);
return 1;
}

View File

@ -1,5 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Configuration">
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>

View File

@ -2,7 +2,7 @@
EXTRA_DIST=alt_completion.pl generate_header lib/Xchat.pm lib/Xchat/Embed.pm lib/Xchat/List/Network.pm \
lib/Xchat/List/Network/Entry.pm lib/Xchat/List/Network/AutoJoin.pm lib/IRC.pm
libdir = $(hexchatlibdir)/plugins
libdir = $(hexchatlibdir)
lib_LTLIBRARIES = perl.la
perl_la_SOURCES = perl.c

View File

@ -296,7 +296,7 @@ list_item_to_sv ( hexchat_list *list, const char *const *fields )
default:
field_value = &PL_sv_undef;
}
hv_store (hash, field_name, name_len, field_value, 0);
(void)hv_store (hash, field_name, name_len, field_value, 0);
field_index++;
}
return sv_2mortal (newRV_noinc ((SV *) hash));

View File

@ -1,5 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Configuration">
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
@ -42,13 +45,13 @@
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
<TargetName>$(Perl518Output)</TargetName>
<TargetName>$(PerlOutput)</TargetName>
<OutDir>$(HexChatBin)</OutDir>
<IntDir>$(HexChatObj)$(ProjectName)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
<TargetName>$(Perl518Output)</TargetName>
<TargetName>$(PerlOutput)</TargetName>
<OutDir>$(HexChatBin)</OutDir>
<IntDir>$(HexChatObj)$(ProjectName)\</IntDir>
</PropertyGroup>
@ -60,7 +63,7 @@
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;PERL518_EXPORTS;$(OwnFlags);%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(Perl518Path)\lib\CORE;$(IntDir);..\..\src\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(PerlPath)\lib\CORE;$(IntDir);..\..\src\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
@ -69,15 +72,15 @@
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>$(Perl518Lib).lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>$(PerlLib).lib;%(AdditionalDependencies)</AdditionalDependencies>
<ModuleDefinitionFile>perl.def</ModuleDefinitionFile>
<DelayLoadDLLs>$(Perl518Lib).dll;%(DelayLoadDLLs)</DelayLoadDLLs>
<DelayLoadDLLs>$(PerlLib).dll;%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<PreBuildEvent>
<Command>"$(GendefPath)\gendef" "$(Perl518Path)\bin\$(Perl518Lib).dll"
move $(Perl518Lib).def "$(IntDir)"
lib /nologo /machine:x86 "/def:$(IntDir)$(Perl518Lib).def" "/out:$(OutDir)\$(Perl518Lib).lib"
"$(Perl518Path)\bin\perl.exe" generate_header
<Command>"$(GendefPath)\gendef" "$(PerlPath)\bin\$(PerlLib).dll"
move $(PerlLib).def "$(IntDir)"
lib /nologo /machine:x86 "/def:$(IntDir)$(PerlLib).def" "/out:$(OutDir)\$(PerlLib).lib"
"$(PerlPath)\bin\perl.exe" generate_header
move irc.pm.h "$(IntDir)"
move xchat.pm.h "$(IntDir)"</Command>
</PreBuildEvent>
@ -90,7 +93,7 @@ move xchat.pm.h "$(IntDir)"</Command>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;_WIN64;_AMD64_;NDEBUG;_WINDOWS;_USRDLL;PERL518_EXPORTS;$(OwnFlags);%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(Perl518Path)\lib\CORE;$(IntDir);..\..\src\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(PerlPath)\lib\CORE;$(IntDir);..\..\src\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
@ -99,15 +102,15 @@ move xchat.pm.h "$(IntDir)"</Command>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>$(Perl518Lib).lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>$(PerlLib).lib;%(AdditionalDependencies)</AdditionalDependencies>
<ModuleDefinitionFile>perl.def</ModuleDefinitionFile>
<DelayLoadDLLs>$(Perl518Lib).dll;%(DelayLoadDLLs)</DelayLoadDLLs>
<DelayLoadDLLs>$(PerlLib).dll;%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<PreBuildEvent>
<Command>"$(GendefPath)\gendef" "$(Perl518Path)\bin\$(Perl518Lib).dll"
move $(Perl518Lib).def "$(IntDir)"
lib /nologo /machine:x64 "/def:$(IntDir)$(Perl518Lib).def" "/out:$(OutDir)\$(Perl518Lib).lib"
"$(Perl518Path)\bin\perl.exe" generate_header
<Command>"$(GendefPath)\gendef" "$(PerlPath)\bin\$(PerlLib).dll"
move $(PerlLib).def "$(IntDir)"
lib /nologo /machine:x64 "/def:$(IntDir)$(PerlLib).def" "/out:$(OutDir)\$(PerlLib).lib"
"$(PerlPath)\bin\perl.exe" generate_header
move irc.pm.h "$(IntDir)"
move xchat.pm.h "$(IntDir)"</Command>
</PreBuildEvent>

View File

@ -1,6 +1,6 @@
EXTRA_DIST =
libdir = $(hexchatlibdir)/plugins
libdir = $(hexchatlibdir)
lib_LTLIBRARIES = python.la
python_la_SOURCES = python.c

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Configuration">
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
@ -13,7 +16,7 @@
<PropertyGroup Label="Globals">
<ProjectGuid>{19C52A0A-A790-409E-A28A-9745FF990F5C}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>python</RootNamespace>
<RootNamespace>python2</RootNamespace>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
@ -42,13 +45,13 @@
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
<TargetName>$(PythonOutput)</TargetName>
<TargetName>$(Python2Output)</TargetName>
<OutDir>$(HexChatBin)</OutDir>
<IntDir>$(HexChatObj)$(ProjectName)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
<TargetName>$(PythonOutput)</TargetName>
<TargetName>$(Python2Output)</TargetName>
<OutDir>$(HexChatBin)</OutDir>
<IntDir>$(HexChatObj)$(ProjectName)\</IntDir>
</PropertyGroup>
@ -60,7 +63,7 @@
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;PYTHON_EXPORTS;$(OwnFlags);%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(Glib);$(PythonPath)\include;..\..\src\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(Glib);$(Python2Path)\include;..\..\src\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
@ -69,8 +72,8 @@
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<ModuleDefinitionFile>python.def</ModuleDefinitionFile>
<AdditionalDependencies>"$(PythonLib).lib";$(DepLibs);%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(DepsRoot)\lib;$(OutDir);$(PythonPath)\libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>"$(Python2Lib).lib";$(DepLibs);%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(DepsRoot)\lib;$(OutDir);$(Python2Path)\libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@ -81,7 +84,7 @@
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;_WIN64;_AMD64_;NDEBUG;_WINDOWS;_USRDLL;PYTHON_EXPORTS;$(OwnFlags);%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(Glib);$(PythonPath)\include;..\..\src\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(Glib);$(Python2Path)\include;..\..\src\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
@ -90,8 +93,8 @@
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<ModuleDefinitionFile>python.def</ModuleDefinitionFile>
<AdditionalDependencies>"$(PythonLib).lib";$(DepLibs);%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(DepsRoot)\lib;$(OutDir);$(PythonPath)\libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>"$(Python2Lib).lib";$(DepLibs);%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(DepsRoot)\lib;$(OutDir);$(Python2Path)\libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<ItemGroup>

View File

@ -1,5 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Configuration">
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
@ -11,9 +14,9 @@
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{58654438-F674-42F7-88FA-73EF90AD80B1}</ProjectGuid>
<ProjectGuid>{C2321A03-0BA7-45B3-8740-ABD82B36B0BF}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>perl516</RootNamespace>
<RootNamespace>python3</RootNamespace>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
@ -42,13 +45,13 @@
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
<TargetName>$(Perl516Output)</TargetName>
<TargetName>$(Python3Output)</TargetName>
<OutDir>$(HexChatBin)</OutDir>
<IntDir>$(HexChatObj)$(ProjectName)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
<TargetName>$(Perl516Output)</TargetName>
<TargetName>$(Python3Output)</TargetName>
<OutDir>$(HexChatBin)</OutDir>
<IntDir>$(HexChatObj)$(ProjectName)\</IntDir>
</PropertyGroup>
@ -59,8 +62,8 @@
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;PERL516_EXPORTS;$(OwnFlags);%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(Perl516Path)\lib\CORE;$(IntDir);..\..\src\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;PYTHON_EXPORTS;$(OwnFlags);%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(Glib);$(Python3Path)\include;..\..\src\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
@ -68,19 +71,10 @@
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>$(Perl516Lib).lib;%(AdditionalDependencies)</AdditionalDependencies>
<ModuleDefinitionFile>perl.def</ModuleDefinitionFile>
<DelayLoadDLLs>$(Perl516Lib).dll;%(DelayLoadDLLs)</DelayLoadDLLs>
<ModuleDefinitionFile>python.def</ModuleDefinitionFile>
<AdditionalDependencies>"$(Python3Lib).lib";$(DepLibs);%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(DepsRoot)\lib;$(OutDir);$(Python3Path)\libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
<PreBuildEvent>
<Command>"$(GendefPath)\gendef" "$(Perl516Path)\bin\$(Perl516Lib).dll"
move $(Perl516Lib).def "$(IntDir)"
lib /nologo /machine:x86 "/def:$(IntDir)$(Perl516Lib).def" "/out:$(OutDir)\$(Perl516Lib).lib"
"$(Perl516Path)\bin\perl.exe" generate_header
move irc.pm.h "$(IntDir)"
move xchat.pm.h "$(IntDir)"</Command>
</PreBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
@ -89,8 +83,8 @@ move xchat.pm.h "$(IntDir)"</Command>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;_WIN64;_AMD64_;NDEBUG;_WINDOWS;_USRDLL;PERL516_EXPORTS;$(OwnFlags);%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(Perl516Path)\lib\CORE;$(IntDir);..\..\src\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_WIN64;_AMD64_;NDEBUG;_WINDOWS;_USRDLL;PYTHON_EXPORTS;$(OwnFlags);%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(Glib);$(Python3Path)\include;..\..\src\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
@ -98,25 +92,16 @@ move xchat.pm.h "$(IntDir)"</Command>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>$(Perl516Lib).lib;%(AdditionalDependencies)</AdditionalDependencies>
<ModuleDefinitionFile>perl.def</ModuleDefinitionFile>
<DelayLoadDLLs>$(Perl516Lib).dll;%(DelayLoadDLLs)</DelayLoadDLLs>
<ModuleDefinitionFile>python.def</ModuleDefinitionFile>
<AdditionalDependencies>"$(Python3Lib).lib";$(DepLibs);%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(DepsRoot)\lib;$(OutDir);$(Python3Path)\libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
<PreBuildEvent>
<Command>"$(GendefPath)\gendef" "$(Perl516Path)\bin\$(Perl516Lib).dll"
move $(Perl516Lib).def "$(IntDir)"
lib /nologo /machine:x64 "/def:$(IntDir)$(Perl516Lib).def" "/out:$(OutDir)\$(Perl516Lib).lib"
"$(Perl516Path)\bin\perl.exe" generate_header
move irc.pm.h "$(IntDir)"
move xchat.pm.h "$(IntDir)"</Command>
</PreBuildEvent>
</ItemDefinitionGroup>
<ItemGroup>
<None Include="perl.def" />
<None Include="python.def" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="perl.c" />
<ClCompile Include="python.c" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">

View File

@ -2,22 +2,20 @@
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
<UniqueIdentifier>{f4eaf231-f095-42d3-8427-b2b6006cacb1}</UniqueIdentifier>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
<UniqueIdentifier>{0166c0f9-7968-4a09-9ef5-a5179c7746eb}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<None Include="perl.def">
<Filter>Resource Files</Filter>
</None>
</ItemGroup>
<ItemGroup>
<ClCompile Include="perl.c">
<ClCompile Include="python.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<None Include="python.def">
<Filter>Resource Files</Filter>
</None>
</ItemGroup>
</Project>

View File

@ -1,4 +1,4 @@
libdir = $(hexchatlibdir)/plugins
libdir = $(hexchatlibdir)
lib_LTLIBRARIES = sysinfo.la
sysinfo_la_SOURCES = hwmon.c match.c parse.c pci.c xsys.c

View File

@ -34,6 +34,7 @@ int hwmon_chip_present()
return 0;
}
#if 0
void get_hwmon_chip_name(char *name)
{
char *position, buffer[bsize];
@ -47,6 +48,7 @@ void get_hwmon_chip_name(char *name)
fclose(fp);
}
}
#endif
void get_hwmon_temp(unsigned int *value, unsigned int *sensor)
{

View File

@ -438,8 +438,10 @@ int xs_parse_hwmon_chip(char *chip)
{
if (!hwmon_chip_present())
return 1;
#if 0
else
get_hwmon_chip_name(chip);
#endif
return 0;
}

View File

@ -31,6 +31,7 @@ static hexchat_plugin *ph; /* plugin handle */
static char name[] = "SysInfo";
static char desc[] = "Display info about your hardware and OS";
static char version[] = "1.1";
static char helptext[] = "USAGE: /sysinfo - Sends info about your hardware and OS to current channel.";
static int firstRun;
static char *wmiOs;
static char *wmiCpu;
@ -397,8 +398,8 @@ hexchat_plugin_init (hexchat_plugin *plugin_handle, char **plugin_name, char **p
firstRun = 1;
hexchat_hook_command (ph, "SYSINFO", HEXCHAT_PRI_NORM, printInfo, NULL, NULL);
hexchat_command (ph, "MENU -ietc\\system.png ADD \"Window/Display System Info\" \"SYSINFO\"");
hexchat_hook_command (ph, "SYSINFO", HEXCHAT_PRI_NORM, printInfo, helptext, NULL);
hexchat_command (ph, "MENU -ishare\\system.png ADD \"Window/Send System Info\" \"SYSINFO\"");
hexchat_printf (ph, "%s plugin loaded\n", name);

View File

@ -1,5 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Configuration">
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>

View File

@ -867,7 +867,7 @@ hexchat_plugin_init (hexchat_plugin *plugin_handle, char **plugin_name, char **p
hexchat_pluginpref_set_int (ph, "percent", DEFAULT_PERCENT);
}
hexchat_command (ph, "MENU ADD \"Window/Display System Info\" \"SYSINFO\"");
hexchat_command (ph, "MENU ADD \"Window/Send System Info\" \"SYSINFO\"");
hexchat_printf (ph, "%s plugin loaded\n", name);
return 1;
}

View File

@ -35,7 +35,6 @@ static char name[] = "Update Checker";
static char desc[] = "Check for HexChat updates automatically";
static char version[] = "4.0";
static const char upd_help[] = "Update Checker Usage:\n /UPDCHK, check for HexChat updates\n /UPDCHK SET delay|freq, set startup delay or check frequency\n";
static int legacy_os = 0;
static char*
check_version ()
@ -121,30 +120,14 @@ check_version ()
return "Unknown";
}
if (legacy_os)
{
hResource = HttpOpenRequest (hConnect,
TEXT ("GET"),
TEXT ("/hexchat/hexchat/master/win32/version-xp.txt"),
TEXT ("HTTP/1.0"),
NULL,
NULL,
INTERNET_FLAG_SECURE | INTERNET_FLAG_NO_CACHE_WRITE | INTERNET_FLAG_RELOAD | INTERNET_FLAG_NO_AUTH,
0);
}
else
{
hResource = HttpOpenRequest (hConnect,
TEXT ("GET"),
TEXT ("/hexchat/hexchat/master/win32/version.txt"),
TEXT ("HTTP/1.0"),
NULL,
NULL,
INTERNET_FLAG_SECURE | INTERNET_FLAG_NO_CACHE_WRITE | INTERNET_FLAG_RELOAD | INTERNET_FLAG_NO_AUTH,
0);
}
hResource = HttpOpenRequest (hConnect,
TEXT ("GET"),
TEXT ("/hexchat/hexchat/master/win32/version.txt"),
TEXT ("HTTP/1.0"),
NULL,
NULL,
INTERNET_FLAG_SECURE | INTERNET_FLAG_NO_CACHE_WRITE | INTERNET_FLAG_RELOAD | INTERNET_FLAG_NO_AUTH,
0);
if (!hResource)
{
InternetCloseHandle (hConnect);
@ -303,21 +286,12 @@ int
hexchat_plugin_init (hexchat_plugin *plugin_handle, char **plugin_name, char **plugin_desc, char **plugin_version, char *arg)
{
int delay;
OSVERSIONINFOEX osvi;
ph = plugin_handle;
*plugin_name = name;
*plugin_desc = desc;
*plugin_version = version;
osvi.dwOSVersionInfoSize = sizeof (OSVERSIONINFOEX);
GetVersionEx ((OSVERSIONINFO*) &osvi);
if (osvi.dwMajorVersion == 5)
{
legacy_os = 1;
}
/* these are required for the very first run */
delay = hexchat_pluginpref_get_int (ph, "delay");
if (delay == -1)
@ -333,7 +307,7 @@ hexchat_plugin_init (hexchat_plugin *plugin_handle, char **plugin_name, char **p
hexchat_hook_command (ph, "UPDCHK", HEXCHAT_PRI_NORM, print_version, upd_help, NULL);
hexchat_hook_timer (ph, delay * 1000, delayed_check, NULL);
hexchat_command (ph, "MENU -ietc\\download.png ADD \"Help/Check for Updates\" \"UPDCHK\"");
hexchat_command (ph, "MENU -ishare\\download.png ADD \"Help/Check for Updates\" \"UPDCHK\"");
hexchat_printf (ph, "%s plugin loaded\n", name);
return 1; /* return 1 for success */

View File

@ -1,5 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Configuration">
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>

View File

@ -173,7 +173,7 @@ hexchat_plugin_init(hexchat_plugin *plugin_handle,
*plugin_version = "0.5";
hexchat_hook_command (ph, "WINAMP", HEXCHAT_PRI_NORM, winamp, "Usage: /WINAMP [PAUSE|PLAY|STOP|NEXT|PREV|START] - control Winamp or show what's currently playing", 0);
hexchat_command (ph, "MENU -ietc\\music.png ADD \"Window/Display Current Song (Winamp)\" \"WINAMP\"");
hexchat_command (ph, "MENU -ishare\\music.png ADD \"Window/Display Current Song (Winamp)\" \"WINAMP\"");
hexchat_print (ph, "Winamp plugin loaded\n");

View File

@ -1,5 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Configuration">
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>

View File

@ -1,70 +0,0 @@
========================================================================
MICROSOFT FOUNDATION CLASS LIBRARY : wmpa
========================================================================
AppWizard has created this wmpa DLL for you. This DLL not only
demonstrates the basics of using the Microsoft Foundation classes but
is also a starting point for writing your DLL.
This file contains a summary of what you will find in each of the files that
make up your wmpa DLL.
wmpa.dsp
This file (the project file) contains information at the project level and
is used to build a single project or subproject. Other users can share the
project (.dsp) file, but they should export the makefiles locally.
wmpa.h
This is the main header file for the DLL. It declares the
CWmpaApp class.
wmpa.cpp
This is the main DLL source file. It contains the class CWmpaApp.
It also contains the OLE entry points required of inproc servers.
wmpa.odl
This file contains the Object Description Language source code for the
type library of your DLL.
wmpa.rc
This is a listing of all of the Microsoft Windows resources that the
program uses. It includes the icons, bitmaps, and cursors that are stored
in the RES subdirectory. This file can be directly edited in Microsoft
Visual C++.
wmpa.clw
This file contains information used by ClassWizard to edit existing
classes or add new classes. ClassWizard also uses this file to store
information needed to create and edit message maps and dialog data
maps and to create prototype member functions.
res\wmpa.rc2
This file contains resources that are not edited by Microsoft
Visual C++. You should place all resources not editable by
the resource editor in this file.
wmpa.def
This file contains information about the DLL that must be
provided to run with Microsoft Windows. It defines parameters
such as the name and description of the DLL. It also exports
functions from the DLL.
/////////////////////////////////////////////////////////////////////////////
Other standard files:
StdAfx.h, StdAfx.cpp
These files are used to build a precompiled header (PCH) file
named wmpa.pch and a precompiled types file named StdAfx.obj.
Resource.h
This is the standard header file, which defines new resource IDs.
Microsoft Visual C++ reads and updates this file.
/////////////////////////////////////////////////////////////////////////////
Other notes:
AppWizard uses "TODO:" to indicate parts of the source code you
should add to or customize.
/////////////////////////////////////////////////////////////////////////////

View File

@ -1,8 +0,0 @@
// stdafx.cpp : source file that includes just the standard includes
// wmpa.pch will be the pre-compiled header
// stdafx.obj will contain the pre-compiled type information
#include "stdafx.h"

View File

@ -1,62 +0,0 @@
// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
//
#if !defined(AFX_STDAFX_H__33D7BD1A_A9B6_4BDE_B867_5278529B95B2__INCLUDED_)
#define AFX_STDAFX_H__33D7BD1A_A9B6_4BDE_B867_5278529B95B2__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
#include <afxwin.h> // MFC core and standard components
#include <afxext.h> // MFC extensions
#ifndef _AFX_NO_OLE_SUPPORT
#include <afxole.h> // MFC OLE classes
#include <afxodlgs.h> // MFC OLE dialog classes
#include <afxdisp.h> // MFC Automation classes
#endif // _AFX_NO_OLE_SUPPORT
#ifndef _AFX_NO_DB_SUPPORT
#include <afxdb.h> // MFC ODBC database classes
#endif // _AFX_NO_DB_SUPPORT
#ifndef _AFX_NO_DAO_SUPPORT
#include <afxdao.h> // MFC DAO database classes
#endif // _AFX_NO_DAO_SUPPORT
#include <afxdtctl.h> // MFC support for Internet Explorer 4 Common Controls
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h> // MFC support for Windows Common Controls
#endif // _AFX_NO_AFXCMN_SUPPORT
/******************************************************************
* Includes
******************************************************************/
#include "wmpcdrom.h"
#include "wmpcdromcollection.h"
#include "wmpclosedcaption.h"
#include "wmpcontrols.h"
#include "wmpdvd.h"
#include "wmperror.h"
#include "wmperroritem.h"
#include "wmpmedia.h"
#include "wmpmediacollection.h"
#include "wmpnetwork.h"
#include "wmpplayer4.h"
#include "wmpplayerapplication.h"
#include "wmpplaylist.h"
#include "wmpplaylistarray.h"
#include "wmpplaylistcollection.h"
#include "wmpsettings.h"
#include "wmpstringcollection.h"
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_STDAFX_H__33D7BD1A_A9B6_4BDE_B867_5278529B95B2__INCLUDED_)

View File

@ -1,590 +0,0 @@
/******************************************************************
* $Id$
*
* $Log$
*
* Copyright <20> 2005 David Cullen, All rights reserved
*
******************************************************************/
#include "stdafx.h"
#include "hexchat-plugin.h"
#include <windows.h>
#include <tchar.h>
#include "wmpa.h"
#include "WMPADialog.h"
#define XMMS_SESSION 0
/******************************************************************
* Globalss
******************************************************************/
hexchat_plugin *ph = NULL;
CWMPPlayer4 *wmp;
static const char subKey[] = "Software\\FlowerSoft\\WMPA";
/******************************************************************
* hexchat_plugin_init
******************************************************************/
int hexchat_plugin_init(hexchat_plugin *plugin_handle,
char **plugin_name,
char **plugin_desc,
char **plugin_version,
char *arg)
{
BOOL success;
ph = plugin_handle;
*plugin_name = "WMPA";
*plugin_desc = "Announce the current song from Windows Media Player.";
*plugin_version = VER_STRING;
// Show the song browser
success = StartWindowsMediaPlayer();
if (!success) {
hexchat_printf(ph, "WMPA: Failed to show the song browser.");
hexchat_printf(ph, "WMPA: Could not load plug-in version %s.", VER_STRING);
return(E_FAIL);
}
// Get a pointer to the Windows Media Player control
wmp = GetWindowsMediaPlayer();
if (wmp == NULL) {
hexchat_printf(ph, "WMPA: Failed to get a pointer to the Windows Media Player interface.");
hexchat_printf(ph, "WMPA: Could not load plug-in version %s.", VER_STRING);
return(E_POINTER);
}
// Restore the settings (need wmp first)
success = wmpaRestoreSettings();
if (!success) {
hexchat_printf(ph, "WMPA: Failed to restore the settings.");
}
hexchat_hook_command(ph, "auto", HEXCHAT_PRI_NORM, wmpaAuto, 0, 0);
hexchat_hook_command(ph, "curr", HEXCHAT_PRI_NORM, wmpaCurr, 0, 0);
hexchat_hook_command(ph, "find", HEXCHAT_PRI_NORM, wmpaFind, 0, 0);
hexchat_hook_command(ph, "slist", HEXCHAT_PRI_NORM, wmpaList, 0, 0);
hexchat_hook_command(ph, "next", HEXCHAT_PRI_NORM, wmpaNext, 0, 0);
hexchat_hook_command(ph, "play", HEXCHAT_PRI_NORM, wmpaPlay, 0, 0);
hexchat_hook_command(ph, "pause", HEXCHAT_PRI_NORM, wmpaPause, 0, 0);
hexchat_hook_command(ph, "prev", HEXCHAT_PRI_NORM, wmpaPrev, 0, 0);
hexchat_hook_command(ph, "song", HEXCHAT_PRI_NORM, wmpaSong, 0, 0);
hexchat_hook_command(ph, "stop", HEXCHAT_PRI_NORM, wmpaStop, 0, 0);
hexchat_hook_command(ph, "volume", HEXCHAT_PRI_NORM, wmpaVolume, 0, 0);
hexchat_hook_command(ph, "wmpahelp", HEXCHAT_PRI_NORM, wmpaHelp, 0, 0);
hexchat_printf(ph, "WMPA %s successfully loaded.", VER_STRING);
wmpaCommands();
hexchat_printf(ph, "WMPA: e-mail me if you find any bugs: dcullen@intergate.com");
return 1;
}
/******************************************************************
* hexchat_plugin_deinit
******************************************************************/
int hexchat_plugin_deinit(void)
{
BOOL success;
hexchat_printf(ph, "WMPA %s is unloading.", VER_STRING);
// Save the settings
success = wmpaSaveSettings();
if (!success) {
hexchat_printf(ph, "WMPA: Failed to save the settings.");
}
wmp = NULL;
BOOL result = StopWindowsMediaPlayer();
if (!result) {
hexchat_printf(ph, "WMPA could not shut down Windows Media Player.");
}
hexchat_printf(ph, "WMPA %s has unloaded.", VER_STRING);
return 1;
}
/******************************************************************
* hexchat_plugin_get_info
******************************************************************/
void hexchat_plugin_get_info(char **name, char **desc, char **version, void **reserved)
{
*name = "WMPA";
*desc = "Announce the current song from Windows Media Player.";
*version = VER_STRING;
if (reserved) *reserved = NULL;
}
/******************************************************************
* wmpaCommands
******************************************************************/
void wmpaCommands(void)
{
hexchat_printf(ph, "WMPA: /auto [on/off] : Turn on/off auto announce of the current song or display the current setting");
hexchat_printf(ph, "WMPA: /curr : Tell what song is currently playing");
hexchat_printf(ph, "WMPA: /find [word] : Find songs with \"word\" in their title, create a new playlist, and play it");
hexchat_printf(ph, "WMPA: /slist [word] : List songs with \"word\" in their title");
hexchat_printf(ph, "WMPA: /next : Play the next song");
hexchat_printf(ph, "WMPA: /play : Play the current song");
hexchat_printf(ph, "WMPA: /pause : Pause the current song");
hexchat_printf(ph, "WMPA: /prev : Play the previous song");
hexchat_printf(ph, "WMPA: /song : Announce the current song from Windows Media Player in HexChat");
hexchat_printf(ph, "WMPA: /stop : Stop the current song");
hexchat_printf(ph, "WMPA: /volume [volume] : Set the volume (0 to 100) or display the current volume");
hexchat_printf(ph, "WMPA: /wmpahelp : Display this help.");
}
/******************************************************************
* wmpaAuto
******************************************************************/
int wmpaAuto(char *word[], char *word_eol[], void *user_data)
{
CWMPADialog *pDialog;
char *state;
pDialog = GetWMPADialog();
if (pDialog == NULL) return(HEXCHAT_EAT_ALL);
if (CString(word[2]).IsEmpty()) {
if (pDialog->autoAnnounce) {
state = "on";
}
else {
state = "off";
}
}
else {
state = word[2];
if (CString(state) == "on") {
pDialog->autoAnnounce = TRUE;
}
if (CString(state) == "off") {
pDialog->autoAnnounce = FALSE;
}
wmpaSaveSettings();
}
hexchat_printf(ph, "WMPA: auto is %s", state);
return(HEXCHAT_EAT_ALL);
}
/******************************************************************
* wmpaCurr
******************************************************************/
int wmpaCurr(char *word[], char *word_eol[], void *user_data)
{
hexchat_printf(ph, "WMPA: Playing %s", (LPCTSTR) wmpaGetSongTitle());
return(HEXCHAT_EAT_ALL);
}
/******************************************************************
* wmpaFind
******************************************************************/
int wmpaFind(char *word[], char *word_eol[], void *user_data)
{
long index;
long count;
long found;
if (wmp != NULL) {
CWMPMediaCollection mc = wmp->GetMediaCollection();
CWMPPlaylist all = mc.getAll();
CWMPPlaylistCollection pc = wmp->GetPlaylistCollection();
CWMPPlaylistArray pa = pc.getAll();
CWMPPlaylist playlist;
CWMPMedia media;
for (index = 0; index < pc.getAll().GetCount(); index++) {
if (pc.getAll().Item(index).GetName() == CString(word_eol[2])) {
playlist = pc.getAll().Item(index);
pc.remove(playlist);
}
}
playlist = pc.newPlaylist(word_eol[2]);
count = all.GetCount();
found = 0;
for (index = 0; index < count; index++) {
media = all.GetItem(index);
CString artist = media.getItemInfo("Artist");
CString title = media.getItemInfo("Title");
CString album = media.getItemInfo("Album");
if ( (artist.Find(word_eol[2]) != -1) ||
(title.Find(word_eol[2]) != -1) ||
(album.Find(word_eol[2]) != -1) ) {
playlist.appendItem(media);
found++;
}
}
if (found > 0) {
hexchat_printf(ph, "WMPA: Found %d songs with \"%s\" in them", found, word_eol[2]);
wmp->SetCurrentPlaylist(playlist);
wmp->GetControls().play();
hexchat_printf(ph, "WMPA: Playing %s", (LPCTSTR) wmpaGetSongTitle());
CWMPADialog *dialog = GetWMPADialog();
if (dialog != NULL) {
dialog->UpdateSongList();
dialog->SelectCurrentSong();
dialog->UpdatePlayLists();
}
}
else {
hexchat_printf(ph, "WMPA: Could not find %s", word_eol[2]);
}
}
return(HEXCHAT_EAT_ALL);
}
/******************************************************************
* wmpaList
******************************************************************/
int wmpaList(char *word[], char *word_eol[], void *user_data)
{
long index;
long count;
long found;
if (wmp != NULL) {
hexchat_printf(ph, "WMPA: Listing songs with \"%s\" in them", word_eol[2]);
CWMPMediaCollection mc = wmp->GetMediaCollection();
CWMPPlaylist all = mc.getAll();
CWMPMedia media;
count = all.GetCount();
found = 0;
for (index = 0; index < count; index++) {
media = all.GetItem(index);
CString artist = media.getItemInfo("Artist");
CString title = media.getItemInfo("Title");
CString album = media.getItemInfo("Album");
if ( (artist.Find(word_eol[2]) != -1) ||
(title.Find(word_eol[2]) != -1) ||
(album.Find(word_eol[2]) != -1) ) {
hexchat_printf(ph, "WMPA: Found \"%s - %s (%s)\"", artist, title, album);
found++;
}
}
if (found > 0) {
if (found == 1)
hexchat_printf(ph, "WMPA: Found %d song with \"%s\" in it", found, word_eol[2]);
else
hexchat_printf(ph, "WMPA: Found %d songs with \"%s\" in them", found, word_eol[2]);
}
else {
hexchat_printf(ph, "WMPA: Could not find any songs with \"%s\" in them", word_eol[2]);
}
}
return(HEXCHAT_EAT_ALL);
}
/******************************************************************
* wmpaNext
******************************************************************/
int wmpaNext(char *word[], char *word_eol[], void *user_data)
{
if (wmp != NULL) {
wmp->GetControls().next();
hexchat_printf(ph, "WMPA: Playing %s", (LPCTSTR) wmpaGetSongTitle());
}
return(HEXCHAT_EAT_ALL);
}
/******************************************************************
* wmpaPlay
******************************************************************/
int wmpaPlay(char *word[], char *word_eol[], void *user_data)
{
if (wmp != NULL) {
wmp->GetControls().play();
hexchat_printf(ph, "WMPA: Playing %s", (LPCTSTR) wmpaGetSongTitle());
}
return(HEXCHAT_EAT_ALL);
}
/******************************************************************
* wmpaPause
******************************************************************/
int wmpaPause(char *word[], char *word_eol[], void *user_data)
{
if (wmp != NULL) {
wmp->GetControls().pause();
hexchat_printf(ph, "WMPA: Pausing %s", (LPCTSTR) wmpaGetSongTitle());
}
return(HEXCHAT_EAT_ALL);
}
/******************************************************************
* wmpaPrev
******************************************************************/
int wmpaPrev(char *word[], char *word_eol[], void *user_data)
{
if (wmp != NULL) {
wmp->GetControls().previous();
hexchat_printf(ph, "WMPA: Playing %s", (LPCTSTR) wmpaGetSongTitle());
}
return(HEXCHAT_EAT_ALL);
}
/******************************************************************
* wmpaSong
******************************************************************/
int wmpaSong(char *word[], char *word_eol[], void *user_data)
{
CString songTitle = wmpaGetSongTitle();
hexchat_commandf(ph, "me is playing %s", (LPCTSTR) songTitle);
return(HEXCHAT_EAT_ALL);
}
/******************************************************************
* wmpaStop
******************************************************************/
int wmpaStop(char *word[], char *word_eol[], void *user_data)
{
if (wmp != NULL) {
wmp->GetControls().stop();
hexchat_printf(ph, "WMPA: Stopping %s", (LPCTSTR) wmpaGetSongTitle());
}
return(HEXCHAT_EAT_ALL);
}
/******************************************************************
* wmpaHelp
******************************************************************/
int wmpaHelp(char *word[], char *word_eol[], void *user_data)
{
hexchat_printf(ph, "\n");
hexchat_printf(ph, "WMPA %s Help", VER_STRING);
wmpaCommands();
hexchat_printf(ph, "\n");
return(HEXCHAT_EAT_ALL);
}
/******************************************************************
* wmpaVolume
******************************************************************/
int wmpaVolume(char *word[], char *word_eol[], void *user_data)
{
char *endPtr;
long volume;
if (CString(word[2]).IsEmpty()) {
volume = wmp->GetSettings().GetVolume();
}
else {
volume = strtol(word[2], &endPtr, 10);
if ((wmp != NULL) && (volume >= 0) && (volume <= 100)) {
wmp->GetSettings().SetVolume(volume);
wmpaSaveSettings();
}
}
hexchat_printf(ph, "WMPA: volume is %d", volume);
return(HEXCHAT_EAT_ALL);
}
/******************************************************************
* wmpaRestoreSettings
******************************************************************/
BOOL wmpaRestoreSettings(void)
{
CWMPADialog *pDialog;
DWORD type;
int volume;
BOOL autoAnnounce;
DWORD size;
BOOL result;
if (wmp == NULL) return(FALSE);
volume = 50;
result = GetSetting("Volume", &type, (LPBYTE) &volume, &size);
wmp->GetSettings().SetVolume(volume);
autoAnnounce = FALSE;
pDialog = GetWMPADialog();
if (pDialog != NULL) {
result = result && GetSetting("Auto", &type, (LPBYTE) &autoAnnounce, &size);
pDialog->autoAnnounce = autoAnnounce;
}
else {
result = FALSE;
}
return(result);
}
/******************************************************************
* wmpaSaveSettings
******************************************************************/
BOOL wmpaSaveSettings(void)
{
CWMPADialog *pDialog;
int volume;
BOOL autoAnnounce;
BOOL result;
if (wmp == NULL) return(FALSE);
volume = wmp->GetSettings().GetVolume();
result = SaveSetting("Volume", REG_DWORD, (CONST BYTE *) &volume, sizeof(volume));
pDialog = GetWMPADialog();
if (pDialog != NULL) {
autoAnnounce = pDialog->autoAnnounce;
result = result && SaveSetting("Auto", REG_DWORD, (CONST BYTE *) &autoAnnounce, sizeof(autoAnnounce));
}
else {
result = FALSE;
}
return(result);
}
/******************************************************************
* wmpaGetSongTitle
******************************************************************/
CString wmpaGetSongTitle(void)
{
char buffer[32];
if (wmp == NULL) return(CString());
CWMPMedia media = wmp->GetCurrentMedia();
if (media == NULL) {
hexchat_printf(ph, "WMPA: Could not get current media");
return(CString ("%d", HEXCHAT_EAT_ALL));
}
CString artist = media.getItemInfo("Artist");
CString title = media.getItemInfo("Title");
CString album = media.getItemInfo("Album");
CString bitrate = media.getItemInfo("Bitrate");
CString duration = media.GetDurationString();
long krate = strtoul((LPCTSTR) bitrate, NULL, 10) / 1000;
_ultoa(krate, buffer, 10);
bitrate = CString(buffer);
// Creatte the song title
CString songTitle("");
songTitle += artist;
if (songTitle.IsEmpty()) songTitle += "Various";
songTitle += " - ";
songTitle += title;
songTitle += " (";
songTitle += album;
songTitle += ") [";
songTitle += duration;
songTitle += "/";
songTitle += bitrate;
songTitle += "Kbps]";
return(songTitle);
}
/******************************************************************
* SaveSetting
******************************************************************/
BOOL SaveSetting(LPCTSTR name, DWORD type, CONST BYTE *value, DWORD size)
{
HKEY hKey;
DWORD disposition;
LONG result;
if (wmp == NULL) return(FALSE);
if (name == NULL) return(FALSE);
result = RegOpenKeyEx(HKEY_CURRENT_USER,
subKey,
0,
KEY_WRITE,
&hKey);
if (result != ERROR_SUCCESS) {
result = RegCreateKeyEx(HKEY_CURRENT_USER,
subKey,
0,
NULL,
REG_OPTION_NON_VOLATILE,
KEY_WRITE,
NULL,
&hKey,
&disposition);
if (result != ERROR_SUCCESS) return(FALSE);
}
result = RegSetValueEx(hKey,
name,
0,
type,
value,
size);
if (result == ERROR_SUCCESS) {
RegCloseKey(hKey);
return(TRUE);
}
RegCloseKey(hKey);
return(FALSE);
}
/******************************************************************
* GetSetting
******************************************************************/
BOOL GetSetting(LPCTSTR name, DWORD *type, LPBYTE value, DWORD *size)
{
HKEY hKey;
LONG result;
if (wmp == NULL) return(FALSE);
if (type == NULL) return(FALSE);
if (value == NULL) return(FALSE);
if (size == NULL) return(FALSE);
result = RegOpenKeyEx(HKEY_CURRENT_USER,
subKey,
0,
KEY_READ,
&hKey);
if (result != ERROR_SUCCESS) return(FALSE);
result = RegQueryValueEx(hKey,
name,
0,
type,
value,
size);
RegCloseKey(hKey);
if (result == ERROR_SUCCESS) {
return(TRUE);
}
RegCloseKey(hKey);
return(FALSE);
}

View File

@ -1,361 +0,0 @@
/* You can distribute this header with your plugins for easy compilation */
#ifndef HEXCHAT_PLUGIN_H
#define HEXCHAT_PLUGIN_H
#define VER_STRING _T("1.0.2 (BETA)")
#include "stdafx.h"
#include <windows.h>
#include <time.h>
#include <tchar.h>
#define HEXCHAT_PRI_HIGHEST 127
#define HEXCHAT_PRI_HIGH 64
#define HEXCHAT_PRI_NORM 0
#define HEXCHAT_PRI_LOW (-64)
#define HEXCHAT_PRI_LOWEST (-128)
#define HEXCHAT_FD_READ 1
#define HEXCHAT_FD_WRITE 2
#define HEXCHAT_FD_EXCEPTION 4
#define HEXCHAT_FD_NOTSOCKET 8
#define HEXCHAT_EAT_NONE 0 /* pass it on through! */
#define HEXCHAT_EAT_HEXCHAT 1 /* don't let HexChat see this event */
#define HEXCHAT_EAT_PLUGIN 2 /* don't let other plugins see this event */
#define HEXCHAT_EAT_ALL (HEXCHAT_EAT_HEXCHAT|HEXCHAT_EAT_PLUGIN) /* don't let anything see this event */
#ifdef __cplusplus
extern "C" {
#endif
typedef struct _hexchat_plugin hexchat_plugin;
typedef struct _hexchat_list hexchat_list;
typedef struct _hexchat_hook hexchat_hook;
#ifndef PLUGIN_C
typedef struct _hexchat_context hexchat_context;
#endif
#ifndef PLUGIN_C
struct _hexchat_plugin {
/* these are only used on win32 */
hexchat_hook *(*hexchat_hook_command) (hexchat_plugin *ph,
const char *name,
int pri,
int (*callback) (char *word[], char *word_eol[], void *user_data),
const char *help_text,
void *userdata);
hexchat_hook *(*hexchat_hook_server) (hexchat_plugin *ph,
const char *name,
int pri,
int (*callback) (char *word[], char *word_eol[], void *user_data),
void *userdata);
hexchat_hook *(*hexchat_hook_print) (hexchat_plugin *ph,
const char *name,
int pri,
int (*callback) (char *word[], void *user_data),
void *userdata);
hexchat_hook *(*hexchat_hook_timer) (hexchat_plugin *ph,
int timeout,
int (*callback) (void *user_data),
void *userdata);
hexchat_hook *(*hexchat_hook_fd) (hexchat_plugin *ph,
int fd,
int flags,
int (*callback) (int fd, int flags, void *user_data),
void *userdata);
void *(*hexchat_unhook) (hexchat_plugin *ph,
hexchat_hook *hook);
void (*hexchat_print) (hexchat_plugin *ph,
const char *text);
void (*hexchat_printf) (hexchat_plugin *ph,
const char *format, ...);
void (*hexchat_command) (hexchat_plugin *ph,
const char *command);
void (*hexchat_commandf) (hexchat_plugin *ph,
const char *format, ...);
int (*hexchat_nickcmp) (hexchat_plugin *ph,
const char *s1,
const char *s2);
int (*hexchat_set_context) (hexchat_plugin *ph,
hexchat_context *ctx);
hexchat_context *(*hexchat_find_context) (hexchat_plugin *ph,
const char *servname,
const char *channel);
hexchat_context *(*hexchat_get_context) (hexchat_plugin *ph);
const char *(*hexchat_get_info) (hexchat_plugin *ph,
const char *id);
int (*hexchat_get_prefs) (hexchat_plugin *ph,
const char *name,
const char **string,
int *integer);
hexchat_list * (*hexchat_list_get) (hexchat_plugin *ph,
const char *name);
void (*hexchat_list_free) (hexchat_plugin *ph,
hexchat_list *xlist);
const char * const * (*hexchat_list_fields) (hexchat_plugin *ph,
const char *name);
int (*hexchat_list_next) (hexchat_plugin *ph,
hexchat_list *xlist);
const char * (*hexchat_list_str) (hexchat_plugin *ph,
hexchat_list *xlist,
const char *name);
int (*hexchat_list_int) (hexchat_plugin *ph,
hexchat_list *xlist,
const char *name);
void * (*hexchat_plugingui_add) (hexchat_plugin *ph,
const char *filename,
const char *name,
const char *desc,
const char *version,
char *reserved);
void (*hexchat_plugingui_remove) (hexchat_plugin *ph,
void *handle);
int (*hexchat_emit_print) (hexchat_plugin *ph,
const char *event_name, ...);
int (*hexchat_read_fd) (hexchat_plugin *ph,
void *src,
char *buf,
int *len);
time_t (*hexchat_list_time) (hexchat_plugin *ph,
hexchat_list *xlist,
const char *name);
char *(*hexchat_gettext) (hexchat_plugin *ph,
const char *msgid);
void (*hexchat_send_modes) (hexchat_plugin *ph,
const char **targets,
int ntargets,
int modes_per_line,
char sign,
char mode);
char *(*hexchat_strip) (hexchat_plugin *ph,
const char *str,
int len,
int flags);
void (*hexchat_free) (hexchat_plugin *ph,
void *ptr);
};
#endif
hexchat_hook *
hexchat_hook_command (hexchat_plugin *ph,
const char *name,
int pri,
int (*callback) (char *word[], char *word_eol[], void *user_data),
const char *help_text,
void *userdata);
hexchat_hook *
hexchat_hook_server (hexchat_plugin *ph,
const char *name,
int pri,
int (*callback) (char *word[], char *word_eol[], void *user_data),
void *userdata);
hexchat_hook *
hexchat_hook_print (hexchat_plugin *ph,
const char *name,
int pri,
int (*callback) (char *word[], void *user_data),
void *userdata);
hexchat_hook *
hexchat_hook_timer (hexchat_plugin *ph,
int timeout,
int (*callback) (void *user_data),
void *userdata);
hexchat_hook *
hexchat_hook_fd (hexchat_plugin *ph,
int fd,
int flags,
int (*callback) (int fd, int flags, void *user_data),
void *userdata);
void *
hexchat_unhook (hexchat_plugin *ph,
hexchat_hook *hook);
void
hexchat_print (hexchat_plugin *ph,
const char *text);
void
hexchat_printf (hexchat_plugin *ph,
const char *format, ...);
void
hexchat_command (hexchat_plugin *ph,
const char *command);
void
hexchat_commandf (hexchat_plugin *ph,
const char *format, ...);
int
hexchat_nickcmp (hexchat_plugin *ph,
const char *s1,
const char *s2);
int
hexchat_set_context (hexchat_plugin *ph,
hexchat_context *ctx);
hexchat_context *
hexchat_find_context (hexchat_plugin *ph,
const char *servname,
const char *channel);
hexchat_context *
hexchat_get_context (hexchat_plugin *ph);
const char *
hexchat_get_info (hexchat_plugin *ph,
const char *id);
int
hexchat_get_prefs (hexchat_plugin *ph,
const char *name,
const char **string,
int *integer);
hexchat_list *
hexchat_list_get (hexchat_plugin *ph,
const char *name);
void
hexchat_list_free (hexchat_plugin *ph,
hexchat_list *xlist);
const char * const *
hexchat_list_fields (hexchat_plugin *ph,
const char *name);
int
hexchat_list_next (hexchat_plugin *ph,
hexchat_list *xlist);
const char *
hexchat_list_str (hexchat_plugin *ph,
hexchat_list *xlist,
const char *name);
int
hexchat_list_int (hexchat_plugin *ph,
hexchat_list *xlist,
const char *name);
time_t
hexchat_list_time (hexchat_plugin *ph,
hexchat_list *xlist,
const char *name);
void *
hexchat_plugingui_add (hexchat_plugin *ph,
const char *filename,
const char *name,
const char *desc,
const char *version,
char *reserved);
void
hexchat_plugingui_remove (hexchat_plugin *ph,
void *handle);
int
hexchat_emit_print (hexchat_plugin *ph,
const char *event_name, ...);
char *
hexchat_gettext (hexchat_plugin *ph,
const char *msgid);
void
hexchat_send_modes (hexchat_plugin *ph,
const char **targets,
int ntargets,
int modes_per_line,
char sign,
char mode);
char *
hexchat_strip (hexchat_plugin *ph,
const char *str,
int len,
int flags);
void
hexchat_free (hexchat_plugin *ph,
void *ptr);
#if !defined(PLUGIN_C) && defined(WIN32)
#ifndef HEXCHAT_PLUGIN_HANDLE
#define HEXCHAT_PLUGIN_HANDLE (ph)
#endif
#define hexchat_hook_command ((HEXCHAT_PLUGIN_HANDLE)->hexchat_hook_command)
#define hexchat_hook_server ((HEXCHAT_PLUGIN_HANDLE)->hexchat_hook_server)
#define hexchat_hook_print ((HEXCHAT_PLUGIN_HANDLE)->hexchat_hook_print)
#define hexchat_hook_timer ((HEXCHAT_PLUGIN_HANDLE)->hexchat_hook_timer)
#define hexchat_hook_fd ((HEXCHAT_PLUGIN_HANDLE)->hexchat_hook_fd)
#define hexchat_unhook ((HEXCHAT_PLUGIN_HANDLE)->hexchat_unhook)
#define hexchat_print ((HEXCHAT_PLUGIN_HANDLE)->hexchat_print)
#define hexchat_printf ((HEXCHAT_PLUGIN_HANDLE)->hexchat_printf)
#define hexchat_command ((HEXCHAT_PLUGIN_HANDLE)->hexchat_command)
#define hexchat_commandf ((HEXCHAT_PLUGIN_HANDLE)->hexchat_commandf)
#define hexchat_nickcmp ((HEXCHAT_PLUGIN_HANDLE)->hexchat_nickcmp)
#define hexchat_set_context ((HEXCHAT_PLUGIN_HANDLE)->hexchat_set_context)
#define hexchat_find_context ((HEXCHAT_PLUGIN_HANDLE)->hexchat_find_context)
#define hexchat_get_context ((HEXCHAT_PLUGIN_HANDLE)->hexchat_get_context)
#define hexchat_get_info ((HEXCHAT_PLUGIN_HANDLE)->hexchat_get_info)
#define hexchat_get_prefs ((HEXCHAT_PLUGIN_HANDLE)->hexchat_get_prefs)
#define hexchat_list_get ((HEXCHAT_PLUGIN_HANDLE)->hexchat_list_get)
#define hexchat_list_free ((HEXCHAT_PLUGIN_HANDLE)->hexchat_list_free)
#define hexchat_list_fields ((HEXCHAT_PLUGIN_HANDLE)->hexchat_list_fields)
#define hexchat_list_str ((HEXCHAT_PLUGIN_HANDLE)->hexchat_list_str)
#define hexchat_list_int ((HEXCHAT_PLUGIN_HANDLE)->hexchat_list_int)
#define hexchat_list_time ((HEXCHAT_PLUGIN_HANDLE)->hexchat_list_time)
#define hexchat_list_next ((HEXCHAT_PLUGIN_HANDLE)->hexchat_list_next)
#define hexchat_plugingui_add ((HEXCHAT_PLUGIN_HANDLE)->hexchat_plugingui_add)
#define hexchat_plugingui_remove ((HEXCHAT_PLUGIN_HANDLE)->hexchat_plugingui_remove)
#define hexchat_emit_print ((HEXCHAT_PLUGIN_HANDLE)->hexchat_emit_print)
#define hexchat_gettext ((HEXCHAT_PLUGIN_HANDLE)->hexchat_gettext)
#define hexchat_send_modes ((HEXCHAT_PLUGIN_HANDLE)->hexchat_send_modes)
#define hexchat_strip ((HEXCHAT_PLUGIN_HANDLE)->hexchat_strip)
#define hexchat_free ((HEXCHAT_PLUGIN_HANDLE)->hexchat_free)
#endif
#ifdef __cplusplus
}
#endif
/******************************************************************
* Globals
******************************************************************/
extern hexchat_plugin *ph;
/******************************************************************
* Prototypes
******************************************************************/
void wmpaCommands(void);
int wmpaAuto(char *word[], char *word_eol[], void *user_data);
int wmpaCurr(char *word[], char *word_eol[], void *user_data);
int wmpaFind(char *word[], char *word_eol[], void *user_data);
int wmpaList(char *word[], char *word_eol[], void *user_data);
int wmpaNext(char *word[], char *word_eol[], void *user_data);
int wmpaPlay(char *word[], char *word_eol[], void *user_data);
int wmpaPause(char *word[], char *word_eol[], void *user_data);
int wmpaPrev(char *word[], char *word_eol[], void *user_data);
int wmpaSong(char *word[], char *word_eol[], void *user_data);
int wmpaStop(char *word[], char *word_eol[], void *user_data);
int wmpaVolume(char *word[], char *word_eol[], void *user_data);
int wmpaHelp(char *word[], char *word_eol[], void *user_data);
BOOL wmpaRestoreSettings(void);
BOOL wmpaSaveSettings(void);
CString wmpaGetSongTitle(void);
BOOL SaveSetting(LPCTSTR name, DWORD type, CONST BYTE *value, DWORD size);
BOOL GetSetting(LPCTSTR name, DWORD *type, LPBYTE value, DWORD *size);
#endif /* HEXCHAT_PLUGIN_H */

View File

@ -1,13 +0,0 @@
//
// WMPA.RC2 - resources Microsoft Visual C++ does not edit directly
//
#ifdef APSTUDIO_INVOKED
#error this file is not editable by Microsoft Visual C++
#endif //APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
// Add manually edited resources here...
/////////////////////////////////////////////////////////////////////////////

View File

@ -1,22 +0,0 @@
//{{NO_DEPENDENCIES}}
// Microsoft Developer Studio generated include file.
// Used by wmpa.rc
//
#define IDD_WMPADIALOG 2000
#define IDC_PLAYLIST 2001
#define IDC_STATIC1 2002
#define IDC_WMP 2005
#define IDI_XCHAT 2005
#define IDC_SONGLIST 2006
#define IDC_STATIC2 2007
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 2006
#define _APS_NEXT_COMMAND_VALUE 32771
#define _APS_NEXT_CONTROL_VALUE 2008
#define _APS_NEXT_SYMED_VALUE 2000
#endif
#endif

View File

@ -1,212 +0,0 @@
/******************************************************************
* $Id$
*
* $Log$
*
* Copyright <20> 2005 David Cullen, All rights reserved
*
******************************************************************/
#include "stdafx.h"
#include "wmpa.h"
#include "WMPADialog.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
//
// Note!
//
// If this DLL is dynamically linked against the MFC
// DLLs, any functions exported from this DLL which
// call into MFC must have the AFX_MANAGE_STATE macro
// added at the very beginning of the function.
//
// For example:
//
// extern "C" BOOL PASCAL EXPORT ExportedFunction()
// {
// AFX_MANAGE_STATE(AfxGetStaticModuleState());
// // normal function body here
// }
//
// It is very important that this macro appear in each
// function, prior to any calls into MFC. This means that
// it must appear as the first statement within the
// function, even before any object variable declarations
// as their constructors may generate calls into the MFC
// DLL.
//
// Please see MFC Technical Notes 33 and 58 for additional
// details.
//
/////////////////////////////////////////////////////////////////////////////
// CWmpaApp
BEGIN_MESSAGE_MAP(CWmpaApp, CWinApp)
//{{AFX_MSG_MAP(CWmpaApp)
// NOTE - the ClassWizard will add and remove mapping macros here.
// DO NOT EDIT what you see in these blocks of generated code!
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CWmpaApp construction
CWmpaApp::CWmpaApp()
{
// TODO: add construction code here,
// Place all significant initialization in InitInstance
m_pDialog = NULL;
}
/////////////////////////////////////////////////////////////////////////////
// The one and only CWmpaApp object
CWmpaApp theApp;
/////////////////////////////////////////////////////////////////////////////
// CWmpaApp initialization
BOOL CWmpaApp::InitInstance()
{
// Register all OLE server (factories) as running. This enables the
// OLE libraries to create objects from other applications.
COleObjectFactory::RegisterAll();
// WARNING: This function enables the ActiveX control container
// Without this function you will not be able to load the WMP
// In fact you will get the following error:
// >>> If this dialog has OLE controls:
// >>> AfxEnableControlContainer has not been called yet.
// >>> You should call it in your app's InitInstance function.
AfxEnableControlContainer();
// WARNING: This function initializes the COM library for use
// Without this function you will not be able to load the WMP
// In fact you will get the following error:
// CoCreateInstance of OLE control {6BF52A52-394A-11D3-B153-00C04F79FAA6} failed.
// >>> Result code: 0x800401f0
// >>> Is the control is properly registered?
// The Error Lookup tool will tell you result code 0x800401F0 means
// CoInitialize has not been called.
CoInitialize(NULL);
return TRUE;
}
/******************************************************************
* ShowWMPA
******************************************************************/
BOOL CWmpaApp::ShowWMPA(void)
{
HRESULT result = FALSE;
BOOL created;
// WARNING: The following two funcions make sure we look for
// our resources in our DLL not in the calling EXE
// Without these functions you will not be able to load the
// Windows Media Player
HMODULE hModule = GetModuleHandle("WMPA.DLL");
AfxSetResourceHandle((HINSTANCE) hModule);
if (m_pDialog == NULL) m_pDialog = new CWMPADialog;
created = m_pDialog->Create(IDD_WMPADIALOG, m_pDialog);
if (!created) return(E_FAIL);
m_pDialog->m_hIcon = LoadIcon(IDI_XCHAT);
m_pDialog->SetIcon(m_pDialog->m_hIcon, TRUE);
result = m_pDialog->ShowWindow(SW_SHOWNORMAL);
return(created);
}
/////////////////////////////////////////////////////////////////////////////
// Special entry points required for inproc servers
STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
return AfxDllGetClassObject(rclsid, riid, ppv);
}
STDAPI DllCanUnloadNow(void)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
return AfxDllCanUnloadNow();
}
// by exporting DllRegisterServer, you can use regsvr.exe
STDAPI DllRegisterServer(void)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
COleObjectFactory::UpdateRegistryAll();
return(S_OK);
}
/******************************************************************
* DestroyWMPA
******************************************************************/
BOOL CWmpaApp::DestroyWMPA(void)
{
if (theApp.m_pDialog == NULL) return(FALSE);
theApp.m_pDialog->m_WMP.GetControls().stop();
theApp.m_pDialog->DeleteTrayIcon();
theApp.m_pDialog->DestroyWindow();
return(TRUE);
}
/******************************************************************
* StartWindowsMediaPlayer
******************************************************************/
BOOL StartWindowsMediaPlayer(void)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
BOOL result = theApp.ShowWMPA();
return(result);
}
/******************************************************************
* StopWindowsMediaPlayer
******************************************************************/
BOOL StopWindowsMediaPlayer(void)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
BOOL result = theApp.DestroyWMPA();
return(result);
}
/******************************************************************
* GetWindowsMediaPlayer
******************************************************************/
CWMPPlayer4 *GetWindowsMediaPlayer(void)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
if (theApp.m_pDialog == NULL) return(NULL);
return(&(theApp.m_pDialog->m_WMP));
}
/******************************************************************
* GetWMPADialog
******************************************************************/
CWMPADialog *GetWMPADialog(void)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
if (theApp.m_pDialog == NULL) return(NULL);
return(theApp.m_pDialog);
}

View File

@ -1,15 +0,0 @@
; wmpa.def : Declares the module parameters for the DLL.
LIBRARY "hcwmpa"
EXPORTS
; Explicit exports can go here
DllCanUnloadNow PRIVATE
DllGetClassObject PRIVATE
DllRegisterServer PRIVATE
hexchat_plugin_init
hexchat_plugin_deinit
hexchat_plugin_get_info
StartWindowsMediaPlayer
GetWindowsMediaPlayer
GetWMPADialog

View File

@ -1,61 +0,0 @@
/******************************************************************
* $Id$
*
* $Log$
*
* Copyright <20> 2005 David Cullen, All rights reserved
*
******************************************************************/
#if !defined(AFX_WMPA_H__11200FE3_F137_48DD_8020_91CF7BBB283B__INCLUDED_)
#define AFX_WMPA_H__11200FE3_F137_48DD_8020_91CF7BBB283B__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#ifndef __AFXWIN_H__
#error include 'stdafx.h' before including this file for PCH
#endif
#include "resource.h" // main symbols
#include "WMPADialog.h"
/////////////////////////////////////////////////////////////////////////////
// CWmpaApp
// See wmpa.cpp for the implementation of this class
//
class CWmpaApp : public CWinApp
{
public:
CWmpaApp();
BOOL ShowWMPA(void);
BOOL DestroyWMPA(void);
CWMPADialog *m_pDialog;
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CWmpaApp)
public:
virtual BOOL InitInstance();
//}}AFX_VIRTUAL
//{{AFX_MSG(CWmpaApp)
// NOTE - the ClassWizard will add and remove member functions here.
// DO NOT EDIT what you see in these blocks of generated code !
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
BOOL StartWindowsMediaPlayer(void);
BOOL StopWindowsMediaPlayer(void);
CWMPPlayer4 *GetWindowsMediaPlayer(void);
CWMPADialog *GetWMPADialog(void);
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_WMPA_H__11200FE3_F137_48DD_8020_91CF7BBB283B__INCLUDED_)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

View File

@ -1,44 +0,0 @@
// wmpa.odl : type library source for wmpa.dll
// This file will be processed by the MIDL compiler to produce the
// type library (wmpa.tlb).
[ uuid(2D225385-EFD3-4DD8-9377-A7F244C522D0), version(1.0) ]
library Wmpa
{
importlib("stdole32.tlb");
importlib("stdole2.tlb");
// Primary dispatch interface for CWMPADIALOG
[ uuid(01C1B3AA-C7FC-4023-89A5-C814E1B62B9B) ]
dispinterface IWMPADIALOG
{
properties:
// NOTE - ClassWizard will maintain property information here.
// Use extreme caution when editing this section.
//{{AFX_ODL_PROP(CWMPADIALOG)
//}}AFX_ODL_PROP
methods:
// NOTE - ClassWizard will maintain method information here.
// Use extreme caution when editing this section.
//{{AFX_ODL_METHOD(CWMPADIALOG)
//}}AFX_ODL_METHOD
};
// Class information for CWMPADIALOG
[ uuid(9007B1B4-0006-453D-A799-DB8CBA1AE22A) ]
coclass WMPADIALOG
{
[default] dispinterface IWMPADIALOG;
};
//{{AFX_APPEND_ODL}}
//}}AFX_APPEND_ODL}}
};

View File

@ -1,207 +0,0 @@
//Microsoft Developer Studio generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// English (U.S.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE DISCARDABLE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE DISCARDABLE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
END
3 TEXTINCLUDE DISCARDABLE
BEGIN
"#define _AFX_NO_SPLITTER_RESOURCES\r\n"
"#define _AFX_NO_OLE_RESOURCES\r\n"
"#define _AFX_NO_TRACKER_RESOURCES\r\n"
"#define _AFX_NO_PROPERTY_RESOURCES\r\n"
"\r\n"
"#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n"
"#ifdef _WIN32\r\n"
"LANGUAGE 9, 1\r\n"
"#pragma code_page(1252)\r\n"
"#endif //_WIN32\r\n"
"#include ""res\\wmpa.rc2"" // non-Microsoft Visual C++ edited resources\r\n"
"#include ""afxres.rc"" // Standard components\r\n"
"#endif\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
#ifndef _MAC
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,0,1
PRODUCTVERSION 1,0,0,1
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x2L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904B0"
BEGIN
VALUE "CompanyName", "\0"
VALUE "FileDescription", "wmpa DLL\0"
VALUE "FileVersion", "1, 0, 0, 1\0"
VALUE "InternalName", "wmpa\0"
VALUE "LegalCopyright", "Copyright (C) 2005\0"
VALUE "LegalTrademarks", "\0"
VALUE "OriginalFilename", "wmpa.DLL\0"
VALUE "ProductName", "wmpa Dynamic Link Library\0"
VALUE "ProductVersion", "1, 0, 0, 1\0"
VALUE "OLESelfRegister", "\0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END
#endif // !_MAC
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
IDD_WMPADIALOG DIALOG DISCARDABLE 0, 0, 317, 236
STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Unitialized"
FONT 8, "MS Sans Serif"
BEGIN
LISTBOX IDC_PLAYLIST,165,15,145,145,LBS_NOINTEGRALHEIGHT |
WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
LTEXT "Play Lists (Double-click to play)",IDC_STATIC1,165,5,
145,10
CONTROL "",IDC_WMP,"{6BF52A52-394A-11D3-B153-00C04F79FAA6}",
WS_TABSTOP,5,5,155,155
LISTBOX IDC_SONGLIST,5,175,305,55,LBS_NOINTEGRALHEIGHT |
WS_VSCROLL | WS_TABSTOP
LTEXT "Song List (Double-click to play)",IDC_STATIC2,5,165,305,
10
END
/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//
#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO DISCARDABLE
BEGIN
IDD_WMPADIALOG, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 310
TOPMARGIN, 7
BOTTOMMARGIN, 229
END
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Dialog Info
//
IDD_WMPADIALOG DLGINIT
BEGIN
IDC_WMP, 0x376, 166, 0
0x0000, 0x0000, 0x0300, 0x0000, 0x0008, 0x0000, 0x0000, 0x0005, 0x0000,
0x0000, 0x0000, 0x3ff0, 0x0003, 0x0000, 0x0000, 0x0005, 0x0000, 0x0000,
0x0000, 0x0000, 0x0008, 0x0002, 0x0000, 0x0000, 0x0003, 0x0001, 0x0000,
0x000b, 0xffff, 0x0003, 0x0000, 0x0000, 0x000b, 0xffff, 0x0008, 0x0002,
0x0000, 0x0000, 0x0003, 0x0032, 0x0000, 0x000b, 0x0000, 0x0008, 0x000a,
0x0000, 0x0066, 0x0075, 0x006c, 0x006c, 0x0000, 0x000b, 0x0000, 0x000b,
0x0000, 0x000b, 0xffff, 0x000b, 0xffff, 0x000b, 0x0000, 0x0008, 0x0002,
0x0000, 0x0000, 0x0008, 0x0002, 0x0000, 0x0000, 0x0008, 0x0002, 0x0000,
0x0000, 0x0008, 0x0002, 0x0000, 0x0000, 0x000b, 0x0000, 0x1815, 0x0000,
0x1a0c, 0x0000,
0
END
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
//
// the WMP icon comes from here:
// http://www.iconarchive.com/show/phuzion-icons-by-kyo-tux/Applic-WMP-icon.html
IDI_XCHAT ICON DISCARDABLE "wmpa.ico"
#endif // English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
#define _AFX_NO_SPLITTER_RESOURCES
#define _AFX_NO_OLE_RESOURCES
#define _AFX_NO_TRACKER_RESOURCES
#define _AFX_NO_PROPERTY_RESOURCES
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE 9, 1
#pragma code_page(1252)
#endif //_WIN32
#include "res\wmpa.rc2" // non-Microsoft Visual C++ edited resources
#include "afxres.rc" // Standard components
#endif
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

View File

@ -1,20 +0,0 @@

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wmpa", "wmpa.vcxproj", "{08AD7C4D-DDDC-9545-A8D7-1808E6056143}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Release|Win32 = Release|Win32
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{08AD7C4D-DDDC-9545-A8D7-1808E6056143}.Release|Win32.ActiveCfg = Release|Win32
{08AD7C4D-DDDC-9545-A8D7-1808E6056143}.Release|Win32.Build.0 = Release|Win32
{08AD7C4D-DDDC-9545-A8D7-1808E6056143}.Release|x64.ActiveCfg = Release|x64
{08AD7C4D-DDDC-9545-A8D7-1808E6056143}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@ -1,160 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{E7F4DB0A-510D-41EF-B284-6E1DE1CC450D}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>wmpa</RootNamespace>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>false</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
<UseOfMfc>Dynamic</UseOfMfc>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>false</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
<UseOfMfc>Dynamic</UseOfMfc>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\win32\hexchat.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\win32\hexchat.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
<TargetName>hcwmpa</TargetName>
<OutDir>$(HexChatBin)</OutDir>
<IntDir>$(HexChatObj)$(ProjectName)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
<TargetName>hcwmpa</TargetName>
<OutDir>$(HexChatBin)</OutDir>
<IntDir>$(HexChatObj)$(ProjectName)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<PrecompiledHeader>Create</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;WMPA_EXPORTS;_AFXDLL;_AFX_NO_DAO_SUPPORT;_WIN32_WINNT=0x0501;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MultiProcessorCompilation>false</MultiProcessorCompilation>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<ModuleDefinitionFile>wmpa.def</ModuleDefinitionFile>
</Link>
<Midl>
<MkTypLibCompatible>true</MkTypLibCompatible>
</Midl>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<PrecompiledHeader>Create</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;_WIN64;_AMD64_;NDEBUG;_WINDOWS;_USRDLL;WMPA_EXPORTS;_AFXDLL;_AFX_NO_DAO_SUPPORT;_WIN32_WINNT=0x0501;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MultiProcessorCompilation>false</MultiProcessorCompilation>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<ModuleDefinitionFile>wmpa.def</ModuleDefinitionFile>
</Link>
<Midl>
<MkTypLibCompatible>true</MkTypLibCompatible>
</Midl>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="StdAfx.cpp" />
<ClCompile Include="wmpa.cpp" />
<ClCompile Include="wmpadialog.cpp" />
<ClCompile Include="wmpcdrom.cpp" />
<ClCompile Include="wmpcdromcollection.cpp" />
<ClCompile Include="wmpclosedcaption.cpp" />
<ClCompile Include="wmpcontrols.cpp" />
<ClCompile Include="wmpdvd.cpp" />
<ClCompile Include="wmperror.cpp" />
<ClCompile Include="wmperroritem.cpp" />
<ClCompile Include="wmpmedia.cpp" />
<ClCompile Include="wmpmediacollection.cpp" />
<ClCompile Include="wmpnetwork.cpp" />
<ClCompile Include="wmpplayer4.cpp" />
<ClCompile Include="wmpplayerapplication.cpp" />
<ClCompile Include="wmpplaylist.cpp" />
<ClCompile Include="wmpplaylistarray.cpp" />
<ClCompile Include="wmpplaylistcollection.cpp" />
<ClCompile Include="wmpsettings.cpp" />
<ClCompile Include="wmpstringcollection.cpp" />
<ClCompile Include="hexchat-plugin.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="resource.h" />
<ClInclude Include="StdAfx.h" />
<ClInclude Include="wmpa.h" />
<ClInclude Include="wmpadialog.h" />
<ClInclude Include="wmpcdrom.h" />
<ClInclude Include="wmpcdromcollection.h" />
<ClInclude Include="wmpclosedcaption.h" />
<ClInclude Include="wmpcontrols.h" />
<ClInclude Include="wmpdvd.h" />
<ClInclude Include="wmperror.h" />
<ClInclude Include="wmperroritem.h" />
<ClInclude Include="wmpmedia.h" />
<ClInclude Include="wmpmediacollection.h" />
<ClInclude Include="wmpnetwork.h" />
<ClInclude Include="wmpplayer4.h" />
<ClInclude Include="wmpplayerapplication.h" />
<ClInclude Include="wmpplaylist.h" />
<ClInclude Include="wmpplaylistarray.h" />
<ClInclude Include="wmpplaylistcollection.h" />
<ClInclude Include="wmpsettings.h" />
<ClInclude Include="wmpstringcollection.h" />
<ClInclude Include="hexchat-plugin.h" />
</ItemGroup>
<ItemGroup>
<None Include="ReadMe.txt" />
<None Include="res\wmpa.rc2" />
<None Include="wmpa.aps" />
<None Include="wmpa.def" />
<None Include="wmpa.ico" />
</ItemGroup>
<ItemGroup>
<Midl Include="wmpa.odl" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="wmpa.rc" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -1,180 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
<Filter Include="Resource Files\res">
<UniqueIdentifier>{c54ddc93-06ab-4a74-854a-9ec976b7bfd0}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="StdAfx.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="wmpa.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="wmpadialog.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="wmpcdrom.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="wmpcdromcollection.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="wmpclosedcaption.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="wmpcontrols.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="wmpdvd.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="wmperror.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="wmperroritem.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="wmpmedia.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="wmpmediacollection.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="wmpnetwork.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="wmpplayer4.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="wmpplayerapplication.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="wmpplaylist.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="wmpplaylistarray.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="wmpplaylistcollection.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="wmpsettings.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="wmpstringcollection.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="hexchat-plugin.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="resource.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="StdAfx.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="wmpa.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="wmpadialog.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="wmpcdrom.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="wmpcdromcollection.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="wmpclosedcaption.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="wmpcontrols.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="wmpdvd.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="wmperror.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="wmperroritem.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="wmpmedia.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="wmpmediacollection.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="wmpnetwork.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="wmpplayer4.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="wmpplayerapplication.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="wmpplaylist.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="wmpplaylistarray.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="wmpplaylistcollection.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="wmpsettings.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="wmpstringcollection.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="hexchat-plugin.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="wmpa.aps">
<Filter>Resource Files</Filter>
</None>
<None Include="wmpa.def">
<Filter>Resource Files</Filter>
</None>
<None Include="wmpa.ico">
<Filter>Resource Files</Filter>
</None>
<None Include="ReadMe.txt">
<Filter>Resource Files</Filter>
</None>
<None Include="res\wmpa.rc2">
<Filter>Resource Files\res</Filter>
</None>
</ItemGroup>
<ItemGroup>
<Midl Include="wmpa.odl">
<Filter>Resource Files</Filter>
</Midl>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="wmpa.rc">
<Filter>Resource Files</Filter>
</ResourceCompile>
</ItemGroup>
</Project>

View File

@ -1,375 +0,0 @@
/******************************************************************
* $Id$
*
* $Log$
*
* Copyright <20> 2005 David Cullen, All rights reserved
*
******************************************************************/
#include "stdafx.h"
#include "wmpa.h"
#include "WMPADialog.h"
#include "shellapi.h"
#include "hexchat-plugin.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#define ID_TRAY_ICON 1000
#define WM_TRAY_ICON (WM_APP + 1)
/////////////////////////////////////////////////////////////////////////////
// CWMPADialog dialog
CWMPADialog::CWMPADialog(CWnd* pParent /*=NULL*/)
: CDialog(CWMPADialog::IDD, pParent)
{
EnableAutomation();
//{{AFX_DATA_INIT(CWMPADialog)
//}}AFX_DATA_INIT
}
void CWMPADialog::OnFinalRelease()
{
// When the last reference for an automation object is released
// OnFinalRelease is called. The base class will automatically
// deletes the object. Add additional cleanup required for your
// object before calling the base class.
CDialog::OnFinalRelease();
}
void CWMPADialog::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CWMPADialog)
DDX_Control(pDX, IDC_SONGLIST, m_SongListBox);
DDX_Control(pDX, IDC_PLAYLIST, m_PlaylistBox);
DDX_Control(pDX, IDC_WMP, m_WMP);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CWMPADialog, CDialog)
//{{AFX_MSG_MAP(CWMPADialog)
ON_LBN_DBLCLK(IDC_PLAYLIST, OnDblclkPlaylist)
ON_WM_SHOWWINDOW()
ON_WM_CLOSE()
ON_LBN_DBLCLK(IDC_SONGLIST, OnDblclkSonglist)
ON_WM_DESTROY()
ON_WM_SIZE()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
BEGIN_DISPATCH_MAP(CWMPADialog, CDialog)
//{{AFX_DISPATCH_MAP(CWMPADialog)
// NOTE - the ClassWizard will add and remove mapping macros here.
//}}AFX_DISPATCH_MAP
END_DISPATCH_MAP()
// Note: we add support for IID_IWMPADialog to support typesafe binding
// from VBA. This IID must match the GUID that is attached to the
// dispinterface in the .ODL file.
// {01C1B3AA-C7FC-4023-89A5-C814E1B62B9B}
static const IID IID_IWMPADialog =
{ 0x1c1b3aa, 0xc7fc, 0x4023, { 0x89, 0xa5, 0xc8, 0x14, 0xe1, 0xb6, 0x2b, 0x9b } };
BEGIN_INTERFACE_MAP(CWMPADialog, CDialog)
INTERFACE_PART(CWMPADialog, IID_IWMPADialog, Dispatch)
END_INTERFACE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CWMPADialog message handlers
void CWMPADialog::OnDblclkPlaylist()
{
// TODO: Add your control notification handler code here
long index;
// Get the playlist name
index = m_PlaylistBox.GetCurSel();
CString playlistName;
m_PlaylistBox.GetText(index, playlistName);
// Get the playlist
CWMPPlaylistCollection pc = m_WMP.GetPlaylistCollection();
CWMPPlaylistArray pa = pc.getByName((LPCTSTR) playlistName);
CWMPPlaylist playlist = pa.Item(0);
m_WMP.SetCurrentPlaylist(playlist);
// Set the song list
UpdateSongList();
m_WMP.GetControls().play();
if (autoAnnounce) {
hexchat_commandf(ph, "me is playing %s", (LPCTSTR) wmpaGetSongTitle());
}
else {
hexchat_printf(ph, "WMPA: Playing %s", (LPCTSTR) wmpaGetSongTitle());
}
}
void CWMPADialog::OnShowWindow(BOOL bShow, UINT nStatus)
{
CDialog::OnShowWindow(bShow, nStatus);
// TODO: Add your message handler code here
if (bShow) {
if (!trayInit) {
ZeroMemory(&nid, sizeof(nid));
nid.cbSize = sizeof(nid);
nid.hWnd = m_hWnd;
nid.uID = ID_TRAY_ICON;
nid.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;
nid.uCallbackMessage = WM_TRAY_ICON;
nid.hIcon = m_hIcon;
strcpy(nid.szTip, "WMPA");
strcat(nid.szTip, VER_STRING);
strcat(nid.szTip, "\nWindows Media\nPlayer Announcer");
nid.dwState = 0;
nid.dwStateMask = 0;
strcpy(nid.szInfo, "WMPA ");
strcat(nid.szInfo, VER_STRING);
nid.uTimeout = 10000; // 10 second time out
strcat(nid.szInfoTitle, "WMPA");
nid.dwInfoFlags = 0;
trayInit = TRUE;
}
}
}
void CWMPADialog::PostNcDestroy()
{
// TODO: Add your specialized code here and/or call the base class
delete this;
CDialog::PostNcDestroy();
}
BOOL CWMPADialog::OnInitDialog()
{
CDialog::OnInitDialog();
CString title = "WMPA";
title += " ";
title += VER_STRING;
SetWindowText((LPCTSTR) title);
UpdatePlayLists();
autoAnnounce = FALSE;
trayInit = FALSE;
trayClicked = FALSE;
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CWMPADialog::OnClose()
{
// TODO: Add your message handler code here and/or call default
Shell_NotifyIcon(NIM_ADD, &nid);
ShowWindow(SW_HIDE);
// Don't let the user close the dialog
// CDialog::OnClose();
}
void CWMPADialog::OnCancel()
{
// this->DestroyWindow();
}
void CWMPADialog::OnDblclkSonglist()
{
// TODO: Add your control notification handler code here
int index = m_SongListBox.GetCurSel();
m_WMP.GetControls().playItem(m_WMP.GetCurrentPlaylist().GetItem(index));
if (autoAnnounce) {
hexchat_commandf(ph, "me is playing %s", (LPCTSTR) wmpaGetSongTitle());
}
else {
hexchat_printf(ph, "WMPA: Playing %s", (LPCTSTR) wmpaGetSongTitle());
}
}
BEGIN_EVENTSINK_MAP(CWMPADialog, CDialog)
//{{AFX_EVENTSINK_MAP(CWMPADialog)
ON_EVENT(CWMPADialog, IDC_WMP, 5806 /* CurrentItemChange */, OnCurrentItemChangeWmp, VTS_DISPATCH)
ON_EVENT(CWMPADialog, IDC_WMP, 5101 /* PlayStateChange */, OnPlayStateChangeWmp, VTS_I4)
//}}AFX_EVENTSINK_MAP
END_EVENTSINK_MAP()
void CWMPADialog::OnCurrentItemChangeWmp(LPDISPATCH pdispMedia)
{
// TODO: Add your control notification handler code here
int state = m_WMP.GetPlayState();
if (state == 3) { // Playing
if (autoAnnounce) {
hexchat_commandf(ph, "me is playing %s", (LPCTSTR) wmpaGetSongTitle());
}
else {
hexchat_printf(ph, "WMPA: Playing %s", (LPCTSTR) wmpaGetSongTitle());
}
}
SelectCurrentSong();
}
void CWMPADialog::OnDestroy()
{
CDialog::OnDestroy();
// TODO: Add your message handler code here
}
void CWMPADialog::UpdateSongList()
{
char buffer[32];
CString name;
CString artist;
CString title;
CString album;
CString bitrate;
CString duration;
CString song;
long index;
long count;
m_SongListBox.ResetContent();
CWMPPlaylist playlist = m_WMP.GetCurrentPlaylist();
count = playlist.GetCount();
m_SongListBox.ResetContent();
for (index = 0; index < count; index++) {
name = playlist.GetItem(index).GetName();
artist = playlist.GetItem(index).getItemInfo("Artist");
title = playlist.GetItem(index).getItemInfo("Title");
album = playlist.GetItem(index).getItemInfo("Album");
bitrate = playlist.GetItem(index).getItemInfo("Bitrate");
duration = playlist.GetItem(index).GetDurationString();
long krate = strtoul((LPCTSTR) bitrate, NULL, 10) / 1000;
_ultoa(krate, buffer, 10);
bitrate = CString(buffer);
if (album.IsEmpty()) {
playlist.removeItem(playlist.GetItem(index));
count = playlist.GetCount();
}
else {
song = "";
song += artist;
if (song.IsEmpty()) song = "Various";
song += " - ";
song += title;
song += " (";
song += album;
song += ") [";
song += duration;
song += "/";
song += bitrate;
song += "Kbps]";
m_SongListBox.AddString((LPCTSTR) song);
}
}
m_SongListBox.SetCurSel(0);
}
void CWMPADialog::SelectCurrentSong()
{
CWMPMedia media;
long index;
long count;
count = m_WMP.GetCurrentPlaylist().GetCount();
for (index = 0; index < count; index++) {
media = m_WMP.GetCurrentPlaylist().GetItem(index);
if (m_WMP.GetCurrentMedia().GetIsIdentical(media)) {
m_SongListBox.SetCurSel(index);
}
}
}
void CWMPADialog::UpdatePlayLists()
{
// TODO: Add extra initialization here
CWMPPlaylistCollection pc = m_WMP.GetPlaylistCollection();
CWMPPlaylistArray pa = pc.getAll();
CWMPPlaylist playlist;
int index;
int count = pa.GetCount();
m_PlaylistBox.ResetContent();
for (index = 0; index < count; index++) {
playlist = pa.Item(index);
m_PlaylistBox.AddString((LPCTSTR) playlist.GetName());
}
}
void CWMPADialog::OnPlayStateChangeWmp(long NewState)
{
// TODO: Add your control notification handler code here
}
void CWMPADialog::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);
// TODO: Add your message handler code here
switch (nType) {
case SIZE_MINIMIZED:
break;
case SIZE_RESTORED:
Shell_NotifyIcon(NIM_DELETE, &nid);
break;
default:
break;
}
}
LRESULT CWMPADialog::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
// TODO: Add your specialized code here and/or call the base class
switch (message) {
case WM_TRAY_ICON:
switch (lParam) {
case WM_LBUTTONDBLCLK:
trayClicked = TRUE;
break;
case WM_LBUTTONUP:
if (trayClicked == TRUE) {
ShowWindow(SW_RESTORE);
}
break;
default:
trayClicked = FALSE;
break;
}
return(TRUE);
break;
default:
return CDialog::WindowProc(message, wParam, lParam);
break;
}
}
void CWMPADialog::DeleteTrayIcon()
{
Shell_NotifyIcon(NIM_DELETE, &nid);
}

View File

@ -1,91 +0,0 @@
/******************************************************************
* $Id$
*
* $Log$
*
* Copyright <20> 2005 David Cullen, All rights reserved
*
******************************************************************/
//{{AFX_INCLUDES()
#include "wmpplayer4.h"
//}}AFX_INCLUDES
#if !defined(AFX_WMPADIALOG_H__D3838BCC_9E26_4FC0_BD42_C8D8EDF057E3__INCLUDED_)
#define AFX_WMPADIALOG_H__D3838BCC_9E26_4FC0_BD42_C8D8EDF057E3__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// WMPADialog.h : header file
//
/////////////////////////////////////////////////////////////////////////////
// CWMPADialog dialog
class CWMPADialog : public CDialog
{
// Construction
public:
CWMPADialog(CWnd* pParent = NULL); // standard constructor
virtual void OnCancel();
void UpdatePlayLists();
void UpdateSongList();
void SelectCurrentSong();
void DeleteTrayIcon();
BOOL autoAnnounce;
HICON m_hIcon;
private:
BOOL trayInit;
BOOL trayClicked;
NOTIFYICONDATA nid;
public:
// Dialog Data
//{{AFX_DATA(CWMPADialog)
enum { IDD = IDD_WMPADIALOG };
CListBox m_SongListBox;
CListBox m_PlaylistBox;
CWMPPlayer4 m_WMP;
//}}AFX_DATA
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CWMPADialog)
public:
virtual void OnFinalRelease();
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
virtual void PostNcDestroy();
virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);
//}}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(CWMPADialog)
afx_msg void OnDblclkPlaylist();
afx_msg void OnShowWindow(BOOL bShow, UINT nStatus);
virtual BOOL OnInitDialog();
afx_msg void OnClose();
afx_msg void OnDblclkSonglist();
afx_msg void OnCurrentItemChangeWmp(LPDISPATCH pdispMedia);
afx_msg void OnDestroy();
afx_msg void OnPlayStateChangeWmp(long NewState);
afx_msg void OnSize(UINT nType, int cx, int cy);
DECLARE_EVENTSINK_MAP()
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
// Generated OLE dispatch map functions
//{{AFX_DISPATCH(CWMPADialog)
// NOTE - the ClassWizard will add and remove member functions here.
//}}AFX_DISPATCH
DECLARE_DISPATCH_MAP()
DECLARE_INTERFACE_MAP()
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_WMPADIALOG_H__D3838BCC_9E26_4FC0_BD42_C8D8EDF057E3__INCLUDED_)

View File

@ -1,37 +0,0 @@
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
// NOTE: Do not modify the contents of this file. If this class is regenerated by
// Microsoft Visual C++, your modifications will be overwritten.
#include "stdafx.h"
#include "wmpcdrom.h"
// Dispatch interfaces referenced by this interface
#include "wmpplaylist.h"
/////////////////////////////////////////////////////////////////////////////
// CWMPCdrom properties
/////////////////////////////////////////////////////////////////////////////
// CWMPCdrom operations
CString CWMPCdrom::GetDriveSpecifier()
{
CString result;
InvokeHelper(0xfb, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);
return result;
}
CWMPPlaylist CWMPCdrom::GetPlaylist()
{
LPDISPATCH pDispatch;
InvokeHelper(0xfc, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&pDispatch, NULL);
return CWMPPlaylist(pDispatch);
}
void CWMPCdrom::eject()
{
InvokeHelper(0xfd, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
}

View File

@ -1,39 +0,0 @@
#if !defined(AFX_WMPCDROM_H__B7B13CE9_E69E_4D54_9370_CCA2D4A42532__INCLUDED_)
#define AFX_WMPCDROM_H__B7B13CE9_E69E_4D54_9370_CCA2D4A42532__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
// NOTE: Do not modify the contents of this file. If this class is regenerated by
// Microsoft Visual C++, your modifications will be overwritten.
// Dispatch interfaces referenced by this interface
class CWMPPlaylist;
/////////////////////////////////////////////////////////////////////////////
// CWMPCdrom wrapper class
class CWMPCdrom : public COleDispatchDriver
{
public:
CWMPCdrom() {} // Calls COleDispatchDriver default constructor
CWMPCdrom(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
CWMPCdrom(const CWMPCdrom& dispatchSrc) : COleDispatchDriver(dispatchSrc) {}
// Attributes
public:
// Operations
public:
CString GetDriveSpecifier();
CWMPPlaylist GetPlaylist();
void eject();
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_WMPCDROM_H__B7B13CE9_E69E_4D54_9370_CCA2D4A42532__INCLUDED_)

View File

@ -1,45 +0,0 @@
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
// NOTE: Do not modify the contents of this file. If this class is regenerated by
// Microsoft Visual C++, your modifications will be overwritten.
#include "stdafx.h"
#include "wmpcdromcollection.h"
// Dispatch interfaces referenced by this interface
#include "WMPCdrom.h"
/////////////////////////////////////////////////////////////////////////////
// CWMPCdromCollection properties
/////////////////////////////////////////////////////////////////////////////
// CWMPCdromCollection operations
long CWMPCdromCollection::GetCount()
{
long result;
InvokeHelper(0x12d, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}
CWMPCdrom CWMPCdromCollection::Item(long lIndex)
{
LPDISPATCH pDispatch;
static BYTE parms[] =
VTS_I4;
InvokeHelper(0x12e, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms,
lIndex);
return CWMPCdrom(pDispatch);
}
CWMPCdrom CWMPCdromCollection::getByDriveSpecifier(LPCTSTR bstrDriveSpecifier)
{
LPDISPATCH pDispatch;
static BYTE parms[] =
VTS_BSTR;
InvokeHelper(0x12f, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms,
bstrDriveSpecifier);
return CWMPCdrom(pDispatch);
}

View File

@ -1,39 +0,0 @@
#if !defined(AFX_WMPCDROMCOLLECTION_H__35F03E65_DBA5_47A8_84C1_DAA3D624A4D3__INCLUDED_)
#define AFX_WMPCDROMCOLLECTION_H__35F03E65_DBA5_47A8_84C1_DAA3D624A4D3__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
// NOTE: Do not modify the contents of this file. If this class is regenerated by
// Microsoft Visual C++, your modifications will be overwritten.
// Dispatch interfaces referenced by this interface
class CWMPCdrom;
/////////////////////////////////////////////////////////////////////////////
// CWMPCdromCollection wrapper class
class CWMPCdromCollection : public COleDispatchDriver
{
public:
CWMPCdromCollection() {} // Calls COleDispatchDriver default constructor
CWMPCdromCollection(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
CWMPCdromCollection(const CWMPCdromCollection& dispatchSrc) : COleDispatchDriver(dispatchSrc) {}
// Attributes
public:
// Operations
public:
long GetCount();
CWMPCdrom Item(long lIndex);
CWMPCdrom getByDriveSpecifier(LPCTSTR bstrDriveSpecifier);
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_WMPCDROMCOLLECTION_H__35F03E65_DBA5_47A8_84C1_DAA3D624A4D3__INCLUDED_)

View File

@ -1,75 +0,0 @@
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
// NOTE: Do not modify the contents of this file. If this class is regenerated by
// Microsoft Visual C++, your modifications will be overwritten.
#include "stdafx.h"
#include "wmpclosedcaption.h"
/////////////////////////////////////////////////////////////////////////////
// CWMPClosedCaption properties
/////////////////////////////////////////////////////////////////////////////
// CWMPClosedCaption operations
CString CWMPClosedCaption::GetSAMIStyle()
{
CString result;
InvokeHelper(0x3b7, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);
return result;
}
void CWMPClosedCaption::SetSAMIStyle(LPCTSTR lpszNewValue)
{
static BYTE parms[] =
VTS_BSTR;
InvokeHelper(0x3b7, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
lpszNewValue);
}
CString CWMPClosedCaption::GetSAMILang()
{
CString result;
InvokeHelper(0x3b8, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);
return result;
}
void CWMPClosedCaption::SetSAMILang(LPCTSTR lpszNewValue)
{
static BYTE parms[] =
VTS_BSTR;
InvokeHelper(0x3b8, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
lpszNewValue);
}
CString CWMPClosedCaption::GetSAMIFileName()
{
CString result;
InvokeHelper(0x3b9, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);
return result;
}
void CWMPClosedCaption::SetSAMIFileName(LPCTSTR lpszNewValue)
{
static BYTE parms[] =
VTS_BSTR;
InvokeHelper(0x3b9, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
lpszNewValue);
}
CString CWMPClosedCaption::GetCaptioningId()
{
CString result;
InvokeHelper(0x3ba, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);
return result;
}
void CWMPClosedCaption::SetCaptioningId(LPCTSTR lpszNewValue)
{
static BYTE parms[] =
VTS_BSTR;
InvokeHelper(0x3ba, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
lpszNewValue);
}

View File

@ -1,40 +0,0 @@
#if !defined(AFX_WMPCLOSEDCAPTION_H__FC0A9836_7517_4898_B25C_74C76E80CE3D__INCLUDED_)
#define AFX_WMPCLOSEDCAPTION_H__FC0A9836_7517_4898_B25C_74C76E80CE3D__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
// NOTE: Do not modify the contents of this file. If this class is regenerated by
// Microsoft Visual C++, your modifications will be overwritten.
/////////////////////////////////////////////////////////////////////////////
// CWMPClosedCaption wrapper class
class CWMPClosedCaption : public COleDispatchDriver
{
public:
CWMPClosedCaption() {} // Calls COleDispatchDriver default constructor
CWMPClosedCaption(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
CWMPClosedCaption(const CWMPClosedCaption& dispatchSrc) : COleDispatchDriver(dispatchSrc) {}
// Attributes
public:
// Operations
public:
CString GetSAMIStyle();
void SetSAMIStyle(LPCTSTR lpszNewValue);
CString GetSAMILang();
void SetSAMILang(LPCTSTR lpszNewValue);
CString GetSAMIFileName();
void SetSAMIFileName(LPCTSTR lpszNewValue);
CString GetCaptioningId();
void SetCaptioningId(LPCTSTR lpszNewValue);
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_WMPCLOSEDCAPTION_H__FC0A9836_7517_4898_B25C_74C76E80CE3D__INCLUDED_)

View File

@ -1,123 +0,0 @@
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
// NOTE: Do not modify the contents of this file. If this class is regenerated by
// Microsoft Visual C++, your modifications will be overwritten.
#include "stdafx.h"
#include "wmpcontrols.h"
// Dispatch interfaces referenced by this interface
#include "wmpmedia.h"
/////////////////////////////////////////////////////////////////////////////
// CWMPControls properties
/////////////////////////////////////////////////////////////////////////////
// CWMPControls operations
BOOL CWMPControls::GetIsAvailable(LPCTSTR bstrItem)
{
BOOL result;
static BYTE parms[] =
VTS_BSTR;
InvokeHelper(0x3e, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, parms,
bstrItem);
return result;
}
void CWMPControls::play()
{
InvokeHelper(0x33, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
}
void CWMPControls::stop()
{
InvokeHelper(0x34, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
}
void CWMPControls::pause()
{
InvokeHelper(0x35, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
}
void CWMPControls::fastForward()
{
InvokeHelper(0x36, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
}
void CWMPControls::fastReverse()
{
InvokeHelper(0x37, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
}
double CWMPControls::GetCurrentPosition()
{
double result;
InvokeHelper(0x38, DISPATCH_PROPERTYGET, VT_R8, (void*)&result, NULL);
return result;
}
void CWMPControls::SetCurrentPosition(double newValue)
{
static BYTE parms[] =
VTS_R8;
InvokeHelper(0x38, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
newValue);
}
CString CWMPControls::GetCurrentPositionString()
{
CString result;
InvokeHelper(0x39, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);
return result;
}
void CWMPControls::next()
{
InvokeHelper(0x3a, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
}
void CWMPControls::previous()
{
InvokeHelper(0x3b, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
}
CWMPMedia CWMPControls::GetCurrentItem()
{
LPDISPATCH pDispatch;
InvokeHelper(0x3c, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&pDispatch, NULL);
return CWMPMedia(pDispatch);
}
void CWMPControls::SetCurrentItem(LPDISPATCH newValue)
{
static BYTE parms[] =
VTS_DISPATCH;
InvokeHelper(0x3c, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
newValue);
}
long CWMPControls::GetCurrentMarker()
{
long result;
InvokeHelper(0x3d, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}
void CWMPControls::SetCurrentMarker(long nNewValue)
{
static BYTE parms[] =
VTS_I4;
InvokeHelper(0x3d, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
nNewValue);
}
void CWMPControls::playItem(LPDISPATCH pIWMPMedia)
{
static BYTE parms[] =
VTS_DISPATCH;
InvokeHelper(0x3f, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
pIWMPMedia);
}

View File

@ -1,52 +0,0 @@
#if !defined(AFX_WMPCONTROLS_H__234DACEF_6ED9_481D_B7E8_03653189E9B2__INCLUDED_)
#define AFX_WMPCONTROLS_H__234DACEF_6ED9_481D_B7E8_03653189E9B2__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
// NOTE: Do not modify the contents of this file. If this class is regenerated by
// Microsoft Visual C++, your modifications will be overwritten.
// Dispatch interfaces referenced by this interface
class CWMPMedia;
/////////////////////////////////////////////////////////////////////////////
// CWMPControls wrapper class
class CWMPControls : public COleDispatchDriver
{
public:
CWMPControls() {} // Calls COleDispatchDriver default constructor
CWMPControls(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
CWMPControls(const CWMPControls& dispatchSrc) : COleDispatchDriver(dispatchSrc) {}
// Attributes
public:
// Operations
public:
BOOL GetIsAvailable(LPCTSTR bstrItem);
void play();
void stop();
void pause();
void fastForward();
void fastReverse();
double GetCurrentPosition();
void SetCurrentPosition(double newValue);
CString GetCurrentPositionString();
void next();
void previous();
CWMPMedia GetCurrentItem();
void SetCurrentItem(LPDISPATCH newValue);
long GetCurrentMarker();
void SetCurrentMarker(long nNewValue);
void playItem(LPDISPATCH pIWMPMedia);
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_WMPCONTROLS_H__234DACEF_6ED9_481D_B7E8_03653189E9B2__INCLUDED_)

View File

@ -1,52 +0,0 @@
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
// NOTE: Do not modify the contents of this file. If this class is regenerated by
// Microsoft Visual C++, your modifications will be overwritten.
#include "stdafx.h"
#include "wmpdvd.h"
/////////////////////////////////////////////////////////////////////////////
// CWMPDVD properties
/////////////////////////////////////////////////////////////////////////////
// CWMPDVD operations
BOOL CWMPDVD::GetIsAvailable(LPCTSTR bstrItem)
{
BOOL result;
static BYTE parms[] =
VTS_BSTR;
InvokeHelper(0x3e9, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, parms,
bstrItem);
return result;
}
CString CWMPDVD::GetDomain()
{
CString result;
InvokeHelper(0x3ea, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);
return result;
}
void CWMPDVD::topMenu()
{
InvokeHelper(0x3eb, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
}
void CWMPDVD::titleMenu()
{
InvokeHelper(0x3ec, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
}
void CWMPDVD::back()
{
InvokeHelper(0x3ed, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
}
void CWMPDVD::resume()
{
InvokeHelper(0x3ee, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
}

View File

@ -1,38 +0,0 @@
#if !defined(AFX_WMPDVD_H__E83D86CA_08B8_4ACA_A434_0837BA71E3CA__INCLUDED_)
#define AFX_WMPDVD_H__E83D86CA_08B8_4ACA_A434_0837BA71E3CA__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
// NOTE: Do not modify the contents of this file. If this class is regenerated by
// Microsoft Visual C++, your modifications will be overwritten.
/////////////////////////////////////////////////////////////////////////////
// CWMPDVD wrapper class
class CWMPDVD : public COleDispatchDriver
{
public:
CWMPDVD() {} // Calls COleDispatchDriver default constructor
CWMPDVD(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
CWMPDVD(const CWMPDVD& dispatchSrc) : COleDispatchDriver(dispatchSrc) {}
// Attributes
public:
// Operations
public:
BOOL GetIsAvailable(LPCTSTR bstrItem);
CString GetDomain();
void topMenu();
void titleMenu();
void back();
void resume();
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_WMPDVD_H__E83D86CA_08B8_4ACA_A434_0837BA71E3CA__INCLUDED_)

View File

@ -1,45 +0,0 @@
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
// NOTE: Do not modify the contents of this file. If this class is regenerated by
// Microsoft Visual C++, your modifications will be overwritten.
#include "stdafx.h"
#include "wmperror.h"
// Dispatch interfaces referenced by this interface
#include "wmperroritem.h"
/////////////////////////////////////////////////////////////////////////////
// CWMPError properties
/////////////////////////////////////////////////////////////////////////////
// CWMPError operations
void CWMPError::clearErrorQueue()
{
InvokeHelper(0x353, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
}
long CWMPError::GetErrorCount()
{
long result;
InvokeHelper(0x354, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}
CWMPErrorItem CWMPError::GetItem(long dwIndex)
{
LPDISPATCH pDispatch;
static BYTE parms[] =
VTS_I4;
InvokeHelper(0x355, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&pDispatch, parms,
dwIndex);
return CWMPErrorItem(pDispatch);
}
void CWMPError::webHelp()
{
InvokeHelper(0x356, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
}

View File

@ -1,40 +0,0 @@
#if !defined(AFX_WMPERROR_H__1E72AC7F_E0AC_4100_B7EF_A5B0D8FA75C3__INCLUDED_)
#define AFX_WMPERROR_H__1E72AC7F_E0AC_4100_B7EF_A5B0D8FA75C3__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
// NOTE: Do not modify the contents of this file. If this class is regenerated by
// Microsoft Visual C++, your modifications will be overwritten.
// Dispatch interfaces referenced by this interface
class CWMPErrorItem;
/////////////////////////////////////////////////////////////////////////////
// CWMPError wrapper class
class CWMPError : public COleDispatchDriver
{
public:
CWMPError() {} // Calls COleDispatchDriver default constructor
CWMPError(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
CWMPError(const CWMPError& dispatchSrc) : COleDispatchDriver(dispatchSrc) {}
// Attributes
public:
// Operations
public:
void clearErrorQueue();
long GetErrorCount();
CWMPErrorItem GetItem(long dwIndex);
void webHelp();
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_WMPERROR_H__1E72AC7F_E0AC_4100_B7EF_A5B0D8FA75C3__INCLUDED_)

View File

@ -1,50 +0,0 @@
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
// NOTE: Do not modify the contents of this file. If this class is regenerated by
// Microsoft Visual C++, your modifications will be overwritten.
#include "stdafx.h"
#include "wmperroritem.h"
/////////////////////////////////////////////////////////////////////////////
// CWMPErrorItem properties
/////////////////////////////////////////////////////////////////////////////
// CWMPErrorItem operations
long CWMPErrorItem::GetErrorCode()
{
long result;
InvokeHelper(0x385, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}
CString CWMPErrorItem::GetErrorDescription()
{
CString result;
InvokeHelper(0x386, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);
return result;
}
VARIANT CWMPErrorItem::GetErrorContext()
{
VARIANT result;
InvokeHelper(0x387, DISPATCH_PROPERTYGET, VT_VARIANT, (void*)&result, NULL);
return result;
}
long CWMPErrorItem::GetRemedy()
{
long result;
InvokeHelper(0x388, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}
CString CWMPErrorItem::GetCustomUrl()
{
CString result;
InvokeHelper(0x389, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);
return result;
}

View File

@ -1,37 +0,0 @@
#if !defined(AFX_WMPERRORITEM_H__9399BDE5_C96D_43D3_BF02_E7A5850421B4__INCLUDED_)
#define AFX_WMPERRORITEM_H__9399BDE5_C96D_43D3_BF02_E7A5850421B4__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
// NOTE: Do not modify the contents of this file. If this class is regenerated by
// Microsoft Visual C++, your modifications will be overwritten.
/////////////////////////////////////////////////////////////////////////////
// CWMPErrorItem wrapper class
class CWMPErrorItem : public COleDispatchDriver
{
public:
CWMPErrorItem() {} // Calls COleDispatchDriver default constructor
CWMPErrorItem(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
CWMPErrorItem(const CWMPErrorItem& dispatchSrc) : COleDispatchDriver(dispatchSrc) {}
// Attributes
public:
// Operations
public:
long GetErrorCode();
CString GetErrorDescription();
VARIANT GetErrorContext();
long GetRemedy();
CString GetCustomUrl();
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_WMPERRORITEM_H__9399BDE5_C96D_43D3_BF02_E7A5850421B4__INCLUDED_)

View File

@ -1,167 +0,0 @@
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
// NOTE: Do not modify the contents of this file. If this class is regenerated by
// Microsoft Visual C++, your modifications will be overwritten.
#include "stdafx.h"
#include "wmpmedia.h"
/////////////////////////////////////////////////////////////////////////////
// CWMPMedia properties
/////////////////////////////////////////////////////////////////////////////
// CWMPMedia operations
BOOL CWMPMedia::GetIsIdentical(LPDISPATCH pIWMPMedia)
{
BOOL result;
static BYTE parms[] =
VTS_DISPATCH;
InvokeHelper(0x2fb, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, parms,
pIWMPMedia);
return result;
}
CString CWMPMedia::GetSourceURL()
{
CString result;
InvokeHelper(0x2ef, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);
return result;
}
CString CWMPMedia::GetName()
{
CString result;
InvokeHelper(0x2fc, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);
return result;
}
void CWMPMedia::SetName(LPCTSTR lpszNewValue)
{
static BYTE parms[] =
VTS_BSTR;
InvokeHelper(0x2fc, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
lpszNewValue);
}
long CWMPMedia::GetImageSourceWidth()
{
long result;
InvokeHelper(0x2f0, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}
long CWMPMedia::GetImageSourceHeight()
{
long result;
InvokeHelper(0x2f1, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}
long CWMPMedia::GetMarkerCount()
{
long result;
InvokeHelper(0x2f2, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}
double CWMPMedia::getMarkerTime(long MarkerNum)
{
double result;
static BYTE parms[] =
VTS_I4;
InvokeHelper(0x2f3, DISPATCH_METHOD, VT_R8, (void*)&result, parms,
MarkerNum);
return result;
}
CString CWMPMedia::getMarkerName(long MarkerNum)
{
CString result;
static BYTE parms[] =
VTS_I4;
InvokeHelper(0x2f4, DISPATCH_METHOD, VT_BSTR, (void*)&result, parms,
MarkerNum);
return result;
}
double CWMPMedia::GetDuration()
{
double result;
InvokeHelper(0x2f5, DISPATCH_PROPERTYGET, VT_R8, (void*)&result, NULL);
return result;
}
CString CWMPMedia::GetDurationString()
{
CString result;
InvokeHelper(0x2f6, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);
return result;
}
long CWMPMedia::GetAttributeCount()
{
long result;
InvokeHelper(0x2f7, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}
CString CWMPMedia::getAttributeName(long lIndex)
{
CString result;
static BYTE parms[] =
VTS_I4;
InvokeHelper(0x2f8, DISPATCH_METHOD, VT_BSTR, (void*)&result, parms,
lIndex);
return result;
}
CString CWMPMedia::getItemInfo(LPCTSTR bstrItemName)
{
CString result;
static BYTE parms[] =
VTS_BSTR;
InvokeHelper(0x2f9, DISPATCH_METHOD, VT_BSTR, (void*)&result, parms,
bstrItemName);
return result;
}
void CWMPMedia::setItemInfo(LPCTSTR bstrItemName, LPCTSTR bstrVal)
{
static BYTE parms[] =
VTS_BSTR VTS_BSTR;
InvokeHelper(0x2fa, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
bstrItemName, bstrVal);
}
CString CWMPMedia::getItemInfoByAtom(long lAtom)
{
CString result;
static BYTE parms[] =
VTS_I4;
InvokeHelper(0x2fd, DISPATCH_METHOD, VT_BSTR, (void*)&result, parms,
lAtom);
return result;
}
BOOL CWMPMedia::isMemberOf(LPDISPATCH pPlaylist)
{
BOOL result;
static BYTE parms[] =
VTS_DISPATCH;
InvokeHelper(0x2fe, DISPATCH_METHOD, VT_BOOL, (void*)&result, parms,
pPlaylist);
return result;
}
BOOL CWMPMedia::isReadOnlyItem(LPCTSTR bstrItemName)
{
BOOL result;
static BYTE parms[] =
VTS_BSTR;
InvokeHelper(0x2ff, DISPATCH_METHOD, VT_BOOL, (void*)&result, parms,
bstrItemName);
return result;
}

View File

@ -1,50 +0,0 @@
#if !defined(AFX_WMPMEDIA_H__7736565E_C037_498E_89F1_9696912C5998__INCLUDED_)
#define AFX_WMPMEDIA_H__7736565E_C037_498E_89F1_9696912C5998__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
// NOTE: Do not modify the contents of this file. If this class is regenerated by
// Microsoft Visual C++, your modifications will be overwritten.
/////////////////////////////////////////////////////////////////////////////
// CWMPMedia wrapper class
class CWMPMedia : public COleDispatchDriver
{
public:
CWMPMedia() {} // Calls COleDispatchDriver default constructor
CWMPMedia(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
CWMPMedia(const CWMPMedia& dispatchSrc) : COleDispatchDriver(dispatchSrc) {}
// Attributes
public:
// Operations
public:
BOOL GetIsIdentical(LPDISPATCH pIWMPMedia);
CString GetSourceURL();
CString GetName();
void SetName(LPCTSTR lpszNewValue);
long GetImageSourceWidth();
long GetImageSourceHeight();
long GetMarkerCount();
double getMarkerTime(long MarkerNum);
CString getMarkerName(long MarkerNum);
double GetDuration();
CString GetDurationString();
long GetAttributeCount();
CString getAttributeName(long lIndex);
CString getItemInfo(LPCTSTR bstrItemName);
void setItemInfo(LPCTSTR bstrItemName, LPCTSTR bstrVal);
CString getItemInfoByAtom(long lAtom);
BOOL isMemberOf(LPDISPATCH pPlaylist);
BOOL isReadOnlyItem(LPCTSTR bstrItemName);
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_WMPMEDIA_H__7736565E_C037_498E_89F1_9696912C5998__INCLUDED_)

View File

@ -1,133 +0,0 @@
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
// NOTE: Do not modify the contents of this file. If this class is regenerated by
// Microsoft Visual C++, your modifications will be overwritten.
#include "stdafx.h"
#include "wmpmediacollection.h"
// Dispatch interfaces referenced by this interface
#include "wmpmedia.h"
#include "wmpplaylist.h"
#include "wmpstringcollection.h"
/////////////////////////////////////////////////////////////////////////////
// CWMPMediaCollection properties
/////////////////////////////////////////////////////////////////////////////
// CWMPMediaCollection operations
CWMPMedia CWMPMediaCollection::add(LPCTSTR bstrURL)
{
LPDISPATCH pDispatch;
static BYTE parms[] =
VTS_BSTR;
InvokeHelper(0x1c4, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms,
bstrURL);
return CWMPMedia(pDispatch);
}
CWMPPlaylist CWMPMediaCollection::getAll()
{
LPDISPATCH pDispatch;
InvokeHelper(0x1c5, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, NULL);
return CWMPPlaylist(pDispatch);
}
CWMPPlaylist CWMPMediaCollection::getByName(LPCTSTR bstrName)
{
LPDISPATCH pDispatch;
static BYTE parms[] =
VTS_BSTR;
InvokeHelper(0x1c6, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms,
bstrName);
return CWMPPlaylist(pDispatch);
}
CWMPPlaylist CWMPMediaCollection::getByGenre(LPCTSTR bstrGenre)
{
LPDISPATCH pDispatch;
static BYTE parms[] =
VTS_BSTR;
InvokeHelper(0x1c7, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms,
bstrGenre);
return CWMPPlaylist(pDispatch);
}
CWMPPlaylist CWMPMediaCollection::getByAuthor(LPCTSTR bstrAuthor)
{
LPDISPATCH pDispatch;
static BYTE parms[] =
VTS_BSTR;
InvokeHelper(0x1c8, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms,
bstrAuthor);
return CWMPPlaylist(pDispatch);
}
CWMPPlaylist CWMPMediaCollection::getByAlbum(LPCTSTR bstrAlbum)
{
LPDISPATCH pDispatch;
static BYTE parms[] =
VTS_BSTR;
InvokeHelper(0x1c9, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms,
bstrAlbum);
return CWMPPlaylist(pDispatch);
}
CWMPPlaylist CWMPMediaCollection::getByAttribute(LPCTSTR bstrAttribute, LPCTSTR bstrValue)
{
LPDISPATCH pDispatch;
static BYTE parms[] =
VTS_BSTR VTS_BSTR;
InvokeHelper(0x1ca, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms,
bstrAttribute, bstrValue);
return CWMPPlaylist(pDispatch);
}
void CWMPMediaCollection::remove(LPDISPATCH pItem, BOOL varfDeleteFile)
{
static BYTE parms[] =
VTS_DISPATCH VTS_BOOL;
InvokeHelper(0x1cb, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
pItem, varfDeleteFile);
}
CWMPStringCollection CWMPMediaCollection::getAttributeStringCollection(LPCTSTR bstrAttribute, LPCTSTR bstrMediaType)
{
LPDISPATCH pDispatch;
static BYTE parms[] =
VTS_BSTR VTS_BSTR;
InvokeHelper(0x1cd, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms,
bstrAttribute, bstrMediaType);
return CWMPStringCollection(pDispatch);
}
long CWMPMediaCollection::getMediaAtom(LPCTSTR bstrItemName)
{
long result;
static BYTE parms[] =
VTS_BSTR;
InvokeHelper(0x1d6, DISPATCH_METHOD, VT_I4, (void*)&result, parms,
bstrItemName);
return result;
}
void CWMPMediaCollection::setDeleted(LPDISPATCH pItem, BOOL varfIsDeleted)
{
static BYTE parms[] =
VTS_DISPATCH VTS_BOOL;
InvokeHelper(0x1d7, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
pItem, varfIsDeleted);
}
BOOL CWMPMediaCollection::isDeleted(LPDISPATCH pItem)
{
BOOL result;
static BYTE parms[] =
VTS_DISPATCH;
InvokeHelper(0x1d8, DISPATCH_METHOD, VT_BOOL, (void*)&result, parms,
pItem);
return result;
}

View File

@ -1,50 +0,0 @@
#if !defined(AFX_WMPMEDIACOLLECTION_H__8C47EB0E_4638_46DA_A405_415AEAE509CE__INCLUDED_)
#define AFX_WMPMEDIACOLLECTION_H__8C47EB0E_4638_46DA_A405_415AEAE509CE__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
// NOTE: Do not modify the contents of this file. If this class is regenerated by
// Microsoft Visual C++, your modifications will be overwritten.
// Dispatch interfaces referenced by this interface
class CWMPMedia;
class CWMPPlaylist;
class CWMPStringCollection;
/////////////////////////////////////////////////////////////////////////////
// CWMPMediaCollection wrapper class
class CWMPMediaCollection : public COleDispatchDriver
{
public:
CWMPMediaCollection() {} // Calls COleDispatchDriver default constructor
CWMPMediaCollection(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
CWMPMediaCollection(const CWMPMediaCollection& dispatchSrc) : COleDispatchDriver(dispatchSrc) {}
// Attributes
public:
// Operations
public:
CWMPMedia add(LPCTSTR bstrURL);
CWMPPlaylist getAll();
CWMPPlaylist getByName(LPCTSTR bstrName);
CWMPPlaylist getByGenre(LPCTSTR bstrGenre);
CWMPPlaylist getByAuthor(LPCTSTR bstrAuthor);
CWMPPlaylist getByAlbum(LPCTSTR bstrAlbum);
CWMPPlaylist getByAttribute(LPCTSTR bstrAttribute, LPCTSTR bstrValue);
void remove(LPDISPATCH pItem, BOOL varfDeleteFile);
CWMPStringCollection getAttributeStringCollection(LPCTSTR bstrAttribute, LPCTSTR bstrMediaType);
long getMediaAtom(LPCTSTR bstrItemName);
void setDeleted(LPDISPATCH pItem, BOOL varfIsDeleted);
BOOL isDeleted(LPDISPATCH pItem);
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_WMPMEDIACOLLECTION_H__8C47EB0E_4638_46DA_A405_415AEAE509CE__INCLUDED_)

View File

@ -1,233 +0,0 @@
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
// NOTE: Do not modify the contents of this file. If this class is regenerated by
// Microsoft Visual C++, your modifications will be overwritten.
#include "stdafx.h"
#include "wmpnetwork.h"
/////////////////////////////////////////////////////////////////////////////
// CWMPNetwork properties
/////////////////////////////////////////////////////////////////////////////
// CWMPNetwork operations
long CWMPNetwork::GetBandWidth()
{
long result;
InvokeHelper(0x321, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}
long CWMPNetwork::GetRecoveredPackets()
{
long result;
InvokeHelper(0x322, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}
CString CWMPNetwork::GetSourceProtocol()
{
CString result;
InvokeHelper(0x323, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);
return result;
}
long CWMPNetwork::GetReceivedPackets()
{
long result;
InvokeHelper(0x324, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}
long CWMPNetwork::GetLostPackets()
{
long result;
InvokeHelper(0x325, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}
long CWMPNetwork::GetReceptionQuality()
{
long result;
InvokeHelper(0x326, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}
long CWMPNetwork::GetBufferingCount()
{
long result;
InvokeHelper(0x327, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}
long CWMPNetwork::GetBufferingProgress()
{
long result;
InvokeHelper(0x328, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}
long CWMPNetwork::GetBufferingTime()
{
long result;
InvokeHelper(0x329, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}
void CWMPNetwork::SetBufferingTime(long nNewValue)
{
static BYTE parms[] =
VTS_I4;
InvokeHelper(0x329, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
nNewValue);
}
long CWMPNetwork::GetFrameRate()
{
long result;
InvokeHelper(0x32a, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}
long CWMPNetwork::GetMaxBitRate()
{
long result;
InvokeHelper(0x32b, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}
long CWMPNetwork::GetBitRate()
{
long result;
InvokeHelper(0x32c, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}
long CWMPNetwork::getProxySettings(LPCTSTR bstrProtocol)
{
long result;
static BYTE parms[] =
VTS_BSTR;
InvokeHelper(0x32d, DISPATCH_METHOD, VT_I4, (void*)&result, parms,
bstrProtocol);
return result;
}
void CWMPNetwork::setProxySettings(LPCTSTR bstrProtocol, long lProxySetting)
{
static BYTE parms[] =
VTS_BSTR VTS_I4;
InvokeHelper(0x32e, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
bstrProtocol, lProxySetting);
}
CString CWMPNetwork::getProxyName(LPCTSTR bstrProtocol)
{
CString result;
static BYTE parms[] =
VTS_BSTR;
InvokeHelper(0x32f, DISPATCH_METHOD, VT_BSTR, (void*)&result, parms,
bstrProtocol);
return result;
}
void CWMPNetwork::setProxyName(LPCTSTR bstrProtocol, LPCTSTR bstrProxyName)
{
static BYTE parms[] =
VTS_BSTR VTS_BSTR;
InvokeHelper(0x330, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
bstrProtocol, bstrProxyName);
}
long CWMPNetwork::getProxyPort(LPCTSTR bstrProtocol)
{
long result;
static BYTE parms[] =
VTS_BSTR;
InvokeHelper(0x331, DISPATCH_METHOD, VT_I4, (void*)&result, parms,
bstrProtocol);
return result;
}
void CWMPNetwork::setProxyPort(LPCTSTR bstrProtocol, long lProxyPort)
{
static BYTE parms[] =
VTS_BSTR VTS_I4;
InvokeHelper(0x332, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
bstrProtocol, lProxyPort);
}
CString CWMPNetwork::getProxyExceptionList(LPCTSTR bstrProtocol)
{
CString result;
static BYTE parms[] =
VTS_BSTR;
InvokeHelper(0x333, DISPATCH_METHOD, VT_BSTR, (void*)&result, parms,
bstrProtocol);
return result;
}
void CWMPNetwork::setProxyExceptionList(LPCTSTR bstrProtocol, LPCTSTR pbstrExceptionList)
{
static BYTE parms[] =
VTS_BSTR VTS_BSTR;
InvokeHelper(0x334, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
bstrProtocol, pbstrExceptionList);
}
BOOL CWMPNetwork::getProxyBypassForLocal(LPCTSTR bstrProtocol)
{
BOOL result;
static BYTE parms[] =
VTS_BSTR;
InvokeHelper(0x335, DISPATCH_METHOD, VT_BOOL, (void*)&result, parms,
bstrProtocol);
return result;
}
void CWMPNetwork::setProxyBypassForLocal(LPCTSTR bstrProtocol, BOOL fBypassForLocal)
{
static BYTE parms[] =
VTS_BSTR VTS_BOOL;
InvokeHelper(0x336, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
bstrProtocol, fBypassForLocal);
}
long CWMPNetwork::GetMaxBandwidth()
{
long result;
InvokeHelper(0x337, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}
void CWMPNetwork::SetMaxBandwidth(long nNewValue)
{
static BYTE parms[] =
VTS_I4;
InvokeHelper(0x337, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
nNewValue);
}
long CWMPNetwork::GetDownloadProgress()
{
long result;
InvokeHelper(0x338, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}
long CWMPNetwork::GetEncodedFrameRate()
{
long result;
InvokeHelper(0x339, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}
long CWMPNetwork::GetFramesSkipped()
{
long result;
InvokeHelper(0x33a, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}

View File

@ -1,60 +0,0 @@
#if !defined(AFX_WMPNETWORK_H__50BDAB41_9F78_492A_8A5E_27543B0C0CAF__INCLUDED_)
#define AFX_WMPNETWORK_H__50BDAB41_9F78_492A_8A5E_27543B0C0CAF__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
// NOTE: Do not modify the contents of this file. If this class is regenerated by
// Microsoft Visual C++, your modifications will be overwritten.
/////////////////////////////////////////////////////////////////////////////
// CWMPNetwork wrapper class
class CWMPNetwork : public COleDispatchDriver
{
public:
CWMPNetwork() {} // Calls COleDispatchDriver default constructor
CWMPNetwork(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
CWMPNetwork(const CWMPNetwork& dispatchSrc) : COleDispatchDriver(dispatchSrc) {}
// Attributes
public:
// Operations
public:
long GetBandWidth();
long GetRecoveredPackets();
CString GetSourceProtocol();
long GetReceivedPackets();
long GetLostPackets();
long GetReceptionQuality();
long GetBufferingCount();
long GetBufferingProgress();
long GetBufferingTime();
void SetBufferingTime(long nNewValue);
long GetFrameRate();
long GetMaxBitRate();
long GetBitRate();
long getProxySettings(LPCTSTR bstrProtocol);
void setProxySettings(LPCTSTR bstrProtocol, long lProxySetting);
CString getProxyName(LPCTSTR bstrProtocol);
void setProxyName(LPCTSTR bstrProtocol, LPCTSTR bstrProxyName);
long getProxyPort(LPCTSTR bstrProtocol);
void setProxyPort(LPCTSTR bstrProtocol, long lProxyPort);
CString getProxyExceptionList(LPCTSTR bstrProtocol);
void setProxyExceptionList(LPCTSTR bstrProtocol, LPCTSTR pbstrExceptionList);
BOOL getProxyBypassForLocal(LPCTSTR bstrProtocol);
void setProxyBypassForLocal(LPCTSTR bstrProtocol, BOOL fBypassForLocal);
long GetMaxBandwidth();
void SetMaxBandwidth(long nNewValue);
long GetDownloadProgress();
long GetEncodedFrameRate();
long GetFramesSkipped();
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_WMPNETWORK_H__50BDAB41_9F78_492A_8A5E_27543B0C0CAF__INCLUDED_)

View File

@ -1,321 +0,0 @@
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
// NOTE: Do not modify the contents of this file. If this class is regenerated by
// Microsoft Visual C++, your modifications will be overwritten.
#include "stdafx.h"
#include "wmpplayer4.h"
// Dispatch interfaces referenced by this interface
#include "wmpcontrols.h"
#include "WMPSettings.h"
#include "wmpmedia.h"
#include "wmpmediacollection.h"
#include "wmpplaylistcollection.h"
#include "wmpnetwork.h"
#include "wmpplaylist.h"
#include "wmpcdromcollection.h"
#include "wmpclosedcaption.h"
#include "WMPError.h"
#include "wmpdvd.h"
#include "WMPPlayerApplication.h"
/////////////////////////////////////////////////////////////////////////////
// CWMPPlayer4
IMPLEMENT_DYNCREATE(CWMPPlayer4, CWnd)
/////////////////////////////////////////////////////////////////////////////
// CWMPPlayer4 properties
/////////////////////////////////////////////////////////////////////////////
// CWMPPlayer4 operations
void CWMPPlayer4::close()
{
InvokeHelper(0x3, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
}
CString CWMPPlayer4::GetUrl()
{
CString result;
InvokeHelper(0x1, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);
return result;
}
void CWMPPlayer4::SetUrl(LPCTSTR lpszNewValue)
{
static BYTE parms[] =
VTS_BSTR;
InvokeHelper(0x1, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
lpszNewValue);
}
long CWMPPlayer4::GetOpenState()
{
long result;
InvokeHelper(0x2, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}
long CWMPPlayer4::GetPlayState()
{
long result;
InvokeHelper(0xa, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}
CWMPControls CWMPPlayer4::GetControls()
{
LPDISPATCH pDispatch;
InvokeHelper(0x4, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&pDispatch, NULL);
return CWMPControls(pDispatch);
}
CWMPSettings CWMPPlayer4::GetSettings()
{
LPDISPATCH pDispatch;
InvokeHelper(0x5, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&pDispatch, NULL);
return CWMPSettings(pDispatch);
}
CWMPMedia CWMPPlayer4::GetCurrentMedia()
{
LPDISPATCH pDispatch;
InvokeHelper(0x6, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&pDispatch, NULL);
return CWMPMedia(pDispatch);
}
void CWMPPlayer4::SetCurrentMedia(LPDISPATCH newValue)
{
static BYTE parms[] =
VTS_DISPATCH;
InvokeHelper(0x6, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
newValue);
}
CWMPMediaCollection CWMPPlayer4::GetMediaCollection()
{
LPDISPATCH pDispatch;
InvokeHelper(0x8, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&pDispatch, NULL);
return CWMPMediaCollection(pDispatch);
}
CWMPPlaylistCollection CWMPPlayer4::GetPlaylistCollection()
{
LPDISPATCH pDispatch;
InvokeHelper(0x9, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&pDispatch, NULL);
return CWMPPlaylistCollection(pDispatch);
}
CString CWMPPlayer4::GetVersionInfo()
{
CString result;
InvokeHelper(0xb, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);
return result;
}
void CWMPPlayer4::launchURL(LPCTSTR bstrURL)
{
static BYTE parms[] =
VTS_BSTR;
InvokeHelper(0xc, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
bstrURL);
}
CWMPNetwork CWMPPlayer4::GetNetwork()
{
LPDISPATCH pDispatch;
InvokeHelper(0x7, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&pDispatch, NULL);
return CWMPNetwork(pDispatch);
}
CWMPPlaylist CWMPPlayer4::GetCurrentPlaylist()
{
LPDISPATCH pDispatch;
InvokeHelper(0xd, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&pDispatch, NULL);
return CWMPPlaylist(pDispatch);
}
void CWMPPlayer4::SetCurrentPlaylist(LPDISPATCH newValue)
{
static BYTE parms[] =
VTS_DISPATCH;
InvokeHelper(0xd, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
newValue);
}
CWMPCdromCollection CWMPPlayer4::GetCdromCollection()
{
LPDISPATCH pDispatch;
InvokeHelper(0xe, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&pDispatch, NULL);
return CWMPCdromCollection(pDispatch);
}
CWMPClosedCaption CWMPPlayer4::GetClosedCaption()
{
LPDISPATCH pDispatch;
InvokeHelper(0xf, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&pDispatch, NULL);
return CWMPClosedCaption(pDispatch);
}
BOOL CWMPPlayer4::GetIsOnline()
{
BOOL result;
InvokeHelper(0x10, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
return result;
}
CWMPError CWMPPlayer4::GetError()
{
LPDISPATCH pDispatch;
InvokeHelper(0x11, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&pDispatch, NULL);
return CWMPError(pDispatch);
}
CString CWMPPlayer4::GetStatus()
{
CString result;
InvokeHelper(0x12, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);
return result;
}
CWMPDVD CWMPPlayer4::GetDvd()
{
LPDISPATCH pDispatch;
InvokeHelper(0x28, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&pDispatch, NULL);
return CWMPDVD(pDispatch);
}
CWMPPlaylist CWMPPlayer4::newPlaylist(LPCTSTR bstrName, LPCTSTR bstrURL)
{
LPDISPATCH pDispatch;
static BYTE parms[] =
VTS_BSTR VTS_BSTR;
InvokeHelper(0x29, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms,
bstrName, bstrURL);
return CWMPPlaylist(pDispatch);
}
CWMPMedia CWMPPlayer4::newMedia(LPCTSTR bstrURL)
{
LPDISPATCH pDispatch;
static BYTE parms[] =
VTS_BSTR;
InvokeHelper(0x2a, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms,
bstrURL);
return CWMPMedia(pDispatch);
}
BOOL CWMPPlayer4::GetEnabled()
{
BOOL result;
InvokeHelper(0x13, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
return result;
}
void CWMPPlayer4::SetEnabled(BOOL bNewValue)
{
static BYTE parms[] =
VTS_BOOL;
InvokeHelper(0x13, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
bNewValue);
}
BOOL CWMPPlayer4::GetFullScreen()
{
BOOL result;
InvokeHelper(0x15, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
return result;
}
void CWMPPlayer4::SetFullScreen(BOOL bNewValue)
{
static BYTE parms[] =
VTS_BOOL;
InvokeHelper(0x15, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
bNewValue);
}
BOOL CWMPPlayer4::GetEnableContextMenu()
{
BOOL result;
InvokeHelper(0x16, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
return result;
}
void CWMPPlayer4::SetEnableContextMenu(BOOL bNewValue)
{
static BYTE parms[] =
VTS_BOOL;
InvokeHelper(0x16, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
bNewValue);
}
void CWMPPlayer4::SetUiMode(LPCTSTR lpszNewValue)
{
static BYTE parms[] =
VTS_BSTR;
InvokeHelper(0x17, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
lpszNewValue);
}
CString CWMPPlayer4::GetUiMode()
{
CString result;
InvokeHelper(0x17, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);
return result;
}
BOOL CWMPPlayer4::GetStretchToFit()
{
BOOL result;
InvokeHelper(0x18, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
return result;
}
void CWMPPlayer4::SetStretchToFit(BOOL bNewValue)
{
static BYTE parms[] =
VTS_BOOL;
InvokeHelper(0x18, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
bNewValue);
}
BOOL CWMPPlayer4::GetWindowlessVideo()
{
BOOL result;
InvokeHelper(0x19, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
return result;
}
void CWMPPlayer4::SetWindowlessVideo(BOOL bNewValue)
{
static BYTE parms[] =
VTS_BOOL;
InvokeHelper(0x19, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
bNewValue);
}
BOOL CWMPPlayer4::GetIsRemote()
{
BOOL result;
InvokeHelper(0x1a, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
return result;
}
CWMPPlayerApplication CWMPPlayer4::GetPlayerApplication()
{
LPDISPATCH pDispatch;
InvokeHelper(0x1b, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&pDispatch, NULL);
return CWMPPlayerApplication(pDispatch);
}
void CWMPPlayer4::openPlayer(LPCTSTR bstrURL)
{
static BYTE parms[] =
VTS_BSTR;
InvokeHelper(0x1c, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
bstrURL);
}

View File

@ -1,104 +0,0 @@
#if !defined(AFX_WMPPLAYER4_H__A318AE12_803B_4EED_B586_1395637CDD35__INCLUDED_)
#define AFX_WMPPLAYER4_H__A318AE12_803B_4EED_B586_1395637CDD35__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
// NOTE: Do not modify the contents of this file. If this class is regenerated by
// Microsoft Visual C++, your modifications will be overwritten.
// Dispatch interfaces referenced by this interface
class CWMPControls;
class CWMPSettings;
class CWMPMedia;
class CWMPMediaCollection;
class CWMPPlaylistCollection;
class CWMPNetwork;
class CWMPPlaylist;
class CWMPCdromCollection;
class CWMPClosedCaption;
class CWMPError;
class CWMPDVD;
class CWMPPlayerApplication;
/////////////////////////////////////////////////////////////////////////////
// CWMPPlayer4 wrapper class
class CWMPPlayer4 : public CWnd
{
protected:
DECLARE_DYNCREATE(CWMPPlayer4)
public:
CLSID const& GetClsid()
{
static CLSID const clsid
= { 0x6bf52a52, 0x394a, 0x11d3, { 0xb1, 0x53, 0x0, 0xc0, 0x4f, 0x79, 0xfa, 0xa6 } };
return clsid;
}
/*virtual BOOL Create(LPCTSTR lpszClassName,
LPCTSTR lpszWindowName, DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd, UINT nID,
CCreateContext* pContext = NULL)
{ return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID); }*/
BOOL Create(LPCTSTR lpszWindowName, DWORD dwStyle,
const RECT& rect, CWnd* pParentWnd, UINT nID,
CFile* pPersist = NULL, BOOL bStorage = FALSE,
BSTR bstrLicKey = NULL)
{ return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID,
pPersist, bStorage, bstrLicKey); }
// Attributes
public:
// Operations
public:
void close();
CString GetUrl();
void SetUrl(LPCTSTR lpszNewValue);
long GetOpenState();
long GetPlayState();
CWMPControls GetControls();
CWMPSettings GetSettings();
CWMPMedia GetCurrentMedia();
void SetCurrentMedia(LPDISPATCH newValue);
CWMPMediaCollection GetMediaCollection();
CWMPPlaylistCollection GetPlaylistCollection();
CString GetVersionInfo();
void launchURL(LPCTSTR bstrURL);
CWMPNetwork GetNetwork();
CWMPPlaylist GetCurrentPlaylist();
void SetCurrentPlaylist(LPDISPATCH newValue);
CWMPCdromCollection GetCdromCollection();
CWMPClosedCaption GetClosedCaption();
BOOL GetIsOnline();
CWMPError GetError();
CString GetStatus();
CWMPDVD GetDvd();
CWMPPlaylist newPlaylist(LPCTSTR bstrName, LPCTSTR bstrURL);
CWMPMedia newMedia(LPCTSTR bstrURL);
BOOL GetEnabled();
void SetEnabled(BOOL bNewValue);
BOOL GetFullScreen();
void SetFullScreen(BOOL bNewValue);
BOOL GetEnableContextMenu();
void SetEnableContextMenu(BOOL bNewValue);
void SetUiMode(LPCTSTR lpszNewValue);
CString GetUiMode();
BOOL GetStretchToFit();
void SetStretchToFit(BOOL bNewValue);
BOOL GetWindowlessVideo();
void SetWindowlessVideo(BOOL bNewValue);
BOOL GetIsRemote();
CWMPPlayerApplication GetPlayerApplication();
void openPlayer(LPCTSTR bstrURL);
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_WMPPLAYER4_H__A318AE12_803B_4EED_B586_1395637CDD35__INCLUDED_)

View File

@ -1,39 +0,0 @@
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
// NOTE: Do not modify the contents of this file. If this class is regenerated by
// Microsoft Visual C++, your modifications will be overwritten.
#include "stdafx.h"
#include "wmpplayerapplication.h"
/////////////////////////////////////////////////////////////////////////////
// CWMPPlayerApplication properties
/////////////////////////////////////////////////////////////////////////////
// CWMPPlayerApplication operations
void CWMPPlayerApplication::switchToPlayerApplication()
{
InvokeHelper(0x44d, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
}
void CWMPPlayerApplication::switchToControl()
{
InvokeHelper(0x44e, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
}
BOOL CWMPPlayerApplication::GetPlayerDocked()
{
BOOL result;
InvokeHelper(0x44f, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
return result;
}
BOOL CWMPPlayerApplication::GetHasDisplay()
{
BOOL result;
InvokeHelper(0x450, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
return result;
}

View File

@ -1,36 +0,0 @@
#if !defined(AFX_WMPPLAYERAPPLICATION_H__A69CB85C_22A1_4A02_979D_3FFB61135553__INCLUDED_)
#define AFX_WMPPLAYERAPPLICATION_H__A69CB85C_22A1_4A02_979D_3FFB61135553__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
// NOTE: Do not modify the contents of this file. If this class is regenerated by
// Microsoft Visual C++, your modifications will be overwritten.
/////////////////////////////////////////////////////////////////////////////
// CWMPPlayerApplication wrapper class
class CWMPPlayerApplication : public COleDispatchDriver
{
public:
CWMPPlayerApplication() {} // Calls COleDispatchDriver default constructor
CWMPPlayerApplication(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
CWMPPlayerApplication(const CWMPPlayerApplication& dispatchSrc) : COleDispatchDriver(dispatchSrc) {}
// Attributes
public:
// Operations
public:
void switchToPlayerApplication();
void switchToControl();
BOOL GetPlayerDocked();
BOOL GetHasDisplay();
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_WMPPLAYERAPPLICATION_H__A69CB85C_22A1_4A02_979D_3FFB61135553__INCLUDED_)

View File

@ -1,132 +0,0 @@
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
// NOTE: Do not modify the contents of this file. If this class is regenerated by
// Microsoft Visual C++, your modifications will be overwritten.
#include "stdafx.h"
#include "wmpplaylist.h"
// Dispatch interfaces referenced by this interface
#include "WMPMedia.h"
/////////////////////////////////////////////////////////////////////////////
// CWMPPlaylist properties
/////////////////////////////////////////////////////////////////////////////
// CWMPPlaylist operations
long CWMPPlaylist::GetCount()
{
long result;
InvokeHelper(0xc9, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}
CString CWMPPlaylist::GetName()
{
CString result;
InvokeHelper(0xca, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);
return result;
}
void CWMPPlaylist::SetName(LPCTSTR lpszNewValue)
{
static BYTE parms[] =
VTS_BSTR;
InvokeHelper(0xca, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
lpszNewValue);
}
long CWMPPlaylist::GetAttributeCount()
{
long result;
InvokeHelper(0xd2, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}
CString CWMPPlaylist::GetAttributeName(long lIndex)
{
CString result;
static BYTE parms[] =
VTS_I4;
InvokeHelper(0xd3, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, parms,
lIndex);
return result;
}
CWMPMedia CWMPPlaylist::GetItem(long lIndex)
{
LPDISPATCH pDispatch;
static BYTE parms[] =
VTS_I4;
InvokeHelper(0xd4, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&pDispatch, parms,
lIndex);
return CWMPMedia(pDispatch);
}
CString CWMPPlaylist::getItemInfo(LPCTSTR bstrName)
{
CString result;
static BYTE parms[] =
VTS_BSTR;
InvokeHelper(0xcb, DISPATCH_METHOD, VT_BSTR, (void*)&result, parms,
bstrName);
return result;
}
void CWMPPlaylist::setItemInfo(LPCTSTR bstrName, LPCTSTR bstrValue)
{
static BYTE parms[] =
VTS_BSTR VTS_BSTR;
InvokeHelper(0xcc, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
bstrName, bstrValue);
}
BOOL CWMPPlaylist::GetIsIdentical(LPDISPATCH pIWMPPlaylist)
{
BOOL result;
static BYTE parms[] =
VTS_DISPATCH;
InvokeHelper(0xd5, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, parms,
pIWMPPlaylist);
return result;
}
void CWMPPlaylist::clear()
{
InvokeHelper(0xcd, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
}
void CWMPPlaylist::insertItem(long lIndex, LPDISPATCH pIWMPMedia)
{
static BYTE parms[] =
VTS_I4 VTS_DISPATCH;
InvokeHelper(0xce, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
lIndex, pIWMPMedia);
}
void CWMPPlaylist::appendItem(LPDISPATCH pIWMPMedia)
{
static BYTE parms[] =
VTS_DISPATCH;
InvokeHelper(0xcf, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
pIWMPMedia);
}
void CWMPPlaylist::removeItem(LPDISPATCH pIWMPMedia)
{
static BYTE parms[] =
VTS_DISPATCH;
InvokeHelper(0xd0, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
pIWMPMedia);
}
void CWMPPlaylist::moveItem(long lIndexOld, long lIndexNew)
{
static BYTE parms[] =
VTS_I4 VTS_I4;
InvokeHelper(0xd1, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
lIndexOld, lIndexNew);
}

View File

@ -1,50 +0,0 @@
#if !defined(AFX_WMPPLAYLIST_H__B739DAEE_6828_4128_8A0A_E6750502339C__INCLUDED_)
#define AFX_WMPPLAYLIST_H__B739DAEE_6828_4128_8A0A_E6750502339C__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
// NOTE: Do not modify the contents of this file. If this class is regenerated by
// Microsoft Visual C++, your modifications will be overwritten.
// Dispatch interfaces referenced by this interface
class CWMPMedia;
/////////////////////////////////////////////////////////////////////////////
// CWMPPlaylist wrapper class
class CWMPPlaylist : public COleDispatchDriver
{
public:
CWMPPlaylist() {} // Calls COleDispatchDriver default constructor
CWMPPlaylist(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
CWMPPlaylist(const CWMPPlaylist& dispatchSrc) : COleDispatchDriver(dispatchSrc) {}
// Attributes
public:
// Operations
public:
long GetCount();
CString GetName();
void SetName(LPCTSTR lpszNewValue);
long GetAttributeCount();
CString GetAttributeName(long lIndex);
CWMPMedia GetItem(long lIndex);
CString getItemInfo(LPCTSTR bstrName);
void setItemInfo(LPCTSTR bstrName, LPCTSTR bstrValue);
BOOL GetIsIdentical(LPDISPATCH pIWMPPlaylist);
void clear();
void insertItem(long lIndex, LPDISPATCH pIWMPMedia);
void appendItem(LPDISPATCH pIWMPMedia);
void removeItem(LPDISPATCH pIWMPMedia);
void moveItem(long lIndexOld, long lIndexNew);
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_WMPPLAYLIST_H__B739DAEE_6828_4128_8A0A_E6750502339C__INCLUDED_)

View File

@ -1,35 +0,0 @@
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
// NOTE: Do not modify the contents of this file. If this class is regenerated by
// Microsoft Visual C++, your modifications will be overwritten.
#include "stdafx.h"
#include "wmpplaylistarray.h"
// Dispatch interfaces referenced by this interface
#include "wmpplaylist.h"
/////////////////////////////////////////////////////////////////////////////
// CWMPPlaylistArray properties
/////////////////////////////////////////////////////////////////////////////
// CWMPPlaylistArray operations
long CWMPPlaylistArray::GetCount()
{
long result;
InvokeHelper(0x1f5, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}
CWMPPlaylist CWMPPlaylistArray::Item(long lIndex)
{
LPDISPATCH pDispatch;
static BYTE parms[] =
VTS_I4;
InvokeHelper(0x1f6, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms,
lIndex);
return CWMPPlaylist(pDispatch);
}

View File

@ -1,38 +0,0 @@
#if !defined(AFX_WMPPLAYLISTARRAY_H__6368C8A4_18CF_4937_993F_F7FBE512B851__INCLUDED_)
#define AFX_WMPPLAYLISTARRAY_H__6368C8A4_18CF_4937_993F_F7FBE512B851__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
// NOTE: Do not modify the contents of this file. If this class is regenerated by
// Microsoft Visual C++, your modifications will be overwritten.
// Dispatch interfaces referenced by this interface
class CWMPPlaylist;
/////////////////////////////////////////////////////////////////////////////
// CWMPPlaylistArray wrapper class
class CWMPPlaylistArray : public COleDispatchDriver
{
public:
CWMPPlaylistArray() {} // Calls COleDispatchDriver default constructor
CWMPPlaylistArray(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
CWMPPlaylistArray(const CWMPPlaylistArray& dispatchSrc) : COleDispatchDriver(dispatchSrc) {}
// Attributes
public:
// Operations
public:
long GetCount();
CWMPPlaylist Item(long lIndex);
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_WMPPLAYLISTARRAY_H__6368C8A4_18CF_4937_993F_F7FBE512B851__INCLUDED_)

View File

@ -1,82 +0,0 @@
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
// NOTE: Do not modify the contents of this file. If this class is regenerated by
// Microsoft Visual C++, your modifications will be overwritten.
#include "stdafx.h"
#include "wmpplaylistcollection.h"
// Dispatch interfaces referenced by this interface
#include "wmpplaylist.h"
#include "WMPPlaylistArray.h"
/////////////////////////////////////////////////////////////////////////////
// CWMPPlaylistCollection properties
/////////////////////////////////////////////////////////////////////////////
// CWMPPlaylistCollection operations
CWMPPlaylist CWMPPlaylistCollection::newPlaylist(LPCTSTR bstrName)
{
LPDISPATCH pDispatch;
static BYTE parms[] =
VTS_BSTR;
InvokeHelper(0x228, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms,
bstrName);
return CWMPPlaylist(pDispatch);
}
CWMPPlaylistArray CWMPPlaylistCollection::getAll()
{
LPDISPATCH pDispatch;
InvokeHelper(0x229, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, NULL);
return CWMPPlaylistArray(pDispatch);
}
CWMPPlaylistArray CWMPPlaylistCollection::getByName(LPCTSTR bstrName)
{
LPDISPATCH pDispatch;
static BYTE parms[] =
VTS_BSTR;
InvokeHelper(0x22a, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms,
bstrName);
return CWMPPlaylistArray(pDispatch);
}
void CWMPPlaylistCollection::remove(LPDISPATCH pItem)
{
static BYTE parms[] =
VTS_DISPATCH;
InvokeHelper(0x22c, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
pItem);
}
void CWMPPlaylistCollection::setDeleted(LPDISPATCH pItem, BOOL varfIsDeleted)
{
static BYTE parms[] =
VTS_DISPATCH VTS_BOOL;
InvokeHelper(0x230, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
pItem, varfIsDeleted);
}
BOOL CWMPPlaylistCollection::isDeleted(LPDISPATCH pItem)
{
BOOL result;
static BYTE parms[] =
VTS_DISPATCH;
InvokeHelper(0x231, DISPATCH_METHOD, VT_BOOL, (void*)&result, parms,
pItem);
return result;
}
CWMPPlaylist CWMPPlaylistCollection::importPlaylist(LPDISPATCH pItem)
{
LPDISPATCH pDispatch;
static BYTE parms[] =
VTS_DISPATCH;
InvokeHelper(0x232, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms,
pItem);
return CWMPPlaylist(pDispatch);
}

View File

@ -1,44 +0,0 @@
#if !defined(AFX_WMPPLAYLISTCOLLECTION_H__D07F4C6A_4574_4463_8A11_4A5654E38062__INCLUDED_)
#define AFX_WMPPLAYLISTCOLLECTION_H__D07F4C6A_4574_4463_8A11_4A5654E38062__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
// NOTE: Do not modify the contents of this file. If this class is regenerated by
// Microsoft Visual C++, your modifications will be overwritten.
// Dispatch interfaces referenced by this interface
class CWMPPlaylist;
class CWMPPlaylistArray;
/////////////////////////////////////////////////////////////////////////////
// CWMPPlaylistCollection wrapper class
class CWMPPlaylistCollection : public COleDispatchDriver
{
public:
CWMPPlaylistCollection() {} // Calls COleDispatchDriver default constructor
CWMPPlaylistCollection(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
CWMPPlaylistCollection(const CWMPPlaylistCollection& dispatchSrc) : COleDispatchDriver(dispatchSrc) {}
// Attributes
public:
// Operations
public:
CWMPPlaylist newPlaylist(LPCTSTR bstrName);
CWMPPlaylistArray getAll();
CWMPPlaylistArray getByName(LPCTSTR bstrName);
void remove(LPDISPATCH pItem);
void setDeleted(LPDISPATCH pItem, BOOL varfIsDeleted);
BOOL isDeleted(LPDISPATCH pItem);
CWMPPlaylist importPlaylist(LPDISPATCH pItem);
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_WMPPLAYLISTCOLLECTION_H__D07F4C6A_4574_4463_8A11_4A5654E38062__INCLUDED_)

View File

@ -1,193 +0,0 @@
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
// NOTE: Do not modify the contents of this file. If this class is regenerated by
// Microsoft Visual C++, your modifications will be overwritten.
#include "stdafx.h"
#include "wmpsettings.h"
/////////////////////////////////////////////////////////////////////////////
// CWMPSettings properties
/////////////////////////////////////////////////////////////////////////////
// CWMPSettings operations
BOOL CWMPSettings::GetIsAvailable(LPCTSTR bstrItem)
{
BOOL result;
static BYTE parms[] =
VTS_BSTR;
InvokeHelper(0x71, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, parms,
bstrItem);
return result;
}
BOOL CWMPSettings::GetAutoStart()
{
BOOL result;
InvokeHelper(0x65, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
return result;
}
void CWMPSettings::SetAutoStart(BOOL bNewValue)
{
static BYTE parms[] =
VTS_BOOL;
InvokeHelper(0x65, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
bNewValue);
}
CString CWMPSettings::GetBaseURL()
{
CString result;
InvokeHelper(0x6c, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);
return result;
}
void CWMPSettings::SetBaseURL(LPCTSTR lpszNewValue)
{
static BYTE parms[] =
VTS_BSTR;
InvokeHelper(0x6c, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
lpszNewValue);
}
CString CWMPSettings::GetDefaultFrame()
{
CString result;
InvokeHelper(0x6d, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);
return result;
}
void CWMPSettings::SetDefaultFrame(LPCTSTR lpszNewValue)
{
static BYTE parms[] =
VTS_BSTR;
InvokeHelper(0x6d, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
lpszNewValue);
}
BOOL CWMPSettings::GetInvokeURLs()
{
BOOL result;
InvokeHelper(0x67, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
return result;
}
void CWMPSettings::SetInvokeURLs(BOOL bNewValue)
{
static BYTE parms[] =
VTS_BOOL;
InvokeHelper(0x67, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
bNewValue);
}
BOOL CWMPSettings::GetMute()
{
BOOL result;
InvokeHelper(0x68, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
return result;
}
void CWMPSettings::SetMute(BOOL bNewValue)
{
static BYTE parms[] =
VTS_BOOL;
InvokeHelper(0x68, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
bNewValue);
}
long CWMPSettings::GetPlayCount()
{
long result;
InvokeHelper(0x69, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}
void CWMPSettings::SetPlayCount(long nNewValue)
{
static BYTE parms[] =
VTS_I4;
InvokeHelper(0x69, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
nNewValue);
}
double CWMPSettings::GetRate()
{
double result;
InvokeHelper(0x6a, DISPATCH_PROPERTYGET, VT_R8, (void*)&result, NULL);
return result;
}
void CWMPSettings::SetRate(double newValue)
{
static BYTE parms[] =
VTS_R8;
InvokeHelper(0x6a, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
newValue);
}
long CWMPSettings::GetBalance()
{
long result;
InvokeHelper(0x66, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}
void CWMPSettings::SetBalance(long nNewValue)
{
static BYTE parms[] =
VTS_I4;
InvokeHelper(0x66, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
nNewValue);
}
long CWMPSettings::GetVolume()
{
long result;
InvokeHelper(0x6b, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}
void CWMPSettings::SetVolume(long nNewValue)
{
static BYTE parms[] =
VTS_I4;
InvokeHelper(0x6b, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
nNewValue);
}
BOOL CWMPSettings::getMode(LPCTSTR bstrMode)
{
BOOL result;
static BYTE parms[] =
VTS_BSTR;
InvokeHelper(0x6e, DISPATCH_METHOD, VT_BOOL, (void*)&result, parms,
bstrMode);
return result;
}
void CWMPSettings::setMode(LPCTSTR bstrMode, BOOL varfMode)
{
static BYTE parms[] =
VTS_BSTR VTS_BOOL;
InvokeHelper(0x6f, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
bstrMode, varfMode);
}
BOOL CWMPSettings::GetEnableErrorDialogs()
{
BOOL result;
InvokeHelper(0x70, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
return result;
}
void CWMPSettings::SetEnableErrorDialogs(BOOL bNewValue)
{
static BYTE parms[] =
VTS_BOOL;
InvokeHelper(0x70, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
bNewValue);
}

View File

@ -1,55 +0,0 @@
#if !defined(AFX_WMPSETTINGS_H__28D3DCCC_3E9A_48AE_97A9_3C1337309AF4__INCLUDED_)
#define AFX_WMPSETTINGS_H__28D3DCCC_3E9A_48AE_97A9_3C1337309AF4__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
// NOTE: Do not modify the contents of this file. If this class is regenerated by
// Microsoft Visual C++, your modifications will be overwritten.
/////////////////////////////////////////////////////////////////////////////
// CWMPSettings wrapper class
class CWMPSettings : public COleDispatchDriver
{
public:
CWMPSettings() {} // Calls COleDispatchDriver default constructor
CWMPSettings(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
CWMPSettings(const CWMPSettings& dispatchSrc) : COleDispatchDriver(dispatchSrc) {}
// Attributes
public:
// Operations
public:
BOOL GetIsAvailable(LPCTSTR bstrItem);
BOOL GetAutoStart();
void SetAutoStart(BOOL bNewValue);
CString GetBaseURL();
void SetBaseURL(LPCTSTR lpszNewValue);
CString GetDefaultFrame();
void SetDefaultFrame(LPCTSTR lpszNewValue);
BOOL GetInvokeURLs();
void SetInvokeURLs(BOOL bNewValue);
BOOL GetMute();
void SetMute(BOOL bNewValue);
long GetPlayCount();
void SetPlayCount(long nNewValue);
double GetRate();
void SetRate(double newValue);
long GetBalance();
void SetBalance(long nNewValue);
long GetVolume();
void SetVolume(long nNewValue);
BOOL getMode(LPCTSTR bstrMode);
void setMode(LPCTSTR bstrMode, BOOL varfMode);
BOOL GetEnableErrorDialogs();
void SetEnableErrorDialogs(BOOL bNewValue);
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_WMPSETTINGS_H__28D3DCCC_3E9A_48AE_97A9_3C1337309AF4__INCLUDED_)

View File

@ -1,32 +0,0 @@
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
// NOTE: Do not modify the contents of this file. If this class is regenerated by
// Microsoft Visual C++, your modifications will be overwritten.
#include "stdafx.h"
#include "wmpstringcollection.h"
/////////////////////////////////////////////////////////////////////////////
// CWMPStringCollection properties
/////////////////////////////////////////////////////////////////////////////
// CWMPStringCollection operations
long CWMPStringCollection::GetCount()
{
long result;
InvokeHelper(0x191, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
return result;
}
CString CWMPStringCollection::Item(long lIndex)
{
CString result;
static BYTE parms[] =
VTS_I4;
InvokeHelper(0x192, DISPATCH_METHOD, VT_BSTR, (void*)&result, parms,
lIndex);
return result;
}

View File

@ -1,34 +0,0 @@
#if !defined(AFX_WMPSTRINGCOLLECTION_H__782BAE9B_652B_476D_9448_808027B17262__INCLUDED_)
#define AFX_WMPSTRINGCOLLECTION_H__782BAE9B_652B_476D_9448_808027B17262__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++
// NOTE: Do not modify the contents of this file. If this class is regenerated by
// Microsoft Visual C++, your modifications will be overwritten.
/////////////////////////////////////////////////////////////////////////////
// CWMPStringCollection wrapper class
class CWMPStringCollection : public COleDispatchDriver
{
public:
CWMPStringCollection() {} // Calls COleDispatchDriver default constructor
CWMPStringCollection(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
CWMPStringCollection(const CWMPStringCollection& dispatchSrc) : COleDispatchDriver(dispatchSrc) {}
// Attributes
public:
// Operations
public:
long GetCount();
CString Item(long lIndex);
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_WMPSTRINGCOLLECTION_H__782BAE9B_652B_476D_9448_808027B17262__INCLUDED_)

View File

@ -1,4 +1,4 @@
libdir = $(hexchatdir)/plugins
libdir = $(hexchatdir)
lib_LTLIBRARIES = xdcc.la
xdcc_la_SOURCES = xdcc.c

View File

@ -1,3 +1,5 @@
SUBDIRS = pkgconfig
if DO_GTK
SUBDIRS = icons misc
SUBDIRS += icons misc
endif

View File

@ -2,10 +2,10 @@
Just some tips if you're going to help with HexChat code (patches etc):
* Use tabs, not spaces, to indent code.
* Use tabs, not spaces, to indent and align code.
* Use a tab size of 3 (most editors will let you choose this).
Type :set ts=3 in vim/gvim.
* Use a tab size of 4 (most editors will let you choose this).
Type :set ts=4 in vim/gvim.
* Try to stick to the same consistant coding style (vertically aligned braces, a space after if, while, functions etc.):

View File

@ -1,7 +1,7 @@
# HexChat ReadMe
X-Chat ("xchat") Copyright (c) 1998-2010 By Peter Zelezny.
HexChat ("hexchat") Copyright (c) 2009-2012 By Berke Viktor.
HexChat ("hexchat") Copyright (c) 2009-2013 By Berke Viktor.
This program is released under the GPL v2 with the additional exemption
that compiling, linking, and/or using OpenSSL is allowed. You may
@ -11,20 +11,22 @@ See file COPYING for details.
For building instructions, see [Building](http://docs.hexchat.org/en/latest/building.html).
## What is it?
HexChat is an IRC client for Windows and UNIX operating systems. I.R.C. is
Internet Relay Chat, see [IRCHelp.org](http://irchelp.org) for more information about IRC
in general. HexChat runs on most BSD and POSIX compliant operating systems.
## Requirements:
* GTK+ 2.10
* GLib 2.14
* GTK+ 2.24
* GLib 2.28
HexChat is known to work on, at least:
* Windows XP/Vista/7/8
* Windows Vista/7/8
* Linux
* FreeBSD
* OpenBSD
@ -42,40 +44,20 @@ HexChat is known to work on, at least:
If you need your packages to work on i386, you don't need to compile with
--disable-mmx, because it's also checked at run-time.
## Python Scripts:
Scripts for XChat 1.8.x are not compatible, a brand new interface has been written. For more info, see the [HexChat Python Interface](http://docs.hexchat.org/en/latest/script_python.html).
## Python Scripts:
Consider using the Python interface for your scripts, it's a very nice
API, allows for loading/unloading individual scripts, and gives you
almost all the features of the C-Plugin API.
almost all the features of the C plugin API. For more info, see the
[HexChat Python Interface](http://docs.hexchat.org/en/latest/script_python.html).
## Perl Scripts:
Perl 5.8 or newer is required. For more info, see the [HexChat Perl Interface](http://docs.hexchat.org/en/latest/script_perl.html).
Perl 5.8 or newer is required. For more info, see the
[HexChat Perl Interface](http://docs.hexchat.org/en/latest/script_perl.html).
Scripts for XChat 1.8.x are compatible with the following exceptions:
* IRC::command will not interpret %C, %B, %U etc.
* user_list and user_list_short:
If a user has both op and voice, only the op flag will be 1.
* add_user_list/sub_user_list/clear_user_list
These functions do nothing.
* notify_list
Not implemented. Always returns an empty list.
* server_list
Lists servers that are not connected aswell.
* Some print events may have new names and some were added.
* Text printed by scripts must now be UTF8.
* Text passed to scripts (via add_message_handler) will be encoded in UTF8.
## Autoloading Scripts and Plugins:
@ -86,10 +68,8 @@ The root of your HexChat config is:
Referred to as &lt;config> from now. HexChat automatically loads, at startup:
* &lt;config>/addons/*.lua Lua scripts
* &lt;config>/addons/*.pl Perl scripts
* &lt;config>/addons/*.py Python scripts
* &lt;config>/addons/*.tcl Tcl scripts
* &lt;config>/addons/*.dll Plugins (Windows)
* &lt;config>/addons/*.so Plugins (Unix)

View File

@ -1,24 +1,30 @@
[Desktop Entry]
Name=HexChat
Name[zh_TW]=網路清談
Comment[de]=IRC-Client
Comment[es]=Aplicación de IRC
Comment[fi]=IRC-sovellus
Comment[fr]=Client IRC
Comment[hu]=IRC-kliens
Comment[lt]=IRC klientas
Comment[no]=IRC-klient
Comment[pl]=Klient IRC
Comment[pt_BR]=Cliente de IRC
Comment[sl]=Odjemalec IRC
Comment[sv]=IRC-klient
Comment[ro]=Client de IRC
Comment[zh_TW]=HexChat 聊天程式
GenericName=IRC Client
GenericName[de]=IRC-Client
GenericName[es]=Aplicación de IRC
GenericName[fi]=IRC-sovellus
GenericName[fr]=Client IRC
GenericName[hu]=IRC-kliens
GenericName[it]=Cliente IRC
GenericName[lt]=IRC klientas
GenericName[nb]=IRC-klient
GenericName[pl]=Klient IRC
GenericName[pt_BR]=Cliente de IRC
GenericName[sl]=Odjemalec IRC
GenericName[sv]=IRC-klient
GenericName[ro]=Client de IRC
GenericName[zh_TW]=HexChat 聊天程式
Comment=Chat with other people using Internet Relay Chat
Comment[fr]=Discutez avec tout le monde sur l'Internet Relay Chat
Comment[de]=Sich über Internet Relay Chat mit andern Leuten unterhalten
Comment[it]=Chiacchierare con la gente sull'Internet Relay Chat
Comment[nb]=Snakk med mennesker på Internet Relay Chat
Exec=hexchat
Icon=hexchat
Terminal=false
Type=Application
Categories=Network;
Categories=GTK;Network;IRCClient;
StartupNotify=true
X-GNOME-UsesNotifications=true

View File

@ -0,0 +1,4 @@
pkgcfgdir = $(pkgconfigdir)
pkgcfg_DATA = hexchat-plugin.pc
EXTRA_DIST = hexchat-plugin.pc.in

View File

@ -0,0 +1,9 @@
prefix=@prefix@
exec_prefix=${prefix}
includedir=@includedir@
hexchatlibdir=@hexchatlibdir@
Name: HexChat plugins
Description: Header and path for HexChat plugins
Version: @VERSION@
Cflags: -I${includedir}

View File

@ -31,7 +31,6 @@ EXTRA_DIST = \
servlist.h \
ssl.h \
ssl.c \
strlutil.c \
text.h \
textenums.h \
textevents.h \
@ -59,7 +58,7 @@ endif
libhexchatcommon_a_SOURCES = cfgfiles.c chanopt.c ctcp.c dcc.c hexchat.c \
history.c ignore.c inbound.c modes.c msproxy.c network.c notify.c \
outbound.c plugin.c plugin-timer.c proto-irc.c server.c servlist.c \
$(ssl_c) strlutil.c text.c tree.c url.c userlist.c util.c
$(ssl_c) text.c tree.c url.c userlist.c util.c
libhexchatcommon_a_CFLAGS = $(LIBPROXY_CFLAGS)
textenums.h: textevents.h

View File

@ -41,6 +41,15 @@
#define DEF_FONT "Monospace 9"
#define DEF_FONT_ALTER "Arial Unicode MS,Lucida Sans Unicode,MS Gothic,Unifont"
const char const *languages[LANGUAGES_LENGTH] = {
"af", "sq", "am", "ast", "az", "eu", "be", "bg", "ca", "zh_CN", /* 0 .. 9 */
"zh_TW", "cs", "da", "nl", "en_GB", "en", "et", "fi", "fr", "gl", /* 10 .. 19 */
"de", "el", "gu", "hi", "hu", "id", "it", "ja", "kn", "rw", /* 20 .. 29 */
"ko", "lv", "lt", "mk", "ml", "ms", "nb", "no", "pl", "pt", /* 30 .. 39 */
"pt_BR", "pa", "ru", "sr", "sk", "sl", "es", "sv", "th", "uk", /* 40 .. 49 */
"vi", "wa" /* 50 .. */
};
void
list_addentry (GSList ** list, char *cmd, char *name)
{
@ -112,7 +121,7 @@ list_loadconf (char *file, GSList ** list, char *defaultconf)
int fd;
struct stat st;
filebuf = g_strdup_printf ("%s" G_DIR_SEPARATOR_S "%s", get_xdir (), file);
filebuf = g_build_filename (get_xdir (), file, NULL);
fd = g_open (filebuf, O_RDONLY | OFLAGS, 0);
g_free (filebuf);
@ -327,31 +336,20 @@ get_xdir (void)
}
else
{
xdir = g_strdup_printf ("%s\\" "HexChat", out);
xdir = g_build_filename (out, "HexChat", NULL);
}
#else
xdir = g_strdup_printf ("%s/" HEXCHAT_DIR, g_get_user_config_dir ());
xdir = g_build_filename (g_get_user_config_dir (), HEXCHAT_DIR, NULL);
#endif
}
return xdir;
}
static void
check_prefs_dir (void)
int
check_config_dir (void)
{
char *dir = get_xdir ();
char *msg;
if (g_access (dir, F_OK) != 0)
{
if (g_mkdir (dir, 0700) != 0)
{
msg = g_strdup_printf ("Cannot create %s", get_xdir ());
fe_message (msg, FE_MSG_ERROR);
g_free (msg);
}
}
return g_access (get_xdir (), F_OK);
}
static char *
@ -361,7 +359,7 @@ default_file (void)
if (!dfile)
{
dfile = g_strdup_printf ("%s" G_DIR_SEPARATOR_S "hexchat.conf", get_xdir ());
dfile = g_build_filename (get_xdir (), "hexchat.conf", NULL);
}
return dfile;
}
@ -373,7 +371,6 @@ const struct prefs vars[] =
{"away_auto_unmark", P_OFFINT (hex_away_auto_unmark), TYPE_BOOL},
{"away_omit_alerts", P_OFFINT (hex_away_omit_alerts), TYPE_BOOL},
{"away_reason", P_OFFSET (hex_away_reason), TYPE_STR},
{"away_show_message", P_OFFINT (hex_away_show_message), TYPE_BOOL},
{"away_show_once", P_OFFINT (hex_away_show_once), TYPE_BOOL},
{"away_size_max", P_OFFINT (hex_away_size_max), TYPE_INT},
{"away_timeout", P_OFFINT (hex_away_timeout), TYPE_INT},
@ -426,6 +423,7 @@ const struct prefs vars[] =
{"gui_dialog_left", P_OFFINT (hex_gui_dialog_left), TYPE_INT},
{"gui_dialog_top", P_OFFINT (hex_gui_dialog_top), TYPE_INT},
{"gui_dialog_width", P_OFFINT (hex_gui_dialog_width), TYPE_INT},
{"gui_focus_omitalerts", P_OFFINT (hex_gui_focus_omitalerts), TYPE_BOOL},
{"gui_hide_menu", P_OFFINT (hex_gui_hide_menu), TYPE_BOOL},
{"gui_input_icon", P_OFFINT (hex_gui_input_icon), TYPE_BOOL},
{"gui_input_nick", P_OFFINT (hex_gui_input_nick), TYPE_BOOL},
@ -536,7 +534,9 @@ const struct prefs vars[] =
{"irc_whois_front", P_OFFINT (hex_irc_whois_front), TYPE_BOOL},
{"net_auto_reconnect", P_OFFINT (hex_net_auto_reconnect), TYPE_BOOL},
#ifndef WIN32 /* FIXME fix reconnect crashes and remove this ifdef! */
{"net_auto_reconnectonfail", P_OFFINT (hex_net_auto_reconnectonfail), TYPE_BOOL},
#endif
{"net_bind_host", P_OFFSET (hex_net_bind_host), TYPE_STR},
{"net_ping_timeout", P_OFFINT (hex_net_ping_timeout), TYPE_INT},
{"net_proxy_auth", P_OFFINT (hex_net_proxy_auth), TYPE_BOOL},
@ -554,9 +554,6 @@ const struct prefs vars[] =
{"perl_warnings", P_OFFINT (hex_perl_warnings), TYPE_BOOL},
{"sound_command", P_OFFSET (hex_sound_command), TYPE_STR},
{"sound_dir", P_OFFSET (hex_sound_dir), TYPE_STR},
{"stamp_log", P_OFFINT (hex_stamp_log), TYPE_BOOL},
{"stamp_log_format", P_OFFSET (hex_stamp_log_format), TYPE_STR},
{"stamp_text", P_OFFINT (hex_stamp_text), TYPE_BOOL},
@ -617,17 +614,69 @@ convert_with_fallback (const char *str, const char *fallback)
return utf;
}
void
load_config (void)
static int
find_language_number (const char const *lang)
{
int i;
for (i = 0; i < LANGUAGES_LENGTH; i++)
if (!strcmp (lang, languages[i]))
return i;
return -1;
}
/* Return the number of the system language if found, or english otherwise.
*/
static int
get_default_language (void)
{
const char *locale;
char *lang;
char *p;
int lang_no;
/* LC_ALL overrides LANG, so we must check it first */
locale = g_getenv ("LC_ALL");
if (!locale)
locale = g_getenv ("LANG") ? g_getenv ("LANG") : "en";
/* we might end up with something like "en_US.UTF-8". We will try to
* search for "en_US"; if it fails we search for "en".
*/
lang = g_strdup (locale);
if ((p = strchr (lang, '.')))
*p='\0';
lang_no = find_language_number (lang);
if (lang_no >= 0)
{
free (lang);
return lang_no;
}
if ((p = strchr (lang, '_')))
*p='\0';
lang_no = find_language_number (lang);
free (lang);
return lang_no >= 0 ? lang_no : find_language_number ("en");
}
void
load_default_config(void)
{
char *cfg, *sp, *buf;
const char *username, *realname;
int res, val, i;
char *sp;
#ifdef WIN32
char out[256];
#endif
check_prefs_dir ();
username = g_get_user_name ();
if (!username)
username = "root";
@ -682,7 +731,7 @@ load_config (void)
prefs.hex_input_flash_priv = 1;
prefs.hex_input_tray_hilight = 1;
prefs.hex_input_tray_priv = 1;
/* prefs.hex_irc_who_join = 1; prevent kicks and bans caused by overwhelming who'ing after reconnects */
prefs.hex_irc_who_join = 1; /* Can kick with inordinate amount of channels, required for some of our features though, TODO: add cap like away check? */
prefs.hex_irc_whois_front = 1;
prefs.hex_net_auto_reconnect = 1;
prefs.hex_net_throttle = 1;
@ -718,7 +767,7 @@ load_config (void)
prefs.hex_gui_dialog_height = 256;
prefs.hex_gui_dialog_width = 500;
prefs.hex_gui_lagometer = 1;
prefs.hex_gui_lang = 15;
prefs.hex_gui_lang = get_default_language();
prefs.hex_gui_pane_left_size = 128; /* with treeview icons we need a bit bigger space */
prefs.hex_gui_pane_right_size = 100;
prefs.hex_gui_pane_right_size_min = 80;
@ -731,8 +780,8 @@ load_config (void)
prefs.hex_gui_win_height = 400;
prefs.hex_gui_win_width = 640;
prefs.hex_input_balloon_time = 20;
prefs.hex_irc_ban_type = 2;
prefs.hex_irc_join_delay = 3;
prefs.hex_irc_ban_type = 1;
prefs.hex_irc_join_delay = 5;
prefs.hex_net_reconnect_delay = 10;
prefs.hex_notify_timeout = 15;
prefs.hex_text_max_indent = 256;
@ -755,15 +804,19 @@ load_config (void)
snprintf (prefs.hex_dcc_dir, sizeof (prefs.hex_dcc_dir), "%s\\Downloads", out);
}
#else
if (g_get_user_special_dir(G_USER_DIRECTORY_DOWNLOAD))
strcpy (prefs.hex_dcc_dir, g_get_user_special_dir(G_USER_DIRECTORY_DOWNLOAD));
if (g_get_user_special_dir (G_USER_DIRECTORY_DOWNLOAD))
{
strcpy (prefs.hex_dcc_dir, g_get_user_special_dir (G_USER_DIRECTORY_DOWNLOAD));
}
else
{
strcpy (prefs.hex_dcc_dir, g_build_filename (g_get_home_dir (), "Downloads", NULL));
}
#endif
strcpy (prefs.hex_dnsprogram, "host");
strcpy (prefs.hex_gui_ulist_doubleclick, "QUERY %s");
strcpy (prefs.hex_input_command_char, "/");
strcpy (prefs.hex_irc_logmask, "%n-%c.log");
strcpy (prefs.hex_irc_logmask, g_build_filename ("%n", "%c.log", NULL));
strcpy (prefs.hex_irc_nick1, username);
strcpy (prefs.hex_irc_nick2, username);
strcat (prefs.hex_irc_nick2, "_");
@ -774,7 +827,6 @@ load_config (void)
strcpy (prefs.hex_irc_quit_reason, prefs.hex_irc_part_reason);
strcpy (prefs.hex_irc_real_name, realname);
strcpy (prefs.hex_irc_user_name, username);
snprintf (prefs.hex_sound_dir, sizeof (prefs.hex_sound_dir), "%s" G_DIR_SEPARATOR_S "sounds", get_xdir ());
strcpy (prefs.hex_stamp_log_format, "%b %d %H:%M:%S ");
strcpy (prefs.hex_stamp_text_format, "[%H:%M:%S] ");
#ifdef WIN32
@ -798,51 +850,89 @@ load_config (void)
/* private variables */
prefs.local_ip = 0xffffffff;
sp = strchr (prefs.hex_irc_user_name, ' ');
if (sp)
sp[0] = 0; /* spaces in username would break the login */
g_free ((char *)username);
g_free ((char *)realname);
}
if (g_file_get_contents (default_file (), &cfg, NULL, NULL))
int
make_config_dirs (void)
{
char *buf;
if (g_mkdir (get_xdir (), 0700) != 0)
return -1;
buf = g_build_filename (get_xdir (), "addons", NULL);
if (g_mkdir (buf, 0700) != 0)
{
i = 0;
do
{
switch (vars[i].type)
{
case TYPE_STR:
cfg_get_str (cfg, vars[i].name, (char *) &prefs + vars[i].offset,
vars[i].len);
break;
case TYPE_BOOL:
case TYPE_INT:
val = cfg_get_int_with_result (cfg, vars[i].name, &res);
if (res)
*((int *) &prefs + vars[i].offset) = val;
break;
}
i++;
}
while (vars[i].name);
g_free (cfg);
} else
{
#ifndef WIN32
#ifndef __EMX__
/* OS/2 uses UID 0 all the time */
if (getuid () == 0)
fe_message (_("* Running IRC as root is stupid! You should\n"
" create a User Account and use that to login.\n"), FE_MSG_WARN|FE_MSG_WAIT);
#endif
#endif /* !WIN32 */
g_mkdir (prefs.hex_dcc_dir, 0700);
g_mkdir (prefs.hex_dcc_completed_dir, 0700);
buf = g_strdup_printf ("%s" G_DIR_SEPARATOR_S "addons", get_xdir ());
g_mkdir (buf, 0700);
g_free (buf);
return -1;
}
g_free (buf);
buf = g_build_filename (get_xdir (), HEXCHAT_SOUND_DIR, NULL);
if (g_mkdir (buf, 0700) != 0)
{
g_free (buf);
return -1;
}
g_free (buf);
return 0;
}
int
make_dcc_dirs (void)
{
if (g_mkdir (prefs.hex_dcc_dir, 0700) != 0)
return -1;
if (g_mkdir (prefs.hex_dcc_completed_dir, 0700) != 0)
return -1;
return 0;
}
int
load_config (void)
{
char *cfg, *sp;
int res, val, i;
g_assert(check_config_dir () == 0);
if (!g_file_get_contents (default_file (), &cfg, NULL, NULL))
return -1;
/* If the config is incomplete we have the default values loaded */
load_default_config();
i = 0;
do
{
switch (vars[i].type)
{
case TYPE_STR:
cfg_get_str (cfg, vars[i].name, (char *) &prefs + vars[i].offset,
vars[i].len);
break;
case TYPE_BOOL:
case TYPE_INT:
val = cfg_get_int_with_result (cfg, vars[i].name, &res);
if (res)
*((int *) &prefs + vars[i].offset) = val;
break;
}
i++;
}
while (vars[i].name);
g_free (cfg);
if (prefs.hex_gui_win_height < 138)
prefs.hex_gui_win_height = 138;
if (prefs.hex_gui_win_width < 106)
@ -851,6 +941,8 @@ load_config (void)
sp = strchr (prefs.hex_irc_user_name, ' ');
if (sp)
sp[0] = 0; /* spaces in username would break the login */
return 0;
}
int
@ -859,7 +951,8 @@ save_config (void)
int fh, i;
char *config, *new_config;
check_prefs_dir ();
if (check_config_dir () != 0)
make_config_dirs ();
config = default_file ();
new_config = g_strconcat (config, ".new", NULL);
@ -1179,7 +1272,7 @@ hexchat_open_file (char *file, int flags, int mode, int xof_flags)
return g_open (file, flags | OFLAGS, 0);
}
buf = g_strdup_printf ("%s" G_DIR_SEPARATOR_S "%s", get_xdir (), file);
buf = g_build_filename (get_xdir (), file, NULL);
if (xof_flags & XOF_DOMODE)
{
@ -1204,7 +1297,7 @@ hexchat_fopen_file (const char *file, const char *mode, int xof_flags)
if (xof_flags & XOF_FULLPATH)
return fopen (file, mode);
buf = g_strdup_printf ("%s" G_DIR_SEPARATOR_S "%s", get_xdir (), file);
buf = g_build_filename (get_xdir (), file, NULL);
fh = g_fopen (buf, mode);
g_free (buf);

View File

@ -24,7 +24,10 @@
#include "hexchat.h"
#define LANGUAGES_LENGTH 52
extern char *xdir;
extern const char const *languages[LANGUAGES_LENGTH];
char *cfg_get_str (char *cfg, const char *var, char *dest, int dest_len);
int cfg_get_bool (char *var);
@ -34,7 +37,11 @@ int cfg_put_int (int fh, int value, char *var);
int cfg_get_color (char *cfg, char *var, int *r, int *g, int *b);
int cfg_put_color (int fh, int r, int g, int b, char *var);
char *get_xdir (void);
void load_config (void);
int check_config_dir (void);
void load_default_config (void);
int make_config_dirs (void);
int make_dcc_dirs (void);
int load_config (void);
int save_config (void);
void list_free (GSList ** list);
void list_loadconf (char *file, GSList ** list, char *defaultconf);
@ -43,6 +50,7 @@ void list_addentry (GSList ** list, char *cmd, char *name);
int cmd_set (session *sess, char *tbuf, char *word[], char *word_eol[]);
int hexchat_open_file (char *file, int flags, int mode, int xof_flags);
FILE *hexchat_fopen_file (const char *file, const char *mode, int xof_flags);
#define XOF_DOMODE 1
#define XOF_FULLPATH 2
@ -69,4 +77,6 @@ struct prefs
#define TYPE_INT 1
#define TYPE_BOOL 2
#define HEXCHAT_SOUND_DIR "sounds"
#endif

View File

@ -65,6 +65,7 @@ static const channel_options chanopt[] =
{"text_hidejoinpart", "CONFMODE", S_F(text_hidejoinpart)},
{"text_logging", NULL, S_F(text_logging)},
{"text_scrollback", NULL, S_F(text_scrollback)},
{"text_strip", NULL, S_F(text_strip)},
};
#undef S_F
@ -127,6 +128,7 @@ chanopt_command (session *sess, char *tbuf, char *word[], char *word_eol[])
if (newval != -1) /* set new value */
{
*(guint8 *)G_STRUCT_MEMBER_P(sess, chanopt[i].offset) = newval;
chanopt_changed = TRUE;
}
if (!quiet) /* print value */
@ -159,21 +161,10 @@ chanopt_command (session *sess, char *tbuf, char *word[], char *word_eol[])
gboolean
chanopt_is_set (unsigned int global, guint8 per_chan_setting)
{
if (per_chan_setting == SET_DEFAULT)
if (per_chan_setting == SET_ON || per_chan_setting == SET_OFF)
return per_chan_setting;
else
return global;
return per_chan_setting;
}
/* additive version */
gboolean
chanopt_is_set_a (unsigned int global, guint8 per_chan_setting)
{
if (per_chan_setting == SET_DEFAULT)
return global;
return per_chan_setting || global;
}
/* === below is LOADING/SAVING stuff only === */
@ -190,6 +181,7 @@ typedef struct
guint8 text_hidejoinpart;
guint8 text_logging;
guint8 text_scrollback;
guint8 text_strip;
char *network;
char *channel;
@ -445,11 +437,9 @@ cont:
close (fh);
/* we're quiting, no need to free */
/*g_slist_free (chanopt_list);
g_slist_free (chanopt_list);
chanopt_list = NULL;
chanopt_open = FALSE;
chanopt_changed = FALSE;*/
chanopt_changed = FALSE;
}

Some files were not shown because too many files have changed in this diff Show More