001 /*
002 * To change this template, choose Tools | Templates
003 * and open the template in the editor.
004 */
005
006 package org.bridj.cpp.com.shell;
007 import java.util.Collections;
008 import java.util.Iterator;
009 import org.bridj.ValuedEnum;
010 import org.bridj.FlagSet;
011 import org.bridj.IntValuedEnum;
012 import org.bridj.Pointer;
013 import org.bridj.StructObject;
014 import org.bridj.ann.Array;
015 import org.bridj.ann.Field;
016 import org.bridj.ann.Virtual;
017 import org.bridj.cpp.com.CLSID;
018 import org.bridj.cpp.com.IID;
019
020 @IID("EA1AFB91-9E28-4B86-90E9-9E9F8A5EEFAF")
021 @CLSID("56FDF344-FD6D-11d0-958A-006097C9A090")
022 public class ITaskbarList3 extends ITaskbarList2 {
023 public enum THUMBBUTTONMASK implements IntValuedEnum<THUMBBUTTONMASK> {
024 THB_BITMAP(0x00000001),
025 THB_ICON(0x00000002),
026 THB_TOOLTIP(0x00000004),
027 THB_FLAGS(0x00000008);
028 THUMBBUTTONMASK(int value) {
029 this.value = value;
030 }
031 public final int value;
032 //@Override
033 public long value() {
034 return value;
035 }
036 public Iterator<THUMBBUTTONMASK> iterator() {
037 return Collections.singleton(this).iterator();
038 }
039 public static ValuedEnum<THUMBBUTTONMASK> fromValue(long value) {
040 return FlagSet.fromValue(value, values());
041 }
042 }
043 /// http://msdn.microsoft.com/en-us/library/dd562321(VS.85).aspx
044 public enum THUMBBUTTONFLAGS implements IntValuedEnum<THUMBBUTTONFLAGS> {
045 THBF_ENABLED(0x00000000),
046 THBF_DISABLED(0x00000001),
047 THBF_DISMISSONCLICK(0x00000002),
048 THBF_NOBACKGROUND(0x00000004),
049 THBF_HIDDEN(0x00000008),
050 THBF_NONINTERACTIVE(0x00000010);
051 THUMBBUTTONFLAGS(int value) {
052 this.value = value;
053 }
054 final int value;
055 //@Override
056 public long value() {
057 return value;
058 }
059 public Iterator<THUMBBUTTONFLAGS> iterator() {
060 return Collections.singleton(this).iterator();
061 }
062 public static ValuedEnum<THUMBBUTTONFLAGS> fromValue(long value) {
063 return FlagSet.fromValue(value, values());
064 }
065 }
066 public static class THUMBBUTTON extends StructObject {
067 @Field(0)
068 public native ValuedEnum<THUMBBUTTONMASK> dwMask();
069 public native void dwMask(ValuedEnum<THUMBBUTTONMASK> dwMask);
070 @Field(1)
071 public native int iId();
072 public native void iId(int iId);
073 @Field(2)
074 public native int iBitmap();
075 public native void iBitmap(int iBitmap);
076 @Field(3)
077 public native Pointer<?> hIcon();
078 public native void hIcon(Pointer<?> hIcon);
079 @Field(4) @Array(260)
080 public native Pointer<Character> szTip();
081 public native void szTip(Pointer<Character> szTip);
082 @Field(5)
083 public native ValuedEnum<THUMBBUTTONFLAGS> dwFlags();
084 public native void dwFlags(ValuedEnum<THUMBBUTTONFLAGS> dwFlags);
085 }
086 @Virtual(0) public native int SetProgressValue(Pointer<Integer> hWnd, long Completed, long Total);
087
088 public enum TbpFlag implements IntValuedEnum<TbpFlag> {
089 TBPF_NOPROGRESS(0),
090 TBPF_INDETERMINATE(1),
091 TBPF_NORMAL(2),
092 TBPF_ERROR(4),
093 TBPF_PAUSED(8);
094
095 TbpFlag(int value) {
096 this.value = value;
097 }
098 public final int value;
099 //@Override/
100 public long value() {
101 return value;
102 }
103 public Iterator<TbpFlag> iterator() {
104 return Collections.singleton(this).iterator();
105 }
106 public static ValuedEnum<TbpFlag> fromValue(long value) {
107 return FlagSet.fromValue(value, values());
108 }
109 }
110
111
112 //@Virtual(1) public native int SetProgressState(Pointer<Integer> hWnd, ValuedEnum<TbpFlag> Flags);
113 @Virtual(1) public native int SetProgressState(Pointer<Integer> hWnd, ValuedEnum<TbpFlag> Flags);
114
115 @Virtual(2) public native void RegisterTab(Pointer<Integer> hWndTab, Pointer<Integer> hWndMDI);
116 @Virtual(3) public native void UnregisterTab(Pointer<Integer> hWndTab);
117 @Virtual(4) public native void SetTabOrder(Pointer<Integer> hWndTab, Pointer<Integer> hwndInsertBefore);
118 @Virtual(5) public native void SetTabActive(Pointer<Integer> hWndTab, Pointer<Integer> hWndMDI, int dwReserved);
119 @Virtual(6) public native void ThumbBarAddButtons(Pointer<Integer> hWnd, int cButtons, Pointer<THUMBBUTTON> pButtons);
120 @Virtual(7) public native void ThumbBarUpdateButtons(Pointer<Integer> hWnd, int cButtons, Pointer<THUMBBUTTON> pButtons);
121 @Virtual(8) public native void ThumbBarSetImageList(Pointer<Integer> hWnd, Pointer<Integer> himl);
122 @Virtual(9) public native void SetOverlayIcon(Pointer<Integer> hWnd, Pointer<?> hIcon, Pointer<Character> pszDescription);
123 @Virtual(10) public native void SetThumbnailTooltip(Pointer<Integer> hWnd, Pointer<Character> pszTip);
124
125 public class RECT {
126
127 }
128 @Virtual(11) public native void SetThumbnailClip(Pointer<Integer> hWnd, Pointer<RECT> prcClip);
129 }