| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190 |
- // Imapi2Interop.cs
- //
- // by Eric Haddan
- //
- // Parts taken from Microsoft's Interop.cs
- //
- using System;
- using System.Collections;
- using System.Diagnostics;
- using System.IO;
- using System.Runtime.CompilerServices;
- using System.Runtime.InteropServices;
- using System.Runtime.InteropServices.ComTypes;
- using System.Threading;
- namespace IMAPI2.Interop
- {
- #region IMAPI2 Enums
- public enum EmulationType
- {
- EmulationNone,
- Emulation12MFloppy,
- Emulation144MFloppy,
- Emulation288MFloppy,
- EmulationHardDisk
- }
- [Flags]
- public enum FsiFileSystems
- {
- FsiFileSystemNone = 0,
- FsiFileSystemISO9660 = 1,
- FsiFileSystemJoliet = 2,
- FsiFileSystemUDF = 4,
- FsiFileSystemUnknown = 0x40000000
- }
- public enum FsiItemType
- {
- FsiItemNotFound,
- FsiItemDirectory,
- FsiItemFile
- }
-
- public enum IMAPI_BURN_VERIFICATION_LEVEL
- {
- IMAPI_BURN_VERIFICATION_NONE,
- IMAPI_BURN_VERIFICATION_QUICK,
- IMAPI_BURN_VERIFICATION_FULL
- }
- public enum IMAPI_CD_SECTOR_TYPE
- {
- IMAPI_CD_SECTOR_AUDIO,
- IMAPI_CD_SECTOR_MODE_ZERO,
- IMAPI_CD_SECTOR_MODE1,
- IMAPI_CD_SECTOR_MODE2FORM0,
- IMAPI_CD_SECTOR_MODE2FORM1,
- IMAPI_CD_SECTOR_MODE2FORM2,
- IMAPI_CD_SECTOR_MODE1RAW,
- IMAPI_CD_SECTOR_MODE2FORM0RAW,
- IMAPI_CD_SECTOR_MODE2FORM1RAW,
- IMAPI_CD_SECTOR_MODE2FORM2RAW
- }
- public enum IMAPI_CD_TRACK_DIGITAL_COPY_SETTING
- {
- IMAPI_CD_TRACK_DIGITAL_COPY_PERMITTED,
- IMAPI_CD_TRACK_DIGITAL_COPY_PROHIBITED,
- IMAPI_CD_TRACK_DIGITAL_COPY_SCMS
- }
- public enum IMAPI_FEATURE_PAGE_TYPE
- {
- IMAPI_FEATURE_PAGE_TYPE_PROFILE_LIST = 0,
- IMAPI_FEATURE_PAGE_TYPE_CORE = 1,
- IMAPI_FEATURE_PAGE_TYPE_MORPHING = 2,
- IMAPI_FEATURE_PAGE_TYPE_REMOVABLE_MEDIUM = 3,
- IMAPI_FEATURE_PAGE_TYPE_WRITE_PROTECT = 4,
- IMAPI_FEATURE_PAGE_TYPE_RANDOMLY_READABLE = 0x10,
- IMAPI_FEATURE_PAGE_TYPE_CD_MULTIREAD = 0x1d,
- IMAPI_FEATURE_PAGE_TYPE_CD_READ = 0x1e,
- IMAPI_FEATURE_PAGE_TYPE_DVD_READ = 0x1f,
- IMAPI_FEATURE_PAGE_TYPE_RANDOMLY_WRITABLE = 0x20,
- IMAPI_FEATURE_PAGE_TYPE_INCREMENTAL_STREAMING_WRITABLE = 0x21,
- IMAPI_FEATURE_PAGE_TYPE_SECTOR_ERASABLE = 0x22,
- IMAPI_FEATURE_PAGE_TYPE_FORMATTABLE = 0x23,
- IMAPI_FEATURE_PAGE_TYPE_HARDWARE_DEFECT_MANAGEMENT = 0x24,
- IMAPI_FEATURE_PAGE_TYPE_WRITE_ONCE = 0x25,
- IMAPI_FEATURE_PAGE_TYPE_RESTRICTED_OVERWRITE = 0x26,
- IMAPI_FEATURE_PAGE_TYPE_CDRW_CAV_WRITE = 0x27,
- IMAPI_FEATURE_PAGE_TYPE_MRW = 0x28,
- IMAPI_FEATURE_PAGE_TYPE_ENHANCED_DEFECT_REPORTING = 0x29,
- IMAPI_FEATURE_PAGE_TYPE_DVD_PLUS_RW = 0x2a,
- IMAPI_FEATURE_PAGE_TYPE_DVD_PLUS_R = 0x2b,
- IMAPI_FEATURE_PAGE_TYPE_RIGID_RESTRICTED_OVERWRITE = 0x2c,
- IMAPI_FEATURE_PAGE_TYPE_CD_TRACK_AT_ONCE = 0x2d,
- IMAPI_FEATURE_PAGE_TYPE_CD_MASTERING = 0x2e,
- IMAPI_FEATURE_PAGE_TYPE_DVD_DASH_WRITE = 0x2f,
- IMAPI_FEATURE_PAGE_TYPE_DOUBLE_DENSITY_CD_READ = 0x30,
- IMAPI_FEATURE_PAGE_TYPE_DOUBLE_DENSITY_CD_R_WRITE = 0x31,
- IMAPI_FEATURE_PAGE_TYPE_DOUBLE_DENSITY_CD_RW_WRITE = 0x32,
- IMAPI_FEATURE_PAGE_TYPE_LAYER_JUMP_RECORDING = 0x33,
- IMAPI_FEATURE_PAGE_TYPE_CD_RW_MEDIA_WRITE_SUPPORT = 0x37,
- IMAPI_FEATURE_PAGE_TYPE_BD_PSEUDO_OVERWRITE = 0x38,
- IMAPI_FEATURE_PAGE_TYPE_DVD_PLUS_R_DUAL_LAYER = 0x3b,
- IMAPI_FEATURE_PAGE_TYPE_BD_READ = 0x40,
- IMAPI_FEATURE_PAGE_TYPE_BD_WRITE = 0x41,
- IMAPI_FEATURE_PAGE_TYPE_HD_DVD_READ = 0x50,
- IMAPI_FEATURE_PAGE_TYPE_HD_DVD_WRITE = 0x51,
- IMAPI_FEATURE_PAGE_TYPE_POWER_MANAGEMENT = 0x100,
- IMAPI_FEATURE_PAGE_TYPE_SMART = 0x101,
- IMAPI_FEATURE_PAGE_TYPE_EMBEDDED_CHANGER = 0x102,
- IMAPI_FEATURE_PAGE_TYPE_CD_ANALOG_PLAY = 0x103,
- IMAPI_FEATURE_PAGE_TYPE_MICROCODE_UPDATE = 0x104,
- IMAPI_FEATURE_PAGE_TYPE_TIMEOUT = 0x105,
- IMAPI_FEATURE_PAGE_TYPE_DVD_CSS = 0x106,
- IMAPI_FEATURE_PAGE_TYPE_REAL_TIME_STREAMING = 0x107,
- IMAPI_FEATURE_PAGE_TYPE_LOGICAL_UNIT_SERIAL_NUMBER = 0x108,
- IMAPI_FEATURE_PAGE_TYPE_MEDIA_SERIAL_NUMBER = 0x109,
- IMAPI_FEATURE_PAGE_TYPE_DISC_CONTROL_BLOCKS = 0x10a,
- IMAPI_FEATURE_PAGE_TYPE_DVD_CPRM = 0x10b,
- IMAPI_FEATURE_PAGE_TYPE_FIRMWARE_INFORMATION = 0x10c,
- IMAPI_FEATURE_PAGE_TYPE_AACS = 0x10d,
- IMAPI_FEATURE_PAGE_TYPE_VCPS = 0x110
- }
- public enum IMAPI_FORMAT2_DATA_MEDIA_STATE
- {
- [TypeLibVar((short)0x40)]
- IMAPI_FORMAT2_DATA_MEDIA_STATE_UNKNOWN = 0,
- IMAPI_FORMAT2_DATA_MEDIA_STATE_OVERWRITE_ONLY = 1,
- IMAPI_FORMAT2_DATA_MEDIA_STATE_RANDOMLY_WRITABLE = 1,
- IMAPI_FORMAT2_DATA_MEDIA_STATE_BLANK = 2,
- IMAPI_FORMAT2_DATA_MEDIA_STATE_APPENDABLE = 4,
- IMAPI_FORMAT2_DATA_MEDIA_STATE_FINAL_SESSION = 8,
- IMAPI_FORMAT2_DATA_MEDIA_STATE_INFORMATIONAL_MASK = 15,
- IMAPI_FORMAT2_DATA_MEDIA_STATE_DAMAGED = 0x400,
- IMAPI_FORMAT2_DATA_MEDIA_STATE_ERASE_REQUIRED = 0x800,
- IMAPI_FORMAT2_DATA_MEDIA_STATE_NON_EMPTY_SESSION = 0x1000,
- IMAPI_FORMAT2_DATA_MEDIA_STATE_WRITE_PROTECTED = 0x2000,
- IMAPI_FORMAT2_DATA_MEDIA_STATE_FINALIZED = 0x4000,
- IMAPI_FORMAT2_DATA_MEDIA_STATE_UNSUPPORTED_MEDIA = 0x8000,
- IMAPI_FORMAT2_DATA_MEDIA_STATE_UNSUPPORTED_MASK = 0xfc00
- }
- public enum IMAPI_FORMAT2_DATA_WRITE_ACTION
- {
- IMAPI_FORMAT2_DATA_WRITE_ACTION_VALIDATING_MEDIA,
- IMAPI_FORMAT2_DATA_WRITE_ACTION_FORMATTING_MEDIA,
- IMAPI_FORMAT2_DATA_WRITE_ACTION_INITIALIZING_HARDWARE,
- IMAPI_FORMAT2_DATA_WRITE_ACTION_CALIBRATING_POWER,
- IMAPI_FORMAT2_DATA_WRITE_ACTION_WRITING_DATA,
- IMAPI_FORMAT2_DATA_WRITE_ACTION_FINALIZATION,
- IMAPI_FORMAT2_DATA_WRITE_ACTION_COMPLETED,
- IMAPI_FORMAT2_DATA_WRITE_ACTION_VERIFYING
- }
- public enum IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE
- {
- IMAPI_FORMAT2_RAW_CD_SUBCODE_PQ_ONLY = 1,
- IMAPI_FORMAT2_RAW_CD_SUBCODE_IS_COOKED = 2,
- IMAPI_FORMAT2_RAW_CD_SUBCODE_IS_RAW = 3
- }
- public enum IMAPI_FORMAT2_RAW_CD_WRITE_ACTION
- {
- [TypeLibVar((short) 0x40)]
- IMAPI_FORMAT2_RAW_CD_WRITE_ACTION_UNKNOWN = 0,
- IMAPI_FORMAT2_RAW_CD_WRITE_ACTION_PREPARING = 1,
- IMAPI_FORMAT2_RAW_CD_WRITE_ACTION_WRITING = 2,
- IMAPI_FORMAT2_RAW_CD_WRITE_ACTION_FINISHING = 3
- }
- public enum IMAPI_FORMAT2_TAO_WRITE_ACTION
- {
- [TypeLibVar((short) 0x40)]
- IMAPI_FORMAT2_TAO_WRITE_ACTION_UNKNOWN = 0,
- IMAPI_FORMAT2_TAO_WRITE_ACTION_PREPARING = 1,
- IMAPI_FORMAT2_TAO_WRITE_ACTION_WRITING = 2,
- IMAPI_FORMAT2_TAO_WRITE_ACTION_FINISHING = 3,
- IMAPI_FORMAT2_TAO_WRITE_ACTION_VERIFYING = 4
- }
- public enum IMAPI_MEDIA_PHYSICAL_TYPE
- {
- IMAPI_MEDIA_TYPE_UNKNOWN = 0,
- IMAPI_MEDIA_TYPE_CDROM = 1,
- IMAPI_MEDIA_TYPE_CDR = 2,
- IMAPI_MEDIA_TYPE_CDRW = 3,
- IMAPI_MEDIA_TYPE_DVDROM = 4,
- IMAPI_MEDIA_TYPE_DVDRAM = 5,
- IMAPI_MEDIA_TYPE_DVDPLUSR = 6,
- IMAPI_MEDIA_TYPE_DVDPLUSRW = 7,
- IMAPI_MEDIA_TYPE_DVDPLUSR_DUALLAYER = 8,
- IMAPI_MEDIA_TYPE_DVDDASHR = 9,
- IMAPI_MEDIA_TYPE_DVDDASHRW = 10,
- IMAPI_MEDIA_TYPE_DVDDASHR_DUALLAYER = 11,
- IMAPI_MEDIA_TYPE_DISK = 12,
- IMAPI_MEDIA_TYPE_DVDPLUSRW_DUALLAYER = 13,
- IMAPI_MEDIA_TYPE_HDDVDROM = 14,
- IMAPI_MEDIA_TYPE_HDDVDR = 15,
- IMAPI_MEDIA_TYPE_HDDVDRAM = 0x10,
- IMAPI_MEDIA_TYPE_BDROM = 0x11,
- IMAPI_MEDIA_TYPE_BDR = 0x12,
- IMAPI_MEDIA_TYPE_BDRE = 0x13,
- IMAPI_MEDIA_TYPE_MAX = 0x13
- }
- public enum IMAPI_MEDIA_WRITE_PROTECT_STATE
- {
- IMAPI_WRITEPROTECTED_UNTIL_POWERDOWN = 1,
- IMAPI_WRITEPROTECTED_BY_CARTRIDGE = 2,
- IMAPI_WRITEPROTECTED_BY_MEDIA_SPECIFIC_REASON = 4,
- IMAPI_WRITEPROTECTED_BY_SOFTWARE_WRITE_PROTECT = 8,
- IMAPI_WRITEPROTECTED_BY_DISC_CONTROL_BLOCK = 0x10,
- IMAPI_WRITEPROTECTED_READ_ONLY_MEDIA = 0x4000
- }
- public enum IMAPI_MODE_PAGE_REQUEST_TYPE
- {
- IMAPI_MODE_PAGE_REQUEST_TYPE_CURRENT_VALUES,
- IMAPI_MODE_PAGE_REQUEST_TYPE_CHANGEABLE_VALUES,
- IMAPI_MODE_PAGE_REQUEST_TYPE_DEFAULT_VALUES,
- IMAPI_MODE_PAGE_REQUEST_TYPE_SAVED_VALUES
- }
- public enum IMAPI_MODE_PAGE_TYPE
- {
- IMAPI_MODE_PAGE_TYPE_READ_WRITE_ERROR_RECOVERY = 1,
- IMAPI_MODE_PAGE_TYPE_MRW = 3,
- IMAPI_MODE_PAGE_TYPE_WRITE_PARAMETERS = 5,
- IMAPI_MODE_PAGE_TYPE_CACHING = 8,
- IMAPI_MODE_PAGE_TYPE_POWER_CONDITION = 0x1a,
- IMAPI_MODE_PAGE_TYPE_TIMEOUT_AND_PROTECT = 0x1d,
- IMAPI_MODE_PAGE_TYPE_INFORMATIONAL_EXCEPTIONS = 0x1c,
- IMAPI_MODE_PAGE_TYPE_LEGACY_CAPABILITIES = 0x2a
- }
- public enum IMAPI_PROFILE_TYPE
- {
- IMAPI_PROFILE_TYPE_INVALID = 0,
- IMAPI_PROFILE_TYPE_NON_REMOVABLE_DISK = 1,
- IMAPI_PROFILE_TYPE_REMOVABLE_DISK = 2,
- IMAPI_PROFILE_TYPE_MO_ERASABLE = 3,
- IMAPI_PROFILE_TYPE_MO_WRITE_ONCE = 4,
- IMAPI_PROFILE_TYPE_AS_MO = 5,
- IMAPI_PROFILE_TYPE_CDROM = 8,
- IMAPI_PROFILE_TYPE_CD_RECORDABLE = 9,
- IMAPI_PROFILE_TYPE_CD_REWRITABLE = 10,
- IMAPI_PROFILE_TYPE_DVDROM = 0x10,
- IMAPI_PROFILE_TYPE_DVD_DASH_RECORDABLE = 0x11,
- IMAPI_PROFILE_TYPE_DVD_RAM = 0x12,
- IMAPI_PROFILE_TYPE_DVD_DASH_REWRITABLE = 0x13,
- IMAPI_PROFILE_TYPE_DVD_DASH_RW_SEQUENTIAL = 0x14,
- IMAPI_PROFILE_TYPE_DVD_DASH_R_DUAL_SEQUENTIAL = 0x15,
- IMAPI_PROFILE_TYPE_DVD_DASH_R_DUAL_LAYER_JUMP = 0x16,
- IMAPI_PROFILE_TYPE_DVD_PLUS_RW = 0x1a,
- IMAPI_PROFILE_TYPE_DVD_PLUS_R = 0x1b,
- IMAPI_PROFILE_TYPE_DDCDROM = 0x20,
- IMAPI_PROFILE_TYPE_DDCD_RECORDABLE = 0x21,
- IMAPI_PROFILE_TYPE_DDCD_REWRITABLE = 0x22,
- IMAPI_PROFILE_TYPE_DVD_PLUS_RW_DUAL = 0x2a,
- IMAPI_PROFILE_TYPE_DVD_PLUS_R_DUAL = 0x2b,
- IMAPI_PROFILE_TYPE_BD_ROM = 0x40,
- IMAPI_PROFILE_TYPE_BD_R_SEQUENTIAL = 0x41,
- IMAPI_PROFILE_TYPE_BD_R_RANDOM_RECORDING = 0x42,
- IMAPI_PROFILE_TYPE_BD_REWRITABLE = 0x43,
- IMAPI_PROFILE_TYPE_HD_DVD_ROM = 0x50,
- IMAPI_PROFILE_TYPE_HD_DVD_RECORDABLE = 0x51,
- IMAPI_PROFILE_TYPE_HD_DVD_RAM = 0x52,
- IMAPI_PROFILE_TYPE_NON_STANDARD = 0xffff
- }
- public enum IMAPI_READ_TRACK_ADDRESS_TYPE
- {
- IMAPI_READ_TRACK_ADDRESS_TYPE_LBA,
- IMAPI_READ_TRACK_ADDRESS_TYPE_TRACK,
- IMAPI_READ_TRACK_ADDRESS_TYPE_SESSION
- }
- public enum PlatformId
- {
- PlatformX86 = 0,
- PlatformPowerPC = 1,
- PlatformMac = 2,
- PlatformEFI = 0xef
- }
- #endregion
- #region IMAPI2 Structures
- [StructLayout(LayoutKind.Sequential, Pack=4)]
- public struct _FILETIME
- {
- public uint dwLowDateTime;
- public uint dwHighDateTime;
- }
- [StructLayout(LayoutKind.Sequential, Pack=8)]
- public struct _LARGE_INTEGER
- {
- public long QuadPart;
- }
- [StructLayout(LayoutKind.Sequential, Pack=8)]
- public struct _ULARGE_INTEGER
- {
- public ulong QuadPart;
- }
- [StructLayout(LayoutKind.Sequential, Pack=4)]
- public struct tagCONNECTDATA
- {
- [MarshalAs(UnmanagedType.IUnknown)]
- public object pUnk;
- public uint dwCookie;
- }
- [StructLayout(LayoutKind.Sequential, Pack=8)]
- public struct tagSTATSTG
- {
- [MarshalAs(UnmanagedType.LPWStr)]
- public string pwcsName;
- public uint type;
- public _ULARGE_INTEGER cbSize;
- public _FILETIME mtime;
- public _FILETIME ctime;
- public _FILETIME atime;
- public uint grfMode;
- public uint grfLocksSupported;
- public Guid clsid;
- public uint grfStateBits;
- public uint reserved;
- }
- #endregion
- #region DDiscFormat2DataEvents
- /// <summary>
- /// Data Writer
- /// </summary>
- [ComImport]
- [Guid("2735413C-7F64-5B0F-8F00-5D77AFBE261E")]
- [TypeLibType(TypeLibTypeFlags.FNonExtensible|TypeLibTypeFlags.FOleAutomation|TypeLibTypeFlags.FDispatchable)]
- public interface DDiscFormat2DataEvents
- {
- // Update to current progress
- [DispId(0x200)] // DISPID_DDISCFORMAT2DATAEVENTS_UPDATE
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
- void Update([In, MarshalAs(UnmanagedType.IDispatch)] object sender, [In, MarshalAs(UnmanagedType.IDispatch)] object progress);
- }
- [ComVisible(false)]
- [ComEventInterface(typeof(DDiscFormat2DataEvents),typeof(DiscFormat2Data_EventProvider))]
- [TypeLibType(TypeLibTypeFlags.FHidden)]
- public interface DiscFormat2Data_Event
- {
- // Events
- event DiscFormat2Data_EventHandler Update;
- }
- [ClassInterface(ClassInterfaceType.None)]
- internal sealed class DiscFormat2Data_EventProvider : DiscFormat2Data_Event, IDisposable
- {
- // Fields
- private Hashtable m_aEventSinkHelpers = new Hashtable();
- private IConnectionPoint m_connectionPoint = null;
- // Methods
- public DiscFormat2Data_EventProvider(object pointContainer)
- {
- lock (this)
- {
- Guid eventsGuid = typeof(DDiscFormat2DataEvents).GUID;
- IConnectionPointContainer connectionPointContainer = pointContainer as IConnectionPointContainer;
- connectionPointContainer.FindConnectionPoint(ref eventsGuid, out m_connectionPoint);
- }
- }
- public event DiscFormat2Data_EventHandler Update
- {
- add
- {
- lock (this)
- {
- DiscFormat2Data_SinkHelper helper =
- new DiscFormat2Data_SinkHelper(value);
- int cookie;
- m_connectionPoint.Advise(helper, out cookie);
- helper.Cookie = cookie;
- m_aEventSinkHelpers.Add(helper.UpdateDelegate, helper);
- }
- }
- remove
- {
- lock (this)
- {
- DiscFormat2Data_SinkHelper helper =
- m_aEventSinkHelpers[value] as DiscFormat2Data_SinkHelper;
- if (helper != null)
- {
- m_connectionPoint.Unadvise(helper.Cookie);
- m_aEventSinkHelpers.Remove(helper.UpdateDelegate);
- }
- }
- }
- }
- ~DiscFormat2Data_EventProvider()
- {
- Cleanup();
- }
- public void Dispose()
- {
- Cleanup();
- GC.SuppressFinalize(this);
- }
- private void Cleanup()
- {
- Monitor.Enter(this);
- try
- {
- foreach (DiscFormat2Data_SinkHelper helper in m_aEventSinkHelpers.Values)
- {
- m_connectionPoint.Unadvise(helper.Cookie);
- }
- m_aEventSinkHelpers.Clear();
- Marshal.ReleaseComObject(m_connectionPoint);
- }
- catch (SynchronizationLockException)
- {
- return;
- }
- finally
- {
- Monitor.Exit(this);
- }
- }
- }
- [ClassInterface(ClassInterfaceType.None)]
- [TypeLibType(TypeLibTypeFlags.FHidden)]
- public sealed class DiscFormat2Data_SinkHelper : DDiscFormat2DataEvents
- {
- // Fields
- private int m_dwCookie;
- private DiscFormat2Data_EventHandler m_UpdateDelegate;
- // Methods
- internal DiscFormat2Data_SinkHelper(DiscFormat2Data_EventHandler eventHandler)
- {
- if (eventHandler == null)
- throw new ArgumentNullException("Delegate (callback function) cannot be null");
- m_dwCookie = 0;
- m_UpdateDelegate = eventHandler;
- }
- public void Update(object sender, object args)
- {
- m_UpdateDelegate(sender, args);
- }
- public int Cookie
- {
- get
- {
- return m_dwCookie;
- }
- set
- {
- m_dwCookie = value;
- }
- }
- public DiscFormat2Data_EventHandler UpdateDelegate
- {
- get
- {
- return m_UpdateDelegate;
- }
- set
- {
- m_UpdateDelegate = value;
- }
- }
- }
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- public delegate void DiscFormat2Data_EventHandler([In, MarshalAs(UnmanagedType.IDispatch)] object sender, [In, MarshalAs(UnmanagedType.IDispatch)] object progress);
- #endregion // DDiscFormat2DataEvents
- #region DDiscFormat2EraseEvents
- /// <summary>
- /// Provides notification of media erase progress.
- /// </summary>
- [ComImport]
- [TypeLibType(TypeLibTypeFlags.FNonExtensible|TypeLibTypeFlags.FOleAutomation|TypeLibTypeFlags.FDispatchable)]
- [Guid("2735413A-7F64-5B0F-8F00-5D77AFBE261E")]
- public interface DDiscFormat2EraseEvents
- {
- // Update to current progress
- [DispId(0x200)] // DISPID_IDISCFORMAT2ERASEEVENTS_UPDATE
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
- void Update([In, MarshalAs(UnmanagedType.IDispatch)] object sender, [In] int elapsedSeconds, [In] int estimatedTotalSeconds);
- }
- [TypeLibType(TypeLibTypeFlags.FHidden)]
- [ComVisible(false)]
- [ComEventInterface(typeof(DDiscFormat2EraseEvents), typeof(DiscFormat2Erase_EventProvider))]
- public interface DiscFormat2Erase_Event
- {
- // Events
- event DiscFormat2Erase_EventHandler Update;
- }
- [ClassInterface(ClassInterfaceType.None)]
- internal sealed class DiscFormat2Erase_EventProvider : DiscFormat2Erase_Event, IDisposable
- {
- // Fields
- private Hashtable m_aEventSinkHelpers = new Hashtable();
- private IConnectionPoint m_connectionPoint = null;
- // Methods
- public DiscFormat2Erase_EventProvider(object pointContainer)
- {
- lock (this)
- {
- Guid eventsGuid = typeof(DDiscFormat2EraseEvents).GUID;
- IConnectionPointContainer connectionPointContainer = pointContainer as IConnectionPointContainer;
- connectionPointContainer.FindConnectionPoint(ref eventsGuid, out m_connectionPoint);
- }
- }
- public event DiscFormat2Erase_EventHandler Update
- {
- add
- {
- lock (this)
- {
- DiscFormat2Erase_SinkHelper helper =
- new DiscFormat2Erase_SinkHelper(value);
- int cookie = -1;
- m_connectionPoint.Advise(helper, out cookie);
- helper.Cookie = cookie;
- m_aEventSinkHelpers.Add(helper.UpdateDelegate, helper);
- }
- }
- remove
- {
- lock (this)
- {
- DiscFormat2Erase_SinkHelper helper =
- m_aEventSinkHelpers[value] as DiscFormat2Erase_SinkHelper;
- if (helper != null)
- {
- m_connectionPoint.Unadvise(helper.Cookie);
- m_aEventSinkHelpers.Remove(helper.UpdateDelegate);
- }
- }
- }
- }
- ~DiscFormat2Erase_EventProvider()
- {
- Cleanup();
- }
- public void Dispose()
- {
- Cleanup();
- GC.SuppressFinalize(this);
- }
- private void Cleanup()
- {
- Monitor.Enter(this);
- try
- {
- foreach (DiscFormat2Erase_SinkHelper helper in m_aEventSinkHelpers.Values)
- {
- m_connectionPoint.Unadvise(helper.Cookie);
- }
- m_aEventSinkHelpers.Clear();
- Marshal.ReleaseComObject(m_connectionPoint);
- }
- catch (SynchronizationLockException)
- {
- return;
- }
- finally
- {
- Monitor.Exit(this);
- }
- }
- }
- [TypeLibType(TypeLibTypeFlags.FHidden)]
- [ClassInterface(ClassInterfaceType.None)]
- public sealed class DiscFormat2Erase_SinkHelper : DDiscFormat2EraseEvents
- {
- // Fields
- private int m_dwCookie;
- private DiscFormat2Erase_EventHandler m_UpdateDelegate;
- public DiscFormat2Erase_SinkHelper(DiscFormat2Erase_EventHandler eventHandler)
- {
- if (eventHandler == null)
- throw new ArgumentNullException("Delegate (callback function) cannot be null");
- m_dwCookie = 0;
- m_UpdateDelegate = eventHandler;
- }
- public void Update(object sender, int elapsedSeconds, int estimatedTotalSeconds)
- {
- m_UpdateDelegate(sender, elapsedSeconds, estimatedTotalSeconds);
- }
- public int Cookie
- {
- get
- {
- return m_dwCookie;
- }
- set
- {
- m_dwCookie = value;
- }
- }
- public DiscFormat2Erase_EventHandler UpdateDelegate
- {
- get
- {
- return m_UpdateDelegate;
- }
- set
- {
- m_UpdateDelegate = value;
- }
- }
- }
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- public delegate void DiscFormat2Erase_EventHandler([In, MarshalAs(UnmanagedType.IDispatch)]object sender, [In] int elapsedSeconds, [In] int estimatedTotalSeconds);
- #endregion // DDiscFormat2EraseEvents
- #region DDiscFormat2RawCDEvents
- /// <summary>
- /// CD Disc-At-Once RAW Writer Events
- /// </summary>
- [ComImport]
- [TypeLibType(TypeLibTypeFlags.FNonExtensible|TypeLibTypeFlags.FOleAutomation|TypeLibTypeFlags.FDispatchable)]
- [Guid("27354142-7F64-5B0F-8F00-5D77AFBE261E")]
- public interface DDiscFormat2RawCDEvents
- {
- // Update to current progress
- [DispId(0x200)] // DISPID_DDISCFORMAT2RAWCDEVENTS_UPDATE
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
- void Update([In, MarshalAs(UnmanagedType.IDispatch)] object sender, [In, MarshalAs(UnmanagedType.IDispatch)] object progress);
- }
- [ComEventInterface(typeof(DDiscFormat2RawCDEvents), typeof(DiscFormat2RawCD_EventProvider))]
- [TypeLibType(TypeLibTypeFlags.FHidden)]
- [ComVisible(false)]
- public interface DiscFormat2RawCD_Event
- {
- // Events
- event DiscFormat2RawCD_EventHandler Update;
- }
- [ClassInterface(ClassInterfaceType.None)]
- internal sealed class DiscFormat2RawCD_EventProvider : DiscFormat2RawCD_Event, IDisposable
- {
- // Fields
- private Hashtable m_aEventSinkHelpers = new Hashtable();
- private IConnectionPoint m_connectionPoint = null;
- // Methods
- public DiscFormat2RawCD_EventProvider(object pointContainer)
- {
- lock (this)
- {
- Guid eventsGuid = typeof(DDiscFormat2RawCDEvents).GUID;
- IConnectionPointContainer connectionPointContainer = pointContainer as IConnectionPointContainer;
- connectionPointContainer.FindConnectionPoint(ref eventsGuid, out m_connectionPoint);
- }
- }
- public event DiscFormat2RawCD_EventHandler Update
- {
- add
- {
- lock (this)
- {
- DiscFormat2RawCD_SinkHelper helper =
- new DiscFormat2RawCD_SinkHelper(value);
- int cookie;
- m_connectionPoint.Advise(helper, out cookie);
- helper.Cookie = cookie;
- m_aEventSinkHelpers.Add(helper.UpdateDelegate, helper);
- }
- }
- remove
- {
- lock (this)
- {
- DiscFormat2RawCD_SinkHelper helper =
- m_aEventSinkHelpers[value] as DiscFormat2RawCD_SinkHelper;
- if (helper != null)
- {
- m_connectionPoint.Unadvise(helper.Cookie);
- m_aEventSinkHelpers.Remove(helper.UpdateDelegate);
- }
- }
- }
- }
- ~DiscFormat2RawCD_EventProvider()
- {
- Cleanup();
- }
- public void Dispose()
- {
- Cleanup();
- GC.SuppressFinalize(this);
- }
- private void Cleanup()
- {
- Monitor.Enter(this);
- try
- {
- foreach (DiscFormat2RawCD_SinkHelper helper in m_aEventSinkHelpers.Values)
- {
- m_connectionPoint.Unadvise(helper.Cookie);
- }
- m_aEventSinkHelpers.Clear();
- Marshal.ReleaseComObject(m_connectionPoint);
- }
- catch (SynchronizationLockException)
- {
- return;
- }
- finally
- {
- Monitor.Exit(this);
- }
- }
- }
- [ClassInterface(ClassInterfaceType.None)]
- [TypeLibType(TypeLibTypeFlags.FHidden)]
- public sealed class DiscFormat2RawCD_SinkHelper : DDiscFormat2RawCDEvents
- {
- // Fields
- private int m_dwCookie;
- private DiscFormat2RawCD_EventHandler m_UpdateDelegate;
- public DiscFormat2RawCD_SinkHelper(DiscFormat2RawCD_EventHandler eventHandler)
- {
- if (eventHandler == null)
- throw new ArgumentNullException("Delegate (callback function) cannot be null");
- m_dwCookie = 0;
- m_UpdateDelegate = eventHandler;
- }
- public void Update(object sender, object progress)
- {
- m_UpdateDelegate(sender, progress);
- }
- public int Cookie
- {
- get
- {
- return m_dwCookie;
- }
- set
- {
- m_dwCookie = value;
- }
- }
- public DiscFormat2RawCD_EventHandler UpdateDelegate
- {
- get
- {
- return m_UpdateDelegate;
- }
- set
- {
- m_UpdateDelegate = value;
- }
- }
- }
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- public delegate void DiscFormat2RawCD_EventHandler([In, MarshalAs(UnmanagedType.IDispatch)] object sender, [In, MarshalAs(UnmanagedType.IDispatch)] object progress);
- #endregion // DDiscFormat2RawCDEvents
- #region DDiscFormat2TrackAtOnceEvents
- /// <summary>
- /// CD Track-at-Once Audio Writer Events
- /// </summary>
- [ComImport]
- [Guid("2735413F-7F64-5B0F-8F00-5D77AFBE261E")]
- [TypeLibType(TypeLibTypeFlags.FNonExtensible|TypeLibTypeFlags.FOleAutomation|TypeLibTypeFlags.FDispatchable)]
- public interface DDiscFormat2TrackAtOnceEvents
- {
- // Update to current progress
- [DispId(0x200)] // DISPID_DDISCFORMAT2TAOEVENTS_UPDATE
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
- void Update([In, MarshalAs(UnmanagedType.IDispatch)] object sender, [In, MarshalAs(UnmanagedType.IDispatch)] object progress);
- }
- [ComVisible(false)]
- [TypeLibType(TypeLibTypeFlags.FHidden)]
- [ComEventInterface(typeof(DDiscFormat2TrackAtOnceEvents), typeof(DiscFormat2TrackAtOnce_EventProvider))]
- public interface DiscFormat2TrackAtOnce_Event
- {
- // Events
- event DiscFormat2TrackAtOnce_EventHandler Update;
- }
- [ClassInterface(ClassInterfaceType.None)]
- internal sealed class DiscFormat2TrackAtOnce_EventProvider : DiscFormat2TrackAtOnce_Event, IDisposable
- {
- // Fields
- private Hashtable m_aEventSinkHelpers = new Hashtable();
- private IConnectionPoint m_connectionPoint = null;
- // Methods
- public DiscFormat2TrackAtOnce_EventProvider(object pointContainer)
- {
- lock (this)
- {
- Guid eventsGuid = typeof(DDiscFormat2TrackAtOnceEvents).GUID;
- IConnectionPointContainer connectionPointContainer = pointContainer as IConnectionPointContainer;
- connectionPointContainer.FindConnectionPoint(ref eventsGuid, out m_connectionPoint);
- }
- }
- public event DiscFormat2TrackAtOnce_EventHandler Update
- {
- add
- {
- lock (this)
- {
- DiscFormat2TrackAtOnce_SinkHelper helper =
- new DiscFormat2TrackAtOnce_SinkHelper(value);
- int cookie;
- m_connectionPoint.Advise(helper, out cookie);
- helper.Cookie = cookie;
- m_aEventSinkHelpers.Add(helper.UpdateDelegate, helper);
- }
- }
- remove
- {
- lock (this)
- {
- DiscFormat2TrackAtOnce_SinkHelper helper =
- m_aEventSinkHelpers[value] as DiscFormat2TrackAtOnce_SinkHelper;
- if (helper != null)
- {
- m_connectionPoint.Unadvise(helper.Cookie);
- m_aEventSinkHelpers.Remove(helper.UpdateDelegate);
- }
- }
- }
- }
- ~DiscFormat2TrackAtOnce_EventProvider()
- {
- Cleanup();
- }
- public void Dispose()
- {
- Cleanup();
- GC.SuppressFinalize(this);
- }
- private void Cleanup()
- {
- Monitor.Enter(this);
- try
- {
- foreach (DiscFormat2TrackAtOnce_SinkHelper helper in m_aEventSinkHelpers.Values)
- {
- m_connectionPoint.Unadvise(helper.Cookie);
- }
- m_aEventSinkHelpers.Clear();
- Marshal.ReleaseComObject(m_connectionPoint);
- }
- catch (SynchronizationLockException)
- {
- return;
- }
- finally
- {
- Monitor.Exit(this);
- }
- }
- }
- [TypeLibType(TypeLibTypeFlags.FHidden)]
- [ClassInterface(ClassInterfaceType.None)]
- public sealed class DiscFormat2TrackAtOnce_SinkHelper : DDiscFormat2TrackAtOnceEvents
- {
- // Fields
- private int m_dwCookie;
- private DiscFormat2TrackAtOnce_EventHandler m_UpdateDelegate;
- public DiscFormat2TrackAtOnce_SinkHelper(DiscFormat2TrackAtOnce_EventHandler eventHandler)
- {
- if (eventHandler == null)
- throw new ArgumentNullException("Delegate (callback function) cannot be null");
- m_dwCookie = 0;
- m_UpdateDelegate = eventHandler;
- }
- public void Update(object sender, object progress)
- {
- m_UpdateDelegate(sender, progress);
- }
- public int Cookie
- {
- get
- {
- return m_dwCookie;
- }
- set
- {
- m_dwCookie = value;
- }
- }
- public DiscFormat2TrackAtOnce_EventHandler UpdateDelegate
- {
- get
- {
- return m_UpdateDelegate;
- }
- set
- {
- m_UpdateDelegate = value;
- }
- }
- }
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- public delegate void DiscFormat2TrackAtOnce_EventHandler([In, MarshalAs(UnmanagedType.IDispatch)] object sender, [In, MarshalAs(UnmanagedType.IDispatch)] object progress);
- #endregion // DDiscFormat2TrackAtOnceEvents
- #region DDiscMaster2Events
- /// <summary>
- /// Provides notification of the arrival/removal of CD/DVD (optical) devices.
- /// </summary>
- [ComImport]
- [Guid("27354131-7F64-5B0F-8F00-5D77AFBE261E")]
- [TypeLibType(TypeLibTypeFlags.FNonExtensible|TypeLibTypeFlags.FOleAutomation|TypeLibTypeFlags.FDispatchable)]
- public interface DDiscMaster2Events
- {
- // A device was added to the system
- [DispId(0x100)] // DISPID_DDISCMASTER2EVENTS_DEVICEADDED
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
- void NotifyDeviceAdded([In, MarshalAs(UnmanagedType.IDispatch)] object sender, string uniqueId);
- // A device was removed from the system
- [DispId(0x101)] // DISPID_DDISCMASTER2EVENTS_DEVICEREMOVED
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
- void NotifyDeviceRemoved([In, MarshalAs(UnmanagedType.IDispatch)] object sender, string uniqueId);
- }
- [ComVisible(false)]
- [TypeLibType(TypeLibTypeFlags.FHidden)]
- [ComEventInterface(typeof(DDiscMaster2Events), typeof(DiscMaster2_EventProvider))]
- public interface DiscMaster2_Event
- {
- // Events
- event DiscMaster2_NotifyDeviceAddedEventHandler NotifyDeviceAdded;
- event DiscMaster2_NotifyDeviceRemovedEventHandler NotifyDeviceRemoved;
- }
- [ClassInterface(ClassInterfaceType.None)]
- internal sealed class DiscMaster2_EventProvider : DiscMaster2_Event, IDisposable
- {
- // Fields
- private Hashtable m_aEventSinkHelpers = new Hashtable();
- private IConnectionPoint m_connectionPoint = null;
- // Methods
- public DiscMaster2_EventProvider(object pointContainer)
- {
- lock (this)
- {
- Guid eventsGuid = typeof(DDiscMaster2Events).GUID;
- IConnectionPointContainer connectionPointContainer = pointContainer as IConnectionPointContainer;
- connectionPointContainer.FindConnectionPoint(ref eventsGuid, out m_connectionPoint);
- }
- }
- public event DiscMaster2_NotifyDeviceAddedEventHandler NotifyDeviceAdded
- {
- add
- {
- lock (this)
- {
- DiscMaster2_SinkHelper helper =
- new DiscMaster2_SinkHelper(value);
- int cookie;
- m_connectionPoint.Advise(helper, out cookie);
- helper.Cookie = cookie;
- m_aEventSinkHelpers.Add(helper.NotifyDeviceAddedDelegate, helper);
- }
- }
- remove
- {
- lock (this)
- {
- DiscMaster2_SinkHelper helper =
- m_aEventSinkHelpers[value] as DiscMaster2_SinkHelper;
- if (helper != null)
- {
- m_connectionPoint.Unadvise(helper.Cookie);
- m_aEventSinkHelpers.Remove(helper.NotifyDeviceAddedDelegate);
- }
- }
- }
- }
- public event DiscMaster2_NotifyDeviceRemovedEventHandler NotifyDeviceRemoved
- {
- add
- {
- lock (this)
- {
- DiscMaster2_SinkHelper helper =
- new DiscMaster2_SinkHelper(value);
- int cookie;
- m_connectionPoint.Advise(helper, out cookie);
- helper.Cookie = cookie;
- m_aEventSinkHelpers.Add(helper.NotifyDeviceRemovedDelegate, helper);
- }
- }
- remove
- {
- lock (this)
- {
- DiscMaster2_SinkHelper helper =
- m_aEventSinkHelpers[value] as DiscMaster2_SinkHelper;
- if (helper != null)
- {
- m_connectionPoint.Unadvise(helper.Cookie);
- m_aEventSinkHelpers.Remove(helper.NotifyDeviceRemovedDelegate);
- }
- }
- }
- }
- ~DiscMaster2_EventProvider()
- {
- Cleanup();
- }
- public void Dispose()
- {
- Cleanup();
- GC.SuppressFinalize(this);
- }
- private void Cleanup()
- {
- Monitor.Enter(this);
- try
- {
- foreach (DiscMaster2_SinkHelper helper in m_aEventSinkHelpers.Values)
- {
- m_connectionPoint.Unadvise(helper.Cookie);
- }
- m_aEventSinkHelpers.Clear();
- Marshal.ReleaseComObject(m_connectionPoint);
- }
- catch (SynchronizationLockException)
- {
- return;
- }
- finally
- {
- Monitor.Exit(this);
- }
- }
- }
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- public delegate void DiscMaster2_NotifyDeviceAddedEventHandler([In, MarshalAs(UnmanagedType.IDispatch)]object sender, string uniqueId);
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- public delegate void DiscMaster2_NotifyDeviceRemovedEventHandler([In, MarshalAs(UnmanagedType.IDispatch)]object sender, string uniqueId);
- [ClassInterface(ClassInterfaceType.None)]
- [TypeLibType(TypeLibTypeFlags.FHidden)]
- public sealed class DiscMaster2_SinkHelper : DDiscMaster2Events
- {
- // Fields
- private int m_dwCookie;
- private DiscMaster2_NotifyDeviceAddedEventHandler m_AddedDelegate = null;
- private DiscMaster2_NotifyDeviceRemovedEventHandler m_RemovedDelegate = null;
- public DiscMaster2_SinkHelper(DiscMaster2_NotifyDeviceAddedEventHandler eventHandler)
- {
- if (eventHandler == null)
- throw new ArgumentNullException("Delegate (callback function) cannot be null");
- m_dwCookie = 0;
- m_AddedDelegate = eventHandler;
- }
- public DiscMaster2_SinkHelper(DiscMaster2_NotifyDeviceRemovedEventHandler eventHandler)
- {
- if (eventHandler == null)
- throw new ArgumentNullException("Delegate (callback function) cannot be null");
- m_dwCookie = 0;
- m_RemovedDelegate = eventHandler;
- }
- public void NotifyDeviceAdded(object sender, string uniqueId)
- {
- m_AddedDelegate(sender, uniqueId);
- }
- public void NotifyDeviceRemoved(object sender, string uniqueId)
- {
- m_RemovedDelegate(sender, uniqueId);
- }
- public int Cookie
- {
- get
- {
- return m_dwCookie;
- }
- set
- {
- m_dwCookie = value;
- }
- }
- public DiscMaster2_NotifyDeviceAddedEventHandler NotifyDeviceAddedDelegate
- {
- get
- {
- return m_AddedDelegate;
- }
- set
- {
- m_AddedDelegate = value;
- }
- }
- public DiscMaster2_NotifyDeviceRemovedEventHandler NotifyDeviceRemovedDelegate
- {
- get
- {
- return m_RemovedDelegate;
- }
- set
- {
- m_RemovedDelegate = value;
- }
- }
- }
- #endregion DDiscMaster2Events
- #region DFileSystemImageEvents
- /// <summary>
- /// Provides notification of file system import progress
- /// </summary>
- [ComImport]
- [Guid("2C941FDF-975B-59BE-A960-9A2A262853A5")]
- [TypeLibType(TypeLibTypeFlags.FNonExtensible | TypeLibTypeFlags.FOleAutomation | TypeLibTypeFlags.FDispatchable)]
- public interface DFileSystemImageEvents
- {
- // Update to current progress
- [DispId(0x100)] // DISPID_DFILESYSTEMIMAGEEVENTS_UPDATE
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
- void Update([In, MarshalAs(UnmanagedType.IDispatch)] object sender, string currentFile, [In] int copiedSectors, [In] int totalSectors);
- }
- [ComVisible(false)]
- [ComEventInterface(typeof(DFileSystemImageEvents), typeof(DFileSystemImage_EventProvider))]
- [TypeLibType(TypeLibTypeFlags.FHidden)]
- public interface DFileSystemImage_Event
- {
- // Events
- event DFileSystemImage_EventHandler Update;
- }
- [ClassInterface(ClassInterfaceType.None)]
- internal sealed class DFileSystemImage_EventProvider : DFileSystemImage_Event, IDisposable
- {
- // Fields
- private Hashtable m_aEventSinkHelpers = new Hashtable();
- private IConnectionPoint m_connectionPoint = null;
- // Methods
- public DFileSystemImage_EventProvider(object pointContainer)
- {
- lock (this)
- {
- Guid eventsGuid = typeof(DFileSystemImageEvents).GUID;
- IConnectionPointContainer connectionPointContainer = pointContainer as IConnectionPointContainer;
- connectionPointContainer.FindConnectionPoint(ref eventsGuid, out m_connectionPoint);
- }
- }
- public event DFileSystemImage_EventHandler Update
- {
- add
- {
- lock (this)
- {
- DFileSystemImage_SinkHelper helper = new DFileSystemImage_SinkHelper(value);
- int cookie;
- m_connectionPoint.Advise(helper, out cookie);
- helper.Cookie = cookie;
- m_aEventSinkHelpers.Add(helper.UpdateDelegate, helper);
- }
- }
- remove
- {
- lock (this)
- {
- DFileSystemImage_SinkHelper helper =
- m_aEventSinkHelpers[value] as DFileSystemImage_SinkHelper;
- if (helper != null)
- {
- m_connectionPoint.Unadvise(helper.Cookie);
- m_aEventSinkHelpers.Remove(helper.UpdateDelegate);
- }
- }
- }
- }
- ~DFileSystemImage_EventProvider()
- {
- Cleanup();
- }
- public void Dispose()
- {
- Cleanup();
- GC.SuppressFinalize(this);
- }
- private void Cleanup()
- {
- Monitor.Enter(this);
- try
- {
- foreach (DFileSystemImage_SinkHelper helper in m_aEventSinkHelpers.Values)
- {
- m_connectionPoint.Unadvise(helper.Cookie);
- }
- m_aEventSinkHelpers.Clear();
- Marshal.ReleaseComObject(m_connectionPoint);
- }
- catch (SynchronizationLockException)
- {
- return;
- }
- finally
- {
- Monitor.Exit(this);
- }
- }
- }
- [ClassInterface(ClassInterfaceType.None), TypeLibType(TypeLibTypeFlags.FHidden)]
- public sealed class DFileSystemImage_SinkHelper : DFileSystemImageEvents
- {
- // Fields
- private int m_dwCookie;
- private DFileSystemImage_EventHandler m_UpdateDelegate;
- public DFileSystemImage_SinkHelper(DFileSystemImage_EventHandler eventHandler)
- {
- if (eventHandler == null)
- throw new ArgumentNullException("Delegate (callback function) cannot be null");
- m_dwCookie = 0;
- m_UpdateDelegate = eventHandler;
- }
- public void Update(object sender, string currentFile, int copiedSectors, int totalSectors)
- {
- m_UpdateDelegate(sender, currentFile, copiedSectors, totalSectors);
- }
- public int Cookie
- {
- get
- {
- return m_dwCookie;
- }
- set
- {
- m_dwCookie = value;
- }
- }
- public DFileSystemImage_EventHandler UpdateDelegate
- {
- get
- {
- return m_UpdateDelegate;
- }
- set
- {
- m_UpdateDelegate = value;
- }
- }
- }
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- public delegate void DFileSystemImage_EventHandler([In, MarshalAs(UnmanagedType.IDispatch)]object sender, string currentFile, int copiedSectors, int totalSectors);
- #endregion // DFileSystemImageEvents
- #region DFileSystemImageImportEvents
- //
- // DFileSystemImageImportEvents
- //
- [ComImport]
- [Guid("D25C30F9-4087-4366-9E24-E55BE286424B")]
- [TypeLibType(TypeLibTypeFlags.FNonExtensible | TypeLibTypeFlags.FOleAutomation | TypeLibTypeFlags.FDispatchable)]
- public interface DFileSystemImageImportEvents
- {
- [DispId(0x101)] // DISPID_DFILESYSTEMIMAGEIMPORTEVENTS_UPDATEIMPORT
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
- void UpdateImport([In, MarshalAs(UnmanagedType.IDispatch)] object sender, FsiFileSystems fileSystem,
- string currentItem, int importedDirectoryItems, int totalDirectoryItems, int importedFileItems, int totalFileItems);
- }
- [ComVisible(false)]
- [ComEventInterface(typeof(DFileSystemImageImportEvents), typeof(DFileSystemImageImport_EventProvider))]
- [TypeLibType(TypeLibTypeFlags.FHidden)]
- public interface DFileSystemImageImport_Event
- {
- // Events
- event DFileSystemImageImport_EventHandler UpdateImport;
- }
- [ClassInterface(ClassInterfaceType.None)]
- internal sealed class DFileSystemImageImport_EventProvider : DFileSystemImageImport_Event, IDisposable
- {
- // Fields
- private Hashtable m_aEventSinkHelpers = new Hashtable();
- private IConnectionPoint m_connectionPoint = null;
- // Methods
- public DFileSystemImageImport_EventProvider(object pointContainer)
- {
- lock (this)
- {
- Guid eventsGuid = typeof(DFileSystemImageImportEvents).GUID;
- IConnectionPointContainer connectionPointContainer = pointContainer as IConnectionPointContainer;
- connectionPointContainer.FindConnectionPoint(ref eventsGuid, out m_connectionPoint);
- }
- }
- public event DFileSystemImageImport_EventHandler UpdateImport
- {
- add
- {
- lock (this)
- {
- DFileSystemImageImport_SinkHelper helper = new DFileSystemImageImport_SinkHelper(value);
- int cookie;
- m_connectionPoint.Advise(helper, out cookie);
- helper.Cookie = cookie;
- m_aEventSinkHelpers.Add(helper.UpdateDelegate, helper);
- }
- }
- remove
- {
- lock (this)
- {
- DFileSystemImageImport_SinkHelper helper =
- m_aEventSinkHelpers[value] as DFileSystemImageImport_SinkHelper;
- if (helper != null)
- {
- m_connectionPoint.Unadvise(helper.Cookie);
- m_aEventSinkHelpers.Remove(helper.UpdateDelegate);
- }
- }
- }
- }
- ~DFileSystemImageImport_EventProvider()
- {
- Cleanup();
- }
- public void Dispose()
- {
- Cleanup();
- GC.SuppressFinalize(this);
- }
- private void Cleanup()
- {
- Monitor.Enter(this);
- try
- {
- foreach (DFileSystemImageImport_SinkHelper helper in m_aEventSinkHelpers.Values)
- {
- m_connectionPoint.Unadvise(helper.Cookie);
- }
- m_aEventSinkHelpers.Clear();
- Marshal.ReleaseComObject(m_connectionPoint);
- }
- catch (SynchronizationLockException)
- {
- return;
- }
- finally
- {
- Monitor.Exit(this);
- }
- }
- }
- [TypeLibType(TypeLibTypeFlags.FHidden)]
- [ClassInterface(ClassInterfaceType.None)]
- public sealed class DFileSystemImageImport_SinkHelper : DFileSystemImageImportEvents
- {
- // Fields
- private int m_dwCookie;
- private DFileSystemImageImport_EventHandler m_UpdateDelegate;
- public DFileSystemImageImport_SinkHelper(DFileSystemImageImport_EventHandler eventHandler)
- {
- if (eventHandler == null)
- throw new ArgumentNullException("Delegate (callback function) cannot be null");
- m_dwCookie = 0;
- m_UpdateDelegate = eventHandler;
- }
- public void UpdateImport(object sender, FsiFileSystems fileSystems, string currentItem,
- int importedDirectoryItems, int totalDirectoryItems, int importedFileItems, int totalFileItems)
- {
- m_UpdateDelegate(sender, fileSystems, currentItem, importedDirectoryItems, totalDirectoryItems,
- importedFileItems, totalFileItems);
- }
- public int Cookie
- {
- get
- {
- return m_dwCookie;
- }
- set
- {
- m_dwCookie = value;
- }
- }
- public DFileSystemImageImport_EventHandler UpdateDelegate
- {
- get
- {
- return m_UpdateDelegate;
- }
- set
- {
- m_UpdateDelegate = value;
- }
- }
- }
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- public delegate void DFileSystemImageImport_EventHandler([In, MarshalAs(UnmanagedType.IDispatch)] object sender,
- FsiFileSystems fileSystem, string currentItem, int importedDirectoryItems, int totalDirectoryItems, int importedFileItems, int totalFileItems);
- #endregion // DFileSystemImageImportEvents
- #region DWriteEngine2Events
- /// <summary>
- /// Provides notification of the progress of the WriteEngine2 writing.
- /// </summary>
- [ComImport]
- [TypeLibType(TypeLibTypeFlags.FNonExtensible|TypeLibTypeFlags.FOleAutomation|TypeLibTypeFlags.FDispatchable)]
- [Guid("27354137-7F64-5B0F-8F00-5D77AFBE261E")]
- public interface DWriteEngine2Events
- {
- // Update to current progress
- [DispId(0x100)] // DISPID_DWRITEENGINE2EVENTS_UPDATE
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
- void Update([In, MarshalAs(UnmanagedType.IDispatch)] object sender, [In, MarshalAs(UnmanagedType.IDispatch)] object progress);
- }
- [ComVisible(false)]
- [ComEventInterface(typeof(DWriteEngine2Events), typeof(DWriteEngine2_EventProvider))]
- [TypeLibType(TypeLibTypeFlags.FHidden)]
- public interface DWriteEngine2_Event
- {
- // Events
- event DWriteEngine2_EventHandler Update;
- }
- [ClassInterface(ClassInterfaceType.None)]
- internal sealed class DWriteEngine2_EventProvider : DWriteEngine2_Event, IDisposable
- {
- // Fields
- private Hashtable m_aEventSinkHelpers = new Hashtable();
- private IConnectionPoint m_connectionPoint = null;
- // Methods
- public DWriteEngine2_EventProvider(object pointContainer)
- {
- lock (this)
- {
- Guid eventsGuid = typeof(DWriteEngine2Events).GUID;
- IConnectionPointContainer connectionPointContainer = pointContainer as IConnectionPointContainer;
- connectionPointContainer.FindConnectionPoint(ref eventsGuid, out m_connectionPoint);
- }
- }
- public event DWriteEngine2_EventHandler Update
- {
- add
- {
- lock (this)
- {
- DWriteEngine2_SinkHelper helper =
- new DWriteEngine2_SinkHelper(value);
- int cookie;
- m_connectionPoint.Advise(helper, out cookie);
- helper.Cookie = cookie;
- m_aEventSinkHelpers.Add(helper.UpdateDelegate, helper);
- }
- }
- remove
- {
- lock (this)
- {
- DWriteEngine2_SinkHelper helper =
- m_aEventSinkHelpers[value] as DWriteEngine2_SinkHelper;
- if (helper != null)
- {
- m_connectionPoint.Unadvise(helper.Cookie);
- m_aEventSinkHelpers.Remove(helper.UpdateDelegate);
- }
- }
- }
- }
- ~DWriteEngine2_EventProvider()
- {
- Cleanup();
- }
- public void Dispose()
- {
- Cleanup();
- GC.SuppressFinalize(this);
- }
- private void Cleanup()
- {
- Monitor.Enter(this);
- try
- {
- foreach (DWriteEngine2_SinkHelper helper in m_aEventSinkHelpers.Values)
- {
- m_connectionPoint.Unadvise(helper.Cookie);
- }
- m_aEventSinkHelpers.Clear();
- Marshal.ReleaseComObject(m_connectionPoint);
- }
- catch (SynchronizationLockException)
- {
- return;
- }
- finally
- {
- Monitor.Exit(this);
- }
- }
- }
- [TypeLibType(TypeLibTypeFlags.FHidden)]
- [ClassInterface(ClassInterfaceType.None)]
- public sealed class DWriteEngine2_SinkHelper : DWriteEngine2Events
- {
- // Fields
- private int m_dwCookie;
- private DWriteEngine2_EventHandler m_UpdateDelegate;
- public DWriteEngine2_SinkHelper(DWriteEngine2_EventHandler eventHandler)
- {
- if (eventHandler == null)
- throw new ArgumentNullException("Delegate (callback function) cannot be null");
- m_dwCookie = 0;
- m_UpdateDelegate = eventHandler;
- }
- public void Update(object sender, object progress)
- {
- m_UpdateDelegate(sender, progress);
- }
- public int Cookie
- {
- get
- {
- return m_dwCookie;
- }
- set
- {
- m_dwCookie = value;
- }
- }
- public DWriteEngine2_EventHandler UpdateDelegate
- {
- get
- {
- return m_UpdateDelegate;
- }
- set
- {
- m_UpdateDelegate = value;
- }
- }
- }
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- public delegate void DWriteEngine2_EventHandler([In, MarshalAs(UnmanagedType.IDispatch)] object sender, [In, MarshalAs(UnmanagedType.IDispatch)] object progress);
- #endregion // DWriteEngine2Events
- #region Interfaces
- /// <summary>
- /// Boot Options
- /// </summary>
- [Guid("2C941FD4-975B-59BE-A960-9A2A262853A5")]
- [TypeLibType(TypeLibTypeFlags.FDual | TypeLibTypeFlags.FDispatchable | TypeLibTypeFlags.FNonExtensible)]
- public interface IBootOptions
- {
- // Get boot image data stream
- [DispId(1)]
- IStream BootImage { get; }
- // Get boot manufacturer
- [DispId(2)]
- string Manufacturer { get; set; }
- // Get boot platform identifier
- [DispId(3)]
- PlatformId PlatformId { get; set; }
- // Get boot emulation type
- [DispId(4)]
- EmulationType Emulation { get; set; }
- // Get boot image size
- [DispId(5)]
- uint ImageSize { get; }
- // Set the boot image data stream, emulation type, and image size
- [DispId(20)]
- void AssignBootImage(IStream newVal);
- }
- /// <summary>
- /// An interface to control burn verification for a burning object
- /// </summary>
- [ComImport]
- [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
- [Guid("D2FFD834-958B-426D-8470-2A13879C6A91")]
- public interface IBurnVerification
- {
- // The requested level of burn verification
- [DispId(0x400)]
- IMAPI_BURN_VERIFICATION_LEVEL BurnVerificationLevel { set; get; }
- }
- /// <summary>
- /// Common Disc Format (writer) Operations
- /// </summary>
- [ComImport]
- [TypeLibType(TypeLibTypeFlags.FDual | TypeLibTypeFlags.FDispatchable | TypeLibTypeFlags.FNonExtensible)]
- [Guid("27354152-8F64-5B0F-8F00-5D77AFBE261E")]
- public interface IDiscFormat2
- {
- // Determines if the recorder object supports the given format
- [DispId(0x800)]
- bool IsRecorderSupported(IDiscRecorder2 Recorder);
- // Determines if the current media in a supported recorder object supports the given format
- [DispId(0x801)]
- bool IsCurrentMediaSupported(IDiscRecorder2 Recorder);
- // Determines if the current media is reported as physically blank by the drive
- [DispId(0x700)]
- bool MediaPhysicallyBlank { get; }
- // Attempts to determine if the media is blank using heuristics (mainly for DVD+RW and DVD-RAM media)
- [DispId(0x701)]
- bool MediaHeuristicallyBlank { get; }
- // Supported media types
- [DispId(0x702)]
- object[] SupportedMediaTypes { get; }
- }
- /// <summary>
- /// Data Writer
- /// </summary>
- [TypeLibType(TypeLibTypeFlags.FDual | TypeLibTypeFlags.FDispatchable | TypeLibTypeFlags.FNonExtensible)]
- [Guid("27354153-9F64-5B0F-8F00-5D77AFBE261E")]
- public interface IDiscFormat2Data
- {
- //
- // IDiscFormat2
- //
- // Determines if the recorder object supports the given format
- [DispId(0x800)]
- bool IsRecorderSupported(IDiscRecorder2 Recorder);
- // Determines if the current media in a supported recorder object supports the given format
- [DispId(0x801)]
- bool IsCurrentMediaSupported(IDiscRecorder2 Recorder);
- // Determines if the current media is reported as physically blank by the drive
- [DispId(0x700)]
- bool MediaPhysicallyBlank { get; }
- // Attempts to determine if the media is blank using heuristics (mainly for DVD+RW and DVD-RAM media)
- [DispId(0x701)]
- bool MediaHeuristicallyBlank { get; }
- // Supported media types
- [DispId(0x702)]
- object[] SupportedMediaTypes { get; }
- //
- // IDiscFormat2Data
- //
- // The disc recorder to use
- [DispId(0x100)]
- IDiscRecorder2 Recorder { set; get; }
- // Buffer Underrun Free recording should be disabled
- [DispId(0x101)]
- bool BufferUnderrunFreeDisabled { set; get; }
- // Postgap is included in image
- [DispId(260)]
- bool PostgapAlreadyInImage { set; get; }
- // The state (usability) of the current media
- [DispId(0x106)]
- IMAPI_FORMAT2_DATA_MEDIA_STATE CurrentMediaStatus { get; }
- // The write protection state of the current media
- [DispId(0x107)]
- IMAPI_MEDIA_WRITE_PROTECT_STATE WriteProtectStatus { get; }
- // Total sectors available on the media (used + free).
- [DispId(0x108)]
- int TotalSectorsOnMedia { get; }
- // Free sectors available on the media.
- [DispId(0x109)]
- int FreeSectorsOnMedia { get; }
- // Next writable address on the media (also used sectors)
- [DispId(0x10a)]
- int NextWritableAddress { get; }
- // The first sector in the previous session on the media
- [DispId(0x10b)]
- int StartAddressOfPreviousSession { get; }
- // The last sector in the previous session on the media
- [DispId(0x10c)]
- int LastWrittenAddressOfPreviousSession { get; }
- // Prevent further additions to the file system
- [DispId(0x10d)]
- bool ForceMediaToBeClosed { set; get; }
- // Default is to maximize compatibility with DVD-ROM. May be disabled to
- // reduce time to finish writing the disc or increase usable space on the
- // media for later writing.
- [DispId(270)]
- bool DisableConsumerDvdCompatibilityMode { set; get; }
- // Get the current physical media type
- [DispId(0x10f)]
- IMAPI_MEDIA_PHYSICAL_TYPE CurrentPhysicalMediaType { get; }
- // The friendly name of the client (used to determine recorder reservation conflicts)
- [DispId(0x110)]
- string ClientName { set; get; }
- // The last requested write speed
- [DispId(0x111)]
- int RequestedWriteSpeed { get; }
- // The last requested rotation type
- [DispId(0x112)]
- bool RequestedRotationTypeIsPureCAV { get; }
- // The drive's current write speed
- [DispId(0x113)]
- int CurrentWriteSpeed { get; }
- // The drive's current rotation type.
- [DispId(0x114)]
- bool CurrentRotationTypeIsPureCAV { get; }
- // Gets an array of the write speeds supported for the attached disc recorder and current media
- [DispId(0x115)]
- object[] SupportedWriteSpeeds { get; }
- // Gets an array of the detailed write configurations supported for the attached disc recorder
- // and current media
- [DispId(0x116)]
- object[] SupportedWriteSpeedDescriptors { get; }
- // Forces the Datawriter to overwrite the disc on overwritable media types
- [DispId(0x117)]
- bool ForceOverwrite { set; get; }
- // Returns the array of available multi-session interfaces. The array shall not be empty
- [DispId(280)]
- object[] MultisessionInterfaces { get; }
- // Writes all the data provided in the IStream to the device
- [DispId(0x200)]
- void Write(IStream data);
- // Cancels the current write operation
- [DispId(0x201)]
- void CancelWrite();
- // Sets the write speed (in sectors per second) of the attached disc recorder
- [DispId(0x202)]
- void SetWriteSpeed(int RequestedSectorsPerSecond, bool RotationTypeIsPureCAV);
- }
- /// <summary>
- /// Track-at-once Data Writer
- /// </summary>
- [TypeLibType(TypeLibTypeFlags.FDual | TypeLibTypeFlags.FDispatchable | TypeLibTypeFlags.FNonExtensible)]
- [Guid("2735413D-7F64-5B0F-8F00-5D77AFBE261E")]
- public interface IDiscFormat2DataEventArgs
- {
- //
- // IWriteEngine2EventArgs
- //
- // The starting logical block address for the current write operation.
- [DispId(0x100)]
- int StartLba { get; }
- // The number of sectors being written for the current write operation.
- [DispId(0x101)]
- int SectorCount { get; }
- // The last logical block address of data read for the current write operation.
- [DispId(0x102)]
- int LastReadLba { get; }
- // The last logical block address of data written for the current write operation
- [DispId(0x103)]
- int LastWrittenLba { get; }
- // The total bytes available in the system's cache buffer
- [DispId(0x106)]
- int TotalSystemBuffer { get; }
- // The used bytes in the system's cache buffer
- [DispId(0x107)]
- int UsedSystemBuffer { get; }
- // The free bytes in the system's cache buffer
- [DispId(0x108)]
- int FreeSystemBuffer { get; }
- //
- // IDiscFormat2DataEventArgs
- //
- // The total elapsed time for the current write operation
- [DispId(0x300)]
- int ElapsedTime { get; }
- // The estimated time remaining for the write operation.
- [DispId(0x301)]
- int RemainingTime { get; }
- // The estimated total time for the write operation.
- [DispId(770)]
- int TotalTime { get; }
- // The current write action.
- [DispId(0x303)]
- IMAPI_FORMAT2_DATA_WRITE_ACTION CurrentAction { get; }
- }
- [ComImport, Guid("27354156-8F64-5B0F-8F00-5D77AFBE261E")]
- [TypeLibType(TypeLibTypeFlags.FDual | TypeLibTypeFlags.FDispatchable | TypeLibTypeFlags.FNonExtensible)]
- public interface IDiscFormat2Erase
- {
- //
- // IDiscFormat2
- //
- // Determines if the recorder object supports the given format
- [DispId(0x800)]
- bool IsRecorderSupported(IDiscRecorder2 Recorder);
- // Determines if the current media in a supported recorder object supports the given format
- [DispId(0x801)]
- bool IsCurrentMediaSupported(IDiscRecorder2 Recorder);
- // Determines if the current media is reported as physically blank by the drive
- [DispId(0x700)]
- bool MediaPhysicallyBlank { get; }
- // Attempts to determine if the media is blank using heuristics (mainly for DVD+RW and DVD-RAM media)
- [DispId(0x701)]
- bool MediaHeuristicallyBlank { get; }
- // Supported media types
- [DispId(0x702)]
- object[] SupportedMediaTypes { get; }
- //
- // IDiscFormat2Erase
- //
- // Sets the recorder object to use for an erase operation
- [DispId(0x100)]
- IDiscRecorder2 Recorder { set; get; }
- //
- [DispId(0x101)]
- bool FullErase { set; get; }
- // Get the current physical media type
- [DispId(0x102)]
- IMAPI_MEDIA_PHYSICAL_TYPE CurrentPhysicalMediaType { get; }
- // The friendly name of the client (used to determine recorder reservation conflicts)
- [DispId(0x103)]
- string ClientName { set; get; }
- // Erases the media in the active disc recorder
- [DispId(0x201)]
- void EraseMedia();
- }
- /// <summary>
- /// CD Disc-At-Once RAW Writer
- /// </summary>
- [ComImport, Guid("27354155-8F64-5B0F-8F00-5D77AFBE261E")]
- [TypeLibType(TypeLibTypeFlags.FDual | TypeLibTypeFlags.FDispatchable | TypeLibTypeFlags.FNonExtensible)]
- public interface IDiscFormat2RawCD
- {
- //
- // IDiscFormat2
- //
- // Determines if the recorder object supports the given format
- [DispId(0x800)]
- bool IsRecorderSupported(IDiscRecorder2 Recorder);
- // Determines if the current media in a supported recorder object supports the given format
- [DispId(0x801)]
- bool IsCurrentMediaSupported(IDiscRecorder2 Recorder);
- // Determines if the current media is reported as physically blank by the drive
- [DispId(0x700)]
- bool MediaPhysicallyBlank { get; }
- // Attempts to determine if the media is blank using heuristics (mainly for DVD+RW and DVD-RAM media)
- [DispId(0x701)]
- bool MediaHeuristicallyBlank { get; }
- // Supported media types
- [DispId(0x702)]
- object[] SupportedMediaTypes { get; }
- //
- // IDiscFormat2RawCD
- //
- // Locks the current media for use by this writer
- [DispId(0x200)]
- void PrepareMedia();
- // Writes a RAW image that starts at 95:00:00 (MSF) to the currently inserted blank CD media
- [DispId(0x201)]
- void WriteMedia(IStream data);
- // Writes a RAW image to the currently inserted blank CD media. A stream starting at 95:00:00
- // (-5 minutes) would use 5*60*75 + 150 sectors pregap == 22,650 for the number of sectors
- [DispId(0x202)]
- void WriteMedia2(IStream data, int streamLeadInSectors);
- // Cancels the current write.
- [DispId(0x203)]
- void CancelWrite();
- // Finishes use of the locked media.
- [DispId(0x204)]
- void ReleaseMedia();
- // Sets the write speed (in sectors per second) of the attached disc recorder
- [DispId(0x205)]
- void SetWriteSpeed(int RequestedSectorsPerSecond, bool RotationTypeIsPureCAV);
- // The disc recorder to use
- [DispId(0x100)]
- IDiscRecorder2 Recorder { set; get; }
- // Buffer Underrun Free recording should be disabled
- [DispId(0x102)]
- bool BufferUnderrunFreeDisabled { set; get; }
- // The first sector of the next session. May be negative for blank media
- [DispId(0x103)]
- int StartOfNextSession { get; }
- // The last possible start for the leadout area. Can be used to
- // calculate available space on media
- [DispId(260)]
- int LastPossibleStartOfLeadout { get; }
- // Get the current physical media type
- [DispId(0x105)]
- IMAPI_MEDIA_PHYSICAL_TYPE CurrentPhysicalMediaType { get; }
- // Supported data sector types for the current recorder
- [DispId(0x108)]
- object[] SupportedSectorTypes { get; }
- // Requested data sector to use during write of the stream
- [DispId(0x109)]
- IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE RequestedSectorType { set; get; }
- // The friendly name of the client (used to determine recorder reservation conflicts).
- [DispId(0x10a)]
- string ClientName { set; get; }
- // The last requested write speed
- [DispId(0x10b)]
- int RequestedWriteSpeed { get; }
- // The last requested rotation type.
- [DispId(0x10c)]
- bool RequestedRotationTypeIsPureCAV { get; }
- // The drive's current write speed.
- [DispId(0x10d)]
- int CurrentWriteSpeed { get; }
- // The drive's current rotation type
- [DispId(270)]
- bool CurrentRotationTypeIsPureCAV { get; }
- // Gets an array of the write speeds supported for the attached disc
- // recorder and current media
- [DispId(0x10f)]
- object[] SupportedWriteSpeeds { get; }
- // Gets an array of the detailed write configurations supported for the
- // attached disc recorder and current media
- [DispId(0x110)]
- object[] SupportedWriteSpeedDescriptors { get; }
- }
- /// <summary>
- /// CD Disc-At-Once RAW Writer Event Arguments
- /// </summary>
- [ComImport, Guid("27354143-7F64-5B0F-8F00-5D77AFBE261E"), TypeLibType(TypeLibTypeFlags.FDual | TypeLibTypeFlags.FDispatchable | TypeLibTypeFlags.FNonExtensible)]
- public interface IDiscFormat2RawCDEventArgs
- {
- //
- // IWriteEngine2EventArgs
- //
- // The starting logical block address for the current write operation.
- [DispId(0x100)]
- int StartLba { get; }
- // The number of sectors being written for the current write operation.
- [DispId(0x101)]
- int SectorCount { get; }
- // The last logical block address of data read for the current write operation.
- [DispId(0x102)]
- int LastReadLba { get; }
- // The last logical block address of data written for the current write operation
- [DispId(0x103)]
- int LastWrittenLba { get; }
- // The total bytes available in the system's cache buffer
- [DispId(0x106)]
- int TotalSystemBuffer { get; }
- // The used bytes in the system's cache buffer
- [DispId(0x107)]
- int UsedSystemBuffer { get; }
- // The free bytes in the system's cache buffer
- [DispId(0x108)]
- int FreeSystemBuffer { get; }
- //
- // IDiscFormat2RawCDEventArgs
- //
- // The current write action
- [DispId(0x301)]
- IMAPI_FORMAT2_RAW_CD_WRITE_ACTION CurrentAction { get; }
- // The elapsed time for the current track write or media finishing operation
- [DispId(770)]
- int ElapsedTime { get; }
- // The estimated time remaining for the current track write or media finishing operation
- [DispId(0x303)]
- int RemainingTime { get; }
- }
- [TypeLibType(TypeLibTypeFlags.FDual | TypeLibTypeFlags.FDispatchable | TypeLibTypeFlags.FNonExtensible)]
- [ComImport]
- [Guid("27354154-8F64-5B0F-8F00-5D77AFBE261E")]
- public interface IDiscFormat2TrackAtOnce
- {
- //
- // IDiscFormat2
- //
- // Determines if the recorder object supports the given format
- [DispId(0x800)]
- bool IsRecorderSupported(IDiscRecorder2 Recorder);
- // Determines if the current media in a supported recorder object supports the given format
- [DispId(0x801)]
- bool IsCurrentMediaSupported(IDiscRecorder2 Recorder);
- // Determines if the current media is reported as physically blank by the drive
- [DispId(0x700)]
- bool MediaPhysicallyBlank { get; }
- // Attempts to determine if the media is blank using heuristics (mainly for DVD+RW and DVD-RAM media)
- [DispId(0x701)]
- bool MediaHeuristicallyBlank { get; }
- // Supported media types
- [DispId(0x702)]
- object[] SupportedMediaTypes { get; }
- //
- // IDiscFormat2TrackAtOnce
- //
- // Locks the current media for use by this writer.
- [DispId(0x200)]
- void PrepareMedia();
- // Immediately writes a new audio track to the locked media
- [DispId(0x201)]
- void AddAudioTrack(IStream data);
- // Cancels the current addition of a track
- [DispId(0x202)]
- void CancelAddTrack();
- // Finishes use of the locked media
- [DispId(0x203)]
- void ReleaseMedia();
- // Sets the write speed (in sectors per second) of the attached disc recorder
- [DispId(0x204)]
- void SetWriteSpeed(int RequestedSectorsPerSecond, bool RotationTypeIsPureCAV);
- // The disc recorder to use
- [DispId(0x100)]
- IDiscRecorder2 Recorder { set; get; }
- // Buffer Underrun Free recording should be disabled
- [DispId(0x102)]
- bool BufferUnderrunFreeDisabled { set; get; }
- // Number of tracks already written to the locked media
- [DispId(0x103)]
- int NumberOfExistingTracks { get; }
- // Total sectors available on locked media if writing one continuous audio track
- [DispId(260)]
- int TotalSectorsOnMedia { get; }
- // Number of sectors available for adding a new track to the media
- [DispId(0x105)]
- int FreeSectorsOnMedia { get; }
- // Number of sectors used on the locked media, including overhead (space between tracks)
- [DispId(0x106)]
- int UsedSectorsOnMedia { get; }
- // Set the media to be left 'open' after writing, to allow multisession discs
- [DispId(0x107)]
- bool DoNotFinalizeMedia { set; get; }
- // Get the current physical media type
- [DispId(0x10a)]
- object[] ExpectedTableOfContents { get; }
- // Get the current physical media type
- [DispId(0x10b)]
- IMAPI_MEDIA_PHYSICAL_TYPE CurrentPhysicalMediaType { get; }
- // The friendly name of the client (used to determine recorder reservation conflicts)
- [DispId(270)]
- string ClientName { set; get; }
- // The last requested write speed
- [DispId(0x10f)]
- int RequestedWriteSpeed { get; }
- // The last requested rotation type.
- [DispId(0x110)]
- bool RequestedRotationTypeIsPureCAV { get; }
- // The drive's current write speed.
- [DispId(0x111)]
- int CurrentWriteSpeed { get; }
- // The drive's current rotation type.
- [DispId(0x112)]
- bool CurrentRotationTypeIsPureCAV { get; }
- // Gets an array of the write speeds supported for the attached disc recorder and current media
- [DispId(0x113)]
- object[] SupportedWriteSpeeds { get; }
- // Gets an array of the detailed write configurations supported for the attached disc recorder and current media
- [DispId(0x114)]
- object[] SupportedWriteSpeedDescriptors { get; }
- }
- /// <summary>
- /// CD Track-at-once Audio Writer Event Arguments
- /// </summary>
- [ComImport]
- [TypeLibType(TypeLibTypeFlags.FDual | TypeLibTypeFlags.FDispatchable | TypeLibTypeFlags.FNonExtensible)]
- [Guid("27354140-7F64-5B0F-8F00-5D77AFBE261E")]
- public interface IDiscFormat2TrackAtOnceEventArgs
- {
- //
- // IWriteEngine2EventArgs
- //
- // The starting logical block address for the current write operation.
- [DispId(0x100)]
- int StartLba { get; }
- // The number of sectors being written for the current write operation.
- [DispId(0x101)]
- int SectorCount { get; }
- // The last logical block address of data read for the current write operation.
- [DispId(0x102)]
- int LastReadLba { get; }
- // The last logical block address of data written for the current write operation
- [DispId(0x103)]
- int LastWrittenLba { get; }
- // The total bytes available in the system's cache buffer
- [DispId(0x106)]
- int TotalSystemBuffer { get; }
- // The used bytes in the system's cache buffer
- [DispId(0x107)]
- int UsedSystemBuffer { get; }
- // The free bytes in the system's cache buffer
- [DispId(0x108)]
- int FreeSystemBuffer { get; }
- //
- // IDiscFormat2TrackAtOnceEventArgs
- //
- // The total elapsed time for the current write operation
- [DispId(0x300)]
- int CurrentTrackNumber { get; }
- // The current write action
- [DispId(0x301)]
- IMAPI_FORMAT2_TAO_WRITE_ACTION CurrentAction { get; }
- // The elapsed time for the current track write or media finishing operation
- [DispId(770)]
- int ElapsedTime { get; }
- // The estimated time remaining for the current track write or media finishing operation
- [DispId(0x303)]
- int RemainingTime { get; }
- }
- /// <summary>
- /// IDiscMaster2 is used to get an enumerator for the set of CD/DVD (optical) devices on the system
- /// </summary>
- [ComImport]
- [Guid("27354130-7F64-5B0F-8F00-5D77AFBE261E")]
- [TypeLibType(TypeLibTypeFlags.FDual | TypeLibTypeFlags.FDispatchable | TypeLibTypeFlags.FNonExtensible)]
- public interface IDiscMaster2
- {
- // Enumerates the list of CD/DVD devices on the system (VT_BSTR)
- [DispId(-4), TypeLibFunc((short)0x41)]
- IEnumerator GetEnumerator();
- // Gets a single recorder's ID (ZERO BASED INDEX)
- [DispId(0)]
- string this[int index] { get; }
- // The current number of recorders in the system.
- [DispId(1)]
- int Count { get; }
- // Whether IMAPI is running in an environment with optical devices and permission to access them.
- [DispId(2)]
- bool IsSupportedEnvironment { get; }
- }
- /// <summary>
- /// Represents a single CD/DVD type device, and enables many common operations via a simplified API.
- /// </summary>
- [ComImport]
- [TypeLibType(TypeLibTypeFlags.FDual | TypeLibTypeFlags.FDispatchable | TypeLibTypeFlags.FNonExtensible)]
- [Guid("27354133-7F64-5B0F-8F00-5D77AFBE261E")]
- public interface IDiscRecorder2
- {
- // Ejects the media (if any) and opens the tray
- [DispId(0x100)]
- void EjectMedia();
- // Close the media tray and load any media in the tray.
- [DispId(0x101)]
- void CloseTray();
- // Acquires exclusive access to device. May be called multiple times.
- [DispId(0x102)]
- void AcquireExclusiveAccess(bool force, string clientName);
- // Releases exclusive access to device. Call once per AcquireExclusiveAccess().
- [DispId(0x103)]
- void ReleaseExclusiveAccess();
- // Disables Media Change Notification (MCN).
- [DispId(260)]
- void DisableMcn();
- // Re-enables Media Change Notification after a call to DisableMcn()
- [DispId(0x105)]
- void EnableMcn();
- // Initialize the recorder, opening a handle to the specified recorder.
- [DispId(0x106)]
- void InitializeDiscRecorder(string recorderUniqueId);
- // The unique ID used to initialize the recorder.
- [DispId(0)]
- string ActiveDiscRecorder { get; }
- // The vendor ID in the device's INQUIRY data.
- [DispId(0x201)]
- string VendorId { get; }
- // The Product ID in the device's INQUIRY data.
- [DispId(0x202)]
- string ProductId { get; }
- // The Product Revision in the device's INQUIRY data.
- [DispId(0x203)]
- string ProductRevision { get; }
- // Get the unique volume name (this is not a drive letter).
- [DispId(0x204)]
- string VolumeName { get; }
- // Drive letters and NTFS mount points to access the recorder.
- [DispId(0x205)]
- object[] VolumePathNames { [DispId(0x205)] get; }
- // One of the volume names associated with the recorder.
- [DispId(0x206)]
- bool DeviceCanLoadMedia { [DispId(0x206)] get; }
- // Gets the legacy 'device number' associated with the recorder. This number is not guaranteed to be static.
- [DispId(0x207)]
- int LegacyDeviceNumber { [DispId(0x207)] get; }
- // Gets a list of all feature pages supported by the device
- [DispId(520)]
- object[] SupportedFeaturePages { [DispId(520)] get; }
- // Gets a list of all feature pages with 'current' bit set to true
- [DispId(0x209)]
- object[] CurrentFeaturePages { [DispId(0x209)] get; }
- // Gets a list of all profiles supported by the device
- [DispId(0x20a)]
- object[] SupportedProfiles { [DispId(0x20a)] get; }
- // Gets a list of all profiles with 'currentP' bit set to true
- [DispId(0x20b)]
- object[] CurrentProfiles { [DispId(0x20b)] get; }
- // Gets a list of all MODE PAGES supported by the device
- [DispId(0x20c)]
- object[] SupportedModePages { [DispId(0x20c)] get; }
- // Queries the device to determine who, if anyone, has acquired exclusive access
- [DispId(0x20d)]
- string ExclusiveAccessOwner { [DispId(0x20d)] get; }
- }
- /// <summary>
- /// Represents a single CD/DVD type device, enabling additional commands requiring advanced marshalling code
- /// </summary>
- [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
- [Guid("27354132-7F64-5B0F-8F00-5D77AFBE261E")]
- public interface IDiscRecorder2Ex
- {
- //
- // Send a command to the device that does not transfer any data
- //
- void SendCommandNoData(
- [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.U1, SizeParamIndex = 1)]
- byte[] Cdb,
- uint CdbSize,
- [MarshalAs(UnmanagedType.LPArray, SizeConst = 18)]
- byte[] SenseBuffer,
- uint Timeout);
- // Send a command to the device that requires data sent to the device
- void SendCommandSendDataToDevice(
- [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.U1, SizeParamIndex = 1)]
- byte[] Cdb,
- uint CdbSize,
- [MarshalAs(UnmanagedType.LPArray, SizeConst = 18)]
- byte[] SenseBuffer,
- uint Timeout,
- [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.U1, SizeParamIndex = 5)]
- byte[] Buffer,
- uint BufferSize);
- // Send a command to the device that requests data from the device
- void SendCommandGetDataFromDevice(
- [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.U1, SizeParamIndex = 1)]
- byte[] Cdb,
- uint CdbSize,
- [MarshalAs(UnmanagedType.LPArray, SizeConst = 18)]
- byte[] SenseBuffer,
- uint Timeout,
- [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.U1, SizeParamIndex = 5)]
- byte[] Buffer,
- uint BufferSize,
- out uint BufferFetched);
- // Read a DVD Structure from the media
- void ReadDvdStructure(uint format, uint address, uint layer, uint agid, out IntPtr data, out uint Count);
- // Sends a DVD structure to the media
- void SendDvdStructure(uint format,
- [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.U1, SizeParamIndex = 2)]
- byte[] data,
- uint Count);
- // Get the full adapter descriptor (via IOCTL_STORAGE_QUERY_PROPERTY).
- void GetAdapterDescriptor(out IntPtr data, ref uint byteSize);
- // Get the full device descriptor (via IOCTL_STORAGE_QUERY_PROPERTY).
- void GetDeviceDescriptor(out IntPtr data, ref uint byteSize);
- // Gets data from a READ_DISC_INFORMATION command
- void GetDiscInformation(out IntPtr discInformation, ref uint byteSize);
- // Gets data from a READ_TRACK_INFORMATION command
- void GetTrackInformation(uint address, IMAPI_READ_TRACK_ADDRESS_TYPE addressType, out IntPtr trackInformation, ref uint byteSize);
- // Gets a feature's data from a GET_CONFIGURATION command
- void GetFeaturePage(IMAPI_FEATURE_PAGE_TYPE requestedFeature, sbyte currentFeatureOnly, out IntPtr featureData, ref uint byteSize);
- // Gets data from a MODE_SENSE10 command
- void GetModePage(IMAPI_MODE_PAGE_TYPE requestedModePage, IMAPI_MODE_PAGE_REQUEST_TYPE requestType, out IntPtr modePageData, ref uint byteSize);
- // Sets mode page data using MODE_SELECT10 command
- void SetModePage(IMAPI_MODE_PAGE_REQUEST_TYPE requestType,
- [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.U1, SizeParamIndex = 2)]
- byte[] data,
- uint byteSize);
- // Gets a list of all feature pages supported by the device
- void GetSupportedFeaturePages(sbyte currentFeatureOnly, out IntPtr featureData, ref uint byteSize);
- // Gets a list of all PROFILES supported by the device
- void GetSupportedProfiles(sbyte currentOnly, out IntPtr profileTypes, out uint validProfiles);
- // Gets a list of all MODE PAGES supported by the device
- void GetSupportedModePages(IMAPI_MODE_PAGE_REQUEST_TYPE requestType, out IntPtr modePageTypes, out uint validPages);
- // The byte alignment requirement mask for this device.
- uint GetByteAlignmentMask();
- // The maximum non-page-aligned transfer size for this device.
- uint GetMaximumNonPageAlignedTransferSize();
- // The maximum non-page-aligned transfer size for this device.
- uint GetMaximumPageAlignedTransferSize();
- }
- /// <summary>
- /// FileSystemImage item enumerator
- /// </summary>
- [Guid("2C941FDA-975B-59BE-A960-9A2A262853A5")]
- [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
- public interface IEnumFsiItems
- {
- // Note: not listed in COM Interface, but it is in Interop.cs
- void Next(uint celt, out IFsiItem rgelt, out uint pceltFetched);
- // Remoting support for Next (allow NULL pointer for item count when requesting single item)
- void RemoteNext(uint celt, out IFsiItem rgelt, out uint pceltFetched);
- // Skip items in the enumeration
- void Skip(uint celt);
- // Reset the enumerator
- void Reset();
- // Make a copy of the enumerator
- void Clone(out IEnumFsiItems ppEnum);
- }
- /// <summary>
- /// FileSystemImageResult progress item enumerator
- /// </summary>
- [Guid("2C941FD6-975B-59BE-A960-9A2A262853A5")]
- [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
- public interface IEnumProgressItems
- {
- // Not in COM, but is in Interop.cs
- void Next(uint celt, out IProgressItem rgelt, out uint pceltFetched);
- // Remoting support for Next (allow NULL pointer for item count when requesting single item)
- void RemoteNext(uint celt, out IProgressItem rgelt, out uint pceltFetched);
- // Skip items in the enumeration
- void Skip(uint celt);
- // Reset the enumerator
- void Reset();
- // Make a copy of the enumerator
- void Clone(out IEnumProgressItems ppEnum);
- }
- /// <summary>
- /// File system image
- /// </summary>
- [TypeLibType(TypeLibTypeFlags.FDual | TypeLibTypeFlags.FDispatchable | TypeLibTypeFlags.FNonExtensible)]
- [Guid("2C941FE1-975B-59BE-A960-9A2A262853A5")]
- public interface IFileSystemImage
- {
- // Root directory item
- [DispId(0)]
- IFsiDirectoryItem Root { get; }
- // Disc start block for the image
- [DispId(1)]
- int SessionStartBlock { get; set; }
- // Maximum number of blocks available for the image
- [DispId(2)]
- int FreeMediaBlocks { get; set; }
- // Set maximum number of blocks available based on the recorder
- // supported discs. 0 for unknown maximum may be set.
- [DispId(0x24)]
- void SetMaxMediaBlocksFromDevice(IDiscRecorder2 discRecorder);
- // Number of blocks in use
- [DispId(3)]
- int UsedBlocks { get; }
- // Volume name
- [DispId(4)]
- string VolumeName { get; set; }
- // Imported Volume name
- [DispId(5)]
- string ImportedVolumeName { get; }
- // Boot image and boot options
- [DispId(6)]
- IBootOptions BootImageOptions { get; set; }
- // Number of files in the image
- [DispId(7)]
- int FileCount { get; }
- // Number of directories in the image
- [DispId(8)]
- int DirectoryCount { get; }
- // Temp directory for stash files
- [DispId(9)]
- string WorkingDirectory { get; set; }
- // Change point identifier
- [DispId(10)]
- int ChangePoint { get; }
- // Strict file system compliance option
- [DispId(11)]
- bool StrictFileSystemCompliance { get; set; }
- // If true, indicates restricted character set is being used for file and directory names
- [DispId(12)]
- bool UseRestrictedCharacterSet { get; set; }
- // File systems to create
- [DispId(13)]
- FsiFileSystems FileSystemsToCreate { get; set; }
- // File systems supported
- [DispId(14)]
- FsiFileSystems FileSystemsSupported { get; }
- // UDF revision
- [DispId(0x25)]
- int UDFRevision { set; get; }
- // UDF revision(s) supported
- [DispId(0x1f)]
- object[] UDFRevisionsSupported { get; }
- // Select filesystem types and image size based on the current media
- [DispId(0x20)]
- void ChooseImageDefaults(IDiscRecorder2 discRecorder);
- // Select filesystem types and image size based on the media type
- [DispId(0x21)]
- void ChooseImageDefaultsForMediaType(IMAPI_MEDIA_PHYSICAL_TYPE value);
- // ISO compatibility level to create
- [DispId(0x22)]
- int ISO9660InterchangeLevel { set; get; }
- // ISO compatibility level(s) supported
- [DispId(0x26)]
- object[] ISO9660InterchangeLevelsSupported { get; }
- // Create result image stream
- [DispId(15)]
- IFileSystemImageResult CreateResultImage();
- // Check for existance an item in the file system
- [DispId(0x10)]
- FsiItemType Exists(string FullPath);
- // Return a string useful for identifying the current disc
- [DispId(0x12)]
- string CalculateDiscIdentifier();
- // Identify file systems on a given disc
- [DispId(0x13)]
- FsiFileSystems IdentifyFileSystemsOnDisc(IDiscRecorder2 discRecorder);
- // Identify which of the specified file systems would be imported by default
- [DispId(20)]
- FsiFileSystems GetDefaultFileSystemForImport(FsiFileSystems fileSystems);
- // Import the default file system on the current disc
- [DispId(0x15)]
- FsiFileSystems ImportFileSystem();
- // Import a specific file system on the current disc
- [DispId(0x16)]
- void ImportSpecificFileSystem(FsiFileSystems fileSystemToUse);
- // Roll back to the specified change point
- [DispId(0x17)]
- void RollbackToChangePoint(int ChangePoint);
- // Lock in changes
- [DispId(0x18)]
- void LockInChangePoint();
- // Create a directory item with the specified name
- [DispId(0x19)]
- IFsiDirectoryItem CreateDirectoryItem(string Name);
- // Create a file item with the specified name
- [DispId(0x1a)]
- IFsiFileItem CreateFileItem(string Name);
- // Volume Name UDF
- [DispId(0x1b)]
- string VolumeNameUDF { get; }
- // Volume name Joliet
- [DispId(0x1c)]
- string VolumeNameJoliet { get; }
- // Volume name ISO 9660
- [DispId(0x1d)]
- string VolumeNameISO9660 { get; }
- // Indicates whether or not IMAPI should stage the filesystem before the burn
- [DispId(30)]
- bool StageFiles { get; set; }
- // Get array of available multi-session interfaces.
- [DispId(40)]
- object[] MultisessionInterfaces { get; set; }
- }
- /// <summary>
- /// File system image (rev.2)
- /// </summary>
- [ComImport]
- [Guid("D7644B2C-1537-4767-B62F-F1387B02DDFD")]
- [TypeLibType(TypeLibTypeFlags.FDual | TypeLibTypeFlags.FDispatchable | TypeLibTypeFlags.FNonExtensible)]
- public interface IFileSystemImage2
- {
- //
- // IFileSystemImage
- //
- // Root directory item
- [DispId(0)]
- IFsiDirectoryItem Root { get; }
- // Disc start block for the image
- [DispId(1)]
- int SessionStartBlock { get; set; }
- // Maximum number of blocks available for the image
- [DispId(2)]
- int FreeMediaBlocks { get; set; }
- // Set maximum number of blocks available based on the recorder
- // supported discs. 0 for unknown maximum may be set.
- [DispId(0x24)]
- void SetMaxMediaBlocksFromDevice(IDiscRecorder2 discRecorder);
- // Number of blocks in use
- [DispId(3)]
- int UsedBlocks { get; }
- // Volume name
- [DispId(4)]
- string VolumeName { get; set; }
- // Imported Volume name
- [DispId(5)]
- string ImportedVolumeName { get; }
- // Boot image and boot options
- [DispId(6)]
- IBootOptions BootImageOptions { get; set; }
- // Number of files in the image
- [DispId(7)]
- int FileCount { get; }
- // Number of directories in the image
- [DispId(8)]
- int DirectoryCount { get; }
- // Temp directory for stash files
- [DispId(9)]
- string WorkingDirectory { get; set; }
- // Change point identifier
- [DispId(10)]
- int ChangePoint { get; }
- // Strict file system compliance option
- [DispId(11)]
- bool StrictFileSystemCompliance { get; set; }
- // If true, indicates restricted character set is being used for file and directory names
- [DispId(12)]
- bool UseRestrictedCharacterSet { get; set; }
- // File systems to create
- [DispId(13)]
- FsiFileSystems FileSystemsToCreate { get; set; }
- // File systems supported
- [DispId(14)]
- FsiFileSystems FileSystemsSupported { get; }
- // UDF revision
- [DispId(0x25)]
- int UDFRevision { set; get; }
- // UDF revision(s) supported
- [DispId(0x1f)]
- object[] UDFRevisionsSupported { get; }
- // Select filesystem types and image size based on the current media
- [DispId(0x20)]
- void ChooseImageDefaults(IDiscRecorder2 discRecorder);
- // Select filesystem types and image size based on the media type
- [DispId(0x21)]
- void ChooseImageDefaultsForMediaType(IMAPI_MEDIA_PHYSICAL_TYPE value);
- // ISO compatibility level to create
- [DispId(0x22)]
- int ISO9660InterchangeLevel { set; get; }
- // ISO compatibility level(s) supported
- [DispId(0x26)]
- object[] ISO9660InterchangeLevelsSupported { get; }
- // Create result image stream
- [DispId(15)]
- IFileSystemImageResult CreateResultImage();
- // Check for existance an item in the file system
- [DispId(0x10)]
- FsiItemType Exists(string FullPath);
- // Return a string useful for identifying the current disc
- [DispId(0x12)]
- string CalculateDiscIdentifier();
- // Identify file systems on a given disc
- [DispId(0x13)]
- FsiFileSystems IdentifyFileSystemsOnDisc(IDiscRecorder2 discRecorder);
- // Identify which of the specified file systems would be imported by default
- [DispId(20)]
- FsiFileSystems GetDefaultFileSystemForImport(FsiFileSystems fileSystems);
- // Import the default file system on the current disc
- [DispId(0x15)]
- FsiFileSystems ImportFileSystem();
- // Import a specific file system on the current disc
- [DispId(0x16)]
- void ImportSpecificFileSystem(FsiFileSystems fileSystemToUse);
- // Roll back to the specified change point
- [DispId(0x17)]
- void RollbackToChangePoint(int ChangePoint);
- // Lock in changes
- [DispId(0x18)]
- void LockInChangePoint();
- // Create a directory item with the specified name
- [DispId(0x19)]
- IFsiDirectoryItem CreateDirectoryItem(string Name);
- // Create a file item with the specified name
- [DispId(0x1a)]
- IFsiFileItem CreateFileItem(string Name);
- // Volume Name UDF
- [DispId(0x1b)]
- string VolumeNameUDF { get; }
- // Volume name Joliet
- [DispId(0x1c)]
- string VolumeNameJoliet { get; }
- // Volume name ISO 9660
- [DispId(0x1d)]
- string VolumeNameISO9660 { get; }
- // Indicates whether or not IMAPI should stage the filesystem before the burn
- [DispId(30)]
- bool StageFiles { get; set; }
- // Get array of available multi-session interfaces.
- [DispId(40)]
- object[] MultisessionInterfaces { get; set; }
- //
- // IFileSystemImage2
- //
- // Get boot options array for supporting multi-boot
- [DispId(60)]
- object[] BootImageOptionsArray { get; set; }
- }
- /// <summary>
- /// File system image (rev.3)"),
- /// </summary>
- [ComImport]
- [Guid("7CFF842C-7E97-4807-8304-910DD8F7C051")]
- [TypeLibType(TypeLibTypeFlags.FDual | TypeLibTypeFlags.FDispatchable | TypeLibTypeFlags.FNonExtensible)]
- public interface IFileSystemImage3
- {
- //
- // IFileSystemImage
- //
- // Root directory item
- [DispId(0)]
- IFsiDirectoryItem Root { get; }
- // Disc start block for the image
- [DispId(1)]
- int SessionStartBlock { get; set; }
- // Maximum number of blocks available for the image
- [DispId(2)]
- int FreeMediaBlocks { get; set; }
- // Set maximum number of blocks available based on the recorder
- // supported discs. 0 for unknown maximum may be set.
- [DispId(0x24)]
- void SetMaxMediaBlocksFromDevice(IDiscRecorder2 discRecorder);
- // Number of blocks in use
- [DispId(3)]
- int UsedBlocks { get; }
- // Volume name
- [DispId(4)]
- string VolumeName { get; set; }
- // Imported Volume name
- [DispId(5)]
- string ImportedVolumeName { get; }
- // Boot image and boot options
- [DispId(6)]
- IBootOptions BootImageOptions { get; set; }
- // Number of files in the image
- [DispId(7)]
- int FileCount { get; }
- // Number of directories in the image
- [DispId(8)]
- int DirectoryCount { get; }
- // Temp directory for stash files
- [DispId(9)]
- string WorkingDirectory { get; set; }
- // Change point identifier
- [DispId(10)]
- int ChangePoint { get; }
- // Strict file system compliance option
- [DispId(11)]
- bool StrictFileSystemCompliance { get; set; }
- // If true, indicates restricted character set is being used for file and directory names
- [DispId(12)]
- bool UseRestrictedCharacterSet { get; set; }
- // File systems to create
- [DispId(13)]
- FsiFileSystems FileSystemsToCreate { get; set; }
- // File systems supported
- [DispId(14)]
- FsiFileSystems FileSystemsSupported { get; }
- // UDF revision
- [DispId(0x25)]
- int UDFRevision { set; get; }
- // UDF revision(s) supported
- [DispId(0x1f)]
- object[] UDFRevisionsSupported { get; }
- // Select filesystem types and image size based on the current media
- [DispId(0x20)]
- void ChooseImageDefaults(IDiscRecorder2 discRecorder);
- // Select filesystem types and image size based on the media type
- [DispId(0x21)]
- void ChooseImageDefaultsForMediaType(IMAPI_MEDIA_PHYSICAL_TYPE value);
- // ISO compatibility level to create
- [DispId(0x22)]
- int ISO9660InterchangeLevel { set; get; }
- // ISO compatibility level(s) supported
- [DispId(0x26)]
- object[] ISO9660InterchangeLevelsSupported { get; }
- // Create result image stream
- [DispId(15)]
- IFileSystemImageResult CreateResultImage();
- // Check for existance an item in the file system
- [DispId(0x10)]
- FsiItemType Exists(string FullPath);
- // Return a string useful for identifying the current disc
- [DispId(0x12)]
- string CalculateDiscIdentifier();
- // Identify file systems on a given disc
- [DispId(0x13)]
- FsiFileSystems IdentifyFileSystemsOnDisc(IDiscRecorder2 discRecorder);
- // Identify which of the specified file systems would be imported by default
- [DispId(20)]
- FsiFileSystems GetDefaultFileSystemForImport(FsiFileSystems fileSystems);
- // Import the default file system on the current disc
- [DispId(0x15)]
- FsiFileSystems ImportFileSystem();
- // Import a specific file system on the current disc
- [DispId(0x16)]
- void ImportSpecificFileSystem(FsiFileSystems fileSystemToUse);
- // Roll back to the specified change point
- [DispId(0x17)]
- void RollbackToChangePoint(int ChangePoint);
- // Lock in changes
- [DispId(0x18)]
- void LockInChangePoint();
- // Create a directory item with the specified name
- [DispId(0x19)]
- IFsiDirectoryItem CreateDirectoryItem(string Name);
- // Create a file item with the specified name
- [DispId(0x1a)]
- IFsiFileItem CreateFileItem(string Name);
- // Volume Name UDF
- [DispId(0x1b)]
- string VolumeNameUDF { get; }
- // Volume name Joliet
- [DispId(0x1c)]
- string VolumeNameJoliet { get; }
- // Volume name ISO 9660
- [DispId(0x1d)]
- string VolumeNameISO9660 { get; }
- // Indicates whether or not IMAPI should stage the filesystem before the burn
- [DispId(30)]
- bool StageFiles { get; set; }
- // Get array of available multi-session interfaces.
- [DispId(40)]
- object[] MultisessionInterfaces { get; set; }
- //
- // IFileSystemImage2
- //
- // Get boot options array for supporting multi-boot
- [DispId(60)]
- object[] BootImageOptionsArray { get; set; }
- //
- // IFileSystemImage3
- //
- // If true, indicates that UDF Metadata and Metadata Mirror files are truly redundant,
- // i.e. reference different extents
- [DispId(0x3d)]
- bool CreateRedundantUdfMetadataFiles { get; set; }
- // Probe if a specific file system on the disc is appendable through IMAPI
- [DispId(70)]
- bool ProbeSpecificFileSystem(FsiFileSystems fileSystemToProbe);
- }
- /// <summary>
- /// FileSystemImage result stream
- /// </summary>
- [TypeLibType(TypeLibTypeFlags.FDual | TypeLibTypeFlags.FDispatchable | TypeLibTypeFlags.FNonExtensible)]
- [Guid("2C941FD8-975B-59BE-A960-9A2A262853A5")]
- public interface IFileSystemImageResult
- {
- // Image stream
- [DispId(1)]
- IStream ImageStream { get; }
- // Progress item block mapping collection
- [DispId(2)]
- IProgressItems ProgressItems { get; }
- // Number of blocks in the result image
- [DispId(3)]
- int TotalBlocks { get; }
- // Number of bytes in a block
- [DispId(4)]
- int BlockSize { get; }
- // Disc Identifier (for identifing imported session of multi-session disc)
- [DispId(5)]
- string DiscId { get; }
- }
- [Guid("2C941FDC-975B-59BE-A960-9A2A262853A5")]
- [TypeLibType(TypeLibTypeFlags.FDual | TypeLibTypeFlags.FDispatchable | TypeLibTypeFlags.FNonExtensible)]
- public interface IFsiDirectoryItem
- {
- //
- // IFsiItem
- //
- // Item name
- [DispId(11)]
- string Name { get; }
- // Full path
- [DispId(12)]
- string FullPath { get; }
- // Date and time of creation
- [DispId(13)]
- DateTime CreationTime { get; set; }
- // Date and time of last access
- [DispId(14)]
- DateTime LastAccessedTime { get; set; }
- // Date and time of last modification
- [DispId(15)]
- DateTime LastModifiedTime { get; set; }
- // Flag indicating if item is hidden
- [DispId(0x10)]
- bool IsHidden { get; set; }
- // Name of item in the specified file system
- [DispId(0x11)]
- string FileSystemName(FsiFileSystems fileSystem);
- // Name of item in the specified file system
- [DispId(0x12)]
- string FileSystemPath(FsiFileSystems fileSystem);
- //
- // IFsiDirectoryItem
- //
- // Get an enumerator for the collection
- [TypeLibFunc((short)0x41), DispId(-4)]
- IEnumerator GetEnumerator();
- // Get the item with the given relative path
- [DispId(0)]
- IFsiItem this[string path] { get; }
- // Number of items in the collection
- [DispId(1)]
- int Count { get; }
- // Get a non-variant enumerator
- [DispId(2)]
- IEnumFsiItems EnumFsiItems { get; }
- // Add a directory with the specified relative path
- [DispId(30)]
- void AddDirectory(string path);
- // Add a file with the specified relative path and data
- [DispId(0x1f)]
- void AddFile(string path, IStream fileData);
- // Add files and directories from the specified source directory
- [DispId(0x20)]
- void AddTree(string sourceDirectory, bool includeBaseDirectory);
- // Add an item
- [DispId(0x21)]
- void Add(IFsiItem Item);
- // Remove an item with the specified relative path
- [DispId(0x22)]
- void Remove(string path);
- // Remove a subtree with the specified relative path
- [DispId(0x23)]
- void RemoveTree(string path);
- }
- /// <summary>
- /// FileSystemImage directory item (rev.2)
- /// </summary>
- [ComImport]
- [Guid("F7FB4B9B-6D96-4D7B-9115-201B144811EF")]
- [TypeLibType(TypeLibTypeFlags.FDual | TypeLibTypeFlags.FDispatchable | TypeLibTypeFlags.FNonExtensible)]
- public interface IFsiDirectoryItem2 : IFsiDirectoryItem
- {
- // Add files and directories from the specified source directory including named streams
- [DispId(0x24)]
- void AddTreeWithNamedStreams( string sourceDirectory, bool includeBaseDirectory);
- }
- /// <summary>
- /// FileSystemImage file item
- /// </summary>
- [Guid("2C941FDB-975B-59BE-A960-9A2A262853A5")]
- [TypeLibType(TypeLibTypeFlags.FDual | TypeLibTypeFlags.FDispatchable | TypeLibTypeFlags.FNonExtensible)]
- public interface IFsiFileItem
- {
- //
- // IFsiItem
- //
- // Item name
- [DispId(11)]
- string Name { get; }
- // Full path
- [DispId(12)]
- string FullPath { get; }
- // Date and time of creation
- [DispId(13)]
- DateTime CreationTime { get; set; }
- // Date and time of last access
- [DispId(14)]
- DateTime LastAccessedTime { get; set; }
- // Date and time of last modification
- [DispId(15)]
- DateTime LastModifiedTime { get; set; }
- // Flag indicating if item is hidden
- [DispId(0x10)]
- bool IsHidden { get; set; }
- // Name of item in the specified file system
- [DispId(0x11)]
- string FileSystemName(FsiFileSystems fileSystem);
- // Name of item in the specified file system
- [DispId(0x12)]
- string FileSystemPath(FsiFileSystems fileSystem);
- //
- // IFsiFileItem
- //
- // Data byte count
- [DispId(0x29)]
- long DataSize { get; }
- // Lower 32 bits of the data byte count
- [DispId(0x2a)]
- int DataSize32BitLow { get; }
- // Upper 32 bits of the data byte count
- [DispId(0x2b)]
- int DataSize32BitHigh { get; }
- // Data stream
- [DispId(0x2c)]
- IStream Data { get; set; }
- }
- /// <summary>
- /// FileSystemImage file item (rev.2)
- /// </summary>
- [ComImport]
- [Guid("199D0C19-11E1-40EB-8EC2-C8C822A07792")]
- [TypeLibType(TypeLibTypeFlags.FDual | TypeLibTypeFlags.FDispatchable | TypeLibTypeFlags.FNonExtensible)]
- public interface IFsiFileItem2
- {
- //
- // IFsiItem
- //
- // Item name
- [DispId(11)]
- string Name { get; }
- // Full path
- [DispId(12)]
- string FullPath { get; }
- // Date and time of creation
- [DispId(13)]
- DateTime CreationTime { get; set; }
- // Date and time of last access
- [DispId(14)]
- DateTime LastAccessedTime { get; set; }
- // Date and time of last modification
- [DispId(15)]
- DateTime LastModifiedTime { get; set; }
- // Flag indicating if item is hidden
- [DispId(0x10)]
- bool IsHidden { get; set; }
- // Name of item in the specified file system
- [DispId(0x11)]
- string FileSystemName(FsiFileSystems fileSystem);
- // Name of item in the specified file system
- [DispId(0x12)]
- string FileSystemPath(FsiFileSystems fileSystem);
- //
- // IFsiFileItem
- //
- // Data byte count
- [DispId(0x29)]
- long DataSize { get; }
- // Lower 32 bits of the data byte count
- [DispId(0x2a)]
- int DataSize32BitLow { get; }
- // Upper 32 bits of the data byte count
- [DispId(0x2b)]
- int DataSize32BitHigh { get; }
- // Data stream
- [DispId(0x2c)]
- IStream Data { get; set; }
- //
- // IFsiFileItem2
- //
- // Get the list of the named streams of the file
- [DispId(0x2d)]
- FsiNamedStreams FsiNamedStreams { get; }
- // Flag indicating if file item is a named stream of a file
- [DispId(0x2e)]
- bool IsNamedStream { get; }
- // Add a new named stream to the collection
- [DispId(0x2f)]
- void AddStream( string Name, FsiStream streamData);
- // Remove a specific named stream from the collection
- [DispId(0x30)]
- void RemoveStream( string Name);
- // Flag indicating if file is Real-Time
- [DispId(0x31)]
- bool IsRealTime { get; set; }
- }
- /// <summary>
- /// FileSystemImage item
- /// </summary>
- [Guid("2C941FD9-975B-59BE-A960-9A2A262853A5")]
- [TypeLibType(TypeLibTypeFlags.FDual | TypeLibTypeFlags.FDispatchable | TypeLibTypeFlags.FNonExtensible)]
- public interface IFsiItem
- {
- // Item name
- [DispId(11)]
- string Name { get; }
- // Full path
- [DispId(12)]
- string FullPath { get; }
- // Date and time of creation
- [DispId(13)]
- DateTime CreationTime { get; set; }
- // Date and time of last access
- [DispId(14)]
- DateTime LastAccessedTime { get; set; }
- // Date and time of last modification
- [DispId(15)]
- DateTime LastModifiedTime { get; set; }
- // Flag indicating if item is hidden
- [DispId(0x10)]
- bool IsHidden { get; set; }
- // Name of item in the specified file system
- [DispId(0x11)]
- string FileSystemName(FsiFileSystems fileSystem);
- // Name of item in the specified file system
- [DispId(0x12)]
- string FileSystemPath(FsiFileSystems fileSystem);
- }
- /// <summary>
- /// Named stream collection
- /// </summary>
- [ComImport]
- [Guid("ED79BA56-5294-4250-8D46-F9AECEE23459")]
- [TypeLibType(TypeLibTypeFlags.FDual | TypeLibTypeFlags.FDispatchable | TypeLibTypeFlags.FNonExtensible)]
- public interface IFsiNamedStreams : IEnumerable
- {
- // Get a named stream from the collection
- [DispId(0)]
- FsiFileItem this[int Index] { get; }
- // Number of named streams in the collection
- [DispId(0x51)]
- int Count { [DispId(0x51)] get; }
- // Get a non-variant enumerator for the named stream collection
- [DispId(0x52)]
- EnumFsiItems EnumNamedStreams { get; }
- }
- /// <summary>
- /// ISO Image Manager: Helper object for ISO image file manipulation
- /// </summary>
- [ComImport]
- [TypeLibType(TypeLibTypeFlags.FDispatchable)]
- [Guid("6CA38BE5-FBBB-4800-95A1-A438865EB0D4")]
- public interface IIsoImageManager
- {
- // Path to the ISO image file
- [DispId(0x100)]
- string path { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] get; }
- // Stream from the ISO image
- [DispId(0x101)]
- FsiStream Stream { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] get; }
- // Set path to the ISO image file, overwrites stream
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
- void SetPath( string Val);
- // Set stream from the ISO image, overwrites path
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
- void SetStream([In, MarshalAs(UnmanagedType.Interface)] FsiStream Data);
- // Validate if the ISO image file is a valid file
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
- void Validate();
- }
- [ComImport]
- [Guid("27354150-7F64-5B0F-8F00-5D77AFBE261E")]
- [TypeLibType(TypeLibTypeFlags.FDispatchable)]
- public interface IMultisession
- {
- // Is it possible to write this multi-session type on the current media in its present state
- [DispId(0x100)]
- bool IsSupportedOnCurrentMediaState { get; }
- // Is this multi-session type the one to use on current media
- [DispId(0x101)]
- bool InUse { set; get; }
- // The disc recorder to use to import previous session(s)
- [DispId(0x102)]
- MsftDiscRecorder2 ImportRecorder { get; }
- }
- [ComImport]
- [Guid("27354151-7F64-5B0F-8F00-5D77AFBE261E")]
- [TypeLibType(TypeLibTypeFlags.FDispatchable)]
- public interface IMultisessionSequential
- {
- //
- // IMultisession
- //
- // Is it possible to write this multi-session type on the current media in its present state
- [DispId(0x100)]
- bool IsSupportedOnCurrentMediaState { get; }
- // Is this multi-session type the one to use on current media
- [DispId(0x101)]
- bool InUse { set; get; }
- // The disc recorder to use to import previous session(s)
- [DispId(0x102)]
- MsftDiscRecorder2 ImportRecorder { get; }
- //
- // IMultisessionSequential
- //
- // Is this the first data session on the media?
- [DispId(0x200)]
- bool IsFirstDataSession { get; }
- // The first sector in the previous session on the media.
- [DispId(0x201)]
- int StartAddressOfPreviousSession { get; }
- // The last sector in the previous session on the media
- [DispId(0x202)]
- int LastWrittenAddressOfPreviousSession { get; }
- // Next writable address on the media (also used sectors).
- [DispId(0x203)]
- int NextWritableAddress { get; }
- // Free sectors available on the media
- [DispId(0x204)]
- int FreeSectorsOnMedia { get; }
- }
- /// <summary>
- /// FileSystemImageResult progress item
- /// </summary>
- [TypeLibType(TypeLibTypeFlags.FDual | TypeLibTypeFlags.FDispatchable | TypeLibTypeFlags.FNonExtensible)]
- [Guid("2C941FD5-975B-59BE-A960-9A2A262853A5")]
- public interface IProgressItem
- {
- // Progress item description
- [DispId(1)]
- string Description { get; }
- // First block in the range of blocks used by the progress item
- [DispId(2)]
- uint FirstBlock { get; }
- // Last block in the range of blocks used by the progress item
- [DispId(3)]
- uint LastBlock { get; }
- // Number of blocks used by the progress item
- [DispId(4)]
- uint BlockCount { get; }
- }
- /// <summary>
- /// FileSystemImageResult progress item
- /// </summary>
- [Guid("2C941FD7-975B-59BE-A960-9A2A262853A5")]
- [TypeLibType(TypeLibTypeFlags.FDual | TypeLibTypeFlags.FDispatchable | TypeLibTypeFlags.FNonExtensible)]
- public interface IProgressItems
- {
- // Get an enumerator for the collection
- [DispId(-4), TypeLibFunc((short)0x41)]
- IEnumerator GetEnumerator();
- // Find the block mapping from the specified index
- [DispId(0)]
- IProgressItem this[int Index] { get; }
- // Number of items in the collection
- [DispId(1)]
- int Count { get; }
- // Find the block mapping from the specified block
- [DispId(2)]
- IProgressItem ProgressItemFromBlock(uint block);
- // Find the block mapping from the specified item description
- [DispId(3)]
- IProgressItem ProgressItemFromDescription(string Description);
- // Get a non-variant enumerator
- [DispId(4)]
- IEnumProgressItems EnumProgressItems { get; }
- }
- [ComImport]
- [Guid("25983550-9D65-49CE-B335-40630D901227")]
- [TypeLibType(TypeLibTypeFlags.FDual | TypeLibTypeFlags.FDispatchable | TypeLibTypeFlags.FNonExtensible)]
- public interface IRawCDImageCreator
- {
- // Creates the result stream
- [DispId(0x200)]
- IStream CreateResultImage();
- // Adds a track to the media (defaults to audio, always 2352 bytes/sector)
- [DispId(0x201)]
- int AddTrack(IMAPI_CD_SECTOR_TYPE dataType, [In, MarshalAs(UnmanagedType.Interface)] IStream data);
- // Adds a special pregap to the first track, and implies an audio CD
- [DispId(0x202)]
- void AddSpecialPregap([In, MarshalAs(UnmanagedType.Interface)] IStream data);
- // Adds an R-W subcode generation object to supply R-W subcode (i.e. CD-Text or CD-G).
- [DispId(0x203)]
- void AddSubcodeRWGenerator([In, MarshalAs(UnmanagedType.Interface)] IStream subcode);
- [DispId(0x100)]
- IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE ResultingImageType { set; get; }
- // Equal to (final user LBA+1), defines minimum disc size image can be written to.
- [DispId(0x101)]
- int StartOfLeadout { get; }
- //
- [DispId(0x102)]
- int StartOfLeadoutLimit { set; get; }
- // Disables gapless recording of consecutive audio tracks
- [DispId(0x103)]
- bool DisableGaplessAudio { set; get; }
- // The Media Catalog Number for the CD image
- [DispId(260)]
- string MediaCatalogNumber { set; get; }
- // The starting track number (only for pure audio CDs)
- [DispId(0x105)]
- int StartingTrackNumber { set; get; }
- [DispId(0x106)]
- IRawCDImageTrackInfo this[int trackIndex] { [DispId(0x106)] get; }
- [DispId(0x107)]
- int NumberOfExistingTracks { get; }
- [DispId(0x108)]
- int LastUsedUserSectorInImage { get; }
- [DispId(0x109)]
- object[] ExpectedTableOfContents { get; }
- }
- [ComImport]
- [Guid("25983551-9D65-49CE-B335-40630D901227")]
- [TypeLibType(TypeLibTypeFlags.FDual | TypeLibTypeFlags.FDispatchable | TypeLibTypeFlags.FNonExtensible)]
- public interface IRawCDImageTrackInfo
- {
- // The LBA of the first user sector in this track
- [DispId(0x100)]
- int StartingLba { get; }
- // The number of user sectors in this track
- [DispId(0x101)]
- int SectorCount { get; }
- // The track number assigned for this track
- [DispId(0x102)]
- int TrackNumber { get; }
- // The type of data being recorded on the current sector.
- [DispId(0x103)]
- IMAPI_CD_SECTOR_TYPE SectorType { get; }
- // The International Standard Recording Code (ISRC) for this track.
- [DispId(260)]
- string ISRC { get; set; }
- // The digital audio copy setting for this track
- [DispId(0x105)]
- IMAPI_CD_TRACK_DIGITAL_COPY_SETTING DigitalAudioCopySetting { get; set; }
- // The audio provided already has preemphasis applied (rare).
- [DispId(0x106)]
- bool AudioHasPreemphasis { get; set; }
- // The list of current track-relative indexes within the CD track.
- [DispId(0x107)]
- object[] TrackIndexes { get; }
- // Add the specified LBA (relative to the start of the track) as an index.
- [DispId(0x200)]
- void AddTrackIndex( int lbaOffset);
- // Removes the specified LBA (relative to the start of the track) as an index.
- [DispId(0x201)]
- void ClearTrackIndex( int lbaOffset);
- }
- /// <summary>
- /// Write Engine
- /// </summary>
- [ComImport]
- [Guid("27354135-7F64-5B0F-8F00-5D77AFBE261E")]
- [TypeLibType(TypeLibTypeFlags.FDual | TypeLibTypeFlags.FDispatchable | TypeLibTypeFlags.FNonExtensible)]
- public interface IWriteEngine2
- {
- // Writes data provided in the IStream to the device
- [DispId(0x200)]
- void WriteSection(IStream data, int startingBlockAddress, int numberOfBlocks);
- // Cancels the current write operation
- [DispId(0x201)]
- void CancelWrite();
- // The disc recorder to use
- [DispId(0x100)]
- IDiscRecorder2Ex Recorder { set; get; }
- // If true, uses WRITE12 with the AV bit set to one; else uses WRITE10
- [DispId(0x101)]
- bool UseStreamingWrite12 { set; get; }
- // The approximate number of sectors per second the device can write at
- // the start of the write process. This is used to optimize sleep time
- // in the write engine.
- [DispId(0x102)]
- int StartingSectorsPerSecond { set; get; }
- // The approximate number of sectors per second the device can write at
- // the end of the write process. This is used to optimize sleep time
- // in the write engine.
- [DispId(0x103)]
- int EndingSectorsPerSecond { set; get; }
- // The number of bytes to use for each sector during writing.
- [DispId(260)]
- int BytesPerSector { set; get; }
- // Simple check to see if the object is currently writing to media.
- [DispId(0x105)]
- bool WriteInProgress { get; }
- }
- /// <summary>
- /// CD Write Engine
- /// </summary>
- [ComImport]
- [TypeLibType(TypeLibTypeFlags.FDual | TypeLibTypeFlags.FDispatchable | TypeLibTypeFlags.FNonExtensible)]
- [Guid("27354136-7F64-5B0F-8F00-5D77AFBE261E")]
- public interface IWriteEngine2EventArgs
- {
- // The starting logical block address for the current write operation.
- [DispId(0x100)]
- int StartLba { get; }
- // The number of sectors being written for the current write operation.
- [DispId(0x101)]
- int SectorCount { get; }
- // The last logical block address of data read for the current write operation.
- [DispId(0x102)]
- int LastReadLba { get; }
- // The last logical block address of data written for the current write operation
- [DispId(0x103)]
- int LastWrittenLba { get; }
- // The total bytes available in the system's cache buffer
- [DispId(0x106)]
- int TotalSystemBuffer { get; }
- // The used bytes in the system's cache buffer
- [DispId(0x107)]
- int UsedSystemBuffer { get; }
- // The free bytes in the system's cache buffer
- [DispId(0x108)]
- int FreeSystemBuffer { get; }
- }
- /// <summary>
- /// A single optical drive Write Speed Configuration
- /// </summary>
- [ComImport]
- [Guid("27354144-7F64-5B0F-8F00-5D77AFBE261E")]
- [TypeLibType(TypeLibTypeFlags.FDispatchable|TypeLibTypeFlags.FDual)]
- public interface IWriteSpeedDescriptor
- {
- // The type of media that this descriptor is valid for
- [DispId(0x101)]
- IMAPI_MEDIA_PHYSICAL_TYPE MediaType { get; }
- // Whether or not this descriptor represents a writing configuration that uses
- // Pure CAV rotation control
- [DispId(0x102)]
- bool RotationTypeIsPureCAV { get; }
- // The maximum speed at which the media will be written in the write configuration
- // represented by this descriptor
- [DispId(0x103)]
- int WriteSpeed { get; }
- }
- #endregion // Interfaces
- [ComImport]
- [CoClass(typeof(MsftDiscFormat2DataClass))]
- [Guid("27354153-9F64-5B0F-8F00-5D77AFBE261E")]
- public interface MsftDiscFormat2Data : IDiscFormat2Data, DiscFormat2Data_Event
- {
- }
- [ComImport]
- [ComSourceInterfaces("DDiscFormat2DataEvents\0")]
- [Guid("2735412A-7F64-5B0F-8F00-5D77AFBE261E")]
- [TypeLibType(TypeLibTypeFlags.FCanCreate), ClassInterface(ClassInterfaceType.None)]
- public class MsftDiscFormat2DataClass
- {
- }
- [ComImport]
- [Guid("27354156-8F64-5B0F-8F00-5D77AFBE261E")]
- [CoClass(typeof(MsftDiscFormat2EraseClass))]
- public interface MsftDiscFormat2Erase : IDiscFormat2Erase, DiscFormat2Erase_Event
- {
- }
- [ComImport]
- [Guid("2735412B-7F64-5B0F-8F00-5D77AFBE261E")]
- [ComSourceInterfaces("DDiscFormat2EraseEvents\0")]
- [TypeLibType(TypeLibTypeFlags.FCanCreate), ClassInterface(ClassInterfaceType.None)]
- public class MsftDiscFormat2EraseClass
- {
- }
- [ComImport]
- [CoClass(typeof(MsftDiscFormat2RawCDClass))]
- [Guid("27354155-8F64-5B0F-8F00-5D77AFBE261E")]
- public interface MsftDiscFormat2RawCD : IDiscFormat2RawCD, DiscFormat2RawCD_Event
- {
- }
- [ComImport]
- [Guid("27354128-7F64-5B0F-8F00-5D77AFBE261E")]
- [ComSourceInterfaces("DDiscFormat2RawCDEvents\0")]
- [TypeLibType(TypeLibTypeFlags.FCanCreate)]
- [ClassInterface(ClassInterfaceType.None)]
- public class MsftDiscFormat2RawCDClass
- {
- }
- /// <summary>
- /// Microsoft IMAPIv2 Track-at-Once Audio CD Writer
- /// </summary>
- [ComImport]
- [Guid("27354154-8F64-5B0F-8F00-5D77AFBE261E")]
- [CoClass(typeof(MsftDiscFormat2TrackAtOnceClass))]
- public interface MsftDiscFormat2TrackAtOnce : IDiscFormat2TrackAtOnce, DiscFormat2TrackAtOnce_Event
- {
- }
- [ComImport]
- [TypeLibType(TypeLibTypeFlags.FCanCreate)]
- [ComSourceInterfaces("DDiscFormat2TrackAtOnceEvents\0")]
- [Guid("27354129-7F64-5B0F-8F00-5D77AFBE261E")]
- [ClassInterface(ClassInterfaceType.None)]
- public class MsftDiscFormat2TrackAtOnceClass
- {
- }
- /// <summary>
- /// Microsoft IMAPIv2 Disc Master
- /// </summary>
- [ComImport]
- [Guid("27354130-7F64-5B0F-8F00-5D77AFBE261E")]
- [CoClass(typeof(MsftDiscMaster2Class))]
- public interface MsftDiscMaster2 : IDiscMaster2 //, DiscMaster2_Event
- {
- }
- [ComImport, ComSourceInterfaces("DDiscMaster2Events\0")]
- [TypeLibType(TypeLibTypeFlags.FCanCreate)]
- [Guid("2735412E-7F64-5B0F-8F00-5D77AFBE261E")]
- [ClassInterface(ClassInterfaceType.None)]
- public class MsftDiscMaster2Class
- {
- }
- [ComImport]
- [CoClass(typeof(MsftDiscRecorder2Class))]
- [Guid("27354133-7F64-5B0F-8F00-5D77AFBE261E")]
- public interface MsftDiscRecorder2 : IDiscRecorder2
- {
- }
- [ComImport]
- [Guid("2735412D-7F64-5B0F-8F00-5D77AFBE261E")]
- [TypeLibType(TypeLibTypeFlags.FCanCreate)]
- [ClassInterface(ClassInterfaceType.None)]
- public class MsftDiscRecorder2Class
- {
- }
- [ComImport]
- [Guid("27354151-7F64-5B0F-8F00-5D77AFBE261E")]
- [CoClass(typeof(MsftMultisessionSequentialClass))]
- public interface MsftMultisessionSequential : IMultisessionSequential
- {
- }
- [ComImport]
- [Guid("27354122-7F64-5B0F-8F00-5D77AFBE261E")]
- [ClassInterface(ClassInterfaceType.None)]
- public class MsftMultisessionSequentialClass
- {
- }
- [ComImport]
- [Guid("25983550-9D65-49CE-B335-40630D901227")]
- [CoClass(typeof(MsftRawCDImageCreatorClass))]
- public interface MsftRawCDImageCreator : IRawCDImageCreator
- {
- }
- [ComImport]
- [Guid("25983561-9D65-49CE-B335-40630D901227")]
- [TypeLibType(TypeLibTypeFlags.FCanCreate)]
- [ClassInterface(ClassInterfaceType.None)]
- public class MsftRawCDImageCreatorClass
- {
- }
- [ComImport]
- [Guid("27354135-7F64-5B0F-8F00-5D77AFBE261E")]
- [CoClass(typeof(MsftWriteEngine2Class))]
- public interface MsftWriteEngine2 : IWriteEngine2, DWriteEngine2_Event
- {
- }
- [ComImport]
- [Guid("2735412C-7F64-5B0F-8F00-5D77AFBE261E")]
- [TypeLibType(TypeLibTypeFlags.FCanCreate)]
- [ComSourceInterfaces("DWriteEngine2Events\0")]
- [ClassInterface(ClassInterfaceType.None)]
- public class MsftWriteEngine2Class
- {
- }
- [ComImport]
- [CoClass(typeof(MsftWriteSpeedDescriptorClass))]
- [Guid("27354144-7F64-5B0F-8F00-5D77AFBE261E")]
- public interface MsftWriteSpeedDescriptor : IWriteSpeedDescriptor
- {
- }
- [ComImport][ClassInterface(ClassInterfaceType.None)]
- [Guid("27354123-7F64-5B0F-8F00-5D77AFBE261E")]
- public class MsftWriteSpeedDescriptorClass
- {
- }
- [ComImport]
- [CoClass(typeof(BootOptionsClass))]
- [Guid("2C941FD4-975B-59BE-A960-9A2A262853A5")]
- public interface BootOptions : IBootOptions
- {
- }
- [ComImport]
- [ClassInterface(ClassInterfaceType.None)]
- [TypeLibType(TypeLibTypeFlags.FCanCreate)]
- [Guid("2C941FCE-975B-59BE-A960-9A2A262853A5")]
- public class BootOptionsClass
- {
- }
- [ComImport]
- [Guid("2C941FDA-975B-59BE-A960-9A2A262853A5")]
- [CoClass(typeof(EnumFsiItemsClass))]
- public interface EnumFsiItems : IEnumFsiItems
- {
- }
- [ComImport]
- [Guid("2C941FC6-975B-59BE-A960-9A2A262853A5")]
- [ClassInterface(ClassInterfaceType.None)]
- public class EnumFsiItemsClass
- {
- }
- [ComImport]
- [Guid("2C941FD6-975B-59BE-A960-9A2A262853A5")]
- [CoClass(typeof(EnumProgressItemsClass))]
- public interface EnumProgressItems : IEnumProgressItems
- {
- }
- [ComImport]
- [ClassInterface(ClassInterfaceType.None)]
- [Guid("2C941FCA-975B-59BE-A960-9A2A262853A5")]
- public class EnumProgressItemsClass
- {
- }
- [ComImport]
- [Guid("2C941FD8-975B-59BE-A960-9A2A262853A5")]
- [CoClass(typeof(FileSystemImageResultClass))]
- public interface FileSystemImageResult : IFileSystemImageResult
- {
- }
- [ComImport]
- [Guid("2C941FCC-975B-59BE-A960-9A2A262853A5")]
- [ClassInterface(ClassInterfaceType.None)]
- public class FileSystemImageResultClass
- {
- }
- [ComImport]
- [Guid("F7FB4B9B-6D96-4D7B-9115-201B144811EF")]
- [CoClass(typeof(FsiDirectoryItemClass))]
- public interface FsiDirectoryItem : IFsiDirectoryItem2
- {
- }
- [ComImport]
- [ClassInterface(ClassInterfaceType.None)]
- [Guid("2C941FC8-975B-59BE-A960-9A2A262853A5")]
- public class FsiDirectoryItemClass
- {
- }
- [ComImport]
- [CoClass(typeof(FsiFileItemClass))]
- [Guid("199D0C19-11E1-40EB-8EC2-C8C822A07792")]
- public interface FsiFileItem : IFsiFileItem2
- {
- }
- [ComImport]
- [ClassInterface(ClassInterfaceType.None)]
- [Guid("2C941FC7-975B-59BE-A960-9A2A262853A5")]
- public class FsiFileItemClass
- {
- }
- [ComImport]
- [Guid("ED79BA56-5294-4250-8D46-F9AECEE23459")]
- [CoClass(typeof(FsiNamedStreamsClass))]
- public interface FsiNamedStreams : IFsiNamedStreams
- {
- }
- [ComImport]
- [Guid("C6B6F8ED-6D19-44B4-B539-B159B793A32D")]
- [ClassInterface(ClassInterfaceType.None)]
- public class FsiNamedStreamsClass
- {
- }
- [ComImport]
- [Guid("0000000C-0000-0000-C000-000000000046")]
- [CoClass(typeof(FsiStreamClass))]
- public interface FsiStream : IStream
- {
- }
- [ComImport]
- [ClassInterface(ClassInterfaceType.None)]
- [Guid("2C941FCD-975B-59BE-A960-9A2A262853A5")]
- public class FsiStreamClass
- {
- }
- [ComImport]
- [CoClass(typeof(MsftFileSystemImageClass))]
- [Guid("2C941FE1-975B-59BE-A960-9A2A262853A5")]
- public interface MsftFileSystemImage : IFileSystemImage, DFileSystemImage_Event
- {
- }
- [ComImport]
- [TypeLibType(TypeLibTypeFlags.FCanCreate)]
- [Guid("2C941FC5-975B-59BE-A960-9A2A262853A5")]
- [ComSourceInterfaces("DFileSystemImageEvents\0DFileSystemImageImportEvents\0")]
- [ClassInterface(ClassInterfaceType.None)]
- public class MsftFileSystemImageClass
- {
- }
- [ComImport]
- [Guid("6CA38BE5-FBBB-4800-95A1-A438865EB0D4")]
- [CoClass(typeof(MsftIsoImageManagerClass))]
- public interface MsftIsoImageManager : IIsoImageManager
- {
- }
- [ComImport]
- [ClassInterface(ClassInterfaceType.None)]
- [Guid("CEEE3B62-8F56-4056-869B-EF16917E3EFC")]
- [TypeLibType(TypeLibTypeFlags.FCanCreate)]
- public class MsftIsoImageManagerClass
- {
- }
- [ComImport]
- [Guid("2C941FD5-975B-59BE-A960-9A2A262853A5")]
- [CoClass(typeof(ProgressItemClass))]
- public interface ProgressItem : IProgressItem
- {
- }
- [ComImport]
- [Guid("2C941FCB-975B-59BE-A960-9A2A262853A5")]
- [ClassInterface(ClassInterfaceType.None)]
- public class ProgressItemClass
- {
- }
- [ComImport]
- [Guid("2C941FD7-975B-59BE-A960-9A2A262853A5")]
- [CoClass(typeof(ProgressItemsClass))]
- public interface ProgressItems : IProgressItems
- {
- }
- [ComImport]
- [Guid("2C941FC9-975B-59BE-A960-9A2A262853A5")]
- [ClassInterface(ClassInterfaceType.None)]
- public class ProgressItemsClass
- {
- }
- }
|